/* ═══ ВКЛАДКА «ЗАПИСИ» ══════════════════════════════════════════════════════
   Записи занятий, главы, выжимка и вопрос по записи. Своей вёрстки здесь почти
   нет: рельса занятий (.rail) и панели (#stages) переезжают сюда как есть, со
   всеми своими стилями из cabinet.css. Этот файл только чинит правила, которые
   были написаны, когда записи жили на одном экране с подготовкой.

   Подключать ПОСЛЕ cabinet.css и styles-кабинет.css — правила ниже перебивают
   именно их, и порядок здесь несущий.
   ────────────────────────────────────────────────────────────────────────── */

/* ── Рельса занятий ─────────────────────────────────────────────────────────
   styles-кабинет.css гасит рельсу, пока открыт урок ступени или бесплатные
   уроки: .wrap:has(#msurok) .rail и .wrap:has(#freescreen) .rail. Оба экрана
   живут во вкладке «Сейчас» и к записям отношения не имеют — но правило
   смотрит на .wrap целиком и достаёт рельсу на чужой вкладке.
   :has(#id) весит как id, поэтому и здесь нужен #rail, иначе не перебить.
   :not([hidden]) обязателен: без него мы перебили бы и #rail[hidden] —
   а этим атрибутом рельсу прячет сам код (buildRail, presentDetail). */
.wrap[data-nz="recs"] #rail:not([hidden]){display:block}

/* «Подготовка» на рельсе — теперь отдельная вкладка «Сейчас», второй вход в
   неё сбивал бы с толку и уводил на панель, которой на этой вкладке нет.
   Прячем стилем, а не удалением узла: buildRail вешает на него обработчики
   без проверок на null, и удалённая кнопка уронила бы построение рельсы. */
#nz-recs #tab-prep{display:none}

/* ── Пустое состояние и заметка о ненайденной записи ────────────────────────
   Оба — существующий компонент .closed (пунктирная карточка), поэтому своих
   цветов и рамок здесь нет. Парная строка под [hidden] нужна на будущее: у
   .closed своего display нет, но правило дешевле, чем поймать это потом. */
#zpempty[hidden]{display:none}
.zpnote{margin:var(--s4) 0 0}

/* ── Круглая кнопка «спросить по записи» ────────────────────────────────────
   Кнопка принадлежит панели прошедшего занятия, а панель теперь во вкладке
   «Записи». В cabinet.css она привязана к «Сейчас» (body:not([data-nz="now"])),
   и без правил ниже получилось бы обратное тому, что нужно: на записях кнопки
   нет, а на «Сейчас» она висит поверх чек-листа.

   Показываем узко и с оговорками, чтобы не отменить чужие запреты:
   · :not([hidden]) — кнопку гасит syncFab, пока разбор записи не готов;
   · :not(:has(.ov.on)) — при открытой шторке кнопка светилась бы сквозь
     затемнение (правило body:has(.ov.on) .fab в cabinet.css);
   · только до 1120px — шире чат стоит колонкой справа, кнопка там лишняя.

   Одну строку в cabinet.css это заменяет полностью; если её однажды поправят
   на body:not([data-nz="recs"]), правила ниже останутся верными. */
body:not([data-nz="recs"]) .fab{display:none}
@media (max-width:1119px){
  body[data-nz="recs"]:not(:has(.ov.on)) .fab:not([hidden]){display:flex}
}

/* Записи интенсива: карточка встречи, плеер, разделы по таймкодам. */
#zpint{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.zpi-card{background:var(--pane);border:1px solid var(--glass-line);border-radius:var(--r-l);
 padding:14px 15px;box-shadow:var(--pane-edge)}
