/* ==========================================================================
   kursy · «Онлайн-курсы и профессии» · components.css
   Все компоненты дизайн-системы (05-design.md, разделы 6–8). Подключается после tokens.css и base.css.
   Один класс — один стиль; вариации — модификаторы «--». Состояния: .is-*, [aria-*], [hidden], [data-open].
   Хуки скрипта — только data-атрибуты (assets/site.js): на классы скрипт не опирается.
   Типографика (.ku-h1…h4, .ku-lead, .ku-caps, .ku-num, .ku-empty, .ku-kicker), иконка .ku-icon, сетка, шапка и подвал — в base.css.

   СПИСОК КОМПОНЕНТОВ И ИХ КЛАССОВ

   Кнопки ............... .ku-btn  --primary --secondary --paper --ghost-dark --sm --block
                          .ku-link — текстовая кнопка и ссылка-действие
                          .ku-iconbtn  __n — кнопка с иконкой и словом: «Меню», «Фильтры», «Закрыть»
   Плитка логотипа ...... .ku-logo  --xs --sm --lg  __letter __img  (.is-loaded ставит скрипт)
   Бейдж-штамп .......... .ku-badge  --accent --yes --warn --error --na
   Отметка в зачётке .... .ku-mark  --md --lg --na  __num __sign __word __short __full
   Шкала 0–5 ............ .ku-meter  __i (.is-on, .is-half)
   Первый экран ......... .ku-hero  __meta __rule;  шапка бланка .ku-formhead  --3 --row  __cell __value __sub
   Хлебные крошки ....... .ku-crumbs  __sep
   Панель направлений ... .ku-dirs  __toggle __title __groups __group __head __list  ([data-open]);
                          пункт оглавления .ku-toc  __name __dots __count;  лента разделов .ku-secstrip
   Доска подбора ........ .ku-board  __title __hint __steps __field __q __n __go __foot __note __step __opts
                          результат подбора .ku-podbor  __head __sum __list __i __facts __schools
   Ведомость ............ .ku-ledger-block — обёртка блока;  .ku-ledger-bar  __grow;  .ku-found;  .ku-table-hint;  .ku-table-wrap
                          .ku-ledger  --full  __capt __capt-title __row (.is-open) __more __foot __note
                          ячейки: .ku-c-rank (__no) .ku-c-school .ku-c-score .ku-c-price .ku-c-pay .ku-c-term .ku-c-format
                                  .ku-c-doc .ku-c-job .ku-c-free (__text) .ku-c-tools .ku-c-act (__more);  числовая графа .ku-is-num
                          кнопка сортировки .ku-sort  __up __down;  школа и программа .ku-school  __name __kind __prog
                          раскрытые «Условия» .ku-facts  __row __why
   Абонемент ............ .ku-tickets;  .ku-ticket  --range  __paper __main __title __prog __stub __serial __fact (__fact--text) __actions
   Строки-записи ........ .ku-rows  --compact  __i (__i--school) __head __title __facts __sub __text __actions
   Фильтры .............. .ku-filters  __head __grid __group (__group--wide) __label __opts __flags __foot __apply--sheet __apply--panel
                          выбранное .ku-applied  __list
                          чип .ku-chip  --link --x --board  __name __count __check
                          список .ku-select;  флажок .ku-check;  радиокнопка .ku-radio;  ползунок .ku-range
                          список с несколькими отметками .ku-multi  __list
   Вкладки .............. .ku-tabs;  .ku-tab;  .ku-tabpanel
   Сравнение ............ панель .ku-bar  __in __label __items __item __x __msg __go __go-n;  нижнее поле страницы .ku-has-bar
                          таблица .ku-cmp-wrap  --many;  .ku-cmp (td.is-best);  обводка лучшего значения .ku-circled
   Блок оценки .......... .ku-zachet  __cover __meta __table __subj __from __ball __hide
   Обложка зачётки ...... .ku-cover  __main __head __checked __actions __mark __place __facts
   Вопросы и ответы ..... .ku-faq  __item __q __n __plus __minus __a
   Автор и методика ..... .ku-sign  __col __who __name __role __text __line __more
                          полоса долей .ku-weights  __i;  список с отточием .ku-crit;  шкала отметок .ku-scale
   Текст ................ .ku-prose  __table;  врезка .ku-note  --tip --warn  __label
                          простая таблица: обёртка .ku-tablebox,  .ku-table  --wide --stack  __sub
   Статьи ............... лента .ku-posts;  .ku-post  --lead  __rubric __title __lead __meta;  номера страниц .ku-pages  __i
   Мини-обзор школы ..... .ku-reviews;  .ku-review  __head __name __meta __prog __facts __body __text __for __actions
   Остальное ............ раскрытие .ku-disclosure;  «не проверено» и пустые состояния .ku-blank;
                          плюсы и минусы .ku-proscons  __col (__col--plus, __col--minus);  памятка .ku-checklist;
                          поле формы .ku-input  __label __control __msg __hint (.is-error)
   ========================================================================== */

/* ---------- кнопки ---------- */
.ku-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--ku-s-2); min-height: var(--ku-h-lg); padding: 0 var(--ku-s-5); border: 1px solid transparent; border-radius: var(--ku-radius-1); font: var(--ku-fw-semibold) var(--ku-fs-ui)/var(--ku-lh-ui) var(--ku-font-body); text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color var(--ku-dur) var(--ku-ease), border-color var(--ku-dur) var(--ku-ease), color var(--ku-dur) var(--ku-ease); }
.ku-btn--primary { background: var(--ku-accent-deep); border-color: var(--ku-accent-deep); color: var(--ku-on-accent); }
.ku-btn--primary:hover, .ku-btn--primary:active { background: var(--ku-accent-press); border-color: var(--ku-accent-press); }
.ku-btn--secondary { background: var(--ku-surface); border-color: var(--ku-ink); color: var(--ku-ink); }
.ku-btn--secondary:hover { background: var(--ku-surface-2); }
.ku-btn--secondary:active { background: var(--ku-surface-3); }
.ku-btn--paper { background: var(--ku-bg); border-color: var(--ku-bg); color: var(--ku-ink); }
.ku-btn--paper:hover, .ku-btn--paper:active { background: var(--ku-surface-3); border-color: var(--ku-surface-3); }
.ku-btn--ghost-dark { background: none; border-color: var(--ku-on-accent2); color: var(--ku-on-accent2); }
.ku-btn--ghost-dark:hover, .ku-btn--ghost-dark:active { background: var(--ku-accent2-deep); }
.ku-btn:disabled, .ku-btn[aria-disabled="true"] { background: var(--ku-surface-3); border-color: var(--ku-surface-3); color: var(--ku-ink-3); cursor: not-allowed; }
.ku-btn--sm { min-height: var(--ku-h-sm); padding: 0 var(--ku-s-3); font-size: var(--ku-fs-note); }
.ku-btn--block { display: flex; width: 100%; }
/* текстовая кнопка и ссылка-действие */
.ku-link { display: inline-flex; align-items: center; gap: 6px; padding: 0; background: none; border: 0; font-weight: var(--ku-fw-medium); text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--ku-ink-3); text-underline-offset: 3px; cursor: pointer; transition: color var(--ku-dur) var(--ku-ease); }
.ku-link:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
.ku-link:disabled { color: var(--ku-ink-3); text-decoration: none; cursor: not-allowed; }
/* кнопка с иконкой и словом: «Меню», «Фильтры», «Закрыть» */
.ku-iconbtn { display: inline-flex; align-items: center; justify-content: center; gap: var(--ku-s-2); min-width: var(--ku-tap); height: var(--ku-tap); padding: 0 var(--ku-s-3); background: none; border: var(--ku-border-control); border-radius: var(--ku-radius-1); font-size: var(--ku-fs-small); font-weight: var(--ku-fw-medium); white-space: nowrap; cursor: pointer; transition: background-color var(--ku-dur) var(--ku-ease), border-color var(--ku-dur) var(--ku-ease); }
.ku-iconbtn:hover { background: var(--ku-surface-2); border-color: var(--ku-ink); }
.ku-iconbtn:active { background: var(--ku-surface-3); }
.ku-iconbtn[aria-expanded="true"] { background: var(--ku-accent2-tint); border-color: var(--ku-accent2); }
.ku-iconbtn__n { font-family: var(--ku-font-mono); font-weight: var(--ku-fw-bold); }

/* ---------- плитка логотипа с буквой ---------- */
.ku-logo { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none; width: var(--ku-logo-md); height: var(--ku-logo-md); overflow: hidden; background: var(--ku-surface-2); border: 1px solid var(--ku-line-2); border-radius: var(--ku-radius-1); }
.ku-logo__letter { font: var(--ku-fw-bold) 20px/1 var(--ku-font-head); text-transform: uppercase; color: var(--ku-ink); }
.ku-logo__img { position: absolute; inset: 0; width: 100%; height: 100%; padding: 15%; object-fit: contain; background: var(--ku-surface); opacity: 0; }
.ku-logo.is-loaded .ku-logo__img { opacity: 1; }
.ku-logo--xs { width: var(--ku-logo-xs); height: var(--ku-logo-xs); }
.ku-logo--xs .ku-logo__letter { font-size: 13px; }
.ku-logo--sm { width: var(--ku-logo-sm); height: var(--ku-logo-sm); }
.ku-logo--sm .ku-logo__letter { font-size: 16px; }
.ku-logo--lg { width: var(--ku-logo-lg); height: var(--ku-logo-lg); }
.ku-logo--lg .ku-logo__letter { font-size: 32px; }

/* ---------- бейджи: штампы ---------- */
.ku-badge { display: inline-flex; align-items: center; gap: var(--ku-s-1); min-height: 22px; padding: 2px 6px; border: 1px solid var(--ku-ink-3); border-radius: var(--ku-radius-0); font: var(--ku-fw-bold) 11px/14px var(--ku-font-mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--ku-ink-2); white-space: nowrap; }
.ku-badge--accent { background: var(--ku-accent-tint); border-color: var(--ku-accent); color: var(--ku-accent-deep); }
.ku-badge--yes { background: var(--ku-accent2-tint); border-color: var(--ku-accent2); color: var(--ku-accent2-deep); }
.ku-badge--warn { background: var(--ku-warning-tint); border-color: var(--ku-warning); color: var(--ku-warning); }
.ku-badge--error { background: var(--ku-error-tint); border-color: var(--ku-error); color: var(--ku-error); }
.ku-badge--na { border-style: dashed; }

