/* ИИ-Лис — общий стиль сайта (палитра по лого: оранжевый лис на тёмном).
   Структура: токены → база → утилиты → компоненты → чат → брейкпоинты. */

/* ── токены ── */
:root { --bg:#121317; --card:#1a1c22; --line:#2b2e38; --fg:#eceded; --dim:#98a0ae;
        --acc:#f58411; --acc-deep:#c96a08; --acc2:#ffd166; --ok:#4fd07e; --err:#ff6b5e;
        --radius:12px; --radius-sm:8px; --nav-h:56px;
        --shadow:0 6px 24px rgba(0,0,0,.35); }

/* ── база ── */
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--fg);
       font:15px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif; }
a { color:var(--acc); text-decoration:none; }
a:hover { color:var(--acc2); }
:focus-visible { outline:2px solid var(--acc); outline-offset:2px; }
img { max-width:100%; }
h1 { font-size:24px; } h2 { font-size:19px; } h3 { margin:0 0 6px; }
p { margin:.5em 0; }
hr { border:0; border-top:1px solid var(--line); }

/* ── утилиты ── */
.muted { color:var(--dim); } .err { color:var(--err); } .ok { color:var(--ok); }
.badge { display:inline-block; background:var(--bg); border:1px solid var(--line);
         border-radius:999px; padding:2px 11px; font-size:12px; color:var(--dim); }
.badge.acc { color:var(--acc); border-color:var(--acc); }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.spacer { flex:1; }
.grid-2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:12px; }
.grid-3 { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
.mt-1 { margin-top:8px; } .mt-2 { margin-top:16px; } .mt-3 { margin-top:28px; }
.table-scroll { overflow-x:auto; }
.table-scroll table { min-width:560px; }

/* ── навбар ── */
nav { display:flex; gap:16px; align-items:center; padding:0 20px; height:var(--nav-h);
      border-bottom:1px solid var(--line); background:var(--card);
      position:relative; z-index:20; }
nav .brand { display:flex; align-items:center; gap:9px; font-weight:700;
             color:var(--fg); font-size:17px; }
nav .brand img { width:32px; height:32px; border-radius:9px; display:block; }
nav .brand:hover { color:var(--acc2); }
.nav-links { display:flex; gap:16px; align-items:center; flex:1; }
.nav-links a { color:var(--dim); white-space:nowrap; }
.nav-links a:hover, .nav-links a.act { color:var(--fg); }
.nav-links a.act { color:var(--acc); }
nav form { margin:0; }
/* юзер-меню (details/summary — без JS) */
details.usermenu { position:relative; }
details.usermenu summary { list-style:none; cursor:pointer; color:var(--dim);
  font-size:14px; max-width:180px; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap; padding:6px 10px; border:1px solid var(--line);
  border-radius:var(--radius-sm); }
details.usermenu summary::-webkit-details-marker { display:none; }
details.usermenu[open] summary { color:var(--fg); border-color:var(--acc); }
.usermenu-panel { position:absolute; right:0; top:calc(100% + 8px); min-width:190px;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:8px; display:flex; flex-direction:column; gap:2px; }
.usermenu-panel a, .usermenu-panel button { display:block; width:100%; text-align:left;
  background:transparent; border:0; color:var(--fg); font:inherit; padding:8px 12px;
  border-radius:var(--radius-sm); cursor:pointer; }
.usermenu-panel a:hover, .usermenu-panel button:hover { background:var(--bg); color:var(--acc); }
.usermenu-panel hr { margin:4px 0; border-top:1px solid var(--line); }
/* бургер: две полоски-СИБЛИНГА (span и ::before самой кнопки); при .open
   сходятся в крест. Вложенный span::before нельзя: он наследует поворот
   родителя и крест получается перекошенным. */
.burger { display:none; width:42px; height:38px; background:transparent;
  border:1px solid var(--line); border-radius:var(--radius-sm); cursor:pointer;
  position:relative; flex-shrink:0; }
.burger::before { content:""; }
.burger span, .burger::before { position:absolute; left:11px; right:11px;
  height:2px; background:var(--fg); border-radius:2px; transition:transform .15s; }
.burger span { top:14px; }
.burger::before { top:21px; }
.burger.open span { transform:translateY(3.5px) rotate(45deg); }
.burger.open::before { transform:translateY(-3.5px) rotate(-45deg); }
/* мобильное меню — fixed-панель на весь экран под шапкой */
.mobile-menu { display:none; position:fixed; top:var(--nav-h); left:0; right:0; bottom:0;
  background:var(--card); border-bottom:1px solid var(--line); padding:8px 16px 14px;
  overflow-y:auto; overscroll-behavior:contain; }
.mobile-menu.open { display:block; }
.mobile-menu a, .mobile-menu button { display:block; width:100%; text-align:left;
  background:transparent; border:0; color:var(--fg); font:inherit; padding:12px 6px;
  border-bottom:1px solid var(--line); cursor:pointer; }
.mobile-menu a.act { color:var(--acc); }
.mobile-menu form { margin:0; }
.menu-close { display:flex; align-items:center; justify-content:center;
  width:42px; height:38px; margin:6px 0 2px auto; background:transparent;
  border:1px solid var(--line); border-radius:var(--radius-sm); color:var(--fg);
  font-size:20px; line-height:1; cursor:pointer; }

/* ── каркас ── */
.wrap { max-width:960px; margin:0 auto; padding:28px 16px 40px; }
.wrap.wide { max-width:1080px; }

/* ── футер ── */
.foot { border-top:1px solid var(--line); margin-top:40px; padding:26px 16px 34px;
        background:var(--card); font-size:13.5px; }
.foot-grid { max-width:1080px; margin:0 auto; display:grid;
             grid-template-columns:2fr 1fr 1.2fr 1.6fr; gap:22px; }
.foot h4 { margin:0 0 8px; font-size:13px; color:var(--dim); text-transform:uppercase;
           letter-spacing:.05em; }
.foot a { display:block; padding:2px 0; color:var(--dim); }
.foot a:hover { color:var(--acc2); }
.foot .brandline { display:flex; align-items:center; gap:9px; font-weight:700;
                   color:var(--fg); font-size:16px; margin-bottom:6px; }
.foot .brandline img { width:26px; height:26px; border-radius:7px; }
.foot .req { color:var(--dim); line-height:1.6; }
.foot .copy { max-width:1080px; margin:18px auto 0; padding-top:14px;
              border-top:1px solid var(--line); color:var(--dim); font-size:12.5px; }

/* ── карточки, кнопки, формы ── */
.card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
        padding:20px; margin-bottom:16px; }
