/* ==========================================================================
   Vision Flow · «Ночь, белое золото и изумруд»
   Общие токены и связка с живым фоном (vf-cosmos.js). Подключается на всех страницах.
   ========================================================================== */
:root {
    --vf-ink: #f5eddc;
    --vf-gold: #e8dcc2;
    --vf-gold-2: #cbb994;
    --vf-gold-3: #8c7c5c;
    --vf-cta: linear-gradient(135deg, #fffaf0 0%, #f4ecdc 34%, #dccfae 70%, #b5a27c 100%);
    --vf-cta-hover: linear-gradient(135deg, #f7efde 0%, #f8f1e2 34%, #e2d4b4 70%, #c4b28e 100%);
    --vf-on: #1d1a14;
    --vf-emer: #f4ecdc;
    --vf-emer-2: #cbb994;
    --vf-emer-soft: rgba(236, 224, 198, 0.14);
    --vf-glow-gold: rgba(236, 224, 198, 0.32);
    --vf-glow-emer: rgba(236, 224, 198, 0.3);
    --vf-display: "Unbounded", "Inter", system-ui, sans-serif;
    --vf-gold-text: linear-gradient(180deg, #fffaf0 0%, #f4ecdc 45%, #d6c5a0 100%);
    color-scheme: dark;
}

/* ---------- фон ---------- */
html.vf-cosmos, html.vf-cosmos body { background: #040706 !important; }
#vfCosmos { position: fixed; inset: 0; z-index: 0; pointer-events: none; }
#vfCosmos canvas { width: 100%; height: 100%; display: block; }
html.vf-cosmos--static #vfCosmos {
    background:
        radial-gradient(120% 60% at 50% 118%, rgba(236, 224, 198, 0.22), transparent 55%),
        radial-gradient(60% 45% at 70% 25%, rgba(236, 224, 198, 0.16), transparent 60%),
        radial-gradient(50% 40% at 15% 40%, rgba(90, 70, 30, 0.3), transparent 60%),
        #040706;
}
/* старые фоны уходят — космос один на весь сайт */
html.vf-cosmos #vfScene,
html.vf-cosmos #vfArtStars,
html.vf-cosmos #vfArtSpot,
html.vf-cosmos .veo-background-animation,
html.vf-cosmos .veo-cosmic-stars,
html.vf-cosmos .veo-cosmic-stars-sides,
html.vf-cosmos .veo-fairy-dust,
html.vf-cosmos .vf-fairy-dust,
html.vf-cosmos .cosmic-cursor-glow,
html.vf-cosmos .profile-bg-animation,
html.vf-cosmos .profile-bg-vignette,
html.vf-cosmos .vf-first-screen-video { display: none !important; }
html.vf-cosmos body > .app-container, html.vf-cosmos body > main, html.vf-cosmos body > .vf-first-screen, html.vf-cosmos body > .profile-layout, html.vf-cosmos body > .page-wrap { position: relative; z-index: 1; }
html.vf-cosmos body .app-container,
html.vf-cosmos body main.veo-main,
html.vf-cosmos body .veo-form,
html.vf-cosmos body .veo-desktop-layout,
html.vf-cosmos body .veo-center-area,
html.vf-cosmos body .vf-main-with-bg,
html.vf-cosmos body .vf-first-screen { background: transparent !important; background-image: none !important; }
html.vf-cosmos body .vf-first-screen::after,
html.vf-cosmos body .vf-first-screen::before,
html.vf-cosmos body .vf-main-with-bg::before { display: none !important; }
/* фиксированные слои интерфейса не должны тонуть под фоном */
html.vf-cosmos .header, html.vf-cosmos .bottom-nav { z-index: 1000; }

/* ---------- типографика ---------- */
.vf-gold-text,
body.veo-generation-body .veo-welcome-chat-title,
body.page-main .vf-hero__title,
body.page-main .vf-trends__title {
    font-family: var(--vf-display);
    background: var(--vf-gold-text);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
}
body.page-main .vf-hero__title em {
    background: linear-gradient(100deg, #f4ecdc 0%, #fff3d6 40%, #f4ecdc 70%, #d6c5a0 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: vf-sheen-text 6s ease-in-out infinite alternate;
}
@keyframes vf-sheen-text { to { background-position: 100% 0; } }

/* ---------- кнопки: общие правила ---------- */
.vf-btn--solid, .vf-hero__go, body.veo-generation-body .veo-prompt-send {
    background: var(--vf-cta) !important;
    color: var(--vf-on) !important;
}
.vf-btn--solid:hover, .vf-hero__go:hover { background: var(--vf-cta-hover) !important; }

/* ---------- изумруд: активные состояния и фокус ---------- */
:focus-visible { outline: 2px solid var(--vf-emer); outline-offset: 2px; }
.vf-hero__pill i, .vf-float i { background: var(--vf-emer) !important; box-shadow: 0 0 12px 2px var(--vf-glow-emer) !important; }

/* ---------- скроллбары и выделение ---------- */
html.vf-cosmos * { scrollbar-color: rgba(236, 224, 198, 0.28) transparent; }
html.vf-cosmos *::-webkit-scrollbar-thumb { background: rgba(236, 224, 198, 0.25); }
html.vf-cosmos ::selection { background: var(--vf-gold); color: var(--vf-on); }

/* ==========================================================================
   Страницы генерации: стеклянные панели над живым фоном
   ========================================================================== */
body.veo-generation-body {
    --vf-glass: rgba(6, 12, 10, 0.74);
    --vf-glass-2: rgba(9, 17, 14, 0.86);
    --vf-blur: blur(20px) saturate(150%);
}
body.veo-generation-body .veo-settings-section,
body.veo-generation-body .veo-prompt-box,
body.veo-generation-body .vf-film,
body.veo-generation-body .veo-chats-panel,
body.veo-generation-body .veo-video-catalog-panel,
body.veo-generation-body .veo-chat-zoom-panel,
body.veo-generation-body:not(.mobile-version) .veo-left-sidebar,
body.veo-generation-body .veo-custom-select-trigger,
body.veo-generation-body .veo-chat-message--user .veo-chat-message-bubble {
    background: var(--vf-glass) !important;
    -webkit-backdrop-filter: var(--vf-blur);
    backdrop-filter: var(--vf-blur);
}
body.veo-generation-body .veo-custom-select-trigger { background: rgba(255, 246, 222, 0.045) !important; }
body.veo-generation-body:not(.mobile-version) .veo-right-settings,
body.veo-generation-body:not(.mobile-version) .veo-left-sidebar { background: linear-gradient(180deg, rgba(5, 10, 9, 0.55), rgba(5, 10, 9, 0.3)) !important; }
body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap {
    background: radial-gradient(90% 70% at 50% 0%, rgba(236, 224, 198, 0.07), transparent 70%), rgba(4, 8, 7, 0.38) !important;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-color: rgba(236, 224, 198, 0.14) !important;
}
body.veo-generation-body .veo-prompt-wrapper { background: linear-gradient(180deg, transparent, rgba(4, 7, 6, 0.6) 55%, rgba(4, 7, 6, 0.9)) !important; }

/* студия: активная карточка во всю ширину, содержимое по центру */
body.vf-view-studio .veo-chat-message.vf-active { align-self: stretch !important; width: 100% !important; display: flex; flex-direction: column; align-items: center; }
body.vf-view-studio .veo-chat-message.vf-active > .veo-chat-message-bubble { width: 100%; display: flex; flex-direction: column; align-items: center; }
body.vf-view-studio .veo-chat-message.vf-active .veo-generating-placeholder { width: 520px !important; max-width: 92%; }
body.veo-generation-body .veo-chat-message--assistant .veo-generating-placeholder { width: 460px !important; max-width: 100%; }

/* ==========================================================================
   Компоненты генерации · золото + изумруд
   ========================================================================== */
/* --- загрузчик генерации: «рождение звезды» в золоте и изумруде --- */
body.veo-generation-body .veo-generating-placeholder {
    background: radial-gradient(70% 60% at 50% 35%, rgba(236, 224, 198, 0.12), transparent 70%), rgba(4, 9, 8, 0.82) !important;
    border: 1px solid rgba(236, 224, 198, 0.22) !important;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.6), 0 0 90px rgba(236, 224, 198, 0.1), inset 0 1px 0 rgba(255, 246, 222, 0.08) !important;
}
body.veo-generation-body .veo-generating-placeholder::after {
    background: radial-gradient(circle, rgba(236, 224, 198, 0.2) 0%, rgba(236, 224, 198, 0.1) 35%, transparent 66%) !important;
}
body.veo-generation-body .veo-generating-loader-ring {
    background: conic-gradient(from 0deg, transparent 0 45%, rgba(236, 224, 198, 0.5) 65%, #f4ecdc 92%, #fffaf0 100%) !important;
    filter: drop-shadow(0 0 10px rgba(236, 224, 198, 0.7)) !important;
}
body.veo-generation-body .veo-generating-loader::before { border-color: rgba(236, 224, 198, 0.45) !important; }
body.veo-generation-body .veo-generating-loader::after {
    background: radial-gradient(circle, #fffaf0 18%, #f4ecdc 45%, rgba(236, 224, 198, 0.2) 65%, transparent 72%) !important;
    box-shadow: 0 0 30px 10px rgba(236, 224, 198, 0.5), 0 0 60px 20px rgba(236, 224, 198, 0.18) !important;
}
body.veo-generation-body .veo-generating-caption {
    background: linear-gradient(100deg, rgba(236, 224, 198, 0.45) 20%, #fffaf0 50%, rgba(236, 224, 198, 0.45) 80%) !important;
    background-size: 220% 100% !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
}
.vf-gen-timer { font-family: var(--vf-display); color: var(--vf-gold) !important; text-shadow: 0 0 24px rgba(236, 224, 198, 0.55) !important; }
/* орбитальные искры вокруг загрузчика */
.vf-gen-orbit { position: absolute; inset: -16px; border-radius: 50%; pointer-events: none; animation: vf-spin-ring 6s linear infinite; }
.vf-gen-orbit i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: #f4ecdc; box-shadow: 0 0 10px 2px rgba(236, 224, 198, 0.8); }
.vf-gen-orbit i:nth-child(1) { top: 0; left: 50%; }
.vf-gen-orbit i:nth-child(2) { bottom: 8%; left: 10%; background: #f4ecdc; box-shadow: 0 0 10px 2px rgba(236, 224, 198, 0.8); }
.vf-gen-orbit i:nth-child(3) { top: 40%; right: -2px; width: 3px; height: 3px; }

/* --- рамка промпта при фокусе: золото → изумруд --- */
body.veo-generation-body .veo-prompt-box::before {
    background: conic-gradient(from var(--vf-spin, 0deg), transparent 0 62%, rgba(236, 224, 198, 0.9) 78%, #f4ecdc 90%, transparent 100%) !important;
}
body.veo-generation-body .veo-prompt-box:focus-within {
    border-color: rgba(236, 224, 198, 0.45) !important;
    box-shadow: 0 24px 90px rgba(0, 0, 0, 0.6), 0 0 0 4px rgba(236, 224, 198, 0.08), 0 0 60px rgba(236, 224, 198, 0.12) !important;
}
body.veo-generation-body .veo-prompt-input { caret-color: var(--vf-gold) !important; }

/* --- главная кнопка: белое золото, ободок вращается --- */
body.veo-generation-body .veo-prompt-send::before {
    background: conic-gradient(from var(--vf-spin, 0deg), rgba(236, 224, 198, 0) 0 50%, #f4ecdc 72%, #fffaf0 86%, rgba(236, 224, 198, 0) 100%) !important;
}
body.veo-generation-body .veo-prompt-send { box-shadow: 0 10px 34px rgba(236, 224, 198, 0.28), inset 0 1px 0 rgba(247, 239, 222, 0.7), inset 0 -2px 0 rgba(140, 124, 92, 0.35) !important; }
body.veo-generation-body .veo-prompt-send:hover:not(:disabled) { background: var(--vf-cta-hover) !important; }
body.veo-generation-body .veo-prompt-send svg, body.veo-generation-body .veo-prompt-send * { color: var(--vf-on) !important; }

/* --- переключатели (Enter/автоотправка) в активном состоянии --- */
body.veo-generation-body .veo-prompt-enter-btn[aria-pressed="true"],
body.veo-generation-body .veo-prompt-action[aria-pressed="true"] {
    background: rgba(236, 224, 198, 0.16) !important;
    border-color: rgba(236, 224, 198, 0.7) !important;
    color: #fff3d6 !important;
    box-shadow: 0 0 22px rgba(236, 224, 198, 0.3) !important;
}
body.veo-generation-body .veo-prompt-tokens { border-color: rgba(236, 224, 198, 0.3) !important; color: var(--vf-gold) !important; }

/* --- секции настроек --- */
body.veo-generation-body .veo-settings-section-header { color: rgba(236, 224, 198, 0.85) !important; }
body.veo-generation-body .veo-settings-section-header::before {
    content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 9px; border-radius: 50%;
    background: var(--vf-emer); box-shadow: 0 0 10px var(--vf-glow-emer); vertical-align: middle;
}
body.veo-generation-body .veo-settings-section { position: relative; overflow: hidden; }
body.veo-generation-body .veo-settings-section::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
    background: radial-gradient(260px circle at var(--mx, -200px) var(--my, -200px), rgba(236, 224, 198, 0.09), transparent 60%);
}
body.veo-generation-body .veo-custom-select-trigger[aria-expanded="true"] { border-color: var(--vf-gold) !important; box-shadow: 0 0 0 3px rgba(236, 224, 198, 0.1) !important; }
body.veo-generation-body .veo-custom-select-dropdown .veo-custom-select-option:hover,
body.nano-banana-page .veo-custom-select-dropdown .veo-custom-select-option:hover { background: rgba(236, 224, 198, 0.14) !important; color: #fffaf0 !important; }
body.veo-generation-body .veo-custom-select-dropdown .veo-custom-select-option.selected,
body.nano-banana-page .veo-custom-select-dropdown .veo-custom-select-option.selected {
    background: linear-gradient(90deg, rgba(236, 224, 198, 0.16), rgba(236, 224, 198, 0.04)) !important;
    box-shadow: inset 2px 0 0 var(--vf-gold), inset 0 0 0 1px rgba(236, 224, 198, 0.28) !important;
}
body.nano-banana-page .veo-custom-select-dropdown .veo-custom-select-option.selected::after { background: var(--vf-emer) !important; box-shadow: 0 0 12px var(--vf-emer) !important; border-color: transparent !important; }
body.veo-generation-body input[type="range"], body.veo-generation-body input[type="checkbox"] { accent-color: var(--vf-emer); }
body.veo-generation-body .veo-filter-toggle-input:checked + .veo-filter-toggle-track { background: var(--vf-emer) !important; }
body.veo-generation-body .veo-tooltip, body.veo-generation-body .veo-left-tooltip { border-color: rgba(236, 224, 198, 0.3) !important; background: rgba(8, 14, 12, 0.97) !important; }

/* --- левая рейка и переключатель вида --- */
.vf-view-switch__thumb { background: var(--vf-cta) !important; box-shadow: 0 0 18px rgba(236, 224, 198, 0.4) !important; }
body.veo-generation-body .veo-left-icon-btn:hover { border-color: rgba(236, 224, 198, 0.55) !important; box-shadow: 0 1px 0 rgba(255, 246, 222, 0.15) inset, 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 26px rgba(236, 224, 198, 0.22) !important; }
.vf-ico { stroke: var(--vf-ink); }
.veo-left-icon-btn:hover .vf-ico { stroke: #fff3d6; }
.vf-ico--chat .d, .vf-ico--sliders .k1, .vf-ico--sliders .k2, .vf-ico--sliders .k3 { fill: var(--vf-gold) !important; }

/* --- чипы формата --- */
.vf-ratio.is-on { box-shadow: 0 0 24px rgba(236, 224, 198, 0.35) !important; }
.vf-ratio:hover { border-color: rgba(236, 224, 198, 0.55) !important; }

/* --- результат --- */
body.veo-generation-body .veo-video-wrapper { border-color: rgba(236, 224, 198, 0.22) !important; box-shadow: 0 30px 90px rgba(0, 0, 0, 0.6), 0 0 80px rgba(236, 224, 198, 0.1) !important; }
body.veo-generation-body .veo-video-wrapper:hover { box-shadow: 0 40px 110px rgba(0, 0, 0, 0.7), 0 0 110px rgba(236, 224, 198, 0.18) !important; }
body.veo-generation-body .veo-result-toolbar .veo-toolbar-btn:hover { background: rgba(236, 224, 198, 0.18) !important; color: #fffaf0 !important; }
body.veo-generation-body .veo-result-toolbar .veo-toolbar-ai-icon { background: var(--vf-cta) !important; }
body.veo-generation-body .veo-result-toolbar .veo-toolbar-ai-icon img { filter: brightness(0.15) !important; }
body.veo-generation-body .veo-result-toolbar .veo-toolbar-btn-download { color: var(--vf-gold) !important; }

/* --- пресеты стиля (новая фишка) --- */
.vf-styles { display: flex; gap: 6px; padding: 2px 14px 6px; overflow-x: auto; scrollbar-width: none; width: 0; min-width: 100%; box-sizing: border-box; }
.vf-styles::-webkit-scrollbar { display: none; }
.vf-style { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px 6px 7px; border-radius: 999px; border: 1px solid rgba(236, 224, 198, 0.22); background: rgba(236, 224, 198, 0.05); color: var(--vf-dim); font: 600 0.74rem/1 var(--vf-font); cursor: pointer; transition: all 0.3s var(--vf-ease); }
.vf-style i { width: 18px; height: 18px; border-radius: 50%; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(247, 239, 222, 0.2); }
.vf-style:hover { color: #fffaf0; border-color: rgba(236, 224, 198, 0.6); transform: translateY(-2px); }
.vf-style.is-on { color: #fffaf0; background: rgba(236, 224, 198, 0.2); border-color: var(--vf-emer); box-shadow: 0 0 18px rgba(236, 224, 198, 0.3); }

/* --- витрина моделей (новая фишка) --- */
.vf-models-btn { display: inline-flex; align-items: center; gap: 6px; margin: 8px 0 2px; padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(236, 224, 198, 0.28); background: rgba(236, 224, 198, 0.06); color: var(--vf-gold); font: 700 0.72rem/1 var(--vf-font); cursor: pointer; transition: all 0.3s var(--vf-ease); }
.vf-models-btn:hover { background: rgba(236, 224, 198, 0.14); transform: translateY(-1px); }
.vf-models-btn svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 1.8; }
.vf-models { position: fixed; inset: 0; z-index: 8000; display: grid; place-items: center; padding: 20px; background: rgba(2, 5, 4, 0.72); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); opacity: 0; pointer-events: none; transition: opacity 0.3s; }
body.vf-models-open .vf-models { opacity: 1; pointer-events: auto; }
.vf-models__box { width: min(880px, 100%); max-height: calc(86vh / var(--vf-z, 1)); overflow: auto; border-radius: 28px; padding: 24px; background: radial-gradient(80% 50% at 50% 0%, rgba(236, 224, 198, 0.12), transparent 70%), rgba(6, 12, 10, 0.96); border: 1px solid rgba(236, 224, 198, 0.25); box-shadow: 0 50px 140px rgba(0, 0, 0, 0.8); transform: translateY(16px) scale(0.98); transition: transform 0.5s var(--vf-ease); }
body.vf-models-open .vf-models__box { transform: none; }
.vf-models__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.vf-models__head b { font: 800 1.3rem/1.1 var(--vf-display); background: var(--vf-gold-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vf-models__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.vf-model { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 18px; border-radius: 20px; border: 1px solid rgba(236, 224, 198, 0.14); background: rgba(255, 246, 222, 0.03); color: var(--vf-ink); text-align: left; cursor: pointer; opacity: 0; animation: vf-chip-in 0.5s var(--vf-ease) forwards; transition: transform 0.45s var(--vf-spring), border-color 0.3s, background 0.3s, box-shadow 0.3s; }
.vf-model:hover { transform: translateY(-4px); border-color: rgba(236, 224, 198, 0.6); background: rgba(236, 224, 198, 0.08); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5); }
.vf-model.is-on { border-color: var(--vf-gold); box-shadow: 0 0 0 1px var(--vf-gold), 0 0 34px rgba(236, 224, 198, 0.22); }
.vf-model.is-on::after { content: "Выбрано"; position: absolute; top: 12px; right: 12px; padding: 4px 8px; border-radius: 99px; background: var(--vf-cta); color: var(--vf-on); font: 800 0.6rem/1 var(--vf-font); }
.vf-model__ic { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(145deg, #1a2a24, #070b0a); border: 1px solid rgba(236, 224, 198, 0.2); }
.vf-model__ic img { width: 26px; height: 26px; object-fit: contain; }
.vf-model b { font: 700 0.95rem/1.2 var(--vf-font); }
.vf-model.is-locked { opacity: 0.45; }

/* --- салют при готовом результате (новая фишка) --- */
.vf-burst i { background: var(--vf-gold) !important; box-shadow: 0 0 10px 2px rgba(236, 224, 198, 0.8) !important; }
.vf-burst i:nth-child(3n) { background: var(--vf-emer) !important; box-shadow: 0 0 10px 2px rgba(236, 224, 198, 0.8) !important; }
.vf-toast { border-color: rgba(236, 224, 198, 0.4) !important; background: rgba(8, 14, 12, 0.96) !important; }
.vf-toast::before { content: "✦ "; color: var(--vf-gold); }
body.veo-generation-body .veo-prompt-send::before { display: none !important; }
body.veo-generation-body .veo-prompt-send:not(:disabled) { animation: vf-cta-pulse 3.2s ease-in-out infinite; }
@keyframes vf-cta-pulse {
    0%, 100% { box-shadow: 0 10px 34px rgba(236, 224, 198, 0.26), 0 0 0 0 rgba(236, 224, 198, 0), inset 0 1px 0 rgba(247, 239, 222, 0.7), inset 0 -2px 0 rgba(140, 124, 92, 0.35); }
    50% { box-shadow: 0 12px 44px rgba(236, 224, 198, 0.42), 0 0 0 5px rgba(236, 224, 198, 0.12), inset 0 1px 0 rgba(247, 239, 222, 0.7), inset 0 -2px 0 rgba(140, 124, 92, 0.35); }
}
body.veo-generation-body .veo-settings-section-header { justify-content: flex-start !important; text-align: left !important; gap: 0; }
body.veo-generation-body .veo-settings-section-header > svg, body.veo-generation-body .veo-settings-section-header .veo-settings-chevron { margin-left: auto; }

/* мобильные: не перекрывать живой фон */
html.vf-cosmos body.veo-generation-body.mobile-version,
html.vf-cosmos body.veo-generation-body.mobile-version .app-container,
html.vf-cosmos body.veo-generation-body.mobile-version .veo-main,
html.vf-cosmos body.page-main .app-container,
html.vf-cosmos body .app-container { background: transparent !important; background-color: transparent !important; background-image: none !important; }
html.vf-cosmos body { background-color: transparent !important; }
html.vf-cosmos { background: #040706 !important; }

@media (max-width: 960px) {
    body.page-main .vf-first-screen { height: auto !important; min-height: 0 !important; }
    body.page-main .vf-first-screen-overlay.vf-hero { position: relative !important; inset: auto !important; overflow: visible !important; min-height: calc(100svh / var(--vf-z, 1)); }
    
}


/* ==========================================================================
   Фон-фото (Webb) — слои
   ========================================================================== */
#vfCosmos { overflow: hidden; background: #03040a; }
.vf-cosmos__img {
    position: absolute; inset: -4%;
    background: #03040a center / cover no-repeat;
    opacity: 0; filter: saturate(1.08) contrast(1.06);
    transition: opacity 1.6s cubic-bezier(.22, 1, .36, 1);
    will-change: transform;
}
html.vf-cosmos--ready .vf-cosmos__img { opacity: 1; }
.vf-cosmos__shade { position: absolute; inset: 0; pointer-events: none; }
.vf-cosmos__fx { position: absolute; inset: 0; width: 100%; height: 100%; }
/* затемнение: на главной — слева под текст и снизу в страницу; в генерации — сильнее и ровнее */
body.page-main .vf-cosmos__shade {
    background:
        linear-gradient(90deg, rgba(3, 4, 10, 0.88) 0%, rgba(3, 4, 10, 0.55) 38%, rgba(3, 4, 10, 0.1) 70%, rgba(3, 4, 10, 0.25) 100%),
        linear-gradient(180deg, rgba(3, 4, 10, 0.55) 0%, transparent 18%, transparent 62%, rgba(3, 4, 10, 0.92) 100%);
}
body.veo-generation-body .vf-cosmos__shade {
    background:
        radial-gradient(120% 90% at 60% 40%, rgba(3, 4, 10, 0.35), rgba(3, 4, 10, 0.78) 75%),
        linear-gradient(180deg, rgba(3, 4, 10, 0.5), rgba(3, 4, 10, 0.3) 40%, rgba(3, 4, 10, 0.85));
}
body:not(.page-main):not(.veo-generation-body) .vf-cosmos__shade {
    background: radial-gradient(110% 90% at 50% 30%, rgba(3, 4, 10, 0.45), rgba(3, 4, 10, 0.86) 80%);
}
@media (max-width: 960px) {
    body.page-main .vf-cosmos__shade {
        background: linear-gradient(180deg, rgba(3, 4, 10, 0.25) 0%, rgba(3, 4, 10, 0.55) 40%, rgba(3, 4, 10, 0.9) 75%);
    }
}
html.vf-cosmos--static #vfCosmos { background: radial-gradient(90% 70% at 70% 30%, rgba(120, 90, 40, 0.35), transparent 60%), radial-gradient(70% 60% at 20% 80%, rgba(40, 60, 120, 0.35), transparent 60%), #03040a; }
/* подпись авторства снимка */
.vf-cosmos__credit {
    position: fixed; right: 12px; bottom: 8px; z-index: 3;
    font: 500 10px/1.3 "Inter", sans-serif; letter-spacing: .02em;
    color: rgba(255, 246, 222, 0.32); pointer-events: none;
}
@media (max-width: 960px) { .vf-cosmos__credit { bottom: auto; top: calc(env(safe-area-inset-top, 0px) + 64px); right: 10px; font-size: 9px; } }
body.veo-generation-body .vf-cosmos__credit { right: auto; left: 76px; }
@media (max-width: 960px) { body.veo-generation-body .vf-cosmos__credit { display: none; } }
/* на главной картинка-превью в герое больше не нужна: фон и есть картинка */
body.page-main .vf-hero__shot, body.page-main .vf-orbitsys { display: none !important; }
body.page-main .vf-hero .vf-float { display: none !important; }
body.page-main .vf-hero__composer {
    background: linear-gradient(180deg, rgba(10, 12, 22, 0.78), rgba(6, 8, 16, 0.86)) !important;
    border-color: rgba(236, 224, 198, 0.28) !important;
    -webkit-backdrop-filter: blur(24px) saturate(120%);
    backdrop-filter: blur(24px) saturate(120%);
    box-shadow: 0 40px 120px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 246, 222, 0.1) !important;
}
body.page-main .vf-hero__ideas button, body.page-main .vf-hero__stats, body.page-main .vf-hero__pill, body.page-main .vf-btn--ghost {
    background: rgba(8, 10, 18, 0.62) !important;
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
body.veo-generation-body .vf-cosmos__shade {
    background:
        radial-gradient(120% 90% at 60% 40%, rgba(3, 4, 10, 0.12), rgba(3, 4, 10, 0.62) 80%),
        linear-gradient(180deg, rgba(3, 4, 10, 0.35), transparent 30%, transparent 60%, rgba(3, 4, 10, 0.75)) !important;
}
html.vf-cosmos[data-cosmos-img="rho"] .vf-cosmos__img { filter: saturate(1.15) contrast(1.08) brightness(1.25); }
body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap {
    background: radial-gradient(90% 70% at 50% 0%, rgba(236, 224, 198, 0.05), transparent 70%), rgba(4, 6, 12, 0.18) !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
}
@media (max-width: 960px) {
    body.veo-generation-body .vf-cosmos__shade {
        background: linear-gradient(180deg, rgba(3, 4, 10, 0.55), rgba(3, 4, 10, 0.62) 50%, rgba(3, 4, 10, 0.85)) !important;
    }
}


/* ==========================================================================
   Чёрный фон с лёгким космосом: снимок — только мягкое сияние в углу
   ========================================================================== */
#vfCosmos { background: #050505 !important; }
html.vf-cosmos, html.vf-cosmos body { background: #050505 !important; }
html.vf-cosmos .vf-cosmos__img {
    inset: auto -10% auto auto !important;
    top: -18% !important; right: -12% !important;
    width: calc(70vw / var(--vf-z, 1)) !important; height: calc(80vh / var(--vf-z, 1)) !important;
    -webkit-mask-image: radial-gradient(closest-side, #000 0%, rgba(0,0,0,.55) 45%, transparent 100%);
    mask-image: radial-gradient(closest-side, #000 0%, rgba(0,0,0,.55) 45%, transparent 100%);
}
html.vf-cosmos--ready .vf-cosmos__img { opacity: .32 !important; }
html.vf-cosmos .vf-cosmos__shade { display: none !important; }
/* на страницах генерации и в служебных — ещё тише */
html.vf-cosmos--ready body:not(.page-main) .vf-cosmos__img { opacity: .2 !important; }
@media (max-width: 960px) {
    html.vf-cosmos .vf-cosmos__img { width: calc(120vw / var(--vf-z, 1)) !important; height: calc(55vh / var(--vf-z, 1)) !important; top: -16% !important; right: -40% !important; }
    html.vf-cosmos--ready .vf-cosmos__img { opacity: .26 !important; }
}
.vf-cosmos__credit { color: rgba(255, 246, 222, 0.22) !important; }

/* всё в белом золоте: сияние снимка тонируем в золото */
html.vf-cosmos .vf-cosmos__img { filter: grayscale(1) sepia(.65) saturate(1.35) brightness(1.08) contrast(1.05) !important; }
body.page-main .vf-hero__title em {
    background: linear-gradient(100deg, #fffaf0 0%, #f4ecdc 35%, #d6c5a0 65%, #fff3d6 100%) !important;
    background-size: 200% 100% !important; -webkit-background-clip: text !important; background-clip: text !important;
}
html body.veo-generation-body #veoPhotoUploadCounter, html body.veo-generation-body .veo-photo-upload-counter { box-shadow: 0 0 10px rgba(236, 224, 198, 0.45) !important; background: var(--vf-cta) !important; color: var(--vf-on) !important; }
html body .vf-oai-free-badge { box-shadow: 0 0 12px rgba(236, 224, 198, 0.25) !important; background: var(--vf-cta) !important; color: var(--vf-on) !important; }

/* ==========================================================================
   «Созвездия»: чёрный · белое золото · изумруд
   ========================================================================== */
html.vf-cosmos, html.vf-cosmos body, #vfCosmos { background: #040505 !important; }
.vf-cosmos__img, .vf-cosmos__shade, .vf-cosmos__credit { display: none !important; }
.vf-cosmos__haze {
    position: absolute; inset: 0; pointer-events: none;
    background:
        radial-gradient(55% 45% at 88% 6%, rgba(236, 224, 198, 0.07), transparent 70%),
        radial-gradient(50% 40% at 6% 96%, rgba(236, 224, 198, 0.05), transparent 70%),
        radial-gradient(40% 30% at 50% 110%, rgba(236, 224, 198, 0.05), transparent 70%);
    animation: vf-haze 24s ease-in-out infinite alternate;
}
@keyframes vf-haze { to { transform: translate3d(-2%, 1.5%, 0) scale(1.04); opacity: .8; } }

/* изумруд — акцент: активное, фокус, включено */
:root { --vf-emer: #f4ecdc; --vf-emer-soft: rgba(236, 224, 198, 0.14); --vf-glow-emer: rgba(236, 224, 198, 0.35); }
:focus-visible { outline-color: #f4ecdc !important; }
body.veo-generation-body .veo-settings-section-header::before,
.vf-hero__pill i, .vf-float i { background: #f4ecdc !important; box-shadow: 0 0 10px rgba(236, 224, 198, 0.6) !important; }
body.veo-generation-body .veo-prompt-enter-btn[aria-pressed="true"],
body.veo-generation-body .veo-prompt-action[aria-pressed="true"] {
    background: rgba(236, 224, 198, 0.16) !important; border-color: rgba(236, 224, 198, 0.7) !important;
    color: #fffaf0 !important; box-shadow: 0 0 22px rgba(236, 224, 198, 0.3) !important;
}
body.veo-generation-body .veo-filter-toggle-input:checked + .veo-filter-toggle-track { background: #f4ecdc !important; }
body.veo-generation-body input[type="range"], body.veo-generation-body input[type="checkbox"] { accent-color: #f4ecdc; }
body.veo-generation-body .veo-prompt-box:focus-within {
    box-shadow: 0 24px 90px rgba(0, 0, 0, 0.6), 0 0 0 4px rgba(236, 224, 198, 0.08), 0 0 60px rgba(236, 224, 198, 0.1) !important;
}
body.veo-generation-body .veo-prompt-box::before {
    background: conic-gradient(from var(--vf-spin, 0deg), transparent 0 62%, rgba(236, 224, 198, 0.9) 78%, #f4ecdc 90%, transparent 100%) !important;
}
body.veo-generation-body .veo-custom-select-dropdown .veo-custom-select-option:hover,
body.nano-banana-page .veo-custom-select-dropdown .veo-custom-select-option:hover { background: rgba(236, 224, 198, 0.13) !important; color: #fffaf0 !important; }
body.nano-banana-page .veo-custom-select-dropdown .veo-custom-select-option.selected::after { background: #f4ecdc !important; box-shadow: 0 0 12px #f4ecdc !important; }
body.veo-generation-body .veo-left-icon-btn:hover { border-color: rgba(236, 224, 198, 0.55) !important; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 26px rgba(236, 224, 198, 0.22) !important; }
.veo-left-icon-btn:hover .vf-ico { stroke: #fffaf0 !important; }
.vf-style.is-on { background: rgba(236, 224, 198, 0.18) !important; border-color: #f4ecdc !important; color: #fffaf0 !important; box-shadow: 0 0 18px rgba(236, 224, 198, 0.3) !important; }
.vf-style:hover, .vf-ratio:hover { border-color: rgba(236, 224, 198, 0.55) !important; }
.vf-model:hover { border-color: rgba(236, 224, 198, 0.6) !important; background: rgba(236, 224, 198, 0.07) !important; }
.vf-gen-orbit i:nth-child(1), .vf-gen-orbit i:nth-child(3) { background: #f4ecdc !important; box-shadow: 0 0 10px 2px rgba(236, 224, 198, 0.8) !important; }
body.veo-generation-body .veo-generating-loader::before { border-color: rgba(236, 224, 198, 0.45) !important; }
body.veo-generation-body .veo-result-toolbar .veo-toolbar-btn:hover { background: rgba(236, 224, 198, 0.16) !important; color: #fffaf0 !important; }
.vf-burst i:nth-child(3n) { background: #f4ecdc !important; box-shadow: 0 0 10px 2px rgba(236, 224, 198, 0.8) !important; }
body.page-main .vf-hero__title em {
    background: linear-gradient(100deg, #f4ecdc 0%, #fffaf0 30%, #f4ecdc 65%, #d6c5a0 100%) !important;
    background-size: 200% 100% !important; -webkit-background-clip: text !important; background-clip: text !important;
}
/* на главной снова карточка-превью героя не нужна, бейджи можно вернуть над композером */
body.page-main .vf-hero__composer { background: linear-gradient(180deg, rgba(10, 13, 12, 0.82), rgba(5, 7, 7, 0.9)) !important; }

/* ==========================================================================
   БЕЛОЕ ЗОЛОТО: светлое шампанское вместо жёлтого
   ========================================================================== */
:root {
    --vf-gold: #e8dcc2;
    --vf-gold-2: #cbb994;
    --vf-gold-3: #8c7c5c;
    --vf-cta: linear-gradient(135deg, #f7efde 0%, #f7f2e8 32%, #e6dbc3 68%, #c9b792 100%);
    --vf-cta-hover: linear-gradient(135deg, #f7efde 0%, #fbf7ef 32%, #ece2cd 68%, #d3c2a0 100%);
    --vf-on: #1d1a14;
    --vf-gold-text: linear-gradient(180deg, #f7efde 0%, #f4ecdc 50%, #d3c29e 100%);
    --vf-ink: #f5eddc;
}
.desktop-nav .nav-link.vf-nav-current {
    background: var(--vf-cta) !important; color: var(--vf-on) !important;
    box-shadow: 0 0 22px rgba(236, 224, 198, 0.28) !important; border-radius: 999px;
}
.desktop-nav .nav-link.vf-nav-current *, .desktop-nav .nav-link.vf-nav-current svg { color: var(--vf-on) !important; stroke: var(--vf-on) !important; }

/* ==========================================================================
   ПРОИЗВОДИТЕЛЬНОСТЬ: никакого backdrop-filter поверх живого фона
   (размытие пересчитывалось каждый кадр → лаги). Стекло = плотная заливка.
   ========================================================================== */
html.vf-cosmos body *:not(.vf-models):not(.vf-drop) { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
body.veo-generation-body { --vf-glass: rgba(10, 11, 11, 0.92); --vf-glass-2: rgba(12, 13, 13, 0.96); }
body.veo-generation-body .veo-settings-section,
body.veo-generation-body .veo-prompt-box,
body.veo-generation-body .veo-chats-panel,
body.veo-generation-body .veo-video-catalog-panel,
body.veo-generation-body .veo-chat-zoom-panel,
body.veo-generation-body .veo-custom-select-dropdown,
body.veo-generation-body .veo-tooltip { background: rgba(11, 12, 12, 0.94) !important; }
body.veo-generation-body .header, body.page-main .header, html.vf-cosmos .header { background: rgba(5, 6, 6, 0.94) !important; }
body.veo-generation-body .veo-prompt-wrapper { background: linear-gradient(180deg, transparent, rgba(4, 5, 5, 0.9) 45%) !important; }
body.page-main .vf-hero__composer { background: rgba(11, 12, 12, 0.95) !important; }
.vf-cosmos__haze { animation: none !important; }

/* ==========================================================================
   «ОБСЕРВАТОРИЯ»: чёрный бархат · белое золото
   ========================================================================== */
#vfCosmos { position: fixed; inset: 0; z-index: 0; background: #050505 !important; pointer-events: none; overflow: hidden; }
.vf-cosmos__sky { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.vf-cosmos__haze, .vf-cosmos__fx { display: none !important; }
.vf-cosmos__tw i {
    position: absolute; width: 2px; height: 2px; margin: -1px; border-radius: 50%;
    background: #fffaf0; box-shadow: 0 0 6px 1px rgba(255, 246, 224, 0.7);
    opacity: .15; animation: vf-tw 5s ease-in-out infinite;
}
.vf-cosmos__tw i::before, .vf-cosmos__tw i::after { content: ""; position: absolute; left: 50%; top: 50%; background: rgba(255, 246, 224, 0.55); transform: translate(-50%, -50%); }
.vf-cosmos__tw i::before { width: 10px; height: 0.5px; }
.vf-cosmos__tw i::after { width: 0.5px; height: 10px; }
@keyframes vf-tw { 0%, 100% { opacity: .1; transform: scale(.6); } 50% { opacity: 1; transform: scale(1); } }
.vf-cosmos__meteor {
    position: absolute; top: 12%; left: 8%; width: 160px; height: 1px; opacity: 0;
    background: linear-gradient(90deg, rgba(255, 250, 240, 0), rgba(255, 250, 240, 0.9));
    transform: rotate(24deg); transform-origin: right center;
    animation: vf-meteor 15s linear infinite 4s;
}
@keyframes vf-meteor {
    0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(24deg); }
    1% { opacity: 1; }
    6% { opacity: 0; transform: translate3d(calc(36vw / var(--vf-z, 1)), calc(16vw / var(--vf-z, 1)), 0) rotate(24deg); }
    100% { opacity: 0; transform: translate3d(calc(36vw / var(--vf-z, 1)), calc(16vw / var(--vf-z, 1)), 0) rotate(24deg); }
}
@media (prefers-reduced-motion: reduce) { .vf-cosmos__tw i, .vf-cosmos__meteor { animation: none !important; } }

/* армиллярная сфера в герое главной */
.vf-astro { position: relative; pointer-events: none; }
.vf-astro__cv { display: block; }
body.page-main .vf-hero__right { position: relative; }
body.page-main .vf-hero__right > .vf-astro {
    width: min(520px, calc(42vw / var(--vf-z, 1))); aspect-ratio: 1; margin: -40px auto -150px; z-index: 0;
}
body.page-main .vf-hero__right > .vf-hero__composer, body.page-main .vf-hero__right > .vf-hero__ideas { position: relative; z-index: 1; }
@media (max-width: 960px) {
    body.page-main .vf-hero__right > .vf-astro { width: min(360px, calc(86vw / var(--vf-z, 1))); margin: 0 auto -90px; }
    html.vf-cosmos--live body.page-main .vf-first-screen-overlay.vf-hero { padding-top: 84px !important; }
    body.page-main .vf-hero__grid { display: flex !important; flex-direction: column; }
    body.page-main .vf-hero__right { order: -1; }
}

/* металл: блик пробегает по главным кнопкам */
.vf-btn--solid, .vf-hero__go, body.veo-generation-body .veo-prompt-send, .profile-buy-btn, .vf-music .vf-btn--solid { position: relative; overflow: hidden; }
.vf-btn--solid::after, .vf-hero__go::after, .profile-buy-btn::after, .vf-music .vf-btn--solid::after {
    content: ""; position: absolute; top: 0; bottom: 0; left: -70%; width: 45%; pointer-events: none;
    background: linear-gradient(105deg, transparent, rgba(247, 239, 222, 0.85), transparent);
    transform: skewX(-18deg); animation: vf-metal 5.5s cubic-bezier(.22, 1, .36, 1) infinite;
}
@keyframes vf-metal { 0%, 62% { left: -70%; } 100% { left: 150%; } }
/* активные состояния — белое золото (вместо изумруда) */
body.veo-generation-body .veo-prompt-enter-btn[aria-pressed="true"],
body.veo-generation-body .veo-prompt-action[aria-pressed="true"] { color: #fffaf0 !important; }
body.page-main .vf-hero__title em {
    background: linear-gradient(100deg, #b5a27c 0%, #fffaf0 30%, #e6dbc3 55%, #fffaf0 75%, #b5a27c 100%) !important;
    background-size: 220% 100% !important; -webkit-background-clip: text !important; background-clip: text !important;
    animation: vf-sheen-text 7s ease-in-out infinite alternate !important;
}

/* ==========================================================================
   Инструменты промпта, всплывающие панели, шпаргалка, микро-анимации
   ========================================================================== */
.vf-tool {
    position: relative; width: 40px; height: 40px; min-width: 40px; display: grid; place-items: center;
    border-radius: 14px; border: 1px solid rgba(236, 224, 198, 0.14);
    background: linear-gradient(180deg, rgba(255, 252, 245, 0.07), rgba(255, 252, 245, 0.02));
    box-shadow: 0 1px 0 rgba(255, 252, 245, 0.12) inset, 0 6px 18px rgba(0, 0, 0, 0.35);
    color: #f5eddc; cursor: pointer;
    transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), border-color 0.25s, background 0.25s;
}
.vf-tool svg { width: 19px; height: 19px; stroke: currentColor; fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.5s cubic-bezier(.34, 1.56, .64, 1); }
.vf-tool:hover { border-color: rgba(236, 224, 198, 0.45); transform: translateY(-2px); }
.vf-tool:hover svg { transform: scale(1.12) rotate(-6deg); }
.vf-tool--hist:hover svg { transform: rotate(-40deg) scale(1.1); }
.vf-tool--clear:hover svg { transform: rotate(90deg) scale(1.1); }
.vf-tool:active { transform: scale(0.92); }
.veo-prompt-control-left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
@media (max-width: 960px) { .vf-tool--keys { display: none !important; } }

.vf-pop {
    position: fixed; z-index: 9500; max-height: min(calc(60vh / var(--vf-z, 1)), 460px); display: flex; flex-direction: column;
    border-radius: 20px; border: 1px solid rgba(236, 224, 198, 0.22);
    background: rgba(10, 11, 11, 0.98); box-shadow: 0 30px 90px rgba(0, 0, 0, 0.8), 0 0 50px rgba(236, 224, 198, 0.05);
    font-family: "Inter", sans-serif; color: #f5eddc;
    animation: vf-pop-in 0.35s cubic-bezier(.22, 1, .36, 1) both; transform-origin: 20% 100%;
}
@keyframes vf-pop-in { from { opacity: 0; transform: translateY(8px) scale(0.97); } }
.vf-pop__head { padding: 14px 16px 8px; font: 700 0.66rem/1 "Inter", sans-serif; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(236, 224, 198, 0.8); }
.vf-pop__body { overflow-y: auto; padding: 0 8px 10px; }
.vf-pop__tabs { display: flex; gap: 6px; padding: 2px 8px 10px; overflow-x: auto; scrollbar-width: none; }
.vf-pop__tabs::-webkit-scrollbar { display: none; }
.vf-pop__tabs button { flex: 0 0 auto; padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(236, 224, 198, 0.16); background: transparent; color: rgba(245, 237, 220, 0.65); font: 600 0.76rem/1 "Inter", sans-serif; cursor: pointer; transition: all 0.25s; }
.vf-pop__tabs button:hover { color: #f7efde; border-color: rgba(236, 224, 198, 0.4); }
.vf-pop__tabs button.is-on { background: var(--vf-cta); color: var(--vf-on); border-color: transparent; }
.vf-pop__list { display: flex; flex-direction: column; gap: 4px; }
.vf-pop__item {
    text-align: left; padding: 11px 12px; border-radius: 12px; border: 1px solid transparent; background: rgba(255, 252, 245, 0.03);
    color: rgba(245, 237, 220, 0.82); font: 500 0.83rem/1.45 "Inter", sans-serif; cursor: pointer;
    opacity: 0; animation: vf-chip-in 0.4s cubic-bezier(.22, 1, .36, 1) forwards;
    transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.3s cubic-bezier(.22, 1, .36, 1);
}
.vf-pop__item:hover { background: rgba(236, 224, 198, 0.1); border-color: rgba(236, 224, 198, 0.25); color: #f7efde; transform: translateX(3px); }
.vf-pop__empty { padding: 18px 12px; color: rgba(245, 237, 220, 0.5); font-size: 0.84rem; line-height: 1.6; }

.vf-keys { position: fixed; inset: 0; z-index: 9600; display: grid; place-items: center; padding: 20px; background: rgba(0, 0, 0, 0.7); opacity: 0; transition: opacity 0.25s; }
.vf-keys.is-on { opacity: 1; }
.vf-keys__box { width: min(520px, 100%); border-radius: 26px; padding: 22px; background: rgba(11, 12, 12, 0.98); border: 1px solid rgba(236, 224, 198, 0.22); box-shadow: 0 40px 120px rgba(0, 0, 0, 0.8); transform: translateY(12px) scale(0.98); transition: transform 0.4s cubic-bezier(.22, 1, .36, 1); }
.vf-keys.is-on .vf-keys__box { transform: none; }
.vf-keys__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.vf-keys__head b { font: 800 1.15rem/1 "Unbounded", sans-serif; background: var(--vf-gold-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vf-keys__grid { display: grid; gap: 8px; }
.vf-keys__row { display: flex; align-items: center; gap: 12px; color: rgba(245, 237, 220, 0.75); font-size: 0.88rem; }
.vf-keys__row kbd { min-width: 96px; text-align: center; }
kbd.vf-kbd { display: inline-block; padding: 5px 10px; border-radius: 8px; border: 1px solid rgba(236, 224, 198, 0.3); border-bottom-width: 2px; background: rgba(255, 252, 245, 0.05); font: 700 0.75rem/1.2 "Inter", sans-serif; color: #f5eddc; }
.vf-keys__toggle { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(236, 224, 198, 0.12); color: rgba(245, 237, 220, 0.7); font-size: 0.84rem; line-height: 1.5; cursor: pointer; }
.vf-keys__toggle input { margin-top: 3px; accent-color: #e8dcc2; }

/* появление панелей при загрузке */
.vf-enter { animation: vf-enter 0.7s cubic-bezier(.22, 1, .36, 1) both; animation-delay: var(--vf-d, 0ms); }
@keyframes vf-enter { from { opacity: 0; transform: translateY(14px); } }

/* отклик на нажатие у всех кнопок интерфейса генерации */
body.veo-generation-body button:not(:disabled):active,
body.veo-generation-body .veo-custom-select-trigger:active { transform: scale(0.96); }
body.veo-generation-body .veo-custom-select-trigger { transition: transform 0.25s cubic-bezier(.34, 1.56, .64, 1), border-color 0.25s, background 0.25s !important; }
/* подсказки: плавно выезжают */
body.veo-generation-body .veo-has-tooltip .veo-tooltip { transition: opacity 0.2s, transform 0.3s cubic-bezier(.22, 1, .36, 1) !important; }
/* смена значения в селекте — короткая вспышка */
.vf-flash { animation: vf-flash 0.7s ease-out; }
@keyframes vf-flash { 0% { box-shadow: 0 0 0 0 rgba(236, 224, 198, 0.55); } 100% { box-shadow: 0 0 0 10px rgba(236, 224, 198, 0); } }
@media (max-width: 960px) {
    body.veo-generation-body.mobile-version .vf-tool--clear,
    body.veo-generation-body.mobile-version .vf-dice { display: none !important; }
    body.veo-generation-body.mobile-version .vf-tool { width: 36px; height: 36px; min-width: 36px; border-radius: 12px; }
    body.veo-generation-body.mobile-version .veo-prompt-control-left { gap: 6px; flex-wrap: nowrap; }
    body.veo-generation-body.mobile-version .veo-prompt-control-bar { flex-wrap: nowrap !important; }
    body.veo-generation-body.mobile-version .veo-prompt-control-right { gap: 6px !important; flex-wrap: nowrap !important; min-width: 0; }
}
@media (max-width: 960px) { .vf-toast { bottom: auto !important; top: calc(env(safe-area-inset-top, 0px) + 74px) !important; transform: translate(-50%, -12px) !important; } .vf-toast.is-on { transform: translate(-50%, 0) !important; } }
.vf-toast { z-index: 10050 !important; white-space: nowrap; }
@media (max-width: 960px) { .vf-toast { top: calc(env(safe-area-inset-top, 0px) + 122px) !important; } }

/* ==========================================================================
   ЧАТ v4 — ровная лента: один пузырь, тонкая служебная строка, без коробок
   ========================================================================== */
html body.veo-generation-body .veo-chat-message--user,
html body.veo-generation-body .veo-chat-message--user .veo-chat-message-user-content {
    background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important;
}
html body.veo-generation-body .veo-chat-message--user .veo-chat-message-user-content {
    display: flex !important; flex-direction: column; align-items: flex-end; gap: 6px; max-width: min(620px, 82%); margin-left: auto;
}
html body.veo-generation-body .veo-chat-message--user .veo-chat-message-bubble {
    background: linear-gradient(180deg, rgba(255, 252, 245, 0.11), rgba(255, 252, 245, 0.06)) !important;
    border: 1px solid rgba(236, 224, 198, 0.2) !important;
    border-radius: 22px 22px 6px 22px !important;
    padding: 12px 18px !important;
    color: #f5eddc !important; font-size: 0.97rem; line-height: 1.55;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 252, 245, 0.08) !important;
    max-width: 100%; width: auto !important; min-height: 0 !important;
}
html body.veo-generation-body .veo-user-message-footer {
    display: flex !important; align-items: center; gap: 10px; flex-direction: row-reverse;
    background: transparent !important; border: 0 !important; padding: 0 4px !important; margin: 0 !important;
    color: rgba(245, 237, 220, 0.38) !important; font-size: 0.72rem;
}
html body.veo-generation-body .veo-user-message-timestamp { color: rgba(245, 237, 220, 0.38) !important; font-size: 0.72rem !important; }
html body.veo-generation-body .veo-user-message-actions { display: flex; gap: 2px; opacity: 0; transform: translateX(6px); transition: opacity 0.25s, transform 0.35s cubic-bezier(.22, 1, .36, 1); }
html body.veo-generation-body .veo-chat-message--user:hover .veo-user-message-actions,
html body.veo-generation-body.mobile-version .veo-user-message-actions { opacity: 1; transform: none; }
html body.veo-generation-body .veo-user-msg-btn {
    width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px !important;
    background: transparent !important; border: 0 !important; color: rgba(245, 237, 220, 0.55) !important; cursor: pointer; box-shadow: none !important;
}
html body.veo-generation-body .veo-user-msg-btn:hover { background: rgba(255, 252, 245, 0.08) !important; color: #f7efde !important; }
html body.veo-generation-body .veo-user-msg-btn svg { width: 15px; height: 15px; }
html body.veo-generation-body .veo-chat-message-media { display: flex; gap: 6px; justify-content: flex-end; }
html body.veo-generation-body .veo-chat-media-preview { border-radius: 14px !important; overflow: hidden; border: 1px solid rgba(236, 224, 198, 0.2) !important; }

/* ответ: слева вертикальная панель действий */
html body.veo-generation-body .veo-chat-message--assistant .veo-result-toolbar {
    background: rgba(12, 13, 13, 0.9) !important; border: 1px solid rgba(236, 224, 198, 0.16) !important;
    border-radius: 18px !important; padding: 6px !important; gap: 6px !important;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.5) !important;
}
html body.veo-generation-body .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn {
    width: 38px !important; height: 38px !important; border-radius: 12px !important;
    background: rgba(255, 252, 245, 0.05) !important; border: 1px solid rgba(236, 224, 198, 0.12) !important;
    color: rgba(245, 237, 220, 0.8) !important; box-shadow: none !important;
    transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), background 0.2s, color 0.2s !important;
}
html body.veo-generation-body .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn:hover { background: rgba(236, 224, 198, 0.14) !important; color: #f7efde !important; transform: scale(1.08); }
html body.veo-generation-body .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon { background: var(--vf-cta) !important; border: 0 !important; }
html body.veo-generation-body .veo-chat-message--assistant .veo-chat-message-meta,
html body.veo-generation-body .veo-chat-message--assistant .veo-chat-message-meta * { color: rgba(245, 237, 220, 0.42) !important; font-size: 0.74rem; }
html body.veo-generation-body .veo-video-wrapper--unavailable { background: rgba(12, 13, 13, 0.92) !important; border: 1px dashed rgba(236, 224, 198, 0.25) !important; }
html body.veo-generation-body .veo-video-wrapper--unavailable a { color: #f4ecdc !important; }

/* появление сообщений */
html body.veo-generation-body .veo-chat-message--user { animation: vf-in-r 0.55s cubic-bezier(.22, 1, .36, 1) both !important; }
html body.veo-generation-body .veo-chat-message--assistant { animation: vf-in-l 0.65s cubic-bezier(.22, 1, .36, 1) both !important; }
@keyframes vf-in-r { from { opacity: 0; transform: translate(14px, 10px); } }
@keyframes vf-in-l { from { opacity: 0; transform: translate(-14px, 10px); } }

/* ==========================================================================
   ПАНЕЛЬ ВВОДА — один ряд, крестик очистки внутри поля
   ========================================================================== */
@media (min-width: 961px) {
    html body.veo-generation-body .veo-prompt-control-bar { flex-wrap: nowrap !important; align-items: center !important; gap: 8px !important; }
    html body.veo-generation-body .veo-prompt-control-left { flex-wrap: nowrap !important; flex: 0 1 auto; min-width: 0; }
    html body.veo-generation-body .veo-prompt-control-right { flex-wrap: nowrap !important; flex: 0 0 auto; margin-left: auto; }
}
.vf-tool--keys, .vf-tool--clear { display: none !important; }
html body.veo-generation-body .veo-prompt-input-zone { position: relative; }
.vf-clear-x {
    position: absolute; top: 8px; right: 8px; z-index: 3; width: 26px; height: 26px; display: grid; place-items: center;
    border-radius: 50%; border: 1px solid rgba(236, 224, 198, 0.22); background: rgba(12, 13, 13, 0.9); color: rgba(245, 237, 220, 0.7);
    cursor: pointer; opacity: 0; transform: scale(0.6); pointer-events: none;
    transition: opacity 0.2s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1), color 0.2s, background 0.2s;
}
.vf-clear-x svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 2.2; stroke-linecap: round; }
.vf-clear-x.is-on { opacity: 1; transform: none; pointer-events: auto; }
.vf-clear-x:hover { color: #1d1a14; background: var(--vf-cta); border-color: transparent; transform: rotate(90deg); }

/* ==========================================================================
   ЖИВОЙ ФОН — только transform/opacity (дёшево для видеокарты)
   ========================================================================== */
.vf-cosmos__dome { position: absolute; left: 50%; top: 50%; will-change: transform; animation: vf-dome 420s linear infinite; }
.vf-cosmos__dome canvas { display: block; }
@keyframes vf-dome { from { transform: translate(-50%, -50%) rotate(0deg); } to { transform: translate(-50%, -50%) rotate(360deg); } }
.vf-cosmos__neb { position: absolute; border-radius: 50%; will-change: transform, opacity; pointer-events: none; }
.vf-cosmos__neb--a { width: calc(70vmax / var(--vf-z, 1)); height: calc(70vmax / var(--vf-z, 1)); left: calc(-22vmax / var(--vf-z, 1)); top: calc(-30vmax / var(--vf-z, 1)); background: radial-gradient(circle, rgba(236, 224, 198, 0.13) 0%, rgba(236, 224, 198, 0.045) 35%, transparent 65%); animation: vf-neb-a 46s ease-in-out infinite alternate; }
.vf-cosmos__neb--b { width: calc(60vmax / var(--vf-z, 1)); height: calc(60vmax / var(--vf-z, 1)); right: calc(-24vmax / var(--vf-z, 1)); bottom: calc(-30vmax / var(--vf-z, 1)); background: radial-gradient(circle, rgba(214, 197, 160, 0.11) 0%, rgba(214, 197, 160, 0.04) 35%, transparent 65%); animation: vf-neb-b 58s ease-in-out infinite alternate; }
.vf-cosmos__neb--c { width: calc(40vmax / var(--vf-z, 1)); height: calc(40vmax / var(--vf-z, 1)); left: 40%; top: 30%; background: radial-gradient(circle, rgba(255, 250, 240, 0.07) 0%, transparent 60%); animation: vf-neb-c 34s ease-in-out infinite alternate; }
@keyframes vf-neb-a { to { transform: translate3d(calc(14vw / var(--vf-z, 1)), calc(10vh / var(--vf-z, 1)), 0) scale(1.15); opacity: .7; } }
@keyframes vf-neb-b { to { transform: translate3d(calc(-12vw / var(--vf-z, 1)), calc(-8vh / var(--vf-z, 1)), 0) scale(0.9); opacity: .6; } }
@keyframes vf-neb-c { 0% { transform: translate3d(calc(-10vw / var(--vf-z, 1)), calc(6vh / var(--vf-z, 1)), 0) scale(.8); opacity: .3; } 100% { transform: translate3d(calc(8vw / var(--vf-z, 1)), calc(-6vh / var(--vf-z, 1)), 0) scale(1.2); opacity: 1; } }
.vf-shoot { position: absolute; height: 1.2px; width: 180px; border-radius: 2px; pointer-events: none; opacity: 0;
    background: linear-gradient(90deg, rgba(255, 250, 240, 0), rgba(255, 250, 240, 0.95)); transform-origin: right center;
    animation: vf-shoot 1.1s cubic-bezier(.3, .6, .4, 1) forwards; }
.vf-shoot::after { content: ""; position: absolute; right: -2px; top: -2px; width: 5px; height: 5px; border-radius: 50%; background: #f7efde; box-shadow: 0 0 10px 3px rgba(255, 246, 224, 0.8); }
@keyframes vf-shoot { 0% { opacity: 0; transform: rotate(var(--a)) translateX(0); } 12% { opacity: 1; } 100% { opacity: 0; transform: rotate(var(--a)) translateX(var(--d)); } }
.vf-cosmos__meteor { display: none !important; }
.vf-cosmos__sky { display: none !important; }
@media (prefers-reduced-motion: reduce) { .vf-cosmos__dome, .vf-cosmos__neb { animation: none !important; } }
.vf-cosmos__vig { position: absolute; inset: 0; background: radial-gradient(120% 90% at 50% 45%, transparent 55%, rgba(0, 0, 0, 0.6)); pointer-events: none; }
@media (max-width: 960px) {
    html body.veo-generation-body.mobile-version .veo-chat-message--user { width: auto !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; transform: none; box-sizing: border-box; padding-right: 2px !important; }
    html body.veo-generation-body.mobile-version .veo-chat-message--user .veo-chat-message-user-content { max-width: 86% !important; }
    html body.veo-generation-body.mobile-version .veo-chat-message--assistant { max-width: 100% !important; box-sizing: border-box; }
    html body.veo-generation-body.mobile-version .veo-chat-message--assistant .veo-result-toolbar { padding: 4px !important; gap: 4px !important; border-radius: 14px !important; }
    html body.veo-generation-body.mobile-version .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn { width: 32px !important; height: 32px !important; border-radius: 10px !important; }
    html body.veo-generation-body.mobile-version .veo-chat-message--assistant .veo-video-wrapper { max-width: calc(calc(100vw / var(--vf-z, 1)) - 86px) !important; }
}

/* ==========================================================================
   Правки по скриншотам: карточка «недоступно», фильтр, загрузчик по центру
   ========================================================================== */

/* --- «Видео недоступно» / «Изображение не загрузилось» --- */
html body.veo-generation-body .veo-video-unavailable { background: transparent !important; }
html body.veo-generation-body .veo-video-unavailable-inner { display: grid !important; place-items: center !important; width: 100%; height: 100%; padding: 18px !important; box-sizing: border-box; background: transparent !important; }
html body.veo-generation-body .veo-video-unavailable-card {
    width: min(100%, 320px); box-sizing: border-box; text-align: center; padding: 26px 22px 22px !important;
    border-radius: 22px !important; border: 1px solid rgba(236, 224, 198, 0.16) !important;
    background: radial-gradient(120% 80% at 50% 0%, rgba(236, 224, 198, 0.07), transparent 60%), rgba(10, 11, 11, 0.94) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 252, 245, 0.06) !important;
    display: flex !important; flex-direction: column; align-items: center; gap: 10px;
}
html body.veo-generation-body .veo-video-unavailable-icon {
    width: 52px !important; height: 52px !important; border-radius: 16px !important; display: grid !important; place-items: center;
    background: rgba(255, 252, 245, 0.05) !important; border: 1px solid rgba(236, 224, 198, 0.2) !important; box-shadow: none !important; margin: 0 0 4px !important;
}
html body.veo-generation-body .veo-video-unavailable-icon svg { width: 24px; height: 24px; color: rgba(236, 224, 198, 0.85) !important; stroke: currentColor; }
html body.veo-generation-body .veo-video-unavailable-badge {
    margin: 0 !important; padding: 5px 10px; border-radius: 999px; border: 1px solid rgba(236, 224, 198, 0.18);
    font: 700 0.6rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.14em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.75) !important; background: transparent !important;
}
html body.veo-generation-body .veo-video-unavailable-title { margin: 2px 0 0 !important; font: 700 1.05rem/1.25 "Unbounded", "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; }
html body.veo-generation-body .veo-video-unavailable-text { margin: 0 !important; font: 400 0.82rem/1.55 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.55) !important; }
html body.veo-generation-body .veo-video-unavailable-text a,
html body.veo-generation-body .veo-video-unavailable-link,
html body.veo-generation-body .veo-video-unavailable-accent { color: #f4ecdc !important; text-decoration: none !important; border-bottom: 1px solid rgba(236, 224, 198, 0.45); }
html body.veo-generation-body .veo-video-unavailable-text a:hover, html body.veo-generation-body .veo-video-unavailable-link:hover { color: #f7efde !important; border-bottom-color: #f7efde; }

/* --- Фильтр чата: один крестик, нормальный переключатель --- */
html body.veo-generation-body .veo-video-catalog-close::before,
html body.veo-generation-body .veo-video-catalog-close::after { display: none !important; content: none !important; }
html body.veo-generation-body .veo-video-catalog-close {
    width: 34px !important; height: 34px !important; border-radius: 50% !important; display: grid !important; place-items: center;
    background: rgba(255, 252, 245, 0.05) !important; border: 1px solid rgba(236, 224, 198, 0.18) !important; color: #f5eddc !important;
    transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), background 0.2s !important;
}
html body.veo-generation-body .veo-video-catalog-close:hover { transform: rotate(90deg); background: rgba(236, 224, 198, 0.14) !important; }
html body.veo-generation-body .veo-video-catalog-close svg { width: 16px; height: 16px; }
html body.veo-generation-body .veo-filter-row--toggle { display: flex !important; align-items: center; justify-content: space-between; gap: 14px; }
html body.veo-generation-body .veo-filter-toggle-switch { position: relative !important; display: inline-block !important; width: 46px !important; height: 26px !important; flex: 0 0 46px; cursor: pointer; }
html body.veo-generation-body .veo-filter-toggle-input { position: absolute !important; inset: 0; opacity: 0 !important; margin: 0 !important; width: 100% !important; height: 100% !important; cursor: pointer; z-index: 2; }
html body.veo-generation-body .veo-filter-toggle-track {
    position: absolute !important; inset: 0 !important; width: auto !important; height: auto !important; border-radius: 999px !important;
    background: rgba(255, 252, 245, 0.08) !important; border: 1px solid rgba(236, 224, 198, 0.22) !important; box-shadow: none !important;
    transition: background 0.25s, border-color 0.25s !important;
}
html body.veo-generation-body .veo-filter-toggle-thumb {
    position: absolute !important; top: 4px !important; left: 4px !important; width: 18px !important; height: 18px !important; border-radius: 50% !important;
    background: rgba(245, 237, 220, 0.75) !important; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4) !important; transform: none;
    transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), background 0.25s !important; pointer-events: none; display: block !important;
}
html body.veo-generation-body .veo-filter-toggle-thumb > * { display: none !important; }
html body.veo-generation-body .veo-filter-toggle-input:checked + .veo-filter-toggle-track { background: var(--vf-cta) !important; border-color: transparent !important; }
html body.veo-generation-body .veo-filter-toggle-input:checked ~ .veo-filter-toggle-thumb { transform: translateX(20px) !important; background: #1d1a14 !important; }
html body.veo-generation-body .veo-video-catalog-panel { border-radius: 24px !important; }

/* --- Загрузчик генерации: всё строго по центру карточки --- */
html body.veo-generation-body .veo-generating-placeholder { position: relative !important; display: block !important; }
html body.veo-generation-body .veo-generating-center {
    position: absolute !important; inset: 0 !important; margin: 0 !important; padding: 20px !important; box-sizing: border-box;
    display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center; gap: 16px !important;
}
html body.veo-generation-body .veo-generating-loader { margin: 0 auto !important; flex: 0 0 auto; }
html body.veo-generation-body .vf-gen-meta { margin: 0 auto !important; align-items: center; }
html body.veo-generation-body .veo-generating-badge { position: absolute !important; top: 14px !important; left: 14px !important; z-index: 3; }
html body.veo-generation-body .veo-video-catalog-panel { background: rgba(10, 11, 11, 0.985) !important; box-shadow: 0 30px 100px rgba(0, 0, 0, 0.85) !important; }
html body.veo-generation-body .veo-video-catalog-backdrop { background: rgba(0, 0, 0, 0.6) !important; }
html body.veo-generation-body .veo-video-wrapper--unavailable,
html body.veo-generation-body .veo-video-wrapper[data-vf-nano-img-gone] { border: 0 !important; background: transparent !important; box-shadow: none !important; }
html body.veo-generation-body .veo-video-wrapper--unavailable:hover { transform: none !important; }
html body.veo-generation-body .veo-video-unavailable-inner { padding: 0 !important; }
html body.veo-generation-body .veo-video-unavailable-card { width: 100% !important; max-width: 340px; height: 100%; justify-content: center; }
html body.veo-generation-body .veo-video-unavailable-badge { letter-spacing: 0.1em !important; white-space: nowrap; }

/* «Мои генерации»: ровная сетка квадратов, понятные состояния */
.vf-gallery__grid { grid-auto-rows: auto !important; align-items: start; }
.vf-gal-item { height: 0 !important; min-height: 0 !important; aspect-ratio: auto !important; padding: 0 0 100% 0 !important; display: block !important; }
.vf-gal-item video { position: absolute; inset: 0; }
.vf-gal-state { position: absolute; inset: 0; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 8px; font-style: normal; color: rgba(245, 237, 220, 0.5); font-size: 1.1rem; }
.vf-gal-state svg { width: 26px; height: 26px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; }
.vf-gal-state em { font-style: normal; font-size: 0.7rem; letter-spacing: .04em; color: rgba(245, 237, 220, 0.42); }
body.vf-gal-open .vf-mygen { opacity: 0 !important; pointer-events: none !important; }
.vf-gal-item span { max-height: calc(2 * 1.35em + 30px); }

/* ==========================================================================
   Шапка: «Войти» (гость) и аватар (вошёл) — одинаково на всех страницах
   ========================================================================== */
html body .profile-user-avatar.veo-avatar-login {
    width: auto !important; min-width: 0 !important; height: 36px !important; border-radius: 999px !important;
    display: inline-flex !important; align-items: center; gap: 8px; padding: 0 16px 0 7px !important;
    background: rgba(255, 252, 245, 0.06) !important; border: 1px solid rgba(236, 224, 198, 0.25) !important;
    box-shadow: none !important; overflow: visible !important; cursor: pointer;
    transition: background 0.25s, border-color 0.25s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1);
}
html body .profile-user-avatar.veo-avatar-login:hover { background: rgba(236, 224, 198, 0.14) !important; border-color: rgba(236, 224, 198, 0.5) !important; transform: translateY(-1px); }
html body .profile-user-avatar.veo-avatar-login .veo-login-icon { display: inline-flex !important; width: 24px; height: 24px; align-items: center; justify-content: center; }
html body .profile-user-avatar.veo-avatar-login .veo-login-icon img { width: 22px !important; height: 22px !important; display: block !important; filter: invert(1) brightness(1.1) !important; }
html body .profile-user-avatar.veo-avatar-login .profile-avatar-letter {
    display: inline !important; position: static !important; font: 700 0.86rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important;
    white-space: nowrap; width: auto !important; height: auto !important; background: none !important;
}
html body .profile-user-avatar.veo-avatar-login > img, html body .profile-user-avatar.veo-avatar-login .veo-avatar-fallback-icon { display: none !important; }
html body .profile-user-avatar:not(.veo-avatar-login) {
    border-radius: 50% !important; box-shadow: 0 0 0 2px rgba(236, 224, 198, 0.55), 0 0 18px rgba(236, 224, 198, 0.18) !important; border: 0 !important; overflow: hidden;
}

/* ==========================================================================
   Студия: кнопки панели ввода — единая полоса без рамок
   ========================================================================== */
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar { padding: 8px 10px 12px !important; gap: 2px !important; }
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .vf-tool,
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .vf-dice,
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .veo-photo-upload-btn,
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .veo-prompt-action,
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .veo-prompt-enter-btn {
    background: transparent !important; border: 1px solid transparent !important; box-shadow: none !important;
    width: 40px !important; height: 40px !important; min-width: 40px; border-radius: 12px !important; color: rgba(245, 237, 220, 0.72) !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .vf-tool:hover,
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .vf-dice:hover,
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .veo-photo-upload-btn:hover,
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .veo-prompt-action:hover,
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .veo-prompt-enter-btn:hover {
    background: rgba(236, 224, 198, 0.1) !important; border-color: rgba(236, 224, 198, 0.18) !important; color: #f7efde !important;
}
html body.veo-generation-body .veo-prompt-control-bar .veo-prompt-enter-btn[aria-pressed="true"],
html body.veo-generation-body .veo-prompt-control-bar .veo-prompt-action[aria-pressed="true"] {
    background: rgba(236, 224, 198, 0.16) !important; border-color: rgba(236, 224, 198, 0.45) !important; color: #f7efde !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar .veo-photo-upload-btn { width: auto !important; padding: 0 10px !important; }
html body.veo-generation-body .veo-prompt-tokens { background: transparent !important; border: 1px solid rgba(236, 224, 198, 0.22) !important; height: 32px; padding: 0 12px !important; display: inline-flex !important; align-items: center; }
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-send { height: 52px !important; border-radius: 16px !important; font-size: 0.86rem; margin-top: 8px; }
html body .profile-user-avatar.veo-avatar-login .profile-avatar-letter { text-transform: none !important; letter-spacing: 0 !important; }

/* ==========================================================================
   Эмблема модели в приветствии: «корона» — кольцо со световым шлейфом,
   кольцо-шкала навстречу, волны света. Без 3D-наклона и боковых точек.
   ========================================================================== */
html body.veo-generation-body .vf-orbit { width: 150px !important; height: 150px !important; perspective: none !important; }
html body.veo-generation-body .vf-orbit::before {
    inset: -18% !important;
    background: radial-gradient(circle, rgba(255, 246, 224, 0.22) 0%, rgba(236, 224, 198, 0.07) 38%, transparent 66%) !important;
    animation: vf-breathe 5s ease-in-out infinite !important;
}
/* кольцо 1: тонкая окружность + бегущий световой шлейф */
html body.veo-generation-body .vf-orbit__ring--a {
    inset: 4px !important; transform: none !important; border: 0 !important; border-radius: 50%;
    background: conic-gradient(from 0deg, rgba(236, 224, 198, 0) 0deg, rgba(236, 224, 198, 0) 200deg, rgba(236, 224, 198, 0.35) 290deg, #fffaf0 352deg, rgba(236, 224, 198, 0) 360deg) !important;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1.6px), #000 calc(100% - 1.2px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 1.6px), #000 calc(100% - 1.2px));
    animation: vf-ring-spin 4.5s linear infinite !important;
}
html body.veo-generation-body .vf-orbit__ring--a::after {
    top: 50% !important; left: auto !important; right: -2px; width: 7px !important; height: 7px !important; margin: -3.5px 0 0 !important;
    background: #f7efde !important; box-shadow: 0 0 12px 4px rgba(255, 246, 224, 0.85) !important; transform: rotate(0deg);
}
/* статичная тонкая окружность под шлейфом */
html body.veo-generation-body .vf-orbit { background: radial-gradient(farthest-side, transparent calc(100% - 5px), rgba(236, 224, 198, 0.16) calc(100% - 4.5px), rgba(236, 224, 198, 0.16) calc(100% - 4px), transparent calc(100% - 3.5px)); border-radius: 50%; }
/* кольцо 2: шкала-деления, вращается навстречу */
html body.veo-generation-body .vf-orbit__ring--b {
    inset: 20px !important; transform: none !important; border: 0 !important; border-radius: 50%;
    background: repeating-conic-gradient(from 0deg, rgba(236, 224, 198, 0.55) 0deg 1.2deg, transparent 1.2deg 10deg) !important;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 5px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 5px));
    opacity: 0.55; animation: vf-ring-spin 40s linear infinite reverse !important;
}
html body.veo-generation-body .vf-orbit__ring--b::after { display: none !important; }
@keyframes vf-ring-spin { to { transform: rotate(360deg); } }
/* волны света от иконки */
html body.veo-generation-body .vf-orbit::after {
    content: ""; position: absolute; left: 50%; top: 50%; width: 76px; height: 76px; margin: -38px 0 0 -38px; border-radius: 26px;
    border: 1px solid rgba(255, 246, 224, 0.5); pointer-events: none;
    animation: vf-wave 3.2s cubic-bezier(.22, 1, .36, 1) infinite;
}
@keyframes vf-wave { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.9); opacity: 0; border-radius: 50%; } }
/* сама иконка: тёмный камень с золотой огранкой */
html body.veo-generation-body .vf-orbit .veo-welcome-chat-icon {
    width: 76px !important; height: 76px !important; border-radius: 24px !important;
    background: linear-gradient(150deg, #23211c 0%, #0b0b0a 55%, #16140f 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.4) !important;
    box-shadow: 0 0 0 4px rgba(236, 224, 198, 0.05), 0 14px 40px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 252, 245, 0.25), 0 0 40px rgba(255, 246, 224, 0.15) !important;
    animation: vf-float 6s ease-in-out infinite !important;
}
@media (prefers-reduced-motion: reduce) { html body.veo-generation-body .vf-orbit *, html body.veo-generation-body .vf-orbit::after { animation: none !important; } }

/* ==========================================================================
   Все иконки моделей — в белом золоте
   ========================================================================== */
html body .veo-welcome-chat-icon img,
html body .veo-ai-icon-badge:not(.veo-toolbar-ai-icon) img,
html body .vf-nano-family-opt-badge img,
html body .veo-custom-select-trigger .veo-ai-icon-badge img,
html body .veo-custom-select-option img,
html body .veo-mobile-toolbar-model-badge img,
html body .vf-model__ic img,
html body .vf-marquee__track img {
    filter: grayscale(1) brightness(0.84) sepia(1) saturate(0.62) brightness(1.02) !important;
}
html body .veo-ai-icon-badge:not(.veo-toolbar-ai-icon),
html body .vf-nano-family-opt-badge,
html body .vf-model__ic {
    background: linear-gradient(150deg, #23211c 0%, #0b0b0a 60%, #16140f 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.32) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.18) !important;
}
/* иконки-svg моделей (если есть) тоже в шампанском */
html body .veo-ai-icon-badge:not(.veo-toolbar-ai-icon) svg { color: #f4ecdc !important; fill: currentColor; }

/* ==========================================================================
   ХЕДЕР: меню-капсула с плавающей «линзой» белого золота
   ========================================================================== */
html body .header { border-bottom: 0 !important; }
html body .header::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; pointer-events: none;
    background: linear-gradient(90deg, transparent 0%, rgba(236, 224, 198, 0.08) 15%, rgba(236, 224, 198, 0.4) 50%, rgba(236, 224, 198, 0.08) 85%, transparent 100%);
}
html body .desktop-nav {
    position: relative; display: inline-flex !important; align-items: center; gap: 2px !important;
    padding: 4px !important; border-radius: 999px !important;
    background: rgba(255, 252, 245, 0.035) !important; border: 1px solid rgba(236, 224, 198, 0.13) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.05) !important;
}
html body .desktop-nav .nav-link {
    position: relative; z-index: 1; display: inline-flex !important; align-items: center; gap: 8px !important;
    padding: 8px 16px !important; border-radius: 999px !important; background: transparent !important; box-shadow: none !important;
    color: rgba(245, 237, 220, 0.62) !important; font: 600 0.88rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.005em;
    transition: color 0.3s ease !important;
}
html body .desktop-nav .nav-link::after, html body .desktop-nav .nav-link::before { display: none !important; }
html body .desktop-nav .nav-link:hover { color: #f5eddc !important; background: transparent !important; }
html body .desktop-nav .nav-link.vf-nav-current { background: transparent !important; box-shadow: none !important; color: #1d1a14 !important; }
html body .desktop-nav.vf-nav-hovering .nav-link.vf-nav-current:not(:hover) { color: rgba(245, 237, 220, 0.62) !important; }
html body .desktop-nav.vf-nav-hovering .nav-link.vf-nav-current:not(:hover) * { color: rgba(245, 237, 220, 0.62) !important; stroke: currentColor !important; }
html body .desktop-nav.vf-nav-hovering .nav-link:hover, html body .desktop-nav.vf-nav-hovering .nav-link:hover * { color: #1d1a14 !important; }
html body .desktop-nav .nav-link-icon { display: inline-flex; width: 18px; height: 18px; }
html body .desktop-nav .nav-link-icon svg { width: 18px !important; height: 18px !important; stroke-width: 1.7 !important; transition: transform 0.55s cubic-bezier(.34, 1.56, .64, 1) !important; }
html body .desktop-nav .nav-link:hover .nav-link-icon-home svg { transform: translateY(-2px) scale(1.08); }
html body .desktop-nav .nav-link:hover .nav-link-icon-video svg { transform: translateX(2px) scale(1.08); }
html body .desktop-nav .nav-link:hover .nav-link-icon-image svg { transform: rotate(-8deg) scale(1.1); }
html body .desktop-nav .nav-link:hover .nav-link-icon-music svg { animation: vf-nav-music 0.7s ease-in-out; }
html body .desktop-nav .nav-link:hover .nav-link-icon-text svg { transform: translateY(-2px) rotate(-6deg) scale(1.08); }
@keyframes vf-nav-music { 25% { transform: rotate(-12deg) scale(1.1); } 60% { transform: rotate(10deg) scale(1.1); } }
.vf-nav-lens {
    position: absolute; z-index: 0; top: 4px; bottom: 4px; left: 0; width: 0; border-radius: 999px; pointer-events: none;
    background: var(--vf-cta);
    box-shadow: 0 6px 22px rgba(236, 224, 198, 0.28), inset 0 1px 0 rgba(247, 239, 222, 0.85), inset 0 -2px 0 rgba(140, 124, 92, 0.25);
    transition: transform 0.5s cubic-bezier(.34, 1.3, .64, 1), width 0.5s cubic-bezier(.34, 1.3, .64, 1), opacity 0.3s;
    opacity: 0;
}
.vf-nav-lens.is-on { opacity: 1; }
.vf-nav-lens::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(105deg, transparent 30%, rgba(247, 239, 222, 0.7) 50%, transparent 70%); background-size: 250% 100%; animation: vf-lens-sheen 6s ease-in-out infinite; }
@keyframes vf-lens-sheen { 0%, 70% { background-position: 150% 0; } 100% { background-position: -100% 0; } }
/* логотип */
html body .header .logo img, html body .header .veo-logo-gradient-img { transition: filter 0.4s, transform 0.5s cubic-bezier(.34, 1.56, .64, 1); }
html body .header .logo:hover img, html body .header .logo:hover .veo-logo-gradient-img { filter: drop-shadow(0 0 10px rgba(255, 246, 224, 0.55)); transform: scale(1.05); }
/* правая группа: аккуратные пилюли */
html body .header .buy-balance-group { border-color: rgba(236, 224, 198, 0.16) !important; }
html body .header .audio-toggle-btn { color: rgba(245, 237, 220, 0.7) !important; transition: color .25s, transform .35s cubic-bezier(.34, 1.56, .64, 1) !important; }
html body .header .audio-toggle-btn:hover { color: #f7efde !important; transform: scale(1.08); }
@media (prefers-reduced-motion: reduce) { .vf-nav-lens, .vf-nav-lens::after { transition: none !important; animation: none !important; } }
html body .desktop-header .desktop-nav { flex: 0 0 auto !important; width: auto !important; max-width: none; margin-left: auto !important; margin-right: auto !important; justify-content: center; }
html body .profile-buy-btn, html body .desktop-header .profile-buy-btn { background: var(--vf-cta) !important; color: var(--vf-on) !important; border: 0 !important; }
html body.chatgpt-page.veo-generation-body .header .buy-balance-group .profile-buy-btn { background: var(--vf-cta) !important; color: var(--vf-on) !important; border: 0 !important; box-shadow: 0 6px 18px rgba(236, 224, 198, 0.18) !important; animation: none !important; }
/* переключатель Чат/Студия: понятные иконки + подписи и на телефоне */
.vf-view-switch button svg { width: 16px !important; height: 16px !important; stroke-width: 1.7 !important; }
.vf-view-switch--mobile button { padding: 7px 10px !important; gap: 5px !important; font-size: 11.5px !important; }
.vf-view-switch--mobile button span { display: inline !important; }
.vf-view-switch button { transition: color .3s, transform .35s cubic-bezier(.34,1.56,.64,1) !important; }
.vf-view-switch button:active { transform: scale(.94); }
@media (max-width: 360px) { .vf-view-switch--mobile button span { display: none !important; } }
.vf-view-switch:not(.vf-view-switch--rail) { display: inline-grid !important; grid-template-columns: 1fr 1fr; }
.vf-view-switch:not(.vf-view-switch--rail) button { justify-content: center; }

/* ==========================================================================
   ШАПКА «Обсерватория» — как безель дорогих часов: минутная шкала,
   полированное белое золото, сатинированные капсулы, табличные цифры
   ========================================================================== */
html body .desktop-header { background: linear-gradient(180deg, rgba(6, 6, 5, 0.96) 0%, rgba(8, 8, 7, 0.88) 100%) !important; }
/* минутная шкала по нижней кромке + бегущий блик */
html body .desktop-header::after {
    content: "" !important; position: absolute !important; left: 0; right: 0; bottom: 0; height: 5px !important; pointer-events: none; z-index: 2;
    background:
        linear-gradient(90deg, transparent 0%, rgba(247, 239, 222, 0.0) 30%, rgba(247, 239, 222, 0.55) 50%, rgba(247, 239, 222, 0) 70%, transparent 100%) 0 100% / 34% 1px no-repeat,
        repeating-linear-gradient(90deg, rgba(236, 224, 198, 0.34) 0 1px, transparent 1px 60px) 0 100% / 100% 5px no-repeat,
        repeating-linear-gradient(90deg, rgba(236, 224, 198, 0.16) 0 1px, transparent 1px 12px) 0 100% / 100% 3px no-repeat,
        linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.28) 20%, rgba(236, 224, 198, 0.28) 80%, transparent) 0 100% / 100% 1px no-repeat !important;
    animation: vf-hdr-glint 9s cubic-bezier(.45, 0, .2, 1) infinite;
}
@keyframes vf-hdr-glint { 0% { background-position: -40% 100%, 0 100%, 0 100%, 0 100%; } 60%, 100% { background-position: 140% 100%, 0 100%, 0 100%, 0 100%; } }
html body .desktop-header { position: relative; }

/* логотип: гравировка белым золотом */
html body .header-brand-name {
    background: linear-gradient(180deg, #fffaf0 0%, #f2e8d3 48%, #cdbb94 100%) !important;
    -webkit-background-clip: text !important; background-clip: text !important; color: transparent !important; -webkit-text-fill-color: transparent !important;
    letter-spacing: 0.16em !important;
}
html body .desktop-header .header-logo img, html body .desktop-header .logo img, html body .desktop-header .header-brand img {
    filter: sepia(0.35) saturate(0.8) brightness(1.02) drop-shadow(0 0 10px rgba(247, 239, 222, 0.12));
}

/* капсула навигации — безель: двойная тонкая кромка */
html body .desktop-header .desktop-nav {
    background: linear-gradient(180deg, rgba(247, 239, 222, 0.045), rgba(247, 239, 222, 0.015)) !important;
    border: 1px solid rgba(236, 224, 198, 0.2) !important;
    box-shadow: inset 0 0 0 3px rgba(5, 5, 4, 0.9), inset 0 0 0 4px rgba(236, 224, 198, 0.07), 0 10px 30px rgba(0, 0, 0, 0.45) !important;
}
html body .desktop-nav .nav-link { color: rgba(245, 237, 220, 0.72) !important; }
html body .desktop-nav .nav-link:hover, html body .desktop-nav .nav-link.vf-nav-current { color: var(--vf-on) !important; }
html body .desktop-nav .nav-link-icon, html body .desktop-nav .nav-link-icon svg { color: currentColor !important; stroke: currentColor !important; }
/* линза — полированное белое золото с сатинированной (брашированной) фактурой */
html body .vf-nav-lens {
    background:
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.09) 0 1px, transparent 1px 3px),
        linear-gradient(135deg, #fffaf0 0%, #f2e8d3 40%, #dccdaa 75%, #bba980 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), inset 0 -1px 0 rgba(120, 100, 60, 0.35), 0 4px 16px rgba(236, 224, 198, 0.22) !important;
}

/* баланс — как субциферблат: табличные цифры, сатин */
html body .buy-balance-group {
    background: linear-gradient(180deg, rgba(247, 239, 222, 0.045), rgba(247, 239, 222, 0.015)) !important;
    border: 1px solid rgba(236, 224, 198, 0.2) !important; border-radius: 999px !important;
    box-shadow: inset 0 0 0 3px rgba(5, 5, 4, 0.9), inset 0 0 0 4px rgba(236, 224, 198, 0.07) !important;
}
html body .profile-balance-amount-header, html body .vf-currency-amount { font-variant-numeric: tabular-nums; color: #f5eddc !important; letter-spacing: 0.02em; }
html body .profile-separator { color: rgba(236, 224, 198, 0.35) !important; }
/* ракета-эмодзи в белом золоте */
html body .vf-currency-arrow { color: rgba(236, 224, 198, 0.55) !important; }
html body .vf-currency-flag-img { border-radius: 3px; filter: saturate(0.75); }
html body .desktop-header .profile-buy-btn {
    background:
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.09) 0 1px, transparent 1px 3px),
        linear-gradient(135deg, #fffaf0 0%, #f2e8d3 40%, #dccdaa 75%, #bba980 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), 0 4px 14px rgba(236, 224, 198, 0.2) !important;
    letter-spacing: 0.04em; font-weight: 700 !important;
}

/* звук — заводная головка с насечкой, аватар — безель с делениями */
html body .desktop-header .audio-avatar-group {
    background: linear-gradient(180deg, rgba(247, 239, 222, 0.045), rgba(247, 239, 222, 0.015)) !important;
    border: 1px solid rgba(236, 224, 198, 0.2) !important;
    box-shadow: inset 0 0 0 3px rgba(5, 5, 4, 0.9), inset 0 0 0 4px rgba(236, 224, 198, 0.07) !important;
}
html body .desktop-header .audio-toggle-btn {
    position: relative; border-radius: 50% !important; color: rgba(245, 237, 220, 0.8) !important;
    background: radial-gradient(circle, #15140f 58%, transparent 60%), repeating-conic-gradient(rgba(236, 224, 198, 0.42) 0 6deg, rgba(236, 224, 198, 0.08) 6deg 12deg) !important;
    border: 0 !important; transition: transform 0.6s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body .desktop-header .audio-toggle-btn:hover { transform: rotate(30deg); color: #fffaf0 !important; }
html body .desktop-header .audio-toggle-btn svg { transition: transform 0.6s cubic-bezier(.34, 1.56, .64, 1); }
html body .desktop-header .audio-toggle-btn:hover svg { transform: rotate(-30deg); }
html body .desktop-header .header-avatar, html body .desktop-header .profile-avatar-btn, html body .desktop-header .header-user-avatar {
    position: relative;
}
html body .desktop-header .profile-user-avatar { position: relative; border-radius: 50%; }
html body .desktop-header .profile-user-avatar::before {
    content: ""; position: absolute; inset: -4px; border-radius: 50%; pointer-events: none;
    background: repeating-conic-gradient(rgba(236, 224, 198, 0.55) 0 1.5deg, transparent 1.5deg 30deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
    transition: transform 1.2s cubic-bezier(.22, 1, .36, 1);
}
html body .desktop-header .profile-user-avatar:hover::before { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) { html body .desktop-header::after { animation: none; } }
/* активный пункт меню всегда тёмным по золоту (на странице текста тоже) */
html body .desktop-header .desktop-nav .nav-link.active, html body .desktop-header .desktop-nav.vf-nav-hovering .nav-link:hover, html body .desktop-header .desktop-nav.vf-nav-hovering .nav-link:hover *, html body .desktop-header .desktop-nav .nav-link.vf-nav-current,
html body .desktop-header .desktop-nav .nav-link.active *, html body .desktop-header .desktop-nav .nav-link.vf-nav-current * { color: var(--vf-on) !important; -webkit-text-fill-color: var(--vf-on) !important; }
html body .desktop-header .desktop-nav.vf-nav-hovering .nav-link.vf-nav-current:not(:hover),
html body .desktop-header .desktop-nav.vf-nav-hovering .nav-link.vf-nav-current:not(:hover) * { color: rgba(245, 237, 220, 0.72) !important; -webkit-text-fill-color: rgba(245, 237, 220, 0.72) !important; }
/* переключатели в белом золоте: тёмный бегунок на золотой дорожке */
html body .chatgpt-page .vf-text-chat-memory-switch-input:checked + .vf-text-chat-memory-switch-ui::after,
html body.chatgpt-page .vf-text-chat-memory-switch-input:checked + .vf-text-chat-memory-switch-ui::after,
html body .vf-gem-switch-input:checked + .vf-gem-switch-track .vf-gem-switch-thumb { background: #1d1a14 !important; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5) !important; }
/* логотип модели на странице текста и цветные звёзды — в белом золоте */
html body .gpt-welcome-logo img, html body .vf-text-model-badge img, html body .gpt-model-icon img {
    filter: grayscale(1) brightness(0.84) sepia(1) saturate(0.62) brightness(1.02) !important;
}
html body .veo-cosmic-star { filter: grayscale(1) sepia(0.5) saturate(0.8) brightness(1.1) !important; }

/* ==========================================================================
   МЕЛОЧИ «ОБСЕРВАТОРИИ» v2 — меню, ракета, щелчки, выбор модели,
   уведомления, приход результата, подсказки, галерея
   ========================================================================== */

/* --- меню: иконка и слово строго по одной оси --- */
html body .desktop-header .desktop-nav { align-items: center !important; }
html body .desktop-header .desktop-nav .nav-link {
    display: inline-flex !important; align-items: center !important; justify-content: center; gap: 8px !important;
    height: 36px !important; padding: 0 15px !important; margin: 0 !important; line-height: 1 !important; box-sizing: border-box;
}
html body .desktop-header .desktop-nav .nav-link > span:not(.nav-link-icon) { display: block; line-height: 1 !important; padding-top: 1px; font-weight: 600; letter-spacing: 0.01em; }
html body .desktop-header .desktop-nav .nav-link-icon { display: inline-grid !important; place-items: center; width: 19px !important; height: 19px !important; flex: 0 0 19px; margin: 0 !important; vertical-align: middle; }
html body .desktop-header .desktop-nav .nav-link-icon svg { width: 19px !important; height: 19px !important; display: block; stroke-width: 1.6 !important; }

/* --- ракета-токен --- */
.vf-rkt { display: inline-block; width: 1.08em; height: 1.08em; vertical-align: -0.17em; margin: 0 0.04em; overflow: visible; filter: drop-shadow(0 0 4px rgba(247, 239, 222, 0.25)); }
button:hover .vf-rkt, .profile-balance-header:hover .vf-rkt, .vf-rkt:hover { animation: vf-rkt-lift 0.9s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes vf-rkt-lift { 0% { transform: none; } 40% { transform: translate(1.5px, -2px); } 100% { transform: none; } }
html body .veo-rocket-wrap { display: inline-flex; align-items: center; filter: none !important; }

/* --- щелчок: кольцо-отметка из точки нажатия + короткая вспышка --- */
.vf-tick { position: fixed; z-index: 2147483647; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; pointer-events: none;
    border: 1px solid rgba(247, 239, 222, 0.85); box-shadow: 0 0 10px rgba(247, 239, 222, 0.35);
    animation: vf-tick 0.6s cubic-bezier(.2, .8, .2, 1) forwards; }
@keyframes vf-tick { to { transform: scale(6); opacity: 0; border-width: 0.5px; } }
.vf-pressed { animation: vf-pressed 0.42s ease-out; }
@keyframes vf-pressed { 0% { filter: brightness(1.25); } 100% { filter: none; } }

/* --- выбор модели: крупные иконки, витрина как у часового бутика --- */
html body.veo-generation-body .veo-settings-section-header {
    font: 700 0.68rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.2em !important; text-transform: uppercase;
}
html body.veo-generation-body .veo-settings-section-header::after {
    content: ""; flex: 1 1 auto; height: 1px; margin: 0 10px 0 12px; order: 1;
    background: repeating-linear-gradient(90deg, rgba(236, 224, 198, 0.3) 0 1px, transparent 1px 6px);
}
html body.veo-generation-body .veo-settings-section-header > svg { order: 2; margin-left: 0 !important; }
html body.veo-generation-body .veo-settings-label { font: 600 0.74rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.55) !important; letter-spacing: 0.04em; margin-bottom: 8px !important; }
html body.veo-generation-body .veo-custom-select-trigger:has(> :is(.veo-ai-icon-badge, .veo-google-g-badge)) {
    min-height: 62px !important; padding: 9px 14px 9px 9px !important; gap: 13px !important; border-radius: 18px !important;
    background: radial-gradient(120% 140% at 0% 0%, rgba(247, 239, 222, 0.08), transparent 55%), rgba(12, 12, 11, 0.9) !important;
    border: 1px solid rgba(236, 224, 198, 0.22) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), 0 10px 26px rgba(0, 0, 0, 0.35) !important;
}
html body.veo-generation-body .veo-custom-select-trigger:has(> :is(.veo-ai-icon-badge, .veo-google-g-badge)):hover { border-color: rgba(236, 224, 198, 0.42) !important; }
html body.veo-generation-body .veo-custom-select-trigger > :is(.veo-ai-icon-badge, .veo-google-g-badge) {
    width: 44px !important; height: 44px !important; min-width: 44px !important; border-radius: 14px !important; display: grid !important; place-items: center;
    position: relative; flex: 0 0 44px;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.2), 0 0 0 3px rgba(5, 5, 4, 0.9), 0 0 0 4px rgba(236, 224, 198, 0.16) !important;
}
html body.veo-generation-body .veo-custom-select-trigger > :is(.veo-ai-icon-badge, .veo-google-g-badge) img { width: 27px !important; height: 27px !important; object-fit: contain; }
html body.veo-generation-body .veo-custom-select-trigger:has(> :is(.veo-ai-icon-badge, .veo-google-g-badge)) .veo-custom-select-label {
    font: 650 0.98rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; letter-spacing: 0.005em;
}
html body.veo-generation-body .veo-custom-select-trigger:has(> :is(.veo-ai-icon-badge, .veo-google-g-badge)) .veo-custom-select-chevron {
    width: 30px !important; height: 30px !important; padding: 8px; box-sizing: border-box; border-radius: 50%;
    background: rgba(247, 239, 222, 0.05); border: 1px solid rgba(236, 224, 198, 0.14); margin-left: auto;
    transition: transform 0.45s cubic-bezier(.34, 1.56, .64, 1), background 0.2s !important;
}
html body.veo-generation-body .veo-custom-select-trigger[aria-expanded="true"] .veo-custom-select-chevron { transform: rotate(180deg); background: rgba(236, 224, 198, 0.14); }
html body.veo-generation-body .veo-custom-select-trigger:not(:has(> :is(.veo-ai-icon-badge, .veo-google-g-badge))) { min-height: 46px !important; border-radius: 14px !important; }
html body.veo-generation-body .veo-custom-select-dropdown {
    border-radius: 18px !important; padding: 6px !important; border: 1px solid rgba(236, 224, 198, 0.22) !important;
    background: linear-gradient(180deg, rgba(20, 19, 16, 0.99), rgba(9, 9, 8, 0.99)) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 252, 245, 0.06) !important;
    transform-origin: top center;
}
html body.veo-generation-body .veo-custom-select.open .veo-custom-select-dropdown,
html body.veo-generation-body .veo-custom-select-trigger[aria-expanded="true"] + .veo-custom-select-dropdown { animation: vf-dd-in 0.32s cubic-bezier(.22, 1, .36, 1); }
@keyframes vf-dd-in { from { opacity: 0; transform: translateY(-6px) scale(0.98); } }
html body.veo-generation-body .veo-custom-select-option:has(:is(.veo-ai-icon-badge, .veo-google-g-badge)) {
    min-height: 54px !important; padding: 7px 40px 7px 7px !important; gap: 12px !important; border-radius: 13px !important; display: flex !important; align-items: center !important;
    font: 600 0.92rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; position: relative;
    transition: background 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body.veo-generation-body .veo-custom-select-option:has(:is(.veo-ai-icon-badge, .veo-google-g-badge)):hover { transform: translateX(3px); }
html body.veo-generation-body .veo-custom-select-option :is(.veo-ai-icon-badge, .veo-google-g-badge) {
    width: 40px !important; height: 40px !important; min-width: 40px !important; border-radius: 12px !important; display: grid !important; place-items: center; flex: 0 0 40px;
}
html body.veo-generation-body .veo-custom-select-option :is(.veo-ai-icon-badge, .veo-google-g-badge) img { width: 24px !important; height: 24px !important; object-fit: contain; }
html body.veo-generation-body .veo-custom-select-option.selected:has(:is(.veo-ai-icon-badge, .veo-google-g-badge)) { background: rgba(236, 224, 198, 0.1) !important; }
html body.veo-generation-body .veo-custom-select-option.selected:has(:is(.veo-ai-icon-badge, .veo-google-g-badge))::after {
    content: "" !important; position: absolute !important; right: 12px !important; top: 50% !important; left: auto !important;
    width: 18px !important; height: 18px !important; margin-top: -9px; border-radius: 50% !important; border: 0 !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1a14' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat, var(--vf-cta) !important;
    box-shadow: 0 0 10px rgba(236, 224, 198, 0.35) !important;
}

/* --- всплывающие уведомления (все страницы) --- */
html body .veo-toast, html body .gpt-toast {
    display: flex !important; align-items: center !important; gap: 11px !important;
    padding: 10px 18px 10px 10px !important; border-radius: 999px !important; overflow: hidden;
    background: linear-gradient(180deg, rgba(22, 21, 18, 0.98), rgba(10, 10, 9, 0.98)) !important;
    border: 1px solid rgba(236, 224, 198, 0.3) !important; color: #f5eddc !important;
    font: 600 0.86rem/1.3 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; text-align: left !important;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(255, 252, 245, 0.07), 0 0 0 4px rgba(5, 5, 4, 0.5) !important;
}
html body .veo-toast::after, html body .gpt-toast::after {
    content: ""; position: absolute; left: 18px; right: 18px; bottom: 0; height: 1px; transform-origin: left;
    background: linear-gradient(90deg, rgba(247, 239, 222, 0), rgba(247, 239, 222, 0.8), rgba(247, 239, 222, 0));
    animation: vf-toast-time 2.6s linear forwards;
}
@keyframes vf-toast-time { from { transform: scaleX(1); } to { transform: scaleX(0); } }
html body .veo-toast-icon {
    width: 30px !important; height: 30px !important; min-width: 30px !important; margin: 0 !important; border-radius: 50% !important; color: #1d1a14 !important;
    background: var(--vf-cta) !important; box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.9), 0 0 0 4px rgba(236, 224, 198, 0.3), 0 0 16px rgba(236, 224, 198, 0.3) !important;
}
html body .veo-toast-icon-svg { width: 14px !important; height: 14px !important; }
html body .veo-toast.veo-toast--warning { border-color: rgba(236, 200, 140, 0.45) !important; }
html body .veo-toast.veo-toast--warning .veo-toast-icon { background: linear-gradient(135deg, #f3d9a6, #c99a55) !important; }
html body .gpt-toast { animation: vf-toast-in 0.55s cubic-bezier(.34, 1.4, .64, 1) !important; position: relative; }
@keyframes vf-toast-in { from { opacity: 0; filter: blur(6px); transform: translateY(14px); } }
html body .vf-toast {
    display: flex; align-items: center; gap: 11px; padding: 8px 16px 8px 8px !important;
    background: linear-gradient(180deg, rgba(22, 21, 18, 0.98), rgba(10, 10, 9, 0.98)) !important;
    border: 1px solid rgba(236, 224, 198, 0.32) !important; color: #f5eddc !important; font: 600 0.86rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.65), 0 0 0 4px rgba(5, 5, 4, 0.5) !important; pointer-events: none;
}
html body .vf-toast.is-on { pointer-events: auto; cursor: pointer; }
html body .vf-toast__ic { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: #1d1a14; background: var(--vf-cta); flex: 0 0 30px;
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.9), 0 0 0 4px rgba(236, 224, 198, 0.3); }
html body .vf-toast__ic svg { width: 14px; height: 14px; }
html body .vf-toast__thumb { width: 40px; height: 40px; border-radius: 12px; flex: 0 0 40px; border: 1px solid rgba(236, 224, 198, 0.35); background: #0b0b0a center / cover no-repeat; }
html body .vf-toast__txt { display: flex; flex-direction: column; gap: 4px; }
html body .vf-toast__txt small { font: 500 0.72rem/1.1 "Inter", sans-serif; color: rgba(245, 237, 220, 0.55); }
html body .vf-toast__go { margin-left: 8px; font: 700 0.66rem/1 "Inter", sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: #1d1a14; background: var(--vf-cta); padding: 8px 12px; border-radius: 999px; }

/* --- модальные уведомления: циферблат вокруг иконки --- */
html body .veo-notify-overlay { background: rgba(3, 3, 2, 0.72) !important; backdrop-filter: none !important; }
html body .veo-notify-overlay .veo-notify-modal {
    position: relative; max-width: 380px !important; padding: 30px 26px 22px !important; border-radius: 26px !important;
    background: radial-gradient(120% 70% at 50% 0%, rgba(247, 239, 222, 0.08), transparent 60%), linear-gradient(180deg, #15140f 0%, #0a0a09 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.24) !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.75), inset 0 1px 0 rgba(255, 252, 245, 0.07), 0 0 0 6px rgba(5, 5, 4, 0.6), 0 0 0 7px rgba(236, 224, 198, 0.08) !important;
    transform: translateY(10px) scale(0.96) !important; transition: transform 0.5s cubic-bezier(.34, 1.4, .64, 1) !important;
}
html body .veo-notify-overlay[aria-hidden="false"] .veo-notify-modal { transform: none !important; }
html body .veo-notify-overlay .veo-notify-icon {
    position: relative; width: 60px !important; height: 60px !important; margin: 0 auto 16px !important; border-radius: 50% !important;
    background: radial-gradient(circle, #1d1b16 0 60%, transparent 61%) !important; color: #f5eddc !important;
}
html body .veo-notify-overlay .veo-notify-icon::before {
    content: ""; position: absolute; inset: -6px; border-radius: 50%;
    background: repeating-conic-gradient(rgba(236, 224, 198, 0.6) 0 1.2deg, transparent 1.2deg 15deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 5px)); mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 5px));
    animation: vf-ring-spin 30s linear infinite;
}
html body .veo-notify-overlay .veo-notify-icon::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(236, 224, 198, 0.45); }
html body .veo-notify-overlay .veo-notify-icon svg { width: 26px !important; height: 26px !important; position: relative; z-index: 1; }
html body .veo-notify-overlay[data-type="error"] .veo-notify-icon { color: #f0b9a4 !important; }
html body .veo-notify-overlay .veo-notify-title { font: 700 1.1rem/1.25 "Unbounded", "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; margin: 0 0 8px !important; }
html body .veo-notify-overlay .veo-notify-message { font: 400 0.9rem/1.55 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.66) !important; }
html body .veo-notify-overlay .veo-notify-btn {
    min-height: 44px; border-radius: 999px !important; font: 700 0.86rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.03em; padding: 0 22px !important;
    display: inline-flex !important; align-items: center; justify-content: center;
    transition: transform 0.3s cubic-bezier(.34, 1.56, .64, 1), filter 0.2s !important;
}
html body .veo-notify-overlay .veo-notify-btn-primary { background: var(--vf-cta) !important; color: #1d1a14 !important; border: 0 !important; box-shadow: 0 8px 24px rgba(236, 224, 198, 0.22) !important; }
html body .veo-notify-overlay .veo-notify-btn-secondary { background: rgba(247, 239, 222, 0.05) !important; color: #f5eddc !important; border: 1px solid rgba(236, 224, 198, 0.25) !important; box-shadow: none !important; }
html body .veo-notify-overlay .veo-notify-btn:hover { transform: translateY(-1px); filter: brightness(1.06); }

/* --- приход результата: «проявка» + золотой блик + вспышка рамки --- */
.vf-reveal img, .vf-reveal video { animation: vf-develop 1.5s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes vf-develop { 0% { filter: blur(16px) brightness(1.7) saturate(0.2); transform: scale(1.035); } 60% { filter: blur(0) brightness(1.08) saturate(0.9); } 100% { filter: none; transform: none; } }
.vf-reveal { position: relative; }
.vf-reveal::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 5; border-radius: inherit;
    background: linear-gradient(105deg, transparent 38%, rgba(255, 250, 240, 0.55) 50%, transparent 62%) -150% 0 / 250% 100% no-repeat;
    animation: vf-sweep 1.6s 0.35s cubic-bezier(.45, 0, .2, 1) forwards;
}
@keyframes vf-sweep { to { background-position: 150% 0; } }
.vf-reveal::before {
    content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none; z-index: 6;
    box-shadow: 0 0 0 1px rgba(247, 239, 222, 0.9), 0 0 30px rgba(247, 239, 222, 0.45);
    animation: vf-frame-glow 2.2s ease-out forwards;
}
@keyframes vf-frame-glow { 0% { opacity: 0; } 20% { opacity: 1; } 100% { opacity: 0; } }

/* --- подсказки --- */
html body .veo-tooltip {
    background: linear-gradient(180deg, #1a1915, #0c0c0b) !important; color: #f5eddc !important;
    border: 1px solid rgba(236, 224, 198, 0.28) !important; border-radius: 10px !important;
    font: 600 0.74rem/1.3 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.02em; padding: 7px 10px !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.6) !important;
}

/* --- галерея «Мои генерации»: блик по наведению, отклик на нажатие --- */
.vf-gal-item { box-shadow: inset 0 0 0 1px rgba(236, 224, 198, 0.08); }
.vf-gal-item::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; opacity: 0; transition: opacity 0.35s;
    background: linear-gradient(105deg, transparent 40%, rgba(255, 250, 240, 0.22) 50%, transparent 60%) -120% 0 / 250% 100% no-repeat;
}
.vf-gal-item:hover::after { opacity: 1; animation: vf-sweep 1s cubic-bezier(.45, 0, .2, 1) forwards; }
.vf-gal-item:active { transform: scale(0.97) !important; }
@media (prefers-reduced-motion: reduce) { .vf-reveal img, .vf-reveal video, .vf-reveal::after, .vf-reveal::before, .vf-tick { animation: none !important; } }

html body.veo-generation-body .veo-custom-select-trigger:has(> :is(.veo-ai-icon-badge, .veo-google-g-badge)) .veo-custom-select-label {
    white-space: normal !important; overflow: hidden; display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.18 !important; text-align: left; min-width: 0; flex: 1 1 auto;
}
html body.veo-generation-body .veo-custom-select-option:has(:is(.veo-ai-icon-badge, .veo-google-g-badge)) { font-size: 0.88rem !important; line-height: 1.18 !important; }

/* --- общие мелочи: выделение, прокрутка, курсор, фокус с клавиатуры --- */
html body ::selection { background: rgba(236, 224, 198, 0.32); color: #fffaf0; }
html body textarea, html body input { caret-color: #f2e8d3; }
html body textarea::placeholder, html body input::placeholder { color: rgba(245, 237, 220, 0.36) !important; }
html body * { scrollbar-width: thin; scrollbar-color: rgba(236, 224, 198, 0.22) transparent; }
html body *::-webkit-scrollbar { width: 8px; height: 8px; }
html body *::-webkit-scrollbar-track { background: transparent; }
html body *::-webkit-scrollbar-thumb { background: rgba(236, 224, 198, 0.18); border-radius: 8px; border: 2px solid transparent; background-clip: padding-box; }
html body *::-webkit-scrollbar-thumb:hover { background: rgba(236, 224, 198, 0.34); background-clip: padding-box; }
html body :focus-visible { outline: 1.5px solid rgba(242, 232, 211, 0.85) !important; outline-offset: 3px !important; border-radius: 10px; }
html body textarea:focus-visible, html body input:focus-visible { outline: none !important; }

/* ==========================================================================
   ПАНЕЛЬ ВВОДА: кнопки-«заводные головки» — круглые, с кольцом-шкалой,
   иконки тонкой гравировкой; включённое состояние — белое золото
   ========================================================================== */
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn) {
    position: relative !important; width: 40px !important; height: 40px !important; min-width: 40px !important; padding: 0 !important;
    display: inline-grid !important; place-items: center !important; border-radius: 50% !important;
    color: rgba(245, 237, 220, 0.82) !important;
    background: radial-gradient(circle at 50% 30%, rgba(247, 239, 222, 0.09), rgba(247, 239, 222, 0.02) 70%), #0e0d0b !important;
    border: 1px solid rgba(236, 224, 198, 0.2) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.08), 0 6px 16px rgba(0, 0, 0, 0.4) !important;
    transition: transform 0.45s cubic-bezier(.34, 1.56, .64, 1), color 0.25s, border-color 0.25s, background 0.3s !important;
}
/* кольцо-шкала, проявляется при наведении и проворачивается */
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn)::before {
    content: "" !important; position: absolute !important; inset: -4px !important; border-radius: 50% !important; pointer-events: none;
    display: block !important; width: auto !important; height: auto !important; background: repeating-conic-gradient(rgba(236, 224, 198, 0.55) 0 1.4deg, transparent 1.4deg 15deg) !important;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
    opacity: 0; transform: rotate(-30deg); transition: opacity 0.3s, transform 0.8s cubic-bezier(.22, 1, .36, 1) !important;
}
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn):hover {
    color: #fffaf0 !important; border-color: rgba(236, 224, 198, 0.45) !important; transform: translateY(-2px);
}
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn):hover::before { opacity: 1; transform: rotate(0deg); }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn):active { transform: scale(0.92); }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn) svg {
    width: 20px !important; height: 20px !important; stroke-width: 1.6 !important; overflow: visible;
    transition: transform 0.5s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body.veo-generation-body .vf-tool svg, html body.veo-generation-body .vf-dice svg { fill: none; stroke: currentColor !important; stroke-linecap: round; stroke-linejoin: round; }
html body.veo-generation-body .vf-dice svg .vf-pip { fill: currentColor !important; stroke: none !important; }
/* микро-анимации иконок при наведении */
html body.veo-generation-body .veo-photo-upload-btn:hover svg { transform: rotate(-6deg) scale(1.06); }
html body.veo-generation-body .veo-photo-upload-btn .vf-plus { transition: transform 0.5s cubic-bezier(.34, 1.56, .64, 1); transform-origin: 20px 5.1px; }
html body.veo-generation-body .veo-photo-upload-btn:hover .vf-plus { transform: rotate(90deg); }
html body.veo-generation-body .vf-dice:hover svg { transform: rotate(-12deg) scale(1.06) !important; }
html body.veo-generation-body .vf-tool--hist:hover svg { transform: rotate(-40deg); }
html body.veo-generation-body .vf-tool--lib:hover svg { transform: translateY(-1px) scale(1.06); }
html body.veo-generation-body .veo-prompt-enter-btn:hover svg .veo-lock-icon-pqo__shackle { transform: translateY(-1.2px); transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1); }
html body.veo-generation-body .veo-auto-send-btn:hover svg { transform: scale(1.1) rotate(-6deg); }
html body.veo-generation-body .veo-mic-btn:hover svg .veo-mic-capsule { transform: translateY(-1px); transition: transform 0.3s; }
/* бросок кубика */
.vf-dice.vf-roll svg { animation: vf-roll 0.7s cubic-bezier(.34, 1.3, .64, 1) !important; }
@keyframes vf-roll { 0% { transform: rotate(0) scale(1); } 35% { transform: rotate(-200deg) scale(0.82) translateY(-3px); } 70% { transform: rotate(-345deg) scale(1.12); } 100% { transform: rotate(-360deg) scale(1); } }
/* включённые режимы — белое золото с тёмной иконкой */
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-prompt-enter-btn[aria-pressed="true"],
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-auto-send-btn[aria-pressed="true"],
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-mic-btn.veo-mic-recording {
    background: var(--vf-cta) !important; color: #1d1a14 !important; border-color: transparent !important;
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.9), 0 0 0 4px rgba(236, 224, 198, 0.4), 0 0 22px rgba(236, 224, 198, 0.35) !important;
}
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-mic-btn.veo-mic-recording { animation: vf-mic-pulse 1.4s ease-in-out infinite; }
@keyframes vf-mic-pulse { 50% { box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.9), 0 0 0 7px rgba(236, 224, 198, 0.25), 0 0 30px rgba(236, 224, 198, 0.5); } }
/* счётчик фото «0/4» — маленький медальон */
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-counter {
    position: absolute !important; right: -7px !important; bottom: -5px !important; top: auto !important; left: auto !important;
    min-width: 0 !important; padding: 2px 5px !important; border-radius: 999px !important;
    font: 700 9px/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.02em; color: #1d1a14 !important;
    background: var(--vf-cta) !important; border: 0 !important; box-shadow: 0 0 0 2px #0a0a09 !important; z-index: 2;
}
html:root body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-label { display: none !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-img-icon { width: 20px !important; height: 20px !important; display: grid !important; place-items: center; margin: 0 !important; }
/* поле во время «набора» идеи */
html body.veo-generation-body .veo-prompt-input.vf-typing { caret-color: transparent; text-shadow: 0 0 12px rgba(247, 239, 222, 0.25); }

html:root body.veo-generation-body .veo-prompt-control-bar :is(.vf-tool--keys, .vf-tool--clear) { display: none !important; }
html:root body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-img-svg,
html:root body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-img-svg * { animation: none !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn { height: 40px !important; min-height: 40px !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-counter { right: -10px !important; bottom: -6px !important; }
html body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-img-icon,
html body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-img-icon > svg,
html body #veoPhotoUploadBtn .veo-photo-upload-img-icon, html body #veoPhotoUploadBtn .veo-photo-upload-img-icon > svg { width: 20px !important; height: 20px !important; min-width: 0 !important; min-height: 0 !important; max-width: 20px !important; }

/* ==========================================================================
   РЕЖИМ «БЕЗ АНИМАЦИИ» — выключает вообще всё движение на сайте
   (анимации доходят до финального кадра мгновенно, переходы — без задержки)
   ========================================================================== */
html.vf-still *, html.vf-still *::before, html.vf-still *::after {
    animation-duration: 0.001ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important;
    transition-duration: 0s !important; transition-delay: 0s !important; scroll-behavior: auto !important;
}
html.vf-still .vf-cosmos__neb, html.vf-still .vf-cosmos__tw, html.vf-still .vf-shoot, html.vf-still .vf-tick,
html.vf-still .vf-burst, html.vf-still .veo-cosmic-stars, html.vf-still .vf-reveal::after, html.vf-still .vf-reveal::before { display: none !important; }
html.vf-still .vf-cosmos__dome { animation: none !important; will-change: auto !important; }
html.vf-still .desktop-header::after { animation: none !important; }
html.vf-still * { will-change: auto !important; }

/* ==========================================================================
   ВИНТАЖНАЯ РОСКОШЬ — антиква для заголовков, гравированные разделители,
   гильоше на главной кнопке, лёгкое зерно старой плёнки на небе
   ========================================================================== */
:root { --vf-antiqua: "Cormorant Garamond", "Cormorant", "Playfair Display", Georgia, "Times New Roman", serif; --vf-display: var(--vf-antiqua); }
.page-main { --vf-display: var(--vf-antiqua) !important; }
html body h1, html body h2, html body .profile-section-title, html body .shop-title, html body .page-title { font-family: var(--vf-antiqua) !important; letter-spacing: 0 !important; }
html body .veo-welcome-chat-title, html body .gpt-welcome-screen h1, html body .vf-music__title, html body .veo-notify-overlay .veo-notify-title,
html body.veo-generation-body .veo-video-unavailable-title, html body .vf-keys__head b {
    font-family: var(--vf-antiqua) !important; font-weight: 700 !important; letter-spacing: 0.005em !important;
}
html body .veo-welcome-chat-title { font-size: clamp(2.1rem, calc(3.4vw / var(--vf-z, 1)), 3rem) !important; line-height: 1.05 !important; font-style: normal; }
html body .gpt-welcome-screen h1 { font-size: clamp(2rem, calc(3vw / var(--vf-z, 1)), 2.6rem) !important; }
html body .veo-notify-overlay .veo-notify-title { font-size: 1.45rem !important; }
html body.veo-generation-body .veo-video-unavailable-title { font-size: 1.35rem !important; }
/* гравированный разделитель под заголовком приветствия: — ◆ — */
html body .veo-welcome-chat-title::after, html body .gpt-welcome-screen h1::after {
    content: ""; display: block; width: 168px; height: 9px; margin: 14px auto 2px;
    background:
        linear-gradient(45deg, transparent 42%, rgba(236, 224, 198, 0.85) 43% 57%, transparent 58%) center / 9px 9px no-repeat,
        linear-gradient(-45deg, transparent 42%, rgba(236, 224, 198, 0.85) 43% 57%, transparent 58%) center / 9px 9px no-repeat,
        linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.55) 30%, rgba(236, 224, 198, 0.55) 44%, transparent 44% 56%, rgba(236, 224, 198, 0.55) 56%, rgba(236, 224, 198, 0.55) 70%, transparent) center / 100% 1px no-repeat;
}
/* гильоше на главной кнопке создания — как циферблат */
html body .veo-prompt-send, html body .vf-hero .vf-btn--gold, html body .profile-buy-btn {
    background-image:
        repeating-radial-gradient(circle at 18% 140%, rgba(120, 98, 58, 0.09) 0 1px, transparent 1px 4px),
        var(--vf-cta) !important;
}
html body .veo-prompt-send { font-family: "Inter", sans-serif; letter-spacing: 0.14em !important; }
/* зерно старой плёнки на фоне (статичное, ничего не грузит) */
#vfCosmos::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.05; z-index: 3;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .95 0 0 0 0 .85 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* виньетка чуть теплее — как старая фотография */
.vf-cosmos__vig { background: radial-gradient(ellipse at 50% 40%, transparent 45%, rgba(10, 8, 4, 0.55) 100%) !important; }

/* ==========================================================================
   ПОЛНОЭКРАННЫЙ ПРОСМОТР — «витрина ювелира»
   ========================================================================== */
html.vf-viewing body { overflow: hidden !important; }
html body #veoGalleryViewOverlay.vfv {
    background: radial-gradient(ellipse at 50% 45%, rgba(26, 23, 17, 0.97), rgba(4, 4, 3, 0.995) 70%) !important;
    backdrop-filter: none !important; padding: 0 !important;
}
html body #veoGalleryViewOverlay.vfv[aria-hidden="false"] { animation: vfv-in 0.4s ease both; }
@keyframes vfv-in { from { opacity: 0; } }
html body #veoGalleryViewOverlay.vfv .veo-gallery-view-inner { width: 100%; height: 100%; }
html body #veoGalleryViewOverlay.vfv .veo-gallery-view-stage { padding: 76px 24px 104px !important; overflow: hidden !important; }
html body #veoGalleryViewOverlay.vfv.vfv-has-strip .veo-gallery-view-stage { padding-bottom: 168px !important; }
html body #veoGalleryViewOverlay.vfv .veo-gallery-view-frame {
    position: relative; height: 100% !important; max-height: none !important; width: 100%;
}
html body #veoGalleryViewOverlay.vfv .veo-gallery-view-img {
    border-radius: 4px !important; cursor: zoom-in; touch-action: none; user-select: none; -webkit-user-drag: none;
    box-shadow: 0 0 0 1px rgba(236, 224, 198, 0.28), 0 0 0 7px rgba(5, 5, 4, 0.9), 0 0 0 8px rgba(236, 224, 198, 0.14), 0 40px 120px rgba(0, 0, 0, 0.8) !important;
    opacity: 0; transform-origin: center center !important;
}
html body #veoGalleryViewOverlay.vfv.vfv-loaded .veo-gallery-view-img { opacity: 1; transition: opacity 0.35s ease, transform 0.35s cubic-bezier(.22, 1, .36, 1); }
html body #veoGalleryViewOverlay.vfv.vfv-zoomed .veo-gallery-view-img { cursor: grab; }
html body #veoGalleryViewOverlay.vfv.vfv-dragging .veo-gallery-view-img { cursor: grabbing; }
html body #veoGalleryViewOverlay.vfv.vfv-swap .veo-gallery-view-img { opacity: 0.25 !important; }
/* винтажные уголки-«скобы» по краям витрины */
.vfv-corners { position: absolute; inset: -14px; pointer-events: none; }
.vfv-corners i { position: absolute; width: 26px; height: 26px; border: 0 solid rgba(236, 224, 198, 0.55); }
.vfv-corners i:nth-child(1) { left: 0; top: 0; border-left-width: 1px; border-top-width: 1px; }
.vfv-corners i:nth-child(2) { right: 0; top: 0; border-right-width: 1px; border-top-width: 1px; }
.vfv-corners i:nth-child(3) { left: 0; bottom: 0; border-left-width: 1px; border-bottom-width: 1px; }
.vfv-corners i:nth-child(4) { right: 0; bottom: 0; border-right-width: 1px; border-bottom-width: 1px; }
/* верхняя строка: счётчик · промпт · дата */
.vfv-top {
    position: fixed; left: 0; right: 0; top: 0; z-index: 10008; height: 64px; display: flex; align-items: center; gap: 16px; padding: 0 76px 0 24px; box-sizing: border-box;
    background: linear-gradient(180deg, rgba(4, 4, 3, 0.85), transparent);
}
.vfv-cap { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 14px; }
.vfv-count { flex: 0 0 auto; font: 600 0.78rem/1 "Inter", sans-serif; letter-spacing: 0.18em; color: rgba(236, 224, 198, 0.7); font-variant-numeric: tabular-nums; }
.vfv-count:empty { display: none; }
.vfv-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: italic 600 1.2rem/1.2 var(--vf-antiqua); color: #f5eddc; }
.vfv-date { flex: 0 0 auto; font: 500 0.74rem/1 "Inter", sans-serif; color: rgba(245, 237, 220, 0.45); }
.vfv-top__act { display: flex; gap: 6px; }
/* кнопки */
.vfv-btn {
    width: 40px; height: 40px; border-radius: 50%; display: inline-grid; place-items: center; cursor: pointer; padding: 0;
    color: rgba(245, 237, 220, 0.85); background: radial-gradient(circle at 50% 30%, rgba(247, 239, 222, 0.09), rgba(247, 239, 222, 0.02) 70%), #0e0d0b;
    border: 1px solid rgba(236, 224, 198, 0.22); box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.08);
    transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), color 0.2s, border-color 0.2s, opacity 0.2s;
}
.vfv-btn svg { width: 19px; height: 19px; }
.vfv-btn:hover { color: #fffaf0; border-color: rgba(236, 224, 198, 0.5); transform: translateY(-1px); }
.vfv-btn:active { transform: scale(0.92); }
.vfv-btn:disabled { opacity: 0.28; cursor: default; transform: none; }
.vfv-btn[hidden] { display: none; }
.vfv-btn--gold { background: var(--vf-cta); color: #1d1a14; border-color: transparent; box-shadow: 0 6px 18px rgba(236, 224, 198, 0.22); }
.vfv-btn--gold:hover { color: #1d1a14; }
.vfv-btn.is-done { background: var(--vf-cta); color: #1d1a14; }
.vfv-btn--prev svg, .vfv-btn--next svg { width: 21px; height: 21px; }
/* нижняя панель — безель */
.vfv-bar {
    position: fixed; left: 50%; bottom: max(26px, env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 10008;
    display: flex; align-items: center; gap: 6px; padding: 6px; border-radius: 999px;
    background: linear-gradient(180deg, rgba(24, 22, 18, 0.97), rgba(10, 10, 9, 0.97));
    border: 1px solid rgba(236, 224, 198, 0.24);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 252, 245, 0.07), 0 0 0 5px rgba(5, 5, 4, 0.7), 0 0 0 6px rgba(236, 224, 198, 0.08);
}
.vfv-pct { min-width: 48px; text-align: center; font: 600 0.78rem/1 "Inter", sans-serif; letter-spacing: 0.04em; color: rgba(245, 237, 220, 0.75); font-variant-numeric: tabular-nums; }
.vfv-sep { width: 1px; height: 22px; background: rgba(236, 224, 198, 0.18); margin: 0 3px; }
/* лента миниатюр */
.vfv-strip {
    position: fixed; left: 50%; bottom: calc(max(26px, env(safe-area-inset-bottom)) + 66px); transform: translateX(-50%); z-index: 10008;
    max-width: min(calc(92vw / var(--vf-z, 1)), 900px); display: flex; gap: 8px; padding: 6px 4px; overflow-x: auto; scrollbar-width: none;
}
.vfv-strip::-webkit-scrollbar { display: none; }
.vfv-strip:empty { display: none; }
.vfv-thumb {
    flex: 0 0 auto; width: 46px; height: 46px; border-radius: 8px; padding: 0; cursor: pointer; background: #0b0b0a center / cover no-repeat;
    border: 1px solid rgba(236, 224, 198, 0.16); opacity: 0.5; filter: saturate(0.6);
    transition: opacity 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1), filter 0.2s, border-color 0.2s;
}
.vfv-thumb:hover { opacity: 0.9; filter: none; transform: translateY(-2px); }
.vfv-thumb.is-on { opacity: 1; filter: none; border-color: rgba(247, 239, 222, 0.9); box-shadow: 0 0 0 2px rgba(5, 5, 4, 0.9), 0 0 0 3px rgba(236, 224, 198, 0.5); }
/* закрыть — круглая головка справа сверху */
html body #veoGalleryViewOverlay.vfv .veo-gallery-view-close {
    top: 12px !important; right: 16px !important; width: 40px !important; height: 40px !important; border-radius: 50% !important; padding: 0 !important;
    display: grid !important; place-items: center !important; font-size: 0 !important; z-index: 10009 !important;
    color: rgba(245, 237, 220, 0.85) !important; background: #0e0d0b !important; border: 1px solid rgba(236, 224, 198, 0.25) !important; box-shadow: none !important;
    transition: transform 0.4s cubic-bezier(.34, 1.56, .64, 1), color 0.2s !important;
}
html body #veoGalleryViewOverlay.vfv .veo-gallery-view-close::before, html body #veoGalleryViewOverlay.vfv .veo-gallery-view-close::after { display: none !important; }
html body #veoGalleryViewOverlay.vfv .veo-gallery-view-close svg { width: 18px; height: 18px; }
html body #veoGalleryViewOverlay.vfv .veo-gallery-view-close:hover { transform: rotate(90deg); color: #fffaf0 !important; }
/* старая панель скрыта — её действия вызываются из новой */
html body #veoGalleryViewOverlay.vfv .vf-gallery-view-toolbar { display: none !important; }
@media (max-width: 700px) {
    .vfv-top { padding: 0 64px 0 14px; height: 56px; }
    .vfv-title { font-size: 1.02rem; }
    .vfv-date { display: none; }
    .vfv-bar { gap: 2px; padding: 5px; }
    .vfv-btn { width: 36px; height: 36px; }
    .vfv-btn--minus, .vfv-btn--plus, .vfv-pct, .vfv-bar .vfv-sep:nth-of-type(1) { display: none; }
    html body #veoGalleryViewOverlay.vfv .veo-gallery-view-stage { padding: 60px 10px 96px !important; }
    html body #veoGalleryViewOverlay.vfv.vfv-has-strip .veo-gallery-view-stage { padding-bottom: 150px !important; }
}
/* иконка нейросети в панели результата: тёмный камень всегда, при наведении светится кромка (иконка не пропадает) */
html body.veo-generation-body .veo-result-toolbar .veo-toolbar-ai-icon,
html body.veo-generation-body .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon,
html body.veo-generation-body .veo-result-toolbar .veo-toolbar-ai-icon:hover,
html body.veo-generation-body .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon:hover {
    background: linear-gradient(150deg, #23211c 0%, #0b0b0a 60%, #16140f 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.32) !important; color: #f5eddc !important;
}
html body.veo-generation-body .veo-result-toolbar .veo-toolbar-ai-icon:hover {
    border-color: rgba(247, 239, 222, 0.75) !important; box-shadow: 0 0 0 3px rgba(236, 224, 198, 0.12), 0 0 18px rgba(236, 224, 198, 0.25) !important;
}
html body.veo-generation-body .veo-result-toolbar .veo-toolbar-ai-icon img,
html body.veo-generation-body .veo-result-toolbar .veo-toolbar-ai-icon:hover img {
    filter: grayscale(1) brightness(0.84) sepia(1) saturate(0.62) brightness(1.02) !important; opacity: 1 !important;
}
html body.veo-generation-body .veo-result-toolbar .veo-toolbar-ai-icon svg { color: #f5eddc !important; stroke: currentColor; }
html.vf-viewing .vf-toast, html.vf-viewing .veo-toast { display: none !important; }
/* главная: заголовки антиквой (переменную там переопределяет старый стиль) */
html body .vf-hero__title, html body .vf-showcase__head .vf-trends__title, html body .vf-trends__title,
html body .page-main .vf-tariffs-title, html body .page-main .vf-faq-heading, html body .page-main .vf-ai-switcher-heading {
    font-family: var(--vf-antiqua) !important; font-weight: 700 !important; letter-spacing: -0.005em !important;
}
html body .vf-hero__title { font-size: clamp(2.5rem, calc(5.2vw / var(--vf-z, 1)), 4.9rem) !important; line-height: 1.0 !important; }
html body .vf-hero__stats b { font-family: var(--vf-antiqua) !important; font-weight: 700 !important; font-size: 1.7rem !important; }
/* разделитель «— ◆ —» символом, а не крестом */
html body .veo-welcome-chat-title::after, html body .gpt-welcome-screen h1::after {
    content: "\25C6" !important; width: 180px !important; height: auto !important; margin: 12px auto 4px !important;
    font: 400 8px/12px "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.9) !important; -webkit-text-fill-color: rgba(236, 224, 198, 0.9) !important; text-align: center;
    background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.55) 30%, rgba(236, 224, 198, 0.55) 44%, transparent 44% 56%, rgba(236, 224, 198, 0.55) 56%, rgba(236, 224, 198, 0.55) 70%, transparent) center / 100% 1px no-repeat !important;
}
html body .vf-hero__stats b, html body .vf-hero__title, html body .veo-welcome-chat-title { font-variant-numeric: lining-nums; }

/* ==========================================================================
   ШАПКА v3: вместо шкалы — одна тонкая золотая нить с мягким сиянием
   ========================================================================== */
html body .desktop-header::after {
    content: "" !important; position: absolute !important; left: 0; right: 0; bottom: 0; height: 1px !important; pointer-events: none; z-index: 2;
    background: linear-gradient(90deg, transparent 0%, rgba(236, 224, 198, 0.12) 12%, rgba(236, 224, 198, 0.42) 50%, rgba(236, 224, 198, 0.12) 88%, transparent 100%) !important;
    box-shadow: 0 0 14px 0 rgba(236, 224, 198, 0.12);
    animation: none !important;
}
html body .desktop-header::before {
    content: ""; position: absolute; left: 50%; bottom: -3px; width: 7px; height: 7px; margin-left: -3.5px; transform: rotate(45deg); z-index: 3; pointer-events: none;
    background: #0a0a09; border: 1px solid rgba(236, 224, 198, 0.55); box-shadow: 0 0 10px rgba(236, 224, 198, 0.3);
}

/* ==========================================================================
   ЛОГОТИП в белом золоте + редкий блик, как по полированному металлу
   ========================================================================== */
html body .header .veo-logo-gradient-img, html body .header .logo img, html body .logo .logo-image, html body .mobile-logo img, html body .veo-logo-gradient-mobile img {
    filter: brightness(0.8) sepia(1) saturate(0.78) hue-rotate(-4deg) brightness(1.12) drop-shadow(0 0 10px rgba(236, 224, 198, 0.2)) !important;
}

/* ==========================================================================
   ВЫПАДАЮЩИЕ МЕНЮ ШАПКИ: валюта, профиль, часовой пояс
   ========================================================================== */
html body .vf-currency-dropdown, html body .vf-user-menu-dropdown, html body .vf-menu-tz-dropdown {
    background: radial-gradient(130% 60% at 50% 0%, rgba(247, 239, 222, 0.07), transparent 60%), linear-gradient(180deg, #15140f 0%, #0a0a09 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.24) !important; border-radius: 22px !important;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.75), inset 0 1px 0 rgba(255, 252, 245, 0.07), 0 0 0 5px rgba(5, 5, 4, 0.6), 0 0 0 6px rgba(236, 224, 198, 0.07) !important;
    color: #f5eddc !important; backdrop-filter: none !important; overflow: hidden;
}
/* валюта */
html body .vf-currency-dropdown { padding: 0 !important; }
html body .vf-currency-dropdown-header-block {
    padding: 18px 20px 14px !important; margin: 0 !important; border-bottom: 0 !important; text-align: center; position: relative;
    background: none !important;
}
html body .vf-currency-dropdown-header-block::after {
    content: "\25C6"; display: block; margin: 12px auto 0; width: 70%; font: 400 7px/10px "Inter", sans-serif; color: rgba(236, 224, 198, 0.8);
    background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.4) 25%, rgba(236, 224, 198, 0.4) 45%, transparent 45% 55%, rgba(236, 224, 198, 0.4) 55%, rgba(236, 224, 198, 0.4) 75%, transparent) center / 100% 1px no-repeat;
}
html body .vf-currency-dropdown-header { font: 700 1.25rem/1.2 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; letter-spacing: 0.01em; margin: 0 0 8px !important; }
html body .vf-currency-dropdown-desc { font: 400 0.8rem/1.5 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.5) !important; margin: 0 !important; }
html body .vf-currency-options { padding: 4px 8px 10px !important; display: flex; flex-direction: column; gap: 2px; }
html body .vf-currency-option {
    display: flex !important; align-items: center !important; gap: 13px !important; padding: 9px 12px !important; border-radius: 14px !important;
    background: transparent !important; border: 1px solid transparent !important; box-shadow: none !important; color: #f5eddc !important;
    transition: background 0.2s, border-color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important; position: relative;
}
html body .vf-currency-option:hover { background: rgba(236, 224, 198, 0.07) !important; transform: translateX(2px); }
html body .vf-currency-option--active { background: rgba(236, 224, 198, 0.1) !important; border-color: rgba(236, 224, 198, 0.3) !important; }
html body .vf-currency-option--active::after {
    content: ""; position: absolute; right: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1a14' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat, var(--vf-cta);
}
html body .vf-currency-option-flag-wrap {
    width: 30px !important; height: 30px !important; flex: 0 0 30px; border-radius: 50% !important; overflow: hidden; display: grid !important; place-items: center;
    box-shadow: 0 0 0 1px rgba(236, 224, 198, 0.35), 0 0 0 3px rgba(5, 5, 4, 0.9) !important; background: #0b0b0a;
}
html body .vf-currency-option-flag { width: 42px !important; height: 30px !important; object-fit: cover; filter: saturate(0.7) contrast(1.02); }
html body .vf-currency-option-name { font: 600 0.88rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; }
html body .vf-currency-option-rate { font: 600 0.74rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.62) !important; font-variant-numeric: tabular-nums; margin-top: 2px; }
html body .vf-currency-dropdown ::-webkit-scrollbar { width: 6px; }
/* профиль */
html body .vf-user-menu-dropdown { padding: 8px !important; min-width: 250px !important; }
html body .vf-user-menu-time-block { padding: 6px 8px 12px !important; margin: 0 0 6px !important; border-bottom: 1px solid rgba(236, 224, 198, 0.14) !important; }
html body .vf-user-menu-time-main { font: 700 1.5rem/1 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; letter-spacing: 0.04em; font-variant-numeric: lining-nums tabular-nums; }
html body .vf-menu-tz-trigger {
    display: inline-flex !important; align-items: center; gap: 6px; padding: 6px 10px 6px 12px !important; border-radius: 999px !important;
    background: rgba(247, 239, 222, 0.05) !important; border: 1px solid rgba(236, 224, 198, 0.24) !important; color: #f5eddc !important;
    font: 600 0.78rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; box-shadow: none !important;
}
html body .vf-menu-tz-chevron { width: 13px !important; height: 13px !important; color: rgba(236, 224, 198, 0.7); }
html body .vf-menu-tz-dropdown { border-radius: 16px !important; padding: 6px !important; }
html body .vf-menu-tz-dropdown .vf-menu-tz-opt { border-radius: 10px !important; font: 500 0.8rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; }
html body .vf-menu-tz-dropdown .vf-menu-tz-opt:hover { background: rgba(236, 224, 198, 0.08) !important; }
html body .vf-menu-tz-dropdown .vf-menu-tz-opt.selected { background: rgba(236, 224, 198, 0.14) !important; }
html body .vf-user-menu-item {
    display: flex !important; align-items: center; gap: 12px; padding: 11px 12px !important; border-radius: 12px !important;
    font: 600 0.9rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.88) !important; text-decoration: none !important;
    background: transparent !important; border: 0 !important; position: relative;
    transition: background 0.2s, color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body .vf-user-menu-item::before {
    content: ""; width: 6px; height: 6px; flex: 0 0 6px; transform: rotate(45deg); border: 1px solid rgba(236, 224, 198, 0.5); transition: background 0.2s, border-color 0.2s;
}
html body .vf-user-menu-item:hover { background: rgba(236, 224, 198, 0.08) !important; color: #fffaf0 !important; transform: translateX(2px); }
html body .vf-user-menu-item:hover::before { background: var(--vf-gold); border-color: var(--vf-gold); }
html body .vf-user-menu-item--accent { color: #1d1a14 !important; background: var(--vf-cta) !important; justify-content: center; }
html body .vf-user-menu-item--accent::before { display: none; }
html body .vf-user-menu-item--danger, html body .vf-user-menu-item[href*="logout"] { color: rgba(240, 185, 164, 0.9) !important; }
/* появление меню */
html body .vf-currency-dropdown, html body .vf-user-menu-dropdown:not([hidden]) { transform-origin: top right; }
html body .vf-user-menu-dropdown:not([hidden]) { animation: vf-dd-in 0.32s cubic-bezier(.22, 1, .36, 1); }
html body .vf-user-menu-time-main { font: 700 1.3rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.06em !important; font-variant-numeric: tabular-nums !important; }
html body .vf-hero__stats b { font-family: "Inter", sans-serif !important; font-weight: 800 !important; font-size: 1.4rem !important; letter-spacing: -0.01em !important; }
html body .vf-currency-dropdown-header { font-size: 1.12rem !important; white-space: nowrap; }
html body .vf-currency-hint { margin: 0 !important; padding: 0 20px 10px !important; text-align: center; font: 500 0.74rem/1.4 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.45) !important; border: 0 !important; background: none !important; }

/* ==========================================================================
   ЛИЧНЫЙ КАБИНЕТ, ВХОД — дочищаем старое оформление
   ========================================================================== */
html body.profile-page .header .profile-buy-btn, html body .header .profile-buy-btn,
html body .profile-topup-btn, html body .profile-btn-telegram, html body .veo-login-provider-btn--primary {
    background: repeating-radial-gradient(circle at 18% 140%, rgba(120, 98, 58, 0.09) 0 1px, transparent 1px 4px), var(--vf-cta) !important;
    color: #1d1a14 !important; border: 0 !important; border-radius: 999px !important;
    box-shadow: 0 8px 22px rgba(236, 224, 198, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.7) !important; animation: none !important;
}
html body.profile-page .header .profile-buy-btn { padding: 0.5rem 1rem !important; font-size: 0.8rem !important; }
html body .profile-topup-btn, html body .profile-btn-telegram { font: 700 0.86rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; padding: 0.75rem 1.3rem !important; transition: transform 0.3s cubic-bezier(.34, 1.56, .64, 1), filter 0.2s !important; }
html body .profile-topup-btn:hover, html body .profile-btn-telegram:hover, html body .veo-login-provider-btn--primary:hover { transform: translateY(-1px); filter: brightness(1.05); }
html body .vf-currency-change-btn {
    background: rgba(247, 239, 222, 0.05) !important; color: #f5eddc !important; border: 1px solid rgba(236, 224, 198, 0.28) !important; border-radius: 999px !important;
    box-shadow: none !important; font: 600 0.82rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; padding: 0.72rem 1.2rem !important;
}
html body .profile-section-title {
    font: 700 1.5rem/1.15 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.01em !important; color: #f5eddc !important; text-transform: none !important;
}
html body .profile-section-title::after {
    content: "\25C6"; display: block; width: 150px; margin: 8px auto 0; font: 400 7px/10px "Inter", sans-serif; color: rgba(236, 224, 198, 0.8); text-align: center;
    background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.45) 30%, rgba(236, 224, 198, 0.45) 44%, transparent 44% 56%, rgba(236, 224, 198, 0.45) 56%, rgba(236, 224, 198, 0.45) 70%, transparent) center / 100% 1px no-repeat;
}
/* вход */
html body .veo-login-panel {
    background: radial-gradient(130% 60% at 50% 0%, rgba(247, 239, 222, 0.08), transparent 60%), linear-gradient(180deg, #15140f 0%, #0a0a09 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.24) !important; border-radius: 28px !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.75), inset 0 1px 0 rgba(255, 252, 245, 0.07), 0 0 0 6px rgba(5, 5, 4, 0.6), 0 0 0 7px rgba(236, 224, 198, 0.08) !important;
}
html body .veo-login-provider-btn:not(.veo-login-provider-btn--primary) {
    background: rgba(247, 239, 222, 0.04) !important; border: 1px solid rgba(236, 224, 198, 0.24) !important; color: #f5eddc !important; border-radius: 16px !important; box-shadow: none !important;
}
html body .veo-login-provider-btn:not(.veo-login-provider-btn--primary):hover { border-color: rgba(236, 224, 198, 0.5) !important; background: rgba(247, 239, 222, 0.07) !important; }
html body .veo-login-provider-btn--primary { border-radius: 16px !important; min-height: 52px; font: 700 0.95rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; }
html body .veo-login-provider-btn--primary .veo-login-provider-icon, html body .veo-login-provider-btn--primary svg { color: #1d1a14 !important; fill: currentColor; filter: none !important; }
html body .veo-login-signin-label { font: 700 1.2rem/1.2 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; }
html body .veo-login-provider-divider-label { background: #0f0e0c !important; color: rgba(236, 224, 198, 0.6) !important; border: 1px solid rgba(236, 224, 198, 0.2) !important; }
/* «Потрачено за месяц» — без красного, в палитре. Только точный класс: селектор вида [class*=…] [class*=…]
   заставлял браузер пересчитывать стили всей страницы при любой смене класса (секунды подвисаний на ПК) */
html body .gh-summary--spent { background: rgba(247, 239, 222, 0.04) !important; border-color: rgba(236, 224, 198, 0.2) !important; }
html body.profile-page:not(.vf-x):not(.vf-y) .header .profile-buy-btn {
    background: repeating-radial-gradient(circle at 18% 140%, rgba(120, 98, 58, 0.09) 0 1px, transparent 1px 4px), var(--vf-cta) !important;
    color: #1d1a14 !important; border: 0 !important; border-radius: 999px !important; padding: 0.5rem 1rem !important; font-size: 0.8rem !important;
    box-shadow: 0 6px 18px rgba(236, 224, 198, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.7) !important;
}
html body .profile-main-title {
    font: 700 1.55rem/1.15 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.01em !important; color: #f5eddc !important; text-transform: none !important; margin-bottom: 18px !important;
}
html body .profile-main-title::after {
    content: "\25C6"; display: block; width: 160px; margin: 8px auto 0; font: 400 7px/10px "Inter", sans-serif; color: rgba(236, 224, 198, 0.8); text-align: center;
    background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.45) 30%, rgba(236, 224, 198, 0.45) 44%, transparent 44% 56%, rgba(236, 224, 198, 0.45) 56%, rgba(236, 224, 198, 0.45) 70%, transparent) center / 100% 1px no-repeat;
}
html body .profile-main-title:not(.profile-main-title--center)::after { margin-left: 0; }
html body .profile-main-title { -webkit-text-fill-color: #f5eddc !important; background: none !important; }

/* ==========================================================================
   ЛОГОТИП-МЕДАЛЬОН: знак в кольце-шкале, звезда на орбите, антиква
   ========================================================================== */
.vf-medal {
    position: relative; display: inline-grid; place-items: center; flex: 0 0 auto;
    width: 46px; height: 46px; border-radius: 50%;
    background: radial-gradient(circle at 50% 35%, #1f1c16 0%, #0a0a09 70%);
    box-shadow: inset 0 0 0 1px rgba(236, 224, 198, 0.42), inset 0 0 0 4px #0a0a09, inset 0 0 0 5px rgba(236, 224, 198, 0.16), 0 0 18px rgba(236, 224, 198, 0.12);
}
.vf-medal__ticks { position: absolute; inset: 2px; border-radius: 50%; pointer-events: none;
    background: repeating-conic-gradient(rgba(236, 224, 198, 0.75) 0 1.2deg, transparent 1.2deg 30deg), repeating-conic-gradient(rgba(236, 224, 198, 0.28) 0 0.6deg, transparent 0.6deg 6deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
    animation: vf-ring-spin 90s linear infinite; }
.vf-medal__orbit { position: absolute; inset: -5px; border-radius: 50%; pointer-events: none; transform: rotate(-24deg) scaleY(0.42);
    border: 1px solid rgba(236, 224, 198, 0.22); }
.vf-medal__orbit b { position: absolute; left: 50%; top: -2.5px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: #fffaf0;
    box-shadow: 0 0 6px 2px rgba(255, 246, 224, 0.75); transform-origin: 2px calc(50% + 2.5px + 23px); }
.vf-medal__orbit { animation: none; }
.vf-medal__orbit::after { content: ""; position: absolute; inset: 0; border-radius: 50%;
    background: conic-gradient(from 0deg, transparent 0 300deg, rgba(255, 250, 240, 0.9) 356deg, transparent 360deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px)); mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1px));
    animation: vf-ring-spin 7s linear infinite; }
.vf-medal__orbit b { display: none; }
.vf-medal__stars { position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(circle at 22% 30%, #fffaf0 0 0.7px, transparent 1.2px), radial-gradient(circle at 78% 26%, rgba(255, 250, 240, 0.8) 0 0.6px, transparent 1.1px), radial-gradient(circle at 74% 76%, rgba(255, 250, 240, 0.7) 0 0.6px, transparent 1.1px), radial-gradient(circle at 27% 72%, rgba(255, 250, 240, 0.6) 0 0.5px, transparent 1px); }
.vf-medal > .veo-logo-gradient, .vf-medal > .veo-logo-gradient-mobile, .vf-medal > img {
    position: relative; z-index: 2; width: 24px !important; height: 24px !important; animation: none !important;
}
.vf-medal img { width: 24px !important; height: 24px !important; object-fit: contain; }
html body .header .logo, html body .desktop-header .logo { display: inline-flex !important; align-items: center !important; gap: 12px !important; }
html body .header .logo:hover .vf-medal__ticks { animation-duration: 12s; }
/* название: антиква в капителях + гравированная подпись */
html body .header-brand-name {
    display: inline-flex !important; flex-direction: column; align-items: flex-start; gap: 3px;
    background: none !important; -webkit-text-fill-color: initial !important; color: inherit !important; letter-spacing: 0 !important;
}
.vf-brand__main {
    font: 700 1.28rem/1 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.2em; text-transform: uppercase;
    background: linear-gradient(180deg, #fffaf0 0%, #f2e8d3 45%, #c9b68d 100%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}
.vf-brand__sub { font: 600 0.5rem/1 "Inter", sans-serif; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(236, 224, 198, 0.55); -webkit-text-fill-color: rgba(236, 224, 198, 0.55); padding-left: 1px; white-space: nowrap; }
@media (max-width: 1250px) { .vf-brand__sub { display: none; } .vf-brand__main { font-size: 1.12rem !important; } }

/* ==========================================================================
   РЕЖИМЫ «ЛЕНТА / ХОЛСТ» — подписанный переключатель над результатами
   ========================================================================== */
.vf-mode-dock { position: sticky; top: 10px; z-index: 6; height: 0; display: flex; justify-content: flex-end; padding-right: 14px; pointer-events: none; }
.vf-mode-dock .vf-view-switch { pointer-events: auto; margin: 0 !important; }
.vf-view-switch--dock {
    padding: 4px !important; border-radius: 999px !important;
    background: linear-gradient(180deg, rgba(24, 22, 18, 0.96), rgba(10, 10, 9, 0.96)) !important;
    border: 1px solid rgba(236, 224, 198, 0.24) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 252, 245, 0.06) !important;
}
.vf-view-switch--dock button { padding: 7px 14px !important; gap: 7px !important; font: 600 12px/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.04em; }
.vf-view-switch--dock button svg { width: 15px !important; height: 15px !important; }
.vf-view-switch--dock .vf-view-switch__thumb { top: 4px !important; bottom: 4px !important; left: 4px !important; width: calc(50% - 4px) !important; }
/* старый переключатель в левой панели больше не нужен */
.veo-left-sidebar .vf-view-switch { display: none !important; }

/* ==========================================================================
   Библиотека и история промптов в левой панели
   ========================================================================== */
.vf-rail-sep { display: block; width: 22px; height: 1px; margin: 6px auto; background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.35), transparent); }
.veo-left-sidebar .vf-rail-tool .vf-rail-ic { display: grid !important; place-items: center; background: none !important; -webkit-mask: none !important; mask: none !important; }
.veo-left-sidebar .vf-rail-tool svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.45s cubic-bezier(.34, 1.56, .64, 1); }
.veo-left-sidebar .vf-rail-tool--hist:hover svg { transform: rotate(-40deg); }
.veo-left-sidebar .vf-rail-tool--lib:hover svg { transform: translateY(-1px) scale(1.06); }
.vf-pop.vf-pop--side { transform-origin: left top; }
.vf-mode-dock { align-items: flex-start !important; z-index: 40 !important; } .vf-mode-dock .vf-view-switch { height: auto !important; align-self: flex-start; }
/* таймер генерации — ровные цифры, не прыгают при каждой секунде */
html body .vf-gen-timer { font-family: "Inter", sans-serif !important; font-variant-numeric: tabular-nums lining-nums !important; letter-spacing: 0.04em; }
/* в «Ленте» содержимое не прячется под капсулой «Лента/Холст» */
html body.vf-view-chat.veo-generation-body:not(.mobile-version) .veo-chat-messages { padding-top: 54px !important; }

/* ==========================================================================
   ТЕЛЕФОН: страница не должна прокручиваться целиком (было +10px — всё «плыло»)
   ========================================================================== */
html body.veo-generation-body.mobile-version:not(.profile-page) .veo-center-area,
html body.veo-generation-body.mobile-version:not(.profile-page) .veo-desktop-layout,
html body.veo-generation-body.mobile-version:not(.profile-page) form.veo-form { box-sizing: border-box !important; }
html body.veo-generation-body.mobile-version:not(.profile-page) .app-container { height: calc(100dvh / var(--vf-z, 1)) !important; max-height: calc(100dvh / var(--vf-z, 1)) !important; overflow: hidden !important; }
html body.veo-generation-body.mobile-version:not(.profile-page) main.veo-main { flex: 1 1 0% !important; min-height: 0 !important; overflow: hidden !important; }
html body.veo-generation-body.mobile-version:not(.profile-page) form.veo-form,
html body.veo-generation-body.mobile-version:not(.profile-page) .veo-desktop-layout,
html body.veo-generation-body.mobile-version:not(.profile-page) .veo-center-area { min-height: 0 !important; height: 100% !important; }

/* ==========================================================================
   ПЛАВНОСТЬ: прокрутка не «перетекает» в чат, кнопка «К последнему»
   ========================================================================== */
html body :is(.vf-pop__body, .vf-pop__list, .veo-custom-select-dropdown, .vf-currency-dropdown, .vf-currency-options, .vf-menu-tz-dropdown,
    .veo-chats-panel, .veo-chats-panel-list, .vf-gallery, .vfv-strip, .veo-settings-scroll, .veo-video-catalog-panel, #veoChatMessagesDesktop, .veo-chat-messages) {
    overscroll-behavior: contain;
}
html body #veoChatMessagesDesktop { -webkit-overflow-scrolling: touch; overflow-anchor: auto; }
.vf-jump {
    position: absolute; left: 50%; bottom: 18px; z-index: 30; transform: translate(-50%, 14px); opacity: 0; pointer-events: none;
    display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px 9px 12px; border-radius: 999px; cursor: pointer;
    font: 600 0.78rem/1 "Inter", sans-serif; letter-spacing: 0.02em; color: #f5eddc;
    background: linear-gradient(180deg, rgba(24, 22, 18, 0.97), rgba(10, 10, 9, 0.97)); border: 1px solid rgba(236, 224, 198, 0.3);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.6), 0 0 0 4px rgba(5, 5, 4, 0.5);
    transition: opacity 0.25s, transform 0.4s cubic-bezier(.34, 1.56, .64, 1), border-color 0.2s;
}
.vf-jump svg { width: 16px; height: 16px; }
.vf-jump.is-on { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.vf-jump:hover { border-color: rgba(236, 224, 198, 0.6); }
.vf-jump__dot { display: none; width: 7px; height: 7px; border-radius: 50%; background: var(--vf-gold); box-shadow: 0 0 10px rgba(236, 224, 198, 0.8); }
.vf-jump.has-new .vf-jump__dot { display: block; animation: vf-breathe 1.6s ease-in-out infinite; }
.vf-jump.has-new span::after { content: " · новое"; color: var(--vf-gold); }
html body.vf-view-chat .veo-chat-messages-wrap { position: relative; }

/* ==========================================================================
   КАРТОЧКА «НЕ ЗАГРУЗИЛОСЬ / НЕДОСТУПНО» — одна чистая рамка вместо двух,
   иконка в медальоне, подпись о хранении гравировкой, без «таблетки»
   ========================================================================== */
html body.veo-generation-body .veo-video-wrapper--unavailable,
html body.veo-generation-body .veo-video-wrapper.veo-video-wrapper--unavailable {
    background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; outline: 0 !important;
}
html body.veo-generation-body .veo-video-wrapper--unavailable::before, html body.veo-generation-body .veo-video-wrapper--unavailable::after { display: none !important; }
html body.veo-generation-body .veo-video-unavailable, html body.veo-generation-body .veo-video-unavailable-inner {
    width: 100% !important; height: 100% !important; min-height: 260px; padding: 0 !important; margin: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important;
}
html body.veo-generation-body .veo-video-unavailable-card {
    width: 100% !important; height: 100% !important; max-width: none !important; min-height: 260px; box-sizing: border-box; border-radius: inherit;
    border-radius: 20px !important; padding: 28px 26px !important; gap: 12px !important; justify-content: center;
    background: radial-gradient(90% 60% at 50% 18%, rgba(247, 239, 222, 0.07), transparent 65%), linear-gradient(180deg, #13120e 0%, #0a0a09 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.2) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 5px rgba(5, 5, 4, 0.6), inset 0 0 0 6px rgba(236, 224, 198, 0.06) !important;
}
html body.veo-generation-body .veo-video-unavailable-icon {
    position: relative; width: 58px !important; height: 58px !important; border-radius: 50% !important; margin: 0 0 4px !important;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 70%) !important; border: 1px solid rgba(236, 224, 198, 0.4) !important; box-shadow: 0 0 0 4px #0a0a09, 0 0 0 5px rgba(236, 224, 198, 0.14) !important;
}
html body.veo-generation-body .veo-video-unavailable-icon::after {
    content: ""; position: absolute; inset: -9px; border-radius: 50%; pointer-events: none;
    background: repeating-conic-gradient(rgba(236, 224, 198, 0.5) 0 1.2deg, transparent 1.2deg 30deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
}
html body.veo-generation-body .veo-video-unavailable-icon svg { width: 24px !important; height: 24px !important; color: #f2e8d3 !important; stroke-width: 1.6 !important; }
html body.veo-generation-body .veo-video-unavailable-badge {
    order: 3; border: 0 !important; padding: 0 !important; margin: 4px 0 0 !important; background: none !important; border-radius: 0 !important;
    font: 600 0.62rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.22em !important; color: rgba(236, 224, 198, 0.5) !important;
}
html body.veo-generation-body .veo-video-unavailable-badge::before { content: "◆  "; font-size: 0.5rem; vertical-align: 1px; }
html body.veo-generation-body .veo-video-unavailable-badge::after { content: "  ◆"; font-size: 0.5rem; vertical-align: 1px; }
html body.veo-generation-body .veo-video-unavailable-title { order: 1; font: 700 1.45rem/1.15 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; margin: 4px 0 0 !important; }
html body.veo-generation-body .veo-video-unavailable-text { order: 2; max-width: 300px; font: 400 0.84rem/1.55 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.55) !important; }
html body.veo-generation-body .veo-video-unavailable-icon { order: 0; }

/* строка «Получено · ID» под результатом — без зелёного, ровно */
html body.veo-generation-body .veo-video-block-meta { display: flex !important; flex-wrap: wrap; align-items: center; gap: 6px 14px !important; margin-top: 10px !important; }
html body.veo-generation-body .veo-video-block-received { font: 500 0.76rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.5) !important; }
html body.veo-generation-body .veo-video-block-id-wrap { display: inline-flex !important; align-items: center; gap: 6px; padding: 3px 4px 3px 10px; border-radius: 999px; border: 1px solid rgba(236, 224, 198, 0.16); background: rgba(247, 239, 222, 0.03); }
html body.veo-generation-body .veo-video-block-id-label { font: 700 0.62rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.16em; color: rgba(236, 224, 198, 0.55) !important; }
html body.veo-generation-body .veo-video-block-id-value { font: 600 0.74rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; font-variant-numeric: tabular-nums; color: #f2e8d3 !important; background: none !important; padding: 0 !important; letter-spacing: 0.04em; }
html body.veo-generation-body .veo-video-block-id-copy { width: 22px !important; height: 22px !important; border-radius: 50% !important; }
html body.veo-generation-body .veo-video-block-id-copy svg { width: 12px !important; height: 12px !important; }
/* одна кнопка «вниз»: на компьютере старую круглую заменяет «К последнему» */
html body.veo-generation-body:not(.mobile-version) #veoScrollToBottomBtn { display: none !important; }
/* карточка «не загрузилось» подстраивается под размер кадра (16:9, 9:16, 1:1) */
html body.veo-generation-body .veo-video-wrapper--unavailable { container-type: size; }
html body.veo-generation-body .veo-video-unavailable, html body.veo-generation-body .veo-video-unavailable-inner,
html body.veo-generation-body .veo-video-unavailable-card { min-height: 0 !important; }
html body.veo-generation-body .veo-video-unavailable-card { overflow: hidden; }
@container (max-height: 330px) {
    html body.veo-generation-body .veo-video-unavailable-card { padding: 16px 18px !important; gap: 7px !important; }
    html body.veo-generation-body .veo-video-unavailable-icon { width: 42px !important; height: 42px !important; margin: 0 !important; }
    html body.veo-generation-body .veo-video-unavailable-icon::after { inset: -7px !important; }
    html body.veo-generation-body .veo-video-unavailable-icon svg { width: 19px !important; height: 19px !important; }
    html body.veo-generation-body .veo-video-unavailable-title { font-size: 1.2rem !important; }
    html body.veo-generation-body .veo-video-unavailable-text { font-size: 0.76rem !important; line-height: 1.45 !important; display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
@container (max-height: 220px) {
    html body.veo-generation-body .veo-video-unavailable-text { display: none !important; }
    html body.veo-generation-body .veo-video-unavailable-badge { margin-top: 0 !important; }
}
html body.veo-generation-body .veo-video-wrapper--unavailable { width: min(100%, 440px) !important; min-width: min(100%, 300px) !important; }

html body.veo-generation-body .veo-video-block:has(> .veo-video-wrapper--unavailable),
html body.veo-generation-body .veo-result-with-toolbar:has(.veo-video-wrapper--unavailable) .veo-video-block { width: min(100%, 440px) !important; }
html body.veo-generation-body .veo-video-unavailable-card > * { flex-shrink: 0; }
html body.veo-generation-body .veo-video-unavailable-icon { flex: 0 0 auto !important; aspect-ratio: 1; }
html body.veo-generation-body .veo-video-unavailable-badge { white-space: normal; text-align: center; line-height: 1.4 !important; }
@container (max-width: 340px) {
    html body.veo-generation-body .veo-video-unavailable-badge { letter-spacing: 0.12em !important; font-size: 0.56rem !important; }
}
/* панель у результата: кнопки плотнее, сама панель ближе к картинке */
html body.veo-generation-body .veo-chat-message--assistant .veo-result-toolbar { gap: 3px !important; padding: 5px !important; border-radius: 17px !important; }
html body.veo-generation-body .veo-chat-message--assistant .veo-result-with-toolbar { gap: 8px !important; column-gap: 8px !important; }
html body.veo-generation-body .veo-chat-message--assistant .veo-result-with-toolbar > .veo-result-toolbar { margin-right: 0 !important; margin-left: 0 !important; }

/* ==========================================================================
   РАЗМЕР РЕЗУЛЬТАТА: у всех форматов одинаковая «площадь», высота не больше
   доли экрана — 16:9, 1:1, 9:16 и остальные выглядят соразмерно
   --vf-s  сторона квадрата 1:1;  --vf-k = √(ш/в);  --vf-r = ш/в
   ========================================================================== */
html body.veo-generation-body { --vf-s: clamp(330px, calc(30vw / var(--vf-z, 1)), 500px); --vf-hmax: calc(64vh / var(--vf-z, 1)); }
html body.veo-generation-body.vf-view-studio { --vf-s: clamp(360px, calc(38vw / var(--vf-z, 1)), 640px); --vf-hmax: calc(72vh / var(--vf-z, 1)); }
html body.veo-generation-body.mobile-version { --vf-s: min(calc(92vw / var(--vf-z, 1)), 420px); --vf-hmax: calc(60vh / var(--vf-z, 1)); }

html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="1:1"] { --vf-k: 1.0; --vf-r: 1.0; --vf-ar: 1 / 1; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="16:9"] { --vf-k: 1.3333; --vf-r: 1.7778; --vf-ar: 16 / 9; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="9:16"] { --vf-k: 0.75; --vf-r: 0.5625; --vf-ar: 9 / 16; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="4:3"] { --vf-k: 1.1547; --vf-r: 1.3333; --vf-ar: 4 / 3; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="3:4"] { --vf-k: 0.866; --vf-r: 0.75; --vf-ar: 3 / 4; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="3:2"] { --vf-k: 1.2247; --vf-r: 1.5; --vf-ar: 3 / 2; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="2:3"] { --vf-k: 0.8165; --vf-r: 0.6667; --vf-ar: 2 / 3; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="5:4"] { --vf-k: 1.118; --vf-r: 1.25; --vf-ar: 5 / 4; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="4:5"] { --vf-k: 0.8944; --vf-r: 0.8; --vf-ar: 4 / 5; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="21:9"] { --vf-k: 1.5275; --vf-r: 2.3333; --vf-ar: 21 / 9; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect="9:21"] { --vf-k: 0.6547; --vf-r: 0.4286; --vf-ar: 9 / 21; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper:is([data-aspect="1:1"],[data-aspect="16:9"],[data-aspect="9:16"],[data-aspect="4:3"],[data-aspect="3:4"],[data-aspect="3:2"],[data-aspect="2:3"],[data-aspect="5:4"],[data-aspect="4:5"],[data-aspect="21:9"],[data-aspect="9:21"]):not(.vf-nano-result-grid-wrap) {
    width: min(calc(var(--vf-s) * var(--vf-k, 1)), calc(var(--vf-hmax) * var(--vf-r, 1))) !important;
    max-width: 100% !important; min-width: 0 !important; height: auto !important; max-height: none !important;
    aspect-ratio: var(--vf-ar, auto) !important; margin-left: 0 !important; margin-right: 0 !important;
}
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper:is([data-aspect="1:1"],[data-aspect="16:9"],[data-aspect="9:16"],[data-aspect="4:3"],[data-aspect="3:4"],[data-aspect="3:2"],[data-aspect="2:3"],[data-aspect="5:4"],[data-aspect="4:5"],[data-aspect="21:9"],[data-aspect="9:21"]) img.veo-chat-result-img, html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper:is([data-aspect="1:1"],[data-aspect="16:9"],[data-aspect="9:16"],[data-aspect="4:3"],[data-aspect="3:4"],[data-aspect="3:2"],[data-aspect="2:3"],[data-aspect="5:4"],[data-aspect="4:5"],[data-aspect="21:9"],[data-aspect="9:21"]) video { width: 100% !important; height: 100% !important; object-fit: contain !important; background: #0b0b0a; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper.veo-video-wrapper--unavailable:is([data-aspect="1:1"],[data-aspect="16:9"],[data-aspect="9:16"],[data-aspect="4:3"],[data-aspect="3:4"],[data-aspect="3:2"],[data-aspect="2:3"],[data-aspect="5:4"],[data-aspect="4:5"],[data-aspect="21:9"],[data-aspect="9:21"]) { min-width: min(100%, 250px) !important; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-block:has(> .veo-video-wrapper:is([data-aspect="1:1"],[data-aspect="16:9"],[data-aspect="9:16"],[data-aspect="4:3"],[data-aspect="3:4"],[data-aspect="3:2"],[data-aspect="2:3"],[data-aspect="5:4"],[data-aspect="4:5"],[data-aspect="21:9"],[data-aspect="9:21"])) { width: auto !important; max-width: 100% !important; }

/* ==========================================================================
   ЛИЧНЫЙ КАБИНЕТ v2 — «кабинет коллекционера»: бархатные карточки,
   медальоны, гравированные подписи, табличные цифры, гроссбух вместо таблиц
   ========================================================================== */
html body.profile-page .profile-bg-shapes, html body.profile-page .profile-bg-circles, html body.profile-page .profile-bg-grid,
html body.profile-page .profile-bg-mesh, html body.profile-page .profile-bg-dust, html body.profile-page .profile-bg-video { display: none !important; }

/* --- боковое меню: медальон-шапка, пункты как гравировка --- */
html body .profile-sidebar {
    padding: 18px 14px 14px !important; border-radius: 26px !important;
    background: radial-gradient(120% 50% at 50% 0%, rgba(247, 239, 222, 0.07), transparent 60%), linear-gradient(180deg, #13120e 0%, #0a0a09 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.2) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 5px rgba(5, 5, 4, 0.55), inset 0 0 0 6px rgba(236, 224, 198, 0.05) !important;
}
.vf-lk-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 6px 6px 16px; margin-bottom: 10px; position: relative; }
.vf-lk-head::after {
    content: "\25C6"; display: block; width: 100%; margin-top: 10px; font: 400 7px/10px "Inter", sans-serif; color: rgba(236, 224, 198, 0.7);
    background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.35) 25%, rgba(236, 224, 198, 0.35) 44%, transparent 44% 56%, rgba(236, 224, 198, 0.35) 56%, rgba(236, 224, 198, 0.35) 75%, transparent) center / 100% 1px no-repeat;
}
.vf-lk-head b { font: 700 1.35rem/1.1 var(--vf-antiqua); color: #f5eddc; letter-spacing: 0.02em; }
.vf-lk-head small { font: 600 0.55rem/1 "Inter", sans-serif; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(236, 224, 198, 0.5); }
html body .profile-sidebar-nav { display: flex !important; flex-direction: column; gap: 4px !important; }
html body .profile-sidebar-link {
    display: flex !important; align-items: center !important; gap: 12px !important; padding: 9px 12px 9px 9px !important; border-radius: 14px !important;
    font: 600 0.88rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.78) !important; background: transparent !important; border: 1px solid transparent !important; box-shadow: none !important;
    transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body .profile-sidebar-link:hover { background: rgba(236, 224, 198, 0.06) !important; color: #fffaf0 !important; transform: translateX(2px); }
html body .profile-sidebar-icon {
    width: 36px !important; height: 36px !important; flex: 0 0 36px; border-radius: 50% !important; display: grid !important; place-items: center !important;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 72%) !important; border: 1px solid rgba(236, 224, 198, 0.26) !important; box-shadow: none !important; color: #f2e8d3 !important;
}
html body .profile-sidebar-icon svg { width: 17px !important; height: 17px !important; stroke-width: 1.7 !important; }
html body .profile-sidebar-link.active {
    background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.07) 0 1px, transparent 1px 3px), var(--vf-cta) !important; color: #1d1a14 !important;
    box-shadow: 0 8px 22px rgba(236, 224, 198, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.7) !important;
}
html body .profile-sidebar-link.active .profile-sidebar-icon { background: #15140f !important; border-color: rgba(29, 26, 20, 0.4) !important; color: #f2e8d3 !important; }
html body .profile-sidebar-logout { margin-top: 14px !important; border-top: 1px solid rgba(236, 224, 198, 0.1) !important; border-radius: 0 0 14px 14px !important; padding-top: 14px !important; color: rgba(240, 185, 164, 0.8) !important; }
html body .profile-sidebar-logout .profile-sidebar-icon { color: rgba(240, 185, 164, 0.9) !important; border-color: rgba(240, 185, 164, 0.3) !important; }

/* --- карточки --- */
html body.profile-page .profile-card {
    position: relative; border-radius: 26px !important; padding: 26px 28px 28px !important;
    background: radial-gradient(100% 45% at 50% 0%, rgba(247, 239, 222, 0.06), transparent 60%), linear-gradient(180deg, rgba(19, 18, 14, 0.96) 0%, rgba(10, 10, 9, 0.97) 100%) !important;
    border: 1px solid rgba(236, 224, 198, 0.18) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 6px rgba(5, 5, 4, 0.5), inset 0 0 0 7px rgba(236, 224, 198, 0.04) !important;
    backdrop-filter: none !important; animation: vf-lk-in 0.6s cubic-bezier(.22, 1, .36, 1) both;
}
html body.profile-page .profile-cards-grid > *:nth-child(2) .profile-card, html body.profile-page .profile-cards-grid > .profile-card:nth-child(2) { animation-delay: 0.08s; }
html body.profile-page .profile-cards-grid > .profile-card:nth-child(3) { animation-delay: 0.16s; }
@keyframes vf-lk-in { from { opacity: 0; transform: translateY(12px); } }
/* уголки-скобы на карточках */
html body.profile-page .profile-card::before {
    content: ""; position: absolute; inset: 12px; pointer-events: none; border-radius: 16px;
    background:
        linear-gradient(rgba(236, 224, 198, 0.35), rgba(236, 224, 198, 0.35)) left top / 14px 1px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.35), rgba(236, 224, 198, 0.35)) left top / 1px 14px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.35), rgba(236, 224, 198, 0.35)) right top / 14px 1px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.35), rgba(236, 224, 198, 0.35)) right top / 1px 14px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.35), rgba(236, 224, 198, 0.35)) left bottom / 14px 1px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.35), rgba(236, 224, 198, 0.35)) left bottom / 1px 14px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.35), rgba(236, 224, 198, 0.35)) right bottom / 14px 1px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.35), rgba(236, 224, 198, 0.35)) right bottom / 1px 14px no-repeat;
}

/* --- профиль: медальон с аватаром + гроссбух данных + «циферблат» баланса --- */
html body .profile-combined-content { display: grid !important; grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 1fr) !important; gap: 28px !important; align-items: center !important; }
html body .profile-combined-left { display: flex !important; align-items: center !important; gap: 26px !important; }
html body .profile-combined-divider { width: 1px !important; height: 100% !important; min-height: 160px; background: linear-gradient(180deg, transparent, rgba(236, 224, 198, 0.3), transparent) !important; }
html body .profile-avatar-large-wrap { position: relative; flex: 0 0 auto; padding: 10px; }
html body .profile-avatar-large-wrap::before {
    content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
    background: repeating-conic-gradient(rgba(236, 224, 198, 0.6) 0 1.2deg, transparent 1.2deg 15deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px)); mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
    animation: vf-ring-spin 90s linear infinite;
}
html body .profile-avatar-large {
    width: 124px !important; height: 124px !important; border-radius: 50% !important; overflow: hidden;
    border: 1px solid rgba(236, 224, 198, 0.55) !important; box-shadow: 0 0 0 4px #0a0a09, 0 0 0 5px rgba(236, 224, 198, 0.18), 0 18px 40px rgba(0, 0, 0, 0.6), 0 0 30px rgba(236, 224, 198, 0.12) !important;
    background: radial-gradient(circle at 50% 35%, #201d17, #0b0b0a 72%) !important;
}
html body .profile-avatar-letter { font: 700 2.6rem/1 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; color: #f2e8d3 !important; }
html body .profile-avatar-edit-badge { border-radius: 50% !important; background: var(--vf-cta) !important; color: #1d1a14 !important; border: 2px solid #0a0a09 !important; }
html body .profile-user-details { display: flex !important; flex-direction: column; gap: 9px !important; min-width: 0; flex: 1; }
html body .profile-detail-row { display: flex; align-items: baseline !important; gap: 8px !important; font-size: 0.86rem !important; min-width: 0; }
html body .profile-detail-row::after { content: ""; order: 1; flex: 1 1 18px; min-width: 18px; border-bottom: 1px dotted rgba(236, 224, 198, 0.28); transform: translateY(-3px); }
html body .profile-detail-label { order: 0; flex: 0 0 auto; font: 600 0.66rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.14em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.55) !important; }
html body .profile-detail-value { order: 2; flex: 0 0 auto; max-width: 62%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 0.88rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; font-variant-numeric: tabular-nums; }
html body .profile-detail-mono { font-family: "Inter", sans-serif !important; }
html body .profile-tokens-balance-wrap { display: flex !important; flex-direction: column; gap: 18px !important; }
html body .profile-tokens-row { display: flex !important; flex-direction: column; gap: 6px; }
html body .profile-tokens-sublabel { font: 600 0.64rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.18em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.55) !important; }
html body .profile-tokens-row--tokens .profile-tokens-value { display: inline-flex; align-items: baseline; gap: 10px; }
html body .profile-tokens-balance {
    font: 800 2.9rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: -0.02em; font-variant-numeric: tabular-nums;
    background: linear-gradient(180deg, #fffaf0 0%, #f2e8d3 45%, #c9b68d 100%); -webkit-background-clip: text; background-clip: text; color: transparent !important; -webkit-text-fill-color: transparent;
}

html body .profile-tokens-row--currency .profile-tokens-value { font: 700 1.35rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; }
html body .profile-balance-actions { display: flex !important; gap: 10px !important; margin-top: 10px; flex-wrap: wrap; }

/* --- рефералы / телеграм в профиле --- */
html body .profile-referrals-stats { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px !important; margin-bottom: 16px; }
html body .profile-referrals-stats > * {
    display: flex !important; align-items: center; gap: 12px; padding: 14px !important; border-radius: 16px !important;
    background: rgba(247, 239, 222, 0.03) !important; border: 1px solid rgba(236, 224, 198, 0.14) !important;
}
html body .profile-referrals-stats svg { color: #f2e8d3; }
html body.profile-page .profile-card ul { list-style: none !important; padding-left: 0 !important; display: flex; flex-direction: column; gap: 8px; }
html body.profile-page .profile-card ul li { position: relative; padding-left: 20px; color: rgba(245, 237, 220, 0.78) !important; line-height: 1.5; }
html body.profile-page .profile-card ul li::before { content: ""; position: absolute; left: 3px; top: 0.55em; width: 6px; height: 6px; transform: rotate(45deg); border: 1px solid rgba(236, 224, 198, 0.7); }
html body.profile-page .profile-card p { color: rgba(245, 237, 220, 0.7) !important; line-height: 1.6; }
html body .profile-referral-link, html body .ref-link-card, html body [class*="ref-link-input"] {
    border-radius: 14px !important; background: #0b0b0a !important; border: 1px solid rgba(236, 224, 198, 0.2) !important; color: #f2e8d3 !important;
    font: 500 0.82rem/1.3 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important;
}

/* --- партнёрская программа --- */
html body .ref-banner {
    display: flex !important; gap: 14px; align-items: flex-start; padding: 16px 18px !important; border-radius: 18px !important;
    background: linear-gradient(135deg, rgba(236, 224, 198, 0.1), rgba(236, 224, 198, 0.02)) !important; border: 1px solid rgba(236, 224, 198, 0.24) !important;
}
html body .ref-banner-icon { color: #f2e8d3 !important; }
html body .ref-banner-text { color: rgba(245, 237, 220, 0.82) !important; font: 500 0.88rem/1.55 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; }
html body .ref-stats-row { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px !important; }
html body .ref-stat-box {
    position: relative; display: flex !important; flex-direction: column-reverse; align-items: center; justify-content: center; gap: 10px; padding: 20px 10px 18px !important; border-radius: 18px !important; text-align: center;
    background: radial-gradient(90% 70% at 50% 0%, rgba(247, 239, 222, 0.06), transparent 70%), #0d0c0a !important; border: 1px solid rgba(236, 224, 198, 0.16) !important; box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.05) !important;
}
html body .ref-stat-box:first-child { border-color: rgba(236, 224, 198, 0.4) !important; background: radial-gradient(90% 70% at 50% 0%, rgba(247, 239, 222, 0.12), transparent 70%), #0f0e0b !important; }
html body .ref-stat-value { font: 800 1.7rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; font-variant-numeric: tabular-nums; }
html body .ref-stat-box:first-child .ref-stat-value { background: linear-gradient(180deg, #fffaf0, #c9b68d); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
html body .ref-stat-label { font: 600 0.6rem/1.3 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.16em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.55) !important; }
html body .ref-link-card { padding: 14px 16px !important; display: flex !important; flex-direction: column; gap: 8px; cursor: pointer; transition: border-color 0.2s !important; }
html body .ref-link-card:hover { border-color: rgba(236, 224, 198, 0.45) !important; }
html body .ref-link-label { font: 600 0.62rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.16em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.55) !important; }
html body .ref-link-value { font: 600 0.88rem/1.3 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f2e8d3 !important; word-break: break-all; }
html body .ref-btn, html body .arc-btn:not(.profile-buy-btn) {
    display: inline-flex !important; align-items: center; gap: 8px; min-height: 42px; padding: 0 18px !important; border-radius: 999px !important;
    font: 700 0.84rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; background: rgba(247, 239, 222, 0.05) !important; color: #f5eddc !important; border: 1px solid rgba(236, 224, 198, 0.26) !important; box-shadow: none !important;
}
html body .ref-btn-primary { background: var(--vf-cta) !important; color: #1d1a14 !important; border: 0 !important; box-shadow: 0 8px 22px rgba(236, 224, 198, 0.18) !important; }
html body .ref-btn:disabled, html body .ref-btn[disabled] { opacity: 0.38 !important; }

/* --- таблицы: гроссбух --- */
html body .ref-table-wrap, html body .gh-table-wrap, html body.profile-page table { border-radius: 18px !important; overflow: hidden; border: 1px solid rgba(236, 224, 198, 0.16) !important; background: #0b0b0a !important; }
html body.profile-page table { width: 100%; border-collapse: collapse !important; }
html body.profile-page th {
    padding: 13px 14px !important; text-align: left; background: rgba(236, 224, 198, 0.05) !important; border-bottom: 1px solid rgba(236, 224, 198, 0.18) !important;
    font: 700 0.62rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.16em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.62) !important;
}
html body.profile-page td { padding: 12px 14px !important; border-bottom: 1px solid rgba(236, 224, 198, 0.07) !important; color: rgba(245, 237, 220, 0.85) !important; font: 500 0.84rem/1.35 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; font-variant-numeric: tabular-nums; background: transparent !important; }
html body.profile-page tbody tr { transition: background 0.2s; }
html body.profile-page tbody tr:hover td { background: rgba(236, 224, 198, 0.04) !important; }
html body.profile-page tbody tr:last-child td { border-bottom: 0 !important; }
html body .ref-empty, html body .gh-empty-cell, html body .rh-empty {
    padding: 34px 14px !important; text-align: center !important; color: rgba(245, 237, 220, 0.45) !important; font: italic 600 1.05rem/1.4 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important;
}
html body .gh-empty-cell::before, html body .ref-empty::before { content: "\25C6"; display: block; font: 400 8px/1 "Inter", sans-serif; color: rgba(236, 224, 198, 0.6); margin-bottom: 10px; font-style: normal; }

/* --- история операций --- */
html body .gh-summary-value { font: 800 1.6rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; font-variant-numeric: tabular-nums; }
html body .gh-summary-label { font: 600 0.62rem/1.3 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.16em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.55) !important; }
html body [class*="gh-summary-card"], html body [class*="gh-summary-item"], html body .gh-summary > * {
    border-radius: 18px !important; background: radial-gradient(90% 70% at 50% 0%, rgba(247, 239, 222, 0.06), transparent 70%), #0d0c0a !important;
    border: 1px solid rgba(236, 224, 198, 0.16) !important; box-shadow: none !important;
}
html body .gh-pill, html body .rh-pill, html body [class*="gh-tab"] {
    border-radius: 999px !important; padding: 9px 16px !important; font: 600 0.8rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important;
    background: rgba(247, 239, 222, 0.04) !important; color: rgba(245, 237, 220, 0.75) !important; border: 1px solid rgba(236, 224, 198, 0.18) !important; box-shadow: none !important;
}
html body .gh-pill.active, html body .rh-pill.active, html body [class*="gh-tab"].active, html body .gh-pill[aria-pressed="true"] { background: var(--vf-cta) !important; color: #1d1a14 !important; border-color: transparent !important; }

/* --- история генераций --- */
html body .rh-grid { gap: 16px !important; }
html body .rh-card-inner, html body [class*="rh-card"]:not([class*="rh-card-"]) {
    border-radius: 18px !important; overflow: hidden; background: #0d0c0a !important; border: 1px solid rgba(236, 224, 198, 0.16) !important;
    transition: transform 0.4s cubic-bezier(.34, 1.56, .64, 1), border-color 0.2s !important;
}
html body .rh-card-inner:hover { transform: translateY(-3px); border-color: rgba(236, 224, 198, 0.45) !important; }
html body .rh-card-prompt { color: rgba(245, 237, 220, 0.82) !important; font: 500 0.82rem/1.45 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; }
html body .rh-card-date { color: rgba(236, 224, 198, 0.5) !important; font: 500 0.72rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; font-variant-numeric: tabular-nums; }
html body .rh-action-btn { border-radius: 50% !important; background: rgba(247, 239, 222, 0.05) !important; border: 1px solid rgba(236, 224, 198, 0.22) !important; color: #f2e8d3 !important; }
html body .rh-load-more-btn { border-radius: 999px !important; background: rgba(247, 239, 222, 0.05) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important; color: #f5eddc !important; font: 700 0.84rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; padding: 13px 26px !important; }

/* --- магазин --- */
html body .shop-form-inner {
    border-radius: 24px !important; background: radial-gradient(100% 45% at 50% 0%, rgba(247, 239, 222, 0.06), transparent 60%), #0d0c0a !important; border: 1px solid rgba(236, 224, 198, 0.18) !important;
}
html body .shop-label { font: 600 0.64rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.16em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.6) !important; }
html body .shop-input, html body .shop-payment-trigger {
    border-radius: 14px !important; background: #0b0b0a !important; border: 1px solid rgba(236, 224, 198, 0.22) !important; color: #f5eddc !important; font: 600 0.9rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; box-shadow: none !important;
}
html body .shop-input:focus { border-color: rgba(236, 224, 198, 0.55) !important; outline: none !important; box-shadow: 0 0 0 3px rgba(236, 224, 198, 0.1) !important; }
html body .shop-total-block { border-radius: 20px !important; background: linear-gradient(135deg, rgba(236, 224, 198, 0.1), rgba(236, 224, 198, 0.02)) !important; border: 1px solid rgba(236, 224, 198, 0.28) !important; }
html body .shop-total-value, html body .shop-total-rockets { font: 800 1.8rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; font-variant-numeric: tabular-nums; }
html body .shop-purchase-btn {
    min-height: 54px; border-radius: 999px !important; border: 0 !important; color: #1d1a14 !important; font: 800 0.95rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.08em; text-transform: uppercase;
    background: repeating-radial-gradient(circle at 18% 140%, rgba(120, 98, 58, 0.09) 0 1px, transparent 1px 4px), var(--vf-cta) !important; box-shadow: 0 12px 30px rgba(236, 224, 198, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.7) !important;
}
html body .shop-promo-btn { border-radius: 12px !important; background: rgba(247, 239, 222, 0.05) !important; border: 1px solid rgba(236, 224, 198, 0.26) !important; color: #f5eddc !important; }
html body .shop-slider { accent-color: #e8dcc2; }
html body .shop-payment-dropdown { border-radius: 16px !important; background: linear-gradient(180deg, #15140f, #0a0a09) !important; border: 1px solid rgba(236, 224, 198, 0.24) !important; }
html body .shop-payment-option { border-radius: 12px !important; color: #f5eddc !important; }
html body .shop-payment-option:hover { background: rgba(236, 224, 198, 0.08) !important; }
html body .shop-loading, html body .shop-empty, html body [class*="shop-unavailable"] { color: rgba(245, 237, 220, 0.5) !important; font: italic 600 1.05rem/1.4 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; }

@media (max-width: 1100px) {
    html body .profile-combined-content { grid-template-columns: 1fr !important; }
    html body .profile-combined-divider { width: 100% !important; height: 1px !important; min-height: 0; background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.3), transparent) !important; }
    html body .ref-stats-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    html body .profile-combined-left { flex-direction: column; text-align: center; }
    html body .profile-referrals-stats { grid-template-columns: 1fr; }
    html body .ref-stats-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    html body.profile-page .profile-card { padding: 22px 18px !important; }
}

html body .profile-sidebar-link.active .profile-sidebar-icon svg, html body .profile-sidebar-link.active .profile-sidebar-icon svg * { color: #f2e8d3 !important; stroke: #f2e8d3 !important; }
html body.profile-page .profile-cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
/* кабинет: содержимое сверху, а не посреди пустого экрана; таблица без двойной рамки */
html body.profile-page .profile-main { justify-content: flex-start !important; }
html body.profile-page :is(.ref-table-wrap, .gh-table-wrap) table { border: 0 !important; border-radius: 0 !important; background: transparent !important; }
html body.profile-page .gh-history-footer { border: 0 !important; background: none !important; }
/* партнёрский баланс: число, под ним валюта и подпись */
html body .ref-stat-box { flex-direction: column !important; }
html body .ref-stat-box > * { order: 2; }
html body .ref-stat-box .ref-stat-value { order: 1; }
html body .ref-stat-box .ref-stat-label { order: 3; }
/* кабинет на телефоне: меню — горизонтальная лента «жетонов», шапка компактная */
@media (max-width: 900px) {
    html body .profile-sidebar { display: block !important; padding: 10px !important; border-radius: 20px !important; }
    html body .vf-lk-head { display: none; }
    html body .profile-sidebar-nav {
        flex-direction: row !important; flex-wrap: nowrap !important; overflow-x: auto; gap: 6px !important; padding: 2px; margin: 0 !important;
        scrollbar-width: none; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
    }
    html body .profile-sidebar-nav::-webkit-scrollbar { display: none; }
    html body .profile-sidebar-link { flex: 0 0 auto !important; padding: 5px 13px 5px 5px !important; font-size: 0.8rem !important; white-space: nowrap; gap: 8px !important; }
    html body .profile-sidebar-link:hover { transform: none; }
    html body .profile-sidebar-icon { width: 30px !important; height: 30px !important; flex-basis: 30px; }
    html body .profile-sidebar-icon svg { width: 15px !important; height: 15px !important; }
    html body .profile-sidebar-logout { display: inline-flex !important; margin: 8px 0 0 auto !important; padding: 4px 10px 4px 4px !important; border-top: 0 !important; border-radius: 999px !important; font-size: 0.78rem !important; float: right; }
    html body .profile-sidebar::after { content: ""; display: block; clear: both; }
}
@media (max-width: 700px) {
    html body .header .header-brand-name { display: none !important; }
    html body .vf-medal { width: 40px; height: 40px; }
}
@media (max-width: 900px) { html body.profile-page .desktop-header { display: none !important; } }

/* «не загрузилось»: карточка своей естественной высоты, текст целиком, без обрезки */
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper.veo-video-wrapper--unavailable {
    container-type: normal !important; aspect-ratio: auto !important; height: auto !important;
    width: min(100%, 380px) !important; min-width: min(100%, 300px) !important;
}
html body.veo-generation-body .veo-video-wrapper--unavailable .veo-video-unavailable-card { height: auto !important; padding: 26px 24px 22px !important; }
html body.veo-generation-body .veo-video-wrapper--unavailable .veo-video-unavailable-text { display: block !important; -webkit-line-clamp: unset !important; }

/* ==========================================================================
   КРУПНЕЕ НА БОЛЬШИХ ЭКРАНАХ (всё, что задано в rem, растёт вместе с экраном)
   ========================================================================== */
@media (min-width: 1600px) { html { font-size: 17px !important; } }
@media (min-width: 1900px) { html { font-size: 18px !important; } }
@media (min-width: 2300px) { html { font-size: 19.5px !important; } }
@media (min-width: 1600px) {
    html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn,
    html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon { width: 42px !important; height: 42px !important; }
    html body.veo-generation-body .veo-left-icon-btn { width: 42px !important; height: 42px !important; }
}

/* ==========================================================================
   КОНТУРЫ ВИДНЕЕ + РАЗДЕЛИТЕЛИ ЗОН (рейка · лента · настройки) в нашем стиле
   ========================================================================== */
html body.veo-generation-body .veo-settings-section,
html body.veo-generation-body .veo-prompt-box,
html body.veo-generation-body .veo-chat-message--assistant .veo-result-toolbar,
html body.veo-generation-body .veo-chat-message--user .veo-chat-message-bubble { border-color: rgba(236, 224, 198, 0.3) !important; }
html body.veo-generation-body .veo-custom-select-trigger { border-color: rgba(236, 224, 198, 0.26) !important; }
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper[data-aspect]:not(.veo-video-wrapper--unavailable) {
    border-radius: 16px !important; box-shadow: 0 0 0 1px rgba(236, 224, 198, 0.28), 0 0 0 5px rgba(5, 5, 4, 0.7), 0 0 0 6px rgba(236, 224, 198, 0.1), 0 18px 44px rgba(0, 0, 0, 0.55) !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-left-sidebar,
html body.veo-generation-body:not(.mobile-version) .veo-right-settings { position: relative; }
html body.veo-generation-body:not(.mobile-version) .veo-left-sidebar { border-right: 0 !important; box-shadow: none !important; }
html body.veo-generation-body:not(.mobile-version) .veo-left-sidebar::after,
html body.veo-generation-body:not(.mobile-version) .veo-right-settings::before {
    content: ""; position: absolute; top: 18px; bottom: 18px; width: 1px; pointer-events: none; z-index: 2;
    background: linear-gradient(180deg, transparent, rgba(236, 224, 198, 0.34) 14%, rgba(236, 224, 198, 0.34) 86%, transparent);
}
html body.veo-generation-body:not(.mobile-version) .veo-left-sidebar::after { right: 0; }
html body.veo-generation-body:not(.mobile-version) .veo-right-settings::before { left: 0; }
html body.veo-generation-body:not(.mobile-version) .veo-left-sidebar::before,
html body.veo-generation-body:not(.mobile-version) .veo-right-settings::after {
    content: ""; position: absolute; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; transform: rotate(45deg); z-index: 3; pointer-events: none;
    background: #0a0a09; border: 1px solid rgba(236, 224, 198, 0.6); box-shadow: 0 0 8px rgba(236, 224, 198, 0.3);
}
html body.veo-generation-body:not(.mobile-version) .veo-left-sidebar::before { right: -4px; }
html body.veo-generation-body:not(.mobile-version) .veo-right-settings::after { left: -4px; }
html body.veo-generation-body:not(.mobile-version) .veo-right-settings { border-left: 0 !important; }

/* ==========================================================================
   СТРОКА «ДАТА · ID» ПОД РЕЗУЛЬТАТОМ — одна гравированная табличка
   ========================================================================== */
html body.veo-generation-body .veo-video-block-meta {
    display: inline-flex !important; align-items: stretch !important; gap: 0 !important; margin-top: 10px !important; padding: 0 !important; flex-wrap: nowrap;
    border-radius: 999px; border: 1px solid rgba(236, 224, 198, 0.26); background: linear-gradient(180deg, rgba(247, 239, 222, 0.06), rgba(247, 239, 222, 0.015));
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.05); overflow: hidden; max-width: 100%;
}
html body.veo-generation-body .veo-video-block-received {
    display: inline-flex !important; align-items: center; gap: 7px; padding: 6px 12px 6px 10px !important; white-space: nowrap;
    font: 600 0.74rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.78) !important; font-variant-numeric: tabular-nums;
}
html body.veo-generation-body .vf-meta-ic { width: 13px; height: 13px; flex: 0 0 13px; color: rgba(236, 224, 198, 0.75); }
html body.veo-generation-body .vf-meta-time { color: #f2e8d3; }
html body.veo-generation-body .vf-meta-dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(236, 224, 198, 0.5); }
html body.veo-generation-body .veo-video-block-id-wrap {
    border: 0 !important; border-left: 1px solid rgba(236, 224, 198, 0.2) !important; border-radius: 0 !important; background: transparent !important; padding: 0 4px 0 11px !important; gap: 6px !important;
}
html body.veo-generation-body .veo-video-block-id-copy {
    width: 24px !important; height: 24px !important; margin: 2px 0; background: transparent !important; border: 0 !important; color: rgba(236, 224, 198, 0.7) !important;
    transition: color 0.2s, background 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body.veo-generation-body .veo-video-block-id-copy:hover { background: rgba(236, 224, 198, 0.12) !important; color: #fffaf0 !important; transform: scale(1.08); }
html body.veo-generation-body .veo-video-block-id-copy.vf-copied { background: var(--vf-cta) !important; color: #1d1a14 !important; }
/* «Отправлено» у сообщения пользователя — в том же духе */
html body.veo-generation-body .veo-user-message-timestamp { font: 600 0.72rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.5) !important; letter-spacing: 0.02em; font-variant-numeric: tabular-nums; }
.vf-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: pre; }

/* ==========================================================================
   КАБИНЕТ: звание, «баланса хватит на», быстрые действия, совет дня
   ========================================================================== */
.vf-lk-row { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.vf-lk-row .vf-lk-quick { grid-column: 1 / -1; }
.vf-lk-row .profile-card { margin: 0 !important; }
.vf-rank { display: flex; align-items: center; gap: 20px; }
.vf-rank__medal {
    position: relative; flex: 0 0 76px; width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; color: #1d1a14;
    background: radial-gradient(circle at 35% 30%, #fffaf0, #e8dcc2 45%, #b5a27c 100%);
    box-shadow: 0 0 0 4px #0a0a09, 0 0 0 5px rgba(236, 224, 198, 0.4), 0 10px 26px rgba(236, 224, 198, 0.18);
}
.vf-rank__medal svg { width: 32px; height: 32px; stroke-width: 1.5; }
.vf-rank__medal i { position: absolute; inset: -11px; border-radius: 50%; pointer-events: none;
    background: repeating-conic-gradient(rgba(236, 224, 198, 0.6) 0 1.2deg, transparent 1.2deg 15deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px)); mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
    animation: vf-ring-spin 60s linear infinite; }
.vf-rank__medal::after { content: attr(data-level); position: absolute; right: -4px; bottom: -4px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
    background: #0a0a09; border: 1px solid rgba(236, 224, 198, 0.6); color: #f2e8d3; font: 700 0.72rem/1 "Inter", sans-serif; }
.vf-rank__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.vf-rank__name { font: 700 1.55rem/1.1 var(--vf-antiqua); color: #f5eddc; }
.vf-rank__note { font: 500 0.82rem/1.4 "Inter", sans-serif; color: rgba(245, 237, 220, 0.55); }
.vf-rank__bar { position: relative; height: 6px; border-radius: 999px; background: rgba(236, 224, 198, 0.1); overflow: hidden; margin-top: 6px; }
.vf-rank__bar i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: inherit; background: var(--vf-cta); box-shadow: 0 0 12px rgba(236, 224, 198, 0.5); transition: width 1.2s cubic-bezier(.22, 1, .36, 1); min-width: 6px; }
.vf-rank__next { font: 600 0.72rem/1.3 "Inter", sans-serif; color: rgba(236, 224, 198, 0.6); letter-spacing: 0.02em; }
.vf-afford { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vf-afford__it {
    display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 12px 14px; border-radius: 16px; text-decoration: none;
    background: rgba(247, 239, 222, 0.03); border: 1px solid rgba(236, 224, 198, 0.16); transition: border-color 0.2s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1);
}
.vf-afford__it:hover { border-color: rgba(236, 224, 198, 0.45); transform: translateY(-2px); }
.vf-afford__ic { grid-row: 1 / 3; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; color: #f2e8d3;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 72%); border: 1px solid rgba(236, 224, 198, 0.3); }
.vf-afford__ic svg { width: 17px; height: 17px; }
.vf-afford__t { font: 600 0.66rem/1.2 "Inter", sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(236, 224, 198, 0.6); }
.vf-afford__n { font: 800 1.45rem/1.1 "Inter", sans-serif; color: #f5eddc; font-variant-numeric: tabular-nums; }
.vf-afford__hint { margin: 12px 0 0 !important; text-align: center; font: italic 500 0.95rem/1.3 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.45) !important; }
.vf-quick { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.vf-quick__it {
    display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 18px 10px 16px; border-radius: 18px; text-decoration: none; text-align: center;
    background: radial-gradient(90% 70% at 50% 0%, rgba(247, 239, 222, 0.06), transparent 70%), #0d0c0a; border: 1px solid rgba(236, 224, 198, 0.18);
    color: #f5eddc; font: 600 0.84rem/1.25 "Inter", sans-serif; transition: border-color 0.2s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1);
}
.vf-quick__it svg { width: 26px; height: 26px; color: #f2e8d3; transition: transform 0.45s cubic-bezier(.34, 1.56, .64, 1); }
.vf-quick__it:hover { border-color: rgba(236, 224, 198, 0.5); transform: translateY(-3px); }
.vf-quick__it:hover svg { transform: scale(1.12) rotate(-6deg); }
.vf-quick__it--gold { background: repeating-radial-gradient(circle at 18% 140%, rgba(120, 98, 58, 0.09) 0 1px, transparent 1px 4px), var(--vf-cta); color: #1d1a14; border-color: transparent; }
.vf-quick__it--gold svg { color: #1d1a14; }
.vf-tip { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 14px 16px; border-radius: 16px; border: 1px dashed rgba(236, 224, 198, 0.26); background: rgba(247, 239, 222, 0.02); }
.vf-tip svg { width: 22px; height: 22px; flex: 0 0 22px; color: #f2e8d3; }
.vf-tip p { flex: 1; margin: 0 !important; font: 500 0.86rem/1.5 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.8) !important; }
.vf-tip__next { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(236, 224, 198, 0.3); background: transparent; color: #f2e8d3; cursor: pointer; font-size: 1rem; transition: transform 0.5s cubic-bezier(.34, 1.56, .64, 1); }
.vf-tip__next:hover { transform: rotate(180deg); }
@media (max-width: 1100px) { .vf-quick { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
    .vf-lk-row { grid-template-columns: 1fr; }
    .vf-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vf-quick__it--gold { grid-column: 1 / -1; }
    .vf-afford { grid-template-columns: 1fr; }
}
html body.veo-generation-body .veo-video-block-meta { width: max-content !important; align-self: flex-start !important; }
html body.veo-generation-body .veo-result-with-toolbar .veo-video-block > .veo-video-block-meta, html body.veo-generation-body .veo-video-block > .veo-video-block-meta { width: max-content !important; max-width: 100% !important; align-self: flex-start !important; justify-content: flex-start !important; }
html body.veo-generation-body:not(.mobile-version) .header .mobile-header { display: none !important; }
html body.veo-generation-body .veo-video-block > .veo-video-block-meta { max-width: none !important; overflow: visible !important; }

/* ==========================================================================
   ПРОИЗВОДИТЕЛЬНОСТЬ: без подсветки панелей за курсором, мгновенный отклик списков
   ========================================================================== */
body.veo-generation-body .veo-settings-section::after { display: none !important; }
html body.veo-generation-body .veo-custom-select-option,
html body.veo-generation-body .veo-custom-select-option:has(:is(.veo-ai-icon-badge, .veo-google-g-badge)) {
    transition: background-color 0.12s linear, color 0.12s linear !important; transform: none !important; will-change: auto !important;
}
html body.veo-generation-body .veo-custom-select-option:hover { transform: none !important; }
html body.veo-generation-body .veo-custom-select-trigger { transition: border-color 0.15s linear, background-color 0.15s linear !important; }
html body.veo-generation-body .vf-flash { animation: none !important; }

/* ==========================================================================
   ВЫПАДАЮЩИЕ СПИСКИ: длиннее, с видимой прокруткой; валюта прокручивается
   ========================================================================== */
html body.veo-generation-body .veo-custom-select-dropdown { max-height: min(calc(72vh / var(--vf-z, 1)), 620px) !important; overflow-y: auto !important; overscroll-behavior: contain; }
html body .vf-currency-dropdown { max-height: min(calc(80vh / var(--vf-z, 1)), 720px) !important; overflow-y: auto !important; overflow-x: hidden !important; overscroll-behavior: contain; }
html body .vf-currency-options { max-height: none !important; overflow: visible !important; }
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown)::-webkit-scrollbar { width: 10px; }
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown)::-webkit-scrollbar-thumb {
    background: rgba(236, 224, 198, 0.32); border-radius: 10px; border: 3px solid transparent; background-clip: padding-box;
}
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown)::-webkit-scrollbar-track { margin: 14px 0; }
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown) { scrollbar-color: rgba(236, 224, 198, 0.4) transparent; }

/* ==========================================================================
   РАКЕТА: базовый размер = высота цифр, низ — на базовой линии (JS доводит точно)
   ========================================================================== */
.vf-rkt { width: 0.93em; height: 0.93em; vertical-align: -0.1em !important; margin: 0 0 0 0.16em !important; filter: drop-shadow(0 0 3px rgba(247, 239, 222, 0.22)) !important; }
html body .veo-rocket-wrap, html body .veo-cost-brain, html body .profile-balance-icon-header, html body .profile-tokens-rocket {
    display: inline !important; font-size: inherit !important; line-height: inherit !important; margin: 0 !important; padding: 0 !important; width: auto !important; height: auto !important;
    background: none !important; border: 0 !important; box-shadow: none !important; transform: none !important; animation: none !important;
}

/* ==========================================================================
   ГЛАВНАЯ КНОПКА «СОЗДАТЬ» + ЖЕТОН СТОИМОСТИ
   ========================================================================== */
html body.veo-generation-body .veo-prompt-send {
    position: relative !important; overflow: hidden !important; isolation: isolate;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0) 46%),
        repeating-radial-gradient(circle at 50% 160%, rgba(120, 98, 58, 0.11) 0 1px, transparent 1px 5px),
        linear-gradient(135deg, #fffaf0 0%, #f2e8d3 36%, #dccdaa 70%, #b9a67e 100%) !important;
    color: #1d1a14 !important; border: 0 !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6), inset 0 0 0 4px rgba(185, 166, 126, 0.0), inset 0 0 0 5px rgba(120, 98, 58, 0.28),
        0 0 0 4px rgba(5, 5, 4, 0.9), 0 0 0 5px rgba(236, 224, 198, 0.3), 0 14px 34px rgba(236, 224, 198, 0.18) !important;
    font: 800 0.86rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.18em !important; text-transform: uppercase;
    transition: translate 0.25s ease-out, filter 0.2s, box-shadow 0.3s !important;
}
html body.veo-generation-body .veo-prompt-send::after {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, 0.75) 50%, transparent 62%) -160% 0 / 260% 100% no-repeat;
    animation: vf-btn-sheen 6.5s cubic-bezier(.45, 0, .2, 1) infinite;
}
@keyframes vf-btn-sheen { 0%, 70% { background-position: -160% 0; } 100% { background-position: 160% 0; } }
html body.veo-generation-body .veo-prompt-send:hover { filter: brightness(1.04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.7), inset 0 0 0 5px rgba(120, 98, 58, 0.32), 0 0 0 4px rgba(5, 5, 4, 0.9), 0 0 0 5px rgba(236, 224, 198, 0.55), 0 16px 40px rgba(236, 224, 198, 0.28) !important; }
html body.veo-generation-body .veo-prompt-send svg { width: 18px !important; height: 18px !important; padding: 5px; box-sizing: content-box; border-radius: 50%; background: rgba(29, 26, 20, 0.9); color: #f2e8d3 !important; stroke: currentColor; }
html body.veo-generation-body .veo-prompt-send:disabled { filter: grayscale(0.4) brightness(0.75); }
/* жетон стоимости */
html body.veo-generation-body .veo-prompt-tokens {
    display: inline-flex !important; align-items: center !important; gap: 0 !important; height: 40px !important; padding: 0 14px 0 13px !important; border-radius: 999px !important;
    background: radial-gradient(circle at 50% 0%, rgba(247, 239, 222, 0.12), transparent 70%), #0e0d0b !important;
    border: 1px solid rgba(236, 224, 198, 0.42) !important; box-shadow: inset 0 0 0 3px #0e0d0b, inset 0 0 0 4px rgba(236, 224, 198, 0.12) !important;
    color: #f5eddc !important; font: 800 1.02rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; font-variant-numeric: tabular-nums;
}
html body.veo-generation-body .veo-prompt-tokens--insufficient { border-color: rgba(240, 160, 130, 0.55) !important; color: #f3c3ae !important; }
/* баланс в шапке */
html body .profile-balance-header { display: inline-flex !important; align-items: center !important; gap: 0 !important; }
html body .profile-balance-amount-header, html body .vf-currency-amount { font: 800 0.98rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0 !important; }
html body .buy-balance-group { padding: 4px !important; gap: 4px !important; }
html body .buy-balance-group > .profile-balance-header, html body .buy-balance-group .vf-currency-trigger {
    height: 34px; padding: 0 12px !important; border-radius: 999px !important; background: rgba(247, 239, 222, 0.04) !important; border: 1px solid rgba(236, 224, 198, 0.14) !important;
}
html body .buy-balance-group .vf-currency-trigger { display: inline-flex !important; align-items: center !important; gap: 7px !important; }
html body .profile-separator { opacity: 0.6; }

/* ==========================================================================
   ЛОГОТИП: ровные концентрические кольца, знак строго по центру, левее
   ========================================================================== */
html body.veo-generation-body:not(.mobile-version) .desktop-header .logo { margin-left: -12px !important; }
.vf-medal__orbit { display: none !important; }
.vf-medal { width: 46px !important; height: 46px !important;
    background: radial-gradient(circle at 50% 38%, #24201a 0%, #0c0b09 68%) !important;
    box-shadow: inset 0 0 0 1px rgba(236, 224, 198, 0.55), inset 0 0 0 5px #0b0a08, inset 0 0 0 6px rgba(236, 224, 198, 0.22), 0 0 0 1px rgba(0, 0, 0, 0.6), 0 0 16px rgba(236, 224, 198, 0.14) !important; }
.vf-medal__ticks { inset: 7px !important;
    background: repeating-conic-gradient(rgba(236, 224, 198, 0.7) 0 1.5deg, transparent 1.5deg 30deg), repeating-conic-gradient(rgba(236, 224, 198, 0.22) 0 0.8deg, transparent 0.8deg 6deg) !important;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 calc(100% - 2.5px)) !important; mask: radial-gradient(farthest-side, transparent calc(100% - 2.5px), #000 calc(100% - 2.5px)) !important; }
.vf-medal__stars { display: none !important; }
.vf-medal > .veo-logo-gradient, .vf-medal > .veo-logo-gradient-mobile, .vf-medal > img, .vf-medal img { width: 22px !important; height: 22px !important; transform: translateY(1px) !important; }
.vf-medal::after { content: ""; position: absolute; left: 50%; top: 2px; width: 4px; height: 4px; margin-left: -2px; transform: rotate(45deg); background: #f2e8d3; box-shadow: 0 0 6px rgba(255, 246, 224, 0.8); }
.vf-brand__main { font-size: 1.3rem !important; letter-spacing: 0.22em !important; line-height: 1 !important; }
.vf-brand__sub { letter-spacing: 0.36em !important; }
html body .header-brand-name { justify-content: center; }

/* ==========================================================================
   МЕНЮ ПРОФИЛЯ: иконки-медальоны, часы и дата
   ========================================================================== */
html body .vf-user-menu-dropdown { min-width: 280px !important; padding: 10px !important; }
html body .vf-user-menu-time-block { padding: 8px 10px 14px !important; margin-bottom: 8px !important; position: relative; }
html body .vf-user-menu-time-block::after {
    content: "\25C6"; position: absolute; left: 0; right: 0; bottom: -6px; text-align: center; font: 400 7px/12px "Inter", sans-serif; color: rgba(236, 224, 198, 0.75);
    background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.35) 25%, rgba(236, 224, 198, 0.35) 44%, transparent 44% 56%, rgba(236, 224, 198, 0.35) 56%, rgba(236, 224, 198, 0.35) 75%, transparent) center / 100% 1px no-repeat;
}
html body .vf-user-menu-time-block { border-bottom: 0 !important; }
html body .vf-user-menu-time-main { font: 800 1.55rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.04em !important;
    background: linear-gradient(180deg, #fffaf0, #c9b68d); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.vf-umd { margin-top: 6px; font: italic 600 1rem/1.2 var(--vf-antiqua); color: rgba(236, 224, 198, 0.65); text-transform: lowercase; }
.vf-umd::first-letter { text-transform: uppercase; }
html body .vf-user-menu-item[data-vf-ic]::before { display: none !important; }
html body .vf-user-menu-item { padding: 7px 12px 7px 7px !important; gap: 12px !important; }
.vf-umi { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%; display: grid; place-items: center; color: #f2e8d3;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 72%); border: 1px solid rgba(236, 224, 198, 0.26); transition: border-color 0.15s, background 0.15s; }
.vf-umi svg { width: 15px; height: 15px; }
html body .vf-user-menu-item:hover .vf-umi { border-color: rgba(236, 224, 198, 0.7); }
html body .vf-user-menu-item:hover { transform: none !important; }

/* ==========================================================================
   ОКНО «ОТПРАВКА ЧЕРЕЗ N СЕК» — песочные часы обсерватории
   ========================================================================== */
html body .veo-pending-send {
    position: relative; overflow: hidden; border-radius: 22px !important; padding: 20px 22px 18px !important; text-align: center;
    background: radial-gradient(120% 70% at 50% 0%, rgba(247, 239, 222, 0.08), transparent 60%), linear-gradient(180deg, #15140f, #0a0a09) !important;
    border: 1px solid rgba(236, 224, 198, 0.28) !important; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), inset 0 0 0 5px rgba(5, 5, 4, 0.55), inset 0 0 0 6px rgba(236, 224, 198, 0.06) !important;
}
html body .veo-pending-send::after {
    content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; transform-origin: left;
    background: linear-gradient(90deg, rgba(236, 224, 198, 0.2), #f2e8d3); box-shadow: 0 0 10px rgba(236, 224, 198, 0.6);
    animation: vf-pending 7s linear forwards;
}
@keyframes vf-pending { from { transform: scaleX(1); } to { transform: scaleX(0); } }
html body .veo-pending-send-text { font: 500 0.86rem/1.55 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.62) !important; max-width: 520px; margin: 0 auto !important; }
html body .veo-pending-send-timer {
    margin: 14px 0 16px !important; font: italic 700 1.3rem/1.2 var(--vf-antiqua) !important; font-feature-settings: "lnum" 1 !important; color: #f2e8d3 !important; text-shadow: none !important;
}
html body .veo-pending-send-count {
    display: inline-grid !important; place-items: center; width: 42px; height: 42px; margin: 0 8px; vertical-align: middle; border-radius: 50%;
    font: 800 1.15rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; font-style: normal !important; color: #1d1a14 !important; text-shadow: none !important;
    background: var(--vf-cta); box-shadow: 0 0 0 3px #0a0a09, 0 0 0 4px rgba(236, 224, 198, 0.45), 0 0 18px rgba(236, 224, 198, 0.35);
}
html body .veo-pending-send-actions { display: flex !important; justify-content: center; gap: 10px !important; }
html body .veo-pending-send-skip, html body .veo-pending-send-cancel {
    min-height: 44px; padding: 0 24px !important; border-radius: 999px !important; font: 700 0.86rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.04em; cursor: pointer;
    text-shadow: none !important; transition: filter 0.15s, border-color 0.15s !important;
}
html body .veo-pending-send-skip { background: var(--vf-cta) !important; color: #1d1a14 !important; border: 0 !important; box-shadow: 0 8px 22px rgba(236, 224, 198, 0.2) !important; }
html body .veo-pending-send-skip::after { content: "\00a0\00a0\2192"; }
html body .veo-pending-send-cancel { background: transparent !important; color: #f0b9a4 !important; border: 1px solid rgba(240, 185, 164, 0.4) !important; box-shadow: none !important; }
html body .veo-pending-send-cancel:hover { border-color: rgba(240, 185, 164, 0.8) !important; background: rgba(240, 185, 164, 0.06) !important; }

/* ==========================================================================
   СОВЕТ ВО ВРЕМЯ ГЕНЕРАЦИИ — подписан и оформлен
   ========================================================================== */
.vf-gen-tipbox { display: flex; flex-direction: column; align-items: center; gap: 6px; max-width: 340px; padding: 10px 16px 12px; border-radius: 14px;
    border: 1px dashed rgba(236, 224, 198, 0.24); background: rgba(247, 239, 222, 0.025); }
.vf-gen-tiplabel { font: 700 0.58rem/1 "Inter", sans-serif; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(236, 224, 198, 0.62); }
html body .vf-gen-tip { font: 500 0.82rem/1.45 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.78) !important; text-align: center; }

/* ==========================================================================
   ПОДСКАЗКИ — только фирменные; на сенсорных экранах не показываются вовсе
   ========================================================================== */
.vf-tip-pop {
    position: fixed; z-index: 2147483600; max-width: 300px; padding: 8px 12px; border-radius: 12px; pointer-events: none;
    background: linear-gradient(180deg, #1a1915, #0c0c0b); border: 1px solid rgba(236, 224, 198, 0.3);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 252, 245, 0.06);
    color: #f5eddc; font: 600 0.76rem/1.4 "Inter", sans-serif; letter-spacing: 0.01em; text-align: center;
    opacity: 0; transform: translateY(4px); transition: opacity 0.16s ease, transform 0.2s ease;
}
.vf-tip-pop.is-below { transform: translateY(-4px); }
.vf-tip-pop.is-on { opacity: 1; transform: none; }
.vf-tip-pop::after {
    content: ""; position: absolute; left: var(--ax, 50%); bottom: -5px; width: 8px; height: 8px; margin-left: -4px; transform: rotate(45deg);
    background: #0c0c0b; border-right: 1px solid rgba(236, 224, 198, 0.3); border-bottom: 1px solid rgba(236, 224, 198, 0.3);
}
.vf-tip-pop.is-below::after { bottom: auto; top: -5px; border: 0; border-left: 1px solid rgba(236, 224, 198, 0.3); border-top: 1px solid rgba(236, 224, 198, 0.3); background: #1a1915; }
@media (hover: none), (pointer: coarse) {
    html body .veo-tooltip, html body .veo-left-tooltip, html body .form-section-help-tooltip:not(.is-open):not(.active), .vf-tip-pop { display: none !important; }
}
html body.mobile-version .veo-tooltip, html body.mobile-version .veo-left-tooltip { display: none !important; }

/* ==========================================================================
   ЗАГРУЗКА РЕЗУЛЬТАТА: тёмная «проявка» вместо серого экрана и застывших процентов
   ========================================================================== */
html body .vf-media-loader-overlay {
    background:
        linear-gradient(105deg, transparent 30%, rgba(247, 239, 222, 0.07) 50%, transparent 70%) -150% 0 / 250% 100% no-repeat,
        radial-gradient(80% 60% at 50% 40%, rgba(236, 224, 198, 0.08), transparent 70%),
        #0c0b09 !important;
    backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
    animation: vf-dev-sheen 2.2s linear infinite;
}
@keyframes vf-dev-sheen { to { background-position: 150% 0, 0 0, 0 0; } }
html body .vf-media-loader-stars { opacity: 0.35 !important; }
html body .vf-media-loader-circle { position: relative; width: 74px !important; height: 74px !important; }
html body .vf-media-loader-progress-ring { animation: vf-ring-spin 1.6s linear infinite; }
html body .vf-media-loader-progress-bg { stroke: rgba(236, 224, 198, 0.14) !important; stroke-width: 3 !important; fill: none; }
html body .vf-media-loader-progress-val { stroke: #f2e8d3 !important; stroke-width: 3 !important; stroke-linecap: round; fill: none; stroke-dasharray: 70 283 !important; stroke-dashoffset: 0 !important; filter: drop-shadow(0 0 4px rgba(242, 232, 211, 0.7)); }
html body .vf-media-loader-percent { font-size: 0 !important; }
html body .vf-media-loader-percent::before { content: "◆"; font: 400 10px/1 "Inter", sans-serif; color: #f2e8d3; animation: vf-breathe 1.6s ease-in-out infinite; }
html body .vf-media-loader-overlay::after {
    content: "Проявляем снимок"; position: absolute; left: 0; right: 0; bottom: 18%; text-align: center;
    font: italic 600 1rem/1 var(--vf-antiqua); color: rgba(236, 224, 198, 0.7); letter-spacing: 0.02em;
}
html body .vf-media-loader-overlay.is-loaded { transition: opacity 0.6s ease, filter 0.6s ease !important; filter: blur(8px); transform: none !important; }
/* приход: кольцо света расходится от центра кадра */
.vf-arrive-ring { position: absolute; left: 50%; top: 50%; width: 40px; height: 40px; margin: -20px 0 0 -20px; border-radius: 50%; pointer-events: none; z-index: 20;
    border: 1.5px solid rgba(255, 250, 240, 0.9); box-shadow: 0 0 24px rgba(255, 246, 224, 0.6); animation: vf-arrive 1.3s cubic-bezier(.2, .8, .2, 1) forwards; }
@keyframes vf-arrive { to { transform: scale(9); opacity: 0; border-width: 0.5px; } }
html body .veo-video-wrapper:has(video) .vf-media-loader-overlay::after { content: "Загружаем видео"; }

/* ==========================================================================
   СПИСАНИЕ / ПОПОЛНЕНИЕ БАЛАНСА
   ========================================================================== */
#vfBalFx { position: fixed; inset: 0; pointer-events: none; z-index: 2147483500; }
.vf-bal-fly { position: fixed; width: 18px; height: 18px; margin: -9px 0 0 -9px; animation: vf-bal-fly 1.15s cubic-bezier(.2, .7, .3, 1) both; filter: drop-shadow(0 0 6px rgba(255, 246, 224, 0.8)); }
.vf-bal-fly svg { width: 100%; height: 100%; display: block; transform: rotate(var(--rot)); }
.vf-bal-fly::after { content: ""; position: absolute; left: 50%; top: 50%; width: 2px; height: 26px; margin: -1px 0 0 -1px; transform-origin: top; transform: rotate(var(--rot));
    background: linear-gradient(180deg, rgba(255, 246, 224, 0.8), transparent); }
@keyframes vf-bal-fly { 0% { opacity: 0; transform: translate(0, 0) scale(0.4); } 15% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(1); } }
.vf-bal-spark { position: fixed; width: 5px; height: 5px; margin: -2.5px 0 0 -2.5px; border-radius: 50%; background: #fffaf0;
    box-shadow: 0 0 10px 3px rgba(255, 246, 224, 0.75); animation: vf-bal-spark 0.8s cubic-bezier(.6, 0, .9, .4) both; }
@keyframes vf-bal-spark { 0% { opacity: 0; transform: scale(0.4); } 25% { opacity: 1; } 100% { opacity: 0.2; transform: translate(var(--tx), var(--ty)) scale(0.6); } }
.vf-bal-ring { position: fixed; transform: translate(-50%, -50%); border-radius: 999px; border: 1.5px solid rgba(255, 246, 224, 0.9); box-shadow: 0 0 20px rgba(255, 246, 224, 0.55); }
.vf-bal-ring--out { animation: vf-bal-ring-out 0.9s ease-out forwards; }
.vf-bal-ring--in { animation: vf-bal-ring-in 0.9s ease-out forwards; }
@keyframes vf-bal-ring-out { from { opacity: 1; transform: translate(-50%, -50%) scale(1); } to { opacity: 0; transform: translate(-50%, -50%) scale(1.6, 2.2); } }
@keyframes vf-bal-ring-in { from { opacity: 0; transform: translate(-50%, -50%) scale(1.8, 2.6); } 40% { opacity: 1; } to { opacity: 0; transform: translate(-50%, -50%) scale(1); } }
html body.veo-generation-body .buy-balance-group.vf-balance-debit-explode,
html body.veo-generation-body .buy-balance-group.vf-balance-refund-explode { animation: none !important; transform: none !important; }
html body.veo-generation-body .buy-balance-group.vf-balance-debit-explode .profile-balance-header { border-color: rgba(240, 185, 164, 0.6) !important; box-shadow: 0 0 18px rgba(240, 185, 164, 0.25) !important; transform: none !important; animation: none !important; }
html body.veo-generation-body .buy-balance-group.vf-balance-refund-explode .profile-balance-header { border-color: rgba(247, 239, 222, 0.8) !important; box-shadow: 0 0 22px rgba(247, 239, 222, 0.45) !important; transform: none !important; animation: none !important; }
html body.veo-generation-body .buy-balance-group:is(.vf-balance-debit-explode, .vf-balance-refund-explode) :is(.profile-balance-amount-header, .vf-currency-amount, .vf-mobile-balance-pill-amount) {
    animation: none !important; transform: none !important; color: #fffaf0 !important; text-shadow: 0 0 12px rgba(255, 246, 224, 0.6) !important; font-variant-numeric: tabular-nums;
}
/* «−7 ракет» / «+7 ракет» — гравированный жетон под капсулой */
html body.veo-generation-body :is(.vf-balance-debit-float, .vf-balance-refund-float) {
    position: absolute !important; left: 50% !important; top: calc(100% + 6px) !important; right: auto !important; bottom: auto !important;
    transform: translate(-50%, -4px) !important; opacity: 0; white-space: nowrap; pointer-events: none; z-index: 50;
    padding: 6px 12px !important; border-radius: 999px !important; font: 800 0.86rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; font-variant-numeric: tabular-nums;
    background: linear-gradient(180deg, #1a1813, #0b0a08) !important; border: 1px solid rgba(240, 185, 164, 0.55) !important; color: #f3c3ae !important;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.6), 0 0 14px rgba(240, 185, 164, 0.2) !important; text-shadow: none !important;
    transition: opacity 0.3s, transform 0.6s cubic-bezier(.22, 1, .36, 1) !important; animation: none !important;
}
html body.veo-generation-body .vf-balance-refund-float { border-color: rgba(247, 239, 222, 0.7) !important; color: #fffaf0 !important; box-shadow: 0 10px 26px rgba(0, 0, 0, 0.6), 0 0 16px rgba(247, 239, 222, 0.35) !important; }
html body.veo-generation-body :is(.vf-balance-debit-float--active, .vf-balance-refund-float--active) { opacity: 1 !important; transform: translate(-50%, 4px) !important; animation: vf-bal-chip 2.6s ease forwards !important; }
@keyframes vf-bal-chip { 0% { opacity: 0; } 12% { opacity: 1; } 75% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, 14px); } }
html body.veo-generation-body .vf-balance-debit-float-rocket { font-size: inherit !important; }


/* ==========================================================================
   ОПТИМИЗАЦИЯ: убираем постоянные анимации, которые не видны или перекрыты
   (каждая гоняла перерисовку на каждом кадре)
   ========================================================================== */
/* вращающаяся кромка поля ввода — только пока поле в фокусе */
body.veo-generation-body .veo-prompt-box::before { animation: none !important; }
body.veo-generation-body .veo-prompt-box:focus-within::before { animation: vf-spin 4.5s linear infinite !important; }
/* пульс тени главной кнопки перекрыт новой тенью — не считаем его впустую */
html body.veo-generation-body .veo-prompt-send, html body.veo-generation-body .veo-prompt-send:not(:disabled) { animation: none !important; }
html body .header .profile-buy-btn, html body #topUpBtn { animation: none !important; }
html body .veo-ai-icon-badge, html body .veo-google-g-badge { animation: none !important; }
html body #desktopAvatar, html body .profile-user-avatar { animation: none !important; }
html body .veo-lock-icon-pqo, html body .veo-lock-icon-pqo *, html body .veo-mic-capsule { animation: none !important; }
/* окно уведомления: шкала вокруг иконки крутится, только когда окно открыто */
html body .veo-notify-overlay[aria-hidden="true"] *, html body .veo-notify-overlay:not([aria-hidden="false"]) .veo-notify-icon::before { animation: none !important; }
/* старые декоративные слои под новым небом — не рисуем вовсе */
html.vf-cosmos .veo-nebula-orb, html.vf-cosmos .veo-fairy-dust, html.vf-cosmos .veo-cosmic-stars, html.vf-cosmos .veo-cosmic-stars-sides,
html body .profile-bg-animation .profile-bg-circle, html body .profile-bg-animation .profile-bg-shape { display: none !important; animation: none !important; }
/* зерно плёнки — без режима наложения (он пересчитывал весь экран под собой) */
html.vf-cosmos::after { content: none !important; }
/* скрытые элементы не анимируем */
[hidden] *, [aria-hidden="true"].vf-gallery *, .vf-desktop-site-preloader--hidden * { animation-play-state: paused !important; }
/* фоновые слои — отдельный слой композитора, без лишней работы */

.vf-cosmos__dome { backface-visibility: hidden; }

/* ==========================================================================
   ПОЛОСКА МИНИАТЮР СПРАВА — «шкала хронометра» с кадрами
   ========================================================================== */
.vf-mm { display: none; }
html body.vf-mm-on.vf-view-chat:not(.mobile-version) .vf-mm {
    display: flex; position: absolute; right: 12px; top: 64px; bottom: 150px; width: 46px; z-index: 25;
    flex-direction: column; align-items: center; padding: 10px 0; border-radius: 999px;
    background: linear-gradient(180deg, rgba(20, 19, 16, 0.92), rgba(9, 9, 8, 0.92));
    border: 1px solid rgba(236, 224, 198, 0.22);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5), inset 0 0 0 4px rgba(5, 5, 4, 0.55), inset 0 0 0 5px rgba(236, 224, 198, 0.05);
}
html body.vf-mm-on.vf-view-chat:not(.mobile-version) .veo-chat-messages { padding-right: 72px !important; }
.vf-mm__track { position: absolute; left: 50%; top: 14px; bottom: 14px; width: 1px; margin-left: -0.5px; pointer-events: none;
    background: repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.3) 0 1px, transparent 1px 6px); }
.vf-mm__list { position: relative; flex: 1; width: 100%; display: flex; flex-direction: column; align-items: center; gap: 8px; overflow-y: auto; overflow-x: hidden;
    scrollbar-width: none; overscroll-behavior: contain; padding: 4px 0; scroll-behavior: smooth; }
.vf-mm__list::-webkit-scrollbar { display: none; }
.vf-mm__it {
    position: relative; flex: 0 0 30px; width: 30px; height: 30px; padding: 0; border-radius: 9px; cursor: pointer;
    background: #13120f center / cover no-repeat; border: 1px solid rgba(236, 224, 198, 0.2);
    opacity: 0.5; filter: saturate(0.55) brightness(0.85);
    transition: opacity 0.2s, filter 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1), border-color 0.2s, box-shadow 0.2s;
    display: grid; place-items: center; color: #f2e8d3;
}
.vf-mm__it svg { width: 14px; height: 14px; }
.vf-mm__it.is-vis { opacity: 0.85; filter: none; }
.vf-mm__it:hover { opacity: 1; filter: none; transform: scale(1.18); border-color: rgba(247, 239, 222, 0.7); z-index: 2; }
.vf-mm__it.is-on { opacity: 1; filter: none; border-color: rgba(247, 239, 222, 0.95); box-shadow: 0 0 0 2px #0a0a09, 0 0 0 3px rgba(236, 224, 198, 0.55), 0 0 14px rgba(236, 224, 198, 0.35); }
.vf-mm__it.is-on::before { content: ""; position: absolute; left: -10px; top: 50%; width: 5px; height: 5px; margin-top: -2.5px; transform: rotate(45deg); background: #f2e8d3; box-shadow: 0 0 6px rgba(255, 246, 224, 0.8); }
.vf-mm__it--gen { background: radial-gradient(circle, rgba(236, 224, 198, 0.25), #13120f 70%); animation: vf-breathe 1.6s ease-in-out infinite; }
.vf-mm__it--gen::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #f2e8d3; box-shadow: 0 0 8px rgba(255, 246, 224, 0.8); }
/* превью при наведении */
.vf-mm-peek {
    position: fixed; z-index: 2147483400; width: 210px; padding: 8px; border-radius: 16px; pointer-events: none;
    background: linear-gradient(180deg, #1a1915, #0c0c0b); border: 1px solid rgba(236, 224, 198, 0.3);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.65); opacity: 0; transform: translateX(6px); transition: opacity 0.15s, transform 0.2s;
}
.vf-mm-peek.is-on { opacity: 1; transform: none; }
.vf-mm-peek__img { width: 100%; aspect-ratio: 1; border-radius: 10px; background: #0b0b0a center / cover no-repeat; border: 1px solid rgba(236, 224, 198, 0.16); }
.vf-mm-peek__img.is-empty { aspect-ratio: 3; background: radial-gradient(circle, rgba(236, 224, 198, 0.12), #0b0b0a 70%); }
.vf-mm-peek__txt { margin-top: 8px; font: 500 0.74rem/1.4 "Inter", sans-serif; color: rgba(245, 237, 220, 0.8); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
/* подсветка кадра после перехода */
.vf-mm-flash { animation: vf-mm-flash 1.2s ease-out; }
@keyframes vf-mm-flash { 0% { box-shadow: 0 0 0 1px rgba(247, 239, 222, 0.9), 0 0 0 8px rgba(236, 224, 198, 0.3), 0 0 40px rgba(236, 224, 198, 0.4); } 100% { box-shadow: 0 0 0 1px rgba(236, 224, 198, 0.28), 0 0 0 5px rgba(5, 5, 4, 0.7), 0 0 0 6px rgba(236, 224, 198, 0.1); } }
/* капсула «Лента/Холст» и «К последнему» не наезжают на полоску */
html body.vf-mm-on.vf-view-chat:not(.mobile-version) .vf-mode-dock { padding-right: 70px; }
/* иконки рейки и «Лента/Холст» — тонкая гравировка */
html body .veo-left-sidebar .vf-ico { width: 21px !important; height: 21px !important; stroke: #f2e8d3 !important; stroke-width: 1.5 !important; }
html body .veo-left-sidebar .vf-ico * { transition: transform 0.45s cubic-bezier(.34, 1.56, .64, 1); transform-box: fill-box; transform-origin: center; }
html body .veo-left-icon-btn:hover .vf-ico--chat rect { transform: translate(-1px, -1px); }
html body .veo-left-icon-btn:hover .vf-ico--plus .p { transform: rotate(90deg); }
html body .veo-left-icon-btn:hover .vf-ico--spark ellipse { transform: rotate(-30deg); }
html body .veo-left-icon-btn:hover .vf-ico--spark .s1 { transform: translate(-3px, 2px); }
html body .veo-left-icon-btn:hover .vf-ico--zoom .l { transform: scale(1.08); }
html body .veo-left-icon-btn:hover .vf-ico--sliders { transform: translateY(1px); }
.vf-view-switch button svg { stroke-width: 1.5 !important; }

/* ==========================================================================
   ФОН «ЗВЁЗДНАЯ КАРТА ОБСЕРВАТОРИИ» (сгенерирован, лёгкий webp) — медленное «дыхание»
   ========================================================================== */
.vf-cosmos__photo {
    position: absolute; inset: -3%; pointer-events: none; z-index: 0;
    background: #050504 center / cover no-repeat;
    animation: vf-photo-breathe 110s ease-in-out infinite alternate; will-change: transform;
}
@media (min-width: 1700px), (min-resolution: 1.5dppx) and (min-width: 1100px) {
}
@media (max-aspect-ratio: 4/5) {
}
@keyframes vf-photo-breathe { from { transform: scale(1) translate3d(0, 0, 0); } to { transform: scale(1.05) translate3d(-1.2%, 0.8%, 0); } }
html.vf-still .vf-cosmos__photo { animation: none !important; }
/* туманность из старого неба приглушаем — своя уже есть на картинке */
#vfCosmos .vf-cosmos__neb--a { opacity: 0.35; }
/* интерфейс читается: центр слегка темнее, края — мягкая виньетка */
#vfCosmos .vf-cosmos__vig { z-index: 2; background: radial-gradient(ellipse at 50% 48%, rgba(5, 5, 4, 0.35) 0%, transparent 55%), radial-gradient(ellipse at 50% 45%, transparent 55%, rgba(5, 4, 2, 0.6) 100%) !important; }
#vfCosmos .vf-cosmos__tw { z-index: 1; }

/* фон v3 — минималистичная звёздная карта в 4K (обсерватория) */
html { --vf-space: url("/static/images/cosmos/obs4k-2560.webp"); --vf-space-hd: url("/static/images/cosmos/obs4k-3840.webp"); }
.vf-cosmos__photo { inset: 0 !important; background-image: var(--vf-space) !important; background-position: left top !important; animation: none !important; transform: none !important; will-change: auto !important; }
@media (min-width: 1700px), (min-resolution: 1.5dppx) and (min-width: 1100px) { .vf-cosmos__photo { background-image: var(--vf-space-hd) !important; } }
@media (max-aspect-ratio: 4/5) { .vf-cosmos__photo { background-image: url("/static/images/cosmos/obs4k-m.webp") !important; background-position: left top !important; } }
#vfCosmos .vf-cosmos__neb--a { display: none !important; }
#vfCosmos .vf-cosmos__vig { background: radial-gradient(ellipse at 50% 45%, transparent 60%, rgba(4, 4, 3, 0.45) 100%) !important; }

/* фон v4 — живое небо как было + акцент: гравированная астролябия с дымкой в левом верхнем углу (из 4K) */
#vfCosmos .vf-cosmos__neb--a { display: block !important; }
.vf-cosmos__photo {
    z-index: 1 !important; opacity: 0.62;
    background-size: auto 112% !important; background-position: -6% 0 !important;
    -webkit-mask: radial-gradient(ellipse 58% 70% at 0% 0%, #000 0%, rgba(0, 0, 0, 0.75) 35%, transparent 72%);
    mask: radial-gradient(ellipse 58% 70% at 0% 0%, #000 0%, rgba(0, 0, 0, 0.75) 35%, transparent 72%);
}
@media (max-aspect-ratio: 4/5) {
    .vf-cosmos__photo { background-size: 165% auto !important; background-position: 0 0 !important;
        -webkit-mask: radial-gradient(ellipse 95% 45% at 0% 0%, #000 0%, transparent 75%); mask: radial-gradient(ellipse 95% 45% at 0% 0%, #000 0%, transparent 75%); }
}
#vfCosmos .vf-cosmos__vig { z-index: 2; }

/* ==========================================================================
   ВИНТАЖНЫЕ ДЕТАЛИ ФОНА: царапины фотопластинки, орбита в углу, кометы, паспарту
   ========================================================================== */
#vfCosmos::after { opacity: 0.075 !important; }
.vf-cosmos__scratch { position: absolute; inset: 0; z-index: 3; pointer-events: none; overflow: hidden; }
.vf-cosmos__scratch i { position: absolute; top: -5%; height: 110%; width: 1px; opacity: 0;
    background: linear-gradient(180deg, transparent 0%, rgba(247, 239, 222, 0.32) 18%, rgba(247, 239, 222, 0.1) 46%, rgba(247, 239, 222, 0.28) 70%, transparent 100%);
    animation: vf-scratch 13s steps(1) infinite; }
.vf-cosmos__scratch i:nth-child(1) { left: 23%; animation-delay: -2s; }
.vf-cosmos__scratch i:nth-child(2) { left: 71%; animation-duration: 17s; animation-delay: -9s; height: 60%; top: 30%; }
.vf-cosmos__scratch i:nth-child(3) { left: 48%; animation-duration: 23s; animation-delay: -15s; width: 1.5px; }
@keyframes vf-scratch {
    0%, 86% { opacity: 0; transform: translateX(0); }
    87% { opacity: 0.9; transform: translateX(0); }
    89% { opacity: 0.35; transform: translateX(14px); }
    91% { opacity: 0.8; transform: translateX(-9px); }
    93% { opacity: 0.2; transform: translateX(22px); }
    95%, 100% { opacity: 0; }
}
.vf-cosmos__orbit { position: absolute; right: -90px; bottom: -70px; width: 520px; height: 520px; z-index: 1; pointer-events: none; opacity: 0.5;
    transform: rotate(-24deg); fill: none; stroke: rgba(236, 224, 198, 0.35); stroke-width: 0.8; }
.vf-orb-rot { transform-origin: 200px 200px; animation: vf-orb 240s linear infinite; }
.vf-orb-planet { fill: #f2e8d3; stroke: none; filter: drop-shadow(0 0 4px rgba(255, 246, 224, 0.8)); }
.vf-orb-moon { fill: rgba(242, 232, 211, 0.7); stroke: none; }
.vf-orb-sun { fill: rgba(255, 246, 224, 0.25); stroke: rgba(236, 224, 198, 0.5); }
@keyframes vf-orb { to { transform: rotate(360deg); } }
@media (max-width: 760px) { .vf-cosmos__orbit { width: 320px; height: 320px; right: -80px; bottom: -40px; opacity: 0.4; } }
.vf-comet { position: absolute; z-index: 2; width: 150px; height: 2px; pointer-events: none; opacity: 0; transform-origin: right center;
    background: linear-gradient(90deg, rgba(255, 250, 240, 0), rgba(255, 246, 224, 0.15) 50%, rgba(255, 250, 240, 0.9)); border-radius: 2px;
    animation: vf-comet 7s cubic-bezier(.4, .1, .5, 1) forwards; }
.vf-comet::after { content: ""; position: absolute; right: -3px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: #fffaf0;
    box-shadow: 0 0 14px 5px rgba(255, 246, 224, 0.65), 0 0 2px #fff; }
@keyframes vf-comet { 0% { opacity: 0; transform: rotate(var(--a)) translateX(0); } 10% { opacity: 0.85; } 80% { opacity: 0.6; } 100% { opacity: 0; transform: rotate(var(--a)) translateX(var(--d)); } }
.vf-cosmos__frame { position: absolute; inset: 10px; z-index: 3; pointer-events: none;
    border: 1px solid rgba(236, 224, 198, 0.13); box-shadow: inset 0 0 0 5px rgba(236, 224, 198, 0.0), inset 0 0 0 6px rgba(236, 224, 198, 0.06); }
.vf-cosmos__frame i { position: absolute; width: 34px; height: 34px; border: 0 solid rgba(236, 224, 198, 0.55); }
.vf-cosmos__frame i::after { content: ""; position: absolute; width: 5px; height: 5px; transform: rotate(45deg); background: #f2e8d3; box-shadow: 0 0 6px rgba(255, 246, 224, 0.6); }
.vf-cosmos__frame i:nth-child(1) { left: -1px; top: -1px; border-left-width: 1.5px; border-top-width: 1.5px; }
.vf-cosmos__frame i:nth-child(2) { right: -1px; top: -1px; border-right-width: 1.5px; border-top-width: 1.5px; }
.vf-cosmos__frame i:nth-child(3) { left: -1px; bottom: -1px; border-left-width: 1.5px; border-bottom-width: 1.5px; }
.vf-cosmos__frame i:nth-child(4) { right: -1px; bottom: -1px; border-right-width: 1.5px; border-bottom-width: 1.5px; }
.vf-cosmos__frame i:nth-child(1)::after { left: 6px; top: 6px; }
.vf-cosmos__frame i:nth-child(2)::after { right: 6px; top: 6px; }
.vf-cosmos__frame i:nth-child(3)::after { left: 6px; bottom: 6px; }
.vf-cosmos__frame i:nth-child(4)::after { right: 6px; bottom: 6px; }
@media (max-width: 760px) { .vf-cosmos__frame { inset: 6px; } .vf-cosmos__frame i { width: 22px; height: 22px; } }
html.vf-still .vf-cosmos__scratch, html.vf-still .vf-comet { display: none !important; }
html.vf-still .vf-orb-rot { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .vf-cosmos__scratch, .vf-comet { display: none; } .vf-orb-rot { animation: none; } }
@media (min-width: 761px) { .vf-cosmos__orbit { right: auto; left: -60px; bottom: -150px; width: 560px; height: 560px; transform: rotate(18deg); opacity: 0.55; } }

/* ==========================================================================
   Без колец, засветов и царапин; паспарту — у самой ленты чата, а не у сайта
   ========================================================================== */
.vf-cosmos__orbit, .vf-cosmos__scratch, .vf-cosmos__photo, .vf-cosmos__frame { display: none !important; }
#vfCosmos::after { opacity: 0.05 !important; }

/* рамка-гравюра вокруг ленты: тонкая линия + уголки-скобы с ромбами (без лишних элементов) */
html body.veo-generation-body .veo-chat-messages-wrap { position: relative; }
html body.veo-generation-body:not(.chatgpt-page) .veo-chat-messages-wrap::after {
    content: ""; position: absolute; inset: 8px 10px; pointer-events: none; z-index: 4; border-radius: 4px;
    border: 1px solid rgba(236, 224, 198, 0.1);
    background:
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) left top / 30px 1.5px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) left top / 1.5px 30px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) right top / 30px 1.5px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) right top / 1.5px 30px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) left bottom / 30px 1.5px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) left bottom / 1.5px 30px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) right bottom / 30px 1.5px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) right bottom / 1.5px 30px no-repeat,
        radial-gradient(circle, #f2e8d3 0 2px, transparent 2.5px) 7px 7px / 5px 5px no-repeat,
        radial-gradient(circle, #f2e8d3 0 2px, transparent 2.5px) calc(100% - 7px) 7px / 5px 5px no-repeat,
        radial-gradient(circle, #f2e8d3 0 2px, transparent 2.5px) 7px calc(100% - 7px) / 5px 5px no-repeat,
        radial-gradient(circle, #f2e8d3 0 2px, transparent 2.5px) calc(100% - 7px) calc(100% - 7px) / 5px 5px no-repeat;
}
/* верхняя кромка — с центральным ромбом, как у гравюры */
html body.veo-generation-body .veo-chat-messages-wrap::before {
    content: ""; position: absolute; left: 50%; top: 4px; width: 9px; height: 9px; margin-left: -4.5px; transform: rotate(45deg);
    z-index: 5; pointer-events: none; background: #0a0a09; border: 1px solid rgba(236, 224, 198, 0.6); box-shadow: 0 0 8px rgba(236, 224, 198, 0.25);
}
html body.veo-generation-body.mobile-version .veo-chat-messages-wrap::after { inset: 4px 5px; }
html body.veo-generation-body.vf-view-studio .veo-chat-messages-wrap::before { display: none; }

/* комета летит через весь экран: видна от края до края, гаснет только на выходе */
.vf-comet { animation: vf-comet2 11s linear forwards !important; }
@keyframes vf-comet2 { 0% { opacity: 0; transform: rotate(var(--a)) translateX(0); } 4% { opacity: 0.9; } 94% { opacity: 0.85; } 100% { opacity: 0; transform: rotate(var(--a)) translateX(var(--d)); } }
/* без затемнения внизу ленты: под панелью ввода — просто небо */
html body.veo-generation-body .veo-prompt-wrapper { background: transparent !important; background-image: none !important; }
html body.veo-generation-body .veo-prompt-wrapper::before { background: none !important; }

/* редкий блик бежит по верхней кромке рамки ленты — как отблеск на гравюре */
html body.veo-generation-body:not(.chatgpt-page) .veo-chat-messages-wrap > .vf-frame-glint { display: none; }

.vf-glint { position: absolute; left: 10px; right: 10px; top: 8px; height: 1px; z-index: 5; pointer-events: none; overflow: hidden; }
.vf-glint::after { content: ""; position: absolute; top: 0; left: 0; width: 160px; height: 1px; transform: translateX(-200px);
    background: linear-gradient(90deg, transparent, rgba(255, 250, 240, 0.95), transparent); box-shadow: 0 0 8px rgba(255, 246, 224, 0.8); }
.vf-glint.is-on::after { animation: vf-glint 2.6s cubic-bezier(.45, 0, .2, 1) forwards; }
@keyframes vf-glint { to { transform: translateX(calc(calc(100vw / var(--vf-z, 1)))); } }
html.vf-still .vf-glint { display: none; }

/* ==========================================================================
   КРУГ ГЕНЕРАЦИИ — мини-циферблат: шкала, бегущая дуга, гильоше, орбита, стрелка
   ========================================================================== */
html body.veo-generation-body .veo-generating-loader.vf-dial-host { width: 132px !important; height: 132px !important; }
html body.veo-generation-body .vf-dial-host .veo-generating-loader-ring,
html body.veo-generation-body .vf-dial-host .veo-generating-dots,
html body.veo-generation-body .vf-dial-host .vf-gen-orbit { display: none !important; }
html body.veo-generation-body .vf-dial-host::before, html body.veo-generation-body .vf-dial-host::after { display: none !important; }
.vf-dial { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.vf-dial__ticks line { stroke: rgba(236, 224, 198, 0.32); stroke-width: 0.5; stroke-linecap: round; }
.vf-dial__ticks line.b { stroke: rgba(242, 232, 211, 0.85); stroke-width: 0.9; }
.vf-dial__ticks { transform-origin: 50px 50px; animation: vf-dial-rot 60s linear infinite; }
.vf-dial__track { fill: none; stroke: rgba(236, 224, 198, 0.12); stroke-width: 1.4; }
.vf-dial__arc { fill: none; stroke: #f2e8d3; stroke-width: 1.6; stroke-linecap: round; stroke-dasharray: 22 78; transform-origin: 50px 50px;
    filter: drop-shadow(0 0 2px rgba(255, 246, 224, 0.9)); animation: vf-dial-rot 2.4s linear infinite, vf-dial-len 4.8s ease-in-out infinite; }
.vf-dial__face { fill: #0b0a08; stroke: rgba(236, 224, 198, 0.4); stroke-width: 0.5; }
.vf-dial__guil circle { fill: none; stroke: rgba(236, 224, 198, 0.08); stroke-width: 0.4; }
.vf-dial__orbit { transform-origin: 50px 50px; transform: rotate(-22deg); }
.vf-dial__orbit ellipse { fill: none; stroke: rgba(236, 224, 198, 0.22); stroke-width: 0.4; }
.vf-dial__planet { fill: #fffaf0; filter: drop-shadow(0 0 1.5px rgba(255, 246, 224, 0.9)); }
.vf-dial__hand { transform-origin: 50px 50px; animation: vf-dial-rot 6s linear infinite; }
.vf-dial__hand line { stroke: rgba(242, 232, 211, 0.75); stroke-width: 0.6; stroke-linecap: round; }
.vf-dial__star { fill: #f2e8d3; transform-origin: 50px 50px; animation: vf-dial-pulse 2.4s ease-in-out infinite; filter: drop-shadow(0 0 3px rgba(255, 246, 224, 0.85)); }
@keyframes vf-dial-rot { to { transform: rotate(360deg); } }
@keyframes vf-dial-len { 0%, 100% { stroke-dasharray: 10 90; } 50% { stroke-dasharray: 46 54; } }
@keyframes vf-dial-orbit { from { offset-distance: 0%; } to { offset-distance: 100%; } }
@keyframes vf-dial-pulse { 0%, 100% { transform: scale(0.85); opacity: 0.75; } 50% { transform: scale(1.12); opacity: 1; } }
/* этап под кругом — антиквой, меняется плавно */
.vf-gen-stage { margin-top: -4px; min-height: 1.3em; text-align: center; }
.vf-gen-stage span { display: inline-block; font: italic 600 1.06rem/1.2 var(--vf-antiqua, Georgia, serif); color: rgba(242, 232, 211, 0.85); letter-spacing: 0.01em; }
.vf-gen-stage span.is-in { animation: vf-stage-in 0.7s cubic-bezier(.22, 1, .36, 1); }
@keyframes vf-stage-in { from { opacity: 0; transform: translateY(5px); filter: blur(3px); } }
html body.veo-generation-body .veo-generating-caption { display: none !important; }
@media (max-width: 760px) { html body.veo-generation-body .veo-generating-loader.vf-dial-host { width: 104px !important; height: 104px !important; } }
html.vf-still .vf-dial *, html.vf-still .vf-gen-stage span { animation: none !important; }

/* ==========================================================================
   Кнопка «Создать»: иконка светлая на тёмном медальоне (раньше сливалась)
   ========================================================================== */
html body.veo-generation-body .veo-prompt-send .veo-prompt-send-icon svg,
html body.veo-generation-body .veo-prompt-send .veo-prompt-send-icon svg * { color: #f2e8d3 !important; stroke: #f2e8d3 !important; }
html body.veo-generation-body .veo-prompt-send .veo-prompt-send-icon svg circle { fill: #f2e8d3 !important; }

/* ==========================================================================
   Полоска миниатюр как в ChatGPT: высота по количеству кадров, стрелки при переполнении
   ========================================================================== */
html body.vf-mm-on.vf-view-chat:not(.mobile-version) .vf-mm {
    top: 50% !important; bottom: auto !important; transform: translateY(-50%);
    height: auto !important; max-height: calc(100% - 230px); padding: 8px 0 !important;
}
.vf-mm__list { flex: 0 1 auto !important; max-height: 100%; }
.vf-mm__track { top: 10px !important; bottom: 10px !important; }
.vf-mm__arrow {
    display: none; flex: 0 0 auto; width: 28px; height: 22px; margin: 2px 0; padding: 0; border: 0; border-radius: 999px; cursor: pointer;
    background: transparent; color: rgba(242, 232, 211, 0.75); place-items: center; transition: color 0.15s, background 0.15s;
}
.vf-mm__arrow svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.vf-mm__arrow:hover { color: #fffaf0; background: rgba(236, 224, 198, 0.1); }
.vf-mm--over .vf-mm__arrow { display: grid; }
.vf-mm--over.vf-mm--top .vf-mm__arrow--up, .vf-mm--over.vf-mm--bottom .vf-mm__arrow--down { visibility: hidden; }

/* ==========================================================================
   Полоса прокрутки ленты — «шкала хронометра»: пунктирная дорожка и золотой бегунок-капсула
   ========================================================================== */
html body.veo-generation-body #veoChatMessagesDesktop { scrollbar-width: auto; scrollbar-color: auto; }
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar { width: 12px; }
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar-track {
    margin: 18px 0; background: linear-gradient(rgba(236, 224, 198, 0.22), rgba(236, 224, 198, 0.22)) center / 1px 100% no-repeat,
        repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.28) 0 1px, transparent 1px 12px) center / 7px 100% no-repeat;
}
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar-thumb {
    border-radius: 999px; border: 3px solid transparent; background-clip: padding-box;
    background-image: linear-gradient(180deg, #fffaf0, #e8dcc2 45%, #b9a67e); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
    min-height: 40px;
}
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar-thumb:hover { background-image: linear-gradient(180deg, #ffffff, #f2e8d3 45%, #cbb994); }
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar-button { display: none; }
@supports not selector(::-webkit-scrollbar) {
    html body.veo-generation-body #veoChatMessagesDesktop { scrollbar-width: thin; scrollbar-color: #e8dcc2 transparent; }
}
html body .vf-mm .vf-mm__list { scrollbar-width: none !important; } html body .vf-mm .vf-mm__list::-webkit-scrollbar { display: none !important; width: 0 !important; }

/* ракета ближе к числу (точная подгонка — в скрипте) */
.vf-rkt { margin: 0 0 0 0.06em !important; }
html body .profile-balance-header, html body .veo-prompt-tokens { gap: 0 !important; }

/* полоска миниатюр — подальше от полосы прокрутки */
html body.vf-mm-on.vf-view-chat:not(.mobile-version) .vf-mm { right: 26px !important; }
html body.vf-mm-on.vf-view-chat:not(.mobile-version) .veo-chat-messages { padding-right: 86px !important; }

/* кнопка «Создать» компактнее */
html body.veo-generation-body .veo-prompt-send {
    min-height: 0 !important; height: 42px !important; padding: 0 8px 0 18px !important; gap: 10px !important;
    font-size: 0.74rem !important; letter-spacing: 0.14em !important;
}
html body.veo-generation-body .veo-prompt-send .veo-prompt-send-icon svg { width: 15px !important; height: 15px !important; padding: 5px !important; }
html body.veo-generation-body .veo-prompt-tokens { height: 36px !important; }

/* мета «дата · ID» под ошибкой — тоже одной табличкой в строку */
html body.veo-generation-body:not(.mobile-version) .veo-chat-message-bubble:has(.veo-chat-status--error) > .veo-video-block-meta {
    flex-direction: row !important; align-items: stretch !important; gap: 0 !important; width: max-content !important; max-width: 100% !important;
}
html body.veo-generation-body .veo-chat-message-bubble:has(.veo-chat-status--error) > .veo-video-block-meta :is(.veo-video-block-received, .veo-video-block-id-wrap) { width: auto !important; flex: 0 0 auto !important; }
html body.veo-generation-body .veo-video-block-meta { flex-wrap: nowrap !important; }
/* ID всегда целиком: табличка может быть шире узкого кадра (9:16) */
html body.veo-generation-body .veo-video-block-id-wrap { flex: 0 0 auto !important; min-width: max-content !important; }
html body.veo-generation-body .veo-video-block-id-value { overflow: visible !important; text-overflow: clip !important; min-width: max-content !important; flex: 0 0 auto !important; }
html body.veo-generation-body .veo-video-block > .veo-video-block-meta,
html body.veo-generation-body .veo-result-with-toolbar .veo-video-block > .veo-video-block-meta { max-width: none !important; overflow: visible !important; }
html body.veo-generation-body .veo-video-block:has(> .veo-video-block-meta) { overflow: visible !important; }

/* «К свежим кадрам» — плавно едет вслед за верхней кромкой поля ввода */
.vf-jump { transition: opacity 0.25s, transform 0.4s cubic-bezier(.34, 1.56, .64, 1), border-color 0.2s, bottom 0.28s cubic-bezier(.22, 1, .36, 1) !important; }

/* табличка «дата · ID» всегда одной строкой — и у горизонтальных кадров (старый стиль ставил столбцом) */
html body.veo-generation-body .veo-video-block-meta,
html body.veo-generation-body .veo-result-with-toolbar .veo-video-block > .veo-video-block-meta {
    flex-direction: row !important; flex-wrap: nowrap !important; align-items: stretch !important; gap: 0 !important; width: max-content !important;
}
html body.veo-generation-body .veo-video-block-meta > :is(.veo-video-block-received, .veo-video-block-id-wrap) { width: auto !important; max-width: none !important; flex: 0 0 auto !important; }
html body.veo-generation-body .veo-video-block-meta > .veo-video-block-id-wrap { display: inline-flex !important; align-items: center !important; }

/* «Мои генерации» открыты — переключатель «Лента / Холст» не перекрывает окно */
body.vf-gal-open .vf-view-switch { opacity: 0 !important; pointer-events: none !important; }
.vf-gal-empty { grid-column: 1 / -1; margin: 40px 0; text-align: center; font: italic 500 1.05rem/1.3 var(--vf-antiqua, Georgia, serif); color: rgba(245, 237, 220, 0.5); }

/* «не загрузилось»: рамка по размеру карточки — панель, карточка и табличка «дата · ID» одним блоком */
html body.veo-generation-body .veo-chat-message--assistant .veo-video-block > .veo-video-wrapper.veo-video-wrapper--unavailable,
html body.veo-generation-body .veo-chat-message--assistant .veo-video-block > .veo-video-wrapper.veo-video-wrapper--unavailable[data-aspect] {
    aspect-ratio: auto !important; height: auto !important; min-height: 0 !important; max-height: none !important;
    width: min(100%, 400px) !important; min-width: min(100%, 300px) !important;
}
html body.veo-generation-body .veo-video-wrapper--unavailable .veo-video-unavailable {
    position: static !important; inset: auto !important; width: 100% !important; height: auto !important; min-height: 0 !important; display: block !important;
}
html body.veo-generation-body .veo-video-wrapper--unavailable .veo-video-unavailable-inner {
    display: block !important; width: 100% !important; max-width: none !important; height: auto !important; min-height: 0 !important;
}
html body.veo-generation-body .veo-video-wrapper--unavailable .veo-video-unavailable-card { width: 100% !important; max-width: none !important; min-height: 0 !important; }
html body.veo-generation-body .veo-chat-message--assistant .veo-result-with-toolbar:has(.veo-video-wrapper--unavailable) { align-items: flex-start !important; }

/* кнопки у результата крупнее */
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn,
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon { width: 44px !important; height: 44px !important; border-radius: 13px !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn svg { width: 21px !important; height: 21px !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon img { width: 26px !important; height: 26px !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar { gap: 5px !important; padding: 6px !important; border-radius: 19px !important; }
@media (min-width: 1600px) {
    html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn,
    html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon { width: 48px !important; height: 48px !important; }
}

/* ромб на вертикальных нитях — строго по центру линии */
html body.veo-generation-body:not(.mobile-version) .veo-left-sidebar::before,
html body.veo-generation-body:not(.mobile-version) .veo-right-settings::after {
    box-sizing: border-box !important; width: 9px !important; height: 9px !important; margin-top: -4.5px !important;
    transform: translateX(-50%) rotate(45deg) !important; right: auto !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-left-sidebar::before { left: calc(100% - 0.5px) !important; }
html body.veo-generation-body:not(.mobile-version) .veo-right-settings::after { left: 0.5px !important; }

/* кнопки «копировать / удалить» у сообщения — всегда на месте, на одной линии с датой */
html body.veo-generation-body .veo-user-message-footer { align-items: center !important; min-height: 28px; margin-top: 6px !important; }
html body.veo-generation-body .veo-user-message-actions { opacity: 1 !important; transform: none !important; align-items: center; }
html body.veo-generation-body .veo-user-message-timestamp { line-height: 28px !important; margin: 0 !important; padding: 0 !important; display: inline-flex; align-items: center; }
html body.veo-generation-body .veo-user-msg-btn { color: rgba(245, 237, 220, 0.42) !important; }

/* ==========================================================================
   ИКОНКИ СОСТОЯНИЙ — свои, гравировкой белым золотом (без красного/розового)
   ========================================================================== */
html body .veo-notify-overlay .veo-notify-icon,
html body .veo-notify-overlay[data-type] .veo-notify-icon { color: #f2e8d3 !important; }
html body .veo-notify-overlay .veo-notify-icon svg.vf-ico { width: 30px !important; height: 30px !important; filter: drop-shadow(0 0 6px rgba(255, 246, 224, 0.35)); }
html body .veo-notify-overlay[data-type="error"] .veo-notify-icon svg.vf-ico,
html body .veo-notify-overlay[data-type="warning"] .veo-notify-icon svg.vf-ico { animation: vf-ico-in 0.6s cubic-bezier(.34, 1.56, .64, 1) both; }
html body .veo-notify-overlay[data-type="success"] .veo-notify-icon svg.vf-ico path:nth-of-type(1) { stroke-dasharray: 20; stroke-dashoffset: 20; animation: vf-ico-draw 0.55s 0.15s ease-out forwards; }
@keyframes vf-ico-in { from { transform: scale(0.6) rotate(-45deg); opacity: 0; } }
@keyframes vf-ico-draw { to { stroke-dashoffset: 0; } }

/* плашка ошибки в ленте: тёмная гравированная, текст светлый, ромб-клеймо вместо красного крестика */
html body.veo-generation-body .veo-chat-message-bubble--status.veo-chat-status--error {
    gap: 10px !important; padding: 10px 16px 10px 12px !important; border-radius: 16px !important;
    background: radial-gradient(120% 140% at 0% 0%, rgba(247, 239, 222, 0.06), transparent 60%), linear-gradient(180deg, #13120e, #0a0a09) !important;
    border: 1px solid rgba(236, 224, 198, 0.28) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.05), 0 10px 28px rgba(0, 0, 0, 0.45) !important;
}
html body.veo-generation-body .veo-chat-message-bubble--status.veo-chat-status--error .veo-chat-error-text {
    color: rgba(245, 237, 220, 0.82) !important; text-shadow: none !important; font: 400 0.88rem/1.5 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important;
}
html body.veo-generation-body .veo-chat-error-x-icon {
    width: 34px !important; height: 34px !important; flex: 0 0 34px !important; border-radius: 50%;
    color: #f2e8d3 !important; filter: none !important;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 72%); border: 1px solid rgba(236, 224, 198, 0.35);
}
html body.veo-generation-body .veo-chat-error-x-icon svg.vf-ico { width: 18px !important; height: 18px !important; }
.vf-film__err { display: grid; place-items: center; color: #f2e8d3; font-style: normal; }
.vf-film__err svg { width: 18px; height: 18px; }

/* живой слой неба: мерцание, пылинки, параллакс; Млечный путь поворачивается заметно медленнее */
.vf-cosmos__live { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; display: block; }
/* пыль поворачивается с прежней скоростью (420 с на оборот) */
html.vf-still .vf-cosmos__live { display: none; }
@media (prefers-reduced-motion: reduce) { .vf-cosmos__live { display: none; } }

/* без сияния на фоне: туманности-пятна выключены */
#vfCosmos .vf-cosmos__neb, #vfCosmos .vf-cosmos__neb--a { display: none !important; }

/* ==========================================================================
   «ПРОЯВКА» ПРИ ЗАГРУЗКЕ ФОТО: сообщения в чате и галерея референсов — как у результата
   ========================================================================== */
html body .veo-chat-media-preview--image { position: relative; }
html body .veo-chat-media-preview--image.vf-dev img { opacity: 0 !important; }
html body .veo-chat-media-preview--image.vf-dev::before,
html body .veo-gallery-card__shimmer {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background:
        linear-gradient(105deg, transparent 30%, rgba(247, 239, 222, 0.12) 50%, transparent 70%) -150% 0 / 250% 100% no-repeat,
        radial-gradient(80% 70% at 50% 40%, rgba(236, 224, 198, 0.1), transparent 70%),
        #0c0b09 !important;
}
html body .veo-chat-media-preview--image.vf-dev::before,
html body .veo-gallery-card--loading .veo-gallery-card__shimmer { animation: vf-dev-sheen 2.2s linear infinite !important; }
html body .veo-chat-media-preview--image.vf-dev::after,
html body .veo-gallery-card--loading .veo-gallery-card__media::after {
    content: "◆"; position: absolute; left: 50%; top: 50%; z-index: 2; transform: translate(-50%, -50%); pointer-events: none;
    font: 400 9px/1 "Inter", sans-serif; color: #f2e8d3; text-shadow: 0 0 8px rgba(255, 246, 224, 0.8); animation: vf-breathe 1.6s ease-in-out infinite;
}
/* в галерее карточки крупнее — с подписью антиквой */
html body .veo-gallery-card--loading .veo-gallery-card__media::before {
    content: "Проявляем…"; position: absolute; left: 0; right: 0; bottom: 14%; z-index: 2; text-align: center; pointer-events: none;
    font: italic 600 0.78rem/1 var(--vf-antiqua, Georgia, serif); color: rgba(236, 224, 198, 0.7);
}
html body .veo-gallery-card__media { position: relative; }
/* кадр проявляется: из засвеченного и размытого — в чёткий */
@keyframes vf-develop-sm {
    0% { opacity: 0; filter: brightness(1.9) sepia(0.55) contrast(0.6) blur(7px); transform: scale(1.04); }
    55% { opacity: 1; filter: brightness(1.25) sepia(0.25) contrast(0.85) blur(2px); }
    100% { opacity: 1; filter: none; transform: none; }
}
html body .veo-chat-media-preview--image.vf-dev-in img { animation: vf-develop-sm 1s cubic-bezier(.22, 1, .36, 1) both; }
html body .veo-gallery-card:not(.veo-gallery-card--loading) .veo-gallery-card__media img { animation: vf-develop-sm 0.9s cubic-bezier(.22, 1, .36, 1) both; }
html.vf-still .veo-chat-media-preview--image.vf-dev-in img, html.vf-still .veo-gallery-card__media img { animation: none !important; }

/* ==========================================================================
   ПАНЕЛЬ ЗАПИСИ ГОЛОСА — «осциллограф обсерватории»: тонкие золотые штрихи
   от средней линии, шкала-хронометр, золотая точка записи, медальоны-кнопки
   ========================================================================== */
html body .veo-voice-record-panel,
html body.chatgpt-page .vf-gpt-voice-record-panel.veo-voice-record-panel {
    border-radius: 18px !important; border: 1px solid rgba(236, 224, 198, 0.24) !important;
    background: radial-gradient(120% 140% at 0% 0%, rgba(247, 239, 222, 0.05), transparent 60%), linear-gradient(180deg, #12110d, #0a0a08) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.05), 0 12px 32px rgba(0, 0, 0, 0.5) !important;
}
html body .veo-voice-record-panel .veo-voice-record-wave-shell,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-wave-shell {
    position: relative; border-radius: 14px !important; border: 1px solid rgba(236, 224, 198, 0.16) !important;
    background:
        linear-gradient(rgba(236, 224, 198, 0.16), rgba(236, 224, 198, 0.16)) center / 100% 1px no-repeat,
        repeating-linear-gradient(90deg, rgba(236, 224, 198, 0.22) 0 1px, transparent 1px 12px) 0 0 / 100% 4px no-repeat,
        repeating-linear-gradient(90deg, rgba(236, 224, 198, 0.22) 0 1px, transparent 1px 12px) 0 100% / 100% 4px no-repeat,
        #070706 !important;
    box-shadow: inset 0 0 22px rgba(0, 0, 0, 0.6) !important;
}
html body .veo-voice-record-panel .veo-voice-record-wave-glow,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-wave-glow {
    background: radial-gradient(60% 90% at 100% 50%, rgba(255, 246, 224, 0.1), transparent 70%) !important; opacity: 1 !important;
}
html body .veo-voice-record-panel .veo-voice-record-wave { gap: 3px !important; align-items: center !important; }
html body .veo-voice-record-panel .veo-voice-wave-bar,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-wave-bar {
    max-width: 3px !important; height: 82% !important; align-self: center !important; transform-origin: 50% 50% !important; border-radius: 3px !important;
    background: linear-gradient(180deg, rgba(185, 166, 126, 0.7), #fffaf0 50%, rgba(185, 166, 126, 0.7)) !important;
    box-shadow: 0 0 6px rgba(255, 246, 224, 0.35) !important; justify-self: center;
}
html body .veo-voice-record-panel .veo-voice-record-wave { justify-content: space-between !important; }
html body .veo-voice-record-panel .veo-voice-record-meta,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-meta {
    color: #f2e8d3 !important; font: 600 0.95rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; font-variant-numeric: tabular-nums; letter-spacing: 0.02em;
}
html body .veo-voice-record-panel .veo-voice-record-dot,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-dot {
    width: 8px !important; height: 8px !important; border-radius: 50% !important; background: #f2e8d3 !important;
    box-shadow: 0 0 0 0 rgba(242, 232, 211, 0.6) !important; animation: vf-rec-dot 1.5s ease-out infinite !important;
}
@keyframes vf-rec-dot { 0% { box-shadow: 0 0 0 0 rgba(242, 232, 211, 0.6); } 100% { box-shadow: 0 0 0 9px rgba(242, 232, 211, 0); } }
html body .veo-voice-record-panel .veo-voice-record-divider,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-divider {
    background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.3), transparent) !important; height: 1px !important;
}
html body .veo-voice-record-panel .veo-voice-mini-stat,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-mini-stat {
    font: italic 500 0.95rem/1.2 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.62) !important; letter-spacing: 0.01em;
}
html body .veo-voice-record-panel .veo-voice-record-btn,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-btn {
    width: 38px !important; height: 38px !important; border-radius: 50% !important; color: #f2e8d3 !important;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 72%) !important; border: 1px solid rgba(236, 224, 198, 0.35) !important;
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.7) !important; transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), border-color 0.2s !important;
}
html body .veo-voice-record-panel .veo-voice-record-btn:hover,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-btn--cancel:hover { transform: translateY(-1px) !important; border-color: rgba(242, 232, 211, 0.7) !important; background: radial-gradient(circle at 50% 35%, #26221a, #0e0d0b 72%) !important; color: #fffaf0 !important; }
html body .veo-voice-record-panel .veo-voice-record-btn--send,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-btn--send,
html body.chatgpt-page .vf-gpt-voice-record-panel .veo-voice-record-btn--send:hover {
    background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important; color: #1d1a14 !important; border-color: transparent !important;
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.8), 0 0 0 4px rgba(236, 224, 198, 0.35), 0 6px 18px rgba(236, 224, 198, 0.2) !important;
}
html body .veo-voice-record-panel .veo-voice-record-btn svg { width: 17px !important; height: 17px !important; }
html body.chatgpt-page .veo-voice-record-lock { color: rgba(236, 224, 198, 0.5) !important; }

/* кнопка микрофона во время записи — белое золото вместо красного, золотые круги */
html body .gpt-mic-btn.recording, html body #btnMic.veo-mic-recording {
    color: #1d1a14 !important; background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important; border-color: transparent !important;
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.9), 0 0 0 4px rgba(236, 224, 198, 0.4), 0 0 22px rgba(236, 224, 198, 0.35) !important;
}
html body .gpt-mic-btn.recording::before, html body .gpt-mic-btn.recording::after {
    background: transparent !important; border: 1px solid rgba(242, 232, 211, 0.55) !important; animation: vf-mic-ring 1.8s cubic-bezier(.2, .8, .2, 1) infinite !important;
}
html body .gpt-mic-btn.recording::after { animation-delay: 0.9s !important; }
@keyframes vf-mic-ring { 0% { transform: scale(0.9); opacity: 0.9; } 100% { transform: scale(2.1); opacity: 0; } }

/* ==========================================================================
   ЗАГРУЗКА И ПРОЯВКА РЕЗУЛЬТАТА
   Пока файл грузится — тихая тёмная пластина и надпись; как только загрузился —
   одна долгая плавная проявка: снимок — негатив → сепия → цвет; видео — киноплёнка.
   ========================================================================== */
html body .vf-media-loader-overlay { animation: none !important; background: radial-gradient(70% 60% at 50% 45%, rgba(236, 224, 198, 0.06), transparent 70%), #0b0a08 !important; }
html body .vf-media-loader-overlay > *:not(.vf-media-loader-caption):not(.vf-eng):not(.vf-reel) { opacity: 0 !important; }
html body .vf-media-loader-overlay::after {
    content: "Проявляем снимок"; position: absolute; left: 0; right: 0; bottom: 12%; z-index: 3; text-align: center;
    font: italic 600 1.15rem/1 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: rgba(242, 232, 211, 0.85) !important; letter-spacing: 0.02em;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.8); animation: vf-cap-breathe 2.4s ease-in-out infinite;
}
@keyframes vf-cap-breathe { 50% { opacity: 0.55; } }
html body .veo-video-wrapper:has(video) .vf-media-loader-overlay::after { content: "Заряжаем плёнку"; }
html body .veo-video-wrapper:has(video) .vf-media-loader-overlay {
    background:
        repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.22) 0 7px, transparent 7px 16px) left 6px top 0 / 7px 100% no-repeat,
        repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.22) 0 7px, transparent 7px 16px) right 6px top 0 / 7px 100% no-repeat,
        radial-gradient(70% 60% at 50% 45%, rgba(236, 224, 198, 0.06), transparent 70%), #0b0a08 !important;
}
/* пластина уходит мягко, без размытия — надпись в том же месте подхватывает проявка */
html body .vf-media-loader-overlay.is-loaded { transition: opacity 0.7s ease !important; filter: none !important; }

/* ---------- снимок: негатив растворяется → ч/б позитив → сепия → цвет (около 7 с, без рывков) ---------- */
html body .veo-video-wrapper.vf-darkroom { position: relative; }
html body .veo-video-wrapper.vf-darkroom img:not(.vf-neg) { animation: vf-darkroom 4.4s cubic-bezier(.4, .1, .3, 1) both !important; }
@keyframes vf-darkroom {
    0% { opacity: 0; filter: grayscale(1) brightness(0.4) contrast(0.9) blur(2px); }
    16% { opacity: 0.22; filter: grayscale(1) brightness(0.45) contrast(0.9) blur(1.5px); }
    40% { opacity: 0.85; filter: grayscale(1) brightness(0.72) contrast(0.98) blur(0.4px); }
    62% { opacity: 1; filter: grayscale(0.55) sepia(0.7) brightness(0.84) contrast(0.98) blur(0); }
    82% { opacity: 1; filter: grayscale(0.15) sepia(0.3) brightness(0.96) contrast(1); }
    100% { opacity: 1; filter: none; }
}
html body .veo-video-wrapper.vf-darkroom::before {
    content: "" !important; display: block !important; position: absolute; inset: 0; z-index: 4; pointer-events: none; border-radius: inherit; opacity: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .95 0 0 0 0 .85 0 0 0 .7 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0 / 160px 160px repeat !important;
    mix-blend-mode: overlay; animation: vf-dev-grain 4.4s steps(16) forwards !important;
}
@keyframes vf-dev-grain { 0% { opacity: 0.45; background-position: 0 0; } 45% { opacity: 0.3; background-position: 40px 20px; } 80% { opacity: 0.12; background-position: -30px 50px; } 100% { opacity: 0; background-position: 10px -40px; } }
html body .veo-video-wrapper.vf-darkroom::after, html body .veo-video-wrapper.vf-filmroom::after {
    content: "Проявляем снимок" !important; display: block !important; position: absolute; left: 0; right: 0; bottom: 12%; z-index: 6; pointer-events: none; text-align: center;
    font: italic 600 1.15rem/1 var(--vf-antiqua, Georgia, serif); color: rgba(242, 232, 211, 0.9); letter-spacing: 0.02em; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.85);
    background: none !important; animation: vf-dev-cap 4.4s ease forwards !important;
}
@keyframes vf-dev-cap { 0%, 78% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(4px); } }

/* ---------- видео: киноплёнка — перфорация, мерцание проектора, дребезг кадра, сепия → цвет ---------- */
html body .veo-video-wrapper.vf-filmroom { position: relative; }
html body .veo-video-wrapper.vf-filmroom video { animation: vf-film-dev 4.2s ease-in-out both, vf-film-jitter 0.12s steps(2) 26 !important; }
@keyframes vf-film-dev {
    0% { filter: sepia(1) grayscale(0.4) contrast(1.25) brightness(0.45); }
    12% { filter: sepia(1) contrast(1.2) brightness(0.8); }
    18% { filter: sepia(1) contrast(1.2) brightness(0.55); }
    30% { filter: sepia(0.9) contrast(1.1) brightness(0.85); }
    55% { filter: sepia(0.6) contrast(1.05) brightness(0.95); }
    80% { filter: sepia(0.15) brightness(1.02); }
    100% { filter: none; }
}
@keyframes vf-film-jitter { 0% { transform: translate(0, 0); } 50% { transform: translate(0.5px, -1px); } }
html body .veo-video-wrapper.vf-filmroom::before {
    content: "" !important; display: block !important; position: absolute; inset: 0; z-index: 5; pointer-events: none; border-radius: inherit;
    background:
        repeating-linear-gradient(180deg, rgba(10, 10, 9, 0.9) 0 7px, transparent 7px 16px) left 6px top 0 / 7px 200% repeat-y,
        repeating-linear-gradient(180deg, rgba(10, 10, 9, 0.9) 0 7px, transparent 7px 16px) right 6px top 0 / 7px 200% repeat-y,
        linear-gradient(90deg, rgba(5, 5, 4, 0.75) 0 20px, transparent 20px calc(100% - 20px), rgba(5, 5, 4, 0.75) calc(100% - 20px)),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .95 0 0 0 0 .85 0 0 0 .7 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0 / 160px 160px repeat !important;
    animation: vf-film-run 0.5s linear 8, vf-film-out 4.2s ease forwards !important;
}
@keyframes vf-film-run { to { background-position: left 6px top 32px, right 6px top 32px, 0 0, 20px 30px; } }
@keyframes vf-film-out { 0%, 55% { opacity: 1; } 100% { opacity: 0; } }
html body .veo-video-wrapper.vf-filmroom::after { content: "Проявляем плёнку" !important; animation-duration: 4.2s !important; }

html.vf-still .veo-video-wrapper:is(.vf-darkroom, .vf-filmroom) :is(img, video) { animation: none !important; }
html.vf-still .veo-video-wrapper:is(.vf-darkroom, .vf-filmroom)::before, html.vf-still .veo-video-wrapper:is(.vf-darkroom, .vf-filmroom)::after { display: none !important; }
@media (prefers-reduced-motion: reduce) { html body .veo-video-wrapper:is(.vf-darkroom, .vf-filmroom) :is(img, video) { animation-duration: 0.8s !important; } }

/* ==========================================================================
   ПОКА ИДЁТ ГЕНЕРАЦИЯ
   ========================================================================== */
html body.veo-generation-body .veo-generating-loader:is(.vf-pola-host, .vf-lead-host) { width: 150px !important; height: 150px !important; }
html body.veo-generation-body .veo-generating-loader:is(.vf-pola-host, .vf-lead-host) > :not(.vf-pola):not(.vf-lead) { display: none !important; }

/* ---------- фото: полароид, на котором проступает ночной пейзаж ---------- */
.vf-pola { position: absolute; inset: 0; display: grid; place-items: center; perspective: 600px; }
.vf-pola__card {
    position: relative; width: 104px; padding: 8px 8px 24px; border-radius: 3px; box-sizing: border-box;
    background: linear-gradient(160deg, #f7efde, #e2d5b8 70%, #cdbf9d); box-shadow: 0 14px 30px rgba(0, 0, 0, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.4);
    animation: vf-pola-float 6s ease-in-out infinite; will-change: transform;
}
@keyframes vf-pola-float { 0%, 100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-6px); } }
.vf-pola__img { position: relative; width: 88px; height: 88px; overflow: hidden; background: #0b0a08; }
.vf-pola__img > i { position: absolute; display: block; }
.vf-pola__sky { inset: 0; background: radial-gradient(1px 1px at 20% 30%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 70% 18%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 45% 40%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 85% 45%, #fff 50%, transparent 51%), linear-gradient(180deg, #0e0d0b, #2a2620 55%, #5a4e3a); }
.vf-pola__moon { width: 22px; height: 22px; right: 16px; top: 14px; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #fffaf0, #e9dcc0 60%, #b9a67e); box-shadow: 0 0 14px rgba(255, 246, 224, 0.7); }
.vf-pola__hill { left: -10%; right: -10%; bottom: -30px; height: 58px; border-radius: 50% 50% 0 0; background: #1b1712; }
.vf-pola__hill--b { left: 30%; right: -30%; bottom: -34px; height: 50px; background: #0f0d0a; }
/* проявка: тьма уходит, сепия держится и тает — только opacity, плавно */
.vf-pola__sepia { inset: 0; background: #8a6a3c; mix-blend-mode: color; animation: vf-pola-sepia 6s ease-in-out infinite; }
.vf-pola__dark { inset: 0; background: #0b0a08; animation: vf-pola-dark 6s ease-in-out infinite; }
@keyframes vf-pola-dark { 0%, 6% { opacity: 1; } 45% { opacity: 0.15; } 60%, 88% { opacity: 0; } 100% { opacity: 1; } }
@keyframes vf-pola-sepia { 0%, 30% { opacity: 1; } 70%, 88% { opacity: 0; } 100% { opacity: 1; } }
/* подпись карандашом на поле карточки */
.vf-pola__pen { position: absolute; left: 12px; bottom: 9px; height: 1.5px; width: 0; border-radius: 2px; background: rgba(60, 48, 30, 0.7); animation: vf-pola-pen 6s ease-in-out infinite; }
@keyframes vf-pola-pen { 0%, 55% { width: 0; } 80%, 92% { width: 52px; } 100% { width: 0; opacity: 0; } }
.vf-pola__glint { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(115deg, transparent 38%, rgba(255, 250, 240, 0.35) 50%, transparent 62%) -160% 0 / 250% 100% no-repeat; animation: vf-pola-glint 6s ease-in-out infinite; mix-blend-mode: screen; }
@keyframes vf-pola-glint { 0%, 60% { background-position: -160% 0; } 80%, 100% { background-position: 160% 0; } }

/* ---------- видео: киноотсчёт 3-2-1, плёнка бежит по бокам ---------- */
.vf-lead { position: absolute; inset: 0; display: grid; place-items: center; }
.vf-lead__strip { position: absolute; top: 4px; bottom: 4px; width: 14px; border-radius: 3px; overflow: hidden;
    background: repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.55) 0 6px, transparent 6px 14px) center 0 / 6px 28px repeat-y, #14120e;
    box-shadow: inset 0 0 0 1px rgba(236, 224, 198, 0.2); animation: vf-lead-run 0.7s linear infinite; }
.vf-lead__strip--l { left: 2px; }
.vf-lead__strip--r { right: 2px; animation-direction: reverse; }
@keyframes vf-lead-run { to { background-position: center 28px, 0 0; } }
.vf-lead__dial { position: relative; width: 104px; height: 104px; border-radius: 50%; overflow: hidden;
    background: radial-gradient(circle, #1c1a15 0 30%, #11100d 31% 100%); box-shadow: inset 0 0 0 1.5px rgba(242, 232, 211, 0.75), inset 0 0 0 9px #0d0c0a, inset 0 0 0 10px rgba(236, 224, 198, 0.35), 0 12px 28px rgba(0, 0, 0, 0.55); }
.vf-lead__sweep { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, rgba(242, 232, 211, 0.32), rgba(242, 232, 211, 0.04) 85%, transparent 86%); animation: vf-lead-sweep 1s linear infinite; will-change: transform; }
@keyframes vf-lead-sweep { to { transform: rotate(360deg); } }
.vf-lead__cross { position: absolute; inset: 0; background: linear-gradient(rgba(236, 224, 198, 0.3), rgba(236, 224, 198, 0.3)) center / 1px 100% no-repeat, linear-gradient(rgba(236, 224, 198, 0.3), rgba(236, 224, 198, 0.3)) center / 100% 1px no-repeat; }
.vf-lead__n { position: absolute; inset: 0; display: grid; place-items: center; font: 700 2.6rem/1 var(--vf-antiqua, Georgia, serif); color: #f5eddc; text-shadow: 0 0 12px rgba(255, 246, 224, 0.45); opacity: 0; animation: vf-lead-n 3s linear infinite both; }
.vf-lead__n--2 { animation-delay: 1s; }
.vf-lead__n--1 { animation-delay: 2s; }
@keyframes vf-lead-n { 0% { opacity: 0; transform: scale(1.18); } 3% { opacity: 1; transform: none; } 30% { opacity: 1; } 33.33%, 100% { opacity: 0; } }
.vf-lead__flicker { position: absolute; inset: 0; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(255, 250, 240, 0.08), transparent 70%); animation: vf-lead-flick 0.24s steps(2) infinite; }
@keyframes vf-lead-flick { 50% { opacity: 0.4; } }
html.vf-still :is(.vf-pola, .vf-lead) *, html.vf-still :is(.vf-pola, .vf-lead) { animation: none !important; }
html.vf-still .vf-pola__dark, html.vf-still .vf-pola__sepia { opacity: 0; }
html.vf-still .vf-lead__n--3 { opacity: 1; }
@media (max-width: 760px) { html body.veo-generation-body .veo-generating-loader:is(.vf-pola-host, .vf-lead-host) { width: 120px !important; height: 120px !important; } .vf-pola__card { transform: scale(0.85); } }

/* ==========================================================================
   ПОКА ИДЁТ ГЕНЕРАЦИЯ — фото: гравюра прорисовывается; видео: киноплёнка в проекторе
   ========================================================================== */
html body.veo-generation-body .veo-generating-loader.vf-eng-host { width: 300px !important; height: 200px !important; max-width: 88%; }
html body.veo-generation-body .veo-generating-loader.vf-eng-host--video { height: 170px !important; }
html body.veo-generation-body .veo-generating-loader.vf-eng-host > :not(.vf-eng):not(.vf-reel) { display: none !important; }

/* ---------- фото: холст гравёра ---------- */
.vf-eng { position: absolute; inset: 0; border-radius: 6px; overflow: hidden; background: #000; }
.vf-eng canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; transition: opacity 0.9s ease, filter 1.6s ease; }
.vf-eng.is-glow canvas { filter: brightness(1.18) drop-shadow(0 0 5px rgba(255, 246, 224, 0.35)); }
.vf-eng.is-out canvas { opacity: 0; }
.vf-eng__nib { position: absolute; left: 0; top: 0; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #fffaf0; pointer-events: none; z-index: 2;
    box-shadow: 0 0 10px 3px rgba(255, 246, 224, 0.8), 0 0 26px 8px rgba(242, 232, 211, 0.28); opacity: 0; transition: opacity 0.4s ease; will-change: transform; }
.vf-eng__frame { position: absolute; inset: 6px; pointer-events: none; border: 1px solid rgba(236, 224, 198, 0.16); border-radius: 4px;
    background:
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) left top / 18px 1px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) left top / 1px 18px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) right bottom / 18px 1px no-repeat,
        linear-gradient(rgba(236, 224, 198, 0.55), rgba(236, 224, 198, 0.55)) right bottom / 1px 18px no-repeat; }

/* ---------- видео: плёнка с кадрами-гравюрами протягивается через окно проектора ---------- */
.vf-reel { position: absolute; inset: 0; overflow: hidden; border-radius: 6px; background: #050504; }
.vf-reel__strip { position: absolute; left: 0; top: 50%; height: 122px; margin-top: -61px; display: flex; gap: 10px; padding: 11px 0; box-sizing: border-box;
    background:
        repeating-linear-gradient(90deg, rgba(236, 224, 198, 0.4) 0 7px, transparent 7px 16px) 0 3px / 100% 5px repeat-x,
        repeating-linear-gradient(90deg, rgba(236, 224, 198, 0.4) 0 7px, transparent 7px 16px) 0 calc(100% - 3px) / 100% 5px repeat-x,
        #12110d;
    animation: vf-reel-pull 36s infinite; will-change: transform; }
.vf-reel__strip > i { flex: 0 0 150px; height: 100px; background: var(--img) center / cover no-repeat, #000; box-shadow: inset 0 0 0 1px rgba(236, 224, 198, 0.25); filter: sepia(0.35) brightness(0.9); }
@keyframes vf-reel-pull { 0.000% { transform: translateX(75px); } 6.833% { transform: translateX(75px); } 8.333% { transform: translateX(-85px); } 15.167% { transform: translateX(-85px); } 16.667% { transform: translateX(-245px); } 23.500% { transform: translateX(-245px); } 25.000% { transform: translateX(-405px); } 31.833% { transform: translateX(-405px); } 33.333% { transform: translateX(-565px); } 40.167% { transform: translateX(-565px); } 41.667% { transform: translateX(-725px); } 48.500% { transform: translateX(-725px); } 50.000% { transform: translateX(-885px); } 56.833% { transform: translateX(-885px); } 58.333% { transform: translateX(-1045px); } 65.167% { transform: translateX(-1045px); } 66.667% { transform: translateX(-1205px); } 73.500% { transform: translateX(-1205px); } 75.000% { transform: translateX(-1365px); } 81.833% { transform: translateX(-1365px); } 83.333% { transform: translateX(-1525px); } 90.167% { transform: translateX(-1525px); } 91.667% { transform: translateX(-1685px); } 98.500% { transform: translateX(-1685px); } 100% { transform: translateX(-1845px); } }
.vf-reel__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #050504 0%, rgba(5, 5, 4, 0.82) 22%, transparent 34%, transparent 66%, rgba(5, 5, 4, 0.82) 78%, #050504 100%); }
.vf-reel__gate { position: absolute; left: 50%; top: 50%; width: 158px; height: 108px; margin: -54px 0 0 -79px; pointer-events: none; border-radius: 3px;
    box-shadow: 0 0 0 1px rgba(242, 232, 211, 0.55), 0 0 26px rgba(255, 246, 224, 0.18), inset 0 0 30px rgba(255, 246, 224, 0.12); }
.vf-reel__flicker { position: absolute; left: 50%; top: 50%; width: 150px; height: 100px; margin: -50px 0 0 -75px; pointer-events: none;
    background: radial-gradient(80% 80% at 50% 45%, rgba(255, 246, 224, 0.12), transparent 75%); animation: vf-reel-flick 0.18s steps(2) infinite; }
@keyframes vf-reel-flick { 50% { opacity: 0.45; } }
html.vf-still .vf-reel * { animation: none !important; }
html.vf-still .vf-eng__nib { display: none; }
@media (max-width: 760px) {
    html body.veo-generation-body .veo-generating-loader.vf-eng-host { width: 255px !important; height: 170px !important; }
    html body.veo-generation-body .veo-generating-loader.vf-eng-host--video { height: 150px !important; }
}

/* гравюра продолжает рисоваться на месте качающегося результата */
html body .vf-media-loader-overlay.vf-ov-eng { background: #000 !important; }
html body .vf-media-loader-overlay > .vf-eng, html body .vf-media-loader-overlay > .vf-reel { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
html body .vf-media-loader-overlay.vf-ov-eng::after { z-index: 3; bottom: 7% !important; }
html body .vf-media-loader-overlay.vf-ov-eng.is-loaded { transition: opacity 0.8s ease !important; }

/* ==========================================================================
   РАСКРЫТИЕ ОКНА: пока качается — результат виден окошком размера заставки (3:2),
   скачался — окно плавно раскрывается до формата и снимок проявляется внутри
   ========================================================================== */
html body .veo-video-wrapper.vf-morph { box-shadow: none !important; }
html body .veo-video-wrapper.vf-morph-open { transition: clip-path 1.1s cubic-bezier(.65, 0, .25, 1), box-shadow 0.6s ease 0.9s !important; }
html body .vf-media-loader-overlay.vf-ov-eng { background: transparent !important; }
html body .vf-media-loader-overlay.vf-ov-eng::after { display: none !important; }
html body .vf-media-loader-overlay > .vf-eng { border-radius: 8px; box-shadow: inset 0 0 0 1px rgba(236, 224, 198, 0.25); }
/* «Проявляем снимок» — на нижнем крае окошка, пока снимок качается */
html body .vf-media-loader-overlay > .vf-eng::after {
    content: "Проявляем снимок"; position: absolute; left: 0; right: 0; bottom: 10px; z-index: 3; text-align: center; pointer-events: none;
    font: italic 600 0.95rem/1 var(--vf-antiqua, Georgia, serif); color: rgba(242, 232, 211, 0.85); text-shadow: 0 1px 10px rgba(0, 0, 0, 0.9);
}
html body .vf-media-loader-overlay.vf-ov-eng.is-loaded { transition: opacity 0.9s ease !important; }
/* и во время проявки надпись остаётся на том же месте (край бывшего окошка), гаснет, когда снимок проявился */
html body .veo-video-wrapper.vf-darkroom::after {
    display: block !important; top: var(--vf-cap-y, calc(88% - 0.6rem)) !important; bottom: auto !important;
    font-size: 0.95rem !important; animation: vf-dev-cap 4.4s ease forwards !important;
}
@keyframes vf-dev-cap { 0%, 84% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(3px); } }

/* ==========================================================================
   СООБЩЕНИЕ С ПРОМПТОМ — тёмная пластина с золотой кромкой, структура блоков, «Развернуть»
   ========================================================================== */
html body.veo-generation-body .veo-chat-message--user .veo-chat-message-bubble {
    background: radial-gradient(120% 90% at 100% 0%, rgba(247, 239, 222, 0.07), transparent 60%), linear-gradient(180deg, #15130f, #0c0b09) !important;
    border: 1px solid rgba(236, 224, 198, 0.3) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 5px rgba(5, 5, 4, 0.55), inset 0 0 0 6px rgba(236, 224, 198, 0.06), 0 12px 30px rgba(0, 0, 0, 0.45) !important;
    padding: 14px 20px !important;
}
html body .veo-chat-prompt-text.vf-pfmt { display: block; white-space: normal !important; color: #f2e8d3; font-size: 0.95rem; line-height: 1.6; }
.vf-pfmt .vf-pline { display: block; }
.vf-pfmt .vf-pgap { display: block; height: 0.7em; }
.vf-pfmt .vf-pl { display: block; margin: 2px 0 3px; font: 700 0.66rem/1.3 "Inter", sans-serif; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(236, 224, 198, 0.75); }
.vf-pfmt .vf-pl::before { content: "◆  "; font-size: 0.5rem; vertical-align: 1px; color: rgba(236, 224, 198, 0.55); }
.vf-pfmt .vf-pl em { font-style: normal; margin-left: 8px; padding: 1px 7px; border-radius: 999px; letter-spacing: 0.08em; color: #1d1a14; background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994); font-size: 0.58rem; vertical-align: 1px; }
.vf-pfmt .vf-pv { display: block; }
.vf-pfmt .vf-li { display: block; position: relative; padding-left: 16px; margin: 2px 0; }
.vf-pfmt .vf-li::before { content: ""; position: absolute; left: 3px; top: 0.62em; width: 5px; height: 5px; transform: rotate(45deg); background: rgba(236, 224, 198, 0.7); }
/* свёрнуто: мягко растворяется к низу */
.vf-pfmt.vf-pclamp { max-height: 210px; overflow: hidden; -webkit-mask: linear-gradient(180deg, #000 62%, transparent); mask: linear-gradient(180deg, #000 62%, transparent); transition: max-height 0.5s cubic-bezier(.22, 1, .36, 1); }
.vf-pfmt.vf-pclamp.vf-popen { max-height: 4000px; -webkit-mask: none; mask: none; }
.vf-pmore {
    display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 6px 12px 6px 14px; border-radius: 999px; cursor: pointer;
    font: 600 0.74rem/1 "Inter", sans-serif; letter-spacing: 0.06em; color: #f2e8d3; background: rgba(247, 239, 222, 0.04); border: 1px solid rgba(236, 224, 198, 0.35);
    transition: border-color 0.2s, background 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1);
}
.vf-pmore svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.35s ease; }
.vf-pmore:hover { border-color: rgba(242, 232, 211, 0.75); background: rgba(247, 239, 222, 0.08); transform: translateY(-1px); }
.vf-pmore.is-open svg { transform: rotate(180deg); }
/* старая серая кнопка «Показать полностью промпт» больше не нужна */
html body .veo-chat-message--user .veo-chat-show-full-btn { display: none !important; }
html body .veo-chat-message--user .veo-chat-message-meta:has(> .veo-chat-show-full-btn) { display: none !important; }

/* ==========================================================================
   ТАБЛИЧКА «ДАТА · ID» — плотная, звёзды за ней не просвечивают
   ========================================================================== */
html body.veo-generation-body .veo-video-block-meta {
    background: linear-gradient(180deg, #17150f, #0d0c0a) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.05), 0 6px 18px rgba(0, 0, 0, 0.45) !important;
}

/* ==========================================================================
   МЕНЮ «ЕЩЁ» У РЕЗУЛЬТАТА — всплывает справа от кнопки, вровень с ней, с иконками
   ========================================================================== */
html body.veo-generation-body .veo-result-more-menu,
html body.veo-generation-body .veo-result-with-toolbar:has(.veo-video-wrapper[data-aspect-layout]) .veo-result-more-menu {
    left: calc(100% + 12px) !important; right: auto !important; top: auto !important; bottom: -6px !important; margin: 0 !important; transform: translateX(-6px) !important;
    min-width: 236px !important; padding: 6px !important; border-radius: 16px !important; z-index: 400 !important;
    background: linear-gradient(180deg, #17150f, #0c0b09) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), 0 18px 44px rgba(0, 0, 0, 0.65) !important;
    transition: opacity 0.2s, visibility 0.2s, transform 0.3s cubic-bezier(.22, 1, .36, 1) !important;
}
html body.veo-generation-body .veo-result-more-menu.veo-result-more-menu--open { transform: none !important; }
html body.veo-generation-body .veo-result-more-menu::before {
    content: ""; position: absolute; left: -6px; bottom: 22px; width: 10px; height: 10px; transform: rotate(45deg);
    background: #0f0e0b; border-left: 1px solid rgba(236, 224, 198, 0.3); border-bottom: 1px solid rgba(236, 224, 198, 0.3);
}
html body.veo-generation-body .veo-more-menu-item {
    display: flex !important; align-items: center; gap: 12px; padding: 10px 12px !important; border-radius: 10px !important;
    font: 500 0.88rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f2e8d3 !important; background: transparent !important;
}
html body.veo-generation-body .veo-more-menu-item::before {
    content: ""; flex: 0 0 18px; width: 18px; height: 18px; background: rgba(236, 224, 198, 0.75);
    -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
html body.veo-generation-body .veo-more-menu-item:hover { background: rgba(247, 239, 222, 0.08) !important; color: #fffaf0 !important; }
html body.veo-generation-body .veo-more-menu-item:hover::before { background: #fffaf0; }
html body.veo-generation-body .veo-more-menu-item[data-action="query"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 6h10M18 6h2M4 12h4M12 12h8M4 18h12'/%3E%3Ccircle cx='16' cy='6' r='2'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E"); }
html body.veo-generation-body .veo-more-menu-item[data-action="copy"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='12' height='12' rx='2.5'/%3E%3Cpath d='M5 15H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5'/%3E%3C/svg%3E"); }
html body.veo-generation-body .veo-more-menu-item[data-action="copy-id"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M9 4 7 20M17 4l-2 16M4 9h16M3 15h16'/%3E%3C/svg%3E"); }
html body.veo-generation-body .veo-more-menu-item[data-action="delete"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4.5A1.5 1.5 0 0 1 9.5 3h5A1.5 1.5 0 0 1 16 4.5V6m2.5 0-.8 13a2 2 0 0 1-2 1.9H8.3a2 2 0 0 1-2-1.9L5.5 6M10 11v6M14 11v6'/%3E%3C/svg%3E");
    margin-top: 6px !important; position: relative; color: rgba(245, 237, 220, 0.62) !important; }
html body.veo-generation-body .veo-more-menu-item[data-action="delete"]::after { content: ""; position: absolute; left: 10px; right: 10px; top: -4px; height: 1px; background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.25), transparent); }
html body.veo-generation-body .veo-more-menu-item[data-action="delete"]:hover { color: #fffaf0 !important; }

/* ==========================================================================
   ПАНЕЛЬ «ЧАТЫ» — под шапкой, плотная, выезжает слева; карточки чатов в нашем стиле
   ========================================================================== */
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel {
    top: var(--vf-desktop-header-h, 64px) !important; padding-top: 0 !important; width: 380px !important; max-width: min(380px, calc(92vw / var(--vf-z, 1))) !important;
    background: radial-gradient(120% 60% at 0% 0%, rgba(247, 239, 222, 0.05), transparent 60%), linear-gradient(180deg, #12110d, #0a0a08) !important;
    border-right: 1px solid rgba(236, 224, 198, 0.24) !important; box-shadow: 18px 0 50px rgba(0, 0, 0, 0.55) !important;
    border-radius: 0 18px 0 0;
}
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel[aria-hidden="false"] { animation: vf-panel-in 0.4s cubic-bezier(.22, 1, .36, 1); }
@keyframes vf-panel-in { from { transform: translateX(-24px); opacity: 0; } }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-backdrop[aria-hidden="false"] { top: var(--vf-desktop-header-h, 64px) !important; background: rgba(3, 3, 2, 0.6) !important; }
html body.veo-generation-body .veo-chats-panel::after { display: none !important; }
html body.veo-generation-body .veo-chats-panel-header { padding: 16px 18px 12px !important; border-bottom: 1px solid rgba(236, 224, 198, 0.12) !important; background: transparent !important; }
html body.veo-generation-body .veo-chats-panel-header :is(h1, h2, h3, .veo-chats-panel-title) {
    font: 700 1.35rem/1.1 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; letter-spacing: 0.01em;
}
html body.veo-generation-body .veo-chats-panel-back { border-radius: 50% !important; border: 1px solid rgba(236, 224, 198, 0.25) !important; background: rgba(247, 239, 222, 0.04) !important; color: #f2e8d3 !important; }
html body.veo-generation-body .veo-chats-panel-search { padding: 12px 18px !important; border: 0 !important; background: transparent !important; }
html body.veo-generation-body .veo-chats-panel-search-input {
    border-radius: 999px !important; background: rgba(5, 5, 4, 0.6) !important; border: 1px solid rgba(236, 224, 198, 0.2) !important; color: #f5eddc !important;
}
html body.veo-generation-body .veo-chats-panel-search-input:focus { border-color: rgba(242, 232, 211, 0.6) !important; box-shadow: 0 0 0 3px rgba(236, 224, 198, 0.08) !important; }
html body.veo-generation-body .veo-chats-panel-list { padding: 4px 12px 12px !important; }
html body.veo-generation-body .veo-chats-panel-section { font: 700 0.62rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.22em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.55) !important; padding: 14px 8px 8px !important; }
html body.veo-generation-body .veo-chats-panel-section::before { content: "\25C6  "; font-size: 0.5rem; vertical-align: 1px; }
html body.veo-generation-body .veo-chats-panel-item {
    margin: 0 0 8px !important; padding: 12px 14px !important; border-radius: 14px !important; cursor: pointer;
    background: rgba(247, 239, 222, 0.03) !important; border: 1px solid rgba(236, 224, 198, 0.12) !important; box-shadow: none !important;
    transition: border-color 0.2s, background 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body.veo-generation-body .veo-chats-panel-item:hover { border-color: rgba(236, 224, 198, 0.38) !important; background: rgba(247, 239, 222, 0.06) !important; transform: translateX(2px); }
html body.veo-generation-body .veo-chats-panel-item--active {
    border-color: rgba(242, 232, 211, 0.7) !important; background: radial-gradient(120% 140% at 0% 0%, rgba(247, 239, 222, 0.1), rgba(247, 239, 222, 0.03) 70%) !important;
    box-shadow: inset 0 0 0 1px rgba(242, 232, 211, 0.15) !important;
}
html body.veo-generation-body .veo-chats-panel-item-title { font: 600 0.95rem/1.3 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; }
html body.veo-generation-body .veo-chats-panel-msg-track { height: 3px !important; border-radius: 999px !important; background: rgba(236, 224, 198, 0.12) !important; }
html body.veo-generation-body .veo-chats-panel-msg-fill { border-radius: 999px !important; background: linear-gradient(90deg, #cbb994, #fffaf0) !important; box-shadow: 0 0 6px rgba(255, 246, 224, 0.5) !important; }
html body.veo-generation-body .veo-chats-panel-msg-limit-label { color: rgba(236, 224, 198, 0.5) !important; font-size: 0.7rem !important; }
html body.veo-generation-body .veo-chats-panel-msg-count { color: #f2e8d3 !important; font-size: 0.72rem !important; font-variant-numeric: tabular-nums; }
html body.veo-generation-body :is(.veo-chats-panel-item-edit, .veo-chats-panel-item-delete) {
    width: 32px !important; height: 32px !important; border-radius: 50% !important; display: grid !important; place-items: center;
    background: rgba(5, 5, 4, 0.5) !important; border: 1px solid rgba(236, 224, 198, 0.2) !important; color: rgba(236, 224, 198, 0.75) !important;
    opacity: 0.7; transition: opacity 0.2s, border-color 0.2s, color 0.2s !important;
}
html body.veo-generation-body .veo-chats-panel-item:hover :is(.veo-chats-panel-item-edit, .veo-chats-panel-item-delete) { opacity: 1; }
html body.veo-generation-body :is(.veo-chats-panel-item-edit, .veo-chats-panel-item-delete):hover { border-color: rgba(242, 232, 211, 0.7) !important; color: #fffaf0 !important; }
html body.veo-generation-body :is(.veo-chats-panel-item-edit, .veo-chats-panel-item-delete) svg { width: 15px !important; height: 15px !important; }
html body.veo-generation-body .veo-chats-panel-footer { padding: 14px 18px 18px !important; border-top: 1px solid rgba(236, 224, 198, 0.12) !important; background: transparent !important; }

/* ==========================================================================
   «ФИЛЬТР ЧАТА» — плотная карточка, понятные поля; переключатель без кривой галочки
   ========================================================================== */
html body.veo-generation-body .veo-video-catalog-panel {
    background: radial-gradient(120% 60% at 0% 0%, rgba(247, 239, 222, 0.06), transparent 60%), linear-gradient(180deg, #14120e, #0a0a08) !important;
    border: 1px solid rgba(236, 224, 198, 0.28) !important; border-radius: 22px !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 6px rgba(5, 5, 4, 0.5), inset 0 0 0 7px rgba(236, 224, 198, 0.05), 0 26px 70px rgba(0, 0, 0, 0.7) !important;
}
html body.veo-generation-body .veo-video-catalog-title { font: 700 1.4rem/1.1 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; }
html body.veo-generation-body .veo-video-catalog-desc { font: 400 0.82rem/1.5 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.55) !important; }
html body.veo-generation-body .veo-video-catalog-label { font: 700 0.62rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.22em !important; text-transform: uppercase; color: rgba(236, 224, 198, 0.6) !important; }
html body.veo-generation-body .veo-video-catalog-label::before { content: "\25C6  "; font-size: 0.5rem; vertical-align: 1px; }
html body.veo-generation-body #veoVideoCatalogQ {
    border-radius: 14px !important; background: rgba(5, 5, 4, 0.6) !important; border: 1px solid rgba(236, 224, 198, 0.2) !important; color: #f5eddc !important;
}
html body.veo-generation-body .veo-filter-row--toggle { padding: 12px 14px !important; border-radius: 14px !important; background: rgba(247, 239, 222, 0.03) !important; border: 1px solid rgba(236, 224, 198, 0.12) !important; }
html body.veo-generation-body .veo-filter-toggle-thumb::after, html body.veo-generation-body .veo-filter-toggle-thumb::before { content: none !important; display: none !important; }
html body.veo-generation-body .veo-filter-toggle-input:checked ~ .veo-filter-toggle-thumb { box-shadow: 0 0 0 2px rgba(255, 250, 240, 0.25), 0 2px 6px rgba(0, 0, 0, 0.4) !important; }
html body.veo-generation-body.nano-banana-page #veoVideoCatalogDependentFields { display: none !important; }
html body.veo-generation-body:not(.mobile-version) .veo-video-catalog-panel { height: auto !important; bottom: auto !important; max-height: calc(calc(100vh / var(--vf-z, 1)) - 110px) !important; overflow-y: auto; }

/* ==========================================================================
   ИКОНКА «АНИМАЦИЯ В ЧАТЕ» — баланс часового механизма: при наведении качается,
   выключено — замирает, приглушается и перечёркнута тонкой линией
   ========================================================================== */
html body .veo-left-sidebar .vf-ico--spark .t { stroke-linecap: round; }
html body .veo-left-icon-btn:hover .vf-ico--spark .t { stroke-dasharray: 3 2.2; animation: vf-comet-tail 0.7s linear infinite; }
html body .veo-left-icon-btn:hover .vf-ico--spark .t2 { animation-duration: 0.9s; }
html body .veo-left-icon-btn:hover .vf-ico--spark .t3 { animation-duration: 1.1s; }
@keyframes vf-comet-tail { to { stroke-dashoffset: -10.4; } }
html body .veo-left-sidebar .vf-ico--spark .st { fill: rgba(242, 232, 211, 0.18); transform-box: fill-box !important; transform-origin: center !important; }
html body .veo-left-icon-btn:hover .vf-ico--spark .st { animation: vf-comet-star 1.4s ease-in-out infinite; }
@keyframes vf-comet-star { 50% { transform: scale(1.15); fill: rgba(255, 250, 240, 0.55); } }
html body .veo-left-icon-btn:hover .vf-ico--spark .sp { animation: vf-comet-sp 1.4s ease-in-out infinite; }
@keyframes vf-comet-sp { 50% { opacity: 0.15; } }
html body .veo-left-icon-btn[aria-pressed="true"] .vf-ico--spark .sp { opacity: 0.25; animation: none !important; }
html body .veo-left-icon-btn:hover .vf-ico--spark ellipse, html body .veo-left-icon-btn:hover .vf-ico--spark .s1 { animation: none; transform: none; }
html body .veo-left-sidebar .vf-ico--spark .off { opacity: 0; transition: opacity 0.25s; }
html body .veo-left-icon-btn[aria-pressed="true"] .vf-ico--spark { opacity: 1 !important; }
html body .veo-left-icon-btn[aria-pressed="true"] .vf-ico--spark :is(.t, .st) { opacity: 0.38; animation: none !important; }
html body .veo-left-icon-btn[aria-pressed="true"] .vf-ico--spark .off { opacity: 1; }

/* ==========================================================================
   МАСШТАБ ЛЕНТЫ — окно в стиле обсерватории; масштабируются только снимки и промпты,
   края ленты на месте (zoom всей ленты отключён — он и тормозил, и тянул всё к центру)
   ========================================================================== */
html body.vf-zoom-fast.veo-generation-body:not(.mobile-version) #veoChatArea .veo-chat-messages { zoom: 1 !important; transform: none !important; width: auto !important; }
html body.vf-zoom-fast.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #veoChatMessagesDesktop .veo-chat-message--assistant .veo-video-wrapper:is([data-aspect="1:1"],[data-aspect="16:9"],[data-aspect="9:16"],[data-aspect="4:3"],[data-aspect="3:4"],[data-aspect="3:2"],[data-aspect="2:3"],[data-aspect="5:4"],[data-aspect="4:5"],[data-aspect="21:9"],[data-aspect="9:21"]):not(.vf-nano-result-grid-wrap) {
    width: min(calc(var(--vf-s) * var(--vf-k, 1) * var(--vf-z, 1)), calc(var(--vf-hmax) * var(--vf-r, 1) * var(--vf-z, 1))) !important;
}
html body.vf-zoom-fast.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #veoChatMessagesDesktop .veo-video-wrapper.vf-nano-result-grid-wrap { zoom: var(--vf-z, 1); }
html body.vf-zoom-fast.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #veoChatMessagesDesktop .veo-chat-message--assistant .veo-generating-placeholder { zoom: var(--vf-z, 1); }
html body.vf-zoom-fast.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #veoChatMessagesDesktop .veo-chat-message--user .veo-chat-message-bubble { font-size: calc(1rem * var(--vf-z, 1)) !important; }
html body.vf-zoom-fast.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #veoChatMessagesDesktop .veo-chat-message--user .veo-chat-prompt-text { font-size: calc(0.95rem * var(--vf-z, 1)) !important; }

html body .veo-chat-zoom-panel {
    width: 300px !important; min-width: 0 !important; box-sizing: border-box; padding: 16px 16px 14px !important; border-radius: 20px !important;
    background: radial-gradient(120% 80% at 0% 0%, rgba(247, 239, 222, 0.07), transparent 60%), linear-gradient(180deg, #16140f, #0b0a09) !important;
    border: 1px solid rgba(236, 224, 198, 0.28) !important;
    box-shadow: 0 22px 54px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 5px rgba(5, 5, 4, 0.55), inset 0 0 0 6px rgba(236, 224, 198, 0.05) !important;
    transition: opacity 0.22s ease, visibility 0.22s ease, transform 0.35s cubic-bezier(.22, 1, .36, 1) !important;
}
html body .veo-chat-zoom-title { margin: 0 0 12px !important; font: 700 1.15rem/1.1 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; letter-spacing: 0.01em; }
.vf-zoom-row { display: flex; align-items: center; gap: 10px; }
.vf-zoom-step {
    width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; padding: 0; color: #f2e8d3;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 72%); border: 1px solid rgba(236, 224, 198, 0.28);
    transition: border-color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1);
}
.vf-zoom-step svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.vf-zoom-step:hover { border-color: rgba(242, 232, 211, 0.7); transform: scale(1.08); }
.vf-zoom-step:active { transform: scale(0.94); }
html body .veo-chat-zoom-range {
    flex: 1; min-width: 0 !important; width: auto !important; height: 24px !important; margin: 0; padding: 0; cursor: pointer;
    -webkit-appearance: none; appearance: none; background: transparent !important; accent-color: #e8dcc2;
}
html body .veo-chat-zoom-range:focus { outline: none; }
html body .veo-chat-zoom-range::-webkit-slider-runnable-track {
    height: 3px; border-radius: 3px;
    background: linear-gradient(90deg, #b9a67e, #fffaf0) 0 0 / var(--vf-zp, 50%) 100% no-repeat, rgba(236, 224, 198, 0.16);
}
html body .veo-chat-zoom-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 18px; height: 18px; margin-top: -7.5px; border-radius: 50%; border: 0;
    background: radial-gradient(circle at 50% 32%, #ffffff, #efe4cc 50%, #b9a67e);
    box-shadow: 0 0 0 3px #0b0a09, 0 0 0 4px rgba(236, 224, 198, 0.55), 0 0 14px rgba(255, 246, 224, 0.35);
    transition: transform 0.2s;
}
html body .veo-chat-zoom-range:active::-webkit-slider-thumb { transform: scale(1.12); }
html body .veo-chat-zoom-range::-moz-range-track { height: 3px; border-radius: 3px; background: rgba(236, 224, 198, 0.16); }
html body .veo-chat-zoom-range::-moz-range-progress { height: 3px; border-radius: 3px; background: linear-gradient(90deg, #b9a67e, #fffaf0); }
html body .veo-chat-zoom-range::-moz-range-thumb { width: 18px; height: 18px; border: 0; border-radius: 50%; background: radial-gradient(circle at 50% 32%, #ffffff, #efe4cc 50%, #b9a67e); box-shadow: 0 0 0 3px #0b0a09, 0 0 0 4px rgba(236, 224, 198, 0.55); }
.vf-zoom-ticks { display: flex; justify-content: space-between; margin: 3px 49px 0; height: 9px; align-items: flex-start; }
.vf-zoom-ticks i { width: 1px; height: 5px; background: rgba(236, 224, 198, 0.3); }
.vf-zoom-ticks i.is-mid { height: 9px; background: rgba(236, 224, 198, 0.75); }
html body .veo-chat-zoom-footer { margin-top: 12px !important; padding-top: 12px; border-top: 1px solid rgba(236, 224, 198, 0.12); }
html body .veo-chat-zoom-value {
    font: 800 1.4rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.02em; font-variant-numeric: tabular-nums;
    background: linear-gradient(180deg, #fffaf0, #c9b68d); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
html body .veo-chat-zoom-reset {
    padding: 8px 14px !important; border-radius: 999px !important; font: 600 0.78rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.03em;
    color: #f2e8d3 !important; background: rgba(247, 239, 222, 0.04) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important;
}
html body .veo-chat-zoom-reset:hover { border-color: rgba(242, 232, 211, 0.7) !important; background: rgba(247, 239, 222, 0.09) !important; }
html body #veoBtnChatZoom[aria-expanded="true"] .veo-left-tooltip { display: none !important; }
html body #veoBtnChatZoom.veo-left-icon-btn--active, html body #veoBtnChatMotion.veo-left-icon-btn--active { background: rgba(236, 224, 198, 0.1) !important; }

/* ==========================================================================
   КНОПКА «КАДР» (формат + качество) и раскрывающееся окно с плитками
   ========================================================================== */
/* строки, уехавшие в кнопку «Кадр», убираем с глаз, не трогая display (по нему скрипт понимает, какая модель активна) */
html body.vf-has-frame-pill.veo-generation-body:not(.mobile-version) :is(.vf-row-in-pill, .veo-settings-section.vf-sec-empty) {
    position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; overflow: hidden !important; clip-path: inset(50%) !important;
    visibility: hidden !important; margin: 0 !important; padding: 0 !important; border: 0 !important; pointer-events: none !important; opacity: 0 !important;
}
.vf-frame-btn {
    position: relative; display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 8px 0 5px; border-radius: 999px; cursor: pointer; flex: 0 0 auto;
    color: #f2e8d3; background: rgba(247, 239, 222, 0.05); border: 1px solid rgba(236, 224, 198, 0.22); box-sizing: border-box;
    font: 700 0.78rem/1 "Inter", sans-serif; letter-spacing: 0.03em; white-space: nowrap;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.25s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1);
}
.vf-frame-btn:hover { background: rgba(247, 239, 222, 0.1); border-color: rgba(242, 232, 211, 0.55); transform: translateY(-1px); }
.vf-frame-btn.is-open { border-color: rgba(242, 232, 211, 0.75); box-shadow: 0 0 0 3px rgba(236, 224, 198, 0.08); }
.vf-frame-btn__box { width: 25px; height: 25px; flex: 0 0 25px; border-radius: 50%; display: grid; place-items: center;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 72%); box-shadow: inset 0 0 0 1px rgba(236, 224, 198, 0.28); }
.vf-frame-btn__shape { display: block; box-sizing: border-box; border: 1.5px solid currentColor; border-radius: 2.5px;
    transition: width 0.4s cubic-bezier(.34, 1.56, .64, 1), height 0.4s cubic-bezier(.34, 1.56, .64, 1); }
.vf-frame-btn__shape.is-auto { border-style: dashed; }
.vf-frame-btn__ar, .vf-frame-btn__q { font-weight: 700; font-variant-numeric: tabular-nums; }
.vf-frame-btn__q { padding-left: 6px; border-left: 1px solid rgba(236, 224, 198, 0.28); color: rgba(236, 224, 198, 0.78); }
.vf-frame-btn.no-q .vf-frame-btn__q { display: none; }
.vf-frame-btn__chev { width: 12px; height: 12px; margin-left: -1px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: 0.7; transition: transform 0.35s cubic-bezier(.22, 1, .36, 1); }
.vf-frame-btn.is-open .vf-frame-btn__chev { transform: rotate(180deg); }
html body .vf-frame-btn.is-open .veo-tooltip { display: none !important; }

.vf-frame-pop {
    position: fixed; z-index: 2147482500; box-sizing: border-box; padding: 16px 16px 14px; border-radius: 20px;
    background: radial-gradient(120% 70% at 50% 100%, rgba(247, 239, 222, 0.07), transparent 60%), linear-gradient(180deg, #17150f, #0b0a09);
    border: 1px solid rgba(236, 224, 198, 0.3);
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 5px rgba(5, 5, 4, 0.55), inset 0 0 0 6px rgba(236, 224, 198, 0.05);
    visibility: hidden; opacity: 0; transform: translateY(10px);
    clip-path: inset(100% -40px -40px -40px round 20px);
    transition: clip-path 0.45s cubic-bezier(.22, 1, .36, 1), opacity 0.3s ease, transform 0.45s cubic-bezier(.22, 1, .36, 1), visibility 0s linear 0.45s;
}
.vf-frame-pop.is-open {
    visibility: visible; opacity: 1; transform: none; clip-path: inset(-40px -40px -40px -40px round 20px);
    transition: clip-path 0.55s cubic-bezier(.22, 1, .36, 1), opacity 0.2s ease, transform 0.55s cubic-bezier(.22, 1, .36, 1), visibility 0s;
}
.vf-frame-pop::after {
    content: ""; position: absolute; bottom: -6px; left: var(--ax, 30px); width: 10px; height: 10px; margin-left: -5px; transform: rotate(45deg);
    background: #0d0c0a; border-right: 1px solid rgba(236, 224, 198, 0.3); border-bottom: 1px solid rgba(236, 224, 198, 0.3);
}
.vf-frame-pop__lbl { display: flex; align-items: center; gap: 8px; margin: 0 2px 10px; font: 600 0.62rem/1 "Inter", sans-serif; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(236, 224, 198, 0.6); }
.vf-frame-pop__lbl::before { content: "\25C6"; font-size: 0.5rem; }
.vf-frame-pop__lock { margin-left: auto; font: italic 500 0.8rem/1 var(--vf-antiqua, Georgia, serif); letter-spacing: 0; text-transform: none; color: rgba(236, 224, 198, 0.55); }
.vf-frame-pop__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.vf-ft {
    height: 66px; padding: 0; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; cursor: pointer;
    background: rgba(247, 239, 222, 0.025); border: 1px solid rgba(236, 224, 198, 0.14); color: rgba(245, 237, 220, 0.82); font: 700 0.74rem/1 "Inter", sans-serif;
    font-variant-numeric: tabular-nums; transition: border-color 0.2s, background 0.2s, color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1), box-shadow 0.25s;
}
.vf-ft i { display: block; box-sizing: border-box; border: 1.5px solid currentColor; border-radius: 3px; opacity: 0.85; transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1); }
.vf-ft--auto i { border-style: dashed; }
.vf-ft:hover { border-color: rgba(236, 224, 198, 0.45); background: rgba(247, 239, 222, 0.06); color: #fffaf0; transform: translateY(-2px); }
.vf-ft:hover i { transform: scale(1.1); }
.vf-ft.is-on { color: #1d1a14; border-color: transparent; background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994);
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.8), 0 0 0 4px rgba(236, 224, 198, 0.35), 0 8px 22px rgba(236, 224, 198, 0.14); }
.vf-ft.is-on i { opacity: 1; background: rgba(29, 26, 20, 0.1); }
.vf-frame-pop__sec--q { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(236, 224, 198, 0.12); }
.vf-frame-pop__sec--q[hidden] { display: none; }
.vf-frame-pop__qs { display: flex; gap: 7px; }
.vf-fq {
    flex: 1; height: 38px; border-radius: 999px; cursor: pointer; font: 700 0.8rem/1 "Inter", sans-serif; letter-spacing: 0.04em; color: rgba(245, 237, 220, 0.82);
    background: rgba(247, 239, 222, 0.025); border: 1px solid rgba(236, 224, 198, 0.16); transition: border-color 0.2s, background 0.2s, color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1);
}
.vf-fq:hover:not(:disabled) { border-color: rgba(236, 224, 198, 0.45); color: #fffaf0; transform: translateY(-1px); }
.vf-fq.is-on { color: #1d1a14; border-color: transparent; background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994); }
.vf-fq:disabled { opacity: 0.32; cursor: not-allowed; }
.vf-frame-pop.is-open .vf-ft, .vf-frame-pop.is-open .vf-fq { animation: vf-ft-in 0.45s cubic-bezier(.22, 1, .36, 1) both; animation-delay: var(--d, 0ms); }
@keyframes vf-ft-in { from { opacity: 0; transform: translateY(10px) scale(0.94); } }
@media (prefers-reduced-motion: reduce) { .vf-frame-pop, .vf-frame-pop.is-open { transition: opacity 0.15s, visibility 0s !important; clip-path: none !important; transform: none !important; } .vf-frame-pop.is-open .vf-ft, .vf-frame-pop.is-open .vf-fq { animation: none; } }

/* ==========================================================================
   ХОЛСТ: ввод всегда внизу, настройки над ним со своей прокруткой; результат ровно по центру
   ========================================================================== */
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-desktop-layout { grid-template-rows: minmax(0, 1fr) auto !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings {
        grid-row: 1 !important; align-self: stretch !important; height: auto !important; min-height: 0 !important; max-height: none !important;
        overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; padding: 14px 6px 12px 0 !important;
        scrollbar-width: thin; scrollbar-color: rgba(236, 224, 198, 0.3) transparent;
        -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 26px), transparent) !important; mask-image: linear-gradient(180deg, #000 calc(100% - 26px), transparent) !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-wrapper { grid-row: 2 !important; align-self: end !important; padding: 6px 0 14px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-stack,
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-box,
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-area { height: auto !important; max-height: none !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-input-zone { flex: 0 0 auto !important; min-height: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-input { height: clamp(110px, calc(20vh / var(--vf-z, 1)), 230px) !important; min-height: 0 !important; max-height: none !important; }

    html body.vf-view-studio.veo-generation-body:not(.mobile-version) { --vf-s: clamp(340px, calc(40vw / var(--vf-z, 1)), 820px); --vf-hmax: calc(calc(100vh / var(--vf-z, 1)) - 250px); }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages {
        display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: center !important;
        height: 100% !important; box-sizing: border-box !important; padding: 64px 84px 44px !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-message.vf-active { margin: 0 !important; align-self: stretch !important; width: 100% !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-message.vf-active .veo-result-with-toolbar {
        position: relative !important; display: block !important; width: auto !important; max-width: 100% !important; margin: 0 auto !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-message.vf-active .veo-result-with-toolbar > .veo-result-toolbar {
        position: absolute !important; right: calc(100% + 14px) !important; top: 0 !important; left: auto !important; margin: 0 !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-message.vf-active .veo-video-block { max-width: 100% !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-message.vf-active .veo-video-wrapper { max-height: none !important; max-width: 100% !important; }
}

/* «Мои генерации» — в левый верхний угол холста, не под переключателем */
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-mygen {
    top: 14px !important; left: 16px !important; right: auto !important; z-index: 8;
    padding: 0 14px 0 6px !important; height: 34px; gap: 8px !important; border-radius: 999px !important;
    background: linear-gradient(180deg, rgba(23, 21, 16, 0.95), rgba(10, 10, 9, 0.95)) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
    border: 1px solid rgba(236, 224, 198, 0.26) !important; box-shadow: 0 10px 26px rgba(0, 0, 0, 0.5), inset 0 0 0 3px rgba(5, 5, 4, 0.55) !important;
    font: 600 12px/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.04em; color: #f2e8d3 !important;
}
html body.vf-view-studio .vf-mygen svg { width: 22px !important; height: 22px !important; padding: 4px; box-sizing: border-box; border-radius: 50%; stroke-width: 1.6 !important;
    background: radial-gradient(circle at 50% 35%, #1f1c16, #0b0b0a 72%); box-shadow: inset 0 0 0 1px rgba(236, 224, 198, 0.28); }
html body.vf-view-studio .vf-mygen b { order: 3; min-width: 22px !important; padding: 4px 7px !important; font: 800 0.66rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #1d1a14 !important;
    background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important; }
html body.vf-view-studio .vf-mygen:hover { border-color: rgba(242, 232, 211, 0.65) !important; transform: translateY(-1px) !important; }

/* Лента ↔ Холст: панели перетекают на новые места (View Transitions) */
html.vf-vt body.veo-generation-body .veo-prompt-wrapper { view-transition-name: vf-composer; }
html.vf-vt body.veo-generation-body .veo-right-settings { view-transition-name: vf-settings; }
html.vf-vt body.veo-generation-body .veo-chat-messages-wrap { view-transition-name: vf-canvas; }
::view-transition-group(vf-composer), ::view-transition-group(vf-settings), ::view-transition-group(vf-canvas) { animation-duration: 0.6s; animation-timing-function: cubic-bezier(.22, 1, .36, 1); }
::view-transition-old(vf-composer), ::view-transition-new(vf-composer),
::view-transition-old(vf-settings), ::view-transition-new(vf-settings),
::view-transition-old(vf-canvas), ::view-transition-new(vf-canvas) { animation-duration: 0.45s; animation-timing-function: ease; height: 100%; object-fit: cover; object-position: top; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 0.3s; }

/* ==========================================================================
   КНОПКИ У РЕЗУЛЬТАТА — медальоны на золотой нити (как рейка слева), значок нейросети — золотой
   ========================================================================== */
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar {
    position: relative; background: none !important; border: 0 !important; box-shadow: none !important; padding: 2px 0 !important; gap: 9px !important; border-radius: 0 !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar::before {
    content: ""; position: absolute; left: 50%; top: 24px; bottom: 24px; width: 1px; margin-left: -0.5px; pointer-events: none; z-index: 0;
    background: linear-gradient(180deg, rgba(236, 224, 198, 0), rgba(236, 224, 198, 0.42) 14%, rgba(236, 224, 198, 0.42) 86%, rgba(236, 224, 198, 0));
}
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar :is(.veo-toolbar-btn, .veo-toolbar-ai-icon) {
    position: relative; z-index: 1; width: 44px !important; height: 44px !important; border-radius: 50% !important; color: #f2e8d3 !important;
    background: radial-gradient(circle at 50% 32%, #24211a, #0c0b0a 74%) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important;
    box-shadow: inset 0 0 0 3px rgba(5, 5, 4, 0.75), inset 0 0 0 4px rgba(236, 224, 198, 0.07), 0 6px 18px rgba(0, 0, 0, 0.5) !important;
    transition: border-color 0.2s, box-shadow 0.25s, color 0.2s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn svg { width: 19px !important; height: 19px !important; stroke-width: 1.7; }
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn:hover {
    color: #fffaf0 !important; border-color: rgba(242, 232, 211, 0.8) !important; transform: scale(1.07);
    box-shadow: inset 0 0 0 3px rgba(5, 5, 4, 0.75), inset 0 0 0 4px rgba(236, 224, 198, 0.1), 0 0 18px rgba(236, 224, 198, 0.22), 0 6px 18px rgba(0, 0, 0, 0.5) !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon {
    background: radial-gradient(circle at 50% 30%, #fffaf0, #e8dcc2 55%, #b9a67e) !important; border-color: transparent !important;
    box-shadow: 0 0 0 3px #0b0a09, 0 0 0 4px rgba(236, 224, 198, 0.42), 0 6px 18px rgba(0, 0, 0, 0.5) !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon img { filter: brightness(0) opacity(0.82) !important; width: 24px !important; height: 24px !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon svg { color: #1d1a14 !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-btn-more[aria-expanded="true"],
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-toolbar-more-wrap.open .veo-toolbar-btn-more { border-color: rgba(242, 232, 211, 0.85) !important; }

/* «Сбросить все» / «Скрыть все» — две тонкие капсулы в ряд */
html body.veo-generation-body:not(.mobile-version) .veo-settings-footer { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(122px, 1fr)); gap: 8px !important; }
html body.veo-generation-body:not(.mobile-version) .veo-settings-footer .veo-settings-btn {
    height: 40px !important; min-height: 0 !important; padding: 0 10px !important; margin: 0 !important; border-radius: 999px !important; justify-content: center; gap: 7px !important;
    background: rgba(247, 239, 222, 0.03) !important; border: 1px solid rgba(236, 224, 198, 0.22) !important; box-shadow: none !important;
    color: rgba(245, 237, 220, 0.82) !important; font: 600 0.8rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.02em; white-space: nowrap;
    transition: border-color 0.2s, background 0.2s, color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-settings-footer .veo-settings-btn svg { width: 15px !important; height: 15px !important; stroke-width: 1.8; }
html body.veo-generation-body:not(.mobile-version) .veo-settings-footer .veo-settings-btn:hover { color: #fffaf0 !important; border-color: rgba(242, 232, 211, 0.6) !important; background: rgba(247, 239, 222, 0.07) !important; transform: translateY(-1px); }
html body.veo-generation-body:not(.mobile-version) .veo-settings-footer #resetAllBtnDesktop:hover svg { animation: vf-spin-back 0.7s cubic-bezier(.22, 1, .36, 1); }
@keyframes vf-spin-back { from { transform: rotate(0); } to { transform: rotate(-360deg); } }

/* ==========================================================================
   ПОЛОСА ПРОКРУТКИ ЛЕНТЫ — тонкая золотая стрелка с ромбом на пунктирной шкале
   ========================================================================== */
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar { width: 14px; }
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar-track {
    margin: 22px 0; background: repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.2) 0 1px, transparent 1px 10px) center / 5px 100% no-repeat;
}
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar-thumb {
    min-height: 56px; border: 0; border-radius: 0; box-shadow: none; background-clip: border-box;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 .8 11.2 6 6 11.2.8 6Z' fill='%23f2e8d3' stroke='%230b0a09' stroke-width='1.2'/%3E%3C/svg%3E") center / 11px 11px no-repeat,
        linear-gradient(180deg, rgba(236, 224, 198, 0), #e8dcc2 22%, #e8dcc2 78%, rgba(236, 224, 198, 0)) center / 2px 100% no-repeat;
}
html body.veo-generation-body #veoChatMessagesDesktop::-webkit-scrollbar-thumb:hover {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 .8 11.2 6 6 11.2.8 6Z' fill='%23fffaf0' stroke='%230b0a09' stroke-width='1.2'/%3E%3C/svg%3E") center / 13px 13px no-repeat,
        linear-gradient(180deg, rgba(255, 250, 240, 0), #fffaf0 20%, #fffaf0 80%, rgba(255, 250, 240, 0)) center / 3px 100% no-repeat;
}

/* превью миниатюры: снимок в настоящих пропорциях, сразу */
.vf-mm-peek { transition: opacity 0.12s, transform 0.18s !important; }
.vf-mm-peek__img { overflow: hidden; max-height: 260px; background: #0b0b0a !important; }
.vf-mm-peek__img img { display: block; width: 100%; height: 100%; max-height: 260px; object-fit: cover; }
.vf-mm-peek__img.is-empty img { display: none; }
.vf-mm-peek__img.is-empty { aspect-ratio: 3 !important; }

/* ==========================================================================
   МЕНЮ ПРОФИЛЯ — карманные часы: купол с циферблатом (деления, бегущая секунда),
   заводная головка сверху, пункты — плитки-медальоны в две колонки
   ========================================================================== */
html body .vf-user-menu-dropdown {
    width: 308px !important; min-width: 0 !important; max-width: calc(calc(100vw / var(--vf-z, 1)) - 16px) !important; box-sizing: border-box !important;
    padding: 22px 12px 12px !important; overflow: visible !important;
    border-radius: 154px 154px 26px 26px / 154px 154px 26px 26px !important;
}
html body .vf-user-menu-dropdown::before {
    content: ""; position: absolute; left: 50%; top: -9px; width: 26px; height: 11px; margin-left: -13px; border-radius: 4px 4px 2px 2px; pointer-events: none;
    background: repeating-linear-gradient(90deg, #fffaf0 0 2px, #b9a67e 2px 3.5px); box-shadow: 0 0 0 1px rgba(5, 5, 4, 0.9), 0 0 12px rgba(236, 224, 198, 0.25);
}
html body .vf-user-menu-time-block {
    position: relative; height: 188px; padding: 0 !important; margin: 0 0 14px !important; box-sizing: border-box;
    display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
}
html body .vf-user-menu-time-block::after { bottom: -9px !important; }
.vf-umdial { position: absolute; left: 50%; top: -6px; width: 192px; height: 192px; margin-left: -96px; pointer-events: none; }
.vf-umdial svg { width: 100%; height: 100%; overflow: visible; }
.vf-umdial line { stroke: rgba(236, 224, 198, 0.3); stroke-width: 0.9; }
.vf-umdial line.mj { stroke: rgba(236, 224, 198, 0.78); stroke-width: 1.6; }
.vf-umdial .rim { fill: rgba(5, 5, 4, 0.35); stroke: rgba(236, 224, 198, 0.22); stroke-width: 1; }
.vf-umdial .rim2 { fill: none; stroke: rgba(236, 224, 198, 0.1); stroke-width: 1; }
.vf-umdial .xii { fill: #f2e8d3; }
.vf-umdial .sec { transform-origin: 80px 80px; animation: vf-umsec 60s linear infinite; animation-delay: var(--vf-sec-d, 0s); }
.vf-umdial .sec circle { fill: #fffaf0; filter: drop-shadow(0 0 3px rgba(255, 246, 224, 0.9)); }
@keyframes vf-umsec { to { transform: rotate(360deg); } }
html body .vf-user-menu-time-row { display: contents !important; }
html body .vf-user-menu-time-main { order: 1; position: relative; font-size: 1.62rem !important; line-height: 1 !important; margin-top: 6px; }
html body .vf-user-menu-time-block .vf-umd { order: 2; position: relative; margin: 0 !important; font-size: 0.9rem; }
html body .vf-user-menu-time-block .vf-menu-tz-custom-select, html body .vf-user-menu-time-block > select, html body .vf-user-menu-time-block .vf-menu-tz-select { order: 3; position: relative; }
html body .vf-user-menu-time-block .vf-menu-tz-trigger { padding: 4px 9px 4px 11px !important; font-size: 0.72rem !important; }
html body .vf-user-menu-nav { display: grid !important; grid-template-columns: 1fr 1fr; gap: 6px !important; padding: 0 !important; }
html body .vf-user-menu-dropdown .vf-user-menu-item {
    flex-direction: column !important; justify-content: center !important; align-items: center !important; text-align: center; gap: 7px !important;
    min-height: 80px; padding: 11px 6px 10px !important; border-radius: 16px !important; box-sizing: border-box;
    border: 1px solid rgba(236, 224, 198, 0.1) !important; background: rgba(247, 239, 222, 0.02) !important;
    font: 600 0.8rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; transition: border-color 0.2s, background 0.2s, color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body .vf-user-menu-dropdown .vf-user-menu-item:hover { border-color: rgba(236, 224, 198, 0.42) !important; background: rgba(247, 239, 222, 0.06) !important; transform: translateY(-2px) !important; }
html body .vf-user-menu-dropdown .vf-user-menu-item .vf-umi { width: 34px; height: 34px; flex: 0 0 34px; }
html body .vf-user-menu-dropdown .vf-user-menu-item:hover .vf-umi { border-color: rgba(236, 224, 198, 0.75); box-shadow: 0 0 14px rgba(236, 224, 198, 0.18); }
html body .vf-user-menu-dropdown .vf-user-menu-item--accent,
html body .vf-user-menu-dropdown .vf-user-menu-item--logout,
html body .vf-user-menu-dropdown .vf-user-menu-item[href*="logout"] { grid-column: 1 / -1; flex-direction: row !important; min-height: 44px; padding: 8px 12px !important; }
html body .vf-user-menu-dropdown .vf-user-menu-item[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { .vf-umdial .sec { animation: none; } }
/* поле ввода в «Ленте» чуть шире — кнопка «Кадр» и инструменты помещаются в один ряд без наложений */
@media (min-width: 1200px) {
    html body.vf-view-chat.veo-generation-body:not(.mobile-version) .veo-prompt-stack,
    html body.vf-view-chat.veo-generation-body:not(.mobile-version) .veo-prompt-area { max-width: 790px !important; }
}
@media (min-width: 961px) and (max-width: 1499px) {
    html body.veo-generation-body:not(.mobile-version) .vf-frame-btn__chev { display: none; }
    html body.veo-generation-body:not(.mobile-version) .vf-frame-btn { padding-right: 10px; }
}

/* ==========================================================================
   ОШИБКИ — единая карточка: гранатовая кромка, печать-медальон, тип ошибки, что сделать
   ========================================================================== */
html body .veo-chat-status--error.vf-err-on { display: block !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; max-width: none !important; }
html body .veo-chat-status--error.vf-err-on > :not(.vf-err) { display: none !important; }
html body .veo-chat-message[data-status="failed"] > .veo-chat-message-bubble:has(.vf-err-on),
html body .veo-chat-message--assistant .veo-chat-message-bubble:has(> .vf-err-on) { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.vf-err {
    --vf-garnet: 214, 118, 102;
    position: relative; display: flex; align-items: flex-start; gap: 15px; box-sizing: border-box; width: min(540px, 100%);
    padding: 17px 20px 15px 17px; border-radius: 20px; text-align: left;
    background: radial-gradient(120% 90% at 0% 0%, rgba(var(--vf-garnet), 0.13), transparent 60%), linear-gradient(180deg, #181110, #0c0a09);
    border: 1px solid rgba(var(--vf-garnet), 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 236, 228, 0.05), inset 0 0 0 4px rgba(5, 4, 4, 0.55), inset 0 0 0 5px rgba(var(--vf-garnet), 0.06), 0 16px 36px rgba(0, 0, 0, 0.45);
    animation: vf-err-in 0.55s cubic-bezier(.22, 1, .36, 1) both;
}
@keyframes vf-err-in { from { opacity: 0; transform: translateY(8px); } }
.vf-err__seal {
    flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: #efab9b;
    background: radial-gradient(circle at 50% 32%, #2c1613, #120908 74%); border: 1px solid rgba(var(--vf-garnet), 0.6);
    box-shadow: inset 0 0 0 3px rgba(5, 4, 4, 0.7), 0 0 20px rgba(var(--vf-garnet), 0.2);
}
.vf-err__seal svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.vf-err__body { min-width: 0; flex: 1; }
.vf-err__kick { display: block; font: 700 0.62rem/1 "Inter", sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(239, 171, 155, 0.92); }
.vf-err__kick::before { content: "\25C6  "; font-size: 0.5rem; vertical-align: 1px; }
.vf-err__title { display: block; margin: 6px 0 6px; font: 700 1.16rem/1.2 var(--vf-antiqua, Georgia, serif); color: #f6ecdd; letter-spacing: 0.01em; }
.vf-err__text { margin: 0; font: 400 0.88rem/1.55 "Inter", sans-serif; color: rgba(245, 237, 220, 0.82); }
.vf-err__note { margin: 5px 0 0; font: italic 500 0.86rem/1.4 var(--vf-antiqua, Georgia, serif); color: rgba(239, 190, 178, 0.62); }
.vf-err__word { display: inline-block; margin: 0 2px; padding: 1px 9px 2px; border-radius: 999px; font-weight: 700; color: #f6cfc4;
    background: rgba(var(--vf-garnet), 0.16); border: 1px solid rgba(var(--vf-garnet), 0.5); }
.vf-err__hints { list-style: none; margin: 11px 0 0; padding: 10px 0 0; border-top: 1px dashed rgba(var(--vf-garnet), 0.24); display: grid; gap: 4px; }
.vf-err__hints li { position: relative; padding-left: 16px; font: 500 0.82rem/1.45 "Inter", sans-serif; color: rgba(245, 237, 220, 0.66); }
.vf-err__hints li::before { content: ""; position: absolute; left: 2px; top: 0.6em; width: 5px; height: 5px; transform: rotate(45deg); background: rgba(239, 171, 155, 0.8); }
.vf-err__acts { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.vf-err__btn {
    display: inline-flex; align-items: center; height: 34px; padding: 0 15px; border-radius: 999px; cursor: pointer; text-decoration: none !important;
    font: 600 0.78rem/1 "Inter", sans-serif; letter-spacing: 0.03em; color: #f6d8cf !important; background: rgba(var(--vf-garnet), 0.08);
    border: 1px solid rgba(var(--vf-garnet), 0.45); transition: border-color 0.2s, background 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1);
}
.vf-err__btn:hover { border-color: rgba(239, 171, 155, 0.85); background: rgba(var(--vf-garnet), 0.16); transform: translateY(-1px); }
html body.mobile-version .vf-err { padding: 14px 14px 13px; gap: 12px; border-radius: 18px; }
html body.mobile-version .vf-err__seal { flex-basis: 38px; width: 38px; height: 38px; }

/* ==========================================================================
   СПИСКИ НАСТРОЕК (все нейросети): короче, своя прокрутка, при нехватке места — вверх
   ========================================================================== */
html body.veo-generation-body .veo-custom-select-dropdown {
    max-height: min(300px, calc(46vh / var(--vf-z, 1))) !important; overflow-y: auto !important; overscroll-behavior: contain;
    scrollbar-width: auto !important; scrollbar-color: auto !important;
}
html body.veo-generation-body .veo-custom-select-dropdown .veo-custom-select-option { min-height: 42px; padding-top: 9px !important; padding-bottom: 9px !important; }
html body.veo-generation-body .veo-custom-select-dropdown::-webkit-scrollbar { width: 12px; }
html body.veo-generation-body .veo-custom-select-dropdown::-webkit-scrollbar-track {
    margin: 14px 0; background: repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.2) 0 1px, transparent 1px 9px) center / 5px 100% no-repeat !important;
}
html body.veo-generation-body .veo-custom-select-dropdown::-webkit-scrollbar-thumb {
    min-height: 40px; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background-clip: border-box !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 .8 11.2 6 6 11.2.8 6Z' fill='%23f2e8d3' stroke='%230b0a09' stroke-width='1.2'/%3E%3C/svg%3E") center / 10px 10px no-repeat,
        linear-gradient(180deg, rgba(236, 224, 198, 0), #e8dcc2 22%, #e8dcc2 78%, rgba(236, 224, 198, 0)) center / 2px 100% no-repeat !important;
}
html body.veo-generation-body .veo-custom-select.vf-dd-up .veo-custom-select-dropdown { top: auto !important; bottom: calc(100% + 6px) !important; transform-origin: bottom center; }

/* ==========================================================================
   РАМКА РОВНО ПО СНИМКУ (пропорции настоящего файла)
   ========================================================================== */
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper.vf-fit:not(.vf-nano-result-grid-wrap) {
    width: min(calc(var(--vf-s) * var(--vf-k, 1)), calc(var(--vf-hmax) * var(--vf-r, 1))) !important;
    max-width: 100% !important; min-width: 0 !important; height: auto !important; max-height: none !important; aspect-ratio: var(--vf-ar) !important;
}
html body.vf-zoom-fast.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #veoChatMessagesDesktop .veo-chat-message--assistant .veo-video-wrapper.vf-fit:not(.vf-nano-result-grid-wrap) {
    width: min(calc(var(--vf-s) * var(--vf-k, 1) * var(--vf-z, 1)), calc(var(--vf-hmax) * var(--vf-r, 1) * var(--vf-z, 1))) !important;
}
html body.veo-generation-body .veo-video-wrapper.vf-fit img.veo-chat-result-img, html body.veo-generation-body .veo-video-wrapper.vf-fit video { object-fit: cover !important; background: transparent !important; }

/* ==========================================================================
   НЕСКОЛЬКО РЕЗУЛЬТАТОВ (сетка) и «Файл недоступен» — в стиле обсерватории
   ========================================================================== */
html body.veo-generation-body .veo-video-wrapper.vf-nano-result-grid-wrap {
    padding: 8px !important; border-radius: 22px !important; box-sizing: border-box; height: auto !important; aspect-ratio: auto !important;
    background: radial-gradient(120% 80% at 50% 0%, rgba(247, 239, 222, 0.05), transparent 60%), linear-gradient(180deg, #15130f, #0b0a09) !important;
    border: 1px solid rgba(236, 224, 198, 0.26) !important;
    box-shadow: inset 0 0 0 4px rgba(5, 5, 4, 0.55), inset 0 0 0 5px rgba(236, 224, 198, 0.05), 0 16px 40px rgba(0, 0, 0, 0.5) !important;
}
html body.veo-generation-body .vf-nano-result-grid { gap: 6px !important; }
html body.veo-generation-body .vf-nano-result-tile {
    border-radius: 14px !important; overflow: hidden; border: 1px solid rgba(236, 224, 198, 0.16) !important; background: #0b0b0a !important;
    transition: border-color 0.2s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1), box-shadow 0.25s !important;
}
html body.veo-generation-body .vf-nano-result-tile:not(.vf-nano-result-tile-failed):hover { border-color: rgba(242, 232, 211, 0.7) !important; transform: scale(1.015); box-shadow: 0 10px 26px rgba(0, 0, 0, 0.5), 0 0 18px rgba(236, 224, 198, 0.14); z-index: 1; }
html body.veo-generation-body .vf-nano-result-tile-failed {
    background: repeating-linear-gradient(135deg, rgba(236, 224, 198, 0.025) 0 6px, transparent 6px 12px), radial-gradient(80% 70% at 50% 40%, #17150f, #0b0a09) !important;
    border: 1px dashed rgba(236, 224, 198, 0.24) !important;
}
html body.veo-generation-body .vf-nano-result-tile-failed-visual { display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 8px; height: 100%; color: rgba(236, 224, 198, 0.62) !important; }
html body.veo-generation-body .vf-nano-result-tile-failed-icon { width: 30px !important; height: 30px !important; opacity: 0.8; }
html body.veo-generation-body .vf-nano-result-tile-failed-icon path, html body.veo-generation-body .vf-nano-result-tile-failed-icon rect { stroke-width: 1.3 !important; }
html body.veo-generation-body .vf-nano-result-tile-failed-msg { font: italic 600 0.92rem/1.2 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: rgba(242, 232, 211, 0.7) !important; text-align: center; letter-spacing: 0.01em; }

/* ==========================================================================
   ШАПКА: одна тонкая нить вместо двух, ромб — ровно под меню; «линза» без задержки
   ========================================================================== */
html body .desktop-header::after, html body .desktop-header::before { display: none !important; }
html body .header::after { background: linear-gradient(90deg, transparent 0%, rgba(236, 224, 198, 0.1) 14%, rgba(236, 224, 198, 0.38) 50%, rgba(236, 224, 198, 0.1) 86%, transparent 100%) !important; }
html body .desktop-header .desktop-nav::after {
    content: ""; position: absolute; left: 50%; bottom: -9px; width: 7px; height: 7px; margin-left: -3.5px; transform: rotate(45deg); pointer-events: none;
    background: #0a0a09; border: 1px solid rgba(236, 224, 198, 0.55); box-shadow: 0 0 10px rgba(236, 224, 198, 0.25);
}
html body .vf-nav-lens { transition: transform 0.26s cubic-bezier(.22, 1, .36, 1), width 0.26s cubic-bezier(.22, 1, .36, 1), opacity 0.2s !important; will-change: transform, width; }
html body .vf-nav-lens::after { animation: none !important; display: none; }
html body .desktop-nav .nav-link { transition: color 0.18s ease 0.05s !important; }

/* название чата чуть ниже — не задевает ромб на рамке */
html body.veo-generation-body:not(.mobile-version) .veo-chat-title-bar { padding-top: 9px !important; }

/* ==========================================================================
   ПОЛЕ ВВОДА: ровные отступы, все кнопки одной высоты, значки не залезают на линию
   ========================================================================== */
@media (min-width: 961px) {
    html body.veo-generation-body .veo-prompt-input-zone { padding-top: 6px !important; }
    html body.veo-generation-body .veo-prompt-input { padding-top: 12px !important; padding-bottom: 10px !important; line-height: 1.5 !important; }
    html body.veo-generation-body .veo-prompt-control-bar { padding-top: 12px !important; }
    html body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vfpg-btn, .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn, .vf-tool) {
        width: 40px !important; height: 40px !important; min-width: 40px; min-height: 40px; box-sizing: border-box; border-radius: 50% !important;
    }
    html body.veo-generation-body .veo-prompt-control-bar .vf-frame-btn { height: 40px; }
    html body.veo-generation-body .veo-prompt-control-bar .veo-prompt-tokens { height: 40px !important; box-sizing: border-box; display: inline-flex !important; align-items: center; }
    html body.veo-generation-body .veo-prompt-control-bar .vfpg-btn__badge { top: -3px !important; right: -3px !important; }
    html body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-wrap { position: relative; }
}

/* ==========================================================================
   ОКНА «ВЫБРАТЬ ИЗ ГЕНЕРАЦИЙ / ДОБАВЛЕННЫХ» и приложенные файлы
   ========================================================================== */
html body .veo-gallery-picker-overlay { background: rgba(3, 3, 2, 0.72) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
html body .veo-gallery-picker-modal {
    border-radius: 24px !important; overflow: hidden;
    background: radial-gradient(120% 70% at 50% 0%, rgba(247, 239, 222, 0.06), transparent 60%), linear-gradient(180deg, #14130f, #0a0a08) !important;
    border: 1px solid rgba(236, 224, 198, 0.26) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 6px rgba(5, 5, 4, 0.6), inset 0 0 0 7px rgba(236, 224, 198, 0.06), 0 30px 80px rgba(0, 0, 0, 0.7) !important;
}
html body .veo-gallery-picker-header { padding: 20px 22px 12px !important; border-bottom: 1px solid rgba(236, 224, 198, 0.12) !important; background: transparent !important; }
html body .veo-gallery-picker-modal .veo-generated-title { font: 700 1.45rem/1.15 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; letter-spacing: 0.01em; }
html body .veo-gallery-picker-sub { font: 500 0.8rem/1.4 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.6) !important; }
html body .veo-gallery-picker-modal .veo-generated-close {
    width: 38px !important; height: 38px !important; border-radius: 50% !important; color: #f2e8d3 !important; font-size: 1.2rem !important;
    background: rgba(247, 239, 222, 0.04) !important; border: 1px solid rgba(236, 224, 198, 0.24) !important; transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), background 0.2s !important;
}
html body .veo-gallery-picker-modal .veo-generated-close:hover { transform: rotate(90deg); background: rgba(247, 239, 222, 0.1) !important; }
html body .veo-gallery-picker-body { padding: 16px 22px !important; }
html body .veo-gallery-picker-grid { gap: 10px !important; }
html body .veo-gallery-card {
    border-radius: 16px !important; overflow: hidden; background: #0b0b0a !important; border: 1px solid rgba(236, 224, 198, 0.16) !important; box-shadow: none !important;
    transition: border-color 0.2s, transform 0.35s cubic-bezier(.34, 1.56, .64, 1), box-shadow 0.25s !important;
}
html body .veo-gallery-card:hover { border-color: rgba(242, 232, 211, 0.6) !important; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5) !important; }
html body .veo-gallery-card.selected, html body .veo-gallery-card.is-selected, html body .veo-gallery-card[aria-selected="true"], html body .veo-gallery-card[aria-pressed="true"] {
    border-color: transparent !important; box-shadow: 0 0 0 2px #0a0a09, 0 0 0 3px rgba(242, 232, 211, 0.9), 0 0 22px rgba(236, 224, 198, 0.3) !important;
}
html body .veo-gallery-card--skeleton {
    background: linear-gradient(105deg, transparent 30%, rgba(247, 239, 222, 0.07) 50%, transparent 70%) -150% 0 / 250% 100% no-repeat, radial-gradient(80% 70% at 50% 40%, #17150f, #0b0a09) !important;
    animation: vf-dev-sheen 1.6s linear infinite !important; border: 1px dashed rgba(236, 224, 198, 0.16) !important;
}
html body .veo-gallery-card__check { background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important; color: #1d1a14 !important; border: 0 !important; box-shadow: 0 0 0 2px #0a0a09 !important; }
html body .veo-gallery-card__action, html body .veo-gallery-card__delete, html body .veo-gallery-card__view {
    background: rgba(10, 10, 9, 0.82) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important; color: #f2e8d3 !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
}
html body .veo-gallery-picker-footer { padding: 12px 22px 18px !important; border-top: 1px solid rgba(236, 224, 198, 0.12) !important; background: transparent !important; }
html body .veo-gallery-picker-apply {
    height: 44px; padding: 0 26px !important; border-radius: 999px !important; border: 0 !important; cursor: pointer;
    font: 700 0.82rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.06em; color: #1d1a14 !important;
    background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important;
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.8), 0 0 0 4px rgba(236, 224, 198, 0.3), 0 8px 22px rgba(236, 224, 198, 0.16) !important;
}
html body .veo-gallery-picker-apply:disabled { filter: grayscale(0.4) brightness(0.55); box-shadow: 0 0 0 1px rgba(236, 224, 198, 0.2) !important; cursor: not-allowed; }
html body .veo-generated-empty { font: italic 500 1rem/1.4 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.6) !important; }
/* выпадающее меню «Загрузить / из добавленных / из генераций» */
html body .veo-photo-upload-dropdown {
    border-radius: 18px !important; padding: 6px !important;
    background: radial-gradient(120% 70% at 50% 100%, rgba(247, 239, 222, 0.06), transparent 60%), linear-gradient(180deg, #17150f, #0b0a09) !important;
    border: 1px solid rgba(236, 224, 198, 0.28) !important; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.65), inset 0 0 0 4px rgba(5, 5, 4, 0.5) !important;
}
html body .veo-photo-upload-option { border-radius: 12px !important; font: 600 0.84rem/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.86) !important; background: transparent !important; }
html body .veo-photo-upload-option:hover { background: rgba(236, 224, 198, 0.08) !important; color: #fffaf0 !important; }
/* приложенные к промпту фото */
html body .veo-chat-attachment-preview {
    border-radius: 14px !important; overflow: hidden; border: 1px solid rgba(236, 224, 198, 0.3) !important; background: #0b0b0a !important;
    box-shadow: inset 0 0 0 2px rgba(5, 5, 4, 0.6), 0 8px 20px rgba(0, 0, 0, 0.45) !important;
}
html body .veo-chat-attachment-preview:hover { border-color: rgba(242, 232, 211, 0.7) !important; }
html body .veo-chat-attachment-remove {
    width: 22px !important; height: 22px !important; border-radius: 50% !important; display: grid !important; place-items: center;
    background: #0b0a09 !important; color: #f2e8d3 !important; border: 1px solid rgba(236, 224, 198, 0.45) !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5) !important;
}
html body .veo-chat-attachment-remove:hover { border-color: rgba(242, 232, 211, 0.85) !important; background: #1a1712 !important; }
html body.veo-generation-body .veo-chat-message .veo-chat-message-bubble:has(.vf-err-on) { width: min(560px, 100%) !important; max-width: min(560px, 100%) !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
html body.veo-generation-body .veo-chat-message .veo-chat-message-bubble .veo-chat-status--error.vf-err-on,
html body.veo-generation-body .veo-chat-message .veo-chat-status--error.vf-err-on::before,
html body.veo-generation-body .veo-chat-message .veo-chat-status--error.vf-err-on::after { background: none !important; border: 0 !important; box-shadow: none !important; }
html body.veo-generation-body .veo-chat-message .veo-chat-status--error.vf-err-on::before, html body.veo-generation-body .veo-chat-message .veo-chat-status--error.vf-err-on::after { display: none !important; }
html body.veo-generation-body .vf-err { width: 100%; }
html body .veo-gallery-picker-modal .veo-generated-close { font-size: 0 !important; display: grid !important; place-items: center; }
html body .veo-gallery-picker-modal .veo-generated-close::before { width: 14px !important; height: 14px !important; }
html body .veo-gallery-card__media { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; }
html body .veo-gallery-card__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block; }
html body .veo-gallery-card { position: relative; }
html body .veo-gallery-card.veo-gallery-card--selected { border-color: transparent !important; box-shadow: 0 0 0 2px #0a0a09, 0 0 0 3px rgba(242, 232, 211, 0.95), 0 0 24px rgba(236, 224, 198, 0.32) !important; }
html body .veo-gallery-card.veo-gallery-card--selected .veo-gallery-card__check { background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important; color: #1d1a14 !important; }
html body .veo-gallery-card:not(.veo-gallery-card--selected) .veo-gallery-card__check { background: rgba(10, 10, 9, 0.82) !important; color: rgba(242, 232, 211, 0.75) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important; }
/* подсказка «перетащите превью» — тихая строка, без серой плашки */
html body .vf-nano-ref-reorder-tip { background: none !important; border: 0 !important; box-shadow: none !important; padding: 2px 4px 6px !important;
    font: italic 500 0.84rem/1.35 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.62) !important; }
html body .vf-nano-ref-reorder-tip__glow { display: none !important; }
html body .vf-nano-ref-reorder-tip__icon { color: rgba(236, 224, 198, 0.7) !important; }
/* прокрутка ленты: снимки не держат отдельные слои видеокарты постоянно — только пока их наклоняют мышью */
@media (hover: hover) {
    html body.veo-generation-body .veo-video-wrapper:not(.vf-tilting) { will-change: auto !important; }
}
html body.veo-generation-body #veoChatMessagesDesktop { overscroll-behavior: contain; }
/* сетка результатов: 2 и 4 снимка — квадрат 2×2, 3/5/6 — по три в ряд; ширина как у одиночного снимка */
html body.veo-generation-body .veo-chat-message--assistant .veo-video-wrapper.vf-nano-result-grid-wrap { width: min(calc(var(--vf-s) * 1.08 * var(--vf-z, 1)), 100%) !important; max-width: 100% !important; }
html body.veo-generation-body .vf-nano-result-grid-wrap .vf-nano-result-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
html body.veo-generation-body .vf-nano-result-grid-wrap:is([data-vf-nano-tiles="2"], [data-vf-nano-tiles="4"]) .vf-nano-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
html body.veo-generation-body .vf-nano-result-grid .vf-nano-result-tile { aspect-ratio: 1 / 1; width: 100% !important; height: auto !important; }
html body.veo-generation-body .vf-nano-result-grid .vf-nano-result-tile img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
/* поле ввода стоит на месте: без «подпрыгивания» при фокусе (нажатие кнопок, возврат на вкладку)
   и без бесконечной пульсации тени — она же перерисовывала поле на каждом кадре прокрутки */
html body.veo-generation-body .veo-prompt-box:not(.vf-enter),
html body.veo-generation-body .veo-prompt-box:not(.vf-enter):focus-within { animation: none !important; transform: none !important; filter: none !important; }
/* значок нейросети у результата на видео (иконка-маска: Veo, Kling, Seedance…) — тёмный на золотом медальоне */
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon span[style*="mask"],
html body.veo-generation-body:not(.mobile-version) .veo-chat-message--assistant .veo-result-toolbar .veo-toolbar-ai-icon .veo-google-g-icon { background: #1d1a14 !important; background-color: #1d1a14 !important; opacity: 0.85; }

/* ==========================================================================
   ПОЛОСА «ФОРМАТ КАДРА И КАЧЕСТВО» над полем ввода: популярные форматы, все качества, «Ещё»
   ========================================================================== */
.vf-fstrip__row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.vf-fstrip__sep { flex: 0 0 1px; align-self: stretch; min-height: 22px; margin: 2px 6px; background: linear-gradient(180deg, transparent, rgba(236, 224, 198, 0.32), transparent); }
.vf-fstrip .vf-ratio i.is-auto { border-style: dashed; }
.vf-fstrip .vf-ratio--more svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-left: -2px; transition: transform 0.3s cubic-bezier(.22, 1, .36, 1); }
.vf-fstrip .vf-ratio--more.is-open svg { transform: rotate(180deg); }
.vf-fstrip .vf-ratio--q { font-variant-numeric: tabular-nums; letter-spacing: 0.02em; padding-left: 12px; }
.vf-fstrip .vf-ratio.is-locked { opacity: 0.32; cursor: not-allowed; }
.vf-fstrip .vf-ratio__lock { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; margin-left: -2px; opacity: 0.75; }
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-fstrip .vf-fstrip__row { flex-wrap: wrap !important; overflow: visible !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-fstrip .vf-ratios__lbl { display: block !important; }
}
html body.veo-generation-body .vf-ratios.vf-fstrip { display: flex !important; flex-wrap: wrap !important; overflow: visible !important; }
html body.veo-generation-body .vf-fstrip > .vf-ratios__lbl { flex: 0 0 100%; display: block !important; }
html body.veo-generation-body .vf-fstrip > .vf-fstrip__row { flex: 1 1 100%; min-width: 0; }

/* ==========================================================================
   ПОЛЕ ВВОДА: высота меняется плавно, без пересчёта страницы на каждую букву
   ========================================================================== */
html body.vf-smooth-input.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #promptInputDesktop {
    height: var(--vf-ta-h, 72px) !important; min-height: 0 !important; max-height: none !important; overflow-y: hidden !important;
    transition: height 0.16s cubic-bezier(.22, 1, .36, 1) !important; will-change: auto;
}
html body.vf-smooth-input.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #promptInputDesktop.vf-ta-scroll { overflow-y: auto !important; }
.vf-ta-mirror { position: fixed !important; left: -10000px !important; top: 0 !important; height: 0 !important; min-height: 0 !important; max-height: none !important;
    overflow: hidden !important; visibility: hidden !important; pointer-events: none !important; resize: none; border-style: solid; border-color: transparent; contain: layout style; }
/* прокрутка в поле — золотая нить с ромбом */
html body.veo-generation-body #promptInputDesktop { scrollbar-width: auto !important; scrollbar-color: auto !important; }
html body.veo-generation-body #promptInputDesktop::-webkit-scrollbar { width: 12px; }
html body.veo-generation-body #promptInputDesktop::-webkit-scrollbar-track { margin: 8px 0; background: repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.2) 0 1px, transparent 1px 8px) center / 5px 100% no-repeat; }
html body.veo-generation-body #promptInputDesktop::-webkit-scrollbar-thumb {
    min-height: 34px; border: 0; border-radius: 0; box-shadow: none; background-clip: border-box;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 .8 11.2 6 6 11.2.8 6Z' fill='%23f2e8d3' stroke='%230b0a09' stroke-width='1.2'/%3E%3C/svg%3E") center / 9px 9px no-repeat,
        linear-gradient(180deg, rgba(236, 224, 198, 0), #e8dcc2 25%, #e8dcc2 75%, rgba(236, 224, 198, 0)) center / 2px 100% no-repeat;
}
/* счётчик символов */
html body.veo-generation-body #veoPromptCharCount { font: 600 0.7rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.08em !important; font-variant-numeric: tabular-nums !important; color: rgba(236, 224, 198, 0.48) !important; }
/* «Очистить поле» — корзина в медальоне */
html body.veo-generation-body .vf-clear-x {
    width: 32px !important; height: 32px !important; top: 8px !important; right: 10px !important; border-radius: 50% !important; color: rgba(242, 232, 211, 0.82) !important;
    background: radial-gradient(circle at 50% 32%, #211e18, #0b0b0a 74%) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important;
}
html body.veo-generation-body .vf-clear-x svg { width: 15px !important; height: 15px !important; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
html body.veo-generation-body .vf-clear-x:hover { color: #fffaf0 !important; border-color: rgba(242, 232, 211, 0.75) !important; }
/* тост — ровная плашка без лишней звёздочки, по центру поля */
html body .vf-toast::before { content: none !important; display: none !important; }
html body .vf-toast { padding: 7px 18px 7px 7px !important; gap: 12px !important; border-radius: 999px !important; }

/* ==========================================================================
   ИКОНКА «АНИМАЦИЯ В ЧАТЕ» — три искры; при наведении мерцают по очереди, выключено — перечёркнуты
   ========================================================================== */
html body .veo-left-sidebar .vf-ico--spark :is(.s1, .s2, .s3) { fill: rgba(242, 232, 211, 0.14); transform-box: fill-box !important; transform-origin: center !important; }
html body .veo-left-icon-btn:hover .vf-ico--spark .s1 { animation: vf-spark-tw 1.2s ease-in-out infinite; }
html body .veo-left-icon-btn:hover .vf-ico--spark .s2 { animation: vf-spark-tw 1.2s ease-in-out 0.3s infinite; }
html body .veo-left-icon-btn:hover .vf-ico--spark .s3 { animation: vf-spark-tw 1.2s ease-in-out 0.6s infinite; }
@keyframes vf-spark-tw { 50% { transform: scale(0.72) rotate(20deg); fill: rgba(255, 250, 240, 0.55); } }
html body .veo-left-icon-btn[aria-pressed="true"] .vf-ico--spark :is(.s1, .s2, .s3) { opacity: 0.38; animation: none !important; }

/* ==========================================================================
   ГАЛЕРЕЯ: галочка у выбранного видна (тёмная на золоте), у остальных — пустой кружок
   ========================================================================== */
html body .veo-gallery-card.veo-gallery-card--selected .veo-gallery-card__check svg,
html body .veo-gallery-card.veo-gallery-card--selected .veo-gallery-card__check svg * { stroke: #1d1a14 !important; color: #1d1a14 !important; opacity: 1 !important; }
html body .veo-gallery-card.veo-gallery-card--selected .veo-gallery-card__check svg { stroke-width: 3 !important; }
html body .veo-gallery-card:not(.veo-gallery-card--selected) .veo-gallery-card__check svg { opacity: 0 !important; }

/* ==========================================================================
   ПРИЛОЖЕННЫЕ ФАЙЛЫ: подсказка и перетаскивание
   ========================================================================== */
html body .vf-nano-ref-reorder-tip:not([hidden]) {
    display: flex !important; align-items: center; justify-content: center; gap: 10px; width: auto !important; margin: 4px 16px 2px !important; padding: 0 !important;
    background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
}
html body .vf-nano-ref-reorder-tip::before, html body .vf-nano-ref-reorder-tip::after {
    content: ""; flex: 1 1 auto; max-width: 120px; height: 1px; background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.3));
}
html body .vf-nano-ref-reorder-tip::after { background: linear-gradient(90deg, rgba(236, 224, 198, 0.3), transparent); }
html body .vf-nano-ref-reorder-tip__icon { display: none !important; }
html body .vf-nano-ref-reorder-tip__text { flex: 0 1 auto; font: italic 500 0.86rem/1.35 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.66) !important; text-align: center; }
html body .vf-nano-ref-reorder-tip__text::before { content: "\25C6  "; font-style: normal; font-size: 0.55rem; vertical-align: 1px; color: rgba(236, 224, 198, 0.7); }
html body .vf-attachment-reorder-enabled .veo-chat-attachment-preview { cursor: grab; touch-action: none; }
html body .vf-attachment-reorder-item--dragging { cursor: grabbing !important; box-shadow: 0 20px 44px rgba(0, 0, 0, 0.65), 0 0 0 2px rgba(242, 232, 211, 0.9), 0 0 26px rgba(236, 224, 198, 0.3) !important; }
html body .vf-attachment-reordering .veo-chat-attachment-preview:not(.vf-attachment-reorder-item--dragging) { opacity: 0.82; }
html body .veo-chat-attachment-hover {
    background: linear-gradient(180deg, rgba(5, 5, 4, 0.2), rgba(5, 5, 4, 0.72)) !important; color: #f5eddc !important;
    font: 700 0.62rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.16em !important; text-transform: uppercase; align-items: flex-end !important; padding-bottom: 10px !important;
}

/* ==========================================================================
   РЕДАКТОР ФОТО — кадр, поворот, свет и цвет; в стиле обсерватории, лёгкий (без размытия фона)
   ========================================================================== */
html body .veo-attachment-preview-overlay { background: rgba(4, 4, 3, 0.94) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
html body .veo-attachment-preview-overlay .veo-attachment-crop-layout { gap: 22px !important; padding: 28px !important; box-sizing: border-box; }
html body .veo-attachment-crop-area { border-radius: 20px; overflow: hidden; background: repeating-conic-gradient(#0d0c0a 0 25%, #111009 0 50%) 0 0 / 22px 22px; border: 1px solid rgba(236, 224, 198, 0.14); }
html body .veo-attachment-crop-sidebar {
    width: 320px !important; max-height: calc(calc(100vh / var(--vf-z, 1)) - 56px); overflow-y: auto; box-sizing: border-box; padding: 20px 18px 18px !important; border-radius: 22px !important;
    background: radial-gradient(120% 60% at 0% 0%, rgba(247, 239, 222, 0.06), transparent 60%), linear-gradient(180deg, #14120e, #0a0a08) !important;
    border: 1px solid rgba(236, 224, 198, 0.28) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 6px rgba(5, 5, 4, 0.5), inset 0 0 0 7px rgba(236, 224, 198, 0.05), 0 26px 70px rgba(0, 0, 0, 0.7) !important;
    scrollbar-width: thin; scrollbar-color: rgba(236, 224, 198, 0.3) transparent;
}
html body .veo-attachment-crop-title { font: 700 1.45rem/1.1 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; margin: 0 0 4px !important; }
html body .veo-attachment-crop-desc { font: 400 0.8rem/1.45 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.55) !important; margin: 0 0 6px !important; }
.vf-ed__lbl { margin: 16px 0 8px; font: 700 0.62rem/1 "Inter", sans-serif; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(236, 224, 198, 0.6); }
.vf-ed__lbl::before { content: "\25C6  "; font-size: 0.5rem; vertical-align: 1px; }
html body .veo-attachment-crop-ratios { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 6px !important; }
html body .veo-attachment-crop-ratio {
    height: 58px !important; padding: 0 !important; margin: 0 !important; border-radius: 13px !important; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    background: rgba(247, 239, 222, 0.025) !important; border: 1px solid rgba(236, 224, 198, 0.14) !important; color: rgba(245, 237, 220, 0.82) !important;
    font: 700 0.72rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; transition: border-color 0.2s, background 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body .veo-attachment-crop-ratio i { display: block; box-sizing: border-box; border: 1.5px solid currentColor; border-radius: 3px; opacity: 0.85; }
html body .veo-attachment-crop-ratio i.is-free { border-style: dashed; }
html body .veo-attachment-crop-ratio:hover { border-color: rgba(236, 224, 198, 0.45) !important; color: #fffaf0 !important; transform: translateY(-1px); }
html body .veo-attachment-crop-ratio.is-on, html body .veo-attachment-crop-ratio.active, html body .veo-attachment-crop-ratio[aria-pressed="true"] {
    color: #1d1a14 !important; border-color: transparent !important; background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important;
}
.vf-ed__tools { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.vf-ed__tools:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vf-ed__tb {
    height: 58px; padding: 0 2px; border-radius: 13px; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    background: rgba(247, 239, 222, 0.025); border: 1px solid rgba(236, 224, 198, 0.14); color: rgba(245, 237, 220, 0.85);
    font: 600 0.62rem/1.1 "Inter", sans-serif; letter-spacing: 0.02em; text-align: center; transition: border-color 0.2s, background 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1);
}
.vf-ed__tb svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.vf-ed__tb:hover { border-color: rgba(236, 224, 198, 0.45); color: #fffaf0; background: rgba(247, 239, 222, 0.06); transform: translateY(-1px); }
.vf-ed__tb.is-tap svg { animation: vf-ed-tap 0.4s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes vf-ed-tap { 40% { transform: scale(0.82); } }
.vf-ed__sl { display: block; margin: 10px 0 2px; }
.vf-ed__sl-h { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 4px; }
.vf-ed__sl-h b { font: 600 0.78rem/1 "Inter", sans-serif; color: rgba(245, 237, 220, 0.82); }
.vf-ed__sl-h em { font: 700 0.72rem/1 "Inter", sans-serif; font-style: normal; font-variant-numeric: tabular-nums; color: rgba(236, 224, 198, 0.7); }
.vf-ed__sl input { width: 100%; height: 22px; margin: 0; padding: 0; background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer; }
.vf-ed__sl input:focus { outline: none; }
.vf-ed__sl input::-webkit-slider-runnable-track {
    height: 3px; border-radius: 3px;
    background: linear-gradient(90deg, transparent var(--a, 0%), #e8dcc2 var(--a, 0%), #e8dcc2 var(--z, 0%), transparent var(--z, 0%)), rgba(236, 224, 198, 0.16);
}
.vf-ed__sl input::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 16px; height: 16px; margin-top: -6.5px; border-radius: 50%; border: 0;
    background: radial-gradient(circle at 50% 32%, #ffffff, #efe4cc 50%, #b9a67e); box-shadow: 0 0 0 3px #0b0a09, 0 0 0 4px rgba(236, 224, 198, 0.5);
}
.vf-ed__sl input::-moz-range-track { height: 3px; border-radius: 3px; background: rgba(236, 224, 198, 0.16); }
.vf-ed__sl input::-moz-range-thumb { width: 16px; height: 16px; border: 0; border-radius: 50%; background: #efe4cc; box-shadow: 0 0 0 3px #0b0a09, 0 0 0 4px rgba(236, 224, 198, 0.5); }
.vf-ed__reset { margin: 14px 0 4px; display: inline-flex; align-items: center; gap: 7px; padding: 6px 2px; border: 0; background: none; cursor: pointer;
    font: 600 0.76rem/1 "Inter", sans-serif; color: rgba(236, 224, 198, 0.7); }
.vf-ed__reset svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.vf-ed__reset:hover { color: #fffaf0; }
html body .veo-attachment-crop-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px !important; margin-top: 12px !important; padding-top: 14px; border-top: 1px solid rgba(236, 224, 198, 0.12); }
html body .veo-attachment-crop-apply {
    order: 2; height: 46px !important; border-radius: 999px !important; border: 0 !important; color: #1d1a14 !important; font: 700 0.84rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; letter-spacing: 0.04em;
    background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important; box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.8), 0 0 0 4px rgba(236, 224, 198, 0.3) !important;
}
html body .veo-attachment-crop-cancel {
    order: 1; height: 46px !important; border-radius: 999px !important; color: #f2e8d3 !important; font: 600 0.84rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important;
    background: rgba(247, 239, 222, 0.03) !important; border: 1px solid rgba(236, 224, 198, 0.28) !important;
}
html body .veo-attachment-crop-cancel:hover { border-color: rgba(242, 232, 211, 0.65) !important; }
html body .veo-attachment-preview-overlay-close {
    width: 40px !important; height: 40px !important; border-radius: 50% !important; color: #f2e8d3 !important;
    background: rgba(10, 10, 9, 0.9) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important; transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body .veo-attachment-preview-overlay-close:hover { transform: rotate(90deg); }
/* рамка кадрирования — тонкое золото, ручки-ромбы, затемнение вокруг */
html body .veo-attachment-preview-overlay .cropper-modal { background: #050504 !important; opacity: 0.62 !important; }
html body .veo-attachment-preview-overlay .cropper-view-box { outline: 1px solid rgba(242, 232, 211, 0.9) !important; outline-color: rgba(242, 232, 211, 0.9) !important; }
html body .veo-attachment-preview-overlay .cropper-dashed { border-color: rgba(242, 232, 211, 0.45) !important; }
html body .veo-attachment-preview-overlay .cropper-center::before, html body .veo-attachment-preview-overlay .cropper-center::after { background: rgba(242, 232, 211, 0.8) !important; }
html body .veo-attachment-preview-overlay .cropper-line { background: rgba(242, 232, 211, 0.6) !important; opacity: 0.25 !important; }
html body .veo-attachment-preview-overlay .cropper-point { width: 9px !important; height: 9px !important; background: #f2e8d3 !important; border: 1px solid #0b0a09; opacity: 1 !important; transform: rotate(45deg); }
html body .veo-attachment-preview-overlay .cropper-point.point-se { width: 11px !important; height: 11px !important; }
html body .veo-attachment-preview-overlay :is(.cropper-canvas, .cropper-view-box) img { filter: var(--vf-ed-filter, none); }

/* ==========================================================================
   «ЧАТЫ» — карточка выезжает от левой рейки, как «Фильтр чата»; по высоте содержимого
   ========================================================================== */
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel {
    display: flex !important; flex-direction: column !important;
    left: 64px !important; top: 62px !important; bottom: auto !important; height: auto !important; max-height: calc(calc(100vh / var(--vf-z, 1)) - 80px) !important;
    width: 360px !important; max-width: min(360px, calc(calc(100vw / var(--vf-z, 1)) - 80px)) !important; padding: 0 !important; overflow: hidden !important;
    border-radius: 22px !important; border: 1px solid rgba(236, 224, 198, 0.28) !important;
    background: radial-gradient(120% 50% at 0% 0%, rgba(247, 239, 222, 0.06), transparent 60%), linear-gradient(180deg, #14120e, #0a0a08) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), inset 0 0 0 6px rgba(5, 5, 4, 0.5), inset 0 0 0 7px rgba(236, 224, 198, 0.05), 0 26px 70px rgba(0, 0, 0, 0.7) !important;
    transform-origin: 0 0; animation: none !important;
    transition: opacity 0.22s ease, transform 0.32s cubic-bezier(.22, 1, .36, 1), visibility 0s linear 0s !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel[aria-hidden="true"] {
    visibility: hidden !important; opacity: 0 !important; transform: translateX(-14px) scale(0.985) !important; pointer-events: none !important;
    transition: opacity 0.2s ease, transform 0.28s cubic-bezier(.22, 1, .36, 1), visibility 0s linear 0.28s !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel[aria-hidden="false"] { visibility: visible !important; opacity: 1 !important; transform: none !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-backdrop[aria-hidden="false"] { top: 54px !important; background: rgba(3, 3, 2, 0.3) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-header { flex: 0 0 auto; display: flex !important; align-items: center; gap: 12px; padding: 16px 18px 10px !important; border-bottom: 0 !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-header :is(h1, h2, h3, .veo-chats-panel-title) { flex: 1; text-align: left !important; font-size: 1.45rem !important; margin: 0 !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-back { order: 2; width: 34px !important; height: 34px !important; display: grid !important; place-items: center; transition: transform 0.3s cubic-bezier(.34, 1.56, .64, 1), border-color 0.2s !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-back:hover { transform: translateX(-2px); border-color: rgba(242, 232, 211, 0.65) !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-search { flex: 0 0 auto; padding: 4px 18px 8px !important; position: relative; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-search-input { height: 40px !important; font-size: 0.86rem !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-list { flex: 1 1 auto !important; min-height: 0 !important; overflow-y: auto !important; padding: 2px 12px 12px !important;
    scrollbar-width: thin; scrollbar-color: rgba(236, 224, 198, 0.3) transparent; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-item {
    position: relative; padding: 11px 12px 11px 16px !important; margin-bottom: 6px !important; border-radius: 14px !important;
}
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-item--active::before {
    content: ""; position: absolute; left: -1px; top: 12px; bottom: 12px; width: 3px; border-radius: 0 3px 3px 0;
    background: linear-gradient(180deg, #fffaf0, #cbb994); box-shadow: 0 0 10px rgba(255, 246, 224, 0.45);
}
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-item-title { font-size: 0.92rem !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body.veo-generation-body:not(.mobile-version) :is(.veo-chats-panel-item-edit, .veo-chats-panel-item-delete) { width: 30px !important; height: 30px !important; opacity: 0 !important; transform: scale(0.85); transition: opacity 0.18s, transform 0.25s cubic-bezier(.34, 1.56, .64, 1), border-color 0.2s, color 0.2s !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-item:is(:hover, :focus-within, .veo-chats-panel-item--active) :is(.veo-chats-panel-item-edit, .veo-chats-panel-item-delete) { opacity: 1 !important; transform: none; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-footer { flex: 0 0 auto; padding: 12px 18px 16px !important; }
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel-footer button { height: 46px !important; border-radius: 999px !important; }

/* ==========================================================================
   ЛЕНТА ↔ ХОЛСТ — короткое растворение, без «растянутых снимков» страницы
   ========================================================================== */
html body .veo-desktop-layout.vf-view-fade-out { opacity: 0 !important; transition: opacity 0.14s ease !important; }
html body .veo-desktop-layout.vf-view-fade-in { animation: vf-view-in 0.3s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes vf-view-in { from { opacity: 0; } }

/* ==========================================================================
   «ПРОЯВЛЯЕМ СНИМОК» — заметная плашка, а не текст поверх тёмного края
   ========================================================================== */
html body .vf-media-loader-overlay > .vf-eng::after,
html body .veo-video-wrapper.vf-darkroom::after, html body .veo-video-wrapper.vf-filmroom::after {
    left: 50% !important; right: auto !important; translate: -50% 0; width: max-content; max-width: 90%; box-sizing: border-box;
    padding: 7px 15px 8px !important; border-radius: 999px; white-space: nowrap;
    font: italic 600 1.02rem/1 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: #f6ecdd !important; letter-spacing: 0.01em; text-shadow: none !important;
    background: rgba(8, 8, 7, 0.82) !important; border: 1px solid rgba(236, 224, 198, 0.38);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.55), inset 0 0 0 3px rgba(5, 5, 4, 0.5);
}
html body .vf-media-loader-overlay > .vf-eng::after { bottom: 14px !important; animation: vf-cap-pulse 2.4s ease-in-out infinite; }
@keyframes vf-cap-pulse { 50% { border-color: rgba(242, 232, 211, 0.75); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.55), 0 0 18px rgba(236, 224, 198, 0.22), inset 0 0 0 3px rgba(5, 5, 4, 0.5); } }
/* рисунок замер на месте, пока снимок качается — без перо-курсора */
html body .vf-eng.is-frozen .vf-eng__nib { display: none !important; }

/* ==========================================================================
   КНОПКИ «ENTER ОТПРАВЛЯЕТ» и «БЕЗ ПОДТВЕРЖДЕНИЯ»: включено — золотой медальон с точкой
   ========================================================================== */
html body.veo-generation-body :is(#veoEnterSendBtn, #veoAutoSendBtn) { position: relative; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.25s !important; }
html body.veo-generation-body :is(#veoEnterSendBtn, #veoAutoSendBtn)[aria-pressed="false"] { color: rgba(236, 224, 198, 0.5) !important; border-color: rgba(236, 224, 198, 0.16) !important; background: transparent !important; }
html body.veo-generation-body :is(#veoEnterSendBtn, #veoAutoSendBtn)[aria-pressed="true"] {
    color: #1d1a14 !important; border-color: transparent !important; background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994) !important;
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.85), 0 0 0 4px rgba(236, 224, 198, 0.4), 0 0 16px rgba(236, 224, 198, 0.25) !important;
}
html body.veo-generation-body :is(#veoEnterSendBtn, #veoAutoSendBtn)[aria-pressed="true"] :is(svg, svg *, span) { color: #1d1a14 !important; stroke: #1d1a14 !important; }
html body.veo-generation-body :is(#veoEnterSendBtn, #veoAutoSendBtn)[aria-pressed="true"]::after {
    content: ""; position: absolute; right: 1px; top: 1px; width: 8px; height: 8px; border-radius: 50%; background: #fffaf0; box-shadow: 0 0 0 2px #0a0a09, 0 0 8px rgba(255, 246, 224, 0.9);
}
html body.veo-generation-body :is(#veoEnterSendBtn, #veoAutoSendBtn)[aria-pressed="false"]:hover { color: #f2e8d3 !important; border-color: rgba(236, 224, 198, 0.45) !important; }

/* ==========================================================================
   ПРОКРУТКА ВЕЗДЕ — золотая нить с ромбом (меню валюты, списки, окна)
   ========================================================================== */
html body * { scrollbar-width: auto; scrollbar-color: auto; }
html body *::-webkit-scrollbar { width: 12px; height: 12px; background: transparent; }
html body *::-webkit-scrollbar-track { background: transparent; }
html body *::-webkit-scrollbar-track:vertical { margin: 10px 0; background: repeating-linear-gradient(180deg, rgba(236, 224, 198, 0.18) 0 1px, transparent 1px 9px) center / 5px 100% no-repeat; }
html body *::-webkit-scrollbar-thumb {
    min-height: 34px; min-width: 34px; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background-clip: border-box !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 .8 11.2 6 6 11.2.8 6Z' fill='%23f2e8d3' stroke='%230b0a09' stroke-width='1.2'/%3E%3C/svg%3E") center / 9px 9px no-repeat,
        linear-gradient(180deg, rgba(236, 224, 198, 0), #e8dcc2 25%, #e8dcc2 75%, rgba(236, 224, 198, 0)) center / 2px 100% no-repeat !important;
}
html body *::-webkit-scrollbar-thumb:horizontal {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 .8 11.2 6 6 11.2.8 6Z' fill='%23f2e8d3' stroke='%230b0a09' stroke-width='1.2'/%3E%3C/svg%3E") center / 9px 9px no-repeat,
        linear-gradient(90deg, rgba(236, 224, 198, 0), #e8dcc2 25%, #e8dcc2 75%, rgba(236, 224, 198, 0)) center / 100% 2px no-repeat !important;
}
html body *::-webkit-scrollbar-corner, html body *::-webkit-scrollbar-button { display: none; background: transparent; }

/* ==========================================================================
   КАРТОЧКА «НЕЙРОСЕТЬ» в панели справа — медальон с золотым кольцом, ровное имя
   ========================================================================== */
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) {
    min-height: 66px !important; padding: 9px 12px 9px 9px !important; gap: 13px !important; border-radius: 18px !important;
    background: radial-gradient(120% 140% at 0% 0%, rgba(247, 239, 222, 0.07), transparent 60%), linear-gradient(180deg, #17150f, #0c0b09) !important;
    border: 1px solid rgba(236, 224, 198, 0.24) !important; box-shadow: inset 0 0 0 4px rgba(5, 5, 4, 0.45) !important;
    transition: border-color 0.2s, box-shadow 0.25s !important;
}
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger):hover { border-color: rgba(242, 232, 211, 0.55) !important; }
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge {
    width: 46px !important; height: 46px !important; flex: 0 0 46px; border-radius: 50% !important; display: grid !important; place-items: center;
    background: radial-gradient(circle at 50% 30%, #fffaf0, #e8dcc2 55%, #b9a67e) !important; border: 0 !important;
    box-shadow: 0 0 0 3px #0b0a09, 0 0 0 4px rgba(236, 224, 198, 0.42) !important;
}
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge img { width: 24px !important; height: 24px !important; filter: brightness(0) opacity(0.82) !important; }
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge [style*="mask"] { background: #1d1a14 !important; }
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-custom-select-label {
    flex: 1; min-width: 0; font: 700 1rem/1.25 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; letter-spacing: 0.005em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal !important;
}
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-custom-select-chevron {
    width: 28px !important; height: 28px !important; flex: 0 0 28px; padding: 7px; box-sizing: border-box; border-radius: 50%;
    border: 1px solid rgba(236, 224, 198, 0.24); color: rgba(236, 224, 198, 0.75) !important; transition: transform 0.3s cubic-bezier(.22, 1, .36, 1) !important;
}
/* нить с ромбом слева от панели — не наезжает на карточки */
html body.vf-view-chat.veo-generation-body:not(.mobile-version) .veo-right-settings { padding-left: 14px !important; box-sizing: border-box; }

/* ==========================================================================
   КРЕСТИКИ ЗАКРЫТИЯ — ровно по центру кружка, одинаковые везде
   ========================================================================== */
html body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close) {
    display: grid !important; place-items: center !important; padding: 0 !important; font-size: 0 !important; line-height: 0 !important; color: #f2e8d3 !important;
}
html body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close) > svg { display: none !important; }
html body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close)::before {
    content: "" !important; display: block !important; position: static !important; width: 14px !important; height: 14px !important; margin: 0 !important; transform: none !important;
    background: currentColor !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l10 10M12 2 2 12' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / 14px 14px no-repeat !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l10 10M12 2 2 12' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / 14px 14px no-repeat !important;
}
html body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close)::after { content: none !important; display: none !important; }
html body .veo-video-catalog-close {
    width: 38px !important; height: 38px !important; border-radius: 50% !important; background: rgba(247, 239, 222, 0.04) !important; border: 1px solid rgba(236, 224, 198, 0.24) !important;
    transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), background 0.2s !important;
}
html body .veo-video-catalog-close:hover { transform: rotate(90deg); background: rgba(247, 239, 222, 0.1) !important; }

/* ==========================================================================
   «ОТПРАВЛЕНО» ПОД ПРОМПТОМ — плашка как «дата · ID», кнопки — кружки
   ========================================================================== */
html body.veo-generation-body .veo-user-message-footer { display: flex !important; align-items: center; justify-content: flex-end; gap: 6px !important; margin-top: 8px !important; }
html body.veo-generation-body .veo-user-message-timestamp[data-vf-meta] {
    order: -1; display: inline-flex !important; align-items: center; gap: 7px; height: 28px; padding: 0 12px !important; border-radius: 999px; box-sizing: border-box;
    background: linear-gradient(180deg, #17150f, #0d0c0a); border: 1px solid rgba(236, 224, 198, 0.18);
    font: 600 0.74rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(236, 224, 198, 0.75) !important; font-variant-numeric: tabular-nums;
}
html body.veo-generation-body .veo-user-message-timestamp[data-vf-meta]::before {
    content: ""; width: 12px; height: 12px; flex: 0 0 12px; background: rgba(236, 224, 198, 0.7);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 4v8l4 2'/%3E%3Cpath d='M4.5 12A7.5 7.5 0 0 1 12 4.5'/%3E%3Cpath d='M19.5 12a7.5 7.5 0 0 1-15 0'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 4v8l4 2'/%3E%3Cpath d='M4.5 12A7.5 7.5 0 0 1 12 4.5'/%3E%3Cpath d='M19.5 12a7.5 7.5 0 0 1-15 0'/%3E%3C/svg%3E") center / contain no-repeat;
}
html body.veo-generation-body .veo-user-message-timestamp .vf-meta-time { color: #f2e8d3; }
html body.veo-generation-body .veo-user-message-timestamp .vf-meta-dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(236, 224, 198, 0.55); font-size: 0; }
html body.veo-generation-body .veo-user-message-actions { display: inline-flex !important; gap: 6px !important; }
html body.veo-generation-body .veo-user-msg-btn {
    width: 28px !important; height: 28px !important; border-radius: 50% !important; display: grid !important; place-items: center; padding: 0 !important;
    background: linear-gradient(180deg, #17150f, #0d0c0a) !important; border: 1px solid rgba(236, 224, 198, 0.18) !important; color: rgba(236, 224, 198, 0.72) !important;
    transition: border-color 0.2s, color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1) !important;
}
html body.veo-generation-body .veo-user-msg-btn svg { width: 13px !important; height: 13px !important; }
html body.veo-generation-body .veo-user-msg-btn:hover { border-color: rgba(242, 232, 211, 0.65) !important; color: #fffaf0 !important; transform: translateY(-1px); }

/* ==========================================================================
   ПОДСКАЗКИ — спокойное появление, без прыжков (в т.ч. «Подтверждаете списание…»)
   ========================================================================== */
html body.veo-generation-body .veo-tooltip {
    transition: opacity 0.14s ease, visibility 0.14s !important; animation: none !important; filter: none !important;
    border-radius: 10px !important; padding: 8px 12px !important; font: 600 0.78rem/1.35 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important;
    background: linear-gradient(180deg, #17150f, #0b0a09) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important; color: #f5eddc !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.55) !important;
}
html body.veo-generation-body .veo-prompt-send { animation: none !important; }
html body.veo-generation-body .veo-prompt-send:hover { animation: vf-btn-sheen 1.6s cubic-bezier(.45, 0, .2, 1) 1 !important; }

/* ==========================================================================
   ФИЛЬТР ЧАТА: чипы «Формат кадра», «Когда», переключатель «Только с фото»
   ========================================================================== */
.vf-fchips__row { display: flex; flex-wrap: wrap; gap: 6px; }
.vf-fchip {
    height: 32px; padding: 0 12px; border-radius: 999px; cursor: pointer; font: 600 0.76rem/1 "Inter", sans-serif; color: rgba(245, 237, 220, 0.78);
    background: rgba(247, 239, 222, 0.03); border: 1px solid rgba(236, 224, 198, 0.16); transition: border-color 0.2s, background 0.2s, color 0.2s;
}
.vf-fchip:hover { border-color: rgba(236, 224, 198, 0.45); color: #fffaf0; }
.vf-fchip.is-on { color: #1d1a14; border-color: transparent; background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994); }
.vf-fcheck {
    display: flex; align-items: center; gap: 10px; width: 100%; margin: 4px 0 10px; padding: 11px 14px; border-radius: 14px; cursor: pointer; text-align: left;
    font: 600 0.82rem/1.3 "Inter", sans-serif; color: rgba(245, 237, 220, 0.85); background: rgba(247, 239, 222, 0.03); border: 1px solid rgba(236, 224, 198, 0.12);
}
.vf-fcheck i { width: 18px; height: 18px; flex: 0 0 18px; border-radius: 6px; border: 1px solid rgba(236, 224, 198, 0.4); display: grid; place-items: center; transition: background 0.2s, border-color 0.2s; }
.vf-fcheck[aria-pressed="true"] { border-color: rgba(236, 224, 198, 0.4); }
.vf-fcheck[aria-pressed="true"] i { background: linear-gradient(180deg, #fffaf0, #cbb994); border-color: transparent; }
.vf-fcheck[aria-pressed="true"] i::after { content: ""; width: 9px; height: 5px; margin-top: -2px; border-left: 2px solid #1d1a14; border-bottom: 2px solid #1d1a14; transform: rotate(-45deg); }
/* крестик-svg (фильтр и т.п.) — показываем сам значок, ровно по центру */
html body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close):has(> svg) { font-size: inherit !important; }
html body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close):has(> svg)::before { content: none !important; display: none !important; }
html body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close) > svg { display: block !important; width: 15px !important; height: 15px !important; margin: 0 !important; stroke-width: 2 !important; }
/* старые подсказки кнопок поля ввода заменены фирменными (показываются при наведении) */
html body.veo-generation-body .veo-tooltip.vf-tip-off { display: none !important; }
/* перестановка приложенных фото: призрак за курсором, пунктирное место, плавные соседи */
html body .vf-reorder-ghost { border-radius: 14px !important; overflow: hidden; box-shadow: 0 22px 48px rgba(0, 0, 0, 0.7), 0 0 0 2px rgba(242, 232, 211, 0.9), 0 0 26px rgba(236, 224, 198, 0.3) !important; cursor: grabbing; }
html body .vf-reorder-ghost .veo-chat-attachment-hover, html body .vf-reorder-ghost .veo-chat-attachment-remove, html body .vf-reorder-ghost .veo-tooltip { display: none !important; }
html body .veo-chat-attachment-preview.vf-reorder-placeholder { opacity: 1 !important; box-shadow: none !important; border: 1px dashed rgba(236, 224, 198, 0.5) !important; background: rgba(247, 239, 222, 0.04) !important; }
html body .veo-chat-attachment-preview.vf-reorder-placeholder > * { opacity: 0 !important; }
html body .vf-attachment-reordering .veo-chat-attachment-preview:not(.vf-reorder-placeholder) { opacity: 1 !important; }
html body .vf-attachment-reordering .veo-chat-attachment-hover { display: none !important; }
/* приложенное фото не открылось — заглушка в стиле, а не «битая» иконка браузера */
html body .veo-chat-attachment-preview.vf-att-broken img { opacity: 0 !important; }
html body .veo-chat-attachment-preview.vf-att-broken .veo-chat-attachment-preview-inner {
    background: repeating-linear-gradient(135deg, rgba(236, 224, 198, 0.04) 0 6px, transparent 6px 12px), radial-gradient(80% 70% at 50% 40%, #17150f, #0b0a09) !important;
}
html body .veo-chat-attachment-preview.vf-att-broken .veo-chat-attachment-preview-inner::after {
    content: "Фото не загрузилось"; position: absolute; inset: 0; display: grid; place-items: center; padding: 6px; text-align: center;
    font: italic 600 0.74rem/1.2 var(--vf-antiqua, Georgia, serif); color: rgba(236, 224, 198, 0.7);
}

/* ==========================================================================
   b11: карточка ошибки ровно по строке времени · «Скрыть/Раскрыть все» · навигация шапки ·
        прокрутка в выпадающих списках · плашки качества
   ========================================================================== */
/* карточка ошибки начинается там же, где строка даты и ID */
html body.veo-generation-body .veo-chat-message .veo-chat-message-bubble .veo-chat-message-bubble--status.veo-chat-status--error.vf-err-on { padding: 0 !important; margin: 0 !important; }

/* стрелка: раскрыто — вверх (свернуть), всё свёрнуто — вниз (раскрыть) */
html body #hideSettingsBtnDesktop .veo-settings-hide-icon { transform: none !important; transition: transform 0.35s cubic-bezier(.22, 1, .36, 1) !important; }
html body #hideSettingsBtnDesktop.vf-all-collapsed .veo-settings-hide-icon { transform: rotate(180deg) !important; }

/* навигация шапки: иконка ростом с прописную букву, ближе к тексту, всё на одной линии */
html body .desktop-header .desktop-nav .nav-link { gap: 6px !important; align-items: center !important; }
html body .desktop-header .desktop-nav .nav-link-icon { width: 16px !important; height: 16px !important; flex: 0 0 16px !important; }
html body .desktop-header .desktop-nav .nav-link-icon svg { width: 16px !important; height: 16px !important; stroke-width: 1.8 !important; transform-origin: 50% 50% !important; }
html body .desktop-header .desktop-nav .nav-link .nav-link-icon:not(.nav-link-icon-music) svg { transform: none !important; }
html body .desktop-header .desktop-nav .nav-link:not(:hover) .nav-link-icon-music svg { transform: none !important; }
html body .desktop-header .desktop-nav .nav-link:hover .nav-link-icon-home svg { transform: translateY(-1px) scale(1.1) !important; }
html body .desktop-header .desktop-nav .nav-link:hover .nav-link-icon-video svg { transform: translateX(1.5px) scale(1.1) !important; }
html body .desktop-header .desktop-nav .nav-link:hover .nav-link-icon-image svg { transform: rotate(-8deg) scale(1.1) !important; }
html body .desktop-header .desktop-nav .nav-link:hover .nav-link-icon-text svg { transform: translateY(-1px) rotate(-6deg) scale(1.1) !important; }
html body .desktop-header .desktop-nav .nav-link > span:not(.nav-link-icon) { padding-top: 0 !important; line-height: 16px !important; }

/* прокрутка в выпадающих списках — тонкая стрелка часов без делений и ромба, ярче при наведении */
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown),
html body :is(.vf-currency-dropdown, .vf-menu-tz-dropdown) * { scrollbar-width: thin !important; scrollbar-color: rgba(236, 224, 198, 0.32) transparent !important; }
html body.veo-generation-body .veo-custom-select-dropdown::-webkit-scrollbar,
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown)::-webkit-scrollbar,
html body :is(.vf-currency-dropdown, .vf-menu-tz-dropdown) *::-webkit-scrollbar { width: 7px !important; background: transparent !important; }
html body.veo-generation-body .veo-custom-select-dropdown::-webkit-scrollbar-track,
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown)::-webkit-scrollbar-track,
html body :is(.vf-currency-dropdown, .vf-menu-tz-dropdown) *::-webkit-scrollbar-track { margin: 16px 0 !important; background: transparent !important; }
html body.veo-generation-body .veo-custom-select-dropdown::-webkit-scrollbar-thumb,
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown)::-webkit-scrollbar-thumb,
html body :is(.vf-currency-dropdown, .vf-menu-tz-dropdown) *::-webkit-scrollbar-thumb {
    min-height: 36px; border-radius: 4px !important; border: 2px solid transparent !important; box-shadow: none !important;
    background: linear-gradient(180deg, rgba(242, 232, 211, 0.18), rgba(242, 232, 211, 0.42) 50%, rgba(242, 232, 211, 0.18)) padding-box !important;
}
html body.veo-generation-body .veo-custom-select-dropdown::-webkit-scrollbar-thumb:hover,
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown)::-webkit-scrollbar-thumb:hover,
html body :is(.vf-currency-dropdown, .vf-menu-tz-dropdown) *::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #cbb994, #f7efde 50%, #cbb994) padding-box !important; }
html body :is(.veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown)::-webkit-scrollbar-button,
html body :is(.vf-currency-dropdown, .vf-menu-tz-dropdown) *::-webkit-scrollbar-button { display: none !important; }

/* плашки качества: жетон с гравировкой + подпись; чем выше качество, тем ярче жетон */
.vf-qchip {
    display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 22px; padding: 0 8px; box-sizing: border-box;
    border-radius: 7px; font: 700 0.74rem/1 "Inter", sans-serif; letter-spacing: 0.08em; font-variant-numeric: tabular-nums;
    color: #f2e8d3; border: 1px solid rgba(236, 224, 198, 0.34);
    background: linear-gradient(180deg, rgba(242, 232, 211, 0.1), rgba(242, 232, 211, 0.02));
    box-shadow: inset 0 1px 0 rgba(255, 250, 240, 0.12);
}
.vf-qchip[data-tier="2"] { border-color: rgba(236, 224, 198, 0.55); background: linear-gradient(180deg, rgba(242, 232, 211, 0.22), rgba(242, 232, 211, 0.06)); }
.vf-qchip[data-tier="3"] { color: #1d1a14; border-color: rgba(255, 250, 240, 0.7); background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994); box-shadow: inset 0 1px 0 #fff, 0 0 12px rgba(242, 232, 211, 0.18); }
html body .vf-qsel .veo-custom-select-label[data-vf-qcap]:not([data-vf-qcap=""]),
html body .vf-qsel .veo-option-text[data-vf-qcap]:not([data-vf-qcap=""]) { display: inline-flex !important; align-items: center; gap: 10px; }
html body .vf-qsel .veo-custom-select-option[data-vf-qcap]:not([data-vf-qcap=""]) { display: flex !important; align-items: center; gap: 10px; }
html body .vf-qsel [data-vf-qcap]:not([data-vf-qcap=""])::after {
    content: attr(data-vf-qcap); font: 500 0.8rem/1 "Inter", sans-serif; letter-spacing: 0.01em; color: rgba(245, 237, 220, 0.55);
}
html body .vf-qsel .veo-custom-select-option.selected [data-vf-qcap]::after,
html body .vf-qsel .veo-custom-select-option.selected[data-vf-qcap]::after { color: rgba(245, 237, 220, 0.82); }
html body .vf-qsel.veo-custom-select-locked .vf-qchip { opacity: 0.85; }

/* цифры везде «прописные» (ровной высоты): у антиквы по умолчанию старинные — 0 маленький, 7 уходит вниз */
html body, html body *, html body *::before, html body *::after { font-feature-settings: "lnum" 1 !important; }
html body .veo-chats-panel-msg-count { font-feature-settings: "lnum" 1, "tnum" 1 !important; }

/* ==========================================================================
   b12: галочки настроек → тумблеры · заголовки секций в две строки с воздухом
   ========================================================================== */
html body.veo-generation-body .veo-settings-section-header,
html body.veo-generation-body .veo-settings-section-header-start { line-height: 1.6 !important; }
html body.veo-generation-body .veo-settings-section-header-start { display: inline-block; }

html body.veo-generation-body .veo-wan-nsfw-label.vf-switch {
    display: flex !important; align-items: center !important; gap: 12px !important; width: 100%; box-sizing: border-box;
    min-height: 46px; padding: 10px 12px 10px 14px; margin: 2px 0 0; cursor: pointer; user-select: none;
    border-radius: 14px; border: 1px solid rgba(236, 224, 198, 0.12);
    background: linear-gradient(180deg, rgba(242, 232, 211, 0.04), rgba(242, 232, 211, 0.01));
    transition: border-color 0.25s ease, background 0.25s ease;
}
html body.veo-generation-body .veo-wan-nsfw-label.vf-switch:hover { border-color: rgba(236, 224, 198, 0.26); background: rgba(242, 232, 211, 0.05); }
/* сам чекбокс прячем, но он остаётся рабочим и доступным с клавиатуры */
html body.veo-generation-body .veo-wan-nsfw-label.vf-switch input[type="checkbox"] {
    position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important; min-width: 0 !important;
    margin: 0 !important; pointer-events: none; clip-path: inset(50%);
}
html body.veo-generation-body .vf-switch__txt {
    flex: 1; min-width: 0; font: 600 0.9rem/1.3 "Inter", sans-serif; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.62); transition: color 0.25s ease;
}
html body.veo-generation-body .vf-switch__txt[data-off]::before { content: attr(data-off); }
html body.veo-generation-body .vf-switch:has(input:checked) .vf-switch__txt { color: #f5eddc; }
html body.veo-generation-body .vf-switch:has(input:checked) .vf-switch__txt[data-on]::before { content: attr(data-on); }
html body.veo-generation-body .vf-switch__track {
    position: relative; flex: 0 0 42px; width: 42px; height: 24px; border-radius: 999px; box-sizing: border-box;
    border: 1px solid rgba(236, 224, 198, 0.3); background: rgba(10, 9, 8, 0.6);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6);
    transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
html body.veo-generation-body .vf-switch__track i {
    position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #d9cdb2, #8c7c5c 75%);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
    transition: transform 0.35s cubic-bezier(.34, 1.4, .64, 1), background 0.3s ease;
}
html body.veo-generation-body .vf-switch:has(input:checked) .vf-switch__track {
    border-color: rgba(255, 250, 240, 0.75);
    background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994);
    box-shadow: inset 0 1px 0 #fff, 0 0 14px rgba(242, 232, 211, 0.2);
}
html body.veo-generation-body .vf-switch:has(input:checked) .vf-switch__track i {
    transform: translateX(18px); background: radial-gradient(circle at 35% 30%, #3a342a, #14120e 75%);
}
html body.veo-generation-body .vf-switch:has(input:focus-visible) .vf-switch__track { outline: 2px solid rgba(242, 232, 211, 0.55); outline-offset: 2px; }
html body.veo-generation-body .vf-switch:has(input:disabled) { opacity: 0.5; cursor: not-allowed; }
/* строки Seedance 1.5 (второй «Режим» и др.) нужны только на странице Seedance — на Wan показывался дубль */
html body:not(.seedance-page) .vf-seedance-15-only { display: none !important; }

/* ==========================================================================
   b13: длительность — шкала с делениями, заводная головка, плашка «5 с», сброс
   ========================================================================== */
html body.veo-generation-body .wan27-duration-wrap.vf-dur {
    display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 10px !important; width: 100%;
    box-sizing: border-box; padding: 8px 8px 8px 12px; border-radius: 14px;
    border: 1px solid rgba(236, 224, 198, 0.12); background: linear-gradient(180deg, rgba(242, 232, 211, 0.04), rgba(242, 232, 211, 0.01));
}
html body.veo-generation-body .vf-dur input[type="range"] {
    -webkit-appearance: none; appearance: none; flex: 1 1 auto !important; min-width: 0 !important; width: auto; height: 30px; margin: 0;
    background: transparent; cursor: pointer; accent-color: initial;
    /* деления: по одному на шаг, от центра головки в начале до центра в конце */
    background-image: repeating-linear-gradient(90deg, rgba(236, 224, 198, 0.34) 0 1px, transparent 1px calc((100% - 1px) / var(--vf-ticks, 10)));
    background-size: calc(100% - 18px + 1px) 5px; background-position: 9px calc(50% + 9px); background-repeat: no-repeat;
}
html body.veo-generation-body .vf-dur.vf-dur--dense input[type="range"] { background-size: calc(100% - 18px + 1px) 3px; }
html body.veo-generation-body .vf-dur input[type="range"]::-webkit-slider-runnable-track {
    height: 4px; border-radius: 4px; border: 0;
    background: linear-gradient(90deg, #cbb994, #f7efde var(--vf-pct, 0%), rgba(236, 224, 198, 0.14) var(--vf-pct, 0%));
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5);
}
html body.veo-generation-body .vf-dur input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 18px; height: 18px; margin-top: -7px; border-radius: 50%;
    border: 1px solid rgba(255, 250, 240, 0.85);
    background: radial-gradient(circle at 50% 50%, #1d1a14 0 2px, transparent 2.5px), radial-gradient(circle at 35% 30%, #fffaf0, #e8dcc2 55%, #a8956c);
    box-shadow: 0 0 0 3px rgba(242, 232, 211, 0.08), 0 2px 6px rgba(0, 0, 0, 0.6), 0 0 12px rgba(242, 232, 211, 0.22);
    transition: transform 0.25s cubic-bezier(.34, 1.56, .64, 1), box-shadow 0.25s ease;
}
html body.veo-generation-body .vf-dur input[type="range"]:hover::-webkit-slider-thumb { transform: scale(1.12); }
html body.veo-generation-body .vf-dur input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.18); box-shadow: 0 0 0 5px rgba(242, 232, 211, 0.12), 0 2px 6px rgba(0, 0, 0, 0.6), 0 0 18px rgba(242, 232, 211, 0.35); }
html body.veo-generation-body .vf-dur input[type="range"]:focus-visible { outline: none; }
html body.veo-generation-body .vf-dur input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px rgba(242, 232, 211, 0.45); }
html body.veo-generation-body .vf-dur input[type="range"]::-moz-range-track { height: 4px; border-radius: 4px; background: rgba(236, 224, 198, 0.14); }
html body.veo-generation-body .vf-dur input[type="range"]::-moz-range-progress { height: 4px; border-radius: 4px; background: linear-gradient(90deg, #cbb994, #f7efde); }
html body.veo-generation-body .vf-dur input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; border: 1px solid #fffaf0; background: radial-gradient(circle at 35% 30%, #fffaf0, #e8dcc2 55%, #a8956c); }

/* плашка значения: «5 с» */
html body.veo-generation-body .vf-dur__val {
    flex: 0 0 auto; display: inline-flex; align-items: baseline; justify-content: center; gap: 3px; height: 34px; min-width: 58px; padding: 0 10px;
    box-sizing: border-box; border-radius: 10px; cursor: text; align-items: center;
    border: 1px solid rgba(236, 224, 198, 0.28); background: rgba(10, 9, 8, 0.55); box-shadow: inset 0 1px 0 rgba(255, 250, 240, 0.06);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
html body.veo-generation-body .vf-dur__val:focus-within { border-color: rgba(242, 232, 211, 0.7); box-shadow: 0 0 0 3px rgba(242, 232, 211, 0.1); }
html body.veo-generation-body .vf-dur__val input[type="number"] {
    width: 2.2ch !important; min-width: 0 !important; padding: 0 !important; margin: 0; border: 0 !important; background: transparent !important; box-shadow: none !important;
    outline: none; text-align: right; color: #f5eddc !important; font: 700 0.98rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1, "tnum" 1 !important;
    -moz-appearance: textfield;
}
html body.veo-generation-body .vf-dur__val input[type="number"]::-webkit-outer-spin-button,
html body.veo-generation-body .vf-dur__val input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
html body.veo-generation-body .vf-dur__unit { font: 600 0.8rem/1 "Inter", sans-serif; color: rgba(245, 237, 220, 0.5); }

/* сброс: круглая кнопка со стрелкой «назад» */
html body.veo-generation-body .vf-dur .wan27-duration-clear {
    flex: 0 0 30px; width: 30px !important; height: 30px !important; padding: 0 !important; display: inline-grid !important; place-items: center;
    border-radius: 50% !important; border: 1px solid rgba(236, 224, 198, 0.2) !important; background: transparent !important;
    color: rgba(245, 237, 220, 0.55) !important; cursor: pointer; transition: color 0.2s ease, border-color 0.2s ease, transform 0.45s cubic-bezier(.34, 1.56, .64, 1);
}
html body.veo-generation-body .vf-dur .wan27-duration-clear svg { width: 15px; height: 15px; display: block; }
html body.veo-generation-body .vf-dur .wan27-duration-clear:hover { color: #f7efde !important; border-color: rgba(236, 224, 198, 0.5) !important; transform: rotate(-60deg); }
html body.veo-generation-body .vf-dur .wan27-duration-clear::before, html body.veo-generation-body .vf-dur .wan27-duration-clear::after { display: none !important; }
html body.veo-generation-body .vf-dur ~ .veo-wan-format-note { margin-top: 7px !important; padding-left: 4px; font-size: 0.78rem !important; color: rgba(245, 237, 220, 0.5) !important; }
@supports (field-sizing: content) {
    html body.veo-generation-body .vf-dur__val input[type="number"] { field-sizing: content; width: auto !important; min-width: 1ch !important; text-align: center; }
}

/* ==========================================================================
   b14: кнопки «приложить» на видео (музыка, видео) — как кнопка фото; счётчики-медальоны
   ========================================================================== */
html:root body.veo-generation-body .veo-prompt-control-bar :is(.vf-music-note-btn__icon, .veo-video-upload-icon) {
    width: 20px !important; height: 20px !important; display: grid !important; place-items: center; margin: 0 !important;
}
html:root body.veo-generation-body .veo-prompt-control-bar :is(.vf-ic-note, .vf-ic-video) {
    width: 20px !important; height: 20px !important; display: block; color: currentColor !important; animation: none !important; filter: none !important;
}
html:root body.veo-generation-body .veo-prompt-control-bar :is(.vf-ic-note, .vf-ic-video) * { animation: none !important; stroke-dasharray: none !important; stroke-dashoffset: 0 !important; opacity: 1; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.vf-music-note-btn, .veo-video-upload-btn) { color: rgba(245, 237, 220, 0.82) !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.vf-music-note-btn, .veo-video-upload-btn):hover { color: #fffaf0 !important; }
/* плюсик в углу значка: при наведении поворачивается */
html:root body.veo-generation-body .veo-prompt-control-bar :is(.vf-ic-note, .vf-ic-video) .vf-plus { transform-box: fill-box; transform-origin: center; transition: transform 0.45s cubic-bezier(.34, 1.56, .64, 1); }
html:root body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn:hover :is(.vf-ic-note, .vf-ic-video) .vf-plus { transform: rotate(90deg); }
/* файл приложен — значок светится, плюсик прячется */
html:root body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-wrap--quota-complete :is(.vf-ic-note, .vf-ic-video) { color: #fffaf0 !important; filter: drop-shadow(0 0 6px rgba(242, 232, 211, 0.45)) !important; }
html:root body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-wrap--quota-complete :is(.vf-ic-note, .vf-ic-video) .vf-plus { opacity: 0; }

/* счётчик: пусто — тёмный медальон с золотой каймой; есть файлы — золотой; всё набрано — золотой с сиянием */
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-counter[data-vf-n] {
    padding: 2px 5px !important; font: 700 9px/1.2 "Inter", sans-serif !important; font-feature-settings: "lnum" 1, "tnum" 1 !important; letter-spacing: 0.02em;
    border: 0 !important;
}
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-counter[data-vf-n="empty"] {
    background: #14120e !important; color: rgba(245, 237, 220, 0.7) !important;
    box-shadow: 0 0 0 2px #0a0a09, inset 0 0 0 1px rgba(236, 224, 198, 0.4) !important;
}
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-counter[data-vf-n="some"] {
    background: var(--vf-cta) !important; color: #1d1a14 !important; box-shadow: 0 0 0 2px #0a0a09 !important;
}
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-counter[data-vf-n="full"] {
    background: var(--vf-cta) !important; color: #1d1a14 !important; box-shadow: 0 0 0 2px #0a0a09, 0 0 10px rgba(242, 232, 211, 0.55) !important;
}
html:root body.veo-generation-body #veoPhotoUploadBtn #veoPhotoUploadCounter[data-vf-n="empty"] { background: #14120e !important; color: rgba(245, 237, 220, 0.7) !important; box-shadow: 0 0 0 2px #0a0a09, inset 0 0 0 1px rgba(236, 224, 198, 0.4) !important; }
html:root body.veo-generation-body #veoPhotoUploadBtn #veoPhotoUploadCounter[data-vf-n="full"] { box-shadow: 0 0 0 2px #0a0a09, 0 0 10px rgba(242, 232, 211, 0.55) !important; }
/* значение у простых ползунков («Количество изображений»): та же плашка, что «5 с» */
html body.veo-generation-body .vf-dur .vf-dur__out {
    flex: 0 0 auto; display: inline-grid !important; place-items: center; min-width: 46px !important; height: 34px; padding: 0 10px; box-sizing: border-box;
    border-radius: 10px; border: 1px solid rgba(236, 224, 198, 0.28); background: rgba(10, 9, 8, 0.55); box-shadow: inset 0 1px 0 rgba(255, 250, 240, 0.06);
    color: #f5eddc !important; font: 700 0.98rem/1 "Inter", sans-serif !important; font-feature-settings: "lnum" 1, "tnum" 1 !important; text-align: center !important;
}

/* ==========================================================================
   b15: подсказки «?» у настроек — тёмная карточка с золотой каймой, варианты заголовками
   ========================================================================== */
html body .veo-help-tooltip-floating {
    background: radial-gradient(120% 80% at 50% 0%, rgba(247, 239, 222, 0.07), transparent 60%), linear-gradient(180deg, #17150f, #0b0a08) !important;
    border: 1px solid rgba(236, 224, 198, 0.3) !important; border-radius: 14px !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), 0 18px 44px rgba(0, 0, 0, 0.65), 0 0 0 4px rgba(5, 5, 4, 0.55) !important;
    padding: 13px 16px 12px !important; min-width: 220px !important; max-width: 340px !important;
    font: 400 0.82rem/1.5 "Inter", sans-serif !important; font-feature-settings: "lnum" 1 !important; color: rgba(245, 237, 220, 0.74) !important;
    transform: translateX(6px); transition: opacity 0.2s ease, transform 0.25s cubic-bezier(.22, 1, .36, 1) !important;
}
html body .veo-help-tooltip-floating.veo-help-tooltip-visible { transform: none; }
html body .veo-help-tooltip-floating.vf-help-pop { white-space: normal !important; }
html body .veo-help-tooltip-floating::after {
    right: -6px !important; width: 10px; height: 10px; border: 0 !important; transform: translateY(-50%) rotate(45deg) !important;
    background: #12110c; border-top: 1px solid rgba(236, 224, 198, 0.3) !important; border-right: 1px solid rgba(236, 224, 198, 0.3) !important;
}
html body .vf-help-pop p { margin: 0 0 9px; }
html body .vf-help-pop p:last-child { margin-bottom: 0; }
html body .vf-help-pop .vf-help__opt b {
    display: block; margin: 0 0 2px; font: 700 1rem/1.25 var(--vf-antiqua, "Cormorant Garamond", Georgia, serif); font-feature-settings: "lnum" 1 !important;
    color: #f5eddc; letter-spacing: 0.01em;
}
html body .vf-help-pop .vf-help__opt b::before { content: "\25C6"; display: inline-block; margin-right: 7px; font-size: 0.5rem; vertical-align: 3px; color: rgba(236, 224, 198, 0.7); }
/* «?» рядом с названием настройки */
html body.veo-generation-body .form-section-help {
    width: 20px !important; height: 20px !important; min-width: 20px !important; border-radius: 50% !important; padding: 0 !important;
    display: inline-grid !important; place-items: center; font: 700 0.68rem/1 "Inter", sans-serif !important;
    color: rgba(245, 237, 220, 0.7) !important; background: rgba(247, 239, 222, 0.05) !important; border: 1px solid rgba(236, 224, 198, 0.28) !important;
    box-shadow: none !important; transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
html body.veo-generation-body .form-section-help:hover { color: #1d1a14 !important; background: linear-gradient(180deg, #fffaf0, #e8dcc2) !important; border-color: #fffaf0 !important; }
/* значок Wan: силуэт сливался в «кляксу» — оставляем внутренний рисунок (светлые грани на тёмном) */
html:root body img[src*="wan-logo-mask"],
html:root body.veo-generation-body .veo-custom-select-trigger > .veo-ai-icon-badge img[src*="wan-logo-mask"],
html:root body.veo-generation-body .veo-custom-select-option .veo-ai-icon-badge img[src*="wan-logo-mask"] {
    filter: grayscale(1) contrast(2.3) brightness(0.92) sepia(0.3) !important; opacity: 1 !important;
}
html:root body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge img[src*="wan-logo-mask"] {
    filter: grayscale(1) contrast(2.4) brightness(0.6) sepia(0.35) !important; opacity: 1 !important;
}

/* ==========================================================================
   b16: значки нейросетей крупнее в круге · навигация шапки · окно подтверждения
   ========================================================================== */
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge img,
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge [style*="mask"] {
    width: 31px !important; height: 31px !important; max-width: none !important; object-fit: contain;
}
/* значки «во всю ширину» (Grok, Flux) — чуть меньше, чтобы на глаз были одного размера с остальными */
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge img:is([src*="grok-icon"], [src*="flux-icon"]) { width: 28px !important; height: 28px !important; }
html body.veo-generation-body .veo-custom-select-option :is(.veo-ai-icon-badge, .veo-google-g-badge) img { width: 28px !important; height: 28px !important; }
html body.veo-generation-body .veo-custom-select-option :is(.veo-ai-icon-badge, .veo-google-g-badge) img:is([src*="grok-icon"], [src*="flux-icon"]) { width: 25px !important; height: 25px !important; }
html body.veo-generation-body .veo-custom-select-trigger > :is(.veo-ai-icon-badge, .veo-google-g-badge) img { width: 31px !important; height: 31px !important; }

/* шапка: иконки крупнее (18 px), по-прежнему на одной линии с текстом */
html body .desktop-header .desktop-nav .nav-link { gap: 7px !important; }
html body .desktop-header .desktop-nav .nav-link-icon { width: 18px !important; height: 18px !important; flex: 0 0 18px !important; }
html body .desktop-header .desktop-nav .nav-link-icon svg { width: 18px !important; height: 18px !important; stroke-width: 1.75 !important; }
html body .desktop-header .desktop-nav .nav-link > span:not(.nav-link-icon) { line-height: 18px !important; }

/* окно «Подтвердите отправку»: ракета вместо «?», тумблеры вместо галочек */
html body .veo-confirm-icon.vf-confirm-icon {
    width: 64px !important; height: 64px !important; border-radius: 50% !important; display: grid !important; place-items: center; margin: 0 auto 14px !important;
    font-size: 0 !important; color: transparent !important;
    background: radial-gradient(circle at 50% 30%, #fffaf0, #e8dcc2 55%, #b9a67e) !important; border: 0 !important;
    box-shadow: 0 0 0 4px #0b0a09, 0 0 0 5px rgba(236, 224, 198, 0.4), 0 0 26px rgba(242, 232, 211, 0.25) !important;
}
html body .vf-confirm-rkt { width: 34px; height: 34px; display: block; filter: brightness(0) opacity(0.82); }
html body .veo-confirm-modal .veo-confirm-title { font: 700 1.45rem/1.2 var(--vf-antiqua, Georgia, serif) !important; font-feature-settings: "lnum" 1 !important; color: #f5eddc !important; }

/* маленький тумблер: строка-плашка, подпись слева, переключатель справа */
html body .vf-mini-switch {
    display: flex !important; align-items: center !important; gap: 12px !important; width: 100%; max-width: 340px; box-sizing: border-box;
    margin: 12px auto 0 !important; padding: 9px 10px 9px 14px !important; cursor: pointer; user-select: none;
    border-radius: 12px; border: 1px solid rgba(236, 224, 198, 0.14); background: rgba(242, 232, 211, 0.03);
    transition: border-color 0.2s ease, background 0.2s ease;
}
html body .vf-mini-switch:hover { border-color: rgba(236, 224, 198, 0.3); background: rgba(242, 232, 211, 0.05); }
html body .vf-mini-switch input[type="checkbox"] {
    position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important; margin: 0 !important; pointer-events: none; clip-path: inset(50%);
}
html body .vf-mini-switch__txt { flex: 1; min-width: 0; text-align: left; font: 600 0.86rem/1.3 "Inter", sans-serif !important; color: rgba(245, 237, 220, 0.62) !important; transition: color 0.2s ease; }
html body .vf-mini-switch:has(input:checked) .vf-mini-switch__txt { color: #f5eddc !important; }
html body .vf-mini-switch .vf-switch__track {
    position: relative; flex: 0 0 40px; width: 40px; height: 22px; border-radius: 999px; box-sizing: border-box;
    border: 1px solid rgba(236, 224, 198, 0.3); background: rgba(10, 9, 8, 0.6); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6);
    transition: background 0.3s ease, border-color 0.3s ease;
}
html body .vf-mini-switch .vf-switch__track i {
    position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #d9cdb2, #8c7c5c 75%); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
    transition: transform 0.35s cubic-bezier(.34, 1.4, .64, 1), background 0.3s ease;
}
html body .vf-mini-switch:has(input:checked) .vf-switch__track { border-color: rgba(255, 250, 240, 0.75); background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994); }
html body .vf-mini-switch:has(input:checked) .vf-switch__track i { transform: translateX(18px); background: radial-gradient(circle at 35% 30%, #3a342a, #14120e 75%); }
html body .vf-mini-switch:has(input:focus-visible) .vf-switch__track { outline: 2px solid rgba(242, 232, 211, 0.55); outline-offset: 2px; }
html body .veo-confirm-modal .vf-mini-switch + .vf-mini-switch { margin-top: 8px !important; }
html body .veo-confirm-modal .vf-cd-toggle { margin-bottom: 4px !important; }
html body .veo-confirm-modal .veo-confirm-actions { margin-top: 18px !important; }
/* в окне отсчёта — компактно под кнопками */
html body .veo-pending-send .vf-pend-off { max-width: 300px; margin-top: 14px !important; padding: 7px 9px 7px 13px !important; }
html body .veo-pending-send .vf-pend-off .vf-mini-switch__txt { font-size: 0.8rem !important; }

/* ==========================================================================
   b17: АДАПТАЦИЯ ПОД ЛЮБОЙ ЭКРАН
   Масштаб всего интерфейса задаёт static/js/vf-scale.js (на больших экранах крупнее, на ноутбуках компактнее).
   Здесь — раскладка по «настоящей» ширине раскладки (классы на <html>, их ставит тот же скрипт):
   • vf-eff-compact / vf-eff-tight (1100–1400 / –1300) — компактная шапка;
   • vf-eff-short / vf-eff-low (высота ≤ 800 / ≤ 1100) — ниже поле ввода и приветствие;
   • vf-eff-feed (≥ 1700) — лента ровной колонкой по центру, поле ввода шире;
   • vf-eff-stage (≥ 2100: 3440×1440, 5120×1440…) — «СЦЕНА» по центру и «крылья обсерватории» по бокам.
   ========================================================================== */
:root { --vf-stage: calc(100vw / var(--vf-z, 1)); --vf-wing: 0px; --vf-feed: 100%; }
.vf-wings { display: none; }

/* ---------- узкие ноутбуки: шапка помещается целиком ---------- */
html.vf-eff-compact body .header .desktop-header .vf-brand__sub { display: none !important; }
html.vf-eff-compact body .header .desktop-header .vf-brand__main { font-size: 1.05rem !important; letter-spacing: 0.14em !important; }
html.vf-eff-compact body .desktop-header .desktop-nav .nav-link { padding: 0 11px !important; font-size: 0.84rem !important; gap: 6px !important; }
html.vf-eff-compact body .desktop-header .desktop-nav { gap: 2px !important; }
html.vf-eff-compact body .desktop-header .desktop-header-right { gap: 6px !important; flex-shrink: 0; }
html.vf-eff-tight body .header .desktop-header .header-brand-name { display: none !important; }
html.vf-eff-tight body .desktop-header .desktop-nav .nav-link > span:not(.nav-link-icon) { font-size: 0.8rem !important; }
html.vf-eff-tight body .desktop-header .desktop-nav .nav-link { padding: 0 9px !important; }

/* ---------- низкие экраны: поле ввода ниже, ленте больше места ---------- */
html.vf-eff-short body.veo-generation-body .vf-fstrip .vf-ratios__lbl { display: none !important; }
html.vf-eff-short body.veo-generation-body .vf-fstrip { padding-top: 8px !important; }
html.vf-eff-short body.veo-generation-body #promptInputDesktop { min-height: 48px !important; }
html.vf-eff-short body.veo-generation-body .veo-right-settings .veo-settings-row { margin-bottom: 10px !important; }

/* ---------- приветствие в пустом чате: не уходит под поле ввода ---------- */
html.vf-eff-low body.veo-generation-body #veoWelcomeMessage .veo-welcome-chat-demo { max-height: calc(24vh / var(--vf-z, 1)) !important; width: auto !important; max-width: 100% !important; }
html.vf-eff-low body.veo-generation-body #veoWelcomeMessage .vf-orbit { transform: scale(0.82); margin-bottom: -12px !important; }
html.vf-eff-low body.veo-generation-body #veoWelcomeMessage .veo-welcome-chat-brand { margin-bottom: 8px !important; }
html.vf-eff-short body.veo-generation-body #veoWelcomeMessage .veo-welcome-chat-action { display: none !important; }

/* ---------- лента ровной колонкой по центру ---------- */
html.vf-eff-feed { --vf-feed: 1240px; }
html.vf-eff-feed body.veo-generation-body:not(.mobile-version) #veoChatArea .veo-chat-messages {
    padding-left: max(24px, calc((100% - var(--vf-feed)) / 2)) !important;
    padding-right: max(86px, calc((100% - var(--vf-feed)) / 2)) !important;
}
html.vf-eff-feed body.veo-generation-body.veo-generation-body:not(.mobile-version) :is(.veo-prompt-stack, .veo-prompt-area) { max-width: 920px !important; }

/* ---------- СЦЕНА по центру и крылья обсерватории ---------- */
html.vf-eff-stage { --vf-stage: min(calc(100vw / var(--vf-z, 1)), clamp(2000px, calc(68vw / var(--vf-z, 1)), 2560px)); --vf-wing: max(0px, calc((calc(100vw / var(--vf-z, 1)) - var(--vf-stage)) / 2)); --vf-feed: 1380px; }
/* шапка: логотип, меню и баланс — над рабочей областью, а не по краям монитора */
html.vf-eff-stage body .header .desktop-header { max-width: var(--vf-stage); margin-inline: auto !important; box-sizing: border-box; }
/* рабочая область фото / видео / текста / музыки */
html.vf-eff-stage body .veo-desktop-layout { width: 100% !important; max-width: var(--vf-stage); margin-inline: auto !important; box-sizing: border-box; }
html.vf-eff-stage body.veo-generation-body.veo-generation-body:not(.mobile-version) :is(.veo-prompt-stack, .veo-prompt-area) { max-width: 1040px !important; }
html.vf-eff-stage body .veo-desktop-layout .veo-right-settings { width: 360px !important; min-width: 360px !important; max-width: 360px !important; flex: 0 0 360px !important; }
/* панель чатов выезжает от края сцены, а не от края монитора */
html.vf-eff-stage body.veo-generation-body:not(.mobile-version) .veo-chats-panel { left: calc(var(--vf-wing) + 64px) !important; }
/* приветствие: подсказки-идеи в 1–2 строки, а не столбиком */
html.vf-eff-stage body.veo-generation-body #veoWelcomeMessage { max-width: 1040px !important; }
html.vf-eff-stage body.veo-generation-body #veoWelcomeMessage .vf-ideas { max-width: 1000px !important; width: 100% !important; justify-content: center; }
html.vf-eff-stage body.veo-generation-body #veoWelcomeMessage .veo-welcome-chat-desc { max-width: 760px !important; }
html.vf-eff-stage body.veo-generation-body #veoWelcomeMessage .veo-welcome-chat-action { max-width: 700px !important; }

/* по бокам сцены — только небо и мягкое свечение туманности, без графики и линий: сцена органично «тонет» в космосе */
html.vf-eff-stage .vf-wings { display: block; position: fixed; inset: 54px 0 0 0; z-index: 0; pointer-events: none; }
.vf-wing { position: absolute; top: 0; bottom: 0; width: var(--vf-wing); }
/* свечение гаснет до нуля, не доходя до краёв зоны (closest-side) — никаких полос и резких границ */
.vf-wing--l { left: 0; background:
    radial-gradient(closest-side at 62% 36%, rgba(236, 224, 198, 0.05), transparent),
    radial-gradient(closest-side at 40% 76%, rgba(200, 190, 170, 0.035), transparent); }
.vf-wing--r { right: 0; background:
    radial-gradient(closest-side at 38% 64%, rgba(236, 224, 198, 0.05), transparent),
    radial-gradient(closest-side at 60% 24%, rgba(200, 190, 170, 0.035), transparent); }
html body.mobile-version .vf-wings { display: none !important; }

/* кабинет на компьютере: меню по высоте содержимого и едет вместе со страницей (раньше — пустой столб до низа экрана) */
@media (min-width: 901px) {
    html body.profile-page:not(.mobile-version) .profile-sidebar {
        position: sticky !important; top: 74px !important; left: auto !important; bottom: auto !important;
        align-self: flex-start !important; height: auto !important; min-height: 0 !important; max-height: calc(calc(100vh / var(--vf-z, 1)) - 96px); overflow-y: auto;
    }
    html body.profile-page:not(.mobile-version) .profile-main { margin-left: 0 !important; }
}
/* кабинет: страница прокручивается (общее правило страниц генерации запрещало прокрутку и обрезало всё, что ниже экрана) */
html:has(body.profile-page.veo-generation-body:not(.mobile-version)) { overflow-y: auto !important; overflow-x: hidden !important; height: auto !important; max-height: none !important; min-height: 100% !important; }
html body.profile-page.veo-generation-body:not(.mobile-version) { overflow: visible !important; height: auto !important; max-height: none !important; min-height: calc(100vh / var(--vf-z, 1)); }
html body.profile-page.veo-generation-body:not(.mobile-version) :is(.app-container, main.veo-main) { height: auto !important; max-height: none !important; overflow: visible !important; }
/* от 1700 px раскладки — панель настроек чуть шире: название нейросети и заголовки не обрезаются */
html.vf-eff-feed body .veo-desktop-layout .veo-right-settings { width: 350px !important; min-width: 350px !important; max-width: 350px !important; flex: 0 0 350px !important; }
html.vf-eff-stage body .veo-desktop-layout .veo-right-settings { width: 370px !important; min-width: 370px !important; max-width: 370px !important; flex: 0 0 370px !important; }
/* на сцене колонки иконок и настроек без затемняющей заливки — небо течёт непрерывно, без «столбов» */
html.vf-eff-stage body .veo-desktop-layout :is(.veo-left-sidebar, .veo-right-settings) { background: none !important; box-shadow: none !important; border-color: transparent !important; }
/* широкие и сверхширокие экраны: колонка настроек шире — названия и списки свободнее */
html.vf-eff-feed body .veo-desktop-layout .veo-right-settings { width: 370px !important; min-width: 370px !important; max-width: 370px !important; flex: 0 0 370px !important; }
html.vf-eff-stage body .veo-desktop-layout .veo-right-settings { width: 420px !important; min-width: 420px !important; max-width: 420px !important; flex: 0 0 420px !important; }
html.vf-eff-ultra body .veo-desktop-layout .veo-right-settings { width: 460px !important; min-width: 460px !important; max-width: 460px !important; flex: 0 0 460px !important; }
html.vf-eff-ultra { --vf-feed: 1560px; }
html.vf-eff-ultra body.veo-generation-body.veo-generation-body:not(.mobile-version) :is(.veo-prompt-stack, .veo-prompt-area) { max-width: 1200px !important; }

/* ==========================================================================
   b18: лента у краёв чата · сцена — цельное окно в рамке
   ========================================================================== */
/* лента: результаты у левого края чата, сообщения — у правого (справа место под мини-карту) */
html.vf-eff-feed body.veo-generation-body:not(.mobile-version) #veoChatArea .veo-chat-messages,
html.vf-eff-stage body.veo-generation-body:not(.mobile-version) #veoChatArea .veo-chat-messages {
    padding-left: 64px !important; padding-right: 104px !important;
}

/* на широком экране рабочая область — законченное окно: золотая кайма, скругление, тёмная подложка, тень */
html.vf-eff-stage body .veo-desktop-layout {
    margin-top: 12px !important; margin-bottom: 0 !important;
    height: calc(calc(100vh / var(--vf-z, 1)) - var(--vf-desktop-header-h, 54px) - 28px) !important; max-height: calc(calc(100vh / var(--vf-z, 1)) - var(--vf-desktop-header-h, 54px) - 28px) !important; min-height: 0 !important;
    border: 1px solid rgba(236, 224, 198, 0.16); border-radius: 22px;
    background: radial-gradient(120% 60% at 50% 0%, rgba(247, 239, 222, 0.035), transparent 60%), linear-gradient(180deg, rgba(11, 11, 10, 0.78), rgba(6, 6, 5, 0.84)) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), 0 0 0 5px rgba(5, 5, 4, 0.55), 0 0 0 6px rgba(236, 224, 198, 0.05), 0 34px 90px rgba(0, 0, 0, 0.65) !important;
    position: relative;
}
/* ромб по центру нижней кромки — как застёжка на корпусе часов (сверху уже есть ромб меню шапки) */
html.vf-eff-stage body .veo-desktop-layout::after {
    content: ""; position: absolute; left: 50%; width: 9px; height: 9px; margin-left: -4.5px; transform: rotate(45deg); z-index: 5; pointer-events: none;
    background: #0b0a08; border: 1px solid rgba(236, 224, 198, 0.45); box-shadow: 0 0 10px rgba(242, 232, 211, 0.2);
}
html.vf-eff-stage body .veo-desktop-layout::after { bottom: -5px; }
/* самые мелкие надписи — чуть крупнее, чтобы читались на любом экране */
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-counter { font-size: 10px !important; padding: 2px 6px !important; }
html body .header .desktop-header .vf-brand__sub { font-size: 9px !important; }
html body.veo-generation-body .vf-fstrip .vf-ratios__lbl { font-size: 10.5px !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar .veo-photo-upload-btn .veo-photo-upload-counter[data-vf-n],
html:root body.veo-generation-body #veoPhotoUploadBtn #veoPhotoUploadCounter[data-vf-n] { font-size: 10px !important; padding: 2px 6px !important; }
/* галереи «Генерации» / «Добавленные»: окно растёт по содержимому (раньше тело сжималось до одного ряда карточек) */
html body .veo-generated-overlay .veo-gallery-picker-modal { max-height: min(calc(88vh / var(--vf-z, 1)), 1000px) !important; height: auto !important; }
html body .veo-generated-overlay .veo-gallery-picker-modal .veo-generated-modal-body { flex: 1 1 auto !important; min-height: 160px !important; overflow-y: auto !important; }
/* сообщение с промптом: на широких экранах шире — длинный промпт не тянется лишними строками; не дальше середины чата */
html.vf-eff-feed body.veo-generation-body:not(.mobile-version) .veo-chat-message--user .veo-chat-message-user-content { max-width: min(760px, 50%) !important; }
html.vf-eff-stage body.veo-generation-body:not(.mobile-version) .veo-chat-message--user .veo-chat-message-user-content { max-width: min(900px, 50%) !important; }
html.vf-eff-ultra body.veo-generation-body:not(.mobile-version) .veo-chat-message--user .veo-chat-message-user-content { max-width: min(1040px, 50%) !important; }

/* ==========================================================================
   b19: Seedance — подписи «Версия»/«Режим» над списком · активный пункт меню без «линзы» · приветствие не под полем ввода
   ========================================================================== */
html body.seedance-page.vf-seedance-product-2 .veo-right-settings .veo-settings-row.vf-seedance-20-only { display: block !important; }
/* пока «линза» под меню не встала (страница ещё за заставкой) — активный пункт подсвечен сам, а не тёмный текст на тёмном */
html body .desktop-nav:not(:has(.vf-nav-lens.is-on)) .nav-link.vf-nav-current {
    background: linear-gradient(135deg, #f7efde 0%, #f7f2e8 32%, #e6dcc6 100%) !important; border-radius: 999px !important;
    box-shadow: inset 0 1px 0 #fff, 0 0 14px rgba(242, 232, 211, 0.25) !important;
}
/* приветствие в пустом чате: видео-пример не выше ~четверти экрана на любом мониторе — текст и подсказки над полем ввода */
html body.veo-generation-body:not(.mobile-version) #veoWelcomeMessage .veo-welcome-chat-demo { max-height: min(340px, calc(26vh / var(--vf-z, 1))) !important; width: auto !important; max-width: 100% !important; }
/* Seedance 2.0: строки «Версия»/«Режим» — подпись над списком, как у остальных (раньше подпись сжималась до «Верс/ия») */
html body.seedance-page:not(.vf-seedance-product-15) #seedanceModelRowMode,
html body.seedance-page:not(.vf-seedance-product-15) #seedanceModelRowQuality { display: block !important; }
/* приветствие: служебная подсказка «Справа выберите…» на экранах до 1200 px высоты не нужна — её всё равно закрывало поле ввода */
html.vf-eff-low body.veo-generation-body #veoWelcomeMessage .veo-welcome-chat-action { display: none !important; }
html.vf-eff-low body.veo-generation-body #veoWelcomeMessage .veo-welcome-chat-demo { max-height: calc(22vh / var(--vf-z, 1)) !important; }

/* ==========================================================================
   b20: личный кабинет — ровно и красиво на любом экране, на широких — окно в рамке
   ========================================================================== */
@media (min-width: 901px) {
    /* меню и карточки начинаются на одной линии на всех страницах кабинета */
    html body.profile-page:not(.mobile-version) .profile-layout { align-items: flex-start !important; }
    html body.profile-page:not(.mobile-version) .profile-main { padding-top: 0 !important; margin-top: 0 !important; }
    html body.profile-page:not(.mobile-version) .profile-sidebar { margin-top: 0 !important; }
    html body.profile-page:not(.mobile-version) .profile-cards-grid { margin-top: 0 !important; padding-top: 0 !important; }
    /* карточка магазина — на всю ширину колонки, а не узкий блок сбоку */
    html body.profile-page:not(.mobile-version) .profile-card-shop { max-width: none !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
}
/* широкие экраны: кабинет шире и собран в окно — как рабочая область страниц генерации */
html.vf-eff-stage body.profile-page:not(.mobile-version) .profile-layout {
    max-width: var(--vf-stage) !important; width: 100% !important; box-sizing: border-box;
    margin: 18px auto 24px !important; padding: 26px 26px 30px !important; gap: 26px !important;
    border: 1px solid rgba(236, 224, 198, 0.16); border-radius: 24px;
    background: radial-gradient(120% 50% at 50% 0%, rgba(247, 239, 222, 0.035), transparent 60%), linear-gradient(180deg, rgba(11, 11, 10, 0.78), rgba(6, 6, 5, 0.84));
    box-shadow: inset 0 1px 0 rgba(255, 252, 245, 0.06), 0 0 0 5px rgba(5, 5, 4, 0.55), 0 0 0 6px rgba(236, 224, 198, 0.05), 0 34px 90px rgba(0, 0, 0, 0.65);
    min-height: 0 !important;
}
html.vf-eff-stage body.profile-page:not(.mobile-version) .profile-sidebar { width: 340px !important; min-width: 340px !important; max-width: 340px !important; top: 86px !important; }
html.vf-eff-stage body.profile-page:not(.mobile-version) .profile-main { flex: 1 1 auto !important; min-width: 0 !important; min-height: 0 !important; }
html.vf-eff-stage body.profile-page:not(.mobile-version) .profile-container { padding-top: 0 !important; }

/* ==========================================================================
   b21: значок модели · без точек на кнопках · чаты и фильтр во всю высоту · новая полоса прокрутки
   ========================================================================== */
/* значок нейросети: круг поменьше (38 px), значок внутри 26 px; название в одну строку */
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge {
    width: 38px !important; height: 38px !important; flex: 0 0 38px !important; min-width: 38px !important;
}
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge img { width: 26px !important; height: 26px !important; }
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge img:is([src*="grok-icon"], [src*="flux-icon"]) { width: 23px !important; height: 23px !important; }
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-custom-select-label {
    font-size: 14.5px !important; white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; line-height: 1.25 !important;
}
html body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) { gap: 10px !important; }
html:not(.vf-eff-feed) body.veo-generation-body:not(.mobile-version) :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) { gap: 8px !important; }
html:not(.vf-eff-feed) body.veo-generation-body:not(.mobile-version) :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-custom-select-label { font-size: 13.5px !important; letter-spacing: -0.01em; }

/* кнопки «Enter» и «автоотправка»: без маленьких точек-индикаторов — включённое состояние и так видно по заливке */
html body.veo-generation-body :is(#veoEnterSendBtn, #veoAutoSendBtn)[aria-pressed="true"]::after { display: none !important; content: none !important; }

/* панель чатов — во всю высоту, закрывается крестиком */
html body.veo-generation-body:not(.mobile-version) .veo-chats-panel {
    top: calc(var(--vf-desktop-header-h, 54px) + 8px) !important; bottom: 10px !important; height: auto !important; max-height: none !important;
}
html body.veo-generation-body .veo-chats-panel-back.vf-close-x { display: grid !important; place-items: center; transition: transform 0.35s cubic-bezier(.34, 1.56, .64, 1), background 0.2s ease !important; }
html body.veo-generation-body .veo-chats-panel-back.vf-close-x svg { width: 16px !important; height: 16px !important; }
html body.veo-generation-body .veo-chats-panel-back.vf-close-x:hover { transform: rotate(90deg); background: rgba(247, 239, 222, 0.1) !important; }
html body.veo-generation-body .veo-chats-panel-back.vf-close-x::before, html body.veo-generation-body .veo-chats-panel-back.vf-close-x::after { display: none !important; }

/* фильтр чата — тоже до низа; кнопки «Показать / Сбросить» прижаты книзу, содержимое прокручивается */
html body.veo-generation-body:not(.mobile-version) .veo-video-catalog-panel--filter,
html body.veo-generation-body:not(.mobile-version) #veoVideoCatalogPanel:has(.veo-filter-panel-header) {
    bottom: 10px !important; height: auto !important; max-height: none !important; display: flex !important; flex-direction: column !important;
}

html body.veo-generation-body:not(.mobile-version) #veoVideoCatalogPanel:has(.veo-filter-panel-header) .veo-video-catalog-filters { flex: 1 1 auto !important; min-height: 0 !important; overflow-y: auto !important; }
html body.veo-generation-body:not(.mobile-version) #veoVideoCatalogPanel:has(.veo-filter-panel-header) .veo-video-catalog-filter-actions { margin-top: auto !important; padding-top: 14px; }

/* ==========================================================================
   b22: «Холст» — колонка слева аккуратно; «Мои генерации» и «Лента/Холст» на одной линии внутри рамки
   ========================================================================== */
/* поле ввода в «Холсте» ниже: настройкам больше места; растёт по тексту до ~четверти экрана */
html body.vf-view-studio.veo-generation-body:not(.mobile-version) #promptInputDesktop {
    min-height: 64px !important; height: var(--vf-ta-h, 76px) !important; max-height: min(calc(26vh / var(--vf-z, 1)), 220px) !important;
}
/* между настройками и полем ввода — воздух; настройки мягко растворяются у нижнего края, а не обрезаются */
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings {
    margin-bottom: 12px !important; padding-bottom: 18px !important;
    -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 26px), transparent); mask-image: linear-gradient(180deg, #000 calc(100% - 26px), transparent);
}
/* нижний ряд кнопок поля ввода в узкой колонке: ровные кнопки одного размера, цена справа */
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vfpg-btn, .veo-prompt-enter-btn, .veo-prompt-action, .veo-mic-btn) {
    width: 38px !important; height: 38px !important; min-width: 38px !important; flex: 0 0 38px !important;
}

/* «Мои генерации» слева и «Лента / Холст» справа: одна высота, одна линия, ниже золотых уголков рамки */
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap > .vf-mode-dock {
    position: absolute !important; top: 20px !important; right: 24px !important; left: auto !important; height: auto !important; z-index: 6; margin: 0 !important;
}
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap > .vf-mygen {
    top: 20px !important; left: 24px !important; height: 38px !important; box-sizing: border-box; align-items: center;
}
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap .vf-view-switch--dock { height: 38px !important; box-sizing: border-box; }
/* узкие ноутбуки: название нейросети помещается целиком */
html.vf-eff-compact body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) { gap: 9px !important; padding-right: 8px !important; }
html.vf-eff-compact body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-custom-select-label { font-size: 14px !important; letter-spacing: -0.005em; }
html.vf-eff-compact body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge { width: 34px !important; height: 34px !important; flex-basis: 34px !important; min-width: 34px !important; }
html.vf-eff-compact body.veo-generation-body :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge img { width: 23px !important; height: 23px !important; }

/* «Не показывать отсчёт» в окне отправки: не отдельная плашка, а тихая строка под кнопками — тумблер и подпись по центру */
html body .veo-pending-send .vf-pend-off.vf-mini-switch {
    width: auto !important; max-width: none !important; margin: 16px auto 0 !important; padding: 12px 0 0 !important;
    border: 0 !important; border-top: 1px solid transparent !important; border-radius: 0 !important; background: none !important;
    border-image: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.22), transparent) 1 !important;
    justify-content: center !important; gap: 10px !important; flex-direction: row-reverse; position: relative;
}
html body .veo-pending-send .vf-pend-off.vf-mini-switch:hover { background: none !important; }
html body .veo-pending-send .vf-pend-off .vf-mini-switch__txt {
    flex: 0 0 auto !important; font: 500 0.8rem/1 "Inter", sans-serif !important; letter-spacing: 0.02em; color: rgba(245, 237, 220, 0.5) !important;
}
html body .veo-pending-send .vf-pend-off:hover .vf-mini-switch__txt { color: rgba(245, 237, 220, 0.78) !important; }
html body .veo-pending-send .vf-pend-off .vf-switch__track { flex: 0 0 32px !important; width: 32px !important; height: 18px !important; }
html body .veo-pending-send .vf-pend-off .vf-switch__track i { width: 12px !important; height: 12px !important; top: 2px !important; left: 2px !important; }
html body .veo-pending-send .vf-pend-off:has(input:checked) .vf-switch__track i { transform: translateX(14px) !important; }
/* ромбик посередине разделителя */
html body .veo-pending-send .vf-pend-off::before {
    content: ""; position: absolute; left: 50%; top: -4px; width: 7px; height: 7px; margin-left: -3.5px; transform: rotate(45deg);
    background: #12110d; border: 1px solid rgba(236, 224, 198, 0.4);
}

/* ==========================================================================
   b23: редактор кадра без обрезанных ручек · крестики ровно по центру везде · спокойное наведение на снимок
   ========================================================================== */
/* Cropper берёт размер области вместе с внутренними отступами — из-за них правый и нижний край рамки уходили под обрез.
   Отступы убираем внутрь (margin), область не обрезает ручки кадра. */
html body .veo-attachment-preview-overlay .veo-attachment-crop-area {
    padding: 0 !important; overflow: visible !important; margin: 16px 18px 22px !important; box-sizing: border-box !important;
}
html body .veo-attachment-preview-overlay .veo-attachment-crop-area .cropper-container { overflow: visible !important; }

/* крестики закрытия — один рисунок, точно по центру круга, на всех окнах и вложениях */
html:root body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close,
    .veo-chat-attachment-remove, .veo-video-pick-close, .vfpg__x, .veo-chats-panel-back.vf-close-x, .vf-kling30-board-close, .veo-prompt-video-remove) {
    display: grid !important; place-items: center !important; padding: 0 !important; font-size: 0 !important; line-height: 0 !important; text-indent: 0 !important;
    box-sizing: border-box !important; aspect-ratio: 1 / 1;
}
html:root body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close,
    .veo-chat-attachment-remove, .veo-video-pick-close, .vfpg__x, .veo-chats-panel-back.vf-close-x, .vf-kling30-board-close, .veo-prompt-video-remove) > :not(.veo-tooltip) { display: none !important; }
html:root body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close,
    .veo-chat-attachment-remove, .veo-video-pick-close, .vfpg__x, .veo-chats-panel-back.vf-close-x, .vf-kling30-board-close, .veo-prompt-video-remove)::before {
    content: "" !important; display: block !important; position: static !important; grid-area: 1 / 1; margin: 0 !important; transform: none !important;
    width: 42% !important; height: 42% !important; min-width: 8px; min-height: 8px; max-width: 15px; max-height: 15px;
    background: currentColor !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 3l14 14M17 3 3 17' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 3l14 14M17 3 3 17' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
}
html:root body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close,
    .veo-chat-attachment-remove, .veo-video-pick-close, .vfpg__x, .veo-chats-panel-back.vf-close-x, .vf-kling30-board-close, .veo-prompt-video-remove)::after { content: none !important; display: none !important; }
/* крестик редактора — внутри экрана, в углу панели инструментов, а не поверх её края */
html body .veo-attachment-preview-overlay .veo-attachment-preview-overlay-close { top: 14px !important; right: 14px !important; z-index: 30; }

/* наведение на готовый снимок: без увеличения и свечения — лишь чуть светлее и тонкая золотая кайма */
html body.veo-generation-body .veo-chat-message .veo-video-wrapper,
html body.veo-generation-body .veo-chat-message .veo-video-wrapper :is(img, video) { transition: box-shadow 0.25s ease, filter 0.25s ease, border-color 0.25s ease !important; }
html body.veo-generation-body .veo-chat-message .veo-video-wrapper:hover,
html body.veo-generation-body .veo-chat-message .veo-video-wrapper:hover :is(img, video),
html body.veo-generation-body .veo-chat-message .veo-video-wrapper:hover .veo-video-element { transform: none !important; scale: none !important; }
html body.veo-generation-body .veo-chat-message .veo-video-wrapper:hover { box-shadow: 0 0 0 1px rgba(242, 232, 211, 0.55) !important; filter: none !important; }
html body.veo-generation-body .veo-chat-message .veo-video-wrapper:hover :is(img, video) { filter: brightness(1.04) !important; }
/* крестик — строго квадратный (раньше проценты считались от разных сторон и крестик вытягивался) */
html:root body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close,
    .veo-chat-attachment-remove, .veo-video-pick-close, .vfpg__x, .veo-chats-panel-back.vf-close-x, .vf-kling30-board-close, .veo-prompt-video-remove)::before {
    width: 13px !important; height: 13px !important; min-width: 0 !important; min-height: 0 !important; max-width: none !important; max-height: none !important; aspect-ratio: 1 / 1;
}
html:root body :is(.veo-chat-attachment-remove.veo-chat-attachment-remove, .veo-prompt-video-remove.veo-prompt-video-remove)::before { width: 9px !important; height: 9px !important; }
/* текст внутри кнопки (например «×») в сетке занимал вторую строку и поднимал крестик вверх — центрируем флексом */
html:root body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close,
    .veo-chat-attachment-remove, .veo-video-pick-close, .vfpg__x, .veo-chats-panel-back.vf-close-x, .vf-kling30-board-close, .veo-prompt-video-remove) {
    display: flex !important; align-items: center !important; justify-content: center !important; gap: 0 !important; color: #f2e8d3;
}
/* надёжно: крестик рисуется поверх кнопки и центрируется от её краёв, не завися от содержимого кнопки */
html:root body :is(.veo-video-catalog-close, .veo-chats-panel-back.vf-close-x, .vf-gallery__close, .vfpg__x, .veo-generated-close:not(.veo-gallery-view-close):not(.veo-attachment-preview-overlay-close)) { position: relative !important; }
html:root body :is(.veo-generated-close, .veo-video-catalog-close, .vf-gallery__close, .veo-attachment-preview-overlay-close,
    .veo-chat-attachment-remove, .veo-video-pick-close, .vfpg__x, .veo-chats-panel-back.vf-close-x, .vf-kling30-board-close, .veo-prompt-video-remove)::before {
    position: absolute !important; inset: 0 !important; margin: auto !important;
}

/* ==========================================================================
   b24: поле промпта — «развернуть», ручка высоты, большой редактор
   ========================================================================== */
html body.veo-generation-body .vf-ta-expand {
    position: absolute; top: 46px; right: 10px; z-index: 3; width: 32px; height: 32px; display: grid; place-items: center; padding: 0; cursor: pointer;
    border-radius: 50%; color: rgba(242, 232, 211, 0.75); background: radial-gradient(circle at 50% 32%, #211e18, #0b0b0a 74%);
    border: 1px solid rgba(236, 224, 198, 0.28); transition: color 0.2s, border-color 0.2s, transform 0.3s cubic-bezier(.34, 1.56, .64, 1);
}
html body.veo-generation-body .vf-ta-expand:hover { color: #fffaf0; border-color: rgba(242, 232, 211, 0.75); transform: scale(1.06); }
html body.veo-generation-body .vf-ta-expand svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
/* без текста корзины нет — «развернуть» встаёт на её место */
html body.veo-generation-body .veo-prompt-input-zone:not(:has(.vf-clear-x.is-on)) .vf-ta-expand { top: 8px; }
html body.vf-view-studio.veo-generation-body .vf-ta-expand { display: none; }
/* ручка высоты — тонкая полоска по верхнему краю поля */
html body.veo-generation-body .vf-ta-grip {
    position: absolute; left: 50%; top: -6px; width: 56px; height: 12px; margin-left: -28px; z-index: 4; cursor: ns-resize; touch-action: none;
}
html body.veo-generation-body .vf-ta-grip::before {
    content: ""; position: absolute; left: 14px; right: 14px; top: 5px; height: 2px; border-radius: 2px; background: rgba(236, 224, 198, 0.22); transition: background 0.2s, left 0.2s, right 0.2s;
}
html body.veo-generation-body .vf-ta-grip:hover::before, html body.vf-ta-resizing .vf-ta-grip::before { background: rgba(242, 232, 211, 0.75); left: 6px; right: 6px; }
html body.vf-ta-resizing, html body.vf-ta-resizing * { cursor: ns-resize !important; user-select: none !important; }
html body.vf-ta-resizing #promptInputDesktop { transition: none !important; }
html body.vf-view-studio.veo-generation-body .vf-ta-grip { display: none; }
/* b27: «развернуть» — в правом верхнем углу рамки поля; ручка высоты — заметная «таблетка» по центру верхнего края */
html body.veo-generation-body .veo-prompt-box > .vf-ta-expand { top: 7px; right: 10px; width: 26px; height: 26px; }
html body.veo-generation-body .veo-prompt-box > .vf-ta-expand svg { width: 12px; height: 12px; }
html body.veo-generation-body .veo-prompt-box > .vf-ta-grip { top: -9px; width: 84px; height: 18px; margin-left: -42px; z-index: 5; }
html body.veo-generation-body .veo-prompt-box > .vf-ta-grip::before {
    left: 24px; right: 24px; top: 6px; height: 5px; border-radius: 5px;
    background: linear-gradient(180deg, #2a261e, #12110d); border: 1px solid rgba(236, 224, 198, 0.42);
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.9);
}
html body.veo-generation-body .veo-prompt-box > .vf-ta-grip:hover::before, html body.vf-ta-resizing .veo-prompt-box > .vf-ta-grip::before {
    left: 16px; right: 16px; border-color: rgba(255, 246, 224, 0.9); background: linear-gradient(180deg, #fff7e6, #c9b88f);
    box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.9), 0 0 12px rgba(255, 246, 224, 0.35);
}

/* большой редактор промпта */
.vf-tbig { position: fixed; inset: 0; z-index: 2147482000; display: grid; place-items: center; pointer-events: none; visibility: hidden; }
.vf-tbig.is-open { pointer-events: auto; visibility: visible; }
.vf-tbig__veil { position: absolute; inset: 0; background: rgba(3, 3, 2, 0.72); opacity: 0; transition: opacity 0.25s ease; }
.vf-tbig.is-open .vf-tbig__veil { opacity: 1; }
.vf-tbig__box {
    position: relative; width: min(1100px, calc(92vw / var(--vf-z, 1))); height: min(calc(86vh / var(--vf-z, 1)), 900px); display: flex; flex-direction: column; box-sizing: border-box; padding: 18px 20px 16px; border-radius: 22px;
    background: radial-gradient(120% 60% at 50% 0%, rgba(247, 239, 222, 0.05), transparent 60%), linear-gradient(180deg, #13120e, #0a0a08);
    border: 1px solid rgba(236, 224, 198, 0.26); box-shadow: inset 0 0 0 6px rgba(5, 5, 4, 0.6), inset 0 0 0 7px rgba(236, 224, 198, 0.06), 0 30px 80px rgba(0, 0, 0, 0.7);
    opacity: 0; transform: translateY(14px) scale(0.98); transition: opacity 0.22s ease, transform 0.35s cubic-bezier(.22, 1, .36, 1);
}
.vf-tbig.is-open .vf-tbig__box { opacity: 1; transform: none; }
.vf-tbig__head { display: flex; align-items: center; gap: 14px; padding: 0 2px 12px; border-bottom: 1px solid rgba(236, 224, 198, 0.12); }
.vf-tbig__head b { font: 700 1.35rem/1.1 var(--vf-antiqua, Georgia, serif); color: #f5eddc; }
.vf-tbig__hint { flex: 1; font: 500 0.76rem/1 "Inter", sans-serif; color: rgba(245, 237, 220, 0.45); }
.vf-tbig__head .vfpg__x { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(236, 224, 198, 0.25); background: rgba(247, 239, 222, 0.04); color: #f2e8d3; cursor: pointer; }
.vf-tbig__ta {
    flex: 1; min-height: 0; margin: 14px 0 12px; padding: 16px 18px; box-sizing: border-box; resize: none; outline: none;
    border-radius: 14px; border: 1px solid rgba(236, 224, 198, 0.16); background: rgba(5, 5, 4, 0.55); color: #f5eddc;
    font: 400 1.02rem/1.65 "Inter", sans-serif; font-feature-settings: "lnum" 1;
}
.vf-tbig__ta:focus { border-color: rgba(242, 232, 211, 0.5); }
.vf-tbig__foot { display: flex; align-items: center; justify-content: space-between; }
.vf-tbig__cnt { font: 600 0.78rem/1 "Inter", sans-serif; font-feature-settings: "lnum" 1, "tnum" 1; color: rgba(245, 237, 220, 0.5); }
.vf-tbig__ok { height: 42px; padding: 0 26px; border-radius: 999px; border: 0; cursor: pointer; font: 700 0.86rem/1 "Inter", sans-serif; color: #1d1a14; background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994); }

/* вложения: если не помещаются — ряд листается вбок (колесом тоже); в конце ряда — место под корзину */
html body.veo-generation-body:not(.mobile-version) #desktopAttachments {
    flex-wrap: nowrap !important; overflow-x: auto !important; overflow-y: hidden !important; scroll-behavior: smooth; overscroll-behavior-x: contain;
    padding-bottom: 6px !important; scrollbar-width: thin;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent);
}
html body.veo-generation-body:not(.mobile-version) #desktopAttachments > .veo-chat-attachment-preview { flex: 0 0 auto !important; }
html body.veo-generation-body:not(.mobile-version) #desktopAttachments.vf-att-has-clear { padding-right: 40px !important; scroll-padding-right: 40px; }
/* «убрать все вложения» — только значок корзины в правом верхнем углу ряда */
html body.veo-generation-body .vf-att-clear {
    position: absolute; right: 9px; top: 0; z-index: 4; display: none; place-items: center; width: 24px; height: 24px; padding: 0; cursor: pointer;
    border-radius: 50%; border: 1px solid rgba(236, 224, 198, 0.24); background: rgba(10, 10, 9, 0.85); color: rgba(245, 237, 220, 0.66);
    transition: color 0.2s, border-color 0.2s, background 0.2s;
}
html body.veo-generation-body .vf-att-clear.is-on { display: grid; }
html body.veo-generation-body .vf-att-clear:hover { color: #f6cfc4; border-color: rgba(239, 171, 155, 0.6); background: rgba(60, 20, 14, 0.5); }
html body.veo-generation-body .vf-att-clear svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
html body.mobile-version .vf-att-clear { display: none !important; }
/* строка «дата · время | ID»: «ID» того же роста, что и цифры, на одной линии */
html body .veo-video-block-meta .veo-video-block-id-label { font-size: inherit !important; font-size: 0.86em !important; letter-spacing: 0.06em; line-height: 1 !important; vertical-align: baseline !important; align-self: center; }
html body .veo-video-block-meta :is(.veo-video-block-id-wrap, .veo-video-block-received) { align-items: center !important; }
html body .vf-fstrip .vf-ratio--q { display: inline-flex !important; align-items: center !important; gap: 5px !important; }

/* выбор валюты на компьютере: широкая панель, валюты в два столбца — без длинной прокрутки */
@media (min-width: 900px) {
    html body:not(.mobile-version) .desktop-header .vf-currency-dropdown { width: 560px !important; max-width: min(560px, calc(calc(100vw / var(--vf-z, 1)) - 32px)) !important; min-width: 0 !important; }
    html body:not(.mobile-version) .desktop-header .vf-currency-dropdown .vf-currency-options {
        display: grid !important; grid-template-columns: 1fr 1fr; gap: 6px 8px !important;
    }
    html body:not(.mobile-version) .desktop-header .vf-currency-dropdown .vf-currency-option { margin: 0 !important; min-width: 0; }
    html body:not(.mobile-version) .desktop-header .vf-currency-dropdown .vf-currency-dropdown-header-block { text-align: center; }
    html body:not(.mobile-version) .desktop-header .vf-currency-dropdown .vf-currency-dropdown-desc { max-width: 420px; margin-left: auto !important; margin-right: auto !important; }
}
/* кнопка «6627 ₽ 🇷🇺 ˄» — плотнее, без лишних зазоров */
html body .desktop-header .vf-currency-trigger { gap: 6px !important; padding: 0 10px 0 12px !important; }
html body .desktop-header .vf-currency-trigger .vf-currency-amount { margin: 0 !important; }
html body .desktop-header .vf-currency-trigger .vf-currency-flag { margin: 0 !important; }
html body .desktop-header .vf-currency-trigger .vf-currency-arrow { margin: 0 0 0 -1px !important; }
/* значок нейросети у результата в ленте — крупнее, чтобы тонкие логотипы (Qwen, Wan) не сливались в пятно */
html body.veo-generation-body .veo-toolbar-ai-icon img { width: 28px !important; height: 28px !important; object-fit: contain; }
html body.veo-generation-body .veo-toolbar-ai-icon img:is([src*="qwen-icon"], [src*="wan-logo-mask"], [src*="gemini-icon"]) { width: 30px !important; height: 30px !important; filter: brightness(0) opacity(0.86) !important; }
html body.veo-generation-body .veo-toolbar-ai-icon img:is([src*="grok-icon"], [src*="flux-icon"], [src*="gpt-icon"], [src*="kimi-icon"], [src*="claude-icon"], [src*="deepseek-icon"]) { width: 25px !important; height: 25px !important; }
/* часовой пояс в меню профиля: список открывается ровно по центру под кнопкой */
html body .vf-menu-tz-custom-select > .vf-menu-tz-dropdown { left: 50% !important; right: auto !important; transform: translateX(-50%) !important; min-width: 200px; }

/* крестик редактора фото — внутри панели инструментов, в её правом верхнем углу; прилипает при прокрутке панели */
html body .veo-attachment-preview-overlay .veo-attachment-crop-sidebar > .veo-attachment-preview-overlay-close.vf-ed-x {
    position: sticky !important; top: -7px !important; right: auto !important; left: auto !important; float: right;
    width: 36px !important; height: 36px !important; margin: -19px -15px 0 10px !important; z-index: 5;
}


/* ==========================================================================
   b25: полосы прокрутки
   • длинные ленты (чат, список чатов, галереи, страницы кабинета) — «заводная головка»: бегунок с насечками,
     как коронка часов, в узкой утопленной дорожке;
   • короткие прокрутки (настройки, списки, окна) — тонкая «заводная головка» на волосяной линии.
   ========================================================================== */
@supports selector(::-webkit-scrollbar) {
    html body :is(#veoChatMessagesDesktop, #veoChatsList, .vf-gallery__grid, .veo-gallery-picker-body, .veo-settings-scroll,
        .veo-custom-select-dropdown, .vf-currency-dropdown, .vf-menu-tz-dropdown, .veo-video-catalog-panel, .veo-video-catalog-filters,
        .veo-content-filter-list, .veo-video-pick-modal, .veo-attachment-crop-sidebar, .vf-wan-bbox-editor-body, .vfpg__scroll, .vfpg__idea,
        .vfpg__out, #promptInputDesktop, .vf-tbig textarea, .veo-params-modal-body, .vf-user-menu-dropdown) {
        scrollbar-width: auto !important; scrollbar-color: auto !important;
    }
    html, html body.profile-page, html body:is(.profile-page, .history-page) { scrollbar-width: auto !important; scrollbar-color: auto !important; }

    /* — короткие прокрутки (настройки, списки, окна): тонкая «заводная головка» на волосяной линии — */
    html:root body *::-webkit-scrollbar { width: 10px !important; height: 8px !important; background: transparent !important; }
    html:root body *::-webkit-scrollbar-track { margin: 8px 0 !important; border: 0 !important; box-shadow: none !important;
        background: linear-gradient(90deg, transparent 4.5px, rgba(236, 224, 198, 0.13) 4.5px 5.5px, transparent 5.5px) !important; }
    html:root body *::-webkit-scrollbar-track:horizontal { background: transparent !important; }
    html:root body *::-webkit-scrollbar-button, html:root body *::-webkit-scrollbar-corner { display: none !important; background: transparent !important; }
    html:root body *::-webkit-scrollbar-thumb:vertical {
        min-height: 36px; border: 2.5px solid transparent !important; border-radius: 5px !important; box-shadow: none !important;
        background:
            linear-gradient(180deg, rgba(255, 250, 240, 0.85) 0 1px, transparent 1px calc(100% - 1px), rgba(120, 108, 84, 0.85) calc(100% - 1px)) padding-box,
            repeating-linear-gradient(180deg, rgba(0, 0, 0, 0) 0 2px, rgba(28, 24, 17, 0.42) 2px 3px) 0 3px / 100% calc(100% - 6px) no-repeat padding-box,
            linear-gradient(90deg, #7d7260, #d9cdb2 45%, #efe5cf 55%, #9d9075) padding-box !important;
    }
    html:root body *::-webkit-scrollbar-thumb:vertical:hover,
    html:root body *::-webkit-scrollbar-thumb:vertical:active {
        background:
            linear-gradient(180deg, #fffaf0 0 1px, transparent 1px calc(100% - 1px), rgba(140, 126, 98, 0.9) calc(100% - 1px)) padding-box,
            repeating-linear-gradient(180deg, rgba(0, 0, 0, 0) 0 2px, rgba(28, 24, 17, 0.36) 2px 3px) 0 3px / 100% calc(100% - 6px) no-repeat padding-box,
            linear-gradient(90deg, #8c7f63, #e8dcc2 45%, #fffaf0 55%, #b2a481) padding-box !important;
    }
    /* горизонтальные — тонкая капсула */
    html:root body *::-webkit-scrollbar-thumb:horizontal {
        border: 2px solid transparent !important; border-radius: 6px !important; box-shadow: none !important;
        background: linear-gradient(90deg, rgba(242, 232, 211, 0.18), rgba(242, 232, 211, 0.4), rgba(242, 232, 211, 0.18)) padding-box !important;
    }
    html:root body *::-webkit-scrollbar-thumb:horizontal:hover { background: linear-gradient(90deg, #cdbf9f, #fffaf0, #cdbf9f) padding-box !important; }

    /* — заводная головка: длинные ленты — */
    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar { width: 12px !important; }
    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar-track {
        margin: 10px 0 !important; border-radius: 6px !important;
        background: linear-gradient(90deg, transparent 4px, rgba(236, 224, 198, 0.1) 4px 4.6px, rgba(0, 0, 0, 0.45) 4.6px 7.4px, rgba(236, 224, 198, 0.1) 7.4px 8px, transparent 8px) !important;
    }
    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar-thumb:vertical {
        min-height: 44px; border: 2px solid transparent !important; border-radius: 6px !important; box-shadow: none !important;
        background:
            linear-gradient(180deg, rgba(255, 250, 240, 0.9) 0 1px, transparent 1px calc(100% - 1px), rgba(120, 108, 84, 0.9) calc(100% - 1px)) padding-box,
            repeating-linear-gradient(180deg, rgba(0, 0, 0, 0) 0 2px, rgba(28, 24, 17, 0.5) 2px 3px) 0 4px / 100% calc(100% - 8px) no-repeat padding-box,
            linear-gradient(90deg, #6f6550, #cfc2a4 30%, #f3ead6 50%, #cfc2a4 70%, #6f6550) padding-box !important;
    }
    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar-thumb:vertical:hover,
    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar-thumb:vertical:active {
        background:
            linear-gradient(180deg, #fffaf0 0 1px, transparent 1px calc(100% - 1px), rgba(140, 126, 98, 0.9) calc(100% - 1px)) padding-box,
            repeating-linear-gradient(180deg, rgba(0, 0, 0, 0) 0 2px, rgba(28, 24, 17, 0.42) 2px 3px) 0 4px / 100% calc(100% - 8px) no-repeat padding-box,
            linear-gradient(90deg, #8c7f63, #e8dcc2 30%, #fffaf0 50%, #e8dcc2 70%, #8c7f63) padding-box !important;
    }
}
@supports selector(::-webkit-scrollbar) {
    /* в ленте чата дорожка не доходит до уголка рамки снизу */
    html:root body #veoChatMessagesDesktop::-webkit-scrollbar-track { margin: 10px 0 22px !important; }
}

/* снимки в чате: без наклона и блика за мышкой */
html body.veo-generation-body .veo-chat-message .veo-video-wrapper { transform: none !important; will-change: auto !important; }
html body.veo-generation-body .veo-chat-message .veo-video-wrapper::after { opacity: 0 !important; background: none !important; }

/* окно подтверждения: переключатели автоотправки и отсчёта — только при отправке генерации */
html body .veo-confirm-modal:not(.vf-conf-send) :is(.vf-cd-toggle, .veo-confirm-checkbox) { display: none !important; }
html body .veo-confirm-modal .veo-confirm-checkbox[style*="display: none"] { display: none !important; }
html body .veo-confirm-modal .vf-confirm-icon :is(.vf-confirm-del, .vf-confirm-q) { width: 30px; height: 30px; display: block; color: #1d1a14; }

/* ==========================================================================
   b26: «Холст» — колонка слева: настройки и поле ввода — два чётких блока одной ширины
   ========================================================================== */
@media (min-width: 961px) {
    /* настройки: без «растворения» снизу — чистый край блока, между блоками ровный зазор */
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings {
        -webkit-mask-image: none !important; mask-image: none !important;
        margin-bottom: 0 !important; padding-bottom: 4px !important;
    }
    /* поле ввода той же ширины, что карточки настроек (справа у настроек место под полосу прокрутки) */
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-wrapper { padding-top: 12px !important; padding-right: 16px !important; box-sizing: border-box !important; }
    /* формат кадра — первый ряд, качество — второй */
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-fstrip .vf-fstrip__row { flex-wrap: wrap !important; row-gap: 8px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-fstrip .vf-fstrip__sep {
        flex: 0 0 100% !important; width: 100% !important; height: 1px !important; min-height: 0 !important; margin: 0 !important; border: 0 !important;
        background: linear-gradient(90deg, rgba(236, 224, 198, 0.16), rgba(236, 224, 198, 0.04)) !important; align-self: stretch !important;
    }
    /* нижний ряд — как в «Ленте»: круглые кнопки 40 px с шагом 8 px; второй ряд — цена и «Создать»
       (та же капсула 42 px, что в «Ленте», растянута на остаток ширины) */
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar {
        display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: flex-start !important;
        gap: 10px 8px !important; padding: 10px 12px 12px !important;
    }
    /* первый ряд: все круглые кнопки (вложения, мастерская, Enter, автоотправка, микрофон) — как в «Ленте»;
       второй ряд: цена и «Создать» */
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-left {
        flex: 0 0 auto !important; display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: nowrap !important; order: 0;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right { display: contents !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right > :is(#veoEnterSendBtn, #veoAutoSendBtn, .veo-mic-btn, #veoMicBtnDesktop) { order: 1; margin: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar::after { content: ""; order: 2; flex: 0 0 100%; height: 0; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right > :is(#costDisplayDesktopWrap, .veo-cost-wrap) { order: 3; flex: 0 0 auto !important; margin: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right > .veo-prompt-send-wrap { order: 4; flex: 1 1 auto !important; min-width: 0; margin: 0 !important; display: flex !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vfpg-btn, .veo-prompt-enter-btn, .veo-prompt-action, .veo-mic-btn, #veoEnterSendBtn, #veoAutoSendBtn) {
        width: 40px !important; height: 40px !important; min-width: 40px !important; max-width: 40px !important; flex: 0 0 40px !important;
        padding: 0 !important; margin: 0 !important; transform: none !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) #costDisplayDesktop { height: 42px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-send {
        flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; height: 42px !important; min-height: 42px !important;
        border-radius: 999px !important; margin: 0 !important; font-size: 13.3px !important;
    }
}

/* «Войти» в шапке — в стиле «Купить»: брашированное белое золото, тёмный текст, шлем тёмным силуэтом */
html body .profile-user-avatar.veo-avatar-login {
    padding: 0 16px 0 9px !important; gap: 7px !important; border: 0 !important;
    background:
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.09) 0 1px, transparent 1px 3px),
        linear-gradient(135deg, #fffaf0 0%, #f2e8d3 40%, #dccdaa 75%, #bba980 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), 0 4px 14px rgba(236, 224, 198, 0.2) !important;
}
html body .profile-user-avatar.veo-avatar-login:hover {
    background:
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.12) 0 1px, transparent 1px 3px),
        linear-gradient(135deg, #fffdf6 0%, #f7efde 40%, #e6d8b8 75%, #c9b78f 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 6px 18px rgba(236, 224, 198, 0.3) !important;
}
html body .profile-user-avatar.veo-avatar-login .veo-login-icon img { filter: brightness(0) opacity(0.78) !important; width: 20px !important; height: 20px !important; }
html body .profile-user-avatar.veo-avatar-login .profile-avatar-letter {
    color: #1d1a14 !important; -webkit-text-fill-color: #1d1a14 !important; font-weight: 700 !important; letter-spacing: 0.04em !important;
}

/* «Проявляем снимок» / «Заряжаем плёнку» — аккуратная плашка сверху кадра (не поверх середины снимка),
   на всех этапах: пока качается и пока проявляется */
html body .vf-media-loader-overlay::after,
html body .vf-media-loader-overlay > .vf-eng::after,
html body .veo-video-wrapper.vf-darkroom::after,
html body .veo-video-wrapper.vf-filmroom::after {
    top: 12px !important; bottom: auto !important; left: 50% !important; right: auto !important; translate: -50% 0;
    width: max-content !important; max-width: calc(100% - 24px); white-space: nowrap; box-sizing: border-box;
    padding: 6px 14px 7px !important; border-radius: 999px !important;
    background: rgba(10, 10, 9, 0.72) !important; border: 1px solid rgba(236, 224, 198, 0.3) !important;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    font-size: 0.9rem !important; line-height: 1 !important; text-shadow: none !important;
}

/* «Купить» — жёлтое золото (та же шлифовка, другой металл), чтобы не сливаться с «Войти» из белого золота */
html body .profile-buy-btn,
html body .desktop-header .profile-buy-btn,
html body.chatgpt-page.veo-generation-body .header .buy-balance-group .profile-buy-btn {
    color: #2a1e08 !important; -webkit-text-fill-color: #2a1e08 !important; border: 0 !important;
    background:
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.1) 0 1px, transparent 1px 3px),
        linear-gradient(135deg, #fff3cf 0%, #f0d58f 35%, #d8b25e 70%, #a9843a 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 250, 230, 0.9), 0 4px 16px rgba(226, 190, 110, 0.28) !important;
}
html body .profile-buy-btn:hover,
html body .desktop-header .profile-buy-btn:hover {
    background:
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.12) 0 1px, transparent 1px 3px),
        linear-gradient(135deg, #fff7dd 0%, #f5dfa3 35%, #e0bd6c 70%, #b28d42 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 252, 238, 0.95), 0 6px 20px rgba(226, 190, 110, 0.36) !important;
}

/* галочка выбранного пункта во всех списках — ровно по вертикальной середине строки
   (раньше её поднимали сразу и отступ, и сдвиг, плюс пульс — уезжала вверх на 9 px) */
html:root body .veo-custom-select-dropdown .veo-custom-select-option.selected.selected.selected::after {
    top: 50% !important; bottom: auto !important; margin-top: 0 !important; translate: none !important;
    transform: translateY(-50%) !important; animation: none !important;
}

/* аватар в шапке — как часы: металлический безель белого золота с 12 делениями, фото целиком внутри,
   тонкий тёмный зазор между безелем и фото; при наведении безель светлеет */
html body .desktop-header .profile-user-avatar:not(.veo-avatar-login) {
    width: 38px !important; height: 38px !important; min-width: 38px !important; flex: 0 0 38px !important;
    padding: 2.5px !important; box-sizing: border-box !important; overflow: hidden !important;
    background:
        repeating-conic-gradient(from -1deg, rgba(24, 21, 15, 0.7) 0 2deg, transparent 2deg 30deg),
        conic-gradient(from 200deg, #7d715a, #f2e8d3 18%, #fffaf0 26%, #cfc2a4 42%, #6f6550 58%, #e8dcc2 76%, #a39678 90%, #7d715a) !important;
    box-shadow: 0 0 0 1px rgba(255, 250, 240, 0.25), 0 0 16px rgba(236, 224, 198, 0.22) !important;
    transition: box-shadow 0.3s ease, filter 0.3s ease;
}
html body .desktop-header .profile-user-avatar:not(.veo-avatar-login)::before { display: none !important; }
html body .desktop-header .profile-user-avatar:not(.veo-avatar-login) > img,
html body .desktop-header .profile-user-avatar:not(.veo-avatar-login) > .veo-avatar-fallback-icon,
html body .desktop-header .profile-user-avatar:not(.veo-avatar-login) > .profile-avatar-letter {
    border-radius: 50% !important; box-shadow: 0 0 0 1px #0b0a08 !important; background-color: #0b0a08;
}
html body .desktop-header .profile-user-avatar:not(.veo-avatar-login):hover {
    filter: brightness(1.08); box-shadow: 0 0 0 1px rgba(255, 250, 240, 0.4), 0 0 22px rgba(236, 224, 198, 0.35) !important;
}

/* ==========================================================================
   «Готово!» — уведомление о готовом снимке / видео (по центру сверху, на любой странице)
   ========================================================================== */
.vf-ready-host { position: fixed; left: 50%; top: calc(var(--vf-desktop-header-h, 56px) + 14px); translate: -50% 0; z-index: 100050;
    display: flex; flex-direction: column; gap: 10px; align-items: center; pointer-events: none; width: min(560px, calc(calc(100vw / var(--vf-z, 1)) - 24px)); }
.vf-ready {
    position: relative; pointer-events: auto; width: 100%; box-sizing: border-box; display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 14px;
    padding: 12px 12px 12px 12px; border-radius: 20px; overflow: hidden;
    background: radial-gradient(120% 90% at 0% 0%, rgba(247, 239, 222, 0.08), transparent 55%), linear-gradient(180deg, rgba(22, 20, 15, 0.94), rgba(10, 10, 8, 0.96));
    border: 1px solid rgba(236, 224, 198, 0.34);
    box-shadow: inset 0 0 0 4px rgba(5, 5, 4, 0.55), inset 0 0 0 5px rgba(236, 224, 198, 0.06), 0 22px 60px rgba(0, 0, 0, 0.65), 0 0 40px rgba(236, 224, 198, 0.08);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
    opacity: 0; transform: translateY(-14px) scale(0.97); transition: opacity 0.38s ease, transform 0.5s cubic-bezier(.22, 1.2, .36, 1);
}
.vf-ready.is-in { opacity: 1; transform: none; }
.vf-ready.is-out { opacity: 0; transform: translateY(-10px) scale(0.98); transition: opacity 0.3s ease, transform 0.3s ease; }
.vf-ready__thumb { width: 64px; height: 64px; border-radius: 14px; overflow: hidden; background: #0b0a08; box-shadow: 0 0 0 1px rgba(236, 224, 198, 0.3), 0 0 0 4px rgba(5, 5, 4, 0.8); }
.vf-ready__thumb :is(img, video) { width: 100%; height: 100%; object-fit: cover; display: block; }
.vf-ready__ph { display: block; width: 100%; height: 100%; background: radial-gradient(circle at 50% 45%, rgba(236, 224, 198, 0.25), transparent 60%); }
.vf-ready__body { min-width: 0; }
.vf-ready__kick { display: flex; align-items: center; gap: 7px; font: 700 0.64rem/1 "Inter", sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(236, 224, 198, 0.75); }
.vf-ready__kick i { width: 7px; height: 7px; transform: rotate(45deg); background: #fffaf0; box-shadow: 0 0 8px rgba(255, 246, 224, 0.9); animation: vf-ready-pulse 1.6s ease-in-out infinite; }
@keyframes vf-ready-pulse { 50% { opacity: 0.45; } }
.vf-ready__title { margin-top: 6px; font: italic 600 1.12rem/1.15 var(--vf-antiqua, "Cormorant Garamond", Georgia, serif); color: #f6ecdd; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vf-ready__text { margin-top: 4px; font: 400 0.78rem/1.35 "Inter", sans-serif; color: rgba(245, 237, 220, 0.55); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vf-ready__acts { display: flex; align-items: center; gap: 8px; }
.vf-ready__go {
    height: 36px; padding: 0 16px; border-radius: 999px; display: inline-flex; align-items: center; text-decoration: none;
    font: 700 0.8rem/1 "Inter", sans-serif; letter-spacing: 0.04em; color: #1d1a14 !important;
    background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.09) 0 1px, transparent 1px 3px), linear-gradient(135deg, #fffaf0 0%, #f2e8d3 40%, #dccdaa 75%, #bba980 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), 0 4px 14px rgba(236, 224, 198, 0.2); transition: filter 0.2s ease, transform 0.2s ease;
}
.vf-ready__go:hover { filter: brightness(1.06); transform: translateY(-1px); }
.vf-ready__x { position: relative; width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(236, 224, 198, 0.22); background: rgba(10, 10, 9, 0.6); color: rgba(245, 237, 220, 0.7); cursor: pointer; padding: 0; }
.vf-ready__x::before { content: ""; position: absolute; inset: 0; margin: auto; width: 11px; height: 11px; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 3l14 14M17 3 3 17' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 3l14 14M17 3 3 17' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.vf-ready__x:hover { color: #fffaf0; border-color: rgba(236, 224, 198, 0.5); }
/* тонкая полоска времени внизу карточки; на наведении замирает */
.vf-ready__life { position: absolute; left: 18px; right: 18px; bottom: 6px; height: 1px; background: linear-gradient(90deg, transparent, rgba(242, 232, 211, 0.7), transparent);
    transform-origin: left center; animation: vf-ready-life var(--life, 14s) linear forwards; }
.vf-ready.is-hold .vf-ready__life { animation-play-state: paused; }
@keyframes vf-ready-life { from { transform: scaleX(1); } to { transform: scaleX(0); } }
@media (max-width: 560px) {
    .vf-ready { grid-template-columns: 52px minmax(0, 1fr); gap: 10px; }
    .vf-ready__thumb { width: 52px; height: 52px; }
    .vf-ready__acts { grid-column: 1 / -1; justify-content: flex-end; }
}
@media (prefers-reduced-motion: reduce) { .vf-ready, .vf-ready.is-in, .vf-ready.is-out { transition: opacity 0.2s ease; transform: none; } .vf-ready__kick i { animation: none; } }

/* лента чата: «заводная головка» едет ровно по линии рамки — правая линия рамки проходит через середину полосы
   прокрутки (12 px → середина в 6 px от края), отдельная дорожка не нужна */
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-chat-messages-wrap::after { right: 5.63px !important; }
@supports selector(::-webkit-scrollbar) {
    html:root body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #veoChatMessagesDesktop::-webkit-scrollbar-track { background: transparent !important; }
}
/* разделитель «лента | настройки» (линия с ромбом) переезжает ровно на середину полосы прокрутки ленты —
   бегунок едет точно по этой линии; ромб под бегунком, бегунок проезжает поверх */
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-right-settings::before,
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-right-settings::after { display: none !important; }
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-chat-body { position: relative; z-index: 0; }
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-chat-body::before {
    content: ""; position: absolute; top: 18px; bottom: 18px; right: 5.5px; width: 1px; z-index: -1; pointer-events: none;
    background: linear-gradient(rgba(0, 0, 0, 0), rgba(236, 224, 198, 0.34) 14%, rgba(236, 224, 198, 0.34) 86%, rgba(0, 0, 0, 0));
}
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-chat-body::after {
    content: ""; position: absolute; top: 50%; right: 6px; width: 9px; height: 9px; margin: -4.5px -4.5px 0 0; z-index: -1; pointer-events: none;
    transform: rotate(45deg); box-sizing: border-box; background: #0a0a09; border: 0.74px solid rgba(236, 224, 198, 0.6); box-shadow: 0 0 8px rgba(236, 224, 198, 0.3);
}

/* короткие сообщения («ID скопирован», «Промпт скопирован»…) — сверху по центру под шапкой, как уведомление «Готово»,
   а не поверх поля ввода внизу ленты */
html body:not(.mobile-version) .veo-toast,
html body.veo-generation-body:not(.mobile-version) #veoChatArea > .veo-toast {
    position: fixed !important; left: 50% !important; right: auto !important; bottom: auto !important;
    top: calc(var(--vf-desktop-header-h, 56px) + 14px) !important; z-index: 100040 !important;
    width: max-content !important; max-width: min(520px, calc(calc(100vw / var(--vf-z, 1)) - 24px)) !important;
    transform: translate(-50%, -8px) !important; opacity: 0;
    transition: opacity 0.28s ease, transform 0.4s cubic-bezier(.22, 1.2, .36, 1) !important;
}
html body:not(.mobile-version) .veo-toast.veo-toast--visible,
html body.veo-generation-body:not(.mobile-version) #veoChatArea > .veo-toast.veo-toast--visible { transform: translate(-50%, 0) !important; opacity: 1 !important; }
/* кнопка копирования ID: в момент «скопировано» кнопка светлая — значок тёмный, чтобы его было видно */
html body.veo-generation-body .veo-video-block-id-copy.vf-copied :is(svg, svg *) { stroke: #1d1a14 !important; color: #1d1a14 !important; }
html body.veo-generation-body .veo-video-block-id-copy.vf-copied svg [fill]:not([fill="none"]) { fill: #1d1a14 !important; }

/* b28: список валют в шапке открывается вровень с аватаркой сразу, без прыжка (сдвиг считает vf-cosmos.js) */
html body:not(.mobile-version) .desktop-header .vf-currency-selector.vf-cur-right > .vf-currency-dropdown { right: var(--vf-cur-off, 0px) !important; left: auto !important; }

/* b29: «Лента / Холст» — значок и подпись крупнее, ближе друг к другу и на одной оси */
html body .vf-view-switch--dock button { padding: 7px 16px 7px 14px !important; gap: 6px !important; font-size: 14px !important; line-height: 1 !important; align-items: center !important; }
html body .vf-view-switch--dock button svg { width: 18px !important; height: 18px !important; flex: none; display: block; }
html body .vf-view-switch--dock button span { display: block; line-height: 18px; height: 18px; }
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap .vf-view-switch--dock,
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap > .vf-mygen { height: 42px !important; }

/* b30: в промпте заголовок блока и пункт списка больше не похожи: заголовок — светлый, с линией до края; пункт — маленькая точка */
.vf-pfmt .vf-pl { display: flex !important; align-items: center; gap: 10px; margin: 12px 0 5px !important; font-size: 0.7rem !important; letter-spacing: 0.2em !important; color: #f6eedc !important; }
.vf-pfmt .vf-pline:first-child > .vf-pl, .vf-pfmt > .vf-pline:first-child .vf-pl { margin-top: 2px !important; }
.vf-pfmt .vf-pl::before { content: none !important; }
.vf-pfmt .vf-pl::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(236, 224, 198, 0.35), transparent); }
.vf-pfmt .vf-pl em { order: 0; margin-left: 0 !important; }
.vf-pfmt .vf-li { padding-left: 14px !important; color: rgba(242, 232, 211, 0.9); }
.vf-pfmt .vf-li::before { left: 2px !important; top: 0.68em !important; width: 4px !important; height: 4px !important; border-radius: 50%; transform: none !important; background: rgba(236, 224, 198, 0.55) !important; }

/* b31: крестик редактора фото — на правом верхнем углу панели инструментов, наполовину снаружи (место считает vf-art.js) */
html body .veo-attachment-preview-overlay .veo-attachment-crop-layout > .veo-attachment-preview-overlay-close.vf-ed-x2 {
    position: absolute !important; left: auto !important; bottom: auto !important; float: none; margin: 0 !important;
    width: 38px !important; height: 38px !important; z-index: 6;
    box-shadow: 0 0 0 4px rgba(5, 5, 4, 0.92), 0 8px 18px rgba(0, 0, 0, 0.55) !important;
}

/* b32: кнопки панели ввода не подпрыгивают при наведении — прыжок уводил кнопку из-под курсора, и она дёргалась
   (наведение пропадало и появлялось по кругу). Теперь сама кнопка стоит на месте, чуть поднимается только значок. */
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn, .vfpg-btn):hover { transform: none !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn, .vfpg-btn) { transition: color 0.25s, border-color 0.25s, background 0.3s, transform 0.18s ease !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn, .vfpg-btn):active { transform: scale(0.94) !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn, .vfpg-btn) > svg { transition: transform 0.3s cubic-bezier(.22, 1, .36, 1) !important; }
html:root body.veo-generation-body.veo-generation-body .veo-prompt-control-bar :is(.veo-photo-upload-btn, .vf-dice, .vf-tool:not(.vf-tool--keys):not(.vf-tool--clear), .veo-prompt-enter-btn, .veo-auto-send-btn, .veo-mic-btn, .vfpg-btn):hover > svg { transform: translateY(-1px); }

/* b33: списание ракет — «старт»: плашка «−N» → большая ракета с огнём и дымом, за ней звено по числу списанных */
html body.veo-generation-body .vf-balance-debit-float { display: none !important; }
#vfBalFx .vf-bal-chip2 {
    position: fixed; z-index: 2147483000; transform: translate(-50%, 0) scale(0.6); opacity: 0; display: inline-flex; align-items: center; gap: 4px;
    padding: 5px 11px; border-radius: 999px; font: 700 13px/1 "Inter", sans-serif; font-feature-settings: "tnum" 1; color: #1d1a14;
    background: linear-gradient(180deg, #fffaf0, #e8dcc2 55%, #cbb994); box-shadow: 0 0 0 3px rgba(5, 5, 4, 0.9), 0 0 22px rgba(255, 246, 224, 0.45);
    animation: vf-chip2-in 0.42s cubic-bezier(.34, 1.56, .64, 1) forwards; pointer-events: none;
}
#vfBalFx .vf-bal-chip2 svg { width: 15px; height: 15px; }
#vfBalFx .vf-bal-chip2.is-morph { animation: vf-chip2-morph 0.38s cubic-bezier(.6, 0, .8, .4) forwards; }
@keyframes vf-chip2-in { to { opacity: 1; transform: translate(-50%, 0) scale(1); } }
@keyframes vf-chip2-morph { from { opacity: 1; transform: translate(-50%, 0) scale(1); } to { opacity: 0; transform: translate(-50%, 4px) scale(0.3, 0.55); filter: blur(2px) brightness(1.6); } }
#vfBalFx .vf-bal-ship { position: fixed; left: 0; top: 0; z-index: 2147483001; width: var(--s); height: var(--s); margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
    pointer-events: none; will-change: transform, opacity; filter: drop-shadow(0 0 6px rgba(255, 246, 224, 0.7)); }
#vfBalFx .vf-bal-ship svg { position: relative; width: 100%; height: 100%; display: block; }
#vfBalFx .vf-bal-ship--lead { filter: drop-shadow(0 0 12px rgba(255, 246, 224, 0.85)); }
#vfBalFx .vf-bal-ship__fire { position: absolute; left: 50%; top: 50%; width: 42%; height: 42%; margin: -21% 0 0 -21%; border-radius: 50%;
    transform: translate(-46%, 46%); background: radial-gradient(circle, #fffdf6 0 25%, rgba(255, 236, 196, 0.85) 45%, rgba(255, 220, 160, 0) 72%);
    animation: vf-fire 0.09s linear infinite alternate; }
@keyframes vf-fire { from { opacity: 0.75; transform: translate(-46%, 46%) scale(0.85); } to { opacity: 1; transform: translate(-50%, 52%) scale(1.15); } }
#vfBalFx .vf-bal-smoke { position: fixed; z-index: 2147483000; width: var(--sz, 6px); height: var(--sz, 6px); border-radius: 50%; pointer-events: none;
    transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(255, 250, 240, 0.55), rgba(255, 250, 240, 0) 70%);
    animation: vf-smoke 0.9s ease-out forwards; }
@keyframes vf-smoke { to { opacity: 0; transform: translate(-50%, -50%) scale(2.6); } }
#vfBalFx .vf-bal-star { position: fixed; z-index: 2147483001; width: 26px; height: 26px; margin: -13px 0 0 -13px; pointer-events: none;
    background: radial-gradient(circle, #fffaf0 0 8%, transparent 9%), conic-gradient(from 0deg, transparent 0 40deg, rgba(255, 250, 240, 0.9) 45deg, transparent 50deg 130deg, rgba(255, 250, 240, 0.9) 135deg, transparent 140deg 220deg, rgba(255, 250, 240, 0.9) 225deg, transparent 230deg 310deg, rgba(255, 250, 240, 0.9) 315deg, transparent 320deg);
    -webkit-mask: radial-gradient(circle, #000 0 30%, transparent 70%); mask: radial-gradient(circle, #000 0 30%, transparent 70%);
    animation: vf-star 1.1s ease-out forwards; }
@keyframes vf-star { 0% { opacity: 0; transform: scale(0.2) rotate(0deg); } 25% { opacity: 1; transform: scale(1.2) rotate(25deg); } 100% { opacity: 0; transform: scale(0.4) rotate(70deg); } }

/* b34: значок на кнопке «Создать» — крупнее и понятнее: картина (или кадр видео) с мерцающей звездой */
html body.veo-generation-body .veo-prompt-send .veo-prompt-send-icon.vf-send-ic-host {
    width: 32px !important; height: 32px !important; min-width: 32px; display: grid !important; place-items: center !important; padding: 0 !important; border-radius: 50% !important;
    background: radial-gradient(circle at 50% 30%, #2a261e, #0d0c0a 72%) !important; box-shadow: inset 0 0 0 1px rgba(255, 250, 240, 0.12), 0 2px 6px rgba(0, 0, 0, 0.45) !important;
}
html body.veo-generation-body .veo-prompt-send .veo-prompt-send-icon svg.vf-send-ic { width: 20px !important; height: 20px !important; padding: 0 !important; overflow: visible; }
html body.veo-generation-body .veo-prompt-send svg.vf-send-ic :is(.vf-send-ic__frame, .vf-send-ic__land) { fill: none !important; stroke: #f6eedc !important; stroke-width: 1.7 !important; stroke-linecap: round; stroke-linejoin: round; }
html body.veo-generation-body .veo-prompt-send svg.vf-send-ic :is(.vf-send-ic__sun, .vf-send-ic__play) { fill: #f6eedc !important; stroke: none !important; }
html body.veo-generation-body .veo-prompt-send svg.vf-send-ic .vf-send-ic__star { fill: #fffaf0 !important; stroke: none !important; transform-box: fill-box; transform-origin: center;
    filter: drop-shadow(0 0 3px rgba(255, 246, 224, 0.9)); animation: vf-send-star 3.2s ease-in-out infinite; }
@keyframes vf-send-star { 0%, 100% { transform: scale(0.8) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.12) rotate(45deg); opacity: 1; } }
html body.veo-generation-body .veo-prompt-send:hover svg.vf-send-ic .vf-send-ic__star { animation-duration: 3.2s; }
html body.veo-generation-body .veo-prompt-send:disabled svg.vf-send-ic .vf-send-ic__star { animation: none; opacity: 0.6; }
html body.veo-generation-body .veo-prompt-send { padding-right: 6px !important; }
@media (prefers-reduced-motion: reduce) { html body.veo-generation-body .veo-prompt-send svg.vf-send-ic .vf-send-ic__star { animation: none; } }

/* b35: панель ввода сворачивается в капсулу, пока листаешь ленту (vf-art.js → initDockAuto) */
html body.veo-generation-body:not(.mobile-version) .veo-prompt-area > .veo-prompt-box {
    transition: opacity 0.32s ease, transform 0.45s cubic-bezier(.22, 1, .36, 1), filter 0.32s ease; transform-origin: 50% 100%;
}
html body.vf-dock-min.veo-generation-body:not(.mobile-version) .veo-prompt-area > .veo-prompt-box {
    opacity: 0; transform: translateY(26px) scale(0.92, 0.6); filter: blur(4px); pointer-events: none;
}
.vf-dock-pill {
    position: absolute; left: 50%; bottom: 6px; z-index: 7; display: none; align-items: center; gap: 12px;
    width: min(460px, 82%); height: 50px; padding: 0 8px 0 8px; box-sizing: border-box; cursor: pointer; text-align: left;
    border-radius: 999px; color: #f2e8d3; border: 1px solid rgba(236, 224, 198, 0.3);
    background: linear-gradient(180deg, rgba(24, 22, 18, 0.97), rgba(10, 10, 9, 0.97));
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 252, 245, 0.06), 0 0 0 5px rgba(5, 5, 4, 0.55);
    transform: translate(-50%, 18px) scale(0.9); opacity: 0; pointer-events: none;
    transition: opacity 0.3s ease 0.08s, transform 0.5s cubic-bezier(.34, 1.4, .64, 1) 0.05s, border-color 0.25s;
}
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .vf-dock-pill { display: flex; }
html body.vf-dock-min .vf-dock-pill { opacity: 1; transform: translate(-50%, 0) scale(1); pointer-events: auto; }
.vf-dock-pill:hover { border-color: rgba(242, 232, 211, 0.6); }
.vf-dock-pill__ic, .vf-dock-pill__up { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; }
.vf-dock-pill__ic { background: radial-gradient(circle at 50% 30%, #26221a, #0b0b0a); border: 1px solid rgba(236, 224, 198, 0.3); }
.vf-dock-pill__up { background: linear-gradient(180deg, #fffaf0, #d9caa6); color: #1d1a14; }
.vf-dock-pill svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.vf-dock-pill__txt { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 500 14px/1 "Inter", sans-serif; color: rgba(245, 237, 220, 0.5); }
.vf-dock-pill__txt.is-draft { color: #f2e8d3; }
.vf-dock-pill:hover .vf-dock-pill__up { transform: translateY(-2px); transition: transform 0.25s ease; }
@media (prefers-reduced-motion: reduce) { .vf-dock-pill, html body.veo-generation-body .veo-prompt-area > .veo-prompt-box { transition: opacity 0.2s !important; } }

/* Сообщения далеко от экрана (класс vf-far ставит vf-art.js → initFarSkip) не раскладываются и не рисуются;
   auto — браузер помнит настоящую высоту сообщения, лента не прыгает */
body:not(.mobile-version) #veoChatMessagesDesktop > .veo-chat-message { contain-intrinsic-size: auto 420px; }
body:not(.mobile-version) #veoChatMessagesDesktop > .veo-chat-message.vf-far { content-visibility: auto; }

/* ==========================================================================
   МЕНЮ ПРОФИЛЯ v2 — часы «Космос» на ремешке (в духе Omega Speedmaster), vf-cosmos.js → .vf-wm
   Окно: сверху часы, ниже кожаный ремешок со строчкой, пункты списком с римскими номерами, пряжка внизу
   ========================================================================== */
html body .vf-user-menu-dropdown.vf-wm {
    width: 322px !important; min-width: 0 !important; max-width: calc(calc(100vw / var(--vf-z, 1)) - 16px) !important; box-sizing: border-box !important;
    padding: 236px 14px 12px !important; border: 0 !important; border-radius: 0 !important;
    background: none !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
    overflow: visible !important; isolation: isolate;
}
/* ремешок */
html body .vf-user-menu-dropdown.vf-wm::before {
    content: ""; position: absolute; left: 0; right: 0; top: 118px; bottom: 0; width: auto; height: auto; margin: 0; z-index: -1; pointer-events: none;
    border-radius: 36px 36px 28px 28px;
    background: radial-gradient(120% 40% at 50% 0%, rgba(255, 250, 240, 0.05), transparent 60%), linear-gradient(180deg, #15130f, #0b0a08 62%, #0f0d0a) !important;
    border: 1px solid rgba(236, 224, 198, 0.2); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.62), 0 0 0 1px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 250, 240, 0.06);
}
/* строчка по краю ремешка */
html body .vf-user-menu-dropdown.vf-wm::after {
    content: ""; position: absolute; left: 6px; right: 6px; top: 124px; bottom: 6px; z-index: -1; pointer-events: none;
    border-radius: 31px 31px 23px 23px; border: 1px dashed rgba(236, 224, 198, 0.26);
}
/* часы */
.vf-wm-head {
    position: absolute; left: 50%; top: 0; width: 220px; height: 220px; margin-left: -110px; z-index: 2; border-radius: 50%; pointer-events: none;
    background: conic-gradient(from 210deg, #6d6656, #f6efdd 12%, #8a826e 24%, #efe6d0 38%, #5d5748 52%, #e9dfc6 66%, #8d8571 80%, #fbf5e6 92%, #6d6656);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.72), 0 0 0 1px rgba(255, 248, 230, 0.18), inset 0 0 0 1px rgba(0, 0, 0, 0.6);
}
.vf-wm-head .vf-wm-dial { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.vf-wm-head .vf-wm-dial .tw { animation: vf-wm-tw 3.2s ease-in-out infinite; }
.vf-wm-head .vf-wm-dial .tw:nth-of-type(3n) { animation-delay: -1.1s; }
.vf-wm-head .vf-wm-dial .tw:nth-of-type(3n+1) { animation-delay: -2.2s; }
@keyframes vf-wm-tw { 50% { opacity: 0.15; } }
.vf-wm-crown { position: absolute; right: -9px; top: 50%; width: 13px; height: 30px; margin-top: -15px; border-radius: 3px;
    background: repeating-linear-gradient(180deg, #f3ead4 0 2px, #7a725f 2px 3.5px); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6); }
.vf-wm-push { position: absolute; right: -6px; width: 9px; height: 14px; border-radius: 2px; background: linear-gradient(90deg, #8a826e, #f3ead4, #8a826e); }
.vf-wm-push--a { top: 24%; } .vf-wm-push--b { bottom: 24%; }
/* старый циферблат «карманных часов» и разделитель не нужны */
html body .vf-user-menu-dropdown.vf-wm .vf-umdial { display: none !important; }
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-time-block::after { display: none !important; }
/* дата, цифровое время и часовой пояс — одной строкой под часами */
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-time-block {
    height: auto !important; margin: 0 4px 10px !important; padding: 0 !important; border: 0 !important;
    display: grid !important; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 10px; row-gap: 4px; align-items: center;
}
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-time-block .vf-umd {
    grid-column: 1; grid-row: 1; order: 0; text-align: left; margin: 0 !important;
    font: italic 500 1rem/1.1 "Cormorant Garamond", "Cormorant", Georgia, serif !important; color: rgba(245, 237, 220, 0.78) !important; text-transform: none !important;
}
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-time-main {
    grid-column: 1; grid-row: 2; order: 0; margin: 0 !important; text-align: left;
    font: 600 0.82rem/1 "Inter", sans-serif !important; letter-spacing: 0.14em !important; font-feature-settings: "tnum" 1, "lnum" 1 !important; color: rgba(245, 237, 220, 0.6) !important;
}
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-time-block .vf-menu-tz-custom-select,
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-time-block > select,
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-time-block .vf-menu-tz-select { grid-column: 2; grid-row: 1 / span 2; order: 0; align-self: center; }
/* пункты — список: значок, подпись, римский номер; значок и текст крупнее и на одной оси */
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-nav { display: flex !important; flex-direction: column !important; gap: 0 !important; padding: 0 !important; counter-reset: vfwm; }
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item {
    flex-direction: row !important; justify-content: flex-start !important; align-items: center !important; text-align: left; gap: 13px !important;
    min-height: 50px; padding: 8px 14px 8px 8px !important; border: 0 !important; border-radius: 14px !important; box-sizing: border-box; position: relative;
    background: linear-gradient(90deg, rgba(236, 224, 198, 0.13), transparent 85%) left top / 100% 1px no-repeat !important;
    font: 600 0.92rem/1.2 "Inter", sans-serif !important; color: #efe5cf !important; transform: none !important;
    counter-increment: vfwm; transition: background-color 0.2s, color 0.2s !important;
}
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item:first-child,
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item[hidden] + .vf-user-menu-item { background-size: 0 0 !important; }
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item::after {
    content: counter(vfwm, upper-roman); margin-left: auto; padding-left: 10px;
    font: italic 600 1rem/1 "Cormorant Garamond", "Cormorant", Georgia, serif; color: rgba(236, 224, 198, 0.42); letter-spacing: 0.04em;
}
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item:hover {
    background: linear-gradient(90deg, rgba(255, 250, 240, 0.09), rgba(255, 250, 240, 0.02)) !important; color: #fffaf0 !important; transform: none !important;
}
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item:hover::after { color: #f2e8d3; }
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item .vf-umi {
    width: 34px !important; height: 34px !important; flex: 0 0 34px !important; margin: 0 !important; border-radius: 50%;
    display: grid !important; place-items: center; border: 1px solid rgba(236, 224, 198, 0.32) !important;
    background: radial-gradient(circle at 50% 30%, #232019, #0b0b0a) !important; box-shadow: none !important;
}
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item .vf-umi svg { width: 18px !important; height: 18px !important; }
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item:hover .vf-umi { border-color: rgba(236, 224, 198, 0.75) !important; box-shadow: 0 0 14px rgba(236, 224, 198, 0.18) !important; }
/* «Войти» и «Выход» — без номера */
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item--accent,
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item--logout,
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item[href*="logout"] { counter-increment: none; }
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item--accent::after,
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item--logout::after,
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item[href*="logout"]::after { content: none; }
html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item--accent { justify-content: center !important; margin: 4px 0; background: var(--vf-cta) !important; color: #1d1a14 !important; }
/* пряжка */
.vf-wm-buckle { display: block; width: 72px; height: 14px; margin: 10px auto 2px; border-radius: 7px; border: 2px solid rgba(207, 195, 165, 0.6);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.5); position: relative; }
.vf-wm-buckle::after { content: ""; position: absolute; left: 50%; top: -2px; width: 2px; height: 14px; margin-left: -1px; background: rgba(207, 195, 165, 0.6); }
/* невысокий экран — часы поменьше */
@media (max-height: 780px) {
    html body .vf-user-menu-dropdown.vf-wm { padding-top: 186px !important; }
    html body .vf-user-menu-dropdown.vf-wm::before { top: 92px; }
    html body .vf-user-menu-dropdown.vf-wm::after { top: 98px; }
    .vf-wm-head { width: 172px; height: 172px; margin-left: -86px; }
    html body .vf-user-menu-dropdown.vf-wm .vf-user-menu-item { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .vf-wm-head .vf-wm-dial .tw { animation: none; } }
/* Список часовых поясов — в стиле часов: компактная шкала, табличные цифры, выбранный пояс отмечен ромбом */
html body .vf-menu-tz-dropdown {
    min-width: 172px !important; max-height: 286px !important; padding: 6px !important; border-radius: 16px !important; overflow-y: auto !important;
    background: radial-gradient(120% 60% at 50% 0%, rgba(255, 250, 240, 0.05), transparent 60%), linear-gradient(180deg, #15130f, #0b0a08) !important;
    border: 1px solid rgba(236, 224, 198, 0.24) !important; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 250, 240, 0.05) !important;
}
html body .vf-menu-tz-dropdown .vf-menu-tz-opt {
    position: relative; display: flex !important; align-items: center; min-height: 32px !important; height: 32px; padding: 0 12px 0 26px !important; margin: 0 !important;
    border: 0 !important; border-radius: 9px !important; box-shadow: none !important; background: none !important;
    font: 600 0.82rem/1 "Inter", sans-serif !important; letter-spacing: 0.05em; font-feature-settings: "tnum" 1, "lnum" 1 !important;
    color: rgba(245, 237, 220, 0.72) !important;
}
html body .vf-menu-tz-dropdown .vf-menu-tz-opt::before, html body .vf-menu-tz-dropdown .vf-menu-tz-opt::after { border: 0 !important; }
html body .vf-menu-tz-dropdown .vf-menu-tz-opt:hover { background: rgba(236, 224, 198, 0.08) !important; color: #fffaf0 !important; }
html body .vf-menu-tz-dropdown .vf-menu-tz-opt.selected { background: rgba(236, 224, 198, 0.1) !important; color: #fffaf0 !important; }
html body .vf-menu-tz-dropdown .vf-menu-tz-opt.selected::before {
    content: "" !important; position: absolute; left: 11px; top: 50%; width: 6px; height: 6px; margin-top: -3px; transform: rotate(45deg);
    background: #f2e8d3 !important; box-shadow: 0 0 8px rgba(255, 246, 224, 0.7); display: block !important;
}
html body .vf-menu-tz-dropdown .vf-menu-tz-opt--auto {
    font: italic 600 0.98rem/1 "Cormorant Garamond", "Cormorant", Georgia, serif !important; letter-spacing: 0.02em;
    margin-bottom: 6px !important; color: #f2e8d3 !important;
}
html body .vf-menu-tz-dropdown .vf-menu-tz-opt--auto::after {
    content: "" !important; position: absolute; left: 10px; right: 10px; bottom: -4px; height: 1px; display: block !important;
    background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.3), transparent) !important;
}

/* ==========================================================================
   ХОЛСТ — чистый лист: без ассистента, пустое состояние, свой масштаб
   ========================================================================== */
html body.vf-view-studio [data-vf-asst],
html body.vf-view-studio .vf-asst-tgl,
html body.vf-view-studio .vf-asst-head,
html body.vf-view-studio .vf-asst-send { display: none !important; }
html body.vf-view-studio #veoChatMessagesDesktop > .veo-chat-message[data-vf-hide] { display: none !important; }

html body.veo-generation-body .veo-chat-messages-wrap > .vf-canvas-empty {
    /* по центру всего квадрата холста: отступы сверху и снизу одинаковые, кнопки сверху текст не сдвигают */
    position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; pointer-events: none;
    padding: 64px 40px; box-sizing: border-box; overflow: hidden; container-type: inline-size;
}
html body.veo-generation-body .veo-chat-messages-wrap > .vf-canvas-empty[hidden] { display: none !important; }
html body:not(.vf-view-studio) .veo-chat-messages-wrap > .vf-canvas-empty { display: none !important; }
.vf-canvas-empty__frame {
    position: relative; width: min(820px, 100%); box-sizing: border-box; padding: 34px 30px 30px;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    background: radial-gradient(70% 60% at 50% 40%, rgba(236, 224, 198, 0.045), transparent 70%);
    animation: vf-canvas-empty-in 0.7s cubic-bezier(.2, .8, .2, 1) both;
}
/* угловые метки, как на видоискателе */
.vf-canvas-empty__frame > i { position: absolute; width: 22px; height: 22px; border: 0 solid rgba(236, 224, 198, 0.42); }
.vf-canvas-empty__frame > i:nth-of-type(1) { left: 0; top: 0; border-left-width: 1px; border-top-width: 1px; border-top-left-radius: 6px; }
.vf-canvas-empty__frame > i:nth-of-type(2) { right: 0; top: 0; border-right-width: 1px; border-top-width: 1px; border-top-right-radius: 6px; }
.vf-canvas-empty__frame > i:nth-of-type(3) { left: 0; bottom: 0; border-left-width: 1px; border-bottom-width: 1px; border-bottom-left-radius: 6px; }
.vf-canvas-empty__frame > i:nth-of-type(4) { right: 0; bottom: 0; border-right-width: 1px; border-bottom-width: 1px; border-bottom-right-radius: 6px; }
.vf-canvas-empty__star {
    width: 24px; height: 24px; margin-bottom: 12px; fill: #f2e8d3; opacity: 0.85;
    filter: drop-shadow(0 0 10px rgba(255, 246, 224, 0.45)); animation: vf-canvas-empty-star 4.5s ease-in-out infinite;
}
.vf-canvas-empty__frame > b {
    font: italic 500 1.75rem/1.15 "Cormorant Garamond", "Cormorant", Georgia, serif; letter-spacing: 0.01em; color: #f2e8d3;
}
.vf-canvas-empty__how {
    display: flex; align-items: center; gap: 10px; margin: 18px 0 14px; font: 600 0.62rem/1 "Inter", sans-serif; font-style: normal;
    letter-spacing: 0.24em; text-transform: uppercase; color: rgba(236, 224, 198, 0.5);
}
.vf-canvas-empty__how::before, .vf-canvas-empty__how::after { content: ""; width: 34px; height: 1px; background: linear-gradient(90deg, transparent, rgba(236, 224, 198, 0.35)); }
.vf-canvas-empty__how::after { transform: scaleX(-1); }
.vf-csteps { list-style: none; margin: 0; padding: 0; width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; text-align: left; }
@container (min-width: 820px) { .vf-csteps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vf-cstep {
    position: relative; padding: 14px 14px 15px; border-radius: 16px; box-sizing: border-box;
    background: linear-gradient(180deg, rgba(255, 250, 240, 0.035), rgba(255, 250, 240, 0.012));
    border: 1px solid rgba(236, 224, 198, 0.13); box-shadow: inset 0 1px 0 rgba(255, 250, 240, 0.04);
    opacity: 0; animation: vf-canvas-empty-in 0.6s cubic-bezier(.2, .8, .2, 1) forwards;
}
.vf-cstep:nth-child(2) { animation-delay: 0.06s; }
.vf-cstep:nth-child(3) { animation-delay: 0.12s; }
.vf-cstep:nth-child(4) { animation-delay: 0.18s; }
.vf-cstep__ic {
    display: grid; place-items: center; width: 32px; height: 32px; margin-bottom: 12px; border-radius: 10px;
    background: rgba(236, 224, 198, 0.06); border: 1px solid rgba(236, 224, 198, 0.2);
}
.vf-cstep__ic svg { width: 17px; height: 17px; fill: none; stroke: #f2e8d3; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.vf-cstep small { display: block; margin-bottom: 5px; font: 600 0.6rem/1 "Inter", sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(236, 224, 198, 0.45); }
.vf-cstep strong { display: block; margin-bottom: 6px; font: 600 0.86rem/1.3 "Inter", sans-serif; color: #f5eddc; }
.vf-cstep p { margin: 0; font: 400 0.76rem/1.5 "Inter", sans-serif; color: rgba(239, 231, 214, 0.55); }
@keyframes vf-canvas-empty-in { from { opacity: 0; transform: scale(0.97); } to { opacity: 1; transform: none; } }
@keyframes vf-canvas-empty-star { 0%, 100% { opacity: 0.6; transform: scale(0.92); } 50% { opacity: 1; transform: scale(1.04); } }
@media (prefers-reduced-motion: reduce) { .vf-canvas-empty__frame, .vf-canvas-empty__star, .vf-cstep { animation: none; opacity: 1; } }

/* масштаб холста: --vf-cz (ставит ползунок «Масштаб холста»), отдельно от ленты */
html body.vf-view-studio.veo-generation-body:not(.mobile-version) #veoChatMessagesDesktop .veo-chat-message--assistant .veo-video-wrapper.vf-fit:not(.vf-nano-result-grid-wrap),
html body.vf-view-studio.veo-generation-body:not(.mobile-version) #veoChatMessagesDesktop .veo-chat-message--assistant .veo-video-wrapper:is([data-aspect="1:1"],[data-aspect="16:9"],[data-aspect="9:16"],[data-aspect="4:3"],[data-aspect="3:4"],[data-aspect="3:2"],[data-aspect="2:3"],[data-aspect="5:4"],[data-aspect="4:5"],[data-aspect="21:9"],[data-aspect="9:21"]):not(.vf-nano-result-grid-wrap) {
    width: min(calc(var(--vf-s) * var(--vf-k, 1) * var(--vf-cz, 1)), calc(var(--vf-hmax) * var(--vf-r, 1) * var(--vf-cz, 1)), 100cqw) !important;
}
html body.vf-view-studio.veo-generation-body:not(.mobile-version) #veoChatMessagesDesktop .veo-video-wrapper.vf-nano-result-grid-wrap {
    width: min(calc(var(--vf-s) * 1.08 * var(--vf-cz, 1)), 100cqw) !important;
}
/* ширина холста — от самой области (cqw), а не от «пузыря», который ужимался по содержимому: снимок был 266 px на холсте в 640 */
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) #veoChatMessagesDesktop { container-type: inline-size; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) #veoChatMessagesDesktop .veo-chat-message.vf-active > .veo-chat-message-bubble { width: 100% !important; max-width: none !important; }
}
html body.vf-view-studio.veo-generation-body:not(.mobile-version) #veoChatMessagesDesktop .veo-chat-message.vf-active .veo-generating-placeholder {
    width: min(calc(520px * var(--vf-cz, 1)), 92%) !important;
}

/* Холст, левая колонка: формат кадра — в один ряд (с «Ещё»), качество — вторым; цена и «Создать» — одной строкой */
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-fstrip { padding: 9px 12px 8px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-fstrip .vf-fstrip__row { gap: 8px 5px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-fstrip .vf-ratio { padding: 6px 8px 6px 7px !important; gap: 6px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .vf-fstrip .vf-ratio--q { padding-inline: 10px !important; }
    /* разрыв строки (::after) не должен давать двойной зазор: ряды через ровные 10 px */
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar { row-gap: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right > :is(#costDisplayDesktopWrap, .veo-cost-wrap, .veo-prompt-send-wrap) { margin-top: 10px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right > .veo-prompt-send-wrap { flex: 1 1 0 !important; width: auto !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-send { overflow: hidden !important; white-space: nowrap !important; gap: 8px !important; padding-left: 14px !important; letter-spacing: 0.07em !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) #costDisplayDesktopWrap { height: 42px !important; display: flex !important; align-items: center !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-send .veo-prompt-send-text { letter-spacing: inherit !important; }
}

/* Холст, блок настроек: дубли полосы формата спрятаны, поля и иконки компактнее — всё помещается без прокрутки */
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings :is(.vf-row-dup, .veo-settings-section.vf-sec-dup-empty) { display: none !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-section-header { min-height: 0 !important; padding: 10px 14px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-section:not(.collapsed) > .veo-settings-section-content { padding: 2px 12px 12px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-row { margin: 0 0 8px !important; gap: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-row:last-child { margin-bottom: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-label { margin: 0 0 5px 2px !important; font-size: 0.7rem !important; line-height: 1.2 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-custom-select-trigger {
        min-height: 0 !important; height: 38px !important; padding-top: 0 !important; padding-bottom: 0 !important; border-radius: 12px !important; font-size: 0.8rem !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-custom-select-trigger .veo-custom-select-label { font-size: 0.8rem !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-custom-select-trigger :is(.veo-ai-icon-badge, .veo-google-g-badge-sm, img.veo-model-icon) {
        width: 24px !important; height: 24px !important; min-width: 24px !important; flex: 0 0 24px !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings :is(input[type="text"], input[type="number"], textarea) { min-height: 0 !important; font-size: 0.8rem !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-scroll { gap: 8px !important; }
}
/* Холст, левая колонка — два блока: настройки сверху по содержимому (длинные — со своей прокруткой),
   блок ввода забирает остальную высоту, поле текста растягивается — без пустоты между ними */
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-desktop-layout { grid-template-rows: auto minmax(0, 1fr) !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings { align-self: start !important; max-height: calc(46vh / var(--vf-z, 1)) !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-wrapper { align-self: stretch !important; display: flex !important; flex-direction: column !important; min-height: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) :is(.veo-prompt-stack, .veo-prompt-box, .veo-prompt-area) {
        flex: 1 1 auto !important; min-height: 0 !important; height: auto !important; display: flex !important; flex-direction: column !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-input-zone { flex: 1 1 auto !important; min-height: 96px !important; display: flex !important; flex-direction: column !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) #promptInputDesktop { flex: 1 1 auto !important; height: auto !important; min-height: 72px !important; max-height: none !important; }
}
/* Холст: карточка «Нейросеть» ниже — значок 32 px, название в одну строку */
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) {
        min-height: 0 !important; height: 48px !important; padding: 0 10px 0 7px !important; gap: 10px !important; border-radius: 15px !important;
        box-shadow: inset 0 0 0 3px rgba(5, 5, 4, 0.45) !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge {
        width: 32px !important; height: 32px !important; flex: 0 0 32px !important; min-width: 32px !important; box-shadow: 0 0 0 2px #0b0a09, 0 0 0 3px rgba(236, 224, 198, 0.42) !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-ai-icon-badge img { width: 20px !important; height: 20px !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-custom-select-label {
        font-size: 0.86rem !important; -webkit-line-clamp: 1 !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) :is(#nanoImageFamilyTrigger, #modelFamilySelectWrap > .veo-custom-select-trigger) .veo-custom-select-chevron {
        width: 24px !important; height: 24px !important; flex: 0 0 24px !important; padding: 6px !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .form-section-help { width: 16px !important; height: 16px !important; }
}
/* Холст: короткие списки в настройках — по два в ряд; «Нейросеть», переключатели, поля и всё остальное — во всю ширину */
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-section:not(.collapsed) > .veo-settings-section-content {
        display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px 8px !important; align-items: end;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-section:not(.collapsed) > .veo-settings-section-content > * { grid-column: 1 / -1; min-width: 0; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-section:not(.collapsed) > .veo-settings-section-content > .veo-settings-row:has(> .veo-custom-select):not(:has(#nanoImageFamilySelectWrap, #modelFamilySelectWrap)):not(.vf-row-wide) { grid-column: auto; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-section:not(.collapsed) > .veo-settings-section-content > .veo-settings-row { margin: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .veo-settings-section:not(.collapsed) > .veo-settings-section-content > .veo-settings-row .veo-settings-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* Холст: короткая подпись пустого холста и кнопка «Как это работает» с окном шагов */
.vf-canvas-empty__frame { width: min(520px, 100%) !important; padding: 56px 40px !important; }
.vf-canvas-empty__frame > span {
    max-width: 340px; margin-top: 12px; font: 400 0.86rem/1.55 "Inter", sans-serif; color: rgba(239, 231, 214, 0.58);
}
html body .vf-howbtn { display: none !important; }
html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap > .vf-howbtn {
    display: inline-flex !important; position: absolute; top: 20px !important; left: 24px; height: 42px !important; padding: 0 16px 0 6px !important; box-sizing: border-box; align-items: center;
}
html body.vf-view-studio.vf-how-open .veo-chat-messages-wrap > .vf-howbtn { border-color: rgba(242, 232, 211, 0.7) !important; background: linear-gradient(180deg, #2a261d, #14120e) !important; }
.vf-howpanel { display: none; }
html body.vf-view-studio.vf-how-open.veo-generation-body:not(.mobile-version) .veo-chat-messages-wrap > .vf-howpanel {
    display: grid; place-items: center; position: absolute; inset: 0; z-index: 7; padding: 72px 28px 28px; box-sizing: border-box;
    background: rgba(5, 5, 4, 0.72); border-radius: inherit; container-type: inline-size; animation: vf-how-fade 0.25s ease both;
}
.vf-howpanel__card {
    width: min(880px, 100%); box-sizing: border-box; padding: 18px 18px 18px; border-radius: 22px;
    background: radial-gradient(120% 80% at 50% 0%, rgba(255, 250, 240, 0.05), transparent 60%), linear-gradient(180deg, #15130f, #0b0a08);
    border: 1px solid rgba(236, 224, 198, 0.22); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6), inset 0 0 0 4px rgba(5, 5, 4, 0.45);
    animation: vf-canvas-empty-in 0.4s cubic-bezier(.2, .8, .2, 1) both;
}
.vf-howpanel__head { display: flex; align-items: center; justify-content: space-between; margin: 0 2px 14px 6px; }
.vf-howpanel__head b { font: italic 500 1.5rem/1.1 "Cormorant Garamond", "Cormorant", Georgia, serif; color: #f2e8d3; }
.vf-howpanel__close {
    width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(236, 224, 198, 0.26); background: transparent;
    color: rgba(236, 224, 198, 0.8); font: 400 12px/1 "Inter", sans-serif; cursor: pointer; transition: border-color 0.2s, color 0.2s;
}
.vf-howpanel__close:hover { border-color: rgba(242, 232, 211, 0.65); color: #fffaf0; }
.vf-howpanel .vf-csteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@container (min-width: 760px) { .vf-howpanel .vf-csteps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@keyframes vf-how-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .vf-howpanel, .vf-howpanel__card { animation: none !important; } }

/* «Мои генерации» в Холсте: карточки — крупный снимок, под ним модель и дата, промпт ровно в 2 строки, кнопки ID / на холст / скачать */
/* строки — по высоте карточки: карточка с overflow:hidden иначе ужималась под высоту окна, и ряды налезали друг на друга */
html body .vf-gallery__grid { grid-template-columns: repeat(auto-fill, minmax(214px, 1fr)) !important; grid-auto-rows: max-content !important; align-content: start !important; gap: 14px !important; }
.vf-gcard {
    display: flex; flex-direction: column; min-width: 0; border-radius: 18px; overflow: hidden;
    background: linear-gradient(180deg, #13110d, #0b0a08); border: 1px solid rgba(236, 224, 198, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 250, 240, 0.04); transition: border-color 0.25s, transform 0.3s cubic-bezier(.2, .8, .2, 1), box-shadow 0.3s;
    animation: vf-canvas-empty-in 0.5s cubic-bezier(.2, .8, .2, 1) both;
}
.vf-gcard:hover { border-color: rgba(242, 232, 211, 0.42); transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0, 0, 0, 0.55); }
.vf-gcard.is-on { border-color: rgba(242, 232, 211, 0.6); box-shadow: 0 0 0 1px rgba(242, 232, 211, 0.25), 0 0 28px rgba(236, 224, 198, 0.16); }
.vf-gcard__media {
    position: relative; display: block; width: 100%; aspect-ratio: 1; padding: 0; margin: 0; border: 0; border-radius: 0;
    background: #0a0a09; overflow: hidden; cursor: zoom-in;
}
.vf-gcard__media :is(img, video) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s cubic-bezier(.2, .8, .2, 1); pointer-events: none; }
.vf-gcard:hover .vf-gcard__media :is(img, video) { transform: scale(1.04); }
.vf-gcard__zoom {
    position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
    background: rgba(8, 8, 7, 0.62); border: 1px solid rgba(236, 224, 198, 0.3); opacity: 0; transform: scale(0.9); transition: opacity 0.2s, transform 0.2s;
}
.vf-gcard__media:hover .vf-gcard__zoom, .vf-gcard__media:focus-visible .vf-gcard__zoom { opacity: 1; transform: none; }
.vf-gcard__zoom svg { width: 14px; height: 14px; fill: none; stroke: #f2e8d3; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.vf-gcard__body { display: flex; flex-direction: column; gap: 7px; padding: 11px 12px 12px; min-width: 0; }
.vf-gcard__row { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.vf-gcard__row b { flex: 0 0 auto; width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 0.8rem/1.2 "Inter", sans-serif; color: #f5eddc; }
.vf-gcard__row time { flex: 0 0 auto; font: 500 0.68rem/1 "Inter", sans-serif; font-feature-settings: "tnum" 1, "lnum" 1; color: rgba(236, 224, 198, 0.5); }
.vf-gcard__prompt {
    margin: 0; font: 400 0.74rem/1.45 "Inter", sans-serif; color: rgba(239, 231, 214, 0.6);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; min-height: 2.9em;
}
.vf-gcard__acts { display: flex; align-items: center; gap: 6px; margin-top: 2px; }
.vf-gcard__id {
    display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 9px; margin-right: auto; border-radius: 999px; cursor: pointer;
    background: rgba(236, 224, 198, 0.05); border: 1px solid rgba(236, 224, 198, 0.18); color: #f2e8d3;
    font: 600 0.68rem/1 "Inter", sans-serif; font-feature-settings: "tnum" 1, "lnum" 1; transition: border-color 0.2s, background 0.2s;
}
.vf-gcard__id span { color: rgba(236, 224, 198, 0.5); letter-spacing: 0.08em; }
.vf-gcard__id svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.7; opacity: 0.7; }
.vf-gcard__id:hover { border-color: rgba(242, 232, 211, 0.5); background: rgba(236, 224, 198, 0.09); }
.vf-gcard__id.is-done { border-color: rgba(242, 232, 211, 0.7); }
.vf-gcard__id.is-done svg { display: none; }
.vf-gcard__id.is-done::after { content: "✓"; font-size: 0.72rem; color: #fffaf0; }
.vf-gcard__btn {
    width: 28px; height: 28px; flex: 0 0 28px; padding: 0; display: grid; place-items: center; border-radius: 50%; cursor: pointer;
    background: transparent; border: 1px solid rgba(236, 224, 198, 0.2); color: #f2e8d3; transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
.vf-gcard__btn:hover { border-color: rgba(242, 232, 211, 0.6); background: rgba(236, 224, 198, 0.08); transform: translateY(-1px); }
.vf-gcard__btn svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
@media (prefers-reduced-motion: reduce) { .vf-gcard, .vf-gcard__media :is(img, video) { animation: none; transition: none; } }

/* ==========================================================================
   b26: полоса прокрутки «Хронограф» (выбрана из 10 вариантов): дорожка — пунктир делений,
   бегунок — капсула белого золота. Заменяет «заводную головку» b25.
   ========================================================================== */
@supports selector(::-webkit-scrollbar) {
    html:root body *::-webkit-scrollbar-track {
        background: radial-gradient(circle, rgba(236, 224, 198, 0.4) 1px, transparent 1.5px) center top / 10px 10px repeat-y !important;
    }
    html:root body *::-webkit-scrollbar-track:horizontal { background: transparent !important; }
    html:root body *::-webkit-scrollbar-thumb:vertical {
        min-height: 32px; border: 3px solid transparent !important; border-radius: 6px !important; box-shadow: none !important;
        background: linear-gradient(90deg, #cdbf9f, #f7efde 50%, #cdbf9f) padding-box !important;
    }
    html:root body *::-webkit-scrollbar-thumb:vertical:hover,
    html:root body *::-webkit-scrollbar-thumb:vertical:active { background: linear-gradient(90deg, #e2d6bb, #fffaf0 50%, #e2d6bb) padding-box !important; }

    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar-track,
    html:root body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) #veoChatMessagesDesktop::-webkit-scrollbar-track {
        border-radius: 0 !important;
        background: radial-gradient(circle, rgba(236, 224, 198, 0.42) 1.1px, transparent 1.6px) center top / 12px 12px repeat-y !important;
    }
    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar-thumb:vertical {
        min-height: 40px; border: 3px solid transparent !important; border-radius: 6px !important; box-shadow: none !important;
        background: linear-gradient(90deg, #cdbf9f, #f7efde 50%, #cdbf9f) padding-box !important;
    }
    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar-thumb:vertical:hover,
    :is(html:root, html:root body #veoChatMessagesDesktop, html:root body #veoChatsList, html:root body .vf-gallery__grid, html:root body .veo-gallery-picker-body)::-webkit-scrollbar-thumb:vertical:active {
        background: linear-gradient(90deg, #e2d6bb, #fffaf0 50%, #e2d6bb) padding-box !important;
    }
}
/* список часовых поясов в меню-часах открывается влево от кнопки «Авто» — не уходит за край экрана */
html body .vf-user-menu-dropdown .vf-menu-tz-dropdown { left: auto !important; right: 0 !important; transform: none !important; }

/* ==========================================================================
   Холст, левая колонка v3: сверху — все настройки (нейросеть, модель, формат кадра и качество),
   снизу — поле промпта обычной высоты и кнопки: ряд инструментов с ценой справа и большая «Создать»
   ========================================================================== */
@media (min-width: 961px) {
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-desktop-layout { grid-template-rows: minmax(0, 1fr) auto !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings { align-self: stretch !important; max-height: none !important; min-height: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-wrapper { align-self: end !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) :is(.veo-prompt-stack, .veo-prompt-box, .veo-prompt-area) { flex: 0 0 auto !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-input-zone { flex: 0 0 auto !important; min-height: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) #promptInputDesktop {
        flex: 0 0 auto !important; height: clamp(96px, calc(18vh / var(--vf-z, 1)), 170px) !important; min-height: 0 !important; max-height: none !important;
    }

    /* «Формат кадра и качество» — отдельной карточкой в блоке настроек */
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .vf-fstrip-card {
        /* та же карточка, что у «Выбора модели» */
        grid-column: 1 / -1; min-width: 0; box-sizing: border-box; border-radius: 18px;
        background: rgba(11, 12, 12, 0.94); border: 1px solid rgba(236, 224, 198, 0.3);
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-right-settings .vf-fstrip-card > .vf-fstrip {
        padding: 12px 14px 13px !important; margin: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important;
    }

    /* кнопки: первый ряд — инструменты слева, цена справа; второй — большая «Создать» во всю ширину */
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar {
        display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: flex-start !important;
        gap: 0 8px !important; row-gap: 0 !important; padding: 10px 12px 12px !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-left { order: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right > :is(#veoEnterSendBtn, #veoAutoSendBtn, .veo-mic-btn, #veoMicBtnDesktop) { order: 1 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right > :is(#costDisplayDesktopWrap, .veo-cost-wrap) {
        order: 2 !important; margin: 0 0 0 auto !important; height: 40px !important; min-height: 0 !important; padding: 0 12px !important;
        display: inline-flex !important; align-items: center !important; gap: 4px !important; border-radius: 999px !important; box-sizing: border-box !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) #costDisplayDesktop { height: auto !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-bar::after { order: 3 !important; flex: 0 0 100% !important; height: 0 !important; margin: 0 !important; }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-control-right > .veo-prompt-send-wrap {
        order: 4 !important; flex: 1 1 100% !important; width: 100% !important; margin: 12px 0 0 !important; display: flex !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-send {
        flex: 1 1 auto !important; width: 100% !important; height: 54px !important; min-height: 54px !important; border-radius: 999px !important;
        justify-content: center !important; gap: 12px !important; padding: 0 7px !important;
        font-size: 0.9rem !important; letter-spacing: 0.14em !important;
    }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-send .veo-prompt-send-text { flex: 1 1 auto; text-align: center; letter-spacing: inherit !important; margin-left: 52px !important; /* = значок справа + зазор: надпись ровно по центру кнопки */ }
    html body.vf-view-studio.veo-generation-body:not(.mobile-version) .veo-prompt-send .veo-prompt-send-icon { width: 40px !important; height: 40px !important; flex: 0 0 40px !important; }

    /* счётчик фото «0/4» — маленький значок в углу кнопки, как «10» у соседней; раньше висел под кнопкой и налезал на цену */
    html body.veo-generation-body:not(.mobile-version) #veoPhotoUploadBtn { position: relative !important; overflow: visible !important; }
    /* в Ленте и в Холсте одинаково: значок в углу кнопки, цифры ровно по центру; цвет — сколько фото уже добавлено */
    html body.veo-generation-body:not(.mobile-version) #veoPhotoUploadCounter {
        position: absolute !important; top: -7px !important; right: -8px !important; left: auto !important; bottom: auto !important; transform: none !important;
        min-width: 26px !important; height: 17px !important; padding: 0 5px !important; margin: 0 !important; box-sizing: border-box !important;
        display: inline-flex !important; align-items: center !important; justify-content: center !important; border-radius: 999px !important; z-index: 2;
        font: 800 10px/1 "Inter", sans-serif !important; font-feature-settings: "tnum" 1, "lnum" 1 !important; letter-spacing: 0 !important; text-align: center !important;
        color: #f5eddc !important; -webkit-text-fill-color: #f5eddc !important; background: #1a1813 !important;
        border: 1px solid rgba(236, 224, 198, 0.5) !important; box-shadow: 0 0 0 2px #0b0a08 !important; animation: none !important;
    }
    /* 1–3 фото — спокойный зелёный, все 4 — красный: больше добавить нельзя */
    html body.veo-generation-body:not(.mobile-version) #veoPhotoUploadCounter[data-vf-n="some"] {
        color: #f1fff4 !important; -webkit-text-fill-color: #f1fff4 !important; background: linear-gradient(180deg, #46a066, #2b7347) !important;
        border-color: rgba(170, 240, 195, 0.55) !important; box-shadow: 0 0 0 2px #0b0a08, 0 0 10px rgba(80, 190, 120, 0.45) !important;
    }
    html body.veo-generation-body:not(.mobile-version) #veoPhotoUploadCounter[data-vf-n="full"] {
        color: #fff4f2 !important; -webkit-text-fill-color: #fff4f2 !important; background: linear-gradient(180deg, #cf4a43, #932822) !important;
        border-color: rgba(255, 180, 170, 0.55) !important; box-shadow: 0 0 0 2px #0b0a08, 0 0 10px rgba(220, 70, 60, 0.5) !important;
    }
}
.vf-frame-pop.vf-frame-pop--down { transform: translateY(-10px); clip-path: inset(-40px -40px 100% -40px round 20px); }
.vf-frame-pop.vf-frame-pop--down.is-open { transform: none; clip-path: inset(-40px -40px -40px -40px round 20px); }
.vf-frame-pop.vf-frame-pop--down::after { bottom: auto; top: -6px; transform: rotate(225deg); }

/* Лента: полоса прокрутки идёт справа от рамки, а не по её линии — правая линия рамки и разделитель с ромбом
   отступают внутрь на ширину полосы; переключатель «Лента | Холст» — в правом верхнем углу, по краю миникарты */
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-chat-messages-wrap::after { right: 15px !important; }
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-chat-body::before { right: 15px !important; }
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-chat-body::after { right: 15.5px !important; }
html body.veo-generation-body:not(.mobile-version):not(.vf-view-studio) .veo-chat-messages-wrap > .vf-mode-dock { padding-right: 26px !important; }

/* «Купить»: прежнее золото + гильоше — две сетки тонких дуг из разных центров дают мягкий волнистый узор,
   как гравировка на циферблате (цвет и тени кнопки прежние) */
html body .profile-buy-btn,
html body .desktop-header .profile-buy-btn,
html body.chatgpt-page.veo-generation-body .header .buy-balance-group .profile-buy-btn {
    background:
        repeating-radial-gradient(circle at -10% 170%, rgba(110, 80, 26, 0.22) 0 0.9px, transparent 1.2px 5px),
        repeating-radial-gradient(circle at 115% -70%, rgba(255, 250, 230, 0.34) 0 0.9px, transparent 1.2px 5px),
        linear-gradient(135deg, #fff3cf 0%, #f0d58f 35%, #d8b25e 70%, #a9843a 100%) !important;
}
html body .profile-buy-btn:hover,
html body .desktop-header .profile-buy-btn:hover {
    background:
        repeating-radial-gradient(circle at -10% 170%, rgba(110, 80, 26, 0.14) 0 0.8px, transparent 1.2px 5px),
        repeating-radial-gradient(circle at 115% -70%, rgba(255, 252, 238, 0.32) 0 0.8px, transparent 1.2px 5px),
        linear-gradient(135deg, #fff7dd 0%, #f5dfa3 35%, #e0bd6c 70%, #b28d42 100%) !important;
}

/* b35: списание — «старт с капсулы»: плашка «−N» под капсулой, одна ракета по дуге с тонким тающим следом и искрами */
#vfBalFx .vf-bal-chip3 {
    position: fixed; z-index: 2147483000; transform: translate(-50%, -6px); opacity: 0; display: inline-flex; align-items: center; gap: 3px;
    padding: 4px 9px 4px 10px; border-radius: 999px; pointer-events: none; white-space: nowrap;
    font: 700 12px/1 "Inter", sans-serif; font-feature-settings: "tnum" 1, "lnum" 1; letter-spacing: 0.01em; color: #f5eddc;
    background: linear-gradient(180deg, rgba(26, 24, 19, 0.96), rgba(11, 10, 9, 0.96)); border: 1px solid rgba(236, 224, 198, 0.45);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.55), 0 0 14px rgba(255, 246, 224, 0.12);
    animation: vf-chip3 1.6s cubic-bezier(.22, 1, .36, 1) forwards;
}
#vfBalFx .vf-bal-chip3 svg { width: 14px; height: 14px; }
@keyframes vf-chip3 {
    0% { opacity: 0; transform: translate(-50%, -6px) scale(0.9); }
    14% { opacity: 1; transform: translate(-50%, 0) scale(1); }
    70% { opacity: 1; transform: translate(-50%, 2px) scale(1); }
    100% { opacity: 0; transform: translate(-50%, 8px) scale(0.96); }
}
#vfBalFx .vf-bal-trail { position: fixed; left: 0; top: 0; z-index: 2147482999; pointer-events: none; overflow: visible; transition: opacity 0.65s ease; }
#vfBalFx .vf-bal-trail.is-fading { opacity: 0; }
#vfBalFx .vf-bal-trail path {
    fill: none; stroke: rgba(255, 246, 224, 0.75); stroke-width: 1.6; stroke-linecap: round;
    filter: drop-shadow(0 0 4px rgba(255, 246, 224, 0.55));
}
#vfBalFx .vf-bal-ship3 {
    position: fixed; left: 0; top: 0; z-index: 2147483001; width: 22px; height: 22px; margin: -11px 0 0 -11px; opacity: 0;
    pointer-events: none; will-change: transform, opacity; filter: drop-shadow(0 0 5px rgba(255, 246, 224, 0.55));
}
#vfBalFx .vf-bal-ship3 svg { position: relative; width: 100%; height: 100%; display: block; }
#vfBalFx .vf-bal-ship3__fire {
    position: absolute; left: 50%; top: 50%; width: 46%; height: 46%; margin: -23% 0 0 -23%; border-radius: 50%; opacity: 0;
    transform: translate(-48%, 48%) scale(0.4); background: radial-gradient(circle, #fffdf6 0 22%, rgba(255, 232, 186, 0.85) 46%, rgba(255, 214, 150, 0) 74%);
    transition: opacity 0.15s ease, transform 0.15s ease;
}
#vfBalFx .vf-bal-ship3.is-lit .vf-bal-ship3__fire { opacity: 1; transform: translate(-48%, 48%) scale(1); animation: vf-fire3 0.08s linear infinite alternate; }
#vfBalFx .vf-bal-ship3.is-lit { filter: drop-shadow(0 0 9px rgba(255, 246, 224, 0.8)); }
@keyframes vf-fire3 { from { transform: translate(-46%, 46%) scale(0.85); } to { transform: translate(-52%, 54%) scale(1.15); } }
#vfBalFx .vf-bal-ember {
    position: fixed; z-index: 2147483000; width: 3px; height: 3px; margin: -1.5px 0 0 -1.5px; border-radius: 50%; pointer-events: none;
    background: #fff4d8; box-shadow: 0 0 6px rgba(255, 236, 196, 0.9); animation: vf-ember 0.6s ease-out forwards;
}
@keyframes vf-ember { to { opacity: 0; transform: translate(var(--dx, 0), 10px) scale(0.3); } }
@media (prefers-reduced-motion: reduce) { #vfBalFx .vf-bal-chip3 { animation-duration: 1.2s; } }