/* ---------- отметка в зачётке ---------- */
.ku-mark { display: inline-grid; justify-items: start; row-gap: 1px; vertical-align: top; }
.ku-mark__num { font: italic var(--ku-fw-bold) var(--ku-fs-mark-sm)/1 var(--ku-font-head); font-variant-numeric: lining-nums; color: var(--ku-accent); }
.ku-mark__sign { width: 44px; height: 8px; fill: none; stroke: var(--ku-accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ku-mark__word { font: italic var(--ku-fw-medium) 14px/16px var(--ku-font-head); color: var(--ku-ink); }
.ku-mark__short { display: none; }
.ku-mark--md .ku-mark__num { font-size: var(--ku-fs-mark-md); }
.ku-mark--md .ku-mark__sign { width: 60px; height: 10px; }
.ku-mark--md .ku-mark__word { font-size: 16px; line-height: 20px; }
.ku-mark--lg .ku-mark__num { font-size: var(--ku-fs-mark-lg); }
.ku-mark--lg .ku-mark__sign { width: 104px; height: 16px; stroke-width: 2; }
.ku-mark--lg .ku-mark__word { font-size: 20px; line-height: 24px; }
/* не аттестована: «н/а» и причина словами */
.ku-mark--na .ku-mark__num { font: var(--ku-fw-bold) 15px/22px var(--ku-font-mono); color: var(--ku-ink-2); border-bottom: var(--ku-blank); }
.ku-mark--na .ku-mark__word { margin-top: 2px; font: var(--ku-fw-regular) var(--ku-fs-micro)/var(--ku-lh-micro) var(--ku-font-body); color: var(--ku-ink-2); }

/* ---------- шкала 0–5 ---------- */
.ku-meter { display: inline-flex; gap: 2px; vertical-align: middle; }
.ku-meter__i { width: 8px; height: 8px; border: 1px solid var(--ku-ink-3); }
.ku-meter__i.is-on { background: var(--ku-ink); border-color: var(--ku-ink); }
.ku-meter__i.is-half { border-color: var(--ku-ink); border-left-width: 4px; }

/* ---------- первый экран: кикер, H1, лид, шапка бланка ---------- */
.ku-hero { display: grid; grid-template-columns: minmax(0, 1fr); padding-top: var(--ku-s-4); }
.ku-crumbs + .ku-hero { padding-top: var(--ku-s-1); }
.ku-hero > .ku-kicker { justify-self: start; }
.ku-hero > .ku-h1 { margin-top: var(--ku-s-2); max-width: 26ch; overflow-wrap: break-word; }
.ku-hero > .ku-lead { margin-top: var(--ku-s-3); }
.ku-hero > .ku-formhead { margin-top: var(--ku-s-5); }
.ku-hero__meta { display: flex; flex-wrap: wrap; gap: 2px var(--ku-s-4); margin-top: var(--ku-s-3); font: var(--ku-fw-regular) var(--ku-fs-note)/var(--ku-lh-note) var(--ku-font-mono); color: var(--ku-ink-2); }
.ku-hero__meta a { text-decoration: underline; text-decoration-color: var(--ku-line-2); text-underline-offset: 3px; }
.ku-hero__meta a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
.ku-hero__rule { margin-top: var(--ku-s-3); }
.ku-formhead { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--ku-surface); border: var(--ku-border); }
.ku-formhead__cell { min-width: 0; padding: 6px var(--ku-s-3); border-right: var(--ku-border-hair); border-bottom: var(--ku-border-hair); }
.ku-formhead__cell:nth-child(2n) { border-right: 0; }
.ku-formhead__cell:nth-last-child(-n+2) { border-bottom: 0; }
.ku-formhead__value { display: block; font: var(--ku-fw-bold) var(--ku-fs-num-xl)/var(--ku-lh-num-xl) var(--ku-font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ku-formhead__sub { display: block; margin-top: 2px; font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
.ku-formhead__sub a { color: var(--ku-ink); font-weight: var(--ku-fw-medium); text-decoration: underline; text-decoration-color: var(--ku-ink-3); text-underline-offset: 3px; }
.ku-formhead__sub a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
/* три ответа: столбиком на телефоне, три в ряд от 768px */
/* четыре коротких счётчика (главная): на телефоне — одной строкой, чтобы подбор и ведомость стояли выше; линии — просветы между ячейками */
.ku-formhead--row { display: flex; flex-wrap: wrap; gap: 1px; background: var(--ku-line); }
.ku-formhead--row .ku-formhead__cell { flex: 1 1 auto; padding: 5px var(--ku-s-2); background: var(--ku-surface); border: 0; }
.ku-formhead--row .ku-formhead__value { font-size: var(--ku-fs-num); line-height: var(--ku-lh-num); }
.ku-formhead--3 { grid-template-columns: minmax(0, 1fr); }
.ku-formhead--3 .ku-formhead__cell { padding: var(--ku-s-2) var(--ku-s-3); border-right: 0; border-bottom: var(--ku-border-hair); }
.ku-formhead--3 .ku-formhead__cell:last-child { border-bottom: 0; }

/* ---------- хлебные крошки ---------- */
.ku-crumbs { overflow-x: auto; scrollbar-width: none; }
.ku-crumbs::-webkit-scrollbar { display: none; }
.ku-crumbs ol { display: flex; gap: var(--ku-s-2); padding: var(--ku-s-3) 0; font-size: var(--ku-fs-note); line-height: 20px; color: var(--ku-ink-2); white-space: nowrap; }
.ku-crumbs li { display: flex; gap: var(--ku-s-2); }
.ku-crumbs a { text-decoration: underline; text-decoration-color: var(--ku-line-2); text-underline-offset: 3px; }
.ku-crumbs a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
.ku-crumbs__sep { color: var(--ku-ink-3); }
.ku-crumbs [aria-current] { color: var(--ku-ink); }

/* ---------- панель направлений: оглавление с отточием ---------- */
.ku-secstrip { display: flex; gap: var(--ku-s-2); overflow-x: auto; margin: 0 calc(var(--ku-gutter) * -1); padding: 2px var(--ku-gutter); scrollbar-width: none; }
.ku-secstrip::-webkit-scrollbar { display: none; }
.ku-secstrip .ku-chip { flex: none; }
.ku-dirs { min-width: 0; background: var(--ku-surface); border: var(--ku-border); }
.ku-dirs__title { display: none; align-items: baseline; justify-content: space-between; padding: var(--ku-s-3) var(--ku-s-4); background: var(--ku-surface-2); border-bottom: var(--ku-rule-double); }
.ku-dirs__toggle { display: flex; align-items: center; justify-content: space-between; gap: var(--ku-s-3); width: 100%; min-height: var(--ku-tap); padding: 0 var(--ku-s-4); background: var(--ku-surface-2); border: 0; font: var(--ku-fw-semibold) var(--ku-fs-ui)/var(--ku-lh-ui) var(--ku-font-body); text-align: left; cursor: pointer; transition: background-color var(--ku-dur) var(--ku-ease); }
.ku-dirs__toggle:hover { background: var(--ku-surface-3); }
.ku-dirs__toggle .ku-toc__count { display: inline-flex; align-items: center; gap: var(--ku-s-2); }
.ku-dirs[data-open="false"] .ku-dirs__groups { display: none; }
.ku-dirs[data-open="true"] .ku-dirs__toggle { border-bottom: var(--ku-rule-double); }
.ku-dirs__group { padding: var(--ku-s-3) var(--ku-s-4) var(--ku-s-2); border-bottom: var(--ku-border-hair); }
.ku-dirs__group:last-child { border-bottom: 0; }
.ku-dirs__head { display: flex; align-items: baseline; gap: var(--ku-s-2); font: var(--ku-fw-semibold) var(--ku-fs-ui)/var(--ku-lh-ui) var(--ku-font-body); text-decoration: none; }
a.ku-dirs__head:hover { color: var(--ku-accent-deep); text-decoration: underline; text-decoration-color: var(--ku-accent); text-underline-offset: 3px; }
.ku-dirs__list { margin-top: var(--ku-s-1); }
.ku-toc { display: flex; align-items: baseline; gap: var(--ku-s-2); width: 100%; min-height: var(--ku-tap); padding: var(--ku-s-3) 0; background: none; border: 0; font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); text-align: left; text-decoration: none; cursor: pointer; }
.ku-toc__name { min-width: 0; }
.ku-toc__dots { flex: 1; min-width: var(--ku-s-4); border-bottom: var(--ku-leader); transform: translateY(-4px); }
.ku-toc__count { font-family: var(--ku-font-mono); font-size: var(--ku-fs-num); color: var(--ku-ink-2); white-space: nowrap; }
.ku-toc:hover .ku-toc__name { text-decoration: underline; text-decoration-color: var(--ku-accent); text-underline-offset: 3px; }
.ku-toc:hover .ku-toc__count { color: var(--ku-ink); }
.ku-toc[aria-current], .ku-toc[aria-pressed="true"] { margin-left: calc(var(--ku-s-4) * -1); padding-left: calc(var(--ku-s-4) - var(--ku-bw-mark)); width: calc(100% + var(--ku-s-4)); border-left: var(--ku-bw-mark) solid var(--ku-accent); font-weight: var(--ku-fw-semibold); }

/* ---------- доска подбора ---------- */
.ku-board { padding: var(--ku-s-5) var(--ku-s-4); background: var(--ku-accent2); color: var(--ku-on-accent2); border: var(--ku-border); border-bottom-width: 4px; }
.ku-board :focus-visible { outline-color: var(--ku-focus-on-dark); }
.ku-board__title { font: var(--ku-fw-semibold) var(--ku-fs-h3)/var(--ku-lh-h3) var(--ku-font-head); }
.ku-board__hint { margin-top: var(--ku-s-1); font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); color: var(--ku-board-muted); }
.ku-board__steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-3); margin-top: var(--ku-s-4); }
.ku-board__field { display: grid; gap: 6px; min-width: 0; }
.ku-board__q { display: flex; align-items: center; gap: var(--ku-s-2); padding: 0; font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); font-weight: var(--ku-fw-semibold); }
.ku-board__n { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 20px; height: 20px; border: 1px solid var(--ku-on-accent2); font: var(--ku-fw-bold) 12px/1 var(--ku-font-mono); }
.ku-board .ku-select select { background: var(--ku-on-accent2); border-color: var(--ku-on-accent2); color: var(--ku-ink); }
.ku-board .ku-select select:hover { background: var(--ku-surface-3); border-color: var(--ku-surface-3); }
.ku-board .ku-select .ku-icon { color: var(--ku-ink); }
.ku-board__go { align-self: end; }
.ku-board .ku-btn:disabled { background: none; border: 1px dashed var(--ku-board-muted); color: var(--ku-board-muted); }
.ku-board__step { min-width: 0; margin: 0; padding: 0; border: 0; }
.ku-board__opts { display: flex; flex-wrap: wrap; gap: var(--ku-s-2); margin-top: var(--ku-s-2); }
.ku-board__foot { display: grid; gap: var(--ku-s-3); margin-top: var(--ku-s-4); padding-top: var(--ku-s-3); border-top: 1px solid var(--ku-board-line); }
.ku-board__note { font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-board-muted); }
.ku-board__note a { color: var(--ku-on-accent2); text-underline-offset: 3px; }
/* результат подбора: на бумаге, под доской */
.ku-podbor { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-4); }
.ku-podbor__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--ku-s-1) var(--ku-s-4); padding-top: var(--ku-s-3); border-top: var(--ku-rule-double); }
.ku-podbor__sum { flex: 1 1 100%; font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); color: var(--ku-ink-2); }
.ku-podbor__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-6); }
.ku-podbor__i { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-3) var(--ku-grid-gap); min-width: 0; }
.ku-podbor__facts { font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
.ku-podbor__schools { min-width: 0; }
.ku-podbor__schools .ku-caps { display: block; margin-bottom: var(--ku-s-2); }

/* ---------- ведомость: строка «Найдено», сортировка ---------- */
.ku-ledger-block { min-width: 0; }
.ku-ledger-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ku-s-3); margin-bottom: var(--ku-s-3); }
.ku-found { font-family: var(--ku-font-mono); font-size: var(--ku-fs-num); line-height: var(--ku-lh-num); }
.ku-found b { font-size: var(--ku-fs-num-lg); font-weight: var(--ku-fw-bold); }
.ku-ledger-bar__grow { flex: 1 1 100%; }
.ku-table-wrap { min-width: 0; }
.ku-table-hint { display: none; }

