/* День 27. Токены — agent_docs/design/corpus.md, блок токенов скопирован
   из site/style.css значение-в-значение. Раскладка —
   agent_docs/design/2026-10-09-1335-days26-30-local-llm-day-pages.md,
   «Тело дня», день 27. Значение вне шкалы — дефект, а не нюанс.
   Самый крупный размер корпуса здесь не объявлен вовсе: по корпусу он
   только для лендинга, и его отсутствие в файле — страховка от применения. */

:root {
  color-scheme: light dark;
  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem;
  --s-5:1.5rem; --s-6:2rem; --s-7:3rem; --s-8:4rem;
  --t-xs:.75rem; --t-sm:.875rem; --t-md:1rem; --t-lg:1.125rem; --t-xl:1.5rem;
  --bg:#fbfbfa; --surface:#ffffff; --fg:#17171a; --fg-mut:#6a6a70;
  --line:#e6e6e3; --line-ctl:#8f8f8a;
  --acc:#2f6f4f; --acc-fg:#ffffff; --danger:#b3261e;
  --overlay:rgb(23 23 26 / .5);
  --r-sm:6px; --r-md:10px; --r-full:999px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg:#131316; --surface:#1b1b1f; --fg:#ececee; --fg-mut:#9b9ba3;
    --line:#2a2a30; --line-ctl:#6a6a73;
    --acc:#6fc79c; --acc-fg:#0e1a13; --danger:#f2b8b5;
    --overlay:rgb(0 0 0 / .6);
  }
}

/* ── Служебный слой (договор копии, слово в слово на пяти страницах) ──── */
* { box-sizing:border-box; }
/* Собственный display перебивает [hidden] из таблицы браузера. */
[hidden] { display:none !important; }
:where(a, button, summary):focus-visible { outline:2px solid var(--acc); outline-offset:2px; }
a:hover { background:var(--surface); }
a:active, button:active, summary:active { position:relative; top:1px; }
.num { font-variant-numeric:tabular-nums; }
/* Видимо скрыто: остаётся в дереве доступности, в отличие от display:none. */
.vh {
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap;
}

body {
  margin:0; background:var(--bg); color:var(--fg);
  font:var(--t-md)/1.6 ui-sans-serif, system-ui, -apple-system, sans-serif;
}
a { color:inherit; }
code { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:var(--t-xs); }

/* ── Контейнер и ритм ────────────────────────────────────────────────── */
.page {
  max-width:60rem; margin-inline:auto;
  padding-block:var(--s-6); padding-inline:var(--s-4);
}
@media (min-width:36rem) {
  .page { padding-block:var(--s-7); padding-inline:var(--s-5); }
}
.head { margin-bottom:var(--s-5); }
.back { margin:0 0 var(--s-2); font-size:var(--t-sm); line-height:1.5; color:var(--fg-mut); }
h1 {
  font-size:var(--t-xl); line-height:1.25; letter-spacing:-.01em; font-weight:600;
  margin:0;
}
.lede { margin:var(--s-2) 0 0; color:var(--fg-mut); max-width:68ch; }
main > section + section { margin-top:var(--s-7); }
.sec-head { margin-bottom:var(--s-4); }
h2 { font-size:var(--t-lg); line-height:1.4; font-weight:600; margin:0; }
h3 { font-size:var(--t-md); line-height:1.6; font-weight:600; margin:0; }
.prose { margin:0; max-width:68ch; }
.prose + .prose { margin-top:var(--s-4); }
.note {
  margin:var(--s-3) 0 0; font-size:var(--t-sm); line-height:1.5; color:var(--fg-mut);
  max-width:52ch;
}
.lbl {
  font-size:var(--t-xs); line-height:1.4; text-transform:uppercase; letter-spacing:.06em;
  color:var(--fg-mut);
}
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); }
/* Ссылка на панели --surface: её наведение — шаг к --bg, а не общее a:hover. */
.panel a:hover { background:var(--bg); }

/* ── А. Полоса недели ────────────────────────────────────────────────── */
.wk { margin-bottom:var(--s-7); }
.wk-label { margin:0 0 var(--s-2); }
.wk-list { display:flex; flex-wrap:wrap; gap:var(--s-2); list-style:none; margin:0; padding:0; }
.wk-link {
  display:inline-block; padding:var(--s-1) var(--s-3);
  font-size:var(--t-sm); line-height:1.5;
  background:var(--surface); color:var(--fg);
  border:1px solid var(--line-ctl); border-radius:var(--r-full);
  font-variant-numeric:tabular-nums;
  transition:background-color 120ms;
}
a.wk-link:hover { background:var(--bg); }
.wk-now { background:var(--fg); color:var(--surface); border-color:var(--fg); }

/* ── Что это значит ──────────────────────────────────────────────────── */
.means { padding:var(--s-4); }
.means-lead { margin:0; font-size:var(--t-lg); line-height:1.4; max-width:68ch; }
.means-lead + .prose { margin-top:var(--s-4); }
/* Границы — не под details: это ответ на «чему здесь верить». */
.bounds {
  margin:var(--s-4) 0 0; padding-left:var(--s-5);
  font-size:var(--t-sm); line-height:1.5; color:var(--fg-mut); max-width:52ch;
}
.bounds li + li { margin-top:var(--s-1); }