.btn { display:inline-block; background:var(--acc); color:#241303; border:0;
       border-radius:10px; padding:10px 22px; font:inherit; font-weight:600; cursor:pointer; }
.btn:hover { background:var(--acc-deep); }
.btn:disabled { opacity:.5; cursor:default; }
.btn.ghost { background:transparent; border:1px solid var(--line); color:var(--fg); }
.btn.ghost:hover { border-color:var(--acc); color:var(--acc); background:transparent; }
.btn.warn { background:var(--acc2); color:#1c1409; }
.btn.sm { padding:7px 14px; font-size:14px; }
.btn.big { padding:13px 30px; font-size:16px; }
input, textarea, select { width:100%; background:var(--bg); color:var(--fg); font:inherit;
       border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
textarea { min-height:110px; resize:vertical; }
label { display:block; margin:12px 0 6px; color:var(--dim); font-size:14px; }
table { width:100%; border-collapse:collapse; font-size:14px; }
td, th { padding:7px 8px; border-bottom:1px solid var(--line); text-align:left; }

/* ── тарифы ── */
.plans { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.plan { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
        padding:18px; position:relative; }
.plan.cur { border-color:var(--acc); }
.plan.cur .price { color:var(--acc); }
.plan .price { font-size:22px; font-weight:700; }
.plan ul { padding-left:18px; color:var(--dim); font-size:14px; }
.plan .plan-badge { position:absolute; top:-10px; right:14px; background:var(--acc);
  color:#241303; font-size:11.5px; font-weight:700; padding:2px 10px; border-radius:999px; }

/* ── дашборд кабинета ── */
.dash-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:22px; }
.stat { margin-bottom:0; display:flex; flex-direction:column; gap:4px; }
.stat-label { color:var(--dim); font-size:13px; text-transform:uppercase; letter-spacing:.05em; }
.stat-value { font-size:26px; font-weight:700; }
.stat .btn { margin-top:10px; align-self:flex-start; }
.stat-links { display:flex; flex-direction:column; gap:6px; margin-top:4px; }
.progress { height:8px; background:var(--bg); border-radius:999px; overflow:hidden; }
.progress i { display:block; height:100%; background:var(--acc); border-radius:999px; }

/* ── лендинг ── */
.hero { display:flex; gap:28px; align-items:center; margin-bottom:24px; }
.hero img { width:128px; height:128px; border-radius:26px; flex-shrink:0;
            box-shadow:0 6px 30px rgba(245,132,17,.22); }
.hero h1 { margin:0 0 8px; font-size:42px; line-height:1.15; letter-spacing:-0.5px; }
.hero .sub { color:var(--dim); font-size:16px; margin:0 0 14px; }
.hero-badges { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.step { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
        padding:16px; }
.step .n { color:var(--acc); font-weight:700; font-size:13px; }
.feature { margin-bottom:0; }
.feature .ico { font-size:22px; }
.faq details { background:var(--card); border:1px solid var(--line);
               border-radius:var(--radius-sm); margin-bottom:8px; }
.faq summary { cursor:pointer; padding:12px 16px; font-weight:600; }
.faq details[open] summary { color:var(--acc); }
.faq .faq-body { padding:0 16px 14px; color:var(--dim); }
.cta { text-align:center; padding:34px 20px; }
.cta h2 { margin-top:0; }

/* демо-галерея и оффер на лендинге */
.demo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.demo-item { margin:0; background:var(--card); border:1px solid var(--line);
             border-radius:var(--radius-sm); overflow:hidden; }
.demo-item img { display:block; width:100%; height:150px; object-fit:cover; }
.demo-item figcaption { padding:8px 10px; font-size:13px; }
.offer { padding:20px; }
.offer-row { display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
.offer-row > div:first-child { flex:1 1 260px; }
.offer-note { background:var(--bg); border:1px dashed var(--line); border-radius:var(--radius-sm);
              padding:12px 16px; font-weight:600; display:grid; gap:4px; }
@media (max-width:760px){ .steps { grid-template-columns:1fr; } }

/* ── инфо-страницы ── */
.doc h2 { margin-top:26px; }
.doc p, .doc li { color:var(--dim); }
.doc strong { color:var(--fg); }

/* ── чат ── */
.chat-page { display:flex; flex-direction:column; }
/* Каркас фиксированной высоты: лог — единственный скроллящийся контейнер.
   Если дать каркасу расти по контенту (min-height), окно чата вытягивается
   вслед за историей, поле ввода уезжает за экран, а автопрокрутка к низу
   перестаёт работать (скроллится страница, а не лог). */
.chat-page .wrap { display:flex; flex-direction:column;
                   height:calc(100vh - var(--nav-h));
                   height:calc(100dvh - var(--nav-h)); }
.chat-meta { font-size:13.5px; color:var(--dim); padding:0 2px 10px; }
.chat-layout { display:grid; grid-template-columns:260px 1fr;
               grid-template-rows:minmax(0,1fr); gap:14px; align-items:stretch;
               flex:1 1 auto; min-height:0; }
.chat-side { background:var(--card); border:1px solid var(--line);
             border-radius:var(--radius); padding:14px;
             overflow-y:auto; min-height:0; }
.chat-side .m { display:block; width:100%; text-align:left; background:transparent;
                border:0; border-left:3px solid transparent; color:var(--fg);
                padding:7px 10px; font:inherit; cursor:pointer; border-radius:6px; }
.chat-side .m:hover { background:var(--bg); }
.chat-side .m.cur { border-left-color:var(--acc); background:var(--bg); }
.chat-side .m:disabled { color:var(--dim); opacity:.6; cursor:not-allowed; }
.chat-side .m .cr { float:right; color:var(--dim); font-size:12px; }
.chat-group { margin:10px 0 2px; color:var(--dim); font-size:12px; text-transform:uppercase;
              letter-spacing:.04em; }
.chat-side-links { margin-top:12px; padding-top:10px; border-top:1px solid var(--line);
                   display:flex; flex-direction:column; gap:4px; }
.chat-side-links a { font-size:13.5px; }
.chat-side .hint { font-size:12px; color:var(--dim); margin-top:10px; }
.chat-window { background:var(--card); border:1px solid var(--line);
               border-radius:var(--radius); display:flex; flex-direction:column;
               height:66vh;                          /* fallback */
               height:calc(100dvh - var(--nav-h) - 130px); min-height:420px; }
.chat-window > * { min-height:0; }
.doc-banner { display:flex; align-items:center; gap:8px; margin:10px 12px 0;
              padding:7px 12px; background:var(--bg); border:1px solid var(--acc);
              border-radius:10px; font-size:14px; color:var(--acc2); }
.doc-banner .doc-x { margin-left:auto; background:transparent; border:0;
                     color:var(--dim); font:16px/1 system-ui; cursor:pointer; }
.doc-banner .doc-x:hover { color:var(--err); }
.chat-log { flex:1 1 auto; overflow-y:auto; padding:18px; display:flex;
            flex-direction:column; gap:12px; overscroll-behavior:contain;
            -webkit-overflow-scrolling:touch; }
.msg { max-width:82%; padding:10px 14px; border-radius:12px; white-space:pre-wrap;
       word-break:break-word; }
.msg.user { align-self:flex-end; background:#463017; }
.msg.assistant { align-self:flex-start; background:var(--bg); border:1px solid var(--line); }
.msg.assistant .who { color:var(--dim); font-size:12px; margin-bottom:4px; }
.msg.cursor { border-left:3px solid var(--acc); }
/* карточка «докупить кредиты» (402/403/429) и карточка апгрейда-чипа */
.msg.buy-card { max-width:92%; background:var(--card);
                border:1px solid var(--acc); box-shadow:0 0 0 1px rgba(0,0,0,.1); }
.msg.buy-card .who { color:var(--dim); font-size:12px; margin-bottom:4px; }
.buy-row { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.buy-row .btn { padding:8px 14px; white-space:nowrap; }
.chat-img { max-width:100%; max-height:380px; border-radius:10px;
            border:1px solid var(--line); display:block; margin-top:4px; }
.chat-audio { width:100%; margin-top:6px; }
/* режимы + ввод */
.mode-chips { display:flex; gap:6px; flex-wrap:wrap; padding:10px 12px 0; }
.chip { background:var(--bg); border:1px solid var(--line); color:var(--dim);
        border-radius:999px; padding:5px 13px; font:inherit; font-size:13.5px;
        cursor:pointer; }
.chip:hover { color:var(--fg); }
.chip.cur { background:var(--acc); border-color:var(--acc); color:#241303; font-weight:600; }
.chip:disabled { opacity:.5; cursor:not-allowed; }
/* подсказки-стартеры в пустом чате */
.start-hints { display:flex; flex-wrap:wrap; gap:8px; }
.start-hint { background:var(--bg); border:1px solid var(--line); color:var(--fg);
              border-radius:999px; padding:9px 14px; font:inherit; font-size:13.5px;
              cursor:pointer; }
.start-hint:hover { border-color:var(--acc); color:var(--acc); }
.chat-input { display:flex; gap:8px; padding:12px; border-top:1px solid var(--line);
              align-items:flex-end; }
.chat-input textarea { min-height:44px; height:44px; max-height:120px; flex:1;
                       resize:none; overflow-y:auto; }
.chat-input .send-col { display:flex; flex-direction:column; }
.chat-input .btn { white-space:nowrap; }

/* ── галереи ── */
.gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; }
.gcell { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
         padding:8px; }
.gcell img { width:100%; border-radius:8px; display:block; }
.gcell .cap { font-size:12.5px; color:var(--dim); padding:6px 2px 2px;
              overflow:hidden; text-overflow:ellipsis; }
.player { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
          padding:14px; margin-bottom:10px; }
.player .cap { font-size:13.5px; margin-bottom:8px; }
.player .cap .muted { display:block; font-size:12px; }
.player audio { width:100%; }

/* ── брейкпоинты ── */
@media (max-width:760px) {
  .nav-links { display:none; }
  .burger { display:block; margin-left:auto; }
  nav { padding:0 14px; gap:10px; }
  .mobile-menu { z-index:40; }
  .wrap { padding:18px 14px 30px; }
  .dash-grid, .steps { grid-template-columns:1fr; }
  .foot-grid { grid-template-columns:1fr 1fr; }
  /* чат: полноэкранный, поле ввода над клавиатурой */
  .chat-layout { margin:0 -14px; gap:0; grid-template-columns:1fr; }
  /* сайдбар моделей → горизонтальная лента чипов (не съедает экран) */
  .chat-side { border:0; border-bottom:1px solid var(--line); border-radius:0;
               padding:8px 14px; max-height:118px; overflow-y:auto; }
  .chat-side .chat-group, .chat-side .hint, .chat-side-links { display:none; }
  .chat-side .m { display:inline-block; width:auto; border:1px solid var(--line);
                  border-radius:999px; padding:9px 14px; margin:2px 2px; overflow-wrap:anywhere; }
  .chat-side .m.cur { border-color:var(--acc); background:var(--bg); }
  .chat-side .m .cr { float:none; margin-left:4px; }
  /* высота окна = остаток экрана: цепочку высот задаёт базовый каркас */
  .chat-window { border:0; border-radius:0; border-top:1px solid var(--line);
                 height:100%; min-height:0; }
  .msg { max-width:90%; }
  .mode-chips { overflow-x:auto; flex-wrap:nowrap; padding-bottom:8px; }
  .chip { flex-shrink:0; }
  /* iOS: фокус на поле ввода не должен зумить страницу */
  input, textarea, select { font-size:16px; }
}
@media (max-width:480px) {
  body { font-size:14px; }
  .hero { flex-direction:column; text-align:center; }
  .hero h1 { font-size:32px; }
  .hero img { width:96px; height:96px; border-radius:20px; }
  .hero-badges { justify-content:center; }
  .hero .row { justify-content:center; }
  .foot-grid { grid-template-columns:1fr; gap:16px; }
  .table-scroll table { min-width:480px; font-size:13px; }
}
/* на странице чата футер убираем — экономим вертикаль */
body.chat-page .foot { display:none; }
/* ── мини-аппы (VK/TG/OK в iframe): полноценное приложение, не «часть сайта» ──
   Навигация/футер сайта скрыты, чат на весь экран iframe (и на десктопе),
   модельный список — лента чипов как на телефоне. */
body.in-embed nav, body.in-embed .mobile-menu, body.in-embed .foot { display:none; }
body.in-embed .chat-page .wrap { display:flex; flex-direction:column;
                                 padding:8px 0 0;
                                 height:100vh; height:100dvh; }
body.in-embed .chat-meta { font-size:12.5px; padding:0 14px 6px; }
body.in-embed .chat-layout { flex:1 1 auto; min-height:0; gap:0;
                             grid-template-columns:1fr; margin:0; }
body.in-embed .chat-side { border:0; border-bottom:1px solid var(--line);
                           border-radius:0; padding:8px 14px;
                           max-height:118px; overflow-y:auto; }
body.in-embed .chat-side .chat-group, body.in-embed .chat-side .hint,
body.in-embed .chat-side-links { display:none; }
body.in-embed .chat-side .m { display:inline-block; width:auto; border:1px solid var(--line);
                              border-radius:999px; padding:9px 14px; margin:2px;
                              overflow-wrap:anywhere; }
body.in-embed .chat-side .m.cur { border-color:var(--acc); background:var(--bg); }
body.in-embed .chat-side .m .cr { float:none; margin-left:4px; }
body.in-embed .chat-window { border:0; border-radius:0; height:auto;
                             min-height:0; flex:1 1 auto; }
body.in-embed .msg { max-width:90%; }