/* до 768px: каждая строка — абонемент с корешком; разметка остаётся таблицей */
.ku-ledger { display: block; width: 100%; border-collapse: collapse; font-size: var(--ku-fs-table); line-height: var(--ku-lh-table); }
.ku-ledger caption { display: block; margin-bottom: var(--ku-s-3); padding: var(--ku-s-3); background: var(--ku-surface-2); border: var(--ku-border); border-bottom: var(--ku-rule-double); text-align: left; }
.ku-ledger__capt { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--ku-s-1) var(--ku-s-4); }
.ku-ledger__capt-title { font: var(--ku-fw-semibold) 18px/22px var(--ku-font-head); color: var(--ku-ink); }
.ku-ledger thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ku-ledger tbody { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-5); }
.ku-ledger__row { display: grid; grid-template-columns: minmax(0, 1fr) var(--ku-stub-w); grid-template-areas: "school rank" "school price" "score pay" "doc term" "tools job" "act act"; scroll-margin-top: var(--ku-s-4); }
.ku-ledger__row > td { display: block; min-width: 0; padding: var(--ku-s-2) var(--ku-s-3); background: var(--ku-surface); }
.ku-ledger__row > td[data-label]::before { content: attr(data-label); display: block; font: var(--ku-fw-bold) var(--ku-fs-th)/var(--ku-lh-th) var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
/* левая часть абонемента */
.ku-ledger__row > .ku-c-school { grid-area: school; padding-top: var(--ku-s-3); border-top: var(--ku-border); border-left: var(--ku-border); }
.ku-ledger__row > .ku-c-score { grid-area: score; border-left: var(--ku-border); }
.ku-ledger__row > .ku-c-doc { grid-area: doc; border-left: var(--ku-border); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); }
.ku-ledger__row > .ku-c-tools { grid-area: tools; display: flex; align-items: center; border-left: var(--ku-border); border-bottom: var(--ku-border); }
/* корешок: пять ячеек справа, слева перфорация */
.ku-ledger__row > .ku-c-rank, .ku-ledger__row > .ku-c-price, .ku-ledger__row > .ku-c-pay, .ku-ledger__row > .ku-c-term, .ku-ledger__row > .ku-c-job { border-left: var(--ku-perf); border-right: var(--ku-border); }
.ku-ledger__row > .ku-c-rank { grid-area: rank; position: relative; padding-top: var(--ku-s-3); border-top: var(--ku-border); font: var(--ku-fw-bold) 13px/16px var(--ku-font-mono); color: var(--ku-ink-2); }
.ku-ledger__row > .ku-c-price { grid-area: price; }
.ku-ledger__row > .ku-c-pay { grid-area: pay; }
.ku-ledger__row > .ku-c-term { grid-area: term; }
.ku-ledger__row > .ku-c-job { grid-area: job; position: relative; border-bottom: var(--ku-border); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); }
.ku-ledger__row > .ku-c-price .ku-num, .ku-ledger__row > .ku-c-pay .ku-num, .ku-ledger__row > .ku-c-term .ku-num { font-weight: var(--ku-fw-bold); }
.ku-ledger__row > .ku-c-format, .ku-ledger__row > .ku-c-free { display: none; }
.ku-ledger .ku-mark__num { font-size: var(--ku-fs-mark-md); }
.ku-ledger .ku-mark__sign { width: 60px; height: 10px; }
.ku-ledger .ku-mark__word { font-size: 16px; line-height: 20px; }
.ku-ledger .ku-mark--na .ku-mark__num { font-size: 15px; }
.ku-ledger .ku-mark--na .ku-mark__word { font-size: var(--ku-fs-micro); line-height: var(--ku-lh-micro); }
/* кнопки под абонементом */
.ku-ledger__row > .ku-c-act { grid-area: act; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--ku-s-2) var(--ku-s-4); padding: var(--ku-s-2) 0 0; background: none; }
.ku-c-act .ku-btn--primary { grid-column: 1 / -1; }
.ku-c-act__more { min-height: var(--ku-tap); font-size: var(--ku-fs-small); }
/* выемки абонемента: полукруги цвета фона на концах перфорации */
.ku-ledger__row > .ku-c-rank::before, .ku-ledger__row > .ku-c-job::after, .ku-ticket__stub::before, .ku-ticket__stub::after { content: ""; position: absolute; left: calc(var(--ku-notch) / -2 - 1px); width: var(--ku-notch); height: calc(var(--ku-notch) / 2 + 1px); background: var(--ku-notch-bg); border: var(--ku-border); }
.ku-ledger__row > .ku-c-rank::before, .ku-ticket__stub::before { top: -1px; border-top: 0; border-radius: 0 0 var(--ku-notch) var(--ku-notch); }
.ku-ledger__row > .ku-c-job::after, .ku-ticket__stub::after { bottom: -1px; border-bottom: 0; border-radius: var(--ku-notch) var(--ku-notch) 0 0; }
/* школа и программа */
.ku-school { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--ku-s-3); align-items: start; }
.ku-school__name { font-size: var(--ku-fs-ui); line-height: var(--ku-lh-ui); font-weight: var(--ku-fw-semibold); text-decoration: none; overflow-wrap: anywhere; hyphens: auto; hyphenate-limit-chars: 8 4 4; }
.ku-school__name:hover { text-decoration: underline; text-decoration-color: var(--ku-accent); text-underline-offset: 3px; }
.ku-school__kind { display: block; font-size: var(--ku-fs-micro); line-height: var(--ku-lh-micro); color: var(--ku-ink-2); }
.ku-school__prog { grid-column: 1 / -1; margin-top: var(--ku-s-2); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); overflow-wrap: anywhere; }
.ku-school__prog b { display: block; font: var(--ku-fw-bold) var(--ku-fs-th)/var(--ku-lh-th) var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
.ku-school .ku-badge { grid-column: 1 / -1; justify-self: start; margin-top: var(--ku-s-2); }
/* раскрытые «Условия» */
.ku-ledger__more { display: block; margin-top: calc(var(--ku-s-3) * -1); }
.ku-ledger__more > td { display: block; padding: var(--ku-s-3); background: var(--ku-surface); border: var(--ku-border-hair); }
.ku-facts { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-2) var(--ku-s-5); }
.ku-facts__row, .ku-facts > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: var(--ku-s-3); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); overflow-wrap: anywhere; }
.ku-facts dt { font: var(--ku-fw-bold) var(--ku-fs-th)/var(--ku-lh-note) var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
.ku-facts dd .ku-empty, .ku-facts__why { color: var(--ku-ink-2); }
.ku-facts__why { display: block; }
.ku-facts a { text-decoration: underline; text-decoration-color: var(--ku-ink-3); text-underline-offset: 3px; }
.ku-facts a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
/* низ ведомости: «Показать ещё», пустой результат */
.ku-ledger__foot { display: grid; gap: var(--ku-s-3); margin-top: var(--ku-s-4); }
.ku-ledger__note { max-width: var(--ku-measure); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }

/* ---------- абонемент с корешком ---------- */
.ku-tickets { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-6); }
.ku-ticket { display: grid; grid-template-rows: 1fr auto; gap: var(--ku-s-2); min-width: 0; }
.ku-ticket__paper { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) var(--ku-stub-w); background: var(--ku-surface); border: var(--ku-border); transition: background-color var(--ku-dur) var(--ku-ease); }
.ku-ticket__paper:hover { background: var(--ku-surface-2); }
.ku-ticket__main { display: grid; align-content: start; gap: var(--ku-s-3); min-width: 0; padding: var(--ku-s-3) var(--ku-s-3) var(--ku-s-4); }
.ku-ticket__main .ku-badge { justify-self: start; white-space: normal; }
/* в узком абонементе (окно 320–360px) название уходит под плитку логотипа и не рвётся по слогам без нужды */
.ku-ticket__main .ku-school { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--ku-s-2) var(--ku-s-3); }
.ku-ticket__main .ku-school > div { flex: 1 1 112px; min-width: 0; }
.ku-ticket__title { font: var(--ku-fw-semibold) 20px/24px var(--ku-font-head); text-decoration: none; overflow-wrap: anywhere; hyphens: auto; hyphenate-limit-chars: 8 4 4; }
/* абонемент кликабелен целиком: ссылка-название растянута на весь лист */
.ku-ticket__title::after { content: ""; position: absolute; inset: 0; }
.ku-ticket__paper:hover .ku-ticket__title { text-decoration: underline; text-decoration-color: var(--ku-accent); text-underline-offset: 4px; }
.ku-ticket__prog { font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); overflow-wrap: anywhere; }
.ku-ticket__stub { position: relative; display: grid; align-content: start; min-width: 0; border-left: var(--ku-perf); }
.ku-ticket__serial { padding: var(--ku-s-3) var(--ku-s-3) var(--ku-s-1); font: var(--ku-fw-bold) 13px/16px var(--ku-font-mono); color: var(--ku-ink-2); white-space: nowrap; }
.ku-ticket__fact { min-width: 0; padding: var(--ku-s-2) var(--ku-s-3); border-bottom: var(--ku-border-hair); }
.ku-ticket__fact:last-child { border-bottom: 0; }
.ku-ticket__fact .ku-caps { display: block; }
.ku-ticket__fact .ku-num { display: block; font-weight: var(--ku-fw-bold); }
.ku-ticket__fact--text { font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); }
.ku-ticket__actions { display: grid; align-items: center; gap: var(--ku-s-2); }
.ku-ticket__actions .ku-link { justify-self: start; min-height: var(--ku-tap); }
/* корешок с диапазонами «от» и «до»: результат подбора */
.ku-ticket--range { --ku-stub-w: 136px; }

/* ---------- строки-записи ---------- */
.ku-rows { border-top: var(--ku-border); }
.ku-rows__i { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-1) var(--ku-s-5); padding: var(--ku-s-3) 0; border-bottom: var(--ku-border-hair); transition: background-color var(--ku-dur) var(--ku-ease); }
.ku-rows__i:hover { background: var(--ku-surface-2); }
.ku-rows__head { display: flex; align-items: baseline; gap: var(--ku-s-2); min-width: 0; }
.ku-rows__title { min-width: 0; font: var(--ku-fw-semibold) var(--ku-fs-h4)/var(--ku-lh-h4) var(--ku-font-body); text-decoration: none; overflow-wrap: break-word; } /* min-width: 0 — приёмка 09.10.2026: без него длинное слово («Karpov.Courses») на 320px выталкивало строку за экран, пока не загрузился шрифт */
/* пункт кликабелен целиком; внутренние ссылки и кнопки подняты над растянутой ссылкой */
.ku-rows__title::after { content: ""; position: absolute; inset: 0; }
.ku-rows__i:hover .ku-rows__title { text-decoration: underline; text-decoration-color: var(--ku-accent); text-underline-offset: 3px; }
.ku-rows__facts { display: flex; flex-wrap: wrap; gap: 2px var(--ku-s-4); font-family: var(--ku-font-mono); font-size: var(--ku-fs-num); line-height: var(--ku-lh-num); color: var(--ku-ink-2); }
.ku-rows__facts b { font-weight: var(--ku-fw-regular); color: var(--ku-ink); }
.ku-rows__head > .ku-rows__facts { flex: none; flex-wrap: nowrap; white-space: nowrap; }
.ku-rows__sub { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 2px var(--ku-s-4); font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); }
.ku-rows__sub a { padding: 6px 0; text-decoration: underline; text-decoration-color: var(--ku-line-2); text-underline-offset: 3px; }
.ku-rows__sub a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
.ku-rows__text { font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); color: var(--ku-ink-2); }
/* пункт школы: плитка, название, малая отметка, кнопки */
.ku-rows__i--school .ku-rows__head { flex-wrap: wrap; align-items: center; gap: var(--ku-s-2) var(--ku-s-3); }
.ku-rows__i--school .ku-toc__dots { transform: none; align-self: center; }
.ku-rows__i--school .ku-mark { flex: none; }
.ku-rows__actions { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ku-s-2); margin-top: var(--ku-s-2); }
.ku-rows__actions .ku-btn { min-height: var(--ku-tap); }   /* на телефоне кнопки строки — в полную высоту нажатия */