.zpi-when{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--taupe)}
.zpi-tt{font-family:var(--font-head);font-size:17px;font-weight:680;margin:5px 0 10px}
/* Запасной системный плеер (когда свой не подключился) и место под свой. */
.zpi-video{width:100%;border-radius:14px;background:#000;display:block}
.zpi-plmesto{margin:2px 0 4px}
.zpi-glavy{margin-top:12px;display:flex;flex-direction:column;gap:4px}
.zpi-glavy>b{font-size:12.5px;margin-bottom:4px}
.zpi-g{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;background:none;
 border:0;padding:8px 6px;border-radius:10px;cursor:pointer;color:inherit;font:inherit}
.zpi-g:hover{background:var(--hover-bg)}
.zpi-t{flex:none;font-family:var(--mono);font-size:11.5px;color:var(--blue);padding-top:2px;min-width:54px}
.zpi-n{flex:1;min-width:0;font-size:13.5px;line-height:1.45;color:var(--ink2)}

/* ═══ ТРИ ПОЛОСЫ ПОД ЗАПИСЬЮ: ИНСАЙТЫ · РАЗГОВОР · РАЗДЕЛЫ ═══════════════════
   Одно занятие — один экран: выжимка, вопрос по записи и перемотка по местам
   переключаются на месте, а не уводят на другие страницы. */
.zpi-tabs{display:flex;gap:6px;margin:12px 0 10px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none}
.zpi-tabs::-webkit-scrollbar{display:none}
.zpi-tab{flex:none;min-height:34px;padding:0 14px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:none;color:var(--muted);
  font:inherit;font-size:13px;font-weight:650;white-space:nowrap;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.zpi-tab.on{color:var(--btn-ink);border-color:var(--btn-line);background:var(--btn-bg);box-shadow:var(--inset-1)}
.zpi-pane[hidden]{display:none}
.zpi-note{font-size:12.5px;color:var(--muted);line-height:1.5;margin:0}

/* Инсайты */
.zpi-about{font-size:13.5px;color:var(--ink2);line-height:1.6;margin:0 0 var(--s3)}
.zpi-sh{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.09em;
  text-transform:uppercase;color:var(--taupe);margin:var(--s4) 0 6px}
.zpi-ul{list-style:disc;margin:0;padding-left:19px}
.zpi-ul li{font-size:13.5px;color:var(--ink2);line-height:1.55;margin-bottom:5px}
.zpi-ul li::marker{color:var(--dim)}

/* Разговор */
.zpi-feed{display:flex;flex-direction:column;gap:8px;max-height:44vh;overflow-y:auto;padding:2px 2px 8px}
.zpi-msg{max-width:88%;padding:10px 13px;border-radius:16px;font-size:13.5px;line-height:1.5;
  white-space:pre-wrap;word-break:break-word}
.zpi-msg.me{align-self:flex-end;background:var(--accent-bg);color:var(--accent-ink)}
.zpi-msg.ai{align-self:flex-start;background:var(--glass-3);color:var(--ink2);border:1px solid var(--hair)}
.zpi-msg.ждёт{color:var(--taupe)}
.zpi-msg.ждёт::after{content:'';display:inline-block;width:1.2em;text-align:left;
  animation:nzkdots 1.2s steps(4,end) infinite}
.zpi-hello b{display:block;font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:4px}
.zpi-hello span{display:block;font-size:13px;color:var(--muted);line-height:1.5}
.zpi-row{display:flex;gap:8px;align-items:flex-end;margin-top:6px}
/* 16px — защита от зума на iPhone, как в чате консультанта. */
.zpi-row textarea{flex:1;min-height:44px;max-height:120px;resize:none;padding:11px 13px;
  border:1px solid var(--line);border-radius:var(--r-m);background:var(--glass-3);color:var(--ink);
  font:inherit;font-size:16px;line-height:1.35}
.zpi-row textarea:focus{outline:none;border-color:var(--open-line)}
.zpi-send{flex:none;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;
  cursor:pointer;color:var(--accent-ink);background:var(--accent-bg);
  box-shadow:0 12px 26px -14px var(--accent-glow)}
.zpi-send:disabled{opacity:.6;cursor:default}

/* Разделы: к времени добавилось описание — по нему видно, куда прыгаешь. */
.zpi-g .zpi-n i{display:block;font-style:normal;font-size:12px;color:var(--muted);
  line-height:1.45;margin-top:3px}

/* ── Список записей: корешки ─────────────────────────────────────────────────
   В списке — только дата, тема и сколько всего. Плеер с выжимкой и разговором
   живёт на своей странице: выбирать среди трёх развёрнутых записей неудобно. */
.zpi-row-card{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;
  gap:2px 10px;width:100%;text-align:left;margin-bottom:9px;padding:13px 14px;
  border:1px solid var(--glass-line);border-radius:var(--r-l);background:var(--pane);
  box-shadow:var(--pane-edge);color:inherit;font:inherit;cursor:pointer;
  -webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%)}
.zpi-row-card:active{transform:translateY(1px)}
.zpi-row-card .zpi-when{grid-column:1;font-family:var(--mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--taupe)}
.zpi-row-card .zpi-tt{grid-column:1;font-family:var(--font-head);font-size:15px;font-weight:700;
  letter-spacing:-.015em;color:var(--ink);margin-top:2px}
.zpi-meta{grid-column:1;font-size:12.5px;color:var(--muted);margin-top:2px}
.zpi-chev{grid-column:2;grid-row:1/4;align-self:center;width:18px;height:18px;color:var(--dim)}

/* ── Страница одной записи ── */
.zpi-back{display:inline-flex;align-items:center;gap:6px;min-height:38px;margin-bottom:var(--s3);
  padding:0 14px 0 10px;border-radius:999px;cursor:pointer;
  border:1px solid var(--btn-line);background:var(--btn-bg);color:var(--btn-ink);
  box-shadow:var(--inset-1);font:inherit;font-size:13px;font-weight:650}
.zpi-back svg{width:16px;height:16px;flex:none}
.zpi-back:active{transform:translateY(1px)}
.zpi-h{font-family:var(--font-head);font-size:20px;font-weight:700;letter-spacing:-.02em;
  color:var(--ink);margin:4px 0 var(--s3)}

/* Заголовки разделов записей. Свои, потому что общий заголовок вкладки
   («Записи») стоял бы под самой записью и читался как ошибка. */
.zpi-h1{font-family:var(--font-head);font-size:22px;font-weight:700;letter-spacing:-.02em;
  color:var(--ink);margin:0 0 var(--s3)}
.zpi-h1-2{margin-top:var(--s6)}
