/* IT-курс: список эпизодов и шаблоны. Остальное наследует countries.css. */
.it-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.it-ep{display:flex;gap:16px;align-items:center;padding:16px 18px;border-radius:18px;text-decoration:none;color:var(--ink);background:var(--core);box-shadow:inset 0 0 0 1px var(--shell-line);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.it-ep:not(.off):hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--gold) 40%,transparent)}
.it-ep:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.it-ep.off{opacity:.6;cursor:default}
.it-n{flex:none;font-family:var(--font-d);font-size:1.25rem;font-weight:600;color:var(--gold);font-variant-numeric:tabular-nums}
.it-body{display:flex;flex-direction:column;gap:3px}
.it-body b{font-family:var(--font-d);font-weight:600;font-size:1rem}
.it-body b i{font-style:normal;color:var(--ink-dim);font-weight:400;font-size:.875rem}
.it-body span{color:var(--ink-dim);font-size:.8438rem;line-height:1.45}
.it-status{margin-left:auto;flex:none;font-size:.6875rem;font-weight:700;padding:4px 10px;border-radius:99px;color:var(--mint);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--mint) 35%,transparent)}
.it-ep.off .it-status{color:var(--gold);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--gold) 30%,transparent)}

.it-templates{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
/* min-width:0 обязателен: без него длинная строка шаблона распирает колонку
   по min-content, и кнопка «скопировать» уезжает за правый край на 390.
   Тот же класс бага, что был у сетки игр (гоча дня 2). */
.it-tpl{display:flex;flex-direction:column;gap:8px;min-width:0;padding:16px;border-radius:18px;background:var(--core);box-shadow:inset 0 0 0 1px var(--shell-line)}
.it-tpl h3{font-family:var(--font-d);font-size:.9375rem;font-weight:600;margin:0}
.it-tpl-note{color:var(--ink-dim);font-size:.8125rem;margin:0;line-height:1.45}
.it-tpl pre{margin:0;min-width:0;max-width:100%;overflow-wrap:anywhere;padding:12px;border-radius:12px;background:color-mix(in oklab,var(--bg-1,#101511) 70%,transparent);color:var(--ink);font-size:.8438rem;line-height:1.55;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.it-copy{align-self:flex-start;min-height:38px;padding:0 14px;border:0;border-radius:99px;cursor:pointer;font-family:var(--font-t);font-size:.8125rem;font-weight:700;color:var(--gold);background:var(--gold-soft);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--gold) 30%,transparent)}
.it-copy:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* путь курса: пройдено N из 12, следующий подсвечен */
.it-path{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;border-radius:18px;background:var(--core);box-shadow:inset 0 0 0 1px var(--shell-line)}
.it-path-n{font-family:var(--font-d);font-size:.9375rem;font-weight:600}
.it-path-bar{flex:1;min-width:120px;height:6px;border-radius:99px;background:color-mix(in oklab,var(--bg-1,#101511) 70%,transparent);overflow:hidden}
.it-path-bar i{display:block;height:100%;border-radius:99px;background:var(--gold);transition:width .6s var(--ease)}
.it-grad-link{flex:none;font-size:.8125rem;font-weight:700;color:var(--gold);text-decoration:none}
.it-grad-link:hover{text-decoration:underline}
.it-grad-link:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.it-ep.done .it-n{color:var(--mint)}
.it-ep.next{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--gold) 55%,transparent)}
.it-ep.next .it-status{color:var(--gold);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--gold) 45%,transparent)}

/* эпизод: честное отсутствие видео, плашки речи/письма, связки */
.it-novideo{max-width:64ch;margin:0;padding:14px 16px;border-radius:16px;color:var(--ink-dim);font-size:.875rem;line-height:1.5;background:var(--core);box-shadow:inset 0 0 0 1px var(--shell-line)}
.cp-plate{margin-top:6px;align-self:flex-start;font-size:.6875rem;font-weight:700;padding:3px 9px;border-radius:99px;color:var(--ink-dim);box-shadow:inset 0 0 0 1px var(--shell-line)}
/* Кнопки-ссылки после теста эпизода (DL-2). У .wq-go стоит width:100%, и
   отступ слева в 10 пикселей делал ссылку шире контейнера .co-test ровно
   на эти 10: на 390 кнопка «Дальше: Код-ревью» выпадала за границу вправо.
   Отступ убран, текст встал по центру, как у соседней кнопки «Пройти ещё
   раз», а поля по бокам держат его внутри при переносе на две строки. */
.it-eplink{display:flex;align-items:center;justify-content:center;padding:0 14px;
  text-align:center;text-decoration:none}

/* карточка выпускника */
.it-grad{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:14px;padding:28px;border-radius:24px;background:var(--core);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--gold) 40%,transparent),0 30px 60px -30px color-mix(in oklab,var(--gold) 40%,transparent)}
.it-grad h2{font-family:var(--font-d);font-size:1.375rem;font-weight:600;margin:0}
.it-grad-line{color:var(--ink-dim);font-size:.9375rem;line-height:1.55;margin:0}
.it-grad-nums{display:flex;gap:24px;flex-wrap:wrap}
.it-grad-nums b{display:block;font-family:var(--font-d);font-size:1.75rem;font-weight:600;color:var(--gold)}
.it-grad-nums span{color:var(--ink-dim);font-size:.8125rem}
.it-grad-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