/* ---------- фильтры и чипы ---------- */
.ku-chip { display: inline-flex; align-items: center; gap: 6px; min-height: var(--ku-tap); padding: 0 var(--ku-s-3); background: var(--ku-surface); border: var(--ku-border-control); border-radius: var(--ku-radius-1); font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); text-align: left; text-decoration: none; cursor: pointer; transition: background-color var(--ku-dur) var(--ku-ease), border-color var(--ku-dur) var(--ku-ease); }
.ku-chip:hover { background: var(--ku-surface-2); border-color: var(--ku-ink); }
.ku-chip:active { background: var(--ku-surface-3); }
.ku-chip__check { display: none; color: var(--ku-accent2); }
.ku-chip[aria-pressed="true"] { background: var(--ku-accent2-tint); border-color: var(--ku-accent2); font-weight: var(--ku-fw-medium); }
.ku-chip[aria-pressed="true"] .ku-chip__check { display: block; }
.ku-chip:disabled { background: none; border-style: dashed; color: var(--ku-ink-3); cursor: not-allowed; }
.ku-chip__count { font-family: var(--ku-font-mono); font-size: 13px; color: var(--ku-ink-2); }
.ku-chip:disabled .ku-chip__count { color: var(--ku-ink-3); }
.ku-chip--link .ku-chip__name { text-decoration: underline; text-decoration-color: var(--ku-line-2); text-underline-offset: 3px; }
.ku-chip--link:hover .ku-chip__name { text-decoration-color: var(--ku-accent); }
.ku-chip--x { min-height: var(--ku-h-sm); padding-right: var(--ku-s-1); background: var(--ku-accent2-tint); border-color: var(--ku-accent2); }
.ku-chip--x .ku-icon { width: 24px; height: 24px; padding: 4px; }
.ku-chip--x:hover { background: var(--ku-accent2-tint); border-color: var(--ku-ink); }
.ku-chip--board { background: none; border-color: var(--ku-on-accent2); color: var(--ku-on-accent2); }
.ku-chip--board:hover { background: var(--ku-accent2-deep); border-color: var(--ku-on-accent2); }
.ku-chip--board[aria-pressed="true"] { background: var(--ku-on-accent2); border-color: var(--ku-on-accent2); color: var(--ku-ink); }
.ku-chip--board .ku-chip__check { color: var(--ku-ink); }
/* выпадающий список */
.ku-select { position: relative; display: inline-flex; align-items: center; min-width: 0; max-width: 100%; }
.ku-select select { appearance: none; -webkit-appearance: none; width: 100%; min-width: 0; height: var(--ku-tap); padding: 0 36px 0 var(--ku-s-3); background: var(--ku-surface); border: var(--ku-border-control); border-radius: var(--ku-radius-1); font-size: var(--ku-fs-small); text-overflow: ellipsis; cursor: pointer; transition: border-color var(--ku-dur) var(--ku-ease), background-color var(--ku-dur) var(--ku-ease); }
.ku-select select:hover { border-color: var(--ku-ink); }
.ku-select > .ku-icon { position: absolute; right: 10px; pointer-events: none; }
/* флажок и радиокнопка */
.ku-check, .ku-radio { display: inline-flex; align-items: center; gap: var(--ku-s-2); min-height: var(--ku-tap); font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); cursor: pointer; }
.ku-check input, .ku-radio input { appearance: none; -webkit-appearance: none; display: inline-grid; place-content: center; flex: none; width: 20px; height: 20px; margin: 0; background: var(--ku-surface); border: var(--ku-border-control); border-radius: var(--ku-radius-0); cursor: pointer; transition: border-color var(--ku-dur) var(--ku-ease), background-color var(--ku-dur) var(--ku-ease); }
.ku-check input:hover, .ku-radio input:hover { border-color: var(--ku-ink); }
.ku-check input:checked { background: var(--ku-ink); border-color: var(--ku-ink); }
.ku-check input:checked::before { content: ""; width: 6px; height: 11px; margin-top: -3px; border: solid var(--ku-bg); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ku-check input:disabled, .ku-radio input:disabled { background: var(--ku-surface-3); cursor: not-allowed; }
.ku-radio input { border-radius: var(--ku-radius-round); }
.ku-radio input:checked { border-color: var(--ku-ink); }
.ku-radio input:checked::before { content: ""; width: 10px; height: 10px; background: var(--ku-ink); border-radius: var(--ku-radius-round); }
/* ползунок «до» */
.ku-range { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--ku-s-3); min-height: var(--ku-tap); }
.ku-range input { appearance: none; -webkit-appearance: none; width: 100%; height: 24px; margin: 0; background: none; cursor: pointer; }
.ku-range input::-webkit-slider-runnable-track { height: 2px; background: var(--ku-ink); }
.ku-range input::-moz-range-track { height: 2px; background: var(--ku-ink); }
.ku-range input::-webkit-slider-thumb { -webkit-appearance: none; width: 12px; height: 24px; margin-top: -11px; background: var(--ku-ink); border: 0; border-radius: 1px; }
.ku-range input::-moz-range-thumb { width: 12px; height: 24px; background: var(--ku-ink); border: 0; border-radius: 1px; }
.ku-range output { min-width: 92px; text-align: right; }
/* список с несколькими отметками: раскрывается на месте */
.ku-multi { min-width: 0; }
.ku-multi > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--ku-s-2); height: var(--ku-tap); padding: 0 10px 0 var(--ku-s-3); background: var(--ku-surface); border: var(--ku-border-control); border-radius: var(--ku-radius-1); font-size: var(--ku-fs-small); list-style: none; cursor: pointer; transition: border-color var(--ku-dur) var(--ku-ease); }
.ku-multi > summary::-webkit-details-marker { display: none; }
.ku-multi > summary:hover, .ku-multi[open] > summary { border-color: var(--ku-ink); }
.ku-multi__list { display: grid; max-height: 220px; overflow-y: auto; margin-top: -1px; padding: var(--ku-s-1) var(--ku-s-3); background: var(--ku-surface); border: var(--ku-border); }
.ku-multi__list .ku-check { min-height: 36px; }
/* панель фильтров: на телефоне — лист на весь экран */
.ku-filters { position: fixed; inset: 0; z-index: var(--ku-z-overlay); display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; background: var(--ku-bg); }
.ku-filters__head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: var(--ku-s-3); flex: none; min-height: var(--ku-header-h); padding: 0 var(--ku-gutter); background: var(--ku-bg); border-bottom: var(--ku-border); }
.ku-filters__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ku-s-4) var(--ku-s-5); padding: var(--ku-s-4) var(--ku-gutter); }
.ku-filters__group { display: grid; align-content: start; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; }
.ku-filters__label { padding: 0; font: var(--ku-fw-bold) var(--ku-fs-th)/var(--ku-lh-th) var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
.ku-filters__opts { display: flex; flex-wrap: wrap; gap: var(--ku-s-2); }
.ku-filters__group .ku-select { display: flex; }
.ku-filters__flags { display: grid; padding: 0 var(--ku-gutter) var(--ku-s-4); }
.ku-filters__foot { position: sticky; bottom: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--ku-s-4); flex: none; margin-top: auto; padding: var(--ku-s-3) var(--ku-gutter); background: var(--ku-bg); border-top: var(--ku-border); }
.ku-filters__apply--panel { display: none; }
.ku-filters__foot .ku-link { min-height: var(--ku-tap); }
/* строка выбранных фильтров */
.ku-applied { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ku-s-2); margin-bottom: var(--ku-s-3); }
.ku-applied__list { display: contents; }
.ku-applied .ku-link { min-height: var(--ku-h-sm); font-size: var(--ku-fs-small); }

/* ---------- вкладки: закладки на листе ---------- */
.ku-tabs { display: flex; overflow-x: auto; border-bottom: var(--ku-border); scrollbar-width: none; }
.ku-tabs::-webkit-scrollbar { display: none; }
.ku-tab { flex: none; min-height: var(--ku-tap); margin-bottom: -1px; padding: 0 var(--ku-s-4); background: none; border: 1px solid transparent; border-bottom: 0; font-size: var(--ku-fs-ui); font-weight: var(--ku-fw-medium); color: var(--ku-ink-2); white-space: nowrap; cursor: pointer; transition: background-color var(--ku-dur) var(--ku-ease), color var(--ku-dur) var(--ku-ease); }
.ku-tab:hover { background: var(--ku-surface-2); color: var(--ku-ink); }
.ku-tab[aria-selected="true"] { background: var(--ku-surface); border-color: var(--ku-ink); border-top: var(--ku-bw-mark) solid var(--ku-accent); font-weight: var(--ku-fw-semibold); color: var(--ku-ink); }
.ku-tab:focus-visible { outline-offset: -2px; }
.ku-tabpanel { padding: var(--ku-s-4); background: var(--ku-surface); border: var(--ku-border); border-top: 0; }

/* ---------- панель сравнения ---------- */
.ku-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--ku-z-bar); padding-bottom: env(safe-area-inset-bottom); background: var(--ku-ink); color: var(--ku-bg); border-top: 2px solid var(--ku-accent); }
.ku-bar :focus-visible { outline-color: var(--ku-focus-on-dark); }
.ku-bar__in { display: flex; align-items: center; gap: var(--ku-s-3); min-height: var(--ku-bar-h); padding-top: 6px; padding-bottom: 6px; }
.ku-bar__label { display: none; font-family: var(--ku-font-mono); font-size: var(--ku-fs-num); white-space: nowrap; }
.ku-bar__label b { font-size: var(--ku-fs-num-lg); font-weight: var(--ku-fw-bold); }
.ku-bar__items { display: none; }
.ku-bar__item { display: inline-flex; align-items: center; gap: var(--ku-s-2); flex: none; padding: 3px 4px 3px 3px; border: 1px solid var(--ku-ink-2); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); white-space: nowrap; }
.ku-bar__x { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 0; background: none; border: 0; color: var(--ku-line-2); cursor: pointer; }
.ku-bar__x:hover { color: var(--ku-bg); }
.ku-bar__msg { font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-line-2); }
.ku-bar__go { flex: 1; min-height: var(--ku-tap); }
.ku-bar__go-n { font-family: var(--ku-font-mono); }
.ku-bar .ku-btn[aria-disabled="true"] { background: none; border: 1px dashed var(--ku-line-2); color: var(--ku-line-2); }
.ku-bar .ku-link { min-height: var(--ku-tap); color: var(--ku-bg); text-decoration-color: var(--ku-line-2); }
.ku-bar .ku-link:hover { color: var(--ku-bg); text-decoration-color: var(--ku-bg); }
/* пока панель видна, у страницы нижнее поле на её высоту */
.ku-has-bar { padding-bottom: calc(var(--ku-bar-h) + env(safe-area-inset-bottom)); }