/* ── Б. Что уже было закрыто ─────────────────────────────────────────── */
.closed { list-style:none; margin:0; padding:0; }
.closed > li + li { margin-top:var(--s-4); }
.closed-text { margin:0; max-width:68ch; }
.closed-meta {
  display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--s-2) var(--s-3);
  margin:var(--s-2) 0 0;
}
.tag {
  display:inline-block; padding:0 var(--s-2);
  font-size:var(--t-xs); line-height:1.4; color:var(--fg-mut);
  text-transform:uppercase; letter-spacing:.06em;
  border:1px solid var(--line-ctl); border-radius:var(--r-full);
  white-space:nowrap;
}
.closed-date {
  font-size:var(--t-xs); line-height:1.4; color:var(--fg-mut);
  font-variant-numeric:tabular-nums;
}
.closed-links {
  margin:var(--s-2) 0 0;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:var(--t-xs); line-height:1.4; color:var(--fg-mut);
  overflow-wrap:anywhere;
}
.gap-line {
  margin:var(--s-5) 0 0; padding-top:var(--s-4); border-top:1px solid var(--line);
  font-size:var(--t-sm); line-height:1.5; color:var(--fg-mut); max-width:52ch;
}

/* ── Как запрос доходит до модели ────────────────────────────────────── */
/* Схема для глаза: прокручивается сама, строка не переносится.
   tabindex="-1" в разметке — не украшение: прокручиваемый блок Chrome сам
   делает остановкой табуляции с браузерным кольцом, хотя блок
   aria-hidden="true" и порядок читается списком ниже. Скрипта, который снял
   бы остановку по факту переполнения, у этой страницы нет. */
.chain {
  margin:0 0 var(--s-4); padding:var(--s-3);
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r-sm);
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:var(--t-xs); line-height:1.4; color:var(--fg-mut);
  white-space:nowrap; overflow-x:auto;
}
.steps { margin:0; padding-left:var(--s-5); max-width:68ch; }
.steps > li + li { margin-top:var(--s-3); }
.step-file {
  display:block; margin-top:var(--s-1);
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:var(--t-xs); line-height:1.4; color:var(--fg-mut);
  overflow-wrap:anywhere;
}

/* ── Ссылка на день 11 ───────────────────────────────────────────────── */
.go { padding:var(--s-4); }
/* :not(.note) — иначе .go p перебивает .note по весу селектора, и вторичный
   текст уходит на 68ch вместо 52ch (находка design-review к #337). */
.go p:not(.note) { margin:0 0 var(--s-3); max-width:68ch; }

/* ── Г. Раскрывающееся пояснение ─────────────────────────────────────── */
.exp {
  margin-top:var(--s-4);
  border:1px solid var(--line); border-radius:var(--r-md);
  background:var(--surface);
}
.exp > summary {
  display:flex; justify-content:space-between; align-items:baseline; gap:var(--s-3);
  padding:var(--s-3) var(--s-4);
  font-size:var(--t-sm); line-height:1.5; color:var(--fg);
  background:var(--surface); border-radius:var(--r-md);
  list-style:none; cursor:pointer;
  transition:background-color 120ms;
}
.exp > summary::marker { content:""; }
.exp > summary::-webkit-details-marker { display:none; }
.exp > summary:hover { background:var(--bg); }
.exp > summary:focus-visible { outline-offset:-2px; }
.q-mark { color:var(--fg-mut); }
.q-mark::before { content:"+"; }
.exp[open] > summary .q-mark::before { content:"−"; }
.exp-body {
  padding:var(--s-3) var(--s-4) var(--s-4);
  border-top:1px solid var(--line);
}
.exp-body p { margin:0; font-size:var(--t-sm); line-height:1.5; max-width:52ch; }
.exp-body p + p { margin-top:var(--s-3); }
.exp-body a:hover { background:var(--bg); }

/* ── Задание дня ─────────────────────────────────────────────────────── */
.task {
  margin:0; padding-inline-start:var(--s-4);
  border-inline-start:3px solid var(--line); max-width:68ch;
  font-size:var(--t-md); line-height:1.6;
}
.task p { margin:0; }

/* ── Д. Подвал (строки прогона нет: прогона не было) ─────────────────── */
.foot {
  margin-top:var(--s-7); border-top:1px solid var(--line); padding-top:var(--s-4);
  font-size:var(--t-sm); line-height:1.5; color:var(--fg-mut);
}
.foot p { margin:0; max-width:52ch; }

@media (prefers-reduced-motion: reduce) {
  .wk-link, .exp > summary { transition:none; }
}

/* Печать: раскрыты все блоки, прокручиваемая схема развёрнута.
   Два правила про содержимое — браузеры прячут его по-разному. */
@media print {
  details::details-content { content-visibility:visible !important; }
  details:not([open]) > :not(summary) { display:block; }
  .q-mark { display:none; }
  .chain { white-space:pre-wrap; overflow:visible; }
}