/* ---------- таблица сравнения «Две зачётки рядом» ---------- */
/* до 768px: подпись строки над значениями, школы делят ширину пополам; шапка прилипает */
.ku-cmp-wrap { background: var(--ku-surface); border: var(--ku-border); }
.ku-cmp { display: block; width: 100%; font-size: var(--ku-fs-table); line-height: var(--ku-lh-table); }
.ku-cmp thead, .ku-cmp tbody { display: block; }
.ku-cmp tr { display: grid; grid-template-columns: repeat(var(--ku-cmp-n, 2), minmax(0, 1fr)); }
.ku-cmp th, .ku-cmp td { display: block; min-width: 0; padding: var(--ku-s-2) var(--ku-s-3) var(--ku-s-3); border-bottom: var(--ku-border-hair); text-align: left; overflow-wrap: break-word; }
.ku-cmp td + td, .ku-cmp thead th + th + th { border-left: var(--ku-border-hair); }
.ku-cmp tr > :first-child { grid-column: 1 / -1; padding: var(--ku-s-2) var(--ku-s-3) 0; border-bottom: 0; font: var(--ku-fw-bold) var(--ku-fs-th)/18px var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
.ku-cmp thead { position: sticky; top: 0; z-index: var(--ku-z-sticky); }
.ku-cmp thead th { padding: var(--ku-s-3); background: var(--ku-surface-2); border-bottom: var(--ku-rule-double); }
.ku-cmp thead tr > :first-child { display: none; }
.ku-cmp thead .ku-school__name { font: var(--ku-fw-semibold) 16px/20px var(--ku-font-head); }
/* в узкой колонке (окно 320–360px) название уходит под плитку логотипа, чтобы слово не рвалось посередине */
.ku-cmp thead .ku-school { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--ku-s-2) var(--ku-s-3); }
.ku-cmp thead .ku-school > div { flex: 1 1 96px; min-width: 0; }
.ku-cmp tbody tr:last-child > td { border-bottom: 0; }
.ku-cmp td.is-best { background: var(--ku-accent-tint); }
/* три и четыре школы на телефоне: таблица листается вбок, шапка не прилипает */
.ku-cmp-wrap--many { overflow-x: auto; }
.ku-cmp-wrap--many .ku-cmp tr { grid-template-columns: repeat(var(--ku-cmp-n, 3), minmax(148px, 1fr)); }
.ku-cmp-wrap--many .ku-cmp thead { position: static; }
/* лучшее значение обведено «красным карандашом» */
.ku-circled { display: inline-block; margin: -3px -8px; padding: 2px 7px; border: var(--ku-pencil); border-radius: var(--ku-radius-round); }

/* ---------- блок оценки: разворот зачётки ---------- */
.ku-zachet { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--ku-surface); border: var(--ku-border); }
.ku-zachet__cover { display: grid; align-content: start; justify-items: start; gap: var(--ku-s-2); padding: var(--ku-s-4); background: var(--ku-surface-2); border-bottom: var(--ku-rule-double); }
.ku-zachet__meta { font-family: var(--ku-font-mono); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
.ku-zachet__table { width: 100%; border-collapse: collapse; font-size: var(--ku-fs-table); line-height: var(--ku-lh-table); }
.ku-zachet__table th { padding: var(--ku-s-2) var(--ku-s-3); border-bottom: var(--ku-border); font: var(--ku-fw-bold) var(--ku-fs-th)/var(--ku-lh-th) var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
.ku-zachet__table td { padding: var(--ku-s-3); border-bottom: var(--ku-border-hair); vertical-align: top; }
.ku-zachet__table tr:last-child td { border-bottom: 0; }
.ku-zachet__table .ku-is-num { text-align: right; }
.ku-zachet__subj { font-size: var(--ku-fs-ui); font-weight: var(--ku-fw-medium); }
.ku-zachet__from { display: block; margin-top: 2px; font-size: var(--ku-fs-micro); line-height: var(--ku-lh-micro); font-weight: var(--ku-fw-regular); color: var(--ku-ink-2); }
.ku-zachet__ball { margin-right: 6px; font: italic var(--ku-fw-bold) 22px/22px var(--ku-font-head); font-variant-numeric: lining-nums; color: var(--ku-accent); }
.ku-zachet__hide { display: none; }

/* ---------- обложка зачётки: первый экран страницы школы ---------- */
.ku-cover { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--ku-surface); border: var(--ku-border); }
.ku-cover__main { display: grid; align-content: start; gap: var(--ku-s-3); min-width: 0; padding: var(--ku-s-4); }
.ku-cover__head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: var(--ku-s-4); }
.ku-cover__head .ku-h1 { margin-top: var(--ku-s-1); overflow-wrap: anywhere; hyphens: auto; }
.ku-cover__checked { font: var(--ku-fw-regular) 13px/18px var(--ku-font-mono); color: var(--ku-ink-2); }
.ku-cover__actions { display: grid; gap: var(--ku-s-2); }
.ku-cover__actions .ku-btn[aria-pressed="true"] { background: var(--ku-accent2-tint); border-color: var(--ku-accent2); }
.ku-cover__mark { display: grid; align-content: start; justify-items: start; gap: var(--ku-s-2); padding: var(--ku-s-4); background: var(--ku-surface-2); border-top: var(--ku-rule-double); }
.ku-cover__place { font: var(--ku-fw-regular) 13px/18px var(--ku-font-mono); color: var(--ku-ink-2); }
.ku-cover__facts { border-width: 1px 0 0; }

/* ---------- вопросы и ответы ---------- */
.ku-faq { border-top: var(--ku-border); }
.ku-faq__item { border-bottom: var(--ku-border-hair); }
.ku-faq__item:last-child { border-bottom: var(--ku-border); }
.ku-faq__q { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: start; gap: var(--ku-s-3); padding: var(--ku-s-4) 0; font: var(--ku-fw-semibold) var(--ku-fs-h4)/var(--ku-lh-h4) var(--ku-font-body); list-style: none; cursor: pointer; transition: background-color var(--ku-dur) var(--ku-ease); }
.ku-faq__q::-webkit-details-marker { display: none; }
.ku-faq__q:hover { background: var(--ku-surface-2); }
.ku-faq__q .ku-icon { margin-top: 2px; }
.ku-faq__n { font: var(--ku-fw-bold) 13px/24px var(--ku-font-mono); color: var(--ku-accent-deep); }
.ku-faq__item[open] .ku-faq__plus, .ku-faq__item:not([open]) .ku-faq__minus { display: none; }
.ku-faq__a { max-width: calc(var(--ku-measure) + var(--ku-s-8)); padding: 0 0 var(--ku-s-5) var(--ku-s-8); }
.ku-faq__a > * + * { margin-top: var(--ku-s-3); }
.ku-faq__a a { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--ku-accent); text-underline-offset: 3px; }
.ku-faq__a a:hover { color: var(--ku-accent-deep); text-decoration-thickness: 2px; }

/* ---------- автор и методика ---------- */
.ku-sign { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--ku-surface); border: var(--ku-border); }
.ku-sign__col { min-width: 0; padding: var(--ku-s-4); }
.ku-sign__col + .ku-sign__col { border-top: var(--ku-border-hair); }
.ku-sign__who { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--ku-s-3); margin-top: var(--ku-s-3); }
.ku-sign__name { font: var(--ku-fw-semibold) 18px/22px var(--ku-font-head); }
.ku-sign__role { font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
.ku-sign__text { margin-top: var(--ku-s-3); font-size: var(--ku-fs-small); line-height: 22px; }
.ku-sign__text a { text-decoration: underline; text-decoration-color: var(--ku-ink-3); text-underline-offset: 3px; }
.ku-sign__text a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
.ku-sign__line { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--ku-s-3); margin-top: var(--ku-s-4); font-family: var(--ku-font-mono); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
.ku-sign__line svg { width: 96px; height: 24px; fill: none; stroke: var(--ku-accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; border-bottom: 1px solid var(--ku-ink); }
.ku-sign__more { margin-top: var(--ku-s-3); }
/* полоса долей: ширина сегмента по весу, style="--ku-w:25" */
.ku-weights { display: flex; margin-top: var(--ku-s-3); border: var(--ku-border); }
.ku-weights__i { flex: var(--ku-w, 1) 1 0; min-width: 0; overflow: hidden; padding: var(--ku-s-1) 0; border-right: var(--ku-border); font: var(--ku-fw-bold) 12px/16px var(--ku-font-mono); text-align: center; }
.ku-weights__i:last-child { border-right: 0; }
.ku-weights__i:nth-child(odd) { background: var(--ku-surface-2); }
/* список с отточием: критерий и вес, сводка и число школ */
.ku-crit { display: grid; gap: 2px; margin-top: var(--ku-s-3); }
.ku-crit li { display: flex; align-items: baseline; gap: var(--ku-s-2); padding: var(--ku-s-1) 0; font-size: var(--ku-fs-small); line-height: var(--ku-lh-small); }
/* шкала отметок одной строкой */
.ku-scale { display: flex; flex-wrap: wrap; gap: var(--ku-s-1) var(--ku-s-4); margin-top: var(--ku-s-3); padding-top: var(--ku-s-3); border-top: var(--ku-border-hair); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
.ku-scale b { font-family: var(--ku-font-mono); font-weight: var(--ku-fw-bold); color: var(--ku-ink); white-space: nowrap; }

/* ---------- текст для чтения ---------- */
.ku-prose { max-width: var(--ku-measure); font-size: var(--ku-fs-read); line-height: var(--ku-lh-read); }
.ku-prose > * + * { margin-top: var(--ku-s-4); }
.ku-prose h2 { margin-top: var(--ku-s-12); padding-top: var(--ku-s-4); border-top: var(--ku-rule-double); font: var(--ku-fw-semibold) var(--ku-fs-h2)/var(--ku-lh-h2) var(--ku-font-head); letter-spacing: var(--ku-ls-head); }
.ku-prose h2:first-child { margin-top: 0; }
.ku-prose > :first-child { margin-top: 0; }
.ku-prose h3 { margin-top: var(--ku-s-8); font: var(--ku-fw-semibold) var(--ku-fs-h3)/var(--ku-lh-h3) var(--ku-font-head); }
.ku-prose h4 { margin-top: var(--ku-s-6); font: var(--ku-fw-semibold) var(--ku-fs-h4)/var(--ku-lh-h4) var(--ku-font-body); }
.ku-prose a { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--ku-accent); text-underline-offset: 3px; }
.ku-prose a:hover { color: var(--ku-accent-deep); text-decoration-thickness: 2px; }
.ku-prose ul > li, .ku-prose ol > li { position: relative; padding-left: 28px; }
.ku-prose li + li { margin-top: var(--ku-s-2); }
.ku-prose ul > li::before { content: "—"; position: absolute; left: 0; color: var(--ku-accent); }
.ku-prose ol { counter-reset: ku-ol; }
.ku-prose ol > li { counter-increment: ku-ol; }
.ku-prose ol > li::before { content: counter(ku-ol) "."; position: absolute; left: 0; font-family: var(--ku-font-mono); font-weight: var(--ku-fw-bold); color: var(--ku-ink-2); }
.ku-prose blockquote { margin-top: var(--ku-s-6); padding-left: var(--ku-s-4); border-left: 1px solid var(--ku-ink); font: italic var(--ku-fw-regular) 20px/28px var(--ku-font-head); }
.ku-prose .ku-num { font-size: inherit; line-height: inherit; }
/* врезки */
.ku-note { max-width: var(--ku-measure); padding: var(--ku-s-1) 0 var(--ku-s-1) var(--ku-s-4); border-left: 2px solid var(--ku-accent); font-size: var(--ku-fs-ui); line-height: 24px; }
.ku-note__label { display: block; margin-bottom: 2px; font: var(--ku-fw-bold) 11px/16px var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-accent-deep); }
.ku-note a { text-decoration: underline; text-decoration-color: var(--ku-accent); text-underline-offset: 3px; }
.ku-note a:hover { color: var(--ku-accent-deep); }
.ku-note--tip { border-left-color: var(--ku-accent2); }
.ku-note--tip .ku-note__label { color: var(--ku-accent2); }
.ku-note--warn { padding: var(--ku-s-3) var(--ku-s-4); background: var(--ku-warning-tint); border: 1px solid var(--ku-warning); border-left-width: 2px; }
.ku-note--warn .ku-note__label { color: var(--ku-warning); }
/* простая таблица: в тексте и в блоках условий */
.ku-tablebox, .ku-prose__table { overflow-x: auto; background: var(--ku-surface); border: var(--ku-border); }
.ku-table, .ku-prose table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: var(--ku-fs-table); line-height: var(--ku-lh-table); }
.ku-table--wide { min-width: 720px; }
.ku-table th, .ku-prose th { padding: var(--ku-s-2) var(--ku-s-3); vertical-align: bottom; background: var(--ku-surface-2); border-bottom: var(--ku-rule-double); font: var(--ku-fw-bold) var(--ku-fs-th)/var(--ku-lh-th) var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
.ku-table td, .ku-prose td { padding: var(--ku-s-2) var(--ku-s-3); vertical-align: top; border-bottom: var(--ku-border-hair); }
.ku-table tr:last-child td, .ku-prose tr:last-child td { border-bottom: 0; }
.ku-table .ku-is-num, .ku-prose .ku-is-num { text-align: right; }
.ku-table td.ku-is-num, .ku-prose td.ku-num { font-family: var(--ku-font-mono); font-size: var(--ku-fs-num); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ku-prose td.ku-num { text-align: right; }
.ku-table a { text-decoration: underline; text-decoration-color: var(--ku-ink-3); text-underline-offset: 3px; }
.ku-table a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
.ku-table__sub { display: block; font-size: var(--ku-fs-micro); line-height: var(--ku-lh-micro); color: var(--ku-ink-2); }
/* таблица, которая на телефоне складывается: строка — блок, подпись графы над значением */
.ku-table--stack { min-width: 0; }
.ku-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.ku-table--stack, .ku-table--stack tbody, .ku-table--stack tr, .ku-table--stack td { display: block; }
.ku-table--stack tr { padding: var(--ku-s-2) 0; border-bottom: var(--ku-border-hair); }
.ku-table--stack tr:last-child { border-bottom: 0; }
.ku-table--stack td { padding: var(--ku-s-1) var(--ku-s-3); border-bottom: 0; }
.ku-table--stack td[data-label]::before { content: attr(data-label); display: block; font: var(--ku-fw-bold) var(--ku-fs-th)/var(--ku-lh-th) var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
.ku-table--stack td.ku-is-num { text-align: left; }

/* ---------- карточка статьи и лента ---------- */
.ku-posts { display: grid; grid-template-columns: minmax(0, 1fr); border-top: var(--ku-border); }
.ku-post { position: relative; display: grid; align-content: start; gap: var(--ku-s-2); min-width: 0; padding: var(--ku-s-4) 0; border-bottom: var(--ku-border-hair); }
.ku-post__rubric { font: var(--ku-fw-bold) 11px/16px var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-accent-deep); }
.ku-post__title { font: var(--ku-fw-semibold) 20px/26px var(--ku-font-head); text-decoration: none; overflow-wrap: break-word; }
.ku-post__title::after { content: ""; position: absolute; inset: 0; }
.ku-post:hover .ku-post__title { text-decoration: underline; text-decoration-color: var(--ku-accent); text-underline-offset: 4px; }
.ku-post__lead { font-size: var(--ku-fs-small); line-height: 22px; color: var(--ku-ink-2); }
.ku-post__meta { font-family: var(--ku-font-mono); font-size: 13px; line-height: 16px; color: var(--ku-ink-2); }
.ku-post--lead .ku-post__title { font-size: var(--ku-fs-h2); line-height: var(--ku-lh-h2); letter-spacing: var(--ku-ls-head); }
.ku-post--lead .ku-post__lead { font-size: var(--ku-fs-body); line-height: var(--ku-lh-body); }
/* номера страниц */
.ku-pages { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ku-s-2); }
.ku-pages__i { display: inline-flex; align-items: center; justify-content: center; gap: var(--ku-s-2); min-width: var(--ku-tap); height: var(--ku-tap); padding: 0 var(--ku-s-2); border: var(--ku-border-control); border-radius: var(--ku-radius-1); font-family: var(--ku-font-mono); font-size: var(--ku-fs-num); text-decoration: none; transition: background-color var(--ku-dur) var(--ku-ease), border-color var(--ku-dur) var(--ku-ease); }
.ku-pages__i:hover { background: var(--ku-surface-2); border-color: var(--ku-ink); }
.ku-pages__i[aria-current] { background: var(--ku-ink); border-color: var(--ku-ink); font-weight: var(--ku-fw-bold); color: var(--ku-bg); }

/* ---------- мини-обзор школы в подборке ---------- */
.ku-reviews { border-top: var(--ku-border); }
.ku-review { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "meta" "body" "list" "act"; gap: var(--ku-s-3) var(--ku-grid-gap); padding: var(--ku-s-5) 0; border-bottom: var(--ku-border-hair); scroll-margin-top: var(--ku-s-4); }
.ku-review > * { min-width: 0; }
.ku-review__head { grid-area: head; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: var(--ku-s-3); }
.ku-review__head .ku-mark { grid-column: 1 / -1; }
.ku-review__meta { grid-area: meta; display: grid; align-content: start; gap: var(--ku-s-2); }
.ku-review__body { grid-area: body; display: grid; align-content: start; gap: var(--ku-s-3); }
.ku-review > .ku-proscons { grid-area: list; }
.ku-review__name { font: var(--ku-fw-semibold) 20px/24px var(--ku-font-head); overflow-wrap: anywhere; hyphens: auto; hyphenate-limit-chars: 8 4 4; }
.ku-review__name a { text-decoration: none; }
.ku-review__name a:hover { text-decoration: underline; text-decoration-color: var(--ku-accent); text-underline-offset: 4px; }
.ku-review__facts { display: flex; flex-wrap: wrap; gap: 2px var(--ku-s-4); font-family: var(--ku-font-mono); font-size: var(--ku-fs-num); line-height: var(--ku-lh-num); color: var(--ku-ink-2); }
.ku-review__facts b { font-weight: var(--ku-fw-bold); color: var(--ku-ink); white-space: nowrap; }
.ku-review__prog { font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
.ku-review__text { max-width: var(--ku-measure); font-size: var(--ku-fs-ui); line-height: 24px; }
.ku-review__for { font-size: var(--ku-fs-small); line-height: 22px; }
.ku-review__for .ku-caps { display: block; }
.ku-review__actions { grid-area: act; display: grid; align-content: start; gap: var(--ku-s-2); }

/* ---------- остальное ---------- */
/* раскрытие о вознаграждении: одна строка перед подвалом */
.ku-disclosure { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--ku-s-2); margin-top: var(--ku-section-gap); padding: var(--ku-s-3) 0; border-top: var(--ku-border-hair); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
.ku-disclosure .ku-icon { margin-top: 1px; }
.ku-disclosure a { text-decoration: underline; text-decoration-color: var(--ku-ink-3); text-underline-offset: 3px; }
.ku-disclosure a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
/* «что мы не проверили», пустые состояния */
.ku-blank { padding: var(--ku-s-4); border: var(--ku-blank); }
.ku-blank > * + * { margin-top: var(--ku-s-2); }
.ku-blank li { display: grid; grid-template-columns: 28px minmax(0, 1fr); padding: var(--ku-s-1) 0; font-size: var(--ku-fs-ui); line-height: 22px; }
.ku-blank li::before { content: "—"; color: var(--ku-ink-2); }
.ku-blank p { font-size: var(--ku-fs-ui); line-height: 22px; }
.ku-blank a { text-decoration: underline; text-decoration-color: var(--ku-ink-3); text-underline-offset: 3px; }
.ku-blank a:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
/* плюсы и минусы, «кому подойдёт и кому нет» */
.ku-proscons { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--ku-surface); border: var(--ku-border); }
.ku-proscons__col { min-width: 0; padding: var(--ku-s-4); }
.ku-proscons__col + .ku-proscons__col { border-top: var(--ku-border-hair); }
.ku-proscons ul { margin-top: var(--ku-s-1); }
.ku-proscons li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: var(--ku-s-2); padding: 6px 0; font-size: var(--ku-fs-ui); line-height: 22px; overflow-wrap: break-word; }
.ku-proscons li::before { font: var(--ku-fw-bold) 18px/22px var(--ku-font-mono); }
.ku-proscons__col--plus li::before { content: "+"; color: var(--ku-success); }
.ku-proscons__col--minus li::before { content: "−"; color: var(--ku-error); }
/* памятка «что проверить перед оплатой» */
.ku-checklist { border-top: var(--ku-border); }
.ku-checklist li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: var(--ku-s-3); padding: var(--ku-s-3) 0; border-bottom: var(--ku-border-hair); font-size: var(--ku-fs-body); line-height: var(--ku-lh-body); }
.ku-checklist li::before { content: ""; width: 16px; height: 16px; margin-top: 4px; border: 1.5px solid var(--ku-ink); }
.ku-checklist .ku-link { font-size: var(--ku-fs-small); }
/* поле формы */
.ku-input { display: grid; gap: 6px; max-width: 420px; }
.ku-input__label { font-size: var(--ku-fs-small); font-weight: var(--ku-fw-medium); }
.ku-input__control { width: 100%; height: var(--ku-tap); padding: 0 var(--ku-s-3); background: var(--ku-surface); border: var(--ku-border-control); border-radius: var(--ku-radius-1); transition: border-color var(--ku-dur) var(--ku-ease); }
textarea.ku-input__control { height: auto; min-height: 120px; padding: var(--ku-s-2) var(--ku-s-3); resize: vertical; }
.ku-input__control:hover { border-color: var(--ku-ink); }
.ku-input.is-error .ku-input__control { border-color: var(--ku-error); border-width: 2px; }
.ku-input__msg { display: flex; align-items: center; gap: 6px; font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-error); }
.ku-input__hint { font-size: var(--ku-fs-micro); line-height: var(--ku-lh-micro); color: var(--ku-ink-2); }

/* ====================== от 768px ====================== */
@media (min-width: 768px) {
  .ku-hero > .ku-h1 { max-width: none; }
  .ku-formhead { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ku-formhead__cell { padding: var(--ku-s-2) var(--ku-s-3); border-bottom: 0; }
  .ku-formhead__cell:nth-child(2n) { border-right: var(--ku-border-hair); }
  .ku-formhead__cell:last-child { border-right: 0; }
  .ku-formhead--row { display: grid; gap: 0; background: var(--ku-surface); }
  .ku-formhead--row .ku-formhead__cell { padding: var(--ku-s-2) var(--ku-s-3); background: none; border-right: var(--ku-border-hair); }
  .ku-formhead--row .ku-formhead__cell:last-child { border-right: 0; }
  .ku-formhead--row .ku-formhead__value { font-size: var(--ku-fs-num-xl); line-height: var(--ku-lh-num-xl); }
  .ku-formhead--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ku-formhead--3 .ku-formhead__cell { border-right: var(--ku-border-hair); border-bottom: 0; }
  .ku-formhead--3 .ku-formhead__cell:last-child { border-right: 0; }

  .ku-secstrip { flex-wrap: wrap; overflow: visible; margin: 0; padding: 2px 0; }
  .ku-dirs__groups { columns: 3; column-gap: 0; }
  .ku-dirs__group { break-inside: avoid; border-right: var(--ku-border-hair); }

  .ku-board { padding: var(--ku-s-6); }
  .ku-board__steps { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; gap: var(--ku-s-4); }
  .ku-ticket--range { --ku-stub-w: 172px; }
  .ku-podbor__i > .ku-ticket { max-width: 560px; }

  .ku-chip { min-height: var(--ku-h-sm); }
  .ku-ledger-bar__grow { flex: 0 1 auto; margin-left: auto; }

  /* от 768px ведомость — настоящая таблица */
  .ku-table-wrap { overflow-x: auto; background: var(--ku-surface); border: var(--ku-border); }
  .ku-table-hint { display: block; margin-bottom: var(--ku-s-2); font-family: var(--ku-font-mono); font-size: 13px; line-height: 18px; color: var(--ku-ink-2); text-align: right; }
  .ku-ledger { display: table; min-width: 880px; border-collapse: separate; border-spacing: 0; }
  /* полный набор граф: ширина таблицы = сумма заданных ширин граф, иначе «Формат» и «Бесплатно» ужимаются до слова в строке (14.10) */
  .ku-ledger--full { min-width: 1270px; }
  .ku-ledger caption { display: table-caption; margin: 0; border: 0; border-bottom: var(--ku-border); }
  .ku-ledger thead { position: static; display: table-header-group; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; }
  .ku-ledger th { padding: var(--ku-s-2) var(--ku-cell-px); vertical-align: bottom; background: var(--ku-surface-2); border-bottom: var(--ku-rule-double); font: var(--ku-fw-bold) var(--ku-fs-th)/var(--ku-lh-th) var(--ku-font-mono); letter-spacing: var(--ku-ls-caps); text-transform: uppercase; color: var(--ku-ink-2); }
  .ku-ledger th.ku-is-num { text-align: right; }
  .ku-ledger th.ku-is-num .ku-sort { white-space: nowrap; }
  .ku-ledger th.ku-c-rank { width: 30px; }
  .ku-ledger th.ku-c-rank, .ku-ledger .ku-ledger__row > .ku-c-rank { padding-right: 0; }
  .ku-ledger th.ku-c-school { min-width: 180px; }
  .ku-ledger th.ku-c-score { width: 78px; }
  .ku-ledger th.ku-c-format { width: 104px; }
  .ku-ledger th.ku-c-doc { width: 132px; }
  .ku-ledger th.ku-c-job { width: 124px; }
  .ku-ledger th.ku-c-free { width: 136px; }
  /* графа флажков подписана словом: значок без подписи новичку ничего не говорит */
  .ku-ledger th.ku-c-tools { width: 62px; }
  .ku-ledger th.ku-c-tools, .ku-ledger .ku-ledger__row > .ku-c-tools { padding-left: var(--ku-s-1); padding-right: var(--ku-s-1); text-align: center; }
  .ku-ledger th.ku-c-act { width: 136px; }
  .ku-sort { display: inline-flex; align-items: flex-end; gap: var(--ku-s-1); padding: 0; background: none; border: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; text-align: inherit; color: inherit; cursor: pointer; }
  .ku-sort:hover { color: var(--ku-ink); }
  .ku-sort svg { flex: none; width: 10px; height: 14px; fill: none; stroke: var(--ku-ink-3); stroke-width: 1.5; }
  .ku-sort:hover svg { stroke: var(--ku-ink); }
  th[aria-sort] .ku-sort { color: var(--ku-ink); }
  th[aria-sort="descending"] .ku-sort .ku-sort__down, th[aria-sort="ascending"] .ku-sort .ku-sort__up { stroke: var(--ku-accent); stroke-width: 2; }
  .ku-ledger tbody { display: table-row-group; }
  .ku-ledger__row { display: table-row; }
  .ku-ledger .ku-ledger__row > td { display: table-cell; height: var(--ku-row-h); padding: var(--ku-cell-py) var(--ku-cell-px); vertical-align: top; background: none; border: 0; border-bottom: var(--ku-border-hair); font-size: var(--ku-fs-table); line-height: var(--ku-lh-table); transition: background-color var(--ku-dur) var(--ku-ease); }
  .ku-ledger .ku-ledger__row > td[data-label]::before, .ku-ledger .ku-ledger__row > .ku-c-rank::before, .ku-ledger .ku-ledger__row > .ku-c-job::after { content: none; }
  .ku-ledger .ku-ledger__row:hover > td, .ku-ledger .ku-ledger__row.is-open > td { background: var(--ku-surface-2); }
  .ku-ledger .ku-ledger__row.is-open > td { border-bottom-color: transparent; }
  .ku-ledger .ku-ledger__row > .ku-c-rank { font: var(--ku-fw-regular) 13px/20px var(--ku-font-mono); color: var(--ku-ink-2); }
  .ku-c-rank__no { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .ku-ledger .ku-ledger__row > .ku-c-price, .ku-ledger .ku-ledger__row > .ku-c-pay, .ku-ledger .ku-ledger__row > .ku-c-term { text-align: right; }
  .ku-ledger .ku-ledger__row > td .ku-num { font-weight: var(--ku-fw-regular); }
  .ku-ledger .ku-ledger__row > .ku-c-job { font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); }
  .ku-ledger .ku-logo { grid-row: 1 / span 3; }
  /* под названием — программа; подпись «Программа-пример» в таблице стоит в шапке графы. Тип школы одной фразой виден
     на телефоне и от 1200px: на планшете графа школы шириной около 110px, и третья строка текста делает запись слишком высокой */
  .ku-ledger .ku-school__kind, .ku-ledger .ku-school__prog b { display: none; }
  .ku-ledger .ku-school__prog { display: -webkit-box; grid-column: 2; margin-top: var(--ku-s-1); overflow: hidden; color: var(--ku-ink); -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
  /* в полном наборе граф (подборка, рейтинг школ) графа школы узкая: программа — до четырёх строк */
  .ku-ledger--full .ku-school__prog { margin-top: 2px; -webkit-line-clamp: 4; }
  .ku-ledger .ku-school .ku-badge { grid-column: 2; margin-top: var(--ku-s-1); }
  .ku-ledger .ku-mark__num { font-size: var(--ku-fs-mark-sm); }
  .ku-ledger .ku-mark__sign { width: 44px; height: 8px; }
  .ku-ledger .ku-mark__word { font-size: 14px; line-height: 16px; }
  .ku-ledger .ku-mark__short { display: inline; }
  .ku-ledger .ku-mark__full, .ku-ledger .ku-mark--na .ku-mark__word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .ku-ledger .ku-ledger__row > .ku-c-tools { display: table-cell; }
  .ku-ledger .ku-c-tools .ku-check { min-height: 24px; justify-content: center; }
  .ku-ledger .ku-c-tools .ku-check span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .ku-ledger .ku-ledger__row > .ku-c-act { display: table-cell; padding: var(--ku-cell-py) var(--ku-cell-px); white-space: nowrap; }
  /* 768–1199: графа действий прилипает к правому краю — «На сайт» видна всегда */
  .ku-ledger th.ku-c-act, .ku-ledger .ku-ledger__row > .ku-c-act { position: sticky; right: 0; z-index: 1; border-left: 1px solid var(--ku-line-2); }
  .ku-ledger .ku-ledger__row > .ku-c-act { background: var(--ku-surface); }
  .ku-ledger .ku-ledger__row:hover > .ku-c-act, .ku-ledger .ku-ledger__row.is-open > .ku-c-act { background: var(--ku-surface-2); }
  .ku-ledger .ku-c-act .ku-btn { min-height: var(--ku-h-sm); padding: 0 var(--ku-s-2); font-size: var(--ku-fs-note); }
  .ku-ledger .ku-c-act .ku-btn--primary { display: flex; margin-bottom: var(--ku-s-1); }
  .ku-ledger .ku-c-act .ku-btn--secondary { min-height: 24px; margin-right: var(--ku-s-2); padding: 0; background: none; border-color: transparent; font-weight: var(--ku-fw-medium); text-decoration: underline; text-decoration-color: var(--ku-ink-3); text-underline-offset: 3px; }
  .ku-ledger .ku-c-act .ku-btn--secondary:hover { color: var(--ku-accent-deep); text-decoration-color: var(--ku-accent); }
  .ku-ledger .ku-c-act__more { min-height: 24px; font-size: var(--ku-fs-note); }
  /* краткий набор граф: формат, документ и «бесплатно» уходят в «Условия»; полный набор — модификатор --full */
  .ku-ledger:not(.ku-ledger--full) .ku-c-doc, .ku-ledger:not(.ku-ledger--full) .ku-c-format, .ku-ledger:not(.ku-ledger--full) .ku-c-free { display: none; }
  .ku-ledger.ku-ledger--full .ku-ledger__row > .ku-c-doc, .ku-ledger.ku-ledger--full .ku-ledger__row > .ku-c-format, .ku-ledger.ku-ledger--full .ku-ledger__row > .ku-c-free { display: table-cell; font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); }
  .ku-ledger--full .ku-c-free__text { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
  .ku-ledger__more { display: table-row; margin: 0; }
  .ku-ledger .ku-ledger__more > td { display: table-cell; padding: var(--ku-s-3) var(--ku-cell-px) var(--ku-s-4) 56px; background: var(--ku-surface-2); border: 0; border-bottom: var(--ku-border); }
  .ku-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* 768–1199: условия раскрытой строки не шире видимой части таблицы и не уезжают при прокрутке вбок */
  .ku-ledger .ku-ledger__more .ku-facts { position: sticky; left: 56px; max-width: calc(100vw - var(--ku-gutter) * 2 - 72px); }
  .ku-ledger__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ku-s-3) var(--ku-s-6); }

  .ku-tickets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ku-tickets > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .ku-ticket__main { padding: var(--ku-s-4) var(--ku-s-4) var(--ku-s-5); }
  .ku-ticket__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .ku-rows__i { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: baseline; }
  .ku-rows__sub, .ku-rows__text { grid-column: 2; }
  .ku-rows__sub a { padding: 0; }
  .ku-rows__i--school { grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) auto; align-items: center; }
  .ku-rows__i--school .ku-rows__head { flex-wrap: nowrap; }
  .ku-rows__i--school .ku-mark { width: 128px; }
  .ku-rows__actions { grid-template-columns: repeat(2, auto); margin-top: 0; }
  .ku-rows__actions .ku-btn { min-height: var(--ku-h-sm); }
  /* плотный список для узкой колонки: название и отметка строкой, под ними факты и кнопки */
  .ku-rows--compact .ku-rows__i--school { grid-template-columns: minmax(0, 1fr) auto; }
  .ku-rows--compact .ku-rows__i--school .ku-rows__head { grid-column: 1 / -1; }

  /* от 768px фильтры — панель над таблицей */
  .ku-filters { position: static; z-index: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; overflow: visible; margin-bottom: var(--ku-s-3); background: var(--ku-surface); border: var(--ku-border); }
  .ku-filters__head { display: none; }
  .ku-filters__grid { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--ku-s-4); }
  .ku-filters__group--wide { grid-column: span 2; }
  .ku-filters__flags { display: flex; flex-wrap: wrap; gap: 0 var(--ku-s-5); padding: var(--ku-s-1) var(--ku-s-4); border-top: var(--ku-border-hair); }
  .ku-filters__foot { position: static; display: flex; margin: 0; padding: var(--ku-s-1) var(--ku-s-4); background: none; border-top: var(--ku-border-hair); }
  .ku-filters__apply--sheet { display: none; }
  .ku-filters__apply--panel { display: inline-flex; }
  .ku-check, .ku-radio { font-size: var(--ku-fs-note); }

  .ku-bar__label { display: block; }
  .ku-bar__items { display: flex; gap: var(--ku-s-2); min-width: 0; overflow: hidden; }
  .ku-bar__go { flex: none; margin-left: auto; }

  /* от 768px сравнение — обычная таблица, подписи строк — прилипающая левая графа */
  .ku-cmp-wrap, .ku-cmp-wrap--many { overflow-x: auto; }
  .ku-cmp { display: table; min-width: 520px; border-collapse: separate; border-spacing: 0; }
  .ku-cmp thead, .ku-cmp-wrap--many .ku-cmp thead { position: static; display: table-header-group; }
  .ku-cmp tbody { display: table-row-group; }
  .ku-cmp tr, .ku-cmp-wrap--many .ku-cmp tr { display: table-row; }
  .ku-cmp th, .ku-cmp td { display: table-cell; padding: var(--ku-s-3); vertical-align: top; border-left: var(--ku-border-hair); }
  .ku-cmp tr > :first-child { position: sticky; left: 0; z-index: 1; width: 200px; padding: var(--ku-s-3); background: var(--ku-surface-2); border-left: 0; border-bottom: var(--ku-border-hair); }
  .ku-cmp thead tr > :first-child { display: table-cell; border-bottom: var(--ku-rule-double); }
  .ku-cmp thead .ku-school__name { font-size: 18px; line-height: 22px; }
  .ku-cmp tbody tr:last-child > * { border-bottom: 0; }

  .ku-zachet { grid-template-columns: 240px minmax(0, 1fr); }
  .ku-zachet__cover { padding: var(--ku-s-5); border-right: var(--ku-rule-double); border-bottom: 0; }
  .ku-zachet__hide { display: table-cell; }

  .ku-cover { grid-template-columns: minmax(0, 1fr) 240px; }
  .ku-cover__main { padding: var(--ku-s-5); }
  .ku-cover__actions { grid-auto-flow: column; justify-content: start; }
  .ku-cover__mark { padding: var(--ku-s-5); border-top: 0; border-left: var(--ku-rule-double); }
  .ku-cover__facts { grid-column: 1 / -1; }

  .ku-sign { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .ku-sign__col { padding: var(--ku-s-5); }
  .ku-sign__col + .ku-sign__col { border-top: 0; border-left: var(--ku-border-hair); }

  .ku-table--stack { display: table; min-width: 480px; }
  .ku-table--stack thead { position: static; display: table-header-group; width: auto; height: auto; overflow: visible; clip-path: none; }
  .ku-table--stack tbody { display: table-row-group; }
  .ku-table--stack tr { display: table-row; padding: 0; border: 0; }
  .ku-table--stack td { display: table-cell; padding: var(--ku-s-2) var(--ku-s-3); border-bottom: var(--ku-border-hair); }
  .ku-table--stack tr:last-child td { border-bottom: 0; }
  .ku-table--stack td[data-label]::before { content: none; }
  .ku-table--stack td.ku-is-num { text-align: right; }
  .ku-table--stack.ku-table--wide { min-width: 720px; }

  .ku-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ku-post { padding: var(--ku-s-4) var(--ku-s-4) var(--ku-s-5); border-right: var(--ku-border-hair); }
  .ku-post:nth-child(2n+1) { padding-left: 0; }
  .ku-post:nth-child(2n) { border-right: 0; }
  .ku-post--lead { grid-column: span 2; padding-left: 0; border-right: 0; }

  .ku-review { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "head list" "meta list" "body list" "act list"; grid-template-rows: auto auto auto 1fr; align-items: start; }
  /* отметка — под названием, как на телефоне и от 1200px: справа от названия длинное слово отметки («удовлетворительно»)
     сжимало графу названия до буквы в строку (ProductStar 14px шириной на 768, 14.10) */
  .ku-review__actions { grid-template-columns: repeat(2, auto); justify-content: start; }

  .ku-proscons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ku-proscons__col + .ku-proscons__col { border-top: 0; border-left: var(--ku-border-hair); }
}

/* ====================== от 1200px ====================== */
@media (min-width: 1200px) {
  /* H1 и лид слева, шапка бланка справа от лида */
  .ku-hero { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--ku-grid-gap); }
  .ku-hero > * { grid-column: 1; }
  .ku-hero > .ku-kicker, .ku-hero > .ku-h1 { grid-column: 1 / -1; }
  .ku-hero > .ku-formhead { grid-column: 2; grid-row: 3 / span 3; align-self: start; grid-template-columns: repeat(4, auto); margin-top: var(--ku-s-3); }
  .ku-hero > .ku-formhead .ku-formhead__cell { min-width: 112px; }
  .ku-hero > .ku-formhead--3 { grid-template-columns: repeat(3, 216px); }

  .ku-secstrip, .ku-dirs__toggle { display: none; }
  .ku-dirs { position: sticky; top: var(--ku-s-4); max-height: calc(100vh - var(--ku-s-8)); overflow-y: auto; }
  .ku-has-bar .ku-dirs { max-height: calc(100vh - var(--ku-s-8) - var(--ku-bar-h)); }
  .ku-dirs__title { display: flex; }
  .ku-dirs[data-open] .ku-dirs__groups { display: block; columns: auto; }
  .ku-dirs__group { border-right: 0; }
  .ku-toc { min-height: 32px; padding: 6px 0; }

  .ku-board { padding: var(--ku-s-5) var(--ku-s-6); }
  .ku-podbor__i { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
  .ku-podbor__i > .ku-ticket { max-width: none; }

  /* таблица целиком: шапка прилипает к верху окна, графа действий — нет */
  .ku-table-wrap { overflow: visible; }
  .ku-table-hint { display: none; }
  .ku-ledger, .ku-ledger--full { min-width: 0; }
  /* краткий набор граф (главная, статья): под названием школы — её тип одной фразой; в полном наборе он остаётся в «Условиях» */
  .ku-ledger .ku-school__kind { display: block; }
  .ku-ledger--full .ku-school__kind { display: none; }
  .ku-ledger th { position: sticky; top: 0; z-index: var(--ku-z-sticky); }
  .ku-ledger th.ku-c-act { right: auto; border-left: 0; }
  .ku-ledger .ku-ledger__row > .ku-c-act { position: static; background: none; border-left: 0; }
  .ku-ledger .ku-ledger__row:hover > .ku-c-act, .ku-ledger .ku-ledger__row.is-open > .ku-c-act { background: var(--ku-surface-2); }
  .ku-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ku-ledger .ku-ledger__more .ku-facts { position: static; max-width: none; }

  .ku-filters__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ku-tickets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ku-tickets > :last-child:nth-child(odd) { grid-column: auto; }

  .ku-posts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ku-post:nth-child(2n+1) { padding-left: var(--ku-s-4); }
  .ku-post:nth-child(2n) { border-right: var(--ku-border-hair); }
  .ku-post:nth-child(4n+1) { padding-left: 0; }
  .ku-post:nth-child(4n) { border-right: 0; }
  .ku-post--lead { border-right: var(--ku-border-hair); }

  .ku-review { grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 6fr); grid-template-areas: "head body list" "meta body list" "act body list"; grid-template-rows: auto auto 1fr; }
  .ku-review__head { grid-template-columns: auto minmax(0, 1fr); }
  .ku-review__head .ku-mark { grid-column: 1 / -1; }
}

/* 1200–1365: таблица без прокрутки, а одиннадцать граф полного набора не помещаются — «Формат» уходит в «Условия»
   раскрытой строки (там он есть), остальные графы получают свои ширины, а не слово в строке (14.10) */
@media (min-width: 1200px) and (max-width: 1365px) {
  .ku-ledger.ku-ledger--full .ku-c-format, .ku-ledger.ku-ledger--full .ku-ledger__row > .ku-c-format { display: none; }
}

/* планшет с касанием (ведомость — таблица от 768px): зоны нажатия не меньше 32px, высота шапки и строк не меняется (14.10) */
@media (min-width: 768px) and (pointer: coarse) {
  .ku-sort { padding: 9px 0; margin: -9px 0; }
  .ku-ledger .ku-c-act .ku-btn--secondary, .ku-ledger .ku-c-act__more { min-height: 32px; margin-top: -4px; margin-bottom: -4px; }
}

/* телефон: бейдж-штамп не мельче 12px (14.10) */
@media (max-width: 767px) { .ku-badge { font-size: 12px; } }
/* 768–1199: подписи-капсы вне таблиц — 12px, как на телефоне; шапка ведомости остаётся 11px, чтобы не раздвигать графы (14.10) */
@media (min-width: 768px) and (max-width: 1199px) { .ku-caps, .ku-filters__label { font-size: 12px; line-height: 16px; } }

/* --- Обложка-картинка статьи журнала (картинка записи): превью в ленте и карточках, вверху статьи; картинки в тексте статьи --- */
.ku-pcover.ku-pcover--photo { display: block; padding: 0; overflow: hidden; aspect-ratio: 16 / 9; background: var(--ku-surface-2); border: 1px solid var(--ku-line-2); }
.ku-pcover--photo.ku-pcover--lg { max-width: none; }
.ku-pcover__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ku-post > .ku-pcover--photo { margin-bottom: var(--ku-s-1); }
.ku-figure.ku-figure--img { padding: 0; overflow: hidden; }
.ku-figure__img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: var(--ku-surface-2); }
.ku-figure__cap { padding: var(--ku-s-3) var(--ku-s-4); border-top: var(--ku-border-hair); font-size: var(--ku-fs-note); line-height: var(--ku-lh-note); color: var(--ku-ink-2); }
