/* G&P — кабинет, экран «Разговор с делом». Облик — прототип Дизайн/прототип/стиль.css (DESIGN.md), перенесён целиком
   (версия 03.10 ~05:30: группы и папки, документы «как выглядят», таблицы Excel); своё для кабинета (загрузка, перенос,
   подсказка, разбор с файлами, съёмка, режим выбора, маркер на настоящем скане, страницы подряд) — в конце файла. */

@font-face { font-family: "Inter"; src: url("шрифты/inter-cyrillic.woff2") format("woff2"); font-weight: 100 900; font-display: swap;
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Inter"; src: url("шрифты/inter-latin.woff2") format("woff2"); font-weight: 100 900; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; src: url("шрифты/cormorant-cyrillic-600.woff2") format("woff2"); font-weight: 600; font-display: swap; unicode-range: U+0400-045F, U+2116; }
@font-face { font-family: "Cormorant Garamond"; src: url("шрифты/cormorant-latin-600.woff2") format("woff2"); font-weight: 600; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: "Cormorant Garamond"; src: url("шрифты/cormorant-cyrillic-500.woff2") format("woff2"); font-weight: 500; font-display: swap; unicode-range: U+0400-045F, U+2116; }
@font-face { font-family: "Cormorant Garamond"; src: url("шрифты/cormorant-latin-500.woff2") format("woff2"); font-weight: 500; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: "EB Garamond"; src: url("шрифты/ebg-cyrillic-400.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0400-045F, U+2116; }
@font-face { font-family: "EB Garamond"; src: url("шрифты/ebg-latin-400.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: "EB Garamond"; src: url("шрифты/ebg-cyrillic-400i.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; unicode-range: U+0400-045F; }
@font-face { font-family: "EB Garamond"; src: url("шрифты/ebg-latin-400i.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: "Cinzel"; src: url("шрифты/cinzel-latin-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }

:root {
  /* брендбук */
  --onyx: #0E1014; --slate: #2A2E35; --platinum: #C0C2C4; --ivory: #F3F0E9; --bordeaux: #5B1A2B;
  --bordeaux-тм: #8E3A50;          /* Bordeaux на тёмном — так в фирменном стиле Proof (ПРАВКИ_50) */
  /* производные — только смеси палитры. Светлая тема — по умолчанию; тёмная — html[data-тема="тёмная"] */
  --рейка: color-mix(in oklab, var(--ivory) 84%, var(--platinum));
  --рейка-2: var(--ivory);
  --рейка-линия: color-mix(in oklab, var(--platinum) 70%, var(--ivory));
  --рейка-текст: color-mix(in oklab, var(--slate) 88%, var(--ivory));
  --рейка-ярко: var(--onyx);
  --рейка-тихо: color-mix(in oklab, var(--slate) 74%, var(--ivory));
  --рейка-выбор: color-mix(in oklab, var(--platinum) 55%, var(--ivory));
  --рейка-выбор-тихо: color-mix(in oklab, var(--slate) 80%, var(--ivory));
  --поле: var(--ivory);
  --панель: color-mix(in oklab, var(--ivory) 93%, var(--platinum));
  --линия: color-mix(in oklab, var(--platinum) 62%, var(--ivory));
  --линия-сильная: color-mix(in oklab, var(--platinum) 92%, var(--slate));
  --чернила: var(--onyx);
  --чернила-2: color-mix(in oklab, var(--slate) 84%, var(--ivory));
  --чернила-3: color-mix(in oklab, var(--slate) 72%, var(--ivory));
  --рамка-поля: color-mix(in oklab, var(--slate) 60%, var(--ivory));   /* край полей и кнопок — ≥3:1 */
  --акцент: var(--bordeaux);
  --акцент-фон: color-mix(in oklab, var(--bordeaux) 9%, var(--ivory));
  /* ПРАВКИ_50: бордо — точка, линия, слово, не плоскость. Три роли: --акцент — слово (текст ≥ 4,5 : 1), --акцент-линия —
     точка, черта, кольцо, рамка, тумблер (≥ 3 : 1), --акцент-заливка — маленькая плашка под светлыми цифрами (счётчик) */
  --акцент-линия: var(--bordeaux);
  --акцент-заливка: var(--bordeaux); --акцент-на-заливке: var(--ivory);
  --наведение: color-mix(in oklab, var(--platinum) 22%, var(--ivory));
  --ввод: var(--ivory);
  --кнопка: var(--slate); --кнопка-текст: var(--ivory); --кнопка-наведение: var(--bordeaux);   /* Onyx на Ivory — слишком тяжело для светлой темы */
  --кнопка-текст-наведение: var(--ivory);
  --бумага: var(--ivory); --бумага-чернила: var(--onyx);
  --выделение: color-mix(in oklab, var(--bordeaux) 22%, var(--ivory));
  color-scheme: light;

  --ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --заголовок: "Cormorant Garamond", "EB Garamond", Georgia, serif;
  --текст: "EB Garamond", Georgia, serif;
  --знак: "Cinzel", "Cormorant Garamond", serif;

  --ширина-рейки: 264px; --ширина-панели: 440px; --разговор: 720px;
  --над-краем: 40px;               /* кнопки на телефоне — не у самого края (просьба Петра) */
  --быстро: 160ms; --плавно: 220ms; --кривая: cubic-bezier(.16, 1, .3, 1);
}
html[data-тема="тёмная"] {
  --рейка: var(--onyx);
  --рейка-2: color-mix(in oklab, var(--onyx) 72%, var(--slate));
  --рейка-линия: color-mix(in oklab, var(--slate) 85%, var(--onyx));
  --рейка-текст: var(--platinum);
  --рейка-ярко: var(--ivory);
  --рейка-тихо: color-mix(in oklab, var(--platinum) 78%, var(--onyx));
  --рейка-выбор: var(--slate);
  --рейка-выбор-тихо: color-mix(in oklab, var(--platinum) 82%, var(--slate));
  --поле: color-mix(in oklab, var(--onyx) 78%, var(--slate));
  --панель: color-mix(in oklab, var(--onyx) 62%, var(--slate));
  --линия: color-mix(in oklab, var(--slate) 90%, var(--onyx));
  --линия-сильная: color-mix(in oklab, var(--slate) 70%, var(--platinum));
  --чернила: var(--ivory);
  --чернила-2: var(--platinum);
  --чернила-3: color-mix(in oklab, var(--platinum) 74%, var(--onyx));
  --рамка-поля: color-mix(in oklab, var(--platinum) 52%, var(--onyx));
  /* ПРАВКИ_50: от #8E3A50 фирменного стиля (было — смесь #5B1A2B с Ivory 48 %, серо-розовая). Чистый #8E3A50 на Onyx —
     2,6 : 1, линией и точкой не проходит (нужно 3 : 1), поэтому: слово — #8E3A50 62 % с Ivory (5,2–5,7 : 1 на поле и
     панели, 4,7 : 1 на подсветке); линия и плашка — 86 % (3,3–3,5 : 1 к фону, Ivory-цифры на ней 4,75 : 1); подсветка —
     #8E3A50 18 % поверх фона; сам #8E3A50 — в знаке (точка, иконка Б) */
  /* ПРАВКИ_53 (Пётр: после П-50 бордо «как будто выцветший»): смесь с Ivory и прозрачность бледнили тон — теперь без них.
     Подсветка — прежняя плотная, как до П-50 (#5B1A2B 34 % с Onyx, ≈ #28151C); линия — тот же тон, что #8E3A50, светлее
     только по яркости, с полной насыщенностью: oklch(.53 .14 6.4) ≈ #AB425F, 3,0–3,3 : 1 к полю, панели и рейке; плашка
     со светлыми цифрами — тот же тон (Ivory на нём 5,0 : 1, сама плашка к полю 3,2 : 1; чистый #8E3A50 к полю — 2,47, форма
     счётчика не читается — он остаётся в знаке); слово — oklch(.66 .10 6.4) ≈ #C67888,
     5,2–5,5 : 1 (на подсветке 5,3). Текст бордо только словом ≥ 4,5 : 1, иначе — бордо фоном или линией, текст светлый */
  --акцент: #C67888;                 /* oklch(.66 .10 6.4) */
  --акцент-линия: #AB425F;           /* oklch(.53 .14 6.4) */
  --акцент-заливка: var(--акцент-линия);
  --акцент-фон: color-mix(in oklab, var(--bordeaux) 34%, var(--onyx));
  --наведение: color-mix(in oklab, var(--slate) 70%, var(--onyx));
  --ввод: color-mix(in oklab, var(--onyx) 55%, var(--slate));
  --кнопка: var(--ivory); --кнопка-текст: var(--onyx); --кнопка-наведение: var(--акцент-заливка); --кнопка-текст-наведение: var(--ivory);
  --выделение: color-mix(in oklab, var(--bordeaux) 55%, var(--onyx));
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }
/* приложение — окно, а не страница: страница целиком не прокручивается, прокручиваются только области внутри */
html, body { overflow: hidden; overscroll-behavior: none; }
body { margin: 0; background: var(--поле); color: var(--чернила); font: 400 14px/1.5 var(--ui);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv11", "ss01"; }
::selection { background: var(--выделение); color: var(--чернила); }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
:focus-visible { outline: 2px solid var(--акцент); outline-offset: 2px; border-radius: 2px; }
.рейка :focus-visible { outline-color: var(--рейка-ярко); }
.спрайт { display: none; }
.и { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.и-м { width: 16px; height: 16px; }
.скрыто { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
* { scrollbar-width: thin; scrollbar-color: var(--линия-сильная) transparent; }
.рейка * { scrollbar-color: var(--рейка-линия) transparent; }
.цифры { font-variant-numeric: tabular-nums; }

/* ── Каркас ─────────────────────────────────────────────────────────── */
/* Высота экрана внутри .корень. «Крупный текст» масштабирует корень (zoom 1.12), и 100dvh у потомков становится 945 px
   вместо 844 — поле вопроса и нижняя панель уходили за край (Fable T-411 № 1). Поэтому внутри корня — только --экран. */
:root { --экран: 100dvh; }
html[data-крупно] { --экран: calc(100dvh / 1.12); }
.корень { display: grid; grid-template-columns: var(--ширина-рейки) minmax(0, 1fr) var(--ширина-панели-своя, var(--ширина-панели)); height: var(--экран); }
.корень.без-рейки { grid-template-columns: 0 minmax(0, 1fr) var(--ширина-панели-своя, var(--ширина-панели)); }
.корень.без-рейки.без-панели { grid-template-columns: 0 minmax(0, 1fr) 0; }
.корень.без-рейки > .рейка { visibility: hidden; overflow: hidden; border: 0; }
.свернуть-рейку { margin-left: auto; margin-right: -10px; color: var(--рейка-тихо); }
.свернуть-рейку:hover { color: var(--рейка-ярко); background: var(--рейка-2); }
.показать-рейку { grid-row: 1; margin: -4px 0 0 -10px; }
.корень.без-рейки .шапка-дела { grid-template-columns: auto minmax(0, 1fr) auto; }
.корень.без-рейки .шапка-дела h1 { grid-column: 2 / -1; } .корень.без-рейки .реквизиты { grid-column: 2 / -1; }
.корень.без-рейки .статус-строка { grid-column: 2; } .корень.без-рейки .действия { grid-column: 3; }
.панель { position: relative; container: панель / inline-size; }
.лист:not(.скан) { max-width: 760px; margin-inline: auto; }
@container панель (min-width: 640px) { .лист:not(.скан) { font-size: 16px; padding: 48px 56px 56px; } }
@container панель (min-width: 900px) { .лист:not(.скан) { font-size: 17px; max-width: 820px; } }
.разделитель { position: absolute; left: -4px; top: 0; bottom: 0; width: 8px; z-index: 8; cursor: col-resize; touch-action: none; }
.разделитель::after { content: ""; position: absolute; left: 3px; top: 0; bottom: 0; width: 2px; background: transparent; transition: background var(--быстро); }
.разделитель:hover::after, .разделитель:focus-visible::after, .корень.тянем .разделитель::after { background: var(--акцент); }
.разделитель:focus-visible { outline: none; }
.корень.тянем { cursor: col-resize; user-select: none; }
.корень.тянем iframe, .корень.тянем img { pointer-events: none; }
.корень.без-панели { grid-template-columns: var(--ширина-рейки) minmax(0, 1fr) 0; }
@media (min-width: 1024px) { .корень:not(.тянем) { transition: grid-template-columns var(--плавно) var(--кривая); } }

/* ── Рейка ──────────────────────────────────────────────────────────── */
.рейка { background: var(--рейка); color: var(--рейка-текст); display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--рейка-линия); }
.знак { display: flex; align-items: center; gap: 12px; height: 64px; padding: 0 20px; flex: none; }
.знак-место { display: grid; place-items: center; height: 36px; min-width: 64px; padding: 0 10px; border: 1px solid var(--рейка-линия);
  font: 500 17px/1 var(--знак); letter-spacing: .1em; color: var(--рейка-ярко); }
.знак-подпись { font-size: 11.5px; line-height: 1.3; color: var(--рейка-тихо); letter-spacing: .01em; }
.рейка-поиск { margin: 4px 16px 12px; position: relative; flex: none; }
.рейка-поиск .и { position: absolute; left: 10px; top: 50%; translate: 0 -50%; color: var(--рейка-тихо); width: 16px; height: 16px; }
.рейка-поиск input { width: 100%; height: 36px; padding: 0 10px 0 34px; background: var(--рейка-2); border: 1px solid var(--рейка-линия);
  border-radius: 4px; color: var(--рейка-ярко); font-size: 13px; }
.рейка-поиск input::placeholder { color: var(--рейка-тихо); }
.рейка-поиск input:focus { outline: none; border-color: var(--рейка-тихо); }
.новое-дело { display: flex; align-items: center; gap: 8px; margin: 0 16px 8px; height: 36px; padding: 0 12px; border: 1px solid var(--рейка-линия);
  border-radius: 4px; color: var(--рейка-ярко); font-size: 13px; font-weight: 500; flex: none; transition: border-color var(--быстро), background var(--быстро); }
.новое-дело:hover { border-color: var(--рейка-тихо); background: var(--рейка-2); }
.новое-дело .и { width: 16px; height: 16px; }
.дела-список { flex: 1; overflow-y: auto; padding: 4px 8px 16px; min-height: 0; position: relative; overscroll-behavior: none; }
.раздел-рейки { margin-top: 14px; }
.раздел-рейки > h2, .раздел-рейки > button.заг-раздела { display: flex; align-items: center; justify-content: space-between; width: 100%;
  margin: 0; padding: 0 12px 6px; font: 500 11.5px/1.4 var(--ui); color: var(--рейка-тихо); letter-spacing: .02em; }
.заг-раздела .и { width: 14px; height: 14px; transition: rotate var(--быстро) var(--кривая); }
.заг-раздела[aria-expanded="false"] .и { rotate: -90deg; }
.дело-строка { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; width: 100%; text-align: left; padding: 9px 12px; border-radius: 4px;
  color: var(--рейка-текст); transition: background var(--быстро); }
.дело-строка:hover { background: var(--рейка-2); }
.дело-строка[aria-current="true"] { background: var(--рейка-выбор); color: var(--рейка-ярко); }
.дело-строка .кто { font-size: 13.5px; line-height: 1.35; font-weight: 500; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.дело-строка .мета { grid-column: 1; font-size: 12px; color: var(--рейка-тихо); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.дело-строка[aria-current="true"] .мета { color: var(--рейка-выбор-тихо); }
.дело-строка .значки { grid-row: 1 / span 2; grid-column: 2; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; padding-top: 2px; }
.дело-строка .звёздочка { width: 14px; height: 14px; color: var(--platinum); fill: var(--platinum); }
.новых { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--bordeaux); color: var(--ivory); font-size: 11px; font-weight: 600;
  display: grid; place-items: center; font-variant-numeric: tabular-nums; }
.идёт-разбор { width: 6px; height: 6px; border-radius: 50%; border: 1px solid var(--рейка-текст); margin-top: 6px; }
.рейка-низ { flex: none; border-top: 1px solid var(--рейка-линия); padding: 12px 20px 14px; display: grid; gap: 8px; font-size: 12.5px; }
.рейка-низ .кто-я { color: var(--рейка-ярко); font-weight: 500; }
.рейка-низ .тихо { color: var(--рейка-тихо); }
.рейка-низ .ряд { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.рейка-низ button { color: var(--рейка-тихо); font-size: 12.5px; text-decoration: underline; text-decoration-color: var(--рейка-линия); text-underline-offset: .25em; }
.рейка-низ button:hover { color: var(--рейка-ярко); }
.метка-демо { font-size: 11.5px; color: var(--рейка-тихо); line-height: 1.4; }
.метка-демо b { color: var(--рейка-текст); font-weight: 500; }
.ничего { padding: 12px; }

/* ── Центр: дело и разговор ─────────────────────────────────────────── */
.центр { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--поле); container: центр / inline-size; }
.шапка-дела { flex: none; padding: 22px 32px 14px; border-bottom: 1px solid var(--линия); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; align-items: center; }
.шапка-дела .назад, .шапка-дела .меню-кнопка { display: none; }
.шапка-дела h1 { grid-column: 1 / -1; margin: 0; font: 600 30px/1.12 var(--заголовок); letter-spacing: -.005em; text-wrap: balance; hyphens: manual; }
.шапка-дела h1 .стрелка { color: var(--чернила-3); font-weight: 500; padding: 0 .12em; }
.реквизиты { grid-column: 1 / -1; margin: 2px 0 0; color: var(--чернила-2); font-size: 13.5px; }
.реквизиты .точка { color: var(--чернила-3); }
.реквизиты .нет { color: var(--чернила-3); font-style: italic; }
.действия { grid-column: 2; grid-row: 3; display: flex; align-items: center; gap: 2px; margin-right: -8px; }
.кнопка-тихая { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 12px; border-radius: 4px; color: var(--чернила-2);
  font-size: 13px; font-weight: 500; transition: background var(--быстро), color var(--быстро); white-space: nowrap; }
.кнопка-тихая:hover { background: var(--наведение); color: var(--чернила); }
.кнопка-тихая.иконка { width: 36px; padding: 0; justify-content: center; }
.кнопка-тихая[aria-pressed="true"] { color: var(--акцент); }
.кнопка-тихая[aria-pressed="true"] .и-звезда { fill: var(--акцент); }
.кнопка-рамка { display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 36px; padding: 0 14px; border-radius: 4px; border: 1px solid var(--рамка-поля);
  font-size: 13px; font-weight: 500; color: var(--чернила); transition: border-color var(--быстро), background var(--быстро); white-space: nowrap; }
.кнопка-рамка:hover { border-color: var(--чернила-2); background: var(--наведение); }
.кнопка-главная { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 18px; border-radius: 4px; background: var(--кнопка);
  color: var(--кнопка-текст); font-size: 13.5px; font-weight: 500; transition: background var(--быстро); white-space: nowrap; }
.кнопка-главная:hover { background: var(--кнопка-наведение); }
.кнопка-главная:disabled { background: color-mix(in oklab, var(--slate) 45%, var(--ivory)); cursor: not-allowed; }
.статус-строка { grid-column: 1; grid-row: 3; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 4px; font-size: 12.5px; color: var(--чернила-2); }
.статус-строка .слово { color: var(--чернила); font-weight: 500; }
.статус-строка > span { white-space: nowrap; }
/* узкий центр: у «Снять страницы» и «Загрузить» остаются значки с подсказками (подписи — в меню «⋯») */
@container центр (max-width: 720px) {
  .с-подписью { width: 36px; padding: 0; justify-content: center; }
  .с-подписью .подпись { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}
.ход { position: relative; flex: 0 0 160px; height: 2px; background: var(--линия); overflow: hidden; }
.ход i { position: absolute; inset: 0 auto 0 0; background: var(--чернила); }
.меню { position: relative; }
.меню-список { position: absolute; right: 0; top: calc(100% + 4px); z-index: 20; min-width: 236px; padding: 6px; background: var(--поле); border: 1px solid var(--линия-сильная);
  border-radius: 6px; box-shadow: 0 12px 32px -12px color-mix(in oklab, var(--onyx) 35%, transparent); display: grid; }
.меню-список[hidden] { display: none; }
.меню-список button { text-align: left; padding: 8px 10px; border-radius: 4px; font-size: 13px; display: flex; gap: 10px; align-items: center; color: var(--чернила); }
.меню-список button:hover { background: var(--наведение); }
.меню-список .и { width: 16px; height: 16px; color: var(--чернила-2); }

.лента { flex: 1; overflow-y: auto; min-height: 0; position: relative; overscroll-behavior: none; }
.лента-внутри { max-width: var(--разговор); margin: 0 auto; padding: 28px 32px 24px; }
.о-деле { padding-bottom: 22px; border-bottom: 1px solid var(--линия); }
.о-деле h2, .частые h2 { margin: 0 0 8px; font: 500 12px/1.4 var(--ui); color: var(--чернила-3); letter-spacing: .02em; }
.о-деле p { margin: 0; font: 400 17px/1.55 var(--текст); color: var(--чернила); max-width: 64ch; }
.о-деле .готовится { font: italic 400 16px/1.5 var(--текст); color: var(--чернила-3); }
.частые { padding: 20px 0 8px; }
.частые ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
.частые li button { width: 100%; text-align: left; display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--линия);
  font-size: 13.5px; color: var(--чернила); transition: color var(--быстро); }
.частые li button:hover { color: var(--акцент); }
.частые li button .и { width: 16px; height: 16px; color: var(--чернила-3); transition: translate var(--быстро) var(--кривая), color var(--быстро); }
.частые li button:hover .и { translate: 3px 0; color: var(--акцент); }
.частые li button:disabled { color: var(--чернила-3); cursor: default; }
.частые li button:disabled .и { display: none; }
.частые li button .ждёт { font-size: 12px; color: var(--чернила-3); }

.обмен { padding: 22px 0 20px; border-top: 1px solid var(--линия); animation: появление var(--плавно) var(--кривая) both; }
.о-деле + .частые + .обмен, .лента-внутри > .обмен:first-child { border-top: 0; }
@keyframes появление { from { opacity: 0; translate: 0 6px; } }
.вопрос { margin: 0 0 10px; font: 500 15.5px/1.45 var(--ui); color: var(--чернила); }
.ответ { font-size: 15px; line-height: 1.62; color: var(--чернила); max-width: 66ch; }
.ответ p { margin: 0 0 .6em; }
.ответ p:last-child { margin-bottom: 0; }
.ответ .нет-в-деле { color: var(--чернила-2); }
.ответ .подсказка-ответа { margin-top: .5em; font-size: 13.5px; line-height: 1.5; color: var(--чернила-3); }   /* ПРАВКИ_45: «мало опоры» — что сделать */
.пометка { margin-top: 8px; font-size: 12px; color: var(--чернила-3); }
.источники { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.источник { display: inline-flex; align-items: baseline; gap: 7px; text-align: left; font-size: 13px; color: var(--чернила-2); text-decoration: underline;
  text-decoration-color: var(--линия-сильная); text-underline-offset: .3em; transition: color var(--быстро), text-decoration-color var(--быстро); }
.источник .и { width: 14px; height: 14px; align-self: flex-start; margin-top: .2em; color: var(--чернила-3); }
.источник > span { flex: 1 1 auto; min-width: 0; text-align: left; }
.источник b { font-weight: 500; color: var(--чернила); }
.источник:hover, .источник[aria-current="true"] { color: var(--акцент); text-decoration-color: var(--акцент); }
.источник:hover b, .источник[aria-current="true"] b { color: var(--акцент); }
.готовлю { display: flex; align-items: center; gap: 12px; color: var(--чернила-2); font-size: 14px; }
.готовлю .полоса { flex: none; width: 2px; align-self: stretch; background: var(--чернила); }
.ошибка { color: var(--акцент); font-size: 14px; }

/* разбор позиции — внутреннее */
.разбор { margin-top: 4px; border: 1px solid var(--линия-сильная); border-radius: 6px; background: color-mix(in oklab, var(--поле) 70%, var(--панель)); }
.разбор-шапка { display: flex; align-items: center; gap: 10px; padding: 12px 18px; border-bottom: 1px solid var(--линия); font-size: 12.5px; color: var(--чернила-2); }
.разбор-шапка .и { width: 16px; height: 16px; color: var(--акцент); }
.разбор-шапка b { color: var(--чернила); font-weight: 600; }
.разбор-тело { padding: 6px 18px 4px; }
.разбор details { border-bottom: 1px solid var(--линия); }
.разбор details:last-child { border-bottom: 0; }
.разбор summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 12px 0; cursor: pointer; font: 600 19px/1.25 var(--заголовок); }
.разбор summary::-webkit-details-marker { display: none; }
.разбор summary .и { width: 16px; height: 16px; color: var(--чернила-3); transition: rotate var(--быстро) var(--кривая); }
.разбор details:not([open]) summary .и { rotate: -90deg; }
.разбор .текст-разбора { font: 400 16.5px/1.55 var(--текст); padding-bottom: 14px; }
.разбор .текст-разбора p { margin: 0 0 .5em; }
.разбор .текст-разбора ul { margin: 0; padding-left: 1.1em; }
.разбор .текст-разбора li { margin-bottom: .35em; }
.разбор .текст-разбора .оценка { font: italic 400 15px/1.5 var(--текст); color: var(--чернила-2); }
.разбор-низ { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 12px 18px 14px; border-top: 1px solid var(--линия); }
.разбор-низ .тихо { font-size: 12.5px; color: var(--чернила-3); }

/* поле вопроса */
.вопросник { flex: none; padding: 12px 32px 20px; background: linear-gradient(to bottom, transparent, var(--поле) 14px); }
.вопросник-внутри { max-width: var(--разговор); margin: 0 auto; }
.поле-вопроса { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: end; gap: 4px; padding: 6px; background: var(--ввод);
  border: 1px solid var(--рамка-поля); border-radius: 8px; transition: border-color var(--быстро), box-shadow var(--быстро); }
.поле-вопроса:focus-within { border-color: var(--чернила-2); box-shadow: 0 0 0 3px color-mix(in oklab, var(--platinum) 40%, transparent); }
.поле-вопроса textarea { border: 0; background: none; resize: none; padding: 9px 6px; min-height: 40px; max-height: 160px; font-size: 15px; line-height: 1.45; color: var(--чернила); }
.поле-вопроса textarea:focus { outline: none; }
.поле-вопроса textarea::placeholder { color: var(--чернила-3); }
.поле-вопроса .слева { display: flex; }
.поле-вопроса .кнопка-тихая.иконка { width: 40px; height: 40px; }
.спросить { width: 40px; height: 40px; border-radius: 6px; background: var(--кнопка); color: var(--кнопка-текст); display: grid; place-items: center; transition: background var(--быстро); }
.спросить:hover { background: var(--кнопка-наведение); }
.спросить:disabled { background: color-mix(in oklab, var(--slate) 35%, var(--ivory)); cursor: not-allowed; }
/* строка под полем (ПРАВКИ_42): дисклеймер слева — тихим текстом, как у Claude; справа на компьютере — плашка тарифа */
/* Текст — шрифтом ответов (EB Garamond, 12,5 px): Inter 12 px — 592 px, с плашкой (114) в колонку разговора 1440 с панелью
   (672) в одну строку не встаёт; Garamond — 485 px, встаёт. Уже колонки — переносится, плашка остаётся справа. */
.под-полем { display: flex; align-items: center; justify-content: space-between; gap: 6px 12px; margin: 8px 2px 0; min-height: 28px; }
.дисклеймер { flex: 1 1 auto; min-width: 0; margin: 0; font: 400 12.5px/1.4 var(--текст); color: var(--чернила-3); text-wrap: pretty; }
.заметка { margin: 10px 2px 0; padding: 10px 12px; border: 1px solid var(--линия); border-radius: 6px; font-size: 13px; color: var(--чернила-2); background: var(--панель); }

/* пустое дело, новое дело, вход */
.пусто { max-width: 560px; margin: 8vh auto 0; padding: 0 32px; }
.пусто h2 { font: 600 26px/1.2 var(--заголовок); margin: 0 0 10px; }
.пусто p { margin: 0 0 18px; color: var(--чернила-2); font-size: 15px; line-height: 1.6; }
.пусто .ряд { display: flex; flex-wrap: wrap; gap: 10px; }
.форма { max-width: 560px; margin: 0 auto; padding: 32px; }
.форма .пояснение { margin: 0 0 24px; color: var(--чернила-2); }
.форма label, .форма .метка-поля { display: grid; gap: 6px; margin-bottom: 16px; font-size: 13px; font-weight: 500; color: var(--чернила-2); }
.форма .метка-поля > span { display: grid; gap: 6px; }
.форма .метка-поля small, .форма label small { font-weight: 400; color: var(--чернила-3); }
.форма input { height: 44px; padding: 0 12px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); font-size: 15px; color: var(--чернила); }
.форма input:focus { outline: none; border-color: var(--чернила-2); box-shadow: 0 0 0 3px color-mix(in oklab, var(--platinum) 40%, transparent); }
.форма input[aria-invalid="true"] { border-color: var(--акцент); }
.форма .ошибка-поля { color: var(--акцент); font-size: 12.5px; font-weight: 400; }
.форма .ряд { display: flex; gap: 10px; margin-top: 8px; }
.вход { min-height: var(--экран); display: grid; place-items: center; background: var(--onyx); color: var(--platinum); padding: 24px; }
.вход form { width: min(360px, 100%); display: grid; gap: 16px; }
.вход .знак-место { justify-self: start; height: 44px; min-width: 84px; font-size: 21px; color: var(--ivory); border-color: color-mix(in oklab, var(--slate) 85%, var(--onyx)); }
.вход h1 { margin: 8px 0 0; font: 600 28px/1.2 var(--заголовок); color: var(--ivory); }
.вход p { margin: 0; color: color-mix(in oklab, var(--platinum) 78%, var(--onyx)); }
.вход input { height: 48px; padding: 0 14px; border-radius: 4px; border: 1px solid color-mix(in oklab, var(--slate) 85%, var(--onyx)); background: color-mix(in oklab, var(--onyx) 72%, var(--slate)); color: var(--ivory); font-size: 18px; letter-spacing: .2em; }
.вход input:focus { outline: none; border-color: var(--platinum); }
.вход .кнопка-главная { background: var(--ivory); color: var(--onyx); height: 48px; }
.вход .кнопка-главная:hover { background: var(--platinum); }

/* ── Правая панель ──────────────────────────────────────────────────── */
.панель { background: var(--панель); border-left: 1px solid var(--линия); display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; }
.без-панели .панель { border: 0; }
.вкладки { flex: none; display: flex; align-items: stretch; gap: 22px; padding: 0 20px; height: 52px; border-bottom: 1px solid var(--линия); }
.вкладка { position: relative; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--чернила-2); transition: color var(--быстро); }
.вкладка:hover { color: var(--чернила); }
.вкладка[aria-selected="true"] { color: var(--чернила); }
.вкладка[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--акцент); }
.вкладка .счёт { font-size: 11.5px; color: var(--чернила-3); font-variant-numeric: tabular-nums; }
.вкладка .новых { height: 16px; min-width: 16px; font-size: 10.5px; }
.вкладки .закрыть-панель { margin-left: auto; align-self: center; }
.панель-тело { flex: 1; overflow-y: auto; min-height: 0; position: relative; overscroll-behavior: none; animation: смена var(--быстро) ease-out; }
@keyframes смена { from { opacity: 0; } }

.опись-итог { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 20px 10px; font-size: 12.5px; color: var(--чернила-2); }
.опись-итог a, .опись-итог button { font-size: 12.5px; color: var(--чернила-2); text-decoration: underline; text-decoration-color: var(--линия-сильная); text-underline-offset: .25em; }
.опись-итог button:hover { color: var(--акцент); }
.категория { border-top: 1px solid var(--линия); }
.категория summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 12px 20px; cursor: pointer; font-size: 13px; font-weight: 600; }
.категория summary::-webkit-details-marker { display: none; }
.категория summary .счёт { font-weight: 400; color: var(--чернила-3); font-size: 12px; margin-left: 8px; }
.категория summary .и { width: 16px; height: 16px; color: var(--чернила-3); transition: rotate var(--быстро) var(--кривая); }
.категория:not([open]) summary .и { rotate: -90deg; }
.категория ul { list-style: none; margin: 0 0 8px; padding: 0; }
.док-строка { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; text-align: left; padding: 8px 20px 8px 20px; transition: background var(--быстро); }
.док-строка:hover { background: var(--наведение); }
.док-строка[aria-current="true"] { background: var(--акцент-фон); }
.док-строка .имя { font-size: 13.5px; line-height: 1.35; color: var(--чернила); }
.док-строка[aria-current="true"] .имя { color: var(--акцент); }
.док-строка .дата { font-size: 12px; color: var(--чернила-3); }
.док-строка .листов { grid-row: 1 / span 2; grid-column: 2; align-self: center; font-size: 12px; color: var(--чернила-3); font-variant-numeric: tabular-nums; }

.лист-шапка { padding: 16px 20px 12px; border-bottom: 1px solid var(--линия); }
.лист-шапка h2 { margin: 0; font: 600 21px/1.2 var(--заголовок); text-wrap: balance; }
.лист-шапка .мета { margin-top: 3px; font-size: 12.5px; color: var(--чернила-3); }
.листалка { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.листалка .номер { font-size: 12.5px; color: var(--чернила-2); font-variant-numeric: tabular-nums; }
.листалка .кнопки { display: flex; gap: 2px; }
.лист-поле { padding: 20px; }
.лист { background: var(--бумага); border: 1px solid var(--линия); box-shadow: 0 1px 2px color-mix(in oklab, var(--onyx) 6%, transparent), 0 10px 28px -18px color-mix(in oklab, var(--onyx) 30%, transparent);
  padding: 36px 34px 44px; font: 400 14.5px/1.6 var(--текст); color: var(--бумага-чернила); position: relative; min-height: 420px; }
.лист p { margin: 0 0 .7em; text-align: justify; hyphens: auto; }
.лист .центр-строки { text-align: center; }
.лист .заглавие { text-align: center; font-size: 15.5px; letter-spacing: .06em; margin-bottom: 1em; }
.лист .номер-листа { position: absolute; bottom: 14px; left: 0; right: 0; text-align: center; font-size: 12px; color: color-mix(in oklab, var(--slate) 72%, var(--ivory)); }
.лист .не-набран { color: color-mix(in oklab, var(--slate) 72%, var(--ivory)); font-style: italic; text-align: center; margin-top: 30%; }
.лист img { display: block; width: 100%; height: auto; }
.лист.скан { padding: 0; min-height: 0; }
/* ссылка-закладка: подчёркивание цитаты прочерчивается слева направо */
.лист mark { background: linear-gradient(var(--bordeaux), var(--bordeaux)) no-repeat 0 100% / 0% 1.5px; color: inherit; padding-bottom: 1px;
  transition: background-size var(--плавно) var(--кривая) 120ms; }
.лист mark.видна { background-size: 100% 1.5px; background-color: color-mix(in oklab, var(--bordeaux) 7%, transparent); }

.наши-список { list-style: none; margin: 0; padding: 8px 0; }
.наш { padding: 12px 20px; border-bottom: 1px solid var(--линия); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; }
.наш > .и { color: var(--чернила-3); margin-top: 1px; }
.наш .имя { font-size: 13.5px; line-height: 1.35; font-weight: 500; }
.наш .мета { grid-column: 2; font-size: 12px; color: var(--чернила-3); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.наш .новый { color: var(--акцент); font-weight: 600; }
.наш .внутр { display: inline-flex; align-items: center; gap: 4px; color: var(--акцент); }
.наш .внутр .и { width: 13px; height: 13px; }
.наш .кнопки { grid-column: 2; display: flex; gap: 4px; margin-top: 4px; margin-left: -10px; }
.наш .кнопки .кнопка-тихая { height: 32px; padding: 0 10px; font-size: 12.5px; }
.панель-пусто { padding: 40px 28px; color: var(--чернила-2); font-size: 13.5px; line-height: 1.6; }
.панель-пусто h3 { margin: 0 0 6px; font: 600 19px/1.25 var(--заголовок); color: var(--чернила); }


/* ── Переключатель вида (телефон) ───────────────────────────────────── */
.виды { display: none; }

/* ── Средние экраны: рейка уезжает, панель — поверх ─────────────────── */
@media (max-width: 1279px) {
  :root { --ширина-рейки: 232px; --ширина-панели: 384px; }
  .шапка-дела, .лента-внутри, .вопросник { padding-left: 24px; padding-right: 24px; }
}
@media (max-width: 1023px) {
  .корень, .корень.без-панели { grid-template-columns: minmax(0, 1fr); }
  .рейка { position: fixed; inset: 0 auto 0 0; width: 288px; z-index: 40; translate: -100% 0; transition: translate var(--плавно) var(--кривая); }
  .рейка-открыта .рейка { translate: 0 0; box-shadow: 0 0 0 100vmax color-mix(in oklab, var(--onyx) 40%, transparent); }
  .шапка-дела .меню-кнопка { display: inline-flex; margin: -6px 0 0 -10px; }
  .шапка-дела { grid-template-columns: auto minmax(0, 1fr) auto; }
  .шапка-дела .меню-кнопка { grid-row: 1; } .шапка-дела h1 { grid-column: 2 / -1; } .реквизиты { grid-column: 2 / -1; } .статус-строка { grid-column: 2; } .действия { grid-column: 3; }
  .панель { position: fixed; inset: 0 0 0 auto; width: min(440px, 92vw); z-index: 30; box-shadow: -24px 0 48px -24px color-mix(in oklab, var(--onyx) 40%, transparent);
    translate: 100% 0; transition: translate var(--плавно) var(--кривая); }
  .корень:not(.без-панели) .панель { translate: 0 0; }
}

/* ── Телефон ────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  body { font-size: 15px; }
  .рейка { position: static; width: auto; translate: none; height: var(--экран); border: 0; }
  .корень.экран-дела .рейка { display: none; }
  .корень.экран-дел .центр, .корень.экран-дел .панель { display: none; }
  .знак { height: 60px; }
  .дело-строка { padding: 12px; min-height: 56px; }
  .дело-строка .кто { font-size: 15px; }
  .дело-строка .мета { font-size: 13px; }
  .новое-дело { height: 44px; font-size: 14px; }
  .рейка-поиск input { height: 44px; font-size: 15px; }
  .рейка-низ { padding-bottom: calc(14px + env(safe-area-inset-bottom)); }

  .шапка-дела { position: sticky; top: 0; z-index: 5; background: var(--поле); padding: 10px 12px 0; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0 4px; border-bottom: 0; }
  .шапка-дела .назад { display: inline-flex; grid-row: 1 / span 2; align-self: start; }
  .шапка-дела .меню-кнопка { display: none; }
  .шапка-дела h1 { font-size: 21px; line-height: 1.15; padding-top: 8px; grid-column: 2; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .реквизиты { font-size: 13px; grid-column: 2; overflow: hidden; }
  .статус-строка.готово { display: none; }
  .действия { grid-column: 3; grid-row: 1; margin-right: 0; }
  .действия .на-компьютере { display: none; }
  .статус-строка { grid-column: 2 / -1; grid-row: auto; margin-top: 4px; }
  .ход { flex-basis: 90px; }
  .виды { display: flex; grid-column: 1 / -1; margin: 12px -12px 0; padding: 0 16px; gap: 22px; border-bottom: 1px solid var(--линия); }
  .виды .вкладка { height: 44px; font-size: 14px; }
  .центр { height: var(--экран); }
  .корень.экран-дела:not(.вид-разговор) .лента, .корень.экран-дела:not(.вид-разговор) .вопросник { display: none; }
  .корень.экран-дела:not(.вид-разговор) .панель { display: flex; position: static; translate: none; width: auto; box-shadow: none; border: 0; flex: 1; }
  .корень.экран-дела.вид-разговор .панель { display: none; }
  .корень.экран-дела:not(.вид-разговор) { grid-template-rows: auto 1fr; }
  .корень.экран-дела:not(.вид-разговор) .центр { height: auto; }
  .корень.экран-дела:not(.вид-разговор) .вкладки { display: none; }
  .лента-внутри { padding: 18px 16px 20px; }
  .частые ul { grid-template-columns: 1fr; }
  .частые li button { padding: 12px 0; font-size: 14.5px; }
  .о-деле p { font-size: 17px; }
  .вопрос { font-size: 16px; } .ответ { font-size: 15.5px; }
  .источник { font-size: 14px; padding: 4px 0; }
  .вопросник { padding: 8px 12px calc(var(--над-краем) + env(safe-area-inset-bottom)); }
  .под-полем { margin-top: 6px; min-height: 0; }
  .дисклеймер { text-align: center; }
  .поле-вопроса textarea { font-size: 16px; }
  .поле-вопроса .кнопка-тихая.иконка, .спросить { width: 44px; height: 44px; }
  .лист-поле { padding: 12px; }
  .лист { padding: 24px 20px 40px; font-size: 15px; }
  .пусто { margin-top: 32px; padding: 0 16px; }
  .форма { padding: 20px 16px calc(var(--над-краем) + 20px); }
  .форма .ряд { flex-direction: column; }
  .форма .ряд > * { height: 48px; }
  .кнопка-главная, .кнопка-рамка { height: 44px; }
  .наш .кнопки .кнопка-тихая { height: 40px; }
  .док-строка { padding: 11px 16px; }
  .категория summary { padding: 14px 16px; }
  .опись-итог { padding: 14px 16px 10px; }
}

/* сенсорные экраны любой ширины (планшет): касание ≥ 44 px */
@media (pointer: coarse) {
  .кнопка-тихая, .кнопка-рамка, .кнопка-главная, .новое-дело { min-height: 44px; }
  .кнопка-тихая.иконка, .спросить, .поле-вопроса .кнопка-тихая.иконка { width: 44px; height: 44px; }
  .наш .кнопки .кнопка-тихая { height: 44px; }
  .вкладки { height: 56px; } .вкладка { min-height: 44px; }
  .рейка-поиск input { height: 44px; }
  .дело-строка, .док-строка { min-height: 48px; }
  .частые li button { min-height: 44px; }
}

/* заседания — раздел появится; пока честная заглушка */
/* отдельная строка каркаса рейки, как «неделя» в прототипе: список дел кончается над ней (ПРАВКИ_19);
   тень — пока под строкой ещё есть дела, до конца прокрутки */
.заседания { flex: none; position: relative; z-index: 1; margin: 0; padding: 10px 20px 12px; background: var(--рейка); border-top: 1px solid var(--рейка-линия);
  font-size: 12px; line-height: 1.45; color: var(--рейка-тихо); transition: box-shadow var(--быстро); }
.заседания.под-ней-дела { box-shadow: 0 -10px 12px -10px color-mix(in oklab, var(--onyx) 35%, transparent); }
.заседания b { display: block; color: var(--рейка-текст); font-weight: 500; font-size: 12.5px; margin-bottom: 2px; }

/* ── Вложения к вопросу (компьютер): документ из дела или файл с компьютера ── */
.вложения { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 4px 2px; }
.вложение { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 4px 4px 8px; border: 1px solid var(--рамка-поля); border-radius: 4px; font-size: 12.5px; background: var(--панель); }
.вложение > .и { width: 14px; height: 14px; color: var(--чернила-3); }
.вложение > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 320px; }
.вложение small { color: var(--чернила-3); }
.вложение button { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 3px; color: var(--чернила-3); }
.вложение button:hover { background: var(--наведение); color: var(--чернила); }
.вложение button .и { width: 14px; height: 14px; }
.меню-вложений { position: absolute; left: 6px; bottom: calc(100% + 8px); z-index: 20; width: min(440px, 90vw); max-height: 420px; display: flex; flex-direction: column;
  background: var(--поле); border: 1px solid var(--линия-сильная); border-radius: 8px; box-shadow: 0 16px 40px -18px color-mix(in oklab, var(--onyx) 45%, transparent); overflow: hidden; }
.меню-вложений .пункт-файл { display: flex; gap: 10px; align-items: flex-start; text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--линия); }
.меню-вложений .пункт-файл:hover { background: var(--наведение); }
.меню-вложений b { display: block; font-size: 13.5px; font-weight: 500; }
.меню-вложений small { display: block; font-size: 12px; color: var(--чернила-3); margin-top: 1px; }
.меню-вложений .из-дела { padding: 10px 14px 6px; display: grid; gap: 6px; }
.меню-вложений .из-дела input { height: 34px; padding: 0 10px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); font-size: 13px; color: var(--чернила); }
.меню-вложений ul { list-style: none; margin: 0; padding: 0 0 6px; overflow-y: auto; }
.меню-вложений li button { width: 100%; text-align: left; padding: 8px 14px; display: grid; gap: 1px; }
.меню-вложений li button:hover { background: var(--наведение); }
.меню-вложений li button span { font-size: 13.5px; }
.пусто-вложений { padding: 10px 14px; font-size: 13px; color: var(--чернила-3); }
.поле-вопроса.над-полем { border-color: var(--акцент); box-shadow: 0 0 0 3px color-mix(in oklab, var(--bordeaux) 25%, transparent); }
.по-документу { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: 12.5px; color: var(--чернила-3); }
.по-документу .и { width: 14px; height: 14px; }
.спросить-по-документу { margin-top: 12px; width: 100%; }

/* ── Спросить по документу: значок у строки, выбор нескольких ── */
.строка-документа { display: flex; align-items: stretch; position: relative; }
.строка-документа .док-строка { flex: 1; min-width: 0; }
.спросить-док { position: absolute; right: 56px; top: 50%; translate: 0 -50%; width: 32px; height: 32px; border-radius: 4px; display: grid; place-items: center;
  color: var(--чернила-2); background: var(--панель); border: 1px solid var(--рамка-поля); opacity: 0; transition: opacity var(--быстро); }
.спросить-док .и { width: 15px; height: 15px; }
.строка-документа:hover .спросить-док, .спросить-док:focus-visible { opacity: 1; }
.спросить-док:hover { color: var(--акцент); border-color: var(--акцент); }
@media (pointer: coarse) { .спросить-док { opacity: 1; position: static; translate: none; align-self: center; margin-right: 12px; width: 44px; height: 44px; flex: none; } }
.галочка { width: 22px; height: 22px; flex: none; align-self: center; margin-left: 16px; border: 1.5px solid var(--рамка-поля); border-radius: 4px; display: grid; place-items: center; color: var(--кнопка-текст); }
.галочка[aria-checked="true"] { background: var(--кнопка); border-color: var(--кнопка); }
.галочка .и { width: 15px; height: 15px; stroke-width: 2; }
.категория summary .галочка { margin: 0 10px 0 0; }
.категория summary { justify-content: flex-start; } .категория summary > .и { margin-left: auto; }
.наш.в-выборе { grid-template-columns: auto minmax(0, 1fr); } .наш.в-выборе > .галочка { margin-left: 0; }
.опись-итог .справа { display: inline-flex; gap: 14px; }
.опись-итог button[aria-pressed="true"] { color: var(--акцент); }
.полоса-выбора { position: sticky; bottom: 0; display: flex; align-items: center; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--поле); border-top: 1px solid var(--линия-сильная); font-size: 13px; }
.полоса-выбора span { margin-right: auto; color: var(--чернила-2); }
@media (max-width: 767px) { .полоса-выбора { padding-bottom: calc(var(--над-краем) + env(safe-area-inset-bottom)); flex-wrap: wrap; } }
.меню-вложений .раздел-вложений { padding: 10px 14px 4px; font-size: 11.5px; color: var(--чернила-3); letter-spacing: .02em; }
.меню-вложений li button { grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 8px; display: grid; }
.меню-вложений .галка { width: 18px; height: 18px; display: grid; place-items: center; color: var(--акцент); }
.меню-вложений .галка .и { width: 16px; height: 16px; stroke-width: 2; }
.меню-вложений li button > span:last-child { display: grid; gap: 1px; }
.низ-меню { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--линия); font-size: 12.5px; color: var(--чернила-3); }
.низ-меню .кнопка-главная { height: 34px; }
.низ-меню .кнопка-главная:disabled { opacity: .55; }
.вложение.идёт { border-style: dashed; }
.вложение .в-дело { width: auto !important; padding: 0 6px; font-size: 11.5px; border: 1px solid var(--линия-сильная) !important; height: 22px !important; }
.вложение .в-дело[aria-pressed="false"] { color: var(--чернила-3); text-decoration: line-through; }

/* ── Шаблоны в настройках ── */
.пояснение-раздела { margin: 0 0 10px; font-size: 13px; color: var(--чернила-3); }
.шаблоны { list-style: none; margin: 0 0 12px; padding: 0; }
.шаблон { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid color-mix(in oklab, var(--линия) 60%, transparent); }
.шаблон > .и { color: var(--чернила-3); }
.шаблон .имя b { display: block; font-weight: 500; font-size: 14px; }
.шаблон .имя small { font-size: 12.5px; color: var(--чернила-3); }
.шаблон .справа { display: inline-flex; align-items: center; gap: 4px; }
.шаблон.ш-ошибка .имя small { color: var(--акцент); }
/* «Шаблон готов» — зелёный по просьбе Петра (04.10): исключение из брендбука, только для этой отметки */
:root { --готово: #3F6B4E; } html[data-тема="тёмная"] { --готово: #8DB79A; }
.готов { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 500; color: var(--готово); }
.готов .и { width: 15px; height: 15px; stroke-width: 2; }

/* ── Расчёт: карточка в разговоре ── */
.инструменты { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 8px 2px 0; font-size: 12.5px; color: var(--чернила-3); }
.инструменты button { color: var(--чернила-2); text-decoration: underline; text-decoration-color: var(--линия-сильная); text-underline-offset: .25em; font-size: 12.5px; }
.инструменты button:hover { color: var(--акцент); }
@media (max-width: 767px) { .инструменты { display: none; } }
.расчёт { border: 1px solid var(--линия-сильная); border-radius: 6px; background: color-mix(in oklab, var(--поле) 70%, var(--панель)); }
.расчёт-шапка { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 12px 18px; border-bottom: 1px solid var(--линия); }
.расчёт-шапка .и { width: 16px; height: 16px; align-self: center; color: var(--чернила-3); }
.расчёт-шапка b { font: 600 19px/1.2 var(--заголовок); }
.расчёт-шапка span { font-size: 12.5px; color: var(--чернила-3); }
.поля-расчёта { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px 16px; padding: 14px 18px; }
.поле-расчёта { display: grid; gap: 4px; font-size: 12.5px; color: var(--чернила-2); }
.поле-расчёта input { height: 38px; padding: 0 10px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font-size: 14px; font-variant-numeric: tabular-nums; }
.поле-расчёта .откуда { justify-self: start; font-size: 12px; color: var(--чернила-3); text-decoration: underline; text-decoration-color: var(--линия-сильная); text-underline-offset: .25em; }
.поле-расчёта .откуда:hover { color: var(--акцент); }
.поле-расчёта small { font-size: 12px; color: var(--чернила-3); }
.итог-расчёта { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px 16px; padding: 14px 18px; border-top: 1px solid var(--линия); }
.итог-расчёта small { display: block; font-size: 12px; color: var(--чернила-3); margin-bottom: 2px; }
.итог-расчёта b { font-weight: 500; font-size: 14px; }
.итог-расчёта .сумма b { font: 600 24px/1.1 var(--заголовок); }
.сверка { grid-column: 1 / -1; margin: 0; font-size: 13px; color: var(--готово); }
.сверка.расходится { color: var(--акцент); }

/* ── Календарь: мини-месяц в рейке, неделя на телефоне, окно посередине ── */
.мини-календарь { flex: none; position: relative; z-index: 1; margin: 0; padding: 10px 14px 10px; background: var(--рейка); border-top: 1px solid var(--рейка-линия);
  box-shadow: 0 -10px 12px -10px color-mix(in oklab, var(--onyx) 35%, transparent); }
.дела-список { padding-bottom: 12px; }
.мк-шапка { display: flex; align-items: center; justify-content: space-between; padding: 0 0 6px 4px; font-size: 12.5px; color: var(--рейка-ярко); }
.мк-шапка b { font-weight: 500; }
.мк-шапка .кнопка-тихая.иконка { width: 26px; height: 26px; color: var(--рейка-тихо); }
.мк-шапка .кнопка-тихая.иконка:hover { background: var(--рейка-2); color: var(--рейка-ярко); }
.мк-шапка .и { width: 15px; height: 15px; }
.мк-сетка { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; text-align: center; }
.мк-дн { font-size: 10px; color: var(--рейка-тихо); padding-bottom: 2px; }
.мк-день { position: relative; height: 24px; font-size: 11.5px; border-radius: 4px; color: var(--рейка-текст); font-variant-numeric: tabular-nums; }
.мк-день:hover { background: var(--рейка-2); }
.мк-день.чужой { color: color-mix(in oklab, var(--рейка-тихо) 60%, transparent); }
.мк-день.сегодня { box-shadow: inset 0 0 0 1px var(--рейка-ярко); color: var(--рейка-ярко); }
.мк-день.заседание::after, .мк-день.срок::after { content: ""; position: absolute; left: 50%; bottom: 2px; translate: -50% 0; width: 4px; height: 4px; border-radius: 50%; }
.мк-день.заседание::after { background: var(--акцент); }
html[data-тема="тёмная"] .мк-день.заседание::after { background: var(--акцент); }
.мк-день.срок:not(.заседание)::after { border: 1px solid var(--рейка-ярко); background: none; }
.мк-ближайшее { margin: 8px 4px 6px; font-size: 12.5px; color: var(--рейка-ярко); line-height: 1.35; }
.мк-ближайшее small { display: block; font-size: 11px; color: var(--рейка-тихо); }
.мини-календарь { padding: 6px 8px 6px 6px; }
.мини-календарь.открыт { padding-bottom: 10px; }
.мк-верх { display: flex; align-items: center; gap: 4px; }
.мк-переключить { width: 32px; height: 32px; color: var(--рейка-тихо); flex: none; }
.мк-переключить .и { width: 16px; height: 16px; rotate: 180deg; transition: rotate var(--быстро) var(--кривая); }
.мк-переключить.открыт .и { rotate: 0deg; }
.мк-переключить:hover { background: var(--рейка-2); color: var(--рейка-ярко); }
.мк-месяц { display: flex; align-items: center; justify-content: space-between; margin: 6px 0 4px; font-size: 12.5px; color: var(--рейка-ярко); }
.мк-месяц b { font-weight: 500; }
.мк-месяц .кнопка-тихая.иконка { width: 28px; height: 28px; color: var(--рейка-тихо); }
.мк-месяц .кнопка-тихая.иконка:hover { background: var(--рейка-2); color: var(--рейка-ярко); }
.мк-месяц .и { width: 15px; height: 15px; }
.мини-календарь .мк-открыть { margin-top: 8px; }
.мк-строка { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; text-align: left; padding: 4px 6px; border-radius: 4px; color: var(--рейка-ярко); font-size: 12.5px; line-height: 1.3; }
.мк-строка:hover { background: var(--рейка-2); }
.мк-строка .и { width: 18px; height: 18px; color: var(--рейка-тихо); flex: none; }
.мк-строка small { display: block; font-size: 11px; color: var(--рейка-тихо); }
.мк-открыть { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 32px; border: 1px solid var(--рейка-линия); border-radius: 4px; font-size: 12.5px; color: var(--рейка-ярко); }
.мк-открыть:hover { background: var(--рейка-2); }
.мк-открыть .и { width: 15px; height: 15px; }
.неделя { display: none; }
.затемнение { position: fixed; inset: 0; z-index: 60; background: color-mix(in oklab, var(--onyx) 55%, transparent); }
.затемнение.впервые { animation: смена var(--быстро) ease-out; }
.окно-календаря { position: fixed; z-index: 61; inset: 50% auto auto 50%; translate: -50% -50%; width: min(1080px, 94vw); height: min(700px, calc(var(--экран) * .9));
  display: flex; flex-direction: column; background: var(--поле); border: 1px solid var(--линия-сильная); border-radius: 10px; overflow: hidden;
  box-shadow: 0 30px 80px -30px color-mix(in oklab, var(--onyx) 70%, transparent); }
.окно-календаря.впервые { animation: появление var(--плавно) var(--кривая); }
.ок-шапка { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--линия); }
.ок-шапка h2 { margin: 0; font: 600 24px/1.1 var(--заголовок); min-width: 170px; }
.ок-нав { display: inline-flex; align-items: center; gap: 4px; }
.ок-нав .кнопка-рамка { height: 32px; }
.ок-связь { margin-left: auto; }
.ок-тело { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 300px; }
.ок-месяц { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-rows: 1fr; grid-template-rows: auto; min-height: 0; border-right: 1px solid var(--линия); }
.ок-дн { padding: 8px 10px 4px; font-size: 11.5px; color: var(--чернила-3); border-bottom: 1px solid var(--линия); }
.ок-день { display: flex; flex-direction: column; align-items: stretch; gap: 3px; text-align: left; padding: 6px 6px 4px; min-height: 0; overflow: hidden;
  border-right: 1px solid color-mix(in oklab, var(--линия) 60%, transparent); border-bottom: 1px solid color-mix(in oklab, var(--линия) 60%, transparent); }
.ок-день:hover { background: var(--наведение); }
.ок-день .число { font-size: 12.5px; font-variant-numeric: tabular-nums; color: var(--чернила-2); width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; }
.ок-день.сегодня .число { background: var(--кнопка); color: var(--кнопка-текст); }
.ок-день.выбран { background: var(--акцент-фон); }
.ок-день.чужой .число { color: var(--чернила-3); opacity: .6; }
.событие { display: block; font-size: 11.5px; line-height: 1.3; padding: 2px 6px; border-radius: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.событие.заседание { background: color-mix(in oklab, var(--bordeaux) 16%, var(--поле)); color: var(--чернила); border-left: 0; }
.событие.срок { border: 1px dashed var(--рамка-поля); color: var(--чернила-2); }
.событие b { font-weight: 600; font-variant-numeric: tabular-nums; }
.ок-день .ещё { font-size: 11px; color: var(--чернила-3); padding-left: 6px; }
.ок-день-подробно { overflow-y: auto; padding: 16px 18px; background: var(--панель); }
.ок-день-подробно h3 { margin: 0 0 12px; font: 600 20px/1.2 var(--заголовок); }
.ок-день-подробно h3::first-letter { text-transform: uppercase; }
.запись-дня { padding: 12px 0; border-top: 1px solid var(--линия); display: grid; gap: 4px; font-size: 13px; }
.запись-дня .вид { margin: 0; font-size: 11.5px; color: var(--акцент); }
.запись-дня.срок .вид { color: var(--чернила-3); }
.запись-дня b { font-weight: 500; font-size: 14px; }
.запись-дня p { margin: 0; }
.запись-дня .откуда-события { font-size: 12px; color: var(--чернила-3); }
.запись-дня .кнопка-рамка { justify-self: start; height: 32px; margin-top: 4px; }
.демо-пометка { margin-top: 16px; font-size: 11.5px; color: var(--чернила-3); }
.в-календарь { margin-top: 12px; }
.в-календаре { display: flex; align-items: center; gap: 6px; margin: 12px 0 0; font-size: 13px; color: var(--готово); }
.в-календаре .и { width: 15px; height: 15px; stroke-width: 2; }
.подтвердить-календарь { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--линия-сильная); border-radius: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-size: 13.5px; }
.подтвердить-календарь p { margin: 0; flex: 1 1 100%; }
.пересечение { color: var(--акцент); }
.выбор-напоминаний { display: inline-flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.фишка { height: 30px; padding: 0 12px; border-radius: 15px; border: 1px solid var(--рамка-поля); font-size: 12.5px; color: var(--чернила-2); }
.фишка[aria-pressed="true"] { background: var(--кнопка); border-color: var(--кнопка); color: var(--кнопка-текст); }
.выбор-напоминаний.мелко { justify-content: flex-start; } .выбор-напоминаний.мелко .фишка { height: 26px; padding: 0 9px; font-size: 11.5px; }
.напомню { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--чернила-2); }
.напомню .и { width: 14px; height: 14px; color: var(--чернила-3); flex: none; }
@media (pointer: coarse) { .фишка { height: 40px; } .выбор-напоминаний.мелко .фишка { height: 36px; } }
.правила { display: grid; gap: 8px; padding: 4px 0 14px; }
.правила.выключены { opacity: .5; }
.правило { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.правило input { flex: 1 1 180px; height: 34px; padding: 0 10px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font-size: 13.5px; }
.правило .тихо, .правила .тихо { color: var(--чернила-3); }
.цвет-превью, .метка-цвета { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--ц); flex: none; }
.метка-цвета { width: 8px; height: 8px; margin-right: 5px; vertical-align: 1px; }
.правила > .кнопка-тихая { justify-self: start; }
.цвета { display: inline-flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; max-width: 330px; }
.цвет { width: 22px; height: 22px; border-radius: 50%; background: var(--ц); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--onyx) 25%, transparent); }
.цвет[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--поле), 0 0 0 4px var(--чернила); }
@media (max-width: 767px) {
  .мини-календарь { display: none; }
  .неделя { display: grid; gap: 6px; flex: none; position: relative; z-index: 1; margin: 0; padding: 10px 16px 12px; border-top: 1px solid var(--рейка-линия);
    background: var(--рейка); box-shadow: 0 -10px 12px -10px color-mix(in oklab, var(--onyx) 35%, transparent); text-align: left; color: var(--рейка-ярко); }
  .неделя-дни { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-size: 14px; font-variant-numeric: tabular-nums; }
  .неделя-дни span { position: relative; padding: 2px 0 8px; border-radius: 4px; }
  .неделя-дни small { display: block; font-size: 10.5px; color: var(--рейка-тихо); }
  .неделя-дни .сегодня { box-shadow: inset 0 0 0 1px var(--рейка-ярко); }
  .неделя-дни .есть::after { content: ""; position: absolute; left: 50%; bottom: 2px; translate: -50% 0; width: 5px; height: 5px; border-radius: 50%; background: var(--акцент); }
  .неделя-ближайшее { font-size: 13.5px; }
  .окно-календаря { inset: 0; translate: none; width: auto; height: var(--экран); border-radius: 0; border: 0; }
  .ок-шапка { flex-wrap: wrap; } .ок-шапка h2 { min-width: 0; font-size: 21px; } .ок-связь { flex-basis: 100%; margin-left: 40px; }
  .ок-тело { grid-template-columns: 1fr; grid-template-rows: auto 1fr; overflow-y: auto; }
  .ок-месяц { border-right: 0; grid-auto-rows: 52px; }
  .ок-день .событие { display: none; }
  .ок-день.есть .число { box-shadow: inset 0 -2px 0 var(--акцент); border-radius: 4px; }
  .ок-день-подробно { padding-bottom: calc(var(--над-краем) + 16px); }
}

/* ── Группы дел в рейке: заметный заголовок, число, свернуть ── */
.группа-дел { margin-top: 6px; border-top: 1px solid var(--рейка-линия); padding-top: 4px; }
.группа-дел:first-child { border-top: 0; margin-top: 0; }
.шапка-группы { display: flex; align-items: center; gap: 2px; position: relative; }
.заг-группы { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 8px 0 12px; border-radius: 4px; text-align: left; color: var(--рейка-ярко); }
.заг-группы:hover { background: var(--рейка-2); }
.имя-группы { font: 600 14.5px/1.2 var(--ui); letter-spacing: -.005em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.заг-группы .счёт { font-size: 11.5px; color: var(--рейка-тихо); font-variant-numeric: tabular-nums; }
.и-группы { width: 15px; height: 15px; margin-left: auto; color: var(--рейка-тихо); transition: rotate var(--быстро) var(--кривая); flex: none; }
.свёрнута .и-группы { rotate: -90deg; }
.и-папки { width: 15px; height: 15px; color: var(--рейка-тихо); flex: none; }
.шапка-группы .меню .кнопка-тихая.иконка { width: 30px; height: 30px; color: var(--рейка-тихо); }
.шапка-группы .меню-список { right: 0; }
.пусто-группы { margin: 2px 12px 8px; font-size: 12px; color: var(--рейка-тихо); }
.новая-папка { display: flex; align-items: center; gap: 8px; margin: 10px 4px 4px; padding: 8px; border-radius: 4px; font-size: 13px; color: var(--рейка-тихо); width: calc(100% - 8px); }
.новая-папка:hover { background: var(--рейка-2); color: var(--рейка-ярко); }
.новая-папка .и { width: 15px; height: 15px; }
.ввод-папки { flex: 1; height: 34px; margin: 2px 4px; padding: 0 10px; border-radius: 4px; border: 1px solid var(--рейка-тихо); background: var(--рейка-2); color: var(--рейка-ярко); font: 500 14px var(--ui); }
.ввод-папки.новая { width: calc(100% - 8px); margin-top: 10px; }
.ввод-папки:focus { outline: none; border-color: var(--рейка-ярко); }
@media (pointer: coarse) { .заг-группы { height: 46px; } .новая-папка { min-height: 44px; } }
/* ── Вкладки дел (старое, не используется) ── */
.вкладки-дел-ряд { display: flex; align-items: center; gap: 2px; margin: 4px 8px 2px 12px; flex: none; }
.вкладки-дел { flex: 1; min-width: 0; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 2px 0; }
.вкладки-дел::-webkit-scrollbar { display: none; }
.вкладка-дел { flex: none; display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 10px; border-radius: 14px; border: 1px solid var(--рейка-линия);
  font-size: 12.5px; color: var(--рейка-текст); white-space: nowrap; }
.вкладка-дел:hover { border-color: var(--рейка-тихо); }
.вкладка-дел[aria-selected="true"] { background: var(--рейка-выбор); border-color: var(--рейка-выбор); color: var(--рейка-ярко); }
.вкладка-дел .счёт { font-size: 11px; color: var(--рейка-тихо); font-variant-numeric: tabular-nums; }
.вкладка-дел.плюс { width: 28px; padding: 0; justify-content: center; }
.вкладка-дел.плюс .и { width: 14px; height: 14px; }
.ввод-вкладки { flex: none; width: 140px; height: 28px; padding: 0 10px; border-radius: 14px; border: 1px solid var(--рейка-тихо); background: var(--рейка-2); color: var(--рейка-ярко); font-size: 12.5px; }
.ввод-вкладки:focus { outline: none; border-color: var(--рейка-ярко); }
.меню-вкладки .кнопка-тихая.иконка { width: 28px; height: 28px; color: var(--рейка-тихо); }
.меню-вкладки .меню-список { right: 0; left: auto; }
.меню-подпись { display: block; padding: 8px 10px 2px; font-size: 11.5px; color: var(--чернила-3); border-top: 1px solid var(--линия); margin-top: 4px; }
@media (pointer: coarse) { .вкладка-дел, .ввод-вкладки { height: 40px; border-radius: 20px; padding: 0 14px; } .вкладка-дел.плюс { width: 40px; } }
@media (max-width: 767px) { .вкладки-дел-ряд { margin: 0 12px 6px 16px; } }

/* ── Шапка экрана поверх (настройки, новое дело): «назад» рядом с заголовком и прилипает при прокрутке ── */
.шапка-экрана { position: sticky; top: 0; z-index: 6; display: flex; align-items: center; gap: 8px; max-width: 680px; margin: 0 auto;
  padding: 16px 32px 12px 22px; background: var(--поле); border-bottom: 1px solid var(--линия); }
.шапка-экрана h1 { margin: 0; font: 600 26px/1.15 var(--заголовок); }
.форма { padding-top: 20px; }
.будет-название { margin: 4px 0 20px; padding: 12px 14px; border: 1px solid var(--линия); border-radius: 6px; background: var(--панель); font-size: 14px; line-height: 1.45; }
.будет-название small { display: block; font-size: 12px; color: var(--чернила-3); margin-bottom: 3px; }
.форма input::placeholder { color: var(--чернила-3); letter-spacing: .08em; }
.назад-листа { margin: 0 -12px 0 -10px; align-self: center; }

/* ── Настройки ──────────────────────────────────────────────────────── */
.настройки-кнопка { display: inline-flex; align-items: center; gap: 6px; text-decoration: none !important; height: 32px; padding: 0 8px; margin-right: -8px; border-radius: 4px; }
.настройки-кнопка .и { width: 16px; height: 16px; }
.настройки-кнопка[aria-current="true"] { background: var(--рейка-выбор); color: var(--рейка-ярко) !important; }
.настройки { max-width: 680px; margin: 0 auto; padding: 28px 32px 48px; }
.настройки section { padding: 18px 0 6px; border-bottom: 1px solid var(--линия); }
.настройки section:last-child { border-bottom: 0; }
.настройки h2 { margin: 0 0 4px; font: 600 20px/1.25 var(--заголовок); }
.строка-настройки { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; border-top: 1px solid color-mix(in oklab, var(--линия) 60%, transparent); }
.настройки h2 + .строка-настройки { border-top: 0; }
.строка-настройки b { display: block; font-weight: 500; font-size: 14px; }
.строка-настройки small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--чернила-3); line-height: 1.4; }
.строка-настройки .справа { flex: none; text-align: right; color: var(--чернила-2); font-size: 13.5px; }
.строка-настройки .тихо { color: var(--чернила-3); font-size: 13px; }
.скоро { font-size: 12px; color: var(--чернила-3); border: 1px dashed var(--рамка-поля); border-radius: 10px; padding: 2px 8px; }
.состояние { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.состояние::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--чернила-3); }
.состояние.ок::before { background: var(--чернила); border-color: var(--чернила); }
.состояние.нет { color: var(--акцент); }
.состояние.нет::before { border-color: var(--акцент); }
.выбор { display: inline-flex; flex-wrap: wrap; justify-content: flex-end; border: 1px solid var(--рамка-поля); border-radius: 6px; padding: 2px; gap: 2px; }
.выбор button { height: 32px; padding: 0 12px; border-radius: 4px; font-size: 13px; color: var(--чернила-2); }
.выбор button:hover { color: var(--чернила); }
.выбор button[aria-checked="true"] { background: var(--кнопка); color: var(--кнопка-текст); }
html[data-крупно] .корень { zoom: 1.12; }

/* ── Нижняя панель списка дел (телефон): поиск, голос, новое дело, настройки — под большим пальцем ── */
.низ-списка { display: none; }
.телефон-демо { display: none; }

/* ── Тема ───────────────────────────────────────────────────────────── */
.тема { display: inline-flex; border: 1px solid var(--рейка-линия); border-radius: 4px; padding: 2px; gap: 2px; }
.тема button { height: 28px; padding: 0 10px; border-radius: 3px; font-size: 12px; text-decoration: none !important; color: var(--рейка-тихо); display: inline-flex; align-items: center; gap: 6px; }
.тема button .и { width: 14px; height: 14px; }
.тема button[aria-pressed="true"] { background: var(--рейка-выбор); color: var(--рейка-ярко); }

/* ── Голосовое сообщение ────────────────────────────────────────────── */
.микрофон { touch-action: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.поле-вопроса.есть-текст .микрофон, .поле-вопроса:not(.есть-текст) .спросить:not(.микрофон) { display: none; }
.микрофон .и-отпр { display: none; }
.поле-вопроса.закреплено .микрофон .и-микр { display: none; }
.поле-вопроса.закреплено .микрофон .и-отпр { display: block; }
.поле-вопроса:not(.записывает) .микрофон { background: none; color: var(--чернила-2); }
.поле-вопроса:not(.записывает) .микрофон:hover { background: var(--наведение); color: var(--чернила); }
.поле-вопроса.записывает textarea, .поле-вопроса.записывает .слева { display: none; }
.запись { display: none; align-items: center; gap: 12px; min-height: 40px; padding: 0 6px 0 10px; font-size: 14px; color: var(--чернила); overflow: hidden; }
.поле-вопроса.записывает .запись { display: flex; grid-column: 1 / 3; }
.запись .точка-записи { width: 8px; height: 8px; border-radius: 50%; background: var(--акцент); flex: none; }
.запись .время { font-variant-numeric: tabular-nums; min-width: 3.2em; }
.запись .уровни { display: flex; align-items: center; gap: 2px; height: 24px; flex: 1; min-width: 0; overflow: hidden; justify-content: flex-end; }
.уровни i { flex: none; width: 3px; border-radius: 1.5px; background: var(--чернила-2); min-height: 3px; }
.запись .подсказка-записи { color: var(--чернила-3); font-size: 13px; white-space: nowrap; transition: translate 80ms linear, opacity var(--быстро); }
.запись .отменить { display: none; color: var(--акцент); font-size: 13.5px; font-weight: 500; height: 36px; padding: 0 8px; }
.поле-вопроса.закреплено .запись .отменить { display: inline-flex; align-items: center; }
.поле-вопроса.закреплено .подсказка-записи { display: none; }
.поле-вопроса.записывает .микрофон { background: var(--кнопка); color: var(--кнопка-текст); }
.замок-записи { position: absolute; right: 6px; bottom: calc(100% + 10px); width: 40px; padding: 10px 0 8px; border: 1px solid var(--рамка-поля); border-radius: 20px;
  background: var(--поле); color: var(--чернила-2); display: none; flex-direction: column; align-items: center; gap: 4px; box-shadow: 0 8px 20px -12px color-mix(in oklab, var(--onyx) 50%, transparent);
  transition: translate 80ms linear; }
.поле-вопроса.записывает:not(.закреплено) .замок-записи { display: flex; }
.замок-записи .и { width: 16px; height: 16px; }
.поле-вопроса { position: relative; }
.голосовое { display: inline-flex; align-items: center; gap: 10px; padding: 6px 12px 6px 6px; border: 1px solid var(--линия-сильная); border-radius: 20px; max-width: 100%; }
.голосовое .играть { width: 32px; height: 32px; border-radius: 50%; background: var(--кнопка); color: var(--кнопка-текст); display: grid; place-items: center; flex: none; }
.голосовое .играть .и { width: 14px; height: 14px; }
.голосовое .уровни { display: flex; align-items: center; gap: 2px; height: 22px; }
.голосовое .уровни i { background: var(--чернила-3); }
.голосовое .длит { font-size: 12.5px; color: var(--чернила-2); font-variant-numeric: tabular-nums; }
.распознано { margin: 8px 0 10px; font-size: 15px; font-weight: 500; }
.распознано .как { display: block; font-size: 12px; font-weight: 400; color: var(--чернила-3); margin-bottom: 2px; }
.рейка-поиск .микрофон-поиска { position: absolute; right: 4px; top: 50%; translate: 0 -50%; width: 30px; height: 30px; border-radius: 4px; display: grid; place-items: center; color: var(--рейка-тихо); }
.рейка-поиск .микрофон-поиска .и { position: static; translate: none; width: 16px; height: 16px; }
.рейка-поиск .микрофон-поиска:hover, .рейка-поиск .микрофон-поиска[aria-pressed="true"] { color: var(--рейка-ярко); background: var(--рейка-выбор); }
.рейка-поиск input { padding-right: 38px; }
.слушаю { margin: -6px 16px 10px; font-size: 12px; color: var(--рейка-текст); display: flex; align-items: center; gap: 8px; }
.слушаю .точка-записи { width: 7px; height: 7px; border-radius: 50%; background: var(--акцент); }

/* ── Лента: ранее, память ───────────────────────────────────────────── */
.ранее { width: 100%; padding: 14px 0; border-top: 1px solid var(--линия); text-align: left; font-size: 13px; color: var(--чернила-2); display: flex; align-items: center; gap: 8px; }
.ранее:hover { color: var(--чернила); }
.ранее .и { width: 16px; height: 16px; }
.из-памяти { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; font-size: 12px; color: var(--чернила-3); }
.из-памяти button { color: var(--чернила-2); text-decoration: underline; text-decoration-color: var(--линия-сильная); text-underline-offset: .25em; font-size: 12px; }
.из-памяти button:hover { color: var(--акцент); }

/* ── Поиск: почему нашлось ─────────────────────────────────────────── */
.дело-строка .почему { grid-column: 1; font-size: 12px; color: var(--рейка-текст); line-height: 1.35; }
.дело-строка .почему mark { background: none; color: var(--рейка-ярко); font-weight: 600; }

/* телефон: нижняя панель и настройки — в конце файла, чтобы перекрыть базовые правила выше */
@media (max-width: 767px) {
  .шапка-экрана { padding: 10px 16px 10px 6px; }
  .шапка-экрана h1 { font-size: 22px; }
  .форма { padding-top: 14px; }
  .рейка > .наверху, .рейка-низ { display: none; }
  .телефон-демо { display: block; margin: -8px 20px 8px; }
  .низ-списка { display: flex; align-items: center; gap: 8px; flex: none; padding: 10px 16px calc(var(--над-краем) + env(safe-area-inset-bottom));
    border-top: 1px solid var(--рейка-линия); background: var(--рейка); }
  .низ-списка .рейка-поиск { flex: 1; margin: 0; }
  .кнопка-низа { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 6px; border: 1px solid var(--рейка-линия); color: var(--рейка-ярко); }
  .слушаю { margin: 0 16px 8px; }
  .настройки { padding: 12px 16px calc(var(--над-краем) + 24px); }
  .строка-настройки { flex-wrap: wrap; }
  .строка-настройки .справа { text-align: left; }
  .выбор { justify-content: flex-start; }
  .выбор button { height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; scroll-behavior: auto !important; }
}

/* ── Свой выпадающий список: поле как у ввода, список как у меню «⋯» ── */
.выпадающий { position: relative; }
.выпадающий-кнопка { display: flex; align-items: center; gap: 10px; width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--рамка-поля); border-radius: 4px;
  background: var(--ввод); color: var(--чернила); font-size: 15px; font-weight: 400; text-align: left; transition: border-color var(--быстро); }
.выпадающий-кнопка > span:not(.цвет-превью) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.выпадающий-кнопка > .и { width: 16px; height: 16px; flex: none; color: var(--чернила-2); transition: transform var(--быстро); }
.выпадающий-кнопка:hover:not(:disabled) { border-color: var(--чернила-2); }
.выпадающий.открыт .выпадающий-кнопка { border-color: var(--чернила-2); }
.выпадающий.открыт .выпадающий-кнопка > .и { transform: rotate(180deg); }
.выпадающий-кнопка:disabled { cursor: not-allowed; }
.выпадающий-список { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 20; display: grid; padding: 6px; max-height: 280px; overflow-y: auto;
  background: var(--поле); border: 1px solid var(--линия-сильная); border-radius: 6px; box-shadow: 0 12px 32px -12px color-mix(in oklab, var(--onyx) 35%, transparent); }
.выпадающий-список [role="option"] { display: flex; align-items: center; gap: 10px; min-height: 38px; padding: 0 10px; border-radius: 4px; font-size: 14px; color: var(--чернила); text-align: left; }
.выпадающий-список [role="option"]:hover, .выпадающий-список [role="option"]:focus-visible { background: var(--наведение); outline: none; }
.выпадающий-список [role="option"][aria-selected="true"] { font-weight: 500; }
.выпадающий-список [role="option"] .и { width: 16px; height: 16px; flex: none; color: var(--чернила-2); }
.выпадающий-список .отдельно { margin-top: 4px; border-top: 1px solid var(--линия); border-radius: 0 0 4px 4px; padding-top: 4px; color: var(--чернила-2); }
.правило .выпадающий { flex: 0 0 170px; }
.правило .выпадающий-кнопка { height: 34px; padding: 0 10px; font-size: 13.5px; }
.правило .выпадающий-список [role="option"] { min-height: 34px; font-size: 13px; }
@media (pointer: coarse) { .выпадающий-список [role="option"] { min-height: 44px; } .правило .выпадающий-кнопка { height: 44px; } }
/* ПРАВКИ_39 п. 1: телефон — список листом снизу над затемнением; закрывают затемнение, ручка (касание, смахнуть вниз),
   «Назад» / Esc, выбор пункта. Компьютер — как было: затемнения и ручки нет. */
.выпадающий-фон, .ручка-выпадающего { display: none; }
@media (max-width: 767px) {
  .выпадающий-фон { display: block; position: fixed; inset: 0; z-index: 70; background: color-mix(in oklab, var(--onyx) 55%, transparent);
    animation: смена var(--быстро) ease-out; -webkit-tap-highlight-color: transparent; }
  .выпадающий-список, .правило .выпадающий-список { position: fixed; inset: auto 0 0 0; top: auto; z-index: 71; align-content: start;
    max-height: min(72vh, calc(var(--экран, 100dvh) - 64px)); padding: 0 8px calc(var(--над-краем) + env(safe-area-inset-bottom));
    border-width: 1px 0 0; border-radius: 14px 14px 0 0; overscroll-behavior: contain; box-shadow: 0 -16px 40px -16px color-mix(in oklab, var(--onyx) 45%, transparent);
    animation: появление var(--плавно) var(--кривая); transition: translate var(--быстро) ease-out; }
  .ручка-выпадающего { display: grid; justify-items: center; gap: 10px; position: sticky; top: 0; z-index: 1; margin: 0 -8px 4px; padding: 10px 18px 8px;
    background: var(--поле); border-bottom: 1px solid var(--линия); touch-action: none; cursor: grab; }
  .ручка-выпадающего i { width: 40px; height: 4px; border-radius: 2px; background: var(--линия-сильная); }
  .ручка-выпадающего span { justify-self: start; font-size: 13px; font-weight: 500; color: var(--чернила-3); }
  .выпадающий-список [role="option"], .правило .выпадающий-список [role="option"] { min-height: 52px; padding: 0 12px; font-size: 16px; }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) { .выпадающий-список, .выпадающий-фон { animation: none; } }

/* ── Папка в результатах поиска ── */
.строка-папки { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 8px 20px; text-align: left; color: var(--рейка-ярко); transition: background var(--быстро); }
.строка-папки:hover { background: var(--рейка-2); }
.строка-папки .имя { flex: 1; min-width: 0; font: 600 14.5px/1.2 var(--ui); }
.строка-папки .счёт { font-size: 12.5px; color: var(--рейка-тихо); }
.строка-папки .и { width: 16px; height: 16px; flex: none; color: var(--рейка-тихо); }
.группа-дел { transition: background 250ms var(--плавно, ease-out); }
.группа-дел.подсвечена { background: var(--рейка-2); }

/* ── Значок папки: контур, эмодзи или своя картинка. Выбор — панелью под заголовком папки, в ширину списка ── */
.значок-эмодзи { display: inline-grid; place-items: center; font-size: 15px; line-height: 1; width: 18px; height: 18px; flex: none; }
.значок-картинка { object-fit: cover; border-radius: 4px; width: 18px; height: 18px; flex: none; }
.меню-список .значок-эмодзи, .меню-список .значок-картинка { width: 16px; height: 16px; font-size: 14px; }
.выбор-значка { display: grid; gap: 10px; margin: 2px 8px 12px; padding: 10px 12px 12px; border: 1px solid var(--рейка-линия); border-radius: 6px; background: var(--поле); color: var(--чернила); }
.выбор-значка-заг { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; font-weight: 600; color: var(--чернила-2); }
.выбор-значка-заг .кнопка-тихая.иконка { width: 28px; height: 28px; margin-right: -6px; }
.сетка-эмодзи { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2px; }
.сетка-эмодзи button { display: grid; place-items: center; aspect-ratio: 1; min-width: 0; font-size: 18px; line-height: 1; border-radius: 6px; transition: background var(--быстро); }
.сетка-эмодзи button:hover { background: var(--наведение); }
.сетка-эмодзи button[aria-pressed="true"] { background: var(--наведение); box-shadow: inset 0 0 0 1px var(--чернила-2); }
.свой-эмодзи { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--чернила-2); }
.свой-эмодзи input { width: 56px; height: 32px; padding: 0 6px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font-size: 16px; text-align: center; }
.низ-значка { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding-top: 10px; border-top: 1px solid var(--линия); }
.низ-значка .кнопка-рамка { cursor: pointer; height: 32px; padding: 0 10px; font-size: 12.5px; }
.низ-значка .кнопка-тихая { height: 32px; padding: 0 8px; font-size: 12.5px; }
.низ-значка .и { width: 15px; height: 15px; }
@media (pointer: coarse) { .сетка-эмодзи button { font-size: 22px; } .свой-эмодзи input, .низ-значка .кнопка-рамка, .низ-значка .кнопка-тихая { height: 44px; } }

/* «Новая папка» — сразу под «Новое дело», не в конце длинного списка; на телефоне — из «+» внизу */
.новая-папка-кнопка { color: var(--рейка-текст); }
@media (min-width: 768px) { .ввод-папки.новая.наверху { display: block; flex: none; height: 36px; margin: 0 16px 8px; width: calc(100% - 32px); } }
.ввод-папки.новая.в-списке { display: none; }
.плюс-меню .меню-список { top: auto; bottom: calc(100% + 8px); right: 0; min-width: 200px; }
.плюс-меню .меню-список button { min-height: 44px; font-size: 14px; }
@media (max-width: 767px) { .ввод-папки.новая.в-списке { display: block; margin: 8px 16px 4px; width: calc(100% - 32px); } }

/* Новый документ — тоном строки, без слова «новое» (оно спорило со скрепкой); подсказка при наведении */
@media (pointer: fine) { .строка-документа .док-строка { column-gap: 56px; } }   /* место под скрепку: название не уходит под неё */
/* Выход из листа обратно к списку, откуда открыли */
.назад-к-списку { display: inline-flex; align-items: center; gap: 4px; margin: -4px 0 8px -6px; height: 28px; padding: 0 8px 0 2px; border-radius: 4px; font-size: 12.5px; color: var(--чернила-2); transition: background var(--быстро), color var(--быстро); }
.назад-к-списку:hover { background: var(--наведение); color: var(--чернила); }
.назад-к-списку .и { width: 16px; height: 16px; }
@media (pointer: coarse) { .назад-к-списку { height: 44px; padding-right: 12px; } }

/* ── Таблица Excel в окне листа ── */
.листы-книги { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; min-width: 0; }
.листы-книги button { flex: none; height: 30px; padding: 0 10px; border-radius: 4px 4px 0 0; font-size: 12.5px; color: var(--чернила-2); white-space: nowrap; transition: background var(--быстро), color var(--быстро); }
.листы-книги button:hover { background: var(--наведение); color: var(--чернила); }
.листы-книги button[aria-selected="true"] { background: var(--наведение); color: var(--чернила); font-weight: 600; box-shadow: inset 0 -2px 0 var(--акцент); }
.таблица-поле { padding: 14px 16px 24px; }
.строка-формулы { display: flex; align-items: center; gap: 10px; min-height: 34px; margin-bottom: 10px; padding: 0 10px; border: 1px solid var(--линия); border-radius: 4px; background: var(--бумага); color: var(--бумага-чернила); font-size: 13px; }
.строка-формулы b { min-width: 34px; padding-right: 10px; border-right: 1px solid var(--линия); font-weight: 600; font-variant-numeric: tabular-nums; color: color-mix(in oklab, var(--slate) 84%, var(--ivory)); }
.строка-формулы span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.строка-формулы i { font-style: normal; color: color-mix(in oklab, var(--slate) 66%, var(--ivory)); }
.строка-формулы code { font: 500 12.5px/1 ui-monospace, "SF Mono", Menlo, monospace; color: var(--bordeaux); }
.таблица-обёртка { overflow-x: auto; border: 1px solid var(--линия); border-radius: 4px; background: var(--бумага);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--onyx) 6%, transparent), 0 10px 28px -18px color-mix(in oklab, var(--onyx) 30%, transparent); }
.таблица-excel { border-collapse: separate; border-spacing: 0; min-width: 100%; font-size: 12.5px; color: var(--бумага-чернила); font-variant-numeric: tabular-nums; }
.таблица-excel th, .таблица-excel td { height: 30px; padding: 0 10px; border-right: 1px solid color-mix(in oklab, var(--platinum) 70%, var(--ivory)); border-bottom: 1px solid color-mix(in oklab, var(--platinum) 70%, var(--ivory)); white-space: nowrap; text-align: left; }
.таблица-excel thead th, .таблица-excel tbody th { position: sticky; background: color-mix(in oklab, var(--platinum) 30%, var(--ivory)); color: color-mix(in oklab, var(--slate) 72%, var(--ivory)); font-weight: 500; font-size: 11.5px; text-align: center; }
.таблица-excel thead th { top: 0; z-index: 2; }
.таблица-excel tbody th { left: 0; z-index: 1; min-width: 34px; padding: 0 6px; box-shadow: 1px 0 0 color-mix(in oklab, var(--platinum) 70%, var(--ivory)); }   /* выше ячеек: у них position: relative */
.таблица-excel .угол { left: 0; z-index: 3; }
.таблица-excel td { cursor: cell; position: relative; }
.таблица-excel td:hover { background: color-mix(in oklab, var(--platinum) 22%, transparent); }
.таблица-excel td.число { text-align: right; }
.таблица-excel .шапка-таблицы td { font-weight: 600; white-space: normal; min-width: 96px; vertical-align: bottom; padding-block: 6px; }
.таблица-excel .итог td { font-weight: 600; border-top: 1.5px solid color-mix(in oklab, var(--slate) 60%, var(--ivory)); }
.таблица-excel td.формула::after { content: ""; position: absolute; top: 0; right: 0; border: 4px solid transparent; border-top-color: color-mix(in oklab, var(--bordeaux) 70%, var(--ivory)); border-right-color: color-mix(in oklab, var(--bordeaux) 70%, var(--ivory)); }
.таблица-excel tr.в-строке td { background: color-mix(in oklab, var(--bordeaux) 6%, var(--ivory)); }
.таблица-excel tr.в-строке th, .таблица-excel th.в-колонке { background: color-mix(in oklab, var(--bordeaux) 16%, var(--ivory)); color: var(--bordeaux); font-weight: 600; }
.таблица-excel td.отмечена { background: color-mix(in oklab, var(--bordeaux) 12%, var(--ivory)); box-shadow: inset 0 0 0 2px var(--bordeaux); font-weight: 600; }
.таблица-поле .демо-пометка { margin-top: 10px; }
@media (pointer: coarse) { .листы-книги button { height: 40px; } .таблица-excel th, .таблица-excel td { height: 40px; } }

/* ── Как выглядят документы: формат в описи, скан, PDF с ЭП, Word, наш документ справа, карточка в разговоре ── */
.док-строка .листов { display: grid; justify-items: end; gap: 1px; }
.док-строка .формат { font-size: 10.5px; letter-spacing: .02em; color: var(--чернила-3); text-transform: none; }
.вид-скана { display: inline-flex; margin-left: auto; margin-right: 8px; border: 1px solid var(--рамка-поля); border-radius: 4px; overflow: hidden; }
.вид-скана button { height: 28px; padding: 0 10px; font-size: 12px; color: var(--чернила-2); }
.вид-скана button[aria-pressed="true"] { background: var(--кнопка); color: var(--кнопка-текст); }
@media (pointer: coarse) { .вид-скана button { height: 44px; min-width: 52px; } }
/* Скан: бумага не идеальная — серее, с зерном, чуть повёрнута, буквы мягче; цитата — подсветкой по координатам OCR */
.лист.скан-вид { background-color: #E9E6DE; transform: rotate(-0.35deg); font-family: "Times New Roman", Times, serif; color: #262421;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  box-shadow: inset 0 0 50px rgba(60, 50, 30, .10), 0 1px 2px rgba(0,0,0,.08), 0 10px 28px -18px rgba(0,0,0,.35); text-shadow: 0 0 .5px rgba(30,25,20,.55); }
.лист.скан-вид mark, .лист.скан-вид mark.видна { background: rgba(91, 26, 43, .16); box-shadow: 0 0 0 2px rgba(91, 26, 43, .16); }
/* PDF из программы — ровная белая страница; из суда — штамп электронной подписи */
.лист.pdf, .лист.word { background: #FDFCFA; font-family: "Times New Roman", Times, serif; color: #1A1A1A; }
.лист .эп { display: grid; gap: 2px; width: 70%; margin: 1.6em auto 0; padding: 8px 10px; border: 2px solid #2F4C8C; border-radius: 6px; color: #2F4C8C; font: 10.5px/1.35 Arial, sans-serif; text-align: center; }
.лист .эп b { margin-bottom: 3px; font-size: 11px; letter-spacing: .03em; }
/* Word: поля как в документе (слева 3 см), абзацный отступ, таблицы с рамкой — как напечатает Word */
.лист.word, .страницы .лист.pdf { aspect-ratio: 210 / 297; min-height: 0; padding: 9% 7% 9% 13%; font-size: 12.5px; line-height: 1.5; overflow: hidden; }
.лист.word p, .страницы .лист p { text-indent: 1.25cm; }
.лист .шапка-док { width: 56%; margin: 0 0 1.6em auto; font-size: .95em; line-height: 1.4; text-indent: 0; }
.лист h1 { margin: .4em 0 .1em; font: 700 1.15em/1.3 "Times New Roman", Times, serif; text-align: center; letter-spacing: .06em; }
.лист .подзаг { text-align: center; text-indent: 0 !important; margin-bottom: 1.2em; }
.лист h2 { margin: 1em 0 .4em; font: 700 1em/1.35 "Times New Roman", Times, serif; }
.лист h2.по-центру { text-align: center; }
.лист table { width: 100%; margin: .6em 0 1em; border-collapse: collapse; font-size: .95em; }
.лист th, .лист td { border: 1px solid #333; padding: 3px 6px; text-align: left; }
.лист th { background: #EEEAE2; font-weight: 700; }
.лист ol { margin: .4em 0 1em; padding-left: 2.2em; } .лист li { margin-bottom: .3em; text-align: justify; }
.лист .приложения { text-indent: 0 !important; margin-top: 1.4em; }
.лист .подпись-док { display: flex; justify-content: space-between; margin-top: 2.4em; }
.лист .тихо-док { color: #6A6660; font-size: .9em; text-indent: 0 !important; margin-top: 1.6em; }
.лист.водяной::before { content: "ВНУТРЕННЕЕ"; position: absolute; inset: 0; display: grid; place-items: center; transform: rotate(-32deg); font: 700 54px/1 Arial, sans-serif; letter-spacing: .12em; color: rgba(91, 26, 43, .07); pointer-events: none; }
.страницы { display: grid; gap: 18px; padding: 20px 20px 40px; }
/* Подписи и печать на скане */
.лист .подписи-сторон { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 1.8em; font-size: .9em; line-height: 1.35; }
.лист .подписи-сторон.один { grid-template-columns: 1fr; width: 60%; margin-left: auto; }
.лист .подписи-сторон small { display: block; font-size: .85em; color: #6A6660; text-transform: uppercase; letter-spacing: .06em; }
.лист .место-подписи { position: relative; display: block; height: 46px; margin: 4px 0 2px; border-bottom: 1px solid #555; }
.лист .подпись-рук { position: absolute; left: 6%; bottom: 2px; width: 62%; height: 44px; color: #1F3A8A; opacity: .85; }
.лист .печать { position: absolute; left: 30%; top: -34px; width: 104px; height: 104px; color: #2F4C9A; opacity: .78; transform: rotate(-14deg); mix-blend-mode: multiply; }
/* Наш документ справа: действия сразу под названием */
.действия-наш { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.действия-наш .и { width: 16px; height: 16px; }
.лист-шапка .внутр { display: inline-flex; align-items: center; gap: 4px; color: var(--акцент); }
.лист-шапка .внутр .и { width: 13px; height: 13px; }
.наш-открыть { text-align: left; color: var(--чернила); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color var(--быстро); cursor: pointer; }
.наш-открыть:hover { text-decoration-color: currentColor; }
/* Карточка документа в разговоре — как файл, который сделал Claude */
.карточка-документа { display: flex; align-items: center; gap: 4px; max-width: 460px; margin: 12px 0 4px; padding: 4px 6px 4px 4px; border: 1px solid var(--линия-сильная); border-radius: 8px; background: var(--панель); transition: border-color var(--быстро); }
.карточка-документа:hover { border-color: var(--чернила-3); }
.открыть-карточку { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 8px; text-align: left; border-radius: 6px; }
.значок-формата { flex: none; display: grid; place-items: center; width: 34px; height: 42px; border-radius: 3px; font: 700 13px/1 var(--ui); color: var(--ivory); background: var(--slate); }
.значок-формата.ф-pdf { background: var(--bordeaux); }
.текст-карточки { min-width: 0; display: grid; gap: 2px; }
.текст-карточки b { font-weight: 500; font-size: 14px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.текст-карточки small { font-size: 12px; color: var(--чернила-3); }
/* Подтверждение удаления папки */
.подтвердить-удаление { margin: 2px 8px 12px; padding: 12px; border: 1px solid var(--акцент); border-radius: 6px; background: var(--поле); color: var(--чернила); font-size: 13px; line-height: 1.45; }
.подтвердить-удаление p { margin: 0 0 10px; }
.подтвердить-удаление .ряд { display: flex; gap: 6px; flex-wrap: wrap; }
.подтвердить-удаление .кнопка-рамка, .подтвердить-удаление .кнопка-тихая { height: 32px; font-size: 12.5px; }
.кнопка-рамка.опасно { border-color: var(--акцент); color: var(--акцент); }
.кнопка-рамка.опасно:hover { background: var(--акцент); color: var(--ivory); }
@media (pointer: coarse) { .подтвердить-удаление .кнопка-рамка, .подтвердить-удаление .кнопка-тихая { height: 44px; } }

/* ── Свой файл справа: PDF — встроенным просмотрщиком браузера, фото — как скан ── */
.свой-файл { padding: 16px 20px 28px; }
.свой-pdf { display: block; width: 100%; height: calc(var(--экран) - 300px); min-height: 420px; border: 1px solid var(--линия); border-radius: 4px; background: #FDFCFA; }
.текст-файла { margin: 0; white-space: pre-wrap; font: 400 12.5px/1.55 var(--текст); }
.открыть-вложение { color: inherit; text-decoration: underline; text-decoration-color: color-mix(in oklab, currentColor 35%, transparent); text-underline-offset: 3px; cursor: pointer; }
.открыть-вложение:hover { text-decoration-color: currentColor; }

/* ── Оригинал и распознанный текст должны различаться с первого взгляда ── */
.оригинал { margin: 0; }
.оригинал figcaption, .пометка-текста { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 10px; font-size: 12.5px; line-height: 1.4; color: var(--чернила-2); }
.оригинал figcaption .и, .пометка-текста .и { width: 16px; height: 16px; flex: none; margin-top: 1px; color: var(--чернила-2); }
.оригинал figcaption b, .пометка-текста b { color: var(--чернила); font-weight: 600; }
/* Скан — как снимок бумаги: неровный свет, край сканера, мягкие буквы, лёгкий перекос */
.лист.скан-вид { transform: rotate(-0.7deg); filter: grayscale(.35) contrast(1.06); font-weight: 500; letter-spacing: .005em;
  background-color: #E4E0D6;
  background-image: linear-gradient(97deg, rgba(40,32,20,.16) 0, rgba(40,32,20,0) 7%, rgba(255,255,255,0) 70%, rgba(40,32,20,.09) 100%),
    radial-gradient(120% 90% at 35% 25%, rgba(255,255,255,.35), rgba(255,255,255,0) 60%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  text-shadow: 0 0 .6px rgba(25,20,15,.7), .3px .2px .8px rgba(25,20,15,.25); }
.лист.скан-вид > *:not(.номер-листа) { filter: blur(.25px); }
/* Место из ответа — маркер (ПРАВКИ_58; блок в конце файла) */
.лист.скан-вид mark.из-ответа { filter: none; }
/* Текст — без листа: обычный текст интерфейса, видно, что это расшифровка, а не документ */
.распознанный { padding: 2px 0 20px; }
.пометка-текста { padding: 10px 12px; border: 1px dashed var(--рамка-поля); border-radius: 6px; }
.текст-листа { padding: 4px 4px 0; font: 400 14px/1.65 var(--ui); color: var(--чернила); }
.текст-листа p { margin: 0 0 .8em; text-align: left; }
.текст-листа .заглавие { font-weight: 600; letter-spacing: .02em; }
.текст-листа mark { background: none; color: inherit; text-decoration: underline 2px var(--акцент); text-underline-offset: 3px; }
.текст-листа .подписи-сторон, .текст-листа .печать, .текст-листа .подпись-рук, .текст-листа .эп { display: none; }

/* ══ Кабинет: то, чего нет в прототипе ═══════════════════════════════════ */
[hidden] { display: none !important; }
.тихо { color: var(--чернила-3); }
.корень-вход { display: block; }
.вход .ошибка-входа { min-height: 1.4em; margin: 0; color: color-mix(in oklab, var(--bordeaux) 30%, var(--ivory)); font-size: 13.5px; }
.метка-рейки { font-size: 12.5px; color: var(--рейка-тихо); line-height: 1.45; margin: 0; }
.дело-строка .звёздочка-место { display: grid; place-items: center; }
.дело-строка .звёздочка { width: 14px; height: 14px; color: var(--рейка-тихо); fill: currentColor; }
.дело-строка[aria-current="true"] .звёздочка { color: var(--рейка-ярко); }
.статус-строка .снимки { color: var(--чернила-2); }
.статус-строка .снимки.плохо { color: var(--акцент); }
.меню-список button:disabled { color: var(--чернила-3); cursor: default; }
.меню-список button:disabled:hover { background: none; }

/* путь дела, пока оно складывается */
.шаги { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 16px; padding: 0; font-size: 13px; color: var(--чернила-3); }
.шаги li { display: inline-flex; align-items: center; gap: 7px; }
.шаги li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--чернила-3); }
.шаги li.пройден { color: var(--чернила-2); }
.шаги li.пройден::before { background: var(--чернила-2); border-color: var(--чернила-2); }
.шаги li.сейчас { color: var(--чернила); font-weight: 500; }
.шаги li.сейчас::before { border-color: var(--акцент); background: var(--акцент); }

/* ссылка на лист внутри текста разбора */
.источник-в-тексте { display: inline; font: inherit; color: var(--чернила-2); text-decoration: underline; text-decoration-color: var(--линия-сильная);
  text-underline-offset: .25em; white-space: nowrap; }
.источник-в-тексте:hover { color: var(--акцент); text-decoration-color: var(--акцент); }
.ответ strong, .текст-разбора strong { font-weight: 600; }

/* разбор: файлы в «Наших документах» */
.разбор .источники { padding: 0 18px 12px; margin-top: 0; }
.разбор-файлы { list-style: none; margin: 0; padding: 4px 18px 10px; display: grid; gap: 4px; }
.разбор-файл { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--чернила-2); flex-wrap: wrap; }
.разбор-файл .и { color: var(--чернила-3); }
.разбор-файл .кнопка-тихая { height: 32px; padding: 0 10px; }
.разбор-низ { align-items: center; }
.разбор-предложение { flex-basis: 100%; margin: 0 0 4px; font-size: 13.5px; color: var(--чернила-2); }
.разбор-итог { margin: 0; padding: 0 18px 14px; font-size: 13px; color: var(--чернила-2); }

/* ── загрузка документов ─────────────────────────────────────────────── */
.место-загрузки { margin: 0 0 22px; }
.пусто .место-загрузки { margin-top: 22px; }
.загрузка { border: 1px solid var(--линия-сильная); border-radius: 6px; padding: 14px 16px 16px; background: color-mix(in oklab, var(--поле) 70%, var(--панель)); }
.загрузка-шапка { display: flex; align-items: center; justify-content: space-between; margin: -4px -6px 10px 0; }
.загрузка-шапка h2 { margin: 0; font: 600 19px/1.25 var(--заголовок); }
.зона { display: grid; justify-items: center; gap: 4px; padding: 22px 16px; border: 1px dashed var(--рамка-поля); border-radius: 6px; text-align: center;
  cursor: pointer; color: var(--чернила-2); transition: border-color var(--быстро), background var(--быстро); }
.зона:hover, .зона.над, .перетаскивают .зона { border-color: var(--чернила-2); background: var(--наведение); }
.зона.над { border-style: solid; border-color: var(--акцент); }
.зона-значок .и { width: 24px; height: 24px; color: var(--чернила-3); }
.зона-главное { font-size: 14.5px; font-weight: 500; color: var(--чернила); }
.зона-ещё { font-size: 13px; }
.зона-тихо { font-size: 12px; color: var(--чернила-3); max-width: 52ch; line-height: 1.45; }
.зона.телефонная { cursor: default; padding: 14px; }
.зона.телефонная:hover { background: none; border-color: var(--рамка-поля); }
.ссылка { color: var(--чернила); text-decoration: underline; text-decoration-color: var(--линия-сильная); text-underline-offset: .25em; }
.ссылка:hover { color: var(--акцент); text-decoration-color: var(--акцент); }
.файлы { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 2px; }
.файл { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 2px 10px; padding: 8px 0 6px; border-bottom: 1px solid var(--линия); font-size: 13.5px; }
.файл-значок .и { color: var(--чернила-3); display: block; }
.файл-имя { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--чернила); }
.файл-размер { font-size: 12px; color: var(--чернила-3); }
.файл .убрать { width: 32px; height: 32px; }
.файл-статус { grid-column: 2 / -1; font-size: 12px; color: var(--чернила-3); }
.файл.ок .файл-статус { color: var(--чернила-2); }
.файл.плохо .файл-статус, .файл.связь .файл-статус { color: var(--акцент); }
.файл .полоса { grid-column: 2 / -1; height: 2px; background: var(--линия); position: relative; overflow: hidden; }
.файл .полоса i { position: absolute; inset: 0 auto 0 0; background: var(--чернила); transition: width var(--быстро) linear; }
.файл.ок .полоса { display: none; }
.загрузка-сводка, .загрузка-пометка { margin: 10px 0 0; font-size: 12.5px; color: var(--чернила-2); }
.загрузка-пометка { padding: 8px 10px; border: 1px solid var(--линия); border-radius: 4px; background: var(--панель); }
.отправить-файлы { margin-top: 12px; }
.загрузка-итог { margin: 8px 0 0; font-size: 13px; color: var(--чернила-2); min-height: 0; }
.загрузка-итог:empty { display: none; }
.загрузка-итог.плохо { color: var(--акцент); }
.загрузка-итог.ок { color: var(--чернила); }
.загрузка.идёт .зона { opacity: .6; pointer-events: none; }

/* ── опись: перенос документа ────────────────────────────────────────── */
.категория li.док { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
.категория li.док > .док-строка { padding-right: 8px; }
.док .перенести { align-self: center; margin-right: 10px; width: 32px; height: 32px; color: var(--чернила-3); opacity: 0; transition: opacity var(--быстро); }
.док:hover .перенести, .док .перенести:focus-visible, .док .перенести[aria-expanded="true"] { opacity: 1; }
@media (hover: none), (pointer: coarse) { .док .перенести { opacity: 1; } }
.док.подсвечен > .док-строка { background: var(--акцент-фон); }
.перенос { grid-column: 1 / -1; margin: 0 20px 10px; padding: 10px 12px 8px; border: 1px solid var(--линия-сильная); border-radius: 6px; background: var(--поле); }
.перенос > p { margin: 0 0 8px; font-size: 12.5px; color: var(--чернила-2); }
.перенос-ряд { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.перенос-ряд .кнопка-рамка { height: 32px; padding: 0 10px; font-size: 12.5px; }
.перенос .кнопка-тихая { height: 32px; padding: 0 8px; margin-left: -8px; font-size: 12.5px; }
.перенос .ошибка { margin: 6px 0 0; font-size: 12.5px; }

/* ── лист: загрузка, масштаб ─────────────────────────────────────────── */
.лист-поле { overflow: auto; }
.лист-поле:focus { outline: none; }
.лист.скан { background: var(--бумага); }
.лист.скан.грузится { min-height: 420px; display: grid; place-items: center; }
.лист.скан.грузится .не-набран { margin: 0; }
.лист.скан.приближен { width: max-content; min-width: 100%; }
.лист.скан.приближен img { max-width: none; }
.лист.скан img { cursor: zoom-in; }
.лист.скан.приближен img { cursor: zoom-out; }
.лист-нет { padding: 32px 8px; color: var(--чернила-2); font-size: 13.5px; display: grid; gap: 12px; justify-items: start; }
.лист-нет p { margin: 0; }
.листалка a.кнопка-тихая { text-decoration: none; }

/* ── «Наши документы» ────────────────────────────────────────────────── */
.наш .кнопки a.кнопка-тихая { text-decoration: none; }

/* ── форма: прежнее название, назад ──────────────────────────────────── */
.форма .прежнее { margin: -4px 0 16px; font-size: 13px; color: var(--чернила-3); }
.форма .назад-формы { margin: 0 0 8px -12px; }
.форма > .ошибка { margin: -4px 0 12px; font-size: 13.5px; }
.форма input::placeholder { color: var(--чернила-3); }

/* ── подсказка при наведении на дело (только мышь) ───────────────────── */
.подсказка-дела { position: fixed; z-index: 70; width: min(340px, calc(100vw - 16px)); padding: 12px 14px 10px; pointer-events: none;
  background: var(--поле); color: var(--чернила); border: 1px solid var(--линия-сильная); border-radius: 6px;
  box-shadow: 0 12px 32px -12px color-mix(in oklab, var(--onyx) 35%, transparent); font-size: 13px; line-height: 1.45;
  animation: смена var(--быстро) ease-out; }
.подсказка-дела[hidden] { display: none; }
.подсказка-дела .пд-кто { margin: 0 0 8px; font: 600 17px/1.2 var(--заголовок); }
.подсказка-дела h3 { margin: 8px 0 2px; font: 500 11.5px/1.4 var(--ui); color: var(--чернила-3); letter-spacing: .02em; }
.подсказка-дела .пд-текст { margin: 0; font: 400 14.5px/1.45 var(--текст); }
.подсказка-дела .пд-текст.тихо { font-style: italic; color: var(--чернила-3); }
.подсказка-дела .пд-низ { margin: 10px 0 0; padding-top: 8px; border-top: 1px solid var(--линия); font-size: 12px; color: var(--чернила-3); }

/* ── всплывающая строка ──────────────────────────────────────────────── */
.тост { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); translate: -50% 0; z-index: 80; max-width: min(520px, calc(100vw - 32px));
  padding: 10px 14px; background: var(--кнопка); color: var(--кнопка-текст); border-radius: 6px; font-size: 13.5px; line-height: 1.4;
  box-shadow: 0 12px 32px -12px color-mix(in oklab, var(--onyx) 45%, transparent); animation: появление var(--плавно) var(--кривая) both; }
.тост[hidden] { display: none; }
.тост.плохо { background: var(--bordeaux); color: var(--ivory); }
@media (max-width: 767px) { .тост { bottom: calc(var(--над-краем) + 72px + env(safe-area-inset-bottom)); } }

/* ── съёмка (модуль A01) — поверх всего ──────────────────────────────── */
.съёмка-слой { position: fixed; inset: 0; z-index: 90; background: var(--onyx); color: var(--ivory); overflow: auto; }
body.съёмка-открыта { overflow: hidden; }

/* перетаскивание файлов в окно — подсветить, куда бросать */
body.перетаскивают .центр { box-shadow: inset 0 0 0 2px var(--акцент); }

@media (max-width: 767px) {
  .загрузка { padding: 12px; }
  .перенос { margin: 0 16px 10px; }
  .док .перенести { width: 44px; height: 44px; margin-right: 4px; }
}
@media (pointer: coarse) {
  .файл .убрать, .перенос-ряд .кнопка-рамка, .перенос .кнопка-тихая, .разбор-файл .кнопка-тихая { min-height: 44px; min-width: 44px; }
  .док .перенести { width: 44px; height: 44px; }
  .источник { min-height: 44px; align-items: center; }
  .вкладка { min-width: 44px; justify-content: center; }
  .рейка-поиск .микрофон-поиска { width: 44px; height: 44px; right: 0; }
  .рейка-поиск input { padding-right: 48px; }
  .источник .и { margin-top: 0; align-self: center; }
}

/* ── вопрос по документам: строка описи с двумя значками, плашки, режим «Выбрать» ── */
.категория li.док.строка-документа { display: flex; align-items: center; }
.категория li.док > .док-строка { flex: 1; min-width: 0; }
.категория li.док > .перенос { flex-basis: 100%; }
.категория li.док { flex-wrap: wrap; }
.док .спросить-док { position: static; translate: none; width: 32px; height: 32px; margin-right: 2px; opacity: 0; transition: opacity var(--быстро); color: var(--чернила-3); }
.док:hover .спросить-док, .док .спросить-док:focus-visible { opacity: 1; }
@media (hover: none), (pointer: coarse) { .док .спросить-док { opacity: 1; width: 44px; height: 44px; } }
.вложение.плохо { border-color: var(--акцент); }
.вложение.плохо small { color: var(--акцент); }
.совет-вложений { flex-basis: 100%; font-size: 12px; color: var(--чернила-3); padding: 2px 4px 0; }
.опись-итог .справа { display: inline-flex; align-items: center; gap: 14px; }
.опись-итог .справа button[aria-pressed="true"] { color: var(--акцент); text-decoration-color: var(--акцент); }
.наш .кнопки .кнопка-тихая[data-д="спросить-док"] { color: var(--чернила-2); }
.лист.скан { max-width: 820px; margin-inline: auto; }

/* ── поведение страницы (ПРАВКИ_17, п. 20–21, 25–26) ── */
html, body { overflow: hidden; overscroll-behavior: none; }
.лента, .панель-тело, .дела-список, .лист-поле { overscroll-behavior: none; position: relative; scroll-behavior: auto; }
.обмен { animation: none; }
.обмен.впервые { animation: появление var(--плавно) var(--кривая) both; }
.панель-тело { animation: none; }
.панель-тело.впервые { animation: смена var(--быстро) ease-out; }
html[data-крупно] .корень { zoom: 1.12; }
:root { --кнопка: var(--slate); }                        /* светлая тема: Onyx на Ivory — слишком тяжело */
html[data-тема="тёмная"] { --кнопка: var(--ivory); }
.назад-к-списку { display: inline-flex; align-items: center; gap: 4px; margin: -4px 0 8px -6px; height: 28px; padding: 0 8px 0 2px; border-radius: 4px; font-size: 12.5px; color: var(--чернила-2); transition: background var(--быстро), color var(--быстро); }
.назад-к-списку:hover { background: var(--наведение); color: var(--чернила); }
.назад-к-списку .и { width: 16px; height: 16px; }
@media (pointer: coarse) { .назад-к-списку { height: 44px; padding-right: 12px; } }

.лента { scroll-padding-top: 76px; }                      /* прилипшая «шапка экрана» не закрывает то, к чему прокрутили */

/* ── ПРАВКИ_18: документ «как выглядит» на настоящих файлах ── */
/* скан и фото — картинкой; маркер «место из ответа» — прямоугольники по словам OCR поверх картинки */
.картинка-листа { position: relative; }
.картинка-листа img { display: block; width: 100%; height: auto; }
.лист.скан.приближен .картинка-листа { min-width: 100%; }
.место-ярлык { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 10px; padding: 8px 10px; border-left: 3px solid var(--bordeaux); border-radius: 0 4px 4px 0;
  background: color-mix(in oklab, var(--bordeaux) 8%, transparent); font-size: 12.5px; line-height: 1.45; color: var(--чернила); }
.место-ярлык .и { width: 15px; height: 15px; flex: none; margin-top: 2px; color: var(--акцент); }
/* страницы подряд (Word, «Наши», свои файлы): картинки страниц, внутренний — водяной знак поверх */
.страницы .страница-подряд { max-width: 820px; width: 100%; margin-inline: auto; }
.лист.картинкой { padding: 0; min-height: 0; overflow: hidden; }
.лист.картинкой.грузится { aspect-ratio: 210 / 297; display: grid; place-items: center; }
.лист.картинкой.грузится .не-набран { margin: 0; }
.лист.картинкой .номер-листа { bottom: 6px; }
.лист.водяной { position: relative; }
.лист.водяной::before { z-index: 1; color: rgba(91, 26, 43, .12); }
.лист.текстом { padding: 28px 32px; }
.готовится-просмотр, .просмотр-не-получился { max-width: 520px; }
.готовится-просмотр b, .просмотр-не-получился b { color: var(--чернила); }
.свой-файл .лист.скан { max-width: 820px; margin-inline: auto; }
/* опись: формат у строки, «Новые — ждут разбора» */
.док-строка .листов .формат { display: block; }
.новые-файлы summary span { color: var(--чернила-2); }
/* разбор: сохранённое — карточками документа */
.разбор-файлы { display: grid; gap: 6px; padding: 4px 18px 12px; }
.разбор-файлы-заг { margin: 0; font-size: 12px; color: var(--чернила-3); }
.разбор-файлы .карточка-документа { margin: 0; }
.карточка-документа a.кнопка-тихая { text-decoration: none; }
.значок-формата.ф-word { background: #2B4F8C; }
.значок-формата.ф-excel { background: #2F6B47; }
/* таблица: показать ещё, обрезано */
.ещё-строк { margin-top: 10px; }
.таблица-поле .обрезано { margin: 10px 0 0; color: var(--акцент); }
.таблица-поле > .тихо { margin: 10px 0 0; font-size: 12px; }
.листы-книги small { font-weight: 400; color: var(--чернила-3); }
/* выпадающий: значок папки в пункте */
.выпадающий .и-м { width: 16px; height: 16px; flex: none; color: var(--чернила-2); }
.выпадающий .значок-эмодзи.и-м, .выпадающий .значок-картинка.и-м { width: 16px; height: 16px; font-size: 14px; }
/* папка: пустая, подсказка в рейке */
.плюс-меню { position: relative; }
@media (pointer: coarse) { .место-ярлык { font-size: 13.5px; } }
.действия-наш a, .действия-наш a:hover { text-decoration: none; }
.тост { pointer-events: none; }                          /* строка-сообщение не перехватывает касания у того, что под ней */
.вопрос.без-текста { font-weight: 400; font-style: italic; color: var(--чернила-3); }

/* ── Вход и «Доступ закрыт» (решение № 21, договор 1.20): Onyx, знак G&P, поле кода крупно ─────────────── */
.вход .карта-входа { width: min(400px, 100%); display: grid; gap: 14px; }
.вход .знак-gp { justify-self: start; display: grid; place-items: center; height: 56px; min-width: 108px; padding: 0 16px;
  border: 1px solid color-mix(in oklab, var(--platinum) 40%, var(--onyx)); font: 500 26px/1 var(--знак); letter-spacing: .12em; color: var(--ivory); }
.вход h1 { margin: 14px 0 0; font: 600 32px/1.15 var(--заголовок); }
.вход .подпись-входа { font: 400 18px/1.45 var(--текст); color: color-mix(in oklab, var(--platinum) 88%, var(--ivory)); }
.вход .метка-входа { margin-top: 10px; font: 500 13px/1.3 var(--ui); letter-spacing: .04em; color: color-mix(in oklab, var(--platinum) 82%, var(--onyx)); }
.вход .поле-кода { height: 64px; padding: 0 16px; font: 600 28px/1 var(--ui); letter-spacing: .14em; text-transform: uppercase; text-align: center;
  font-variant-numeric: tabular-nums; }
.вход .поле-кода::placeholder { color: color-mix(in oklab, var(--platinum) 38%, var(--onyx)); letter-spacing: .14em; }
.вход .поле-почты { height: 52px; font-size: 17px; letter-spacing: 0; }
.вход input:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklab, var(--platinum) 30%, transparent); }
.вход .кнопка-главная { height: 52px; font-size: 16px; }
.вход .кнопка-главная:focus-visible, .вход .ссылка-входа:focus-visible { outline: 2px solid var(--platinum); outline-offset: 3px; }
.вход .кнопка-главная[disabled] { opacity: .7; cursor: progress; }
.вход .ссылка-входа { justify-self: start; min-height: 44px; padding: 0; border: 0; background: none; color: var(--ivory); font: 500 15px/1.3 var(--ui);
  text-decoration: underline; text-underline-offset: 4px; text-decoration-color: color-mix(in oklab, var(--platinum) 50%, var(--onyx)); cursor: pointer; }
.вход .ссылка-входа:hover { text-decoration-color: var(--ivory); }
.вход .тихо-входа { font-size: 13.5px; line-height: 1.45; color: color-mix(in oklab, var(--platinum) 72%, var(--onyx)); }
.вход .ошибка-входа { font-size: 14px; }
.вход.закрыто .карта-входа { width: min(460px, 100%); }
.вход .причина-закрыто, .вход .контакт-закрыто { display: grid; gap: 4px; padding: 12px 14px; border-left: 2px solid var(--bordeaux);
  background: color-mix(in oklab, var(--onyx) 80%, var(--slate)); color: var(--ivory); font: 400 17px/1.4 var(--текст); }
.вход .контакт-закрыто { border-left-color: color-mix(in oklab, var(--platinum) 50%, var(--onyx)); font-size: 16px; }
.вход .причина-закрыто small, .вход .контакт-закрыто small { font: 500 12px/1.3 var(--ui); letter-spacing: .04em; color: color-mix(in oklab, var(--platinum) 78%, var(--onyx)); }
.вход .выгрузка-закрыто { display: grid; gap: 10px; margin-top: 4px; }
@media (max-width: 420px) {
  .вход { align-items: start; padding: 48px 16px calc(24px + env(safe-area-inset-bottom)); }
  .вход h1 { font-size: 28px; }
  .вход .поле-кода { font-size: 24px; letter-spacing: .1em; }
}

/* ── Вход и устройства (настройки), подтверждение входа, «Условия и согласие» — решения № 23, 25, 26 (ПРАВКИ_22) ── */
.устройства { list-style: none; margin: 6px 0 0; padding: 0; }
.устройства li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid color-mix(in oklab, var(--линия) 60%, transparent); }
.устройства li:first-child { border-top: 0; }
.устройства li > .и { width: 18px; height: 18px; flex: none; color: var(--чернила-2); }
.устройства li > div { flex: 1; min-width: 0; display: grid; gap: 2px; }
.устройства b { font-weight: 500; font-size: 14px; overflow-wrap: anywhere; }
.устройства small { font-size: 12.5px; color: var(--чернила-3); }
.действия-устройств { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 0 8px; }
.подключение { margin: 10px 0 12px; padding: 16px; border: 1px solid var(--линия-сильная); border-radius: 8px; background: var(--панель); }
.подключение.компьютер { display: grid; grid-template-columns: 200px 1fr; gap: 20px; align-items: start; }
.подключение .qr { display: block; width: 200px; height: 200px; border-radius: 6px; }
.подключение .шаги { margin: 0 0 10px; font-size: 13.5px; line-height: 1.5; }
.подключение .шаги.второй { margin-top: 14px; }
.короткий-код { margin: 0 0 6px; font: 600 32px/1.1 var(--ui); letter-spacing: .12em; font-variant-numeric: tabular-nums; color: var(--чернила); }
.подключение .тихо { margin: 0 0 12px; font-size: 12.5px; color: var(--чернила-3); }
.подключение .ряд { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 767px) {
  .подключение.компьютер { grid-template-columns: 1fr; }
  .короткий-код { font-size: 40px; }
  .устройства li .кнопка-тихая { height: 44px; }
}

/* экран входа: «У меня уже есть вход на другом устройстве» */
.вход .связь-входа.с-qr { width: min(440px, 100%); }
.вход .свой-qr { display: grid; justify-items: start; gap: 10px; margin-top: 4px; }
.вход .свой-qr .qr, .вход .свой-qr .qr-место { width: 208px; height: 208px; border-radius: 6px; }
.вход .свой-qr .qr-место { border: 1px dashed color-mix(in oklab, var(--platinum) 40%, var(--onyx)); }
.вход .свой-qr .подпись-входа { font-size: 16.5px; }
.вход .кнопка-входа-доп { height: 48px; background: none; color: var(--ivory); border-color: color-mix(in oklab, var(--platinum) 55%, var(--onyx)); font-size: 15px; }
.вход .кнопка-входа-доп:hover { border-color: var(--ivory); }
.вход .число-связи { margin: 6px 0 2px; font: 600 76px/1 var(--ui); letter-spacing: .1em; color: var(--ivory); font-variant-numeric: tabular-nums; }

/* плашка «Войти на компьютере …?» — поверх любого экрана, пока юрист не ответит */
.плашка-входа { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 16px;
  background: color-mix(in oklab, var(--onyx) 55%, transparent); }
.плашка-входа[hidden] { display: none; }
.плашка-карта { width: min(420px, 100%); display: grid; gap: 12px; padding: 22px 22px 16px; border-radius: 10px;
  background: var(--поле); color: var(--чернила); border: 1px solid var(--линия-сильная); box-shadow: 0 18px 48px rgb(14 16 20 / .28); }
.плашка-знак .и { width: 22px; height: 22px; color: var(--акцент); }
.плашка-карта h2 { margin: 0; font: 600 23px/1.25 var(--заголовок); overflow-wrap: anywhere; }
.плашка-предупреждение { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 12px; border-left: 2px solid var(--акцент);
  background: var(--акцент-фон); font-size: 14px; line-height: 1.45; }
.плашка-предупреждение .и { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--акцент); }
.плашка-вопрос { margin: 4px 0 0; font-size: 14px; color: var(--чернила-2); }
.плашка-числа { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.плашка-числа .число { height: 64px; border: 1px solid var(--рамка-поля); border-radius: 6px; background: var(--ввод); color: var(--чернила);
  font: 600 28px/1 var(--ui); letter-spacing: .06em; font-variant-numeric: tabular-nums; cursor: pointer; }
.плашка-числа .число:hover { border-color: var(--чернила); background: var(--наведение); }
.плашка-числа .число:focus-visible { outline: 2px solid var(--акцент); outline-offset: 2px; }
.плашка-числа .число[disabled] { opacity: .6; cursor: progress; }
.плашка-низ { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.плашка-низ .кнопка-тихая { height: 44px; padding: 0 8px; margin-left: -8px; }
.плашка-низ .тихо { font-size: 12.5px; color: var(--чернила-3); font-variant-numeric: tabular-nums; }

/* «Условия и согласие»: знак G&P на Onyx, текст — лист Ivory, читается с телефона */
.вход.согласие { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; place-items: stretch; justify-content: center;
  grid-template-columns: min(760px, 100%); gap: 16px; height: var(--экран); min-height: 0; padding: 24px 24px calc(20px + env(safe-area-inset-bottom)); }
.согласие-шапка { display: flex; align-items: center; gap: 18px; }
.согласие-шапка .знак-gp { flex: none; }
.согласие-шапка h1 { margin: 0; font: 600 30px/1.15 var(--заголовок); color: var(--ivory); }
.вход .согласие-версия { margin: 4px 0 0; font-size: 13px; line-height: 1.4; color: color-mix(in oklab, var(--platinum) 80%, var(--onyx)); }
.согласие-текст { overflow: auto; overscroll-behavior: contain; padding: 26px 32px 32px; border-radius: 6px; background: var(--ivory); color: var(--onyx);
  font: 400 18px/1.6 var(--текст); -webkit-overflow-scrolling: touch; }
.согласие-текст:focus-visible { outline: 2px solid var(--platinum); outline-offset: 3px; }
.вход .согласие-текст p { margin: 0 0 .8em; color: var(--onyx); }
.согласие-текст h2, .согласие-текст h3 { margin: 1.3em 0 .4em; font: 600 22px/1.25 var(--заголовок); color: var(--onyx); }
.согласие-текст h3:first-child, .согласие-текст p:first-child { margin-top: 0; }
.согласие-текст ul { margin: 0 0 .8em; padding-left: 1.2em; }
.согласие-текст li { margin: 0 0 .45em; }
.согласие-текст strong { font-weight: 600; }
.вход .согласие-текст .тихо { color: var(--slate); }
/* реквизиты G&P (решение № 27): под текстом условий и в «О приложении»; «уточняется» — серым.
   Класс .реквизиты-gp, не .реквизиты: тот — строка реквизитов в шапке дела (на телефоне обрезается в две строки) */
.реквизиты-gp { margin-top: 1.4em; padding-top: .9em; border-top: 1px solid color-mix(in oklab, currentColor 18%, transparent); }
.реквизиты-gp h3 { margin-top: 0; }
.реквизит { margin: 0 0 .3em; }
.вход .согласие-текст .реквизит { margin: 0 0 .3em; }
.подпись-реквизита { font-weight: 600; }
.уточняется { color: var(--чернила-3); }
.вход .согласие-текст .уточняется { color: color-mix(in oklab, var(--slate) 72%, var(--ivory)); }
.реквизиты-настроек > div { flex: 1; min-width: 0; }
.реквизиты-настроек .реквизиты-gp { margin-top: 8px; padding-top: 8px; font-size: 14px; overflow-wrap: anywhere; }
.согласие-низ { display: grid; gap: 12px; }
.согласие-низ .ряд { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.согласие-низ .кнопка-главная { min-width: 180px; }
.галочка-согласия { display: flex; gap: 12px; align-items: flex-start; color: var(--ivory); font-size: 15px; line-height: 1.45; cursor: pointer; }
.вход .галочка-согласия input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; padding: 0; border: 0; background: none; box-shadow: none; accent-color: var(--ivory); }
@media (max-width: 767px) {
  .вход.согласие { padding: 16px 0 calc(12px + env(safe-area-inset-bottom)); gap: 12px; grid-template-columns: 100%; }
  .согласие-шапка, .согласие-низ { padding: 0 16px; }
  .согласие-шапка .знак-gp { height: 44px; min-width: 84px; font-size: 20px; }
  .согласие-шапка h1 { font-size: 26px; }
  .согласие-текст { padding: 20px 16px 28px; border-radius: 0; font-size: 17px; }
  .согласие-низ .кнопка-главная { flex: 1; }
}

/* ── Волна 2 (ПРАВКИ_26): календарь и расчёт в рабочем кабинете — дополнения к блокам прототипа выше ── */
/* календарь в рейке — та же строка каркаса, что «заседания» (ПРАВКИ_19): тень — только пока ниже есть дела */
.мини-календарь.заседания, .неделя.заседания { box-shadow: none; font-size: 12.5px; }
.мини-календарь.заседания.под-ней-дела, .неделя.заседания.под-ней-дела { box-shadow: 0 -10px 12px -10px color-mix(in oklab, var(--onyx) 35%, transparent); }
.мк-строка span { min-width: 0; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.запись-дня .проверить { color: var(--чернила-2); font-style: italic; }
.запись-дня .откуда-строка { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 4px; }
.запись-дня .кнопка-тихая.откуда-события { height: auto; padding: 0; font-size: 12px; color: var(--чернила-3); text-decoration: underline; text-decoration-color: var(--линия-сильная); text-underline-offset: .25em; background: none; }
.запись-дня .кнопка-тихая.откуда-события:hover { color: var(--акцент); }
.ряд-записи { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 4px; }
.ряд-записи .кнопка-рамка { height: 32px; }
.ряд-записи .кнопка-тихая { font-size: 12.5px; }
.окно-календаря .ок-день:focus-visible { outline-offset: -2px; }
.ics-ссылка { display: flex; gap: 8px; margin: 2px 0 6px; }
.ics-ссылка input { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font: 12.5px/1 var(--ui); }
.ics-пояснение { margin: 0 0 12px; font-size: 12.5px; line-height: 1.45; }
.в-календарь { display: inline-flex; align-items: center; gap: 6px; }
.в-календарь .и { width: 16px; height: 16px; }

/* карточка расчёта: поля, итог от модуля A17, таблица периодов */
.обмен .расчёт { margin-top: 4px; }
.поле-расчёта .выпадающий-кнопка { height: 38px; padding: 0 10px; font-size: 14px; }
.поле-расчёта { min-width: 0; }
.поле-расчёта input:not([type="checkbox"]), .поле-расчёта .выпадающий { width: 100%; min-width: 0; box-sizing: border-box; }
.поле-расчёта.флаг { align-content: end; }
.поле-расчёта.флаг > span { display: inline-flex; align-items: center; gap: 10px; min-height: 38px; font-size: 13px; color: var(--чернила); cursor: pointer; }
.поле-расчёта input::placeholder { color: var(--чернила-3); }
.итог-место > p { margin: 0; padding: 14px 18px; border-top: 1px solid var(--линия); font-size: 13.5px; }
.итог-расчёта .без-моратория b { font: 600 18px/1.2 var(--заголовок); color: var(--чернила-2); }
.итог-расчёта .формула { grid-column: 1 / -1; }
.итог-расчёта .формула b { font-weight: 400; font-size: 13.5px; overflow-wrap: anywhere; }
.таблица-расчёта { grid-column: 1 / -1; overflow-x: auto; }
.таблица-расчёта table { width: 100%; border-collapse: collapse; font-size: 13px; }
.таблица-расчёта th { text-align: left; font-weight: 500; font-size: 12px; color: var(--чернила-3); padding: 4px 8px 6px 0; border-bottom: 1px solid var(--линия); }
.таблица-расчёта td { padding: 6px 8px 6px 0; border-bottom: 1px solid color-mix(in oklab, var(--линия) 60%, transparent); vertical-align: top; }
.таблица-расчёта td small { display: block; font-size: 11.5px; color: var(--чернила-3); }
.таблица-расчёта th:nth-child(n+2), .таблица-расчёта td:nth-child(n+2) { text-align: right; white-space: nowrap; }
.таблица-расчёта tr.особая td { color: var(--чернила-2); }
.сверка { display: flex; align-items: center; gap: 6px; }
.сверка .и { width: 15px; height: 15px; stroke-width: 2; flex: none; }
.оговорки { grid-column: 1 / -1; font-size: 13px; }
.оговорки summary { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; color: var(--чернила-2); list-style: none; }
.оговорки summary::-webkit-details-marker { display: none; }
.оговорки summary .и { width: 14px; height: 14px; transition: rotate var(--быстро) var(--кривая); }
.оговорки[open] summary .и { rotate: 180deg; }
.оговорки ul { margin: 6px 0 0; padding-left: 18px; color: var(--чернила-2); line-height: 1.45; }
.низ-расчёта .разбор-низ { padding: 12px 18px 14px; border-top: 1px solid var(--линия); display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.низ-расчёта .разбор-файлы { flex-basis: 100%; }
.низ-расчёта .разбор-итог { margin: 0; padding: 0 18px 14px; font-size: 13px; color: var(--чернила-2); }
@media (max-width: 767px) {
  .поля-расчёта { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 12px 14px; }
  .итог-расчёта, .низ-расчёта .разбор-низ { padding-left: 14px; padding-right: 14px; }
  .расчёт-шапка { padding: 12px 14px; }
  .поле-расчёта input, .поле-расчёта select { height: 44px; font-size: 16px; }
}
@media (min-width: 768px) and (max-width: 1023px) { .ок-тело { grid-template-columns: minmax(0, 1fr) 250px; } .ок-день .событие { padding: 2px 4px; } }
/* ПРАВКИ_26: зелёный — только «сходится» в расчёте и «Шаблон готов»; «В календаре» и «Подключено» — нейтрально */
.в-календаре { color: var(--чернила-2); }
.подключено { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 500; color: var(--чернила-2); }
.подключено .и, .в-календаре .и { width: 15px; height: 15px; stroke-width: 2; color: var(--чернила); }
/* окно посередине держится на translate(-50%, -50%): общий кадр «появление» анимирует translate и на время анимации
   сдвигал окно в угол — у окна свой кадр, с тем же центрированием; на телефоне окно во весь экран — общий кадр */
@keyframes появление-окна { from { opacity: 0; translate: -50% calc(-50% + 8px); } }
.окно-календаря.впервые { animation: появление-окна var(--плавно) var(--кривая); }
@media (max-width: 767px) { .окно-календаря.впервые { animation: появление var(--плавно) var(--кривая); } }
@media (prefers-reduced-motion: reduce) { .окно-календаря.впервые, .затемнение.впервые { animation: none; } }
/* телефон: ряд фишек напоминаний и цветов переносится внутри строки настроек, а не вылезает за край */
@media (max-width: 767px) {
  .строка-настройки .справа:has(.выбор-напоминаний, .цвета, .выбор) { flex: 1 1 100%; min-width: 0; }   /* .выбор — 360 + крупный текст (T-459) */
  .строка-настройки .выбор { max-width: 100%; }
  .строка-настройки .выбор-напоминаний, .строка-настройки .цвета { justify-content: flex-start; max-width: 100%; }
}

/* ── ПРАВКИ_27 (Fable T-411 № 3, 4) ───────────────────────────────────────────────────────────────── */
/* «Скан | Текст» не сжимается и не режется; «Лист N из M» — одной строкой. На касании масштаб — двойным касанием или
   щипком, кнопок «−/+» нет (в прототипе их и нет: ←, →, Скачать) — иначе строка шире панели телефона. */
.вид-скана { flex: none; }
.листалка { flex-wrap: wrap; row-gap: 6px; }            /* узко и «Крупный текст»: кнопки — второй строкой, не за край */
.листалка .номер { white-space: nowrap; }
@media (pointer: coarse) { .листалка [data-д="мельче"], .листалка [data-д="крупнее"] { display: none; }
  .вид-скана { margin-right: 4px; } .вид-скана button { min-width: 48px; } }
@media (max-width: 767px) { .лист-шапка { padding-left: 16px; padding-right: 16px; } }
/* «Скрыть список дел» работает только при рейке сбоку (≥ 1024): на телефоне и в шторке её нет */
@media (max-width: 1023px) { .свернуть-рейку { display: none; } }
.история-раньше { display: block; margin: 4px auto 8px; font-size: 13px; color: var(--чернила-2); }

/* ── ПРАВКИ_28 (договор v1.22, решения № 28, 29) ─────────────────────────────────────────────────────── */
/* жёлтое — тот же жёлтый, что в .docx и PDF (выделение Word), чтобы юрист узнал места глазами */
:root { --жёлтое: #FFF200; --жёлтое-чернила: var(--onyx); --жёлтое-край: color-mix(in oklab, #C9A400 70%, var(--ivory)); }
html[data-тема="тёмная"] { --жёлтое: #F2DC3A; --жёлтое-край: color-mix(in oklab, #F2DC3A 55%, var(--onyx)); }
.жёлтое { background: var(--жёлтое); color: var(--жёлтое-чернила); padding: 0 3px; border-radius: 2px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.дописать { grid-column: 2; margin-top: 2px; }
.карточка-документа + .дописать, .действия-наш + .дописать { margin: 0 0 6px; max-width: 460px; }
.дописать-кнопка { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; padding: 3px 10px 3px 8px; border: 1px solid var(--жёлтое-край);
  border-radius: 4px; font-size: 12.5px; font-weight: 600; color: var(--чернила); background: color-mix(in oklab, var(--жёлтое) 18%, var(--поле)); }
.дописать-кнопка:hover { background: color-mix(in oklab, var(--жёлтое) 32%, var(--поле)); }
.дописать-кнопка .маркер { width: 10px; height: 10px; border-radius: 2px; background: var(--жёлтое); outline: 1px solid var(--жёлтое-край); }
.дописать-кнопка .и { width: 14px; height: 14px; color: var(--чернила-3); transition: rotate var(--быстро) var(--кривая); }
.дописать:not(.открыт) .дописать-кнопка .и { rotate: -90deg; }
.дописать-тело { margin-top: 8px; padding: 10px 12px; border-left: 2px solid var(--жёлтое-край); background: color-mix(in oklab, var(--жёлтое) 7%, var(--поле)); }
.дописать-тело > p { margin: 0 0 8px; font-size: 13px; line-height: 1.45; color: var(--чернила-2); }
.дописать-список { margin: 0; padding-left: 1.3em; display: grid; gap: 6px; font-size: 13.5px; line-height: 1.4; }
.дописать-список li::marker { color: var(--чернила-3); font-variant-numeric: tabular-nums; }
.дописать-список small { display: block; margin-top: 2px; font-size: 12px; color: var(--чернила-3); overflow-wrap: anywhere; }
.лист-шапка .дописать { margin: 10px 0 0; }

.окно-дописать { position: fixed; z-index: 61; inset: 50% auto auto 50%; translate: -50% -50%; width: min(520px, calc(100vw - 32px));
  max-height: calc(var(--экран) - 48px); overflow: auto; display: grid; gap: 12px; padding: 24px; background: var(--поле); color: var(--чернила);
  border: 1px solid var(--линия-сильная); border-radius: 10px; box-shadow: 0 30px 80px -30px color-mix(in oklab, var(--onyx) 70%, transparent);
  animation: появление-окна var(--плавно) var(--кривая); }
.окно-дописать h2 { margin: 0; font: 600 24px/1.2 var(--заголовок); }
.окно-дописать p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--чернила-2); }
.окно-дописать .кому { font-weight: 500; color: var(--чернила); overflow-wrap: anywhere; }
.окно-дописать .дописать-список { max-height: 40vh; overflow: auto; padding: 10px 12px 10px 2em; border: 1px solid var(--линия); border-radius: 6px; }
.окно-дописать .ряд { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.окно-дописать a.кнопка-главная { text-decoration: none; }
@media (max-width: 767px) {
  .окно-дописать { inset: auto 0 0 0; translate: none; width: auto; max-height: calc(var(--экран) - 24px); border-radius: 12px 12px 0 0;
    padding: 20px 16px calc(16px + env(safe-area-inset-bottom)); animation: появление var(--плавно) var(--кривая); }
  .окно-дописать .ряд > * { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) { .окно-дописать { animation: none; } }

/* 409 «несколько дел», 429 «предел», 422 «не по делу» — карточкой в ленте, как разбор */
.карточка-отказа { margin-top: 4px; padding: 14px 18px; border: 1px solid var(--линия-сильная); border-left: 3px solid var(--акцент); border-radius: 6px;
  background: color-mix(in oklab, var(--поле) 70%, var(--панель)); font-size: 14.5px; line-height: 1.5; }
.разбор .карточка-отказа { margin: 0 18px 14px; }
.карточка-отказа p { margin: 0 0 8px; }
.карточка-отказа p:last-child { margin-bottom: 0; }
.карточка-отказа .заг-отказа { display: flex; align-items: center; gap: 8px; font: 600 19px/1.25 var(--заголовок); color: var(--чернила); }
.карточка-отказа .заг-отказа .и { width: 16px; height: 16px; color: var(--акцент); flex: none; }
.карточка-отказа.не-по-делу { border-left-color: var(--рамка-поля); color: var(--чернила-2); }
.карточка-отказа .тихо { font-size: 12.5px; color: var(--чернила-3); }
.карточка-отказа .ряд { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 10px; }
.группы-дела { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; }
.группы-дела li { display: grid; gap: 1px; padding: 8px 12px; border: 1px solid var(--линия); border-radius: 6px; background: var(--поле); }
.группы-дела b { font-weight: 600; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.группы-дела span, .группы-дела small { font-size: 12.5px; color: var(--чернила-3); }

/* ── ПРАВКИ_29 (отзывы Петра из APK, 05.10) ─────────────────────────────────────────────────────────── */
/* Верх экрана (пп. 1–4). Android 15+ рисует приложение от края до края: Capacitor 8 при WebView ≥ 140 и viewport-fit=cover
   отдаёт вырез странице — env(safe-area-inset-top) — и сам вписывает --safe-area-inset-top (старые WebView он отодвигает
   сам, переменная там 0). Одна переменная на весь кабинет; в браузере компьютера и в PWA без выреза она 0 — ничего не
   сдвигается. Внутри «Крупного текста» (zoom 1.12 у корня) отступы fixed-элементов тоже множатся — им --верх-внутри. */
:root { --верх-края: max(env(safe-area-inset-top, 0px), var(--safe-area-inset-top, 0px)); --верх-внутри: var(--верх-края);
  --экран: calc(100dvh - var(--верх-края)); }
html[data-крупно] { --экран: calc((100dvh - var(--верх-края)) / 1.12); --верх-внутри: calc(var(--верх-края) / 1.12); }
body { padding-top: var(--верх-края); }
/* под строкой состояния — Onyx, как у строки в APK (иначе светлая полоса и белые значки на Ivory) */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: var(--верх-края); background: var(--onyx); z-index: 2147483000; pointer-events: none; }
@media (max-width: 1023px) { .рейка, .панель { top: var(--верх-внутри); } }          /* выезжающие рейка и панель */
@media (max-width: 767px) {
  .окно-календаря { top: var(--верх-внутри); height: var(--экран); }
}
.плашка-входа { padding-top: calc(16px + var(--верх-края)); }
.съёмка-слой .сн-шапка { padding-top: calc(10px + var(--верх-края)); }                /* модуль A01: та же переменная, что у кабинета */

/* «Вход и устройства» (п. 5): «Ещё N устройств» — строкой под тремя, раскрывает остальные */
.ещё-устройства { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; margin: 2px 0 0 -2px; padding: 0 8px 0 2px; border-radius: 4px;
  font-size: 13px; font-weight: 500; color: var(--чернила-2); }
.ещё-устройства:hover { background: var(--наведение); color: var(--чернила); }
.ещё-устройства .и { transition: rotate var(--быстро) var(--кривая); rotate: -90deg; }
.ещё-устройства[aria-expanded="true"] .и { rotate: 0deg; }
@media (pointer: coarse) { .ещё-устройства { min-height: 44px; } }

/* Документ листается пальцем (п. 7): .лист-поле — контейнер прокрутки (вбок — у приближенного листа); с overscroll-behavior: none
   Chrome «прилипал» к нему и вертикальный жест не доходил до панели — первая страница видна, дальше не листается.
   По вертикали — передать панели (у неё самой none: дальше жест не уходит), вбок — по-прежнему не дальше листа. */
.лист-поле { overscroll-behavior-y: auto; overscroll-behavior-x: none; }

/* ══ ПРАВКИ_30 (отзыв Петра 05.10): документ — как панель Claude Desktop. Узкая шапка в две строки, дальше сам документ
   лентой сверху вниз. Прокрутка — у ленты (.лист-поле), не у панели: шапка стоит, а лента от шапки до низа окна
   прокручивается до последнего листа при любой ширине колонки. ══ */
.панель-тело[data-вкладка="лист"] { display: flex; flex-direction: column; overflow: hidden; }
.панель-тело[data-вкладка="лист"] > * { flex: none; }
.панель-тело[data-вкладка="лист"] > .лист-поле { flex: 1 1 auto; min-height: 0; overflow: auto; }
.панель-тело[data-вкладка="лист"] > .панель-пусто { overflow: auto; min-height: 0; flex: 0 1 auto; }

/* шапка: строка 1 — «‹ Опись» · название · действия; строка 2 — о документе · формат · «Скан | Текст» · лист N из M */
.лист-шапка { padding: 8px 12px 8px 16px; display: grid; gap: 2px; }
.строка-шапки { display: flex; align-items: center; gap: 6px; min-width: 0; min-height: 32px; }
.строка-шапки h2 { flex: 1 1 auto; min-width: 0; margin: 0; font: 600 17px/1.25 var(--заголовок); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-wrap: nowrap; }
.строка-шапки .назад-к-списку { flex: none; margin: 0 2px 0 -8px; height: 28px; }
.действия-шапки { flex: none; display: flex; align-items: center; gap: 2px; margin-right: -4px; }
.действия-шапки .кнопка-тихая { height: 30px; padding: 0 8px; gap: 5px; font-size: 12.5px; text-decoration: none; }
.действия-шапки .кнопка-тихая .и { width: 16px; height: 16px; }
.действия-шапки .спросить-по-документу { margin: 0; width: auto; }
.строка-шапки.вторая { min-height: 24px; gap: 8px; font-size: 12.5px; color: var(--чернила-3); }
.о-документе { flex: 0 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.метка-формата { flex: none; padding: 0 6px; border: 1px solid var(--линия); border-radius: 3px; font-size: 11px; line-height: 18px; letter-spacing: .02em; color: var(--чернила-2); }
.строка-шапки .внутр { flex: none; }
.строка-шапки .вид-скана { margin: 0 0 0 auto; }
.строка-шапки .вид-скана button { height: 24px; padding: 0 9px; font-size: 12px; }
.счёт-листов { flex: none; margin-left: auto; font-variant-numeric: tabular-nums; color: var(--чернила-2); white-space: nowrap; }
.вид-скана + .счёт-листов { margin-left: 0; }
.лист-шапка .листалка { margin-top: 4px; }
.лист-шапка .дописать { margin: 6px 0 2px; }
/* название — главное в строке 1: в узкой колонке (по умолчанию 440 px) «Скачать» и «Переслать» — значками с подсказкой,
   «‹ Наши» — коротко; шире 560 — с подписями; шире 680 — «Спросить по документу» и «‹ Наши документы» полностью */
.строка-шапки h2 { min-width: 6em; }
.спросить-по-документу .длиннее, .назад-к-списку .длиннее { display: none; }
.действия-шапки .скачать-док .подпись-кнопки, .действия-шапки .переслать .подпись-кнопки { display: none; }
.действия-шапки .скачать-док, .действия-шапки .переслать { width: 32px; padding: 0; justify-content: center; }
@container панель (min-width: 560px) {
  .действия-шапки .скачать-док .подпись-кнопки, .действия-шапки .переслать .подпись-кнопки { display: inline; }
  .действия-шапки .скачать-док, .действия-шапки .переслать { width: auto; padding: 0 8px; }
}
@container панель (min-width: 680px) { .спросить-по-документу .длиннее, .назад-к-списку .длиннее { display: inline; } }
@media (max-width: 767px) {
  .лист-шапка { padding: 6px 8px 6px 14px; }
  .действия-шапки .подпись-кнопки { display: none; }
  .действия-шапки .кнопка-тихая { width: 44px; height: 44px; padding: 0; justify-content: center; }
  .действия-шапки .кнопка-тихая .и { width: 20px; height: 20px; }
}
@media (pointer: coarse) {
  .строка-шапки { min-height: 44px; }
  .строка-шапки.вторая { min-height: 28px; }
  .действия-шапки .кнопка-тихая { min-height: 44px; }
  .строка-шапки .вид-скана button { height: 44px; min-width: 52px; }          /* касание ≥ 44 px (проверка доступности) */
  .строка-шапки .назад-к-списку { height: 44px; }
  .действия-шапки .скачать-док, .действия-шапки .переслать { min-width: 44px; }
}

/* лента: лист за листом, тонкий зазор, номер листа мелко; ширина колонки — масштаб листа (до 1280 px) */
.лента-листов { padding: 12px 16px 24px; overscroll-behavior-y: contain; overflow-anchor: auto; }
.лента-листов > .лист-ленты { width: min(calc(var(--масштаб, 1) * 100%), calc(var(--масштаб, 1) * 1280px)); margin: 0 auto; }
.лента-листов[data-масштаб] > .лист-ленты { margin: 0; }
.лист-ленты .лист.картинкой { position: relative; aspect-ratio: 1 / 1.4143; max-width: none; margin: 0; padding: 0; min-height: 0; overflow: hidden; }
.лист-ленты .лист.картинкой.грузится { display: block; }
.лист-ленты .картинка-листа { position: absolute; inset: 0; }
.лист-ленты .картинка-листа img { display: block; width: 100%; height: 100%; object-fit: contain; cursor: zoom-in; }
.лента-листов[data-масштаб] .картинка-листа img { cursor: zoom-out; }
.лист-ленты .лист.текстом { aspect-ratio: auto !important; padding: 28px 32px; }
.лист-ленты .лист > .не-набран { position: absolute; inset: 0; display: grid; place-content: center; gap: 10px; margin: 0; padding: 16px; text-align: center; }
.номер-в-ленте { margin: 3px 0 9px; text-align: center; font-size: 11px; line-height: 14px; color: var(--чернила-3); font-variant-numeric: tabular-nums; }
.лист-ленты:last-of-type .номер-в-ленте { margin-bottom: 0; }
.лист-ленты .место-ярлык { margin: 0 0 8px; }
.лента-листов > .лист-нет, .лента-листов > .лист.pdf.грузится { margin: 0 auto; }
@media (max-width: 767px) { .лента-листов { padding: 8px 8px 20px; } }

/* «Текст» лентой: лист за листом, номер листа — тихой строкой */
.лента-текста > .пометка-текста { margin: 0 0 14px; }
.текст-ленты { padding: 0 4px 6px; border-bottom: 1px solid var(--линия); margin-bottom: 14px; }
.текст-ленты:last-of-type { border-bottom: 0; }
.номер-текста { margin: 0 0 6px; font-size: 11.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--чернила-3); }
.текст-ленты .текст-листа.ждёт { min-height: 240px; }

/* ── суд или орган — только из справочника (ПРАВКИ_32, решение № 30) ─────────────────────────────────────────────── */
.поле-суда { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; min-width: 0; margin-bottom: 16px; font-size: 13px; color: var(--чернила-2); }
.шапка-поля-суда { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-weight: 500; }
.переключатель-суда { display: inline-flex; padding: 2px; border: 1px solid var(--рамка-поля); border-radius: 6px; background: var(--ввод); }
.переключатель-суда button { height: 30px; padding: 0 14px; border: 0; border-radius: 4px; background: none; color: var(--чернила-2); font: 500 13px var(--ui); cursor: pointer; }
.переключатель-суда button[aria-checked="true"] { background: var(--кнопка); color: var(--кнопка-текст); }
.поле-суда .вид-органа { display: grid; gap: 6px; margin: 0; font-weight: 500; }
.поле-суда .вид-органа .выпадающий-кнопка { font: 15px var(--ui); }
.ввод-суда { display: grid; gap: 4px; }
.поле-суда input[data-д="поле-суда"] { width: 100%; height: 44px; padding: 0 12px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод);
  font: 15px var(--ui); color: var(--чернила); box-sizing: border-box; }
.поле-суда input[data-д="поле-суда"]:focus { outline: none; border-color: var(--чернила-2); box-shadow: 0 0 0 3px color-mix(in oklab, var(--platinum) 40%, transparent); }
.поле-суда input[data-д="поле-суда"][aria-invalid="true"] { border-color: var(--акцент); border-width: 2px; padding: 0 11px;
  background: color-mix(in oklab, var(--акцент) 7%, var(--ввод)); }
.поле-суда input::placeholder { color: var(--чернила-3); letter-spacing: 0; }
.поле-суда .ошибка-поля { color: var(--акцент); font-size: 13px; font-weight: 500; }
.выбран-суд { display: inline-flex; align-items: center; gap: 6px; color: var(--чернила-3); font-size: 12.5px; }
.выбран-суд .и { width: 14px; height: 14px; color: var(--акцент); }
.пояснение-суда { color: var(--чернила-3); font-size: 12.5px; }
/* grid-auto-rows — ПРАВКИ_39: список ниже своего содержимого (над клавиатурой) прокручивается, строки не сжимаются друг в друга */
.подсказки-суда { display: grid; grid-auto-rows: max-content; max-height: 340px; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--линия-сильная); border-radius: 6px;
  background: var(--поле); box-shadow: 0 12px 32px -18px color-mix(in oklab, var(--onyx) 55%, transparent); }
.подсказки-суда[hidden] { display: none; }
.подсказка-суда { display: grid; gap: 2px; padding: 9px 12px; cursor: pointer; border-bottom: 1px solid var(--линия); }
.подсказка-суда:last-of-type { border-bottom: 0; }
.подсказка-суда .имя { color: var(--чернила); font-size: 14.5px; line-height: 1.3; }
.подсказка-суда small { color: var(--чернила-3); font-size: 12.5px; }
.подсказка-суда.активна, .подсказка-суда:hover { background: var(--наведение); }
.подсказка-суда.активна { box-shadow: inset 3px 0 0 var(--акцент); }
.метка-недавние { display: inline-block; margin-right: 6px; padding: 0 6px; border-radius: 3px; background: var(--акцент-фон); color: var(--акцент);
  font-size: 11px; font-weight: 600; letter-spacing: .02em; }
.заголовок-подсказок { padding: 8px 12px 4px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--чернила-3);
  background: color-mix(in oklab, var(--поле) 80%, var(--панель)); }
.подсказка-пусто { padding: 12px; color: var(--чернила-3); font-size: 13.5px; }
.подсказка-сообщить { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 12px; border: 0; border-top: 1px solid var(--линия); background: none;
  color: var(--акцент); font: 500 13.5px var(--ui); text-align: left; cursor: pointer; }
.подсказка-сообщить:hover { background: var(--наведение); }
.заявка-суда { display: grid; gap: 8px; padding: 12px; border: 1px dashed var(--линия-сильная); border-radius: 6px; }
.заявка-суда label { display: grid; gap: 6px; margin: 0; }
.заявка-суда textarea { min-height: 56px; padding: 8px 10px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font: 15px var(--ui); resize: vertical; }
.заявка-суда .ряд { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.заявка-суда.готово { margin: 0; color: var(--чернила-2); }
.заявка-суда .тихо, .суд-в-реквизитах .тихо { color: var(--чернила-3); font-size: 12.5px; margin: 0; }

.не-из-справочника { display: inline-block; margin-left: 6px; padding: 0 6px; border: 1px solid var(--акцент); border-radius: 3px; background: none;
  color: var(--акцент); font: 500 11.5px/1.6 var(--ui); vertical-align: 1px; cursor: pointer; }
span.не-из-справочника { cursor: default; }
.суд-из-документов { grid-column: 1 / -1; margin: 4px 0 0; font-size: 13px; color: var(--чернила-3); }
.суд-из-документов b { color: var(--чернила-2); font-weight: 600; }
.кнопка-ссылка { padding: 0; border: 0; background: none; color: var(--акцент); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.корень.без-рейки .суд-из-документов { grid-column: 2 / -1; }

/* реквизиты дела: суд не правится здесь — «Изменить суд» */
.суд-в-реквизитах .суд-сейчас { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 12px; border: 1px solid var(--линия); border-radius: 4px;
  background: color-mix(in oklab, var(--ввод) 60%, var(--поле)); font-size: 15px; font-weight: 400; color: var(--чернила); }
.суд-в-реквизитах .суд-сейчас > span:first-child { flex: 1 1 200px; }
.суд-в-реквизитах .суд-сейчас .нет { color: var(--чернила-3); font-style: italic; }

/* окно «Изменить суд» */
.окно-суда { position: fixed; z-index: 61; inset: 50% auto auto 50%; translate: -50% -50%; width: min(560px, calc(100vw - 32px));
  max-height: calc(var(--экран) - 48px); overflow: auto; display: grid; gap: 14px; padding: 24px; background: var(--поле); color: var(--чернила);
  border: 1px solid var(--линия-сильная); border-radius: 10px; box-shadow: 0 30px 80px -30px color-mix(in oklab, var(--onyx) 70%, transparent); }
.окно-суда.впервые { animation: появление-окна var(--плавно) var(--кривая); }
.окно-суда h2 { margin: 0; font: 600 24px/1.2 var(--заголовок); }
.окно-суда .сейчас-суд { display: grid; gap: 2px; margin: 0; font-size: 15px; }
.окно-суда .сейчас-суд small { font-size: 12px; color: var(--чернила-3); }
.варианты-смены { display: grid; gap: 8px; }
.вариант-смены { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--рамка-поля); border-radius: 6px; background: var(--ввод);
  color: var(--чернила); font: inherit; text-align: left; cursor: pointer; }
.вариант-смены b { display: block; font-size: 15px; font-weight: 600; }
.вариант-смены small { display: block; margin-top: 2px; font-size: 13px; color: var(--чернила-3); }
.вариант-смены .кружок { flex: none; width: 18px; height: 18px; margin-top: 2px; border: 2px solid var(--рамка-поля); border-radius: 50%; }
.вариант-смены[aria-checked="true"] { border-color: var(--акцент); box-shadow: inset 0 0 0 1px var(--акцент); }
.вариант-смены[aria-checked="true"] .кружок { border-color: var(--акцент); background: radial-gradient(var(--акцент) 45%, transparent 50%); }
.окно-суда .поле-суда { margin: 0; }
.дата-перехода { display: grid; gap: 6px; font-size: 13px; font-weight: 500; color: var(--чернила-2); }
.дата-перехода input { height: 44px; padding: 0 12px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font: 15px var(--ui); }
.окно-суда .ряд { display: flex; flex-wrap: wrap; gap: 10px; }
.окно-суда > .ошибка { margin: 0; color: var(--акцент); font-size: 13.5px; }
.отмена-перехода { display: grid; gap: 6px; padding-top: 12px; border-top: 1px solid var(--линия); }
.отмена-перехода p { margin: 0; font-size: 13px; color: var(--чернила-3); }
.отмена-перехода .кнопка-тихая { justify-self: start; }

@media (max-width: 767px) {
  .поле-суда input[data-д="поле-суда"], .поле-суда .вид-органа .выпадающий-кнопка, .заявка-суда textarea, .дата-перехода input { height: 52px; font-size: 16px; }
  .заявка-суда textarea { height: auto; }
  .переключатель-суда button { height: 36px; padding: 0 16px; font-size: 14px; }
  .подсказки-суда { max-height: 52vh; }
  .подсказка-суда { min-height: 56px; padding: 10px 14px; align-content: center; }
  .подсказка-суда .имя { font-size: 16px; }
  .подсказка-суда small { font-size: 13px; }
  .подсказка-сообщить { min-height: 52px; font-size: 15px; }
  .окно-суда { inset: auto 0 0 0; translate: none; width: auto; max-height: calc(var(--экран) - 24px); border-radius: 12px 12px 0 0;
    padding: 20px 16px calc(16px + env(safe-area-inset-bottom)); }
  .окно-суда.впервые { animation: появление var(--плавно) var(--кривая); }
  .окно-суда .ряд > * { flex: 1 1 100%; height: 48px; }
  .реквизиты .не-из-справочника, .реквизиты .не-из-справочника + .точка { display: none; }
}
@media (prefers-reduced-motion: reduce) { .окно-суда { animation: none; } }

/* ── «Настройки → Уведомления» (ПРАВКИ_33): MAX, Telegram, виды событий, последние отправки ─────────── */
#уведомления-настройки h3 { margin: 14px 0 0; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--чернила-3); }
#уведомления-настройки .ждём-бота .справа { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; align-items: center; }
#уведомления-настройки .ждём-бота .кнопка-главная { text-decoration: none; }
#уведомления-настройки [data-увед-осталось] { font-variant-numeric: tabular-nums; color: var(--чернила-2); }
.виды-уведомлений.выключены .строка-настройки { opacity: .6; }
.журнал-уведомлений ul { list-style: none; margin: 6px 0 4px; padding: 0; display: grid; gap: 2px; font-size: 13px; color: var(--чернила-2); }
.журнал-уведомлений li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 4px 12px; padding: 6px 0; border-top: 1px solid color-mix(in oklab, var(--линия) 60%, transparent); }
.журнал-уведомлений li span:first-child { color: var(--чернила-3); font-variant-numeric: tabular-nums; }
.журнал-уведомлений li span:nth-child(2) { overflow-wrap: anywhere; }
.журнал-уведомлений li b { font-weight: 500; }
.журнал-уведомлений li.плохо b { color: var(--акцент); }
@media (max-width: 767px) {
  #уведомления-настройки .строка-настройки .справа { flex: 1 1 100%; }
  #уведомления-настройки .ждём-бота .справа { justify-content: stretch; }
  #уведомления-настройки .ждём-бота .кнопка-главная { flex: 1 1 100%; height: 48px; }
  #уведомления-настройки [data-д="увед-подключить"] { width: 100%; height: 44px; justify-content: center; }
  #уведомления-настройки .справа:has(.тумблер) { flex: none; }
  .журнал-уведомлений li { grid-template-columns: minmax(0, 1fr) auto; }
  .журнал-уведомлений li span:first-child { grid-column: 1 / -1; }
}

/* ── Суд в строке реквизитов и цепочка (ПРАВКИ_33, Попутно 2–3) ───────────────────────────────────────────
   На месте суда — только текущий, кратко, в одну строку (многоточие), «ещё N» при истории; схема «суд · № · предмет»
   одна на всех ширинах. На телефоне: суд — первой строкой, № и предмет — второй (обе — в одну строку), поэтому
   реквизиты с историей и без занимают одинаково две строки. Цепочка — отдельной строкой под реквизитами. */
.реквизиты .суд-место { display: inline-flex; align-items: baseline; gap: 6px; max-width: min(30em, 100%); min-width: 0; vertical-align: bottom;
  padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; }
.реквизиты .суд-имя { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.реквизиты .суд-место.нет .суд-имя { font-style: italic; color: var(--чернила-3); }
.реквизиты button.суд-место { cursor: pointer; border-radius: 3px; }
.реквизиты button.суд-место:hover .суд-имя, .реквизиты button.суд-место:focus-visible .суд-имя { text-decoration: underline; text-underline-offset: 3px; }
.суд-ещё { flex: none; padding: 0 6px; border: 1px solid var(--линия-сильная); border-radius: 9px; font-size: 11.5px; line-height: 1.45; color: var(--чернила-3); white-space: nowrap; }
.реквизиты button.суд-место[aria-expanded="true"] .суд-ещё { color: var(--чернила); border-color: var(--чернила-3); }
.цепочка-суда { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 2px 0; margin: 4px 0 0; padding: 0; list-style: none; font-size: 13px; line-height: 1.4; color: var(--чернила-2); }
.цепочка-суда li { overflow-wrap: break-word; }
.цепочка-суда li + li::before { content: "→"; margin: 0 .45em; color: var(--чернила-3); }
.цепочка-суда small { font-size: inherit; color: var(--чернила-3); white-space: nowrap; }
.цепочка-суда .номер { font-variant-numeric: tabular-nums; white-space: nowrap; }
.цепочка-суда li.сейчас .место { color: var(--чернила); font-weight: 600; }
.корень.без-рейки .цепочка-суда { grid-column: 2 / -1; }
.суд-в-реквизитах .цепочка-суда { margin: 6px 0 0; }
.окно-суда .номер-сейчас { color: var(--чернила-2); white-space: nowrap; }
.поля-перехода { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.номер-перехода { display: grid; gap: 6px; font-size: 13px; font-weight: 500; color: var(--чернила-2); }
.номер-перехода small { font-weight: 400; color: var(--чернила-3); }
.номер-перехода input { height: 44px; min-width: 0; padding: 0 12px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font: 15px var(--ui); font-variant-numeric: tabular-nums; }
.номер-перехода input:focus { outline: none; border-color: var(--чернила-2); box-shadow: 0 0 0 3px color-mix(in oklab, var(--platinum) 40%, transparent); }
@media (max-width: 767px) {
  .реквизиты { display: flex; flex-wrap: wrap; align-items: baseline; }
  .реквизиты .суд-место { flex: 0 1 auto; max-width: 100%; }
  .реквизиты .суд-место + .точка, .реквизиты .не-из-справочника + .точка { display: none; }
  .реквизиты .суд-место::after { content: ""; }
  .реквизиты-хвост { flex: 0 0 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .реквизиты .не-из-справочника { display: none; }
  .цепочка-суда { grid-column: 1 / -1; display: block; margin: 6px 0 2px; padding: 6px 0 0 4px; border-top: 1px solid var(--линия); }
  .цепочка-суда li { display: block; padding-left: 1.1em; text-indent: -1.1em; }
  .цепочка-суда li::before { content: ""; display: inline-block; width: 1.1em; text-indent: 0; }
  .цепочка-суда li + li::before { content: "→"; margin: 0; color: var(--чернила-3); }
  .поля-перехода { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .номер-перехода input { height: 52px; font-size: 16px; }
  /* окно — над клавиатурой (visualViewport, суд.js), кнопки — рядом, не стопкой */
  .окно-суда { bottom: var(--вв-низ, 0px); max-height: min(calc(var(--экран) - 24px), calc(var(--вв-высота, 10000px) - var(--верх-внутри) - 12px)); }
  .окно-суда .ряд > * { flex: 1 1 0; height: 48px; }
  .окно-суда.печатаю { display: flex; flex-direction: column; gap: 10px; padding-top: 14px; overflow: hidden;
    height: min(calc(var(--экран) - 24px), calc(var(--вв-высота, 10000px) - var(--верх-внутри) - 12px)); }
  .окно-суда.печатаю h2 { flex: none; font-size: 19px; }
  .окно-суда.печатаю :is(.сейчас-суд, .варианты-смены, .поля-перехода, .отмена-перехода, .пояснение-суда, .выбран-суд, .заявка-суда.готово) { display: none; }
  .окно-суда.печатаю .поле-суда { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 6px; }
  .окно-суда.печатаю .подсказки-суда { flex: 1 1 auto; min-height: 96px; max-height: none; align-content: start; }
  .окно-суда.печатаю > .ряд { flex: none; }
}
/* цепочка — сразу под реквизитами, статус и действия — строкой ниже (на компьютере у них явный третий ряд) */
@media (min-width: 768px) {
  .шапка-дела > .цепочка-суда { grid-row: 3; }
  .шапка-дела:has(> .цепочка-суда) > :is(.статус-строка, .действия) { grid-row: 4; }
}
/* компьютер и планшет: реквизиты — всегда одна строка (схема не «съезжает» ни от истории, ни от ширины):
   суд — до половины строки, № и предмет — что влезет, остальное многоточием (полностью — в «Изменить реквизиты») */
@media (min-width: 768px) {
  .шапка-дела .реквизиты { display: flex; align-items: baseline; min-width: 0; white-space: nowrap; }
  .шапка-дела .реквизиты .суд-место { flex: 0 1 auto; max-width: 50%; }
  .шапка-дела .реквизиты > .точка, .шапка-дела .реквизиты > .не-из-справочника { flex: none; }
  .шапка-дела .реквизиты-хвост { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .шапка-дела .реквизиты .точка { white-space: pre; }
}
/* суд в строке реквизитов — кнопка (цепочка): под палец ≥ 44 px, а строка той же высоты — поле касания за счёт полей */
@media (pointer: coarse) { .шапка-дела .реквизиты button.суд-место { padding-block: 12px; margin-block: -12px; } }

/* ══ ПРАВКИ_34 (Пётр, 05.10): любой документ на телефоне — во весь экран, «‹ Назад» слева сверху. Класс .лист-открыт
   ставит кабинет.js, когда документ открыт и экран телефонный (общее.js: весьЭкран — до 767 px, или палец и низкая
   высота — повёрнутый телефон). Панель — поверх всего экрана ниже строки состояния; шапка дела, вкладки, поле вопроса
   под ней скрыты (visibility — прокрутка разговора и описи остаётся на месте). Полоса документа — одна. Компьютер
   и планшет этих правил не видят. Через #корень — сильнее правил вида «Опись» на телефоне (.корень.экран-дела:not(…)). ══ */
#корень.лист-открыт .панель { display: flex; position: fixed; inset: var(--верх-внутри) 0 0 0; width: auto; max-width: none; height: auto; z-index: 50;
  translate: none; transition: none; box-shadow: none; border: 0; }
#корень.лист-открыт > :is(.рейка, .центр) { visibility: hidden; }
#корень.лист-открыт .панель > :is(.вкладки, .разделитель) { display: none; }
#корень.лист-открыт .панель-тело { position: relative; animation: none; }

/* полоса: «‹ Назад» (≥ 44 px) · название в одну строку · «⋯» */
.полоса-документа { position: relative; z-index: 2; display: block; padding: 0 2px 0 0; border-bottom: 1px solid var(--линия); background: var(--панель); }
.полоса-документа > .строка-шапки { min-height: 48px; gap: 2px; }
.назад-документа { flex: none; display: inline-flex; align-items: center; gap: 1px; height: 44px; min-width: 44px; margin-left: 2px; padding: 0 10px 0 4px;
  border-radius: 6px; font: 500 15px/1 var(--ui); color: var(--чернила); transition: background var(--быстро); }
.назад-документа .и { width: 22px; height: 22px; }
.назад-документа:hover, .назад-документа:active { background: var(--наведение); }
.полоса-документа .строка-шапки h2 { flex: 1 1 auto; min-width: 0; font: 600 15.5px/1.25 var(--заголовок); }
.полоса-документа .ещё-документа { flex: none; width: 44px; height: 44px; }
.полоса-документа .ещё-документа .и { width: 20px; height: 20px; }
.полоса-документа .ещё-документа[aria-expanded="true"] { background: var(--наведение); color: var(--чернила); }
.полоса-документа > .листалка { margin: 0; padding: 0 8px 4px; }
.полоса-документа > .дописать { margin: 0 10px 8px; }

/* «⋯»: о документе, «Показать: Скан | Текст», «Спросить по документу», «Скачать», «Переслать» — строками под палец */
.меню-документа { position: absolute; right: 6px; top: calc(100% - 4px); z-index: 30; display: grid; gap: 2px; width: min(300px, calc(100vw - 12px));
  max-height: calc(var(--экран) - 64px); overflow-y: auto; padding: 6px; background: var(--поле); border: 1px solid var(--линия-сильная); border-radius: 8px;
  box-shadow: 0 16px 40px -16px color-mix(in oklab, var(--onyx) 45%, transparent); }
.меню-документа > :is(a, button).кнопка-тихая { display: flex; align-items: center; justify-content: flex-start; gap: 12px; width: 100%; height: 48px; margin: 0; padding: 0 12px;
  border-radius: 6px; font-size: 15px; color: var(--чернила); text-decoration: none; }
.меню-документа > :is(a, button) .и { width: 20px; height: 20px; color: var(--чернила-2); }
.меню-документа .подпись-кнопки, .меню-документа .длиннее { display: inline; }
.о-документе-меню { display: grid; gap: 4px; margin: 4px 12px 6px; font-size: 13px; line-height: 1.35; color: var(--чернила-3); overflow-wrap: anywhere; }
.о-документе-меню .внутр { display: inline-flex; align-items: center; gap: 4px; color: var(--акцент); }
.о-документе-меню .внутр .и { width: 13px; height: 13px; }
.пункт-вида { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 0 6px 0 12px; font-size: 15px; color: var(--чернила); }
.пункт-вида .вид-скана { margin: 0; }
.пункт-вида .вид-скана button { height: 40px; min-width: 64px; font-size: 14px; }
@media (pointer: coarse) { .пункт-вида .вид-скана button { height: 44px; } }

/* лента и таблица — на всю ширину и высоту; низ — над жестовой полосой */
#корень.лист-открыт .лента-листов { padding: 6px 4px calc(28px + env(safe-area-inset-bottom, 0px)); }
#корень.лист-открыт .лента-листов.лента-текста { padding-inline: 12px; }
#корень.лист-открыт .лента-листов > .лист-ленты { width: calc(var(--масштаб, 1) * 100%); }
#корень.лист-открыт .номер-в-ленте { margin: 2px 0 6px; }
#корень.лист-открыт .таблица-поле { padding: 8px 8px calc(24px + env(safe-area-inset-bottom, 0px)); }

/* «лист N из M» — тихо поверх ленты внизу; при прокрутке прячется, при остановке появляется (просмотр.js) */
.счёт-листов.поверх-ленты { position: absolute; left: 50%; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 3; translate: -50% 0; margin: 0;
  padding: 5px 12px; border-radius: 999px; background: color-mix(in oklab, var(--onyx) 74%, transparent); color: #F4F1EA; font-size: 13px; line-height: 18px;
  pointer-events: none; transition: opacity 180ms ease-out; }
.счёт-листов.поверх-ленты.прячется { opacity: 0; }

/* ── тариф и процент лимита (ПРАВКИ_40; было — баланс, ПРАВКИ_37) ─────────────────────────────────────────
   Компьютер — «Практика · 37 %» под полем вопроса справа, в строке дисклеймера (ПРАВКИ_42; было — вверху справа, с местом
   в шапке и вкладках); скругление — как у поля вопроса (8 px), полоска — тонкой линией внизу плашки, без круглых концов. */
.баланс-счётчик { position: relative; flex: none; display: inline-flex; align-items: center; gap: 5px;
  height: 28px; justify-content: center; padding: 0 8px 2px; border: 1px solid var(--линия-сильная); border-radius: 8px; overflow: hidden;
  background: var(--поле); color: var(--чернила-2); font: 500 12px/1 var(--ui); white-space: nowrap; cursor: pointer;
  transition: border-color var(--быстро), background var(--быстро), color var(--быстро); }
.баланс-счётчик:hover, .баланс-счётчик[aria-expanded="true"] { border-color: var(--чернила-2); background: var(--наведение); color: var(--чернила); }
.баланс-счётчик:focus-visible { outline: 2px solid var(--акцент); outline-offset: 2px; }
.баланс-счётчик .имя-тарифа { max-width: 9em; overflow: hidden; text-overflow: ellipsis; }
.баланс-счётчик .точка { color: var(--чернила-3); }
.баланс-счётчик .полоска-тарифа { position: absolute; left: 8px; right: 8px; bottom: 3px; width: auto; height: 2px; border-radius: 1px; }
.баланс-счётчик .полоска-тарифа::-webkit-progress-bar, .баланс-счётчик .полоска-тарифа::-webkit-progress-value { border-radius: 1px; }
.баланс-счётчик .полоска-тарифа::-moz-progress-bar { border-radius: 1px; }
.баланс-счётчик.внимание { border-color: var(--внимание-край); }
.баланс-счётчик.исчерпан { border-color: var(--акцент); color: var(--акцент); }
/* вкладки панели — в одну строку; узкая панель — «Наши» без «документы» (ПРАВКИ_40; место под счётчик больше не держим) */
.панель .вкладка { white-space: nowrap; }
@container панель (max-width: 409px) { .вкладка .хвост-вкладки { display: none; } }
@media (max-width: 767px) { .баланс-счётчик { display: none; } }

/* ссылка «баланс-ссылка» — в предупреждении над полем вопроса (ПРАВКИ_40) */
.цена-вопроса { display: flex; align-items: baseline; flex-wrap: wrap; margin: 0 2px 6px; font-size: 12px; line-height: 1.4; color: var(--чернила-3); }
.цена-вопроса .точка { white-space: pre; }
.баланс-ссылка { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; text-decoration: underline;
  text-decoration-color: var(--линия-сильная); text-underline-offset: .2em; }
.баланс-ссылка:hover { color: var(--акцент); }
/* под ответом: «использовано 2,6 % · всего 39,6 %» */
.списано { margin: 8px 0 0; font-size: 12px; line-height: 1.4; color: var(--чернила-3); font-variant-numeric: tabular-nums; }
.разбор > .списано, .разбор-списано { padding: 0 18px 12px; }
.разбор-списано .списано { margin-top: 0; }
.цена-действия { color: var(--чернила-3); font-weight: 400; white-space: nowrap; }
/* узкий телефон: «Сохранить Word в «Наши документы» · 25 ед.» не влезает в строку — кнопка в две строки, без прокрутки вбок */
.разбор-низ .кнопка-тихая:has(.цена-действия), .разбор-низ .кнопка-рамка:has(.цена-действия) { height: auto; min-height: 36px; padding-block: 6px; flex-wrap: wrap; text-align: left; max-width: 100%; }
.кнопка-рамка:hover .цена-действия { color: var(--чернила-2); }
/* «Разобрать позицию · 27 ед.» — под частыми вопросами */
.работа-по-делу { padding: 4px 0 16px; }
.работа-по-делу .кнопка-рамка { height: 40px; }

/* окно «Тариф» (класс прежний — окно-баланса) */
.окно-баланса { position: fixed; z-index: 61; inset: 50% auto auto 50%; translate: -50% -50%; width: min(460px, calc(100vw - 32px));
  max-height: calc(var(--экран) - 48px); overflow: auto; display: grid; gap: 10px; padding: 22px 24px 20px; background: var(--поле); color: var(--чернила);
  border: 1px solid var(--линия-сильная); border-radius: 10px; box-shadow: 0 30px 80px -30px color-mix(in oklab, var(--onyx) 70%, transparent);
  animation: появление-окна var(--плавно) var(--кривая); }
.окно-баланса .ряд-заголовка { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.окно-баланса h2 { margin: 0; font: 600 24px/1.2 var(--заголовок); }
.окно-баланса h3 { margin: 10px 0 0; font: 500 12px/1.4 var(--ui); color: var(--чернила-3); letter-spacing: .02em; }
.окно-баланса .остаток { margin: 0; font: 600 34px/1.1 var(--заголовок); white-space: nowrap; }
.окно-баланса .остаток .цифры { font-family: var(--ui); font-weight: 500; font-size: 30px; letter-spacing: -.01em; }
.окно-баланса .остаток .ед { font: 500 16px/1 var(--ui); color: var(--чернила-2); }
.окно-баланса .чей { margin: -4px 0 0; font-size: 12.5px; color: var(--чернила-3); }
.окно-баланса .прайс { margin: 0; display: grid; }
.окно-баланса .прайс > div { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px solid var(--линия); font-size: 14px; }
.окно-баланса .прайс dt { color: var(--чернила); }
.окно-баланса .прайс dd { margin: 0; color: var(--чернила-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.окно-баланса .бесплатно { margin: 2px 0 0; font-size: 12.5px; color: var(--чернила-3); }
.журнал-списаний { list-style: none; margin: 0; padding: 0; display: grid; }
.журнал-списаний li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 4px 12px; align-items: baseline; padding: 7px 0;
  border-bottom: 1px solid var(--линия); font-size: 13.5px; }
.журнал-списаний .когда { color: var(--чернила-3); font-size: 12.5px; min-width: 7.5ch; }
.журнал-списаний .что { min-width: 0; overflow-wrap: anywhere; }
.журнал-списаний .что small { display: block; color: var(--чернила-3); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.журнал-списаний .сколько { white-space: nowrap; color: var(--чернила-2); }
.окно-баланса .пометка-демо { margin: 6px 0 0; font-size: 11.5px; color: var(--чернила-3); }
@media (max-width: 767px) {
  .окно-баланса { inset: auto 0 0 0; translate: none; width: auto; max-height: calc(var(--экран) - 24px); border-radius: 12px 12px 0 0;
    padding: 18px 16px calc(var(--над-краем) + env(safe-area-inset-bottom)); animation: появление var(--плавно) var(--кривая); }
}
@media (prefers-reduced-motion: reduce) { .окно-баланса { animation: none; } }

/* Настройки: «Тариф» в профиле и «Пригласить коллегу» */
.баланс-в-настройках { white-space: nowrap; gap: 4px; }
.баланс-в-настройках .и { width: 16px; height: 16px; margin-right: -4px; }
.пригласить h2 { display: flex; align-items: center; gap: 10px; }
.скоро { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border: 1px solid var(--линия-сильная); border-radius: 10px;
  font: 500 11px/1 var(--ui); letter-spacing: .03em; color: var(--чернила-2); background: var(--панель); }
.условия-приглашения { margin: 0 0 4px; padding: 0 0 0 1.1em; display: grid; gap: 4px; font-size: 14px; line-height: 1.5; color: var(--чернила-2); }
.условия-приглашения b { color: var(--чернила); font-weight: 600; white-space: nowrap; }
.пригласить .кнопка-рамка[disabled] { opacity: .55; cursor: not-allowed; }

/* ── ПРАВКИ_38 ─────────────────────────────────────────────────────────────────────────────────────────── */
/* п. 1–3: карточка «Стоимость · Сделать / Отмена» — цена до работы (чат A10 ПРАВКИ_19) */
.карточка-цены { margin-top: 4px; padding: 16px 18px 16px; border: 1px solid var(--линия-сильная); border-left: 3px solid var(--кнопка);
  border-radius: 6px; background: color-mix(in oklab, var(--поле) 70%, var(--панель)); font-size: 14.5px; line-height: 1.5; max-width: 560px; }
.карточка-цены p { margin: 0; }
.карточка-цены .цена-заг { display: flex; align-items: center; gap: 8px; font: 600 19px/1.25 var(--заголовок); color: var(--чернила); }
.карточка-цены .цена-заг b { font-weight: 600; overflow-wrap: anywhere; }
.карточка-цены .цена-заг .и { width: 16px; height: 16px; flex: none; color: var(--чернила-2); }
.карточка-цены .цена-читает { margin-top: 6px; color: var(--чернила-2); font-size: 13.5px; }
.карточка-цены .цена-сумма { margin-top: 12px; color: var(--чернила); }
.карточка-цены .цена-сумма .подпись { margin-right: 4px; font-size: 14px; color: var(--чернила-2); }
.карточка-цены .цена-сумма .цифры { font: 600 30px/1.1 var(--ui); letter-spacing: -.01em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.карточка-цены .цена-сумма .ед { font: 500 16px/1 var(--ui); color: var(--чернила-2); }
.карточка-цены .цена-после { margin-top: 2px; font-size: 12.5px; color: var(--чернила-3); font-variant-numeric: tabular-nums; }
.карточка-цены .цена-нехватка { margin-top: 6px; font-size: 13.5px; font-weight: 500; color: var(--акцент); font-variant-numeric: tabular-nums; }
.карточка-цены .цена-ошибка { margin-top: 6px; font-size: 13px; color: var(--акцент); }
.карточка-цены .цена-кнопки { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.карточка-цены .цена-кнопки .кнопка-главная { min-width: 128px; }
.карточка-цены .цена-кнопки .кнопка-главная[disabled] { opacity: .45; cursor: not-allowed; }
.карточка-цены.итог { border-left-color: var(--рамка-поля); }
.карточка-цены.итог .цена-итог { margin-top: 8px; color: var(--чернила-2); }
.карточка-цены .готовлю { margin-top: 10px; }
.до-ед { color: var(--чернила-3); }
/* черновик документа из чата: текст подряд, «{{…}}» — жёлтым, как в .docx */
.разбор.черновик .текст-черновика { padding: 6px 18px 14px; font: 400 16px/1.55 var(--текст); }
.разбор.черновик .текст-черновика p { margin: 0 0 .6em; }
mark.дописать { background: color-mix(in oklab, #F2D046 55%, var(--поле)); color: var(--чернила); padding: 0 .2em; border-radius: 2px; }
html[data-тема="тёмная"] mark.дописать { background: color-mix(in oklab, #F2D046 35%, var(--поле)); }
@media (prefers-color-scheme: dark) { html:not([data-тема="светлая"]) mark.дописать { background: color-mix(in oklab, #F2D046 35%, var(--поле)); } }
@media (max-width: 767px) {
  /* телефон: кнопки под большой палец — во всю ширину карточки, «Сделать» справа; карточка стоит над полем ввода,
     не у самого края экрана */
  .карточка-цены { padding: 14px 14px 16px; max-width: none; }
  .карточка-цены .цена-кнопки { flex-direction: row-reverse; gap: 10px; }
  .карточка-цены .цена-кнопки > button { flex: 1 1 0; height: 48px; min-width: 0; font-size: 15px; }
}

/* п. 4: раскрытая «История вопросов» — своё окно на 3–4 вопроса с прокруткой внутри; шапка «Скрыть» закреплена */
.история-вопросов { margin: 0 0 8px; }
.история-шапка { position: sticky; top: 0; z-index: 4; background: var(--поле); }
.история-шапка .цифры { color: var(--чернила-3); }
.история-список { max-height: min(54vh, 560px); overflow-y: auto; overscroll-behavior: contain; padding: 0 16px;
  border: 1px solid var(--линия); border-radius: 6px; background: color-mix(in oklab, var(--поле) 82%, var(--панель)); }
.история-список > .обмен:first-of-type { border-top: 0; }
.история-список:focus { outline: none; }
.свернуть-историю { display: flex; align-items: center; gap: 6px; margin: 4px auto 14px; font-size: 13px; color: var(--чернила-2); }
.свернуть-историю .и { width: 16px; height: 16px; }
@media (max-width: 767px) {
  .история-список { max-height: 46dvh; padding: 0 12px; }
  .свернуть-историю { min-height: 44px; }
  .история-шапка .ранее { min-height: 44px; }
}

/* п. 5: в настройках шрифт заголовка — только у названия экрана и названий групп; всё остальное — основной текст */
.настройки :where(*:not(h1, h2, h2 *)) { font-family: var(--ui); }

/* ── ПРАВКИ_40: тариф, полоска, предупреждения 80 % и 100 % ───────────────────────────────────────────────── */
:root { --внимание: #8A5A0B; --внимание-край: color-mix(in oklab, #B7791F 70%, var(--ivory)); --внимание-фон: color-mix(in oklab, #B7791F 10%, var(--ivory)); }
html[data-тема="тёмная"] { --внимание: #E2B460; --внимание-край: color-mix(in oklab, #E2B460 55%, var(--onyx)); --внимание-фон: color-mix(in oklab, #E2B460 12%, var(--onyx)); }
@media (prefers-color-scheme: dark) { html:not([data-тема="светлая"]) { --внимание: #E2B460; --внимание-край: color-mix(in oklab, #E2B460 55%, var(--onyx)); --внимание-фон: color-mix(in oklab, #E2B460 12%, var(--onyx)); } }
.полоска-тарифа { appearance: none; -webkit-appearance: none; display: block; width: 100%; height: 6px; border: 0; border-radius: 3px; overflow: hidden;
  background: color-mix(in oklab, var(--линия) 80%, var(--чернила-3) 20%); color: var(--чернила-2); }
.полоска-тарифа::-webkit-progress-bar { background: color-mix(in oklab, var(--линия) 80%, var(--чернила-3) 20%); border-radius: 3px; }
.полоска-тарифа::-webkit-progress-value { background: var(--чернила-2); border-radius: 3px; transition: width var(--плавно) var(--кривая); }
.полоска-тарифа::-moz-progress-bar { background: var(--чернила-2); border-radius: 3px; }
.внимание .полоска-тарифа::-webkit-progress-value { background: var(--внимание); }
.внимание .полоска-тарифа::-moz-progress-bar { background: var(--внимание); }
.исчерпан .полоска-тарифа::-webkit-progress-value { background: var(--акцент); }
.исчерпан .полоска-тарифа::-moz-progress-bar { background: var(--акцент); }
.полоска-тарифа.большая { height: 8px; border-radius: 4px; }
/* окно «Тариф» */
.окно-баланса .имя-тарифа-большое { margin: 0; font: 600 30px/1.1 var(--заголовок); overflow-wrap: anywhere; }
.лимит-сводка { display: grid; gap: 8px; margin-top: 6px; padding: 14px 16px; border: 1px solid var(--линия); border-radius: 8px; background: color-mix(in oklab, var(--поле) 70%, var(--панель)); }
.лимит-сводка .лимит-процент { margin: 0; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.лимит-сводка .лимит-процент .цифры { font: 600 28px/1.1 var(--ui); letter-spacing: -.01em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.лимит-сводка .лимит-процент .подпись { font-size: 14px; color: var(--чернила-2); }
.лимит-сводка .лимит-срок { margin: 0; font-size: 13px; color: var(--чернила-3); }
.лимит-сводка.внимание { border-color: var(--внимание-край); }
.лимит-сводка.исчерпан { border-color: color-mix(in oklab, var(--акцент) 55%, var(--линия)); }
.лимит-сводка.исчерпан .лимит-процент .цифры { color: var(--акцент); }
.заметка-лимита { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--чернила-2); }
.заметка-лимита.внимание { color: var(--внимание); }
.заметка-лимита.исчерпан b { color: var(--акцент); }
.что-расходует { margin: 0; padding: 0 0 0 1.1em; display: grid; gap: 4px; font-size: 13.5px; line-height: 1.5; color: var(--чернила-2); }
.окно-баланса .тихо { margin: 0; font-size: 12.5px; color: var(--чернила-3); }
.кнопки-лимита { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin-top: 10px; }
.кнопки-лимита .кнопка-рамка[disabled], .цена-кнопки .кнопка-рамка[disabled] { opacity: .6; cursor: not-allowed; gap: 8px; }
.кнопки-лимита .скоро, .цена-кнопки .скоро { height: 18px; font-size: 10.5px; }
/* над полем вопроса — только при 80 % и больше */
.предупреждение-лимита { margin: 0 2px 6px; font-size: 12.5px; line-height: 1.45; color: var(--чернила-2); }
.предупреждение-лимита.внимание { color: var(--внимание); }
.предупреждение-лимита.исчерпан { color: var(--акцент); }
.предупреждение-лимита.блок { padding: 10px 12px; border: 1px solid color-mix(in oklab, var(--акцент) 45%, var(--линия)); border-radius: 8px;
  background: var(--акцент-фон); color: var(--чернила); font-size: 13.5px; }
.предупреждение-лимита.блок p { margin: 0; }
.предупреждение-лимита.блок b { color: var(--акцент); }
.предупреждение-лимита.блок .кнопки-лимита { margin-top: 8px; }
.предупреждение-лимита .баланс-ссылка { color: inherit; }
/* настройки → профиль: «Практика · 37 %» с полоской */
.баланс-в-настройках { height: auto; min-height: 40px; padding-block: 6px; }
.тариф-строка { display: grid; gap: 5px; min-width: 112px; text-align: left; }
.тариф-строка .полоска-тарифа { height: 4px; }
.баланс-в-настройках.исчерпан { border-color: var(--акцент); color: var(--акцент); }
.баланс-в-настройках.внимание { border-color: var(--внимание-край); }
/* карточка «Сделать»: «≈ 3 % лимита», ниже — потолок */
.карточка-цены .цена-сумма .ед { font-size: 15px; }
.карточка-цены .цена-нехватка { color: var(--акцент); }
@media (max-width: 767px) {
  /* телефон: обе кнопки в один ряд, если влезают; блок над полем — не выше трёх строк текста и ряда кнопок */
  .предупреждение-лимита.блок { padding: 10px 12px; }
  .предупреждение-лимита.блок .кнопки-лимита { gap: 8px; }
  .предупреждение-лимита.блок .кнопки-лимита > button { flex: 1 1 auto; min-height: 44px; padding-inline: 10px; font-size: 13.5px; white-space: nowrap; }
  .предупреждение-лимита.блок .кнопки-лимита > .кнопка-тихая { border: 1px solid var(--рамка-поля); border-radius: 4px; justify-content: center; }
}

/* ПРАВКИ_41: «Как вам работа с ассистентом в этом деле?» — плашка над полем вопроса. Спокойная: тонкая рамка, без цвета
   тревоги; три кнопки и «×». На телефоне — над полем (не у нижнего края), кнопки в ряд по 44 px. */
.оценка-плашка { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; margin: 0 0 8px; padding: 8px 40px 8px 14px;
  border: 1px solid var(--линия-сильная); border-radius: 8px; background: var(--панель); color: var(--чернила); font-size: 13.5px;
  animation: оценка-появление var(--плавно) var(--кривая); }
.оценка-плашка p { margin: 0; flex: 1 1 220px; line-height: 1.4; }
.кнопки-оценки { display: flex; gap: 6px; }
.кнопка-оценки { height: 32px; padding: 0 12px; border-radius: 4px; border: 1px solid var(--рамка-поля); background: var(--поле); color: var(--чернила);
  font-size: 13px; font-weight: 500; white-space: nowrap; transition: border-color var(--быстро), background var(--быстро), color var(--быстро); }
.кнопка-оценки:hover { border-color: var(--акцент); color: var(--акцент); background: var(--акцент-фон); }
.закрыть-оценку { position: absolute; top: 50%; right: 6px; translate: 0 -50%; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 4px;
  color: var(--чернила-2); }
.закрыть-оценку:hover { background: var(--наведение); color: var(--чернила); }
.закрыть-оценку .и { width: 16px; height: 16px; }
.оценка-плашка.спасибо { justify-content: center; padding-right: 14px; color: var(--чернила-2); }
.оценка-плашка.спасибо p { flex: none; }
@keyframes оценка-появление { from { opacity: 0; translate: 0 4px; } }
@media (prefers-reduced-motion: reduce) { .оценка-плашка { animation: none; } }
@media (max-width: 767px) {
  .оценка-плашка { padding: 10px 44px 10px 12px; gap: 8px; }
  .оценка-плашка p { flex-basis: 100%; }
  .кнопки-оценки { flex: 1 1 100%; }
  .кнопка-оценки { flex: 1 1 0; min-height: 44px; padding-inline: 6px; font-size: 14px; }
  .закрыть-оценку { top: 6px; translate: none; width: 36px; height: 36px; }
  .оценка-плашка.спасибо { padding-right: 12px; }
}

/* ── ПРАВКИ_43: строка «расчёты · лимит», дисклеймер своей строкой, рейка в линию с полем, вкладки, звезда, огоньки ──
   1. Под полем — одна строка: три расчёта и плашка «Лимит · 37 %», крайние у краёв колонки, промежутки равные
      (space-between). Узкая колонка — подписи короче (`.кратко`), без переноса; расчётов нет — лимит один справа.
   2. Дисклеймер — своей строкой ниже, по центру, Inter 12 px, чернила-3 (своя строка — Inter встаёт в одну строку).
   6. Рейка (компьютер): «Ближайшее» — вровень с полем вопроса (верх и низ, высота — исходная высота поля), линия над
      ним — на уровне верха поля; «имя · шестерёнка» — на уровне строки расчётов. Значения — `выровнятьНизРейки()`.
   8–9. Две вертикали рейки: левая — иконки (лупа, «+», папка, календарь) с одного отступа `--ик` от края рейки, подписи —
      с одного края за ними; правая — «Скрыть список дел», микрофон поиска, стрелка «Ближайшего», шестерёнка и звёздочка
      дела — правый край иконок на том же `--ик` от правого края рейки. Иконки — 16 px.
   7. Вкладки панели — по всей ширине, крайние у краёв. 11–12. Звезда крупнее (символ), огоньки разбора крупнее. */
.инструменты { flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 8px; min-height: 28px; container: инструменты / inline-size; }
.инструменты.без-расчётов { justify-content: flex-end; }
.инструменты button[data-д="расчёт"] { flex: 0 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* подпись на виду — одна из трёх (остальные display: none — их нет и в имени кнопки для чтеца) */
.инструменты .кратко, .инструменты .мини { display: none; }
@container инструменты (max-width: 540px) { .инструменты .полно { display: none; } .инструменты .кратко { display: inline; } }
@container инструменты (max-width: 420px) { .инструменты .кратко { display: none; } .инструменты .мини { display: inline; } }
.инструменты .баланс-счётчик { flex: none; }
.баланс-счётчик .полоска-тарифа { height: 1px; }
.под-полем { display: block; margin: 6px 2px 0; min-height: 0; }
.дисклеймер { font: 400 12px/1.45 var(--ui); color: var(--чернила-3); text-align: center; text-wrap: balance; }

@media (min-width: 768px) {
  .рейка { --ик: 29px; --кн: 32px; --кн-поиск: 30px; --поле-в: 54px; --низ-рейки: 83px; --ряд-низа: 22px; }
  /* левая вертикаль: иконка — с `--ик`, подпись — с `--ик` + 16 + 8 */
  .рейка-поиск > .и { left: calc(var(--ик) - 16px); }
  .рейка-поиск input { padding-left: calc(var(--ик) - 16px - 1px + 16px + 8px); padding-right: 40px; }
  .мини-календарь, .мини-календарь.открыт { padding-inline: 16px; }
  .мк-строка { gap: 8px; padding-left: calc(var(--ик) - 16px); }
  .мк-строка .и { width: 16px; height: 16px; }
  /* правая вертикаль: правый край иконки — `--ик` от правого края рейки */
  .знак { gap: 10px; } .знак-подпись { min-width: 0; }   /* узкая рейка (1024): строка знака не вылезает за край — кнопка остаётся на вертикали */
  .рейка .свернуть-рейку { flex: none; width: var(--кн); height: var(--кн); margin-right: calc(var(--ик) - (var(--кн) - 16px) / 2 - 20px); }
  .свернуть-рейку .и { width: 16px; height: 16px; }
  .рейка-поиск .микрофон-поиска { right: calc(var(--ик) - 16px - (var(--кн-поиск) - 16px) / 2); }
  .рейка .мк-переключить { width: var(--кн); height: var(--кн); margin-right: calc(var(--ик) - (var(--кн) - 16px) / 2 - 16px); }
  .рейка-низ .настройки-кнопка { width: var(--кн); height: var(--кн); padding: 0; justify-content: center; margin-right: calc(var(--ик) - (var(--кн) - 16px) / 2 - 20px); }
  .дело-строка .значки { margin-right: calc(var(--ик) - 20px); }
  .дело-строка .звёздочка { width: 16px; height: 16px; }
  .шапка-группы > .заг-группы:last-child .и-группы { margin-right: calc(var(--ик) - 16px); }   /* стрелка группы — на той же правой вертикали */
  /* низ рейки — в линию с полем вопроса и строкой расчётов */
  .мини-календарь:not(.открыт) { height: var(--поле-в); display: flex; flex-direction: column; justify-content: center; padding-block: 0; }
  .рейка-низ { position: relative; display: block; height: var(--низ-рейки); padding: 0; border-top: 0; }
  .рейка-низ .ряд { position: absolute; left: 20px; right: 20px; top: var(--ряд-низа); translate: 0 -50%; gap: 8px; }
  .рейка-низ .кто-я { flex: 1 1 auto; min-width: 0; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}
@media (min-width: 768px) and (pointer: coarse) { .рейка { --кн: 44px; --кн-поиск: 44px; } }
@media (min-width: 1024px) { .панель .вкладки { justify-content: space-between; gap: 12px; } }
.идёт-разбор { width: 10px; height: 10px; margin-top: 4px; border-width: 1.5px; }
.шаги li::before { width: 11px; height: 11px; }

/* ── ПРАВКИ_44: «идёт обработка» — сканирование листа; настройки; карточка реквизитов; страницы без входа ──────────
   Лист A4: `мал` 18×24 — строка дела, шапка дела (оцифровка, разметка), окно загрузки; `бол` 44×58 — пустое состояние
   «Дело разбирается». Сверху вниз за 2 с проходит линия Bordeaux (тот же жест, что прочерк цитаты), под ней лист закрыт
   «бумагой» — за линией проявляются строчки; внизу строчки держатся и гаснут (0,4 с), цикл заново. Движутся только
   translate и opacity. Без анимации (готов, prefers-reduced-motion) — лист заполнен и неподвижен. Фаза — `--фаза` от
   общего часа (`общее.js`, data-скан): перерисовка не начинает проход заново, листы на экране идут вместе.
   Единственное исключение из «движение ≤ 250 мс» — индикатор длительного процесса (DESIGN.md, «Движение»). */
.лист-скан { --период-скана: 2400ms; --лист-фон: var(--поле); --лист-строка: var(--чернила-3); --лист-луч: var(--акцент); --луч: 1px;
  position: relative; display: inline-block; flex: none; width: 18px; height: 24px; overflow: hidden; vertical-align: middle;
  background: var(--лист-фон); border: 1px solid var(--линия-сильная); border-radius: 1.5px;
  /* «Бумага» из словаря теней, по размеру листа */
  box-shadow: 0 1px 2px color-mix(in oklab, var(--onyx) 6%, transparent), 0 4px 10px -6px color-mix(in oklab, var(--onyx) 30%, transparent); }
.лист-скан.бол { width: 44px; height: 58px; border-radius: 2px; --луч: 1.5px;
  box-shadow: 0 1px 2px color-mix(in oklab, var(--onyx) 6%, transparent), 0 10px 28px -18px color-mix(in oklab, var(--onyx) 30%, transparent); }
html[data-тема="тёмная"] .лист-скан { --лист-фон: var(--рейка-2); --лист-строка: var(--рейка-тихо); }   /* луч — --акцент тёмной темы (Bordeaux 48 % в Ivory) */
.лист-скан > i { position: absolute; inset: 0; display: block; }
.лист-скан .строки i { position: absolute; left: 17%; height: 1px; background: var(--лист-строка); }
.лист-скан .строки i:nth-child(1) { top: 20%; width: 50%; }
.лист-скан .строки i:nth-child(2) { top: 34%; width: 66%; }
.лист-скан .строки i:nth-child(3) { top: 48%; width: 58%; }
.лист-скан .строки i:nth-child(4) { top: 62%; width: 66%; }
.лист-скан .строки i:nth-child(5) { top: 76%; width: 40%; }
/* «бумага» под линией: в покое — ниже листа (лист заполнен); в проходе — едет сверху вниз и открывает строчки */
/* линия — псевдоэлементом, не рамкой: рамку 1,5 px Chrome на экране 1× округляет до 1 px. «Бумага» под линией закрывает
   строчки не целиком (75 %): пустой лист в рейке читался бы как флажок, а так это всегда лист с текстом */
.лист-скан .луч { background: color-mix(in oklab, var(--лист-фон) 75%, transparent); translate: 0 calc(100% + 2px); }
.лист-скан .луч::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: var(--луч); background: var(--лист-луч); }
.лист-скан[data-скан] .луч { animation: скан-луч var(--период-скана) linear var(--фаза, 0ms) infinite; }
.лист-скан[data-скан] .строки { animation: скан-строки var(--период-скана) linear var(--фаза, 0ms) infinite; }
/* проход 0–83 % (2 с): мягкий разгон и торможение. --кривая (.16, 1, .3, 1) на 2 с проходит полпути за 0,2 с — скачок */
@keyframes скан-луч {
  0% { translate: 0 -2px; animation-timing-function: cubic-bezier(.33, .12, .25, 1); }
  83.3% { translate: 0 calc(100% + 2px); }
  100% { translate: 0 calc(100% + 2px); }
}
/* дошла до низа — строчки держатся 0,1 с и гаснут за 0,25 с до 25 % (как под «бумагой» — новый проход начинается без
   скачка); пауза перед новым проходом — 0,4 с */
@keyframes скан-строки { 0%, 87.5% { opacity: 1; animation-timing-function: ease-out; } 98%, 100% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .лист-скан .луч, .лист-скан .строки { animation: none !important; } }

/* где лист: строка дела в рейке (вместо огонька «идёт разбор»), шапка дела, пустое состояние, окно загрузки */
.дело-строка .значки .лист-скан { margin-top: 2px; }
.статус-строка .лист-скан { margin: -3px 0; }
.пусто .лист-скан.бол { display: block; margin: 0 0 20px; }
.загрузка-итог.с-листом { display: flex; align-items: center; gap: 10px; }

/* ── Настройки (ПРАВКИ_44): тариф строкой, «Пригласить коллегу · скоро», «Выйти» последней строкой ── */
.тихая-ссылка { display: inline; padding: 0; border: 0; background: none; color: var(--чернила-2); font: inherit; cursor: pointer;
  text-decoration: underline; text-decoration-color: var(--линия-сильная); text-decoration-thickness: 1px; text-underline-offset: .25em;
  transition: color var(--быстро) ease-out, text-decoration-color var(--быстро) ease-out; }
.тихая-ссылка:hover { color: var(--чернила); text-decoration-color: currentColor; }
.строка-настройки .тариф-текст { font-size: 14px; color: var(--чернила); }
.строка-настройки .тариф-текст .тихо { font-size: inherit; }
.строка-настройки .тариф-текст.внимание .цифры { color: var(--чернила); font-weight: 600; }
.строка-настройки .тариф-текст.исчерпан .цифры { color: var(--акцент); font-weight: 600; }
.строка-настройки .справа .тихая-ссылка { font-size: 13.5px; }
.пригласить .пояснение-скоро { margin: 2px 0 8px; font-size: 13px; color: var(--чернила-3); }
.настройки .выход-настроек { padding: 18px 0 28px; }
@media (pointer: coarse) { .строка-настройки .справа .тихая-ссылка { display: inline-block; padding: 12px 0; margin: -12px 0; } }

/* ── Карточка реквизитов G&P (ПРАВКИ_44, П13 из 14_ПРАВО.md): 3–4 строки, «Скопировать» справа вверху, ссылки под ней ── */
.карточка-реквизитов { margin: 10px 0 0; padding: 12px 16px 13px; border: 1px solid var(--линия); border-radius: 8px; background: var(--панель);
  font: 400 13.5px/1.55 var(--ui); color: var(--чернила-2); overflow-wrap: anywhere; }
.карточка-реквизитов p { margin: 0; }
.карточка-реквизитов .имя-реквизитов { margin: 0 0 3px; font: 600 17px/1.3 var(--заголовок); color: var(--чернила); }
.карточка-реквизитов .подпись-реквизита { font: 400 12px/1.5 var(--ui); color: var(--чернила-3); }
.карточка-реквизитов .номер-реквизита .цифры { color: var(--чернила); }
.карточка-реквизитов .точка { color: var(--чернила-3); }
.карточка-реквизитов a { color: inherit; text-decoration-color: var(--линия-сильная); }
.карточка-реквизитов .скопировать-реквизиты { float: right; margin: 0 0 4px 16px; font: 400 12.5px/1.6 var(--ui); }
.ссылки-реквизитов { margin: 8px 0 0; font: 400 12.5px/1.6 var(--ui); color: var(--чернила-3); }
.ссылки-реквизитов .тихая-ссылка { color: var(--чернила-2); }
.реквизиты-настроек .ссылки-реквизитов { margin-left: 2px; }
@media (max-width: 767px) {
  .карточка-реквизитов .номер-реквизита { display: block; }
  .карточка-реквизитов .номера-реквизитов .точка { display: none; }
}
/* под текстом условий — лист Ivory в любой теме: карточка — светлыми токенами */
.согласие-текст { --чернила: var(--onyx); --чернила-2: color-mix(in oklab, var(--slate) 84%, var(--ivory)); --чернила-3: color-mix(in oklab, var(--slate) 72%, var(--ivory));
  --линия: color-mix(in oklab, var(--platinum) 62%, var(--ivory)); --линия-сильная: color-mix(in oklab, var(--platinum) 92%, var(--slate));
  --панель: color-mix(in oklab, var(--ivory) 93%, var(--platinum)); --акцент: var(--bordeaux); }
.вход .согласие-текст .карточка-реквизитов p { margin: 0; color: var(--чернила-2); }
.вход .согласие-текст .карточка-реквизитов .имя-реквизитов { color: var(--чернила); margin-bottom: 3px; }
.вход .согласие-текст .ссылки-реквизитов { margin: 8px 0 0; color: var(--чернила-3); }
.галочка-согласия a { color: inherit; text-underline-offset: .2em; }
/* экран входа: одна тихая строка «Условия · Политика обработки персональных данных» под формой */
.вход .документы-входа { margin: 4px 0 0; font-size: 12.5px; line-height: 1.6; text-align: center; color: color-mix(in oklab, var(--platinum) 70%, var(--onyx)); }
.вход .документы-входа a { color: inherit; text-decoration-color: color-mix(in oklab, var(--platinum) 40%, var(--onyx)); text-underline-offset: .25em; }
.вход .документы-входа a:hover { color: var(--platinum); }
.вход:has(> .документы-входа) { grid-template-rows: 1fr auto; }
.вход:has(> .документы-входа) > .карта-входа, .вход:has(> .документы-входа) > form { align-self: center; }

/* ── Страницы без входа: /политика, /возврат, /условия (152-ФЗ ст. 18.1) — текст как у условий, внизу реквизиты ── */
html.страница-документа, html.страница-документа body { height: auto; overflow: auto; overscroll-behavior: auto; }
.документ-страница { max-width: 760px; margin: 0 auto; padding: 40px 32px 56px; }
.документ-шапка { display: flex; align-items: center; gap: 18px; margin: 0 0 28px; }
.документ-шапка .знак-gp { flex: none; display: grid; place-items: center; height: 44px; min-width: 84px; padding: 0 12px; border: 1px solid var(--линия-сильная);
  font: 500 20px/1 var(--знак); letter-spacing: .12em; color: var(--чернила); text-decoration: none; }
.документ-шапка h1 { margin: 0; font: 600 30px/1.15 var(--заголовок); color: var(--чернила); text-wrap: balance; }
.документ-подпись { margin: 4px 0 0; font-size: 13px; color: var(--чернила-3); }
.документ-текст { font: 400 18px/1.6 var(--текст); color: var(--чернила); }
.документ-текст p { margin: 0 0 .8em; }
.документ-текст h2, .документ-текст h3 { margin: 1.3em 0 .4em; font: 600 22px/1.25 var(--заголовок); }
.документ-текст > :first-child { margin-top: 0; }
.документ-текст ul { margin: 0 0 .8em; padding-left: 1.2em; }
.документ-текст li { margin: 0 0 .45em; }
.документ-текст strong { font-weight: 600; }
.документ-низ { margin: 32px 0 0; padding: 18px 0 0; border-top: 1px solid var(--линия); }
.документ-низ h2 { margin: 0; font: 600 20px/1.25 var(--заголовок); color: var(--чернила); }
@media (max-width: 767px) {
  .документ-страница { padding: 20px 16px calc(32px + env(safe-area-inset-bottom)); }
  .документ-шапка { gap: 14px; margin-bottom: 20px; }
  .документ-шапка .знак-gp { height: 40px; min-width: 72px; font-size: 18px; }
  .документ-шапка h1 { font-size: 24px; }
  .документ-текст { font-size: 17px; }
}

/* ── ПРАВКИ_45: тумблер — многослойный (референс Петра — kombai, toggle 59; стиль G&P) ─────────────────────────────
   Одна компонента на кабинет и /админ/ (`тумблер.js`). Слои снизу вверх:
   · дорожка — утоплена: фон `панель` (тёмная — `рейка-2`), внутренняя тень из Onyx в transparent;
   · подложка — цветной слой под капсулой: «вкл» Bordeaux, «выкл» `чернила-3`; видна узкой полоской 5 px с той стороны,
     откуда капсула приехала (правило одной капли), и догоняет капсулу с отставанием 50 мс;
   · капсула — длиннее половины дорожки (32 из 52): смесь Ivory и Platinum в oklab, мягкий блик сверху и тень снизу —
     затухание одного цвета в прозрачность (не градиент между цветами), рамка 1 px `линия-сильная`, тень «Бумага» по
     размеру капсулы (лежит поверх дорожки);
   · кнопка — круг на ведущем конце капсулы с рифлением: 3 линии 1 px `чернила-3`.
   Движение: капсула и кнопка — 220 мс по `--кривая`, подложка — тем же временем с задержкой 50 мс; только translate и
   цвет подложки, без масштаба, пружин и отскоков. Нажатие — тень короче. Перерисовка (innerHTML) не обрывает ход:
   `--тумблер-с` — отрицательная задержка от момента щелчка. prefers-reduced-motion — сразу в конечное положение. */
:root {
  --т-ш: 52px; --т-в: 28px; --т-зазор: 2px; --т-к: 32px; --т-выгляд: 4px; --т-кнопка: 18px;
  --т-путь: calc(var(--т-ш) - 2 * var(--т-зазор) - var(--т-к));                /* 16 px */
  --т-кнопка-путь: calc(var(--т-к) - 2px - 2 * 2px - var(--т-кнопка));          /* 8 px: внутри рамки капсулы, по 2 px от краёв */
  --тумблер-ход: 220ms; --тумблер-отстаёт: 50ms;
  --тумблер-дорожка: var(--панель);
  --тумблер-вдавлено: color-mix(in oklab, var(--onyx) 22%, transparent);
  --тумблер-край: color-mix(in oklab, var(--onyx) 9%, transparent);
  --тумблер-капсула: color-mix(in oklab, var(--ivory) 66%, var(--platinum));
  --тумблер-блик: color-mix(in oklab, var(--ivory) 95%, transparent);
  --тумблер-низ: color-mix(in oklab, var(--platinum) 75%, transparent);
  --тумблер-кнопка-фон: color-mix(in oklab, var(--platinum) 42%, var(--ivory));
  --тумблер-рифление: var(--чернила-3);
  --тумблер-вкл: var(--bordeaux);
  --тумблер-выкл: var(--чернила-3);
  --тумблер-рамка: var(--линия-сильная);
  /* «Бумага» по размеру капсулы — как у малого листа (ПРАВКИ_44); нажата — только ближняя часть */
  --тумблер-тень: 0 1px 2px color-mix(in oklab, var(--onyx) 6%, transparent), 0 4px 10px -6px color-mix(in oklab, var(--onyx) 30%, transparent);
  --тумблер-тень-нажат: 0 1px 2px color-mix(in oklab, var(--onyx) 6%, transparent);
}
html[data-тема="тёмная"] {
  --тумблер-дорожка: var(--рейка-2);
  --тумблер-вдавлено: color-mix(in oklab, var(--onyx) 85%, transparent);
  --тумблер-край: color-mix(in oklab, var(--onyx) 60%, transparent);
  --тумблер-капсула: color-mix(in oklab, var(--platinum) 72%, var(--ivory));
  --тумблер-блик: color-mix(in oklab, var(--ivory) 80%, transparent);
  --тумблер-низ: color-mix(in oklab, var(--slate) 45%, transparent);
  --тумблер-кнопка-фон: color-mix(in oklab, var(--platinum) 82%, var(--ivory));
  --тумблер-рифление: color-mix(in oklab, var(--slate) 72%, var(--platinum));   /* на светлой капсуле — тёмная линия */
  --тумблер-вкл: var(--акцент-линия);   /* ПРАВКИ_50: #8E3A50 86 % — 3,3 : 1 к дорожке; чистый #8E3A50 — 2,4 : 1 */
  --тумблер-рамка: color-mix(in oklab, var(--platinum) 60%, var(--slate));
  --тумблер-тень: 0 1px 2px color-mix(in oklab, var(--onyx) 40%, transparent), 0 4px 10px -6px color-mix(in oklab, var(--onyx) 70%, transparent);
  --тумблер-тень-нажат: 0 1px 2px color-mix(in oklab, var(--onyx) 40%, transparent);
}
.тумблер { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none; vertical-align: middle;
  width: var(--т-ш); height: var(--т-в); padding: 0; border: 0; border-radius: calc(var(--т-в) / 2); background: none; cursor: pointer;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.тумблер .дорожка { position: relative; display: block; flex: none; width: var(--т-ш); height: var(--т-в); overflow: hidden; border-radius: calc(var(--т-в) / 2);
  background: var(--тумблер-дорожка);
  box-shadow: inset 0 1px 3px var(--тумблер-вдавлено), inset 0 2px 6px -2px var(--тумблер-вдавлено), inset 0 0 0 1px var(--тумблер-край); }
.тумблер .дорожка > i, .тумблер .капсула > i { position: absolute; display: block; }
.тумблер .подложка, .тумблер .капсула { top: var(--т-зазор); left: var(--т-зазор); width: var(--т-к); height: calc(var(--т-в) - 2 * var(--т-зазор));
  border-radius: calc((var(--т-в) - 2 * var(--т-зазор)) / 2); }
.тумблер .подложка { background: var(--тумблер-выкл); translate: var(--т-выгляд) 0; }
.тумблер .капсула { box-sizing: border-box; border: 1px solid var(--тумблер-рамка);
  background: linear-gradient(to bottom, var(--тумблер-блик), transparent 55%), linear-gradient(to top, var(--тумблер-низ), transparent 50%), var(--тумблер-капсула);
  box-shadow: var(--тумблер-тень); transition: box-shadow var(--быстро) ease-out, border-color var(--быстро); }
.тумблер .кнопка { top: 2px; left: 2px; width: var(--т-кнопка); height: var(--т-кнопка); border-radius: 50%; background: var(--тумблер-кнопка-фон);
  box-shadow: inset 0 1px 1.5px color-mix(in oklab, var(--onyx) 16%, transparent), inset 0 -1px 0 color-mix(in oklab, var(--ivory) 70%, transparent); }
/* рифление: три вертикальные линии 1 px — средняя и две тенью-копией по ±3 px */
.тумблер .кнопка::before { content: ""; position: absolute; left: calc(50% - .5px); top: calc(50% - 3.5px); width: 1px; height: 7px; background: var(--тумблер-рифление);
  box-shadow: -3px 0 0 var(--тумблер-рифление), 3px 0 0 var(--тумблер-рифление); }
.тумблер[aria-checked="true"] .капсула { translate: var(--т-путь) 0; }
.тумблер[aria-checked="true"] .кнопка { translate: var(--т-кнопка-путь) 0; }
.тумблер[aria-checked="true"] .подложка { background: var(--тумблер-вкл); translate: calc(var(--т-путь) - var(--т-выгляд)) 0; }
/* ход — после щелчка (и в перерисованном узле — с того же места) */
.тумблер[data-тумблер-ход] .капсула { animation: тумблер-капсула-выкл var(--тумблер-ход) var(--кривая) var(--тумблер-с, 0ms) both; }
.тумблер[data-тумблер-ход] .кнопка { animation: тумблер-кнопка-выкл var(--тумблер-ход) var(--кривая) var(--тумблер-с, 0ms) both; }
.тумблер[data-тумблер-ход] .подложка { animation: тумблер-подложка-выкл var(--тумблер-ход) var(--кривая) calc(var(--тумблер-с, 0ms) + var(--тумблер-отстаёт)) both; }
.тумблер[data-тумблер-ход][aria-checked="true"] .капсула { animation-name: тумблер-капсула-вкл; }
.тумблер[data-тумблер-ход][aria-checked="true"] .кнопка { animation-name: тумблер-кнопка-вкл; }
.тумблер[data-тумблер-ход][aria-checked="true"] .подложка { animation-name: тумблер-подложка-вкл; }
@keyframes тумблер-капсула-вкл { from { translate: 0 0; } to { translate: var(--т-путь) 0; } }
@keyframes тумблер-капсула-выкл { from { translate: var(--т-путь) 0; } to { translate: 0 0; } }
@keyframes тумблер-кнопка-вкл { from { translate: 0 0; } to { translate: var(--т-кнопка-путь) 0; } }
@keyframes тумблер-кнопка-выкл { from { translate: var(--т-кнопка-путь) 0; } to { translate: 0 0; } }
@keyframes тумблер-подложка-вкл { from { translate: var(--т-выгляд) 0; background-color: var(--тумблер-выкл); } to { translate: calc(var(--т-путь) - var(--т-выгляд)) 0; background-color: var(--тумблер-вкл); } }
@keyframes тумблер-подложка-выкл { from { translate: calc(var(--т-путь) - var(--т-выгляд)) 0; background-color: var(--тумблер-вкл); } to { translate: var(--т-выгляд) 0; background-color: var(--тумблер-выкл); } }
.тумблер:hover:not(:disabled) .капсула { border-color: var(--рамка-поля); }
.тумблер:active:not(:disabled) .капсула { box-shadow: var(--тумблер-тень-нажат); }
.тумблер:focus-visible { outline: none; }
.тумблер:focus-visible::after { content: ""; position: absolute; left: 50%; top: 50%; width: calc(var(--т-ш) + 8px); height: calc(var(--т-в) + 8px); translate: -50% -50%;
  box-sizing: border-box; border: 2px solid var(--акцент); border-radius: calc(var(--т-в) / 2 + 4px); pointer-events: none; }
.тумблер:disabled { cursor: not-allowed; }
.тумблер:disabled .дорожка { opacity: .5; }
.тумблер:disabled .капсула { box-shadow: none; }
/* касание — цель не меньше 44 px: вид тот же, поле нажатия выше */
@media (pointer: coarse) { .тумблер { height: 44px; min-width: 52px; border-radius: 0; } }
@media (prefers-reduced-motion: reduce) { .тумблер .капсула, .тумблер .кнопка, .тумблер .подложка { animation: none !important; transition: none !important; } }

/* ── ПРАВКИ_45, попутно: низ рейки — две секции. «Ближайшее» и «имя · шестерёнка» — каждая своя рамка (1 px `линия`,
   радиус 8 — как у поля вопроса), между ними линия 1 px во всю ширину рейки с равными промежутками `--низ-шаг` сверху и
   снизу. Рамка «Ближайшего» по-прежнему вровень с полем вопроса (ПРАВКИ_43): верх и низ — как у поля; линия над ней
   ушла на `--низ-шаг` вверх. Содержимое внутри рамок на прежних вертикалях иконок (`--ик` от краёв рейки): поля рамки
   считаются от них. Имя — по левому краю значка «Ближайшего» (вертикаль иконок). Телефон — без изменений (строки нет). */
@media (min-width: 768px) {
  .рейка { --низ-шаг: 12px; --низ-поле: 12px; }
  .мини-календарь, .мини-календарь.открыт { padding: var(--низ-шаг) var(--низ-поле) 0; }
  .мк-рамка { border: 1px solid var(--линия); border-radius: 8px; padding: 6px calc(16px - var(--низ-поле) - 1px) 10px; }
  .мини-календарь:not(.открыт) { height: auto; display: block; padding-block: var(--низ-шаг) 0; }
  .мини-календарь:not(.открыт) .мк-рамка { box-sizing: border-box; height: var(--поле-в); display: flex; flex-direction: column; justify-content: center; padding-block: 0; }
  /* линия-разделитель и карточка имени */
  .рейка-низ { display: block; box-sizing: border-box; height: max(var(--низ-рейки), calc(2 * var(--низ-шаг) + 1px + var(--кн) + 10px + 8px));
    padding: calc(2 * var(--низ-шаг) + 1px) var(--низ-поле) 0; }
  .рейка-низ::before { content: ""; position: absolute; left: 0; right: 0; top: var(--низ-шаг); height: 1px; background: var(--линия); }
  .рейка-низ .ряд { position: static; translate: none; display: flex; align-items: center; gap: 8px; box-sizing: border-box; min-height: calc(var(--кн) + 10px);
    padding: 4px 0 4px calc(var(--ик) - var(--низ-поле) - 1px); border: 1px solid var(--линия); border-radius: 8px; }
  .рейка-низ .настройки-кнопка { flex: none; margin-right: calc(var(--ик) - (var(--кн) - 16px) / 2 - var(--низ-поле) - 1px); }
  /* вариант для сравнения на снимке (T-501): имя — по левому краю подписи «Ближайшее» */
  .рейка[data-имя-по="подписи"] .рейка-низ .ряд { padding-left: calc(var(--ик) + 16px + 8px - var(--низ-поле) - 1px); }
}

/* ── ПРАВКИ_45, попутно: вкладки правой панели «Лист · Опись · Наши документы» — каждая в рамке (1 px `линия`, радиус 8,
   как поле вопроса и «Ближайшее»), три рамки равной ширины на всю панель с равными промежутками и отступами от краёв;
   подпись и счётчик — по центру. Активная — рамка `линия-сильная` и текст `чернила`, без черты (с рамкой черта лишняя;
   вариант с чертой внутри рамки — `data-черта`, для сравнения на снимке). Узкая панель: «Наши документы» — в две строки
   по центру, не обрезается. */
@media (min-width: 768px) {
  .панель .вкладки { --вкл-поле: 12px; height: 52px; box-sizing: border-box; align-items: stretch; justify-content: stretch; gap: 8px; padding: 8px var(--вкл-поле); }
  .панель .вкладка { flex: 1 1 0; min-width: 0; justify-content: center; text-align: center; padding: 0 6px; line-height: 1.2; border: 1px solid var(--линия); border-radius: 8px;
    color: var(--чернила-2); transition: color var(--быстро), background-color var(--быстро), border-color var(--быстро); }
  .панель .вкладка:hover { background: var(--наведение); color: var(--чернила); }
  .панель .вкладка[aria-selected="true"] { border-color: var(--линия-сильная); color: var(--чернила); }
  .панель .вкладка[aria-selected="true"]::after { content: none; }
  .панель .вкладки[data-черта] .вкладка[aria-selected="true"]::after { content: ""; left: 14px; right: 14px; bottom: 4px; height: 2px; border-radius: 1px; background: var(--акцент); }
  .панель .вкладка:focus-visible { outline-offset: 2px; border-radius: 8px; }
  .панель .вкладки .закрыть-панель { flex: none; margin-left: 0; }
  .панель .вкладки:has(.вкладка .хвост-вкладки) { height: auto; min-height: 52px; }
  .панель .вкладка .хвост-вкладки { margin-left: calc(.3em - 6px); }   /* «Наши документы»: промежуток — как пробел, не 6 px */
}
/* «Наши» и « документы» — разные флекс-элементы: перенос — флекс-строкой, промежуток — как пробел */
@container панель (max-width: 409px) { .вкладка .хвост-вкладки { display: inline; } .панель .вкладка { flex-wrap: wrap; align-content: center; column-gap: .3em; row-gap: 0; padding-block: 2px; } .панель .вкладка .хвост-вкладки { margin-left: 0; } }
/* ПРАВКИ_45: строка настроек с тумблером — тумблер всегда справа, на любой ширине (длинная подпись переносится сама) */
.строка-настройки:has(> .справа > .тумблер) { flex-wrap: nowrap; }
.строка-настройки:has(> .справа > .тумблер) > div:first-child { flex: 1 1 auto; min-width: 0; }
.строка-настройки > .справа:has(> .тумблер) { flex: none; text-align: right; }

/* ── ПРАВКИ_46: шестерёнка без квадрата; строка «Уведомления на телефон» ───────────────────────────────────────────
   Шестерёнка — как значки правой вертикали: без подложки и рамки в покое, при наведении и когда «Настройки» открыты.
   Наведение и «открыто» — только цветом значка (`чернила` вместо `чернила-2`); «открыто» — ещё тонкая черта Bordeaux
   под значком (одним цветом разница чернил на 16 px почти не видна). Цель касания ≥ 44 px — невидимая (::before),
   кнопка и вертикаль значка не сдвигаются; фокус с клавиатуры — общее кольцо. */
.рейка-низ .настройки-кнопка { position: relative; background: none; border: 0; color: var(--чернила-2); transition: color var(--быстро); }
.рейка-низ .настройки-кнопка:hover, .рейка-низ .настройки-кнопка[aria-current="true"] { background: none; color: var(--чернила) !important; }
.рейка-низ .настройки-кнопка::before { content: ""; position: absolute; inset: min(0px, calc((var(--кн, 32px) - 44px) / 2)); }
.рейка-низ .настройки-кнопка[aria-current="true"]::after { content: ""; position: absolute; left: 50%; translate: -50% 0; width: 16px; height: 2px;
  bottom: calc((var(--кн, 32px) - 16px) / 2 - 5px); border-radius: 1px; background: var(--акцент); }
.рейка-низ .настройки-кнопка:focus-visible { outline-offset: 2px; border-radius: 4px; }

/* строка телефона: «Разрешить»/«Проверить» — слева от тумблера; на телефоне — под подписью, тумблер остаётся справа */
#уведомления-настройки .строка-телефона > .справа { display: flex; align-items: center; gap: 12px; }
@media (max-width: 767px) {
  #уведомления-настройки .строка-телефона { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 16px; row-gap: 8px; align-items: center; }
  #уведомления-настройки .строка-телефона > .справа { display: contents; }
  #уведомления-настройки .строка-телефона > .справа > .кнопка-рамка { grid-column: 1; grid-row: 2; justify-self: start; height: 44px; }
  #уведомления-настройки .строка-телефона > .справа > .тумблер { grid-column: 2; grid-row: 1; }
}

/* ── ПРАВКИ_47: расчёты, цифры заголовков, тумблер мягче, без подчёркиваний ─────────────────────────────────────────
   п. 1 — поля карточки расчёта на одном уровне в любом состоянии: строки сетки не растягивают подпись (раньше у
   «Суд»/«Заявление» без строки-пояснения подпись вытягивалась на 30 px и поле съезжало вниз на 11 px); подпись — одна
   строка (длинная — многоточием, полностью — в подсказке); фокус — рамка `акцент` и кольцо тенью снаружи, геометрия не
   меняется. */
.поле-расчёта { align-content: start; }
.поле-расчёта > .подпись-поля { display: block; height: 18px; line-height: 18px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.поле-расчёта input, .поле-расчёта .выпадающий-кнопка { box-sizing: border-box; height: 38px; border-width: 1px; }
.поле-расчёта input:focus, .поле-расчёта input:focus-visible { outline: none; border-color: var(--акцент); box-shadow: 0 0 0 1px var(--акцент); }
.поле-расчёта .выпадающий-кнопка:focus-visible { outline: none; border-color: var(--акцент); box-shadow: 0 0 0 1px var(--акцент); border-radius: 4px; }
.поле-расчёта input:user-invalid, .поле-расчёта input[aria-invalid="true"] { border-color: var(--акцент); }
.поле-расчёта > small, .поле-расчёта > .откуда { min-height: 16px; line-height: 16px; }
@media (max-width: 767px) { .поле-расчёта input, .поле-расчёта .выпадающий-кнопка { height: 44px; } }

/* п. 4 — тумблеры расчёта отдельной строкой под полями, по той же сетке колонок; подпись справа, центр по вертикали */
.флаги-расчёта { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px 16px; padding: 0 18px 14px; margin-top: -2px; }
.флаг-расчёта { display: flex; align-items: center; gap: 10px; min-height: 32px; min-width: 0; font-size: 13px; line-height: 1.3; color: var(--чернила); cursor: pointer; }
.флаг-расчёта > span { min-width: 0; }
@media (max-width: 767px) { .флаги-расчёта { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; padding: 0 14px 12px; } .флаг-расчёта { min-height: 44px; } }

/* п. 2 — низ карточки: формат (PDF / Word, сегменты как «Тема»), «Скачать …» и «Сохранить в «Наши документы»» —
   кнопки одной высоты в рамке; выбор формата помнится на устройстве (`gp-формат-расчёта`) */
.действия-расчёта { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; flex-basis: 100%; }
.действия-расчёта .кнопка-рамка { height: 36px; }
.действия-расчёта .формат-расчёта { flex-wrap: nowrap; }
.действия-расчёта .формат-расчёта button { height: 30px; padding: 0 12px; }
.низ-расчёта .разбор-низ > .тихо { flex-basis: 100%; }

/* п. 3 — цифры: в шрифте заголовков (Cormorant) и текста ответов (EB Garamond) по умолчанию старостильные — «395»
   прыгает по высоте. Везде — прописные (lining): признак `lnum` наследуется и не сбрасывается `tabular-nums` (это другое
   свойство), колонки цифр остаются моноширинными. */
body { font-feature-settings: "cv11", "ss01", "lnum"; }
/* `font:` у заголовков сбрасывает font-variant — поэтому с весом не ниже их правил */
.корень :is(h1, h2, h3, h4), .подсказка-дела :is(h3, .пд-кто), .расчёт-шапка b { font-variant-numeric: lining-nums; }
.цифры { font-variant-numeric: lining-nums tabular-nums; }

/* п. 5 — рифление кнопки тумблера: из палитры. Вариант А (по умолчанию) — Slate в Platinum, светлее прежнего
   `чернила-3`; вариант Б — с лёгким Bordeaux (`html[data-рифление="б"]` — для показа Петру). Форма и ход — прежние. */
:root { --тумблер-рифление: color-mix(in oklab, var(--slate) 38%, var(--platinum)); }
html[data-тема="тёмная"] { --тумблер-рифление: color-mix(in oklab, var(--slate) 55%, var(--platinum)); }
html[data-рифление="б"] { --тумблер-рифление: color-mix(in oklab, var(--bordeaux) 30%, var(--platinum)); }
html[data-тема="тёмная"][data-рифление="б"] { --тумблер-рифление: color-mix(in oklab, var(--bordeaux) 45%, var(--platinum)); }

/* п. 6 — без подчёркиваний: строка расчётов под полем и «Лимит · N %». Кликабельное видно наведением — цвет
   `чернила` и курсор-рука, не линией. */
.инструменты button, .инструменты .баланс-счётчик, .инструменты .баланс-счётчик * { text-decoration: none; }
.инструменты button { cursor: pointer; transition: color var(--быстро); }
.инструменты button:hover, .инструменты button:focus-visible { color: var(--чернила); }

/* п. 17 — стрелка «Истец → Ответчик»: вариант 1 «Тонкая длинная» — SVG 42×20, линия 1,3, круглые концы; ширина
   1,05 em, по центру строчных букв (vertical-align: middle — середина высоты строчных), отступы 0,32 em; цвет — смесь
   Slate/Ivory 70/30 (тёмная — Platinum/Onyx 80/20). Заголовок дела, рейка, поиск, подсказка дела, календарь. */
:root { --стрелка-дела: color-mix(in oklab, var(--slate) 70%, var(--ivory)); }
html[data-тема="тёмная"] { --стрелка-дела: color-mix(in oklab, var(--platinum) 80%, var(--onyx)); }
.стрелка-дела { white-space: nowrap; }
.стрелка-дела svg { display: inline-block; width: 1.05em; height: .5em; margin: 0 .32em; vertical-align: middle; overflow: visible; color: var(--стрелка-дела); }
.шапка-дела h1 .стрелка-дела svg { position: relative; top: -.02em; }

/* п. 14 — вкладки панели: открытая видна сразу — постоянная заливка (темнее наведения), рамка `линия-сильная`, текст
   `чернила`, 600; наведение на неоткрытую — светлее открытой */
:root { --вкладка-открыта: color-mix(in oklab, var(--platinum) 36%, var(--ivory)); --вкладка-наведение: color-mix(in oklab, var(--platinum) 15%, var(--ivory)); }
html[data-тема="тёмная"] { --вкладка-открыта: color-mix(in oklab, var(--slate) 86%, var(--platinum)); --вкладка-наведение: color-mix(in oklab, var(--slate) 55%, var(--onyx)); }
@media (min-width: 768px) {
  .панель .вкладка:hover:not([aria-selected="true"]) { background: var(--вкладка-наведение); color: var(--чернила); }
  .панель .вкладка[aria-selected="true"], .панель .вкладка[aria-selected="true"]:hover { background: var(--вкладка-открыта); border-color: var(--линия-сильная); color: var(--чернила); font-weight: 600; }
}

/* п. 12 — без лупы: щелчок по листу ничего не приближает (приближение — двойным щелчком и «+ / −» с клавиатуры), курсор —
   обычная стрелка везде: сканы, «Наши документы», опись, предпросмотр Word/PDF */
.лист.скан img, .лист.скан.приближен img, .лист-ленты .картинка-листа img, .лента-листов[data-масштаб] .картинка-листа img { cursor: default; }

/* п. 7 — документ-дополнение: без розового фона строки (прежние правила `.док-строка.новый` убраны); метка «новый» — Bordeaux текстом перед датой (подсказка —
   прежняя). Снимается, когда юрист открыл документ, или через 7 дней (считает площадка). Компьютер и телефон — одно. */
.метка-новый { margin-right: .5em; color: var(--акцент); font-weight: 600; }

/* п. 9 — настройки «оглавление + карточки» (вариант В). Компьютер: оглавление 190 px слева стоит на месте при прокрутке
   (`sticky` под шапкой экрана), текущий — фон карточки и черта Bordeaux 2 px слева; справа карточки: фон чуть светлее
   страницы, рамка 1 px `линия`, скругление 12, шапка — заголовок и одна строка пояснения, под ней линия; строки — через
   тонкую линию. Телефон — фишки под заголовком, листаются вбок, остаются при прокрутке. */
:root { --карточка-настроек: color-mix(in oklab, var(--ivory) 70%, white); }
html[data-тема="тёмная"] { --карточка-настроек: color-mix(in oklab, var(--onyx) 74%, var(--slate)); }
.шапка-экрана:has(.назад-настроек) { max-width: 980px; }
.настройки.вид-оглавление { max-width: 980px; display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 32px; align-items: start; padding: 20px 32px 48px; }
.настройки.вид-оглавление section { border-bottom: 0; }
.оглавление-настроек { position: sticky; top: 76px; z-index: 3; }
.оглавление-ряд { display: grid; gap: 2px; }
.пункт-оглавления { display: block; width: 100%; text-align: left; padding: 7px 12px; border-radius: 8px; font-size: 14px; line-height: 1.35; color: var(--чернила-2);
  transition: color var(--быстро); }
.пункт-оглавления:hover { color: var(--чернила); }
.пункт-оглавления[aria-current="true"] { color: var(--чернила); background: var(--карточка-настроек); box-shadow: inset 2px 0 0 var(--акцент); }
.карточки-настроек { display: grid; gap: 20px; min-width: 0; }
.настройки.вид-оглавление .карточка-настроек { background: var(--карточка-настроек); border: 1px solid var(--линия); border-radius: 12px; padding: 18px 20px 6px; scroll-margin-top: 88px; min-width: 0; }
.карточка-настроек:focus { outline: none; }
.шапка-карточки { padding-bottom: 10px; border-bottom: 1px solid var(--линия); }
.шапка-карточки h2 { margin: 0; font: 600 22px/1.15 var(--заголовок); }
.шапка-карточки .пояснение-раздела { margin: 4px 0 0; font-size: 13.5px; line-height: 1.4; color: var(--чернила-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.строки-настроек > .строка-настройки:first-child, .строки-настроек > :first-child .строка-настройки:first-child { border-top: 0; }
.строки-настроек > .строка-настройки { border-top: 1px solid var(--линия); }
.строки-настроек > .строка-настройки:first-child { border-top: 0; }
.строки-настроек > p.тихо, .строки-настроек > .пояснение-скоро { margin: 12px 0; }
.настройки.вид-оглавление .выход-настроек.карточка-настроек { padding-block: 6px; }
@media (max-width: 1100px) and (min-width: 768px) { .настройки.вид-оглавление { grid-template-columns: 168px minmax(0, 1fr); gap: 24px; padding-inline: 24px; } }
@media (max-width: 767px) {
  .настройки.вид-оглавление { display: block; padding: 0 12px calc(var(--над-краем) + 24px); }
  .оглавление-настроек { top: var(--верх-оглавления, 56px); margin: 0 -12px 14px; padding: 4px 16px 12px; background: var(--поле); border-bottom: 1px solid var(--линия); }
  .оглавление-ряд { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain; }
  .оглавление-ряд::-webkit-scrollbar { display: none; }
  .пункт-оглавления { flex: none; width: auto; min-height: 36px; padding: 6px 12px; border: 1px solid var(--линия-сильная); border-radius: 999px; font-size: 13px; white-space: nowrap; }
  .пункт-оглавления[aria-current="true"] { background: var(--кнопка); color: var(--кнопка-текст); border-color: var(--кнопка); box-shadow: none; }
  .карточки-настроек { gap: 14px; }
  .настройки.вид-оглавление .карточка-настроек { padding: 14px 14px 4px; scroll-margin-top: 120px; }
  .шапка-карточки { padding-bottom: 8px; }
  .шапка-карточки h2 { font-size: 20px; }
  /* подписи над значениями, тумблеры справа */
  .строки-настроек .строка-настройки:not(:has(> .справа > .тумблер)) { flex-direction: column; align-items: flex-start; gap: 8px; }
  .строки-настроек .строка-настройки:not(:has(> .справа > .тумблер)) > .справа { text-align: left; }
}
.шапка-карточки:last-child { padding-bottom: 12px; border-bottom: 0; }

/* п. 16 — верх трёх колонок на одной линии. `--ось-шапки` — середина первой строки названия дела (отступ шапки 22 px +
   половина строки заголовка 30 × 1,12). Название не поднимаем — опускаем рейку целиком (строка знака: логотип G&P и
   «Свернуть» — на оси; поиск, «Новое дело», списки — ниже на столько же; «Ближайшее» внизу на месте) и верх панели
   (вкладки по центру на оси). */
@media (min-width: 768px) {
  .корень { --ось-шапки: calc(22px + 30px * 1.12 / 2); }
  .рейка .знак { box-sizing: content-box; height: 64px; padding-top: calc(var(--ось-шапки) - 32px); }
  .панель .вкладки { padding-top: calc(var(--ось-шапки) - 17.5px); height: calc(var(--ось-шапки) + 17.5px + 8px); }
  .панель .вкладки:has(.вкладка .хвост-вкладки) { height: calc(var(--ось-шапки) + 17.5px + 8px); min-height: 0; }
}
/* узкая панель: «Наши документы» в две строки — в той же высоте вкладки (35 px), центр остаётся на оси */
@media (min-width: 768px) { @container панель (max-width: 409px) { .панель .вкладка { padding-block: 0; line-height: 1.1; } } }

/* п. 13 — нижние линии шапки дела и шапки панели встык: общая высота (`--высота-шапки`, считает выровнятьШапки()) —
   центр тянется до неё, шапка панели (лист, опись, наши) — до неё за вычетом вкладок (`--шапка-панели`). Содержимое
   центра — сверху (название на оси), шапки панели — по середине. */
@media (min-width: 1024px) {
  .центр > .шапка-дела { box-sizing: border-box; min-height: var(--высота-шапки, 0px); align-content: start; }
  .панель-тело > .лист-шапка:first-child, .панель-тело > .опись-итог:first-child { box-sizing: border-box; min-height: var(--шапка-панели, 0px); }
  .панель-тело > .лист-шапка:first-child { align-content: center; }
}

/* п. 11 — пустое поле вопроса всегда в одну строку (высота — из CSS, не из подсказки) */
#вопрос:placeholder-shown { overflow: hidden; }

/* п. 18 — заготовки, пока дело открывается: та же разметка и высота, что у разобранного дела, без надписи по центру */
.заготовка-строк { display: block; }
.заготовка-строк i { display: block; height: 1lh; position: relative; }
.заготовка-строк i::before { content: ""; position: absolute; left: 0; top: 50%; translate: 0 -50%; width: 92%; height: .62em; border-radius: 4px; background: var(--наведение); }
.заготовка-строк i + i::before { width: 64%; }
.частые .заготовка-строк { flex: 1; } .частые .заготовка-строк i::before { width: 70%; }
.заготовка-описи { display: grid; gap: 0; padding: 4px 20px; border-top: 1px solid var(--линия); }
.заготовка-описи i { display: block; height: 52px; position: relative; }
.заготовка-описи i::before, .заготовка-описи i::after { content: ""; position: absolute; left: 0; height: 10px; border-radius: 4px; background: var(--наведение); }
.заготовка-описи i::before { top: 14px; width: 62%; } .заготовка-описи i::after { top: 32px; width: 28%; }
.заготовка-дела .работа-по-делу button { pointer-events: none; }
.поля-расчёта { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }   /* те же колонки, что у строки тумблеров */
@media (max-width: 767px) { .поля-расчёта { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* открытая вкладка: число на заливке — контраст AA и в тёмной теме */
@media (min-width: 768px) { .панель .вкладка[aria-selected="true"] .счёт { color: var(--чернила-2); } }

/* ── ПРАВКИ_48 п. 3 — артикул дела «Арт. 482-917» и документа «482-917/07» (решение № 43) ─────────────────────────
   Мелко, `чернила-3`, цифры прописные моноширинные; нажатие — копировать, «Скопировано» пузырьком над артикулом 1,4 с.
   Шапка дела: в конце строки реквизитов; на телефоне — справа в строке суда (суд сжимается многоточием), «№ · предмет»
   второй строкой целиком — строк столько же. */
.артикул { position: relative; display: inline; padding: 0; border: 0; background: none; font: inherit; font-size: 12px; color: var(--чернила-3);
  font-variant-numeric: tabular-nums lining-nums; letter-spacing: .01em; white-space: nowrap; cursor: copy; border-radius: 3px; }
.артикул:hover { color: var(--чернила-2); text-decoration: underline; text-decoration-color: color-mix(in oklab, currentColor 45%, transparent); text-underline-offset: 3px; }
.артикул:focus-visible { outline: 2px solid var(--чернила-3); outline-offset: 2px; }
.артикул::after { content: "Скопировано"; position: absolute; left: 50%; bottom: calc(100% + 6px); translate: -50% 2px; padding: 3px 8px; border-radius: 4px;
  background: var(--чернила); color: var(--поле); font: 500 11.5px/1.3 var(--ui); letter-spacing: 0; white-space: nowrap; pointer-events: none;
  opacity: 0; transition: opacity var(--быстро) ease, translate var(--быстро) ease; z-index: 30; }
.артикул.скопирован::after { opacity: 1; translate: -50% 0; }
.реквизиты .артикул { vertical-align: baseline; }
.лист-шапка .строка-шапки.вторая .артикул { flex: none; font-size: 11.5px; }
.о-документе-меню .артикул { margin-left: .5em; }
@media (max-width: 767px) {
  .реквизиты .суд-место { min-width: 0; }
  .реквизиты .артикул { order: 1; flex: none; margin-left: auto; padding: 6px 0 6px 10px; margin-block: -6px; font-size: 11.5px; }   /* цель касания выше, строка — та же */
  .реквизиты .реквизиты-хвост { order: 2; }
  .реквизиты .арт-точка { display: none; }
  /* строка реквизитов на телефоне обрезает всё, что над ней (overflow), — пузырёк слева от артикула, в той же строке */
  .реквизиты .артикул::after { left: auto; right: calc(100% + 4px); bottom: auto; top: 50%; translate: 3px -50%; }
  .реквизиты .артикул.скопирован::after { translate: 0 -50%; }
}
/* тесно в строке реквизитов (замер — местоАртикула) — артикул в строке состояния, реквизиты целы */
.арт-в-статусе { display: none; }
.шапка-дела.тесно .реквизиты .артикул, .шапка-дела.тесно .реквизиты .арт-точка { display: none; }
.шапка-дела.тесно .арт-в-статусе { display: inline; }
.шапка-дела.арт-скрыт .арт-в-статусе { display: none; }
.шапка-дела.арт-рано .статус-строка > :is(.лист-скан, .слово) { order: -2; }
.шапка-дела.арт-рано .арт-в-статусе { order: -1; }
@media (prefers-reduced-motion: reduce) { .артикул::after { transition: none; } }

/* ── ПРАВКИ_48 п. 1 — лист без плашки Яндекс.Браузера ──────────────────────────────────────────────────────────────
   Курсор до <img> не доходит — его ловит прозрачный слой (щелчки, двойной щелчок, правая кнопка); долгое касание на
   телефоне не предлагает «Сохранить картинку»: скачивание — нашей кнопкой. */
.картинка-листа img { pointer-events: none; user-select: none; -webkit-user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none; }
.слой-листа { position: absolute; inset: 0; z-index: 1; -webkit-touch-callout: none; }

/* ── ПРАВКИ_58 — «место из ответа» маркером (было П-48 п. 2: рамка 1,5 px с кольцом — на близких строках налезала) ──
   Скан, фото, PDF, Word → PDF: полоса на каждую строку цитаты (`.место-из-ответа`). Высота — высота строки текста:
   сервер берёт медианы верха и низа рамок слов строки без запаса и режет по середине с соседней строкой, так что полосы
   соседних строк не налезают (просмотр.py `место`). Края 2 px, без обводки и тени. Цвет — DESIGN.md «Цвета Proof»:
   Bordeaux 18 % поверх листа с `multiply` — буквы под маркером остаются чёрными; бумага светлая в обеих темах, значение
   одно. Маркер проводится слева направо, строка за строкой — 0,5 с на всю цитату (доля строки — по её ширине: задержка
   и длительность приходят в `data-маркер` → --мз и --мд), держится 2 с и гаснет за 0,8 с — исчезает целиком, как
   вспышка П-48. Фаза — общий час вспышки: просмотр.js `применитьВспышку` ставит --прошло, перерисовка не начинает
   заново. «Текст» (распознанный текст на поле темы) — тот же маркер фоном `<mark>`, по метке на абзац (строку OCR) с
   теми же --мз/--мд; внутри абзаца `box-decoration-break: slice` склеивает перенесённые строки в одну полосу, и фон
   проводится строкой за строкой; на тёмном поле — `#AB425F` (тёмное бордо таблицы) без multiply. Линию-закладку под цитатой маркер заменяет: жест «слева направо» теперь у него, а линия под полосой на
   плотном тексте касалась бы следующей строки. reduced-motion — маркер сразу, 1,5 с ровно, угасание 0,6 с. */
:root { --маркер-доля: 18%; --маркер-текст-доля: 18%; --маркер-текст: var(--bordeaux); --маркер-гаснет: 2500; }
html[data-тема="тёмная"] { --маркер-текст-доля: 30%; --маркер-текст: var(--акцент-линия); }
@property --мк { syntax: '<percentage>'; inherits: false; initial-value: 0%; }
.место-из-ответа { position: absolute; z-index: 2; pointer-events: none; opacity: 0; border-radius: 2px;
  background: color-mix(in oklab, var(--bordeaux) var(--маркер-доля), transparent); mix-blend-mode: multiply;
  clip-path: inset(0 100% 0 0 round 2px); }
.место-из-ответа.вспышка { opacity: 1; animation-name: маркер-провести, маркер-погасить;
  animation-duration: calc(var(--мд, 500) * 1ms), 800ms; animation-timing-function: linear, ease-in; animation-fill-mode: both, forwards;
  animation-delay: calc((var(--мз, 0) - var(--прошло, 0)) * 1ms), calc((var(--маркер-гаснет) - var(--прошло, 0)) * 1ms); }
@keyframes маркер-провести { from { clip-path: inset(0 100% 0 0 round 2px); } to { clip-path: inset(0 0 0 0 round 2px); } }
@keyframes маркер-погасить { to { opacity: 0; } }
mark.из-ответа { background: none; color: inherit; padding: 0; border-radius: 2px; text-decoration: none;
  box-decoration-break: slice; -webkit-box-decoration-break: slice; }
mark.из-ответа.вспышка { --мк: var(--маркер-текст-доля);
  background: linear-gradient(color-mix(in oklab, var(--маркер-текст) var(--мк), transparent), color-mix(in oklab, var(--маркер-текст) var(--мк), transparent)) no-repeat 0 0 / 100% 100%;
  animation-name: маркер-текст-провести, маркер-текст-погасить; animation-duration: calc(var(--мд, 500) * 1ms), 800ms;
  animation-timing-function: linear, ease-in; animation-fill-mode: both, forwards;
  animation-delay: calc((var(--мз, 0) - var(--прошло, 0)) * 1ms), calc((var(--маркер-гаснет) - var(--прошло, 0)) * 1ms); }
@keyframes маркер-текст-провести { from { background-size: 0% 100%; } to { background-size: 100% 100%; } }
@keyframes маркер-текст-погасить { to { --мк: 0%; } }
@media (prefers-reduced-motion: reduce) {     /* общее правило выше режет анимации до 1 мс — маркеру нужны его 1,5 + 0,6 с */
  .место-из-ответа.вспышка, mark.из-ответа.вспышка { clip-path: none; background-size: 100% 100%; animation-name: маркер-погасить;
    animation-duration: 600ms !important; animation-timing-function: ease-in; animation-fill-mode: forwards;
    animation-delay: calc((1500 - var(--прошло, 0)) * 1ms); }
  mark.из-ответа.вспышка { animation-name: маркер-текст-погасить; }
}

/* ── ПРАВКИ_48 п. 5 — вкладки панели по содержимому ─────────────────────────────────────────────────────────────────
   Ширина — по содержимому плюс равная доля остатка («Лист» уже «Описи»), внутренний отступ 12 px с каждой стороны,
   число — табличными цифрами через 6 px от подписи, «999+» вместо больших. «Наши документы N» в ряд не помещается —
   «Наши N» (`.кратко`, решает кабинет.js `подогнатьВкладки` замером в `.мерить`); полное — в title и aria-label.
   Переноса в две строки (ПРАВКИ_45) больше нет. */
@media (min-width: 768px) {
  .панель .вкладка { flex: 1 1 auto; padding: 0 12px; }
  .панель .вкладка :is(.счёт, .новых) { flex: none; }
  .панель .вкладки.мерить .вкладка { flex: none; }
  .панель .вкладки.кратко .хвост-вкладки { display: none; }
}
@container панель (max-width: 409px) {      /* узкая: без переноса (ПРАВКИ_45), зазор числа — те же 6 px, «Наши документы» — как пробел */
  .панель .вкладка { flex-wrap: nowrap; padding-block: 0; column-gap: 6px; }
  .вкладка .хвост-вкладки { display: inline; }
  .панель .вкладка .хвост-вкладки { margin-left: calc(.3em - 6px); }
}

/* ── ПРАВКИ_48 п. 6 — «Лимит · N %»: рамка, без черты под ней (полоски в разметке больше нет) ─────────────────────── */
.баланс-счётчик .полоска-тарифа { display: none; }

/* ── ПРАВКИ_48 п. 3, попутно (доступность): артикул — цель касания ≥ 44 px по высоте, строка та же ─────────────────
   Отступ 14 px сверху и снизу гасится таким же отрицательным полем (реквизиты — флекс); пузырёк и рамка фокуса — на
   прежнем месте у букв. В шапке дела — и в реквизитах, и в строке состояния (`.тесно`). */
.шапка-дела .артикул { padding-block: 14px; margin-block: -14px; }   /* реквизиты — флекс: без поля строка выросла бы */
@media (min-width: 768px) { .шапка-дела .артикул::after { bottom: calc(100% - 8px); } }   /* телефон: пузырёк слева, в строке */
.шапка-дела .артикул:focus-visible { outline-offset: -12px; }
.лист-шапка .строка-шапки.вторая .артикул { padding-block: 14px; margin-block: -14px; }

/* ── ПРАВКИ_49 → ПРАВКИ_53: тариф в кабинете ─────────────────────────────────────────────────────────────────────
   Экран «Выбрать тариф» (карточки, «Конструктор», переключатель оплаты, док на телефоне) убран (ПРАВКИ_53: «режет глаз,
   слишком много места»); тарифы показывает сайт Proof. Здесь — окно «Сменить тариф — оставьте заявку» (пока у сайта нет
   адреса): один выбор тарифа строками-переключателями и «Отправить»; и строка «Тариф» в настройках и в окне «Тариф». */
.окно-заявки p { margin: 0; font-size: 14px; line-height: 1.5; }
.окно-заявки .сейчас-тариф { font-size: 13.5px; color: var(--чернила-2); }
.окно-заявки .сейчас-тариф b { color: var(--чернила); font-weight: 600; }
.варианты-тарифа { display: grid; border-top: 1px solid var(--линия); }
.вариант-тарифа { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; min-height: 48px; padding: 6px 2px;
  border-bottom: 1px solid var(--линия); cursor: pointer; }
.вариант-тарифа input { width: 18px; height: 18px; margin: 0; accent-color: var(--акцент-линия); cursor: pointer; }
.вариант-тарифа .вариант-текст { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; min-width: 0; }
.вариант-тарифа b { font-size: 14.5px; font-weight: 600; color: var(--чернила); }
.вариант-тарифа small { font-size: 13px; color: var(--чернила-2); }
.вариант-тарифа.свой { cursor: default; }
.вариант-тарифа.свой b, .вариант-тарифа.свой small { color: var(--чернила-3); }
.вариант-тарифа:has(input:checked) b { color: var(--чернила); }
.вариант-тарифа:not(.свой):hover { background: var(--наведение); }
.окно-заявки .пояснение-заявки { font-size: 13px; color: var(--чернила-2); }
.окно-заявки .кнопки-окна { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.окно-заявки .кнопки-окна > * { height: 40px; }
.окно-заявки .кнопка-главная[disabled] { opacity: .5; cursor: not-allowed; }
.окно-заявки .ошибка { color: var(--акцент); font-size: 13px; }
/* «Тариф» в настройках и в окне «Тариф» */
.тариф-настроек .справа .точка { margin: 0 6px; color: var(--чернила-3); }
.строка-заявки small { font-size: 12.5px; color: var(--чернила-2); }
.строка-заявки.отказ small { color: var(--акцент); }
.окно-баланса .сменить-тариф-строка { margin: 4px 0 0; padding-top: 10px; border-top: 1px solid var(--линия); font-size: 14px; }
.окно-баланса .сменить-тариф-строка .тихая-ссылка { font-size: 14px; }
@media (pointer: coarse) {
  .вариант-тарифа { min-height: 52px; } .вариант-тарифа input { width: 22px; height: 22px; }
  .окно-заявки .кнопки-окна > * { height: 44px; }
  .окно-баланса .сменить-тариф-строка .тихая-ссылка { display: inline-block; padding: 12px 0; margin: -12px 0; }
}
@media (max-width: 767px) { .окно-заявки .кнопки-окна .кнопка-главная { flex: 1 1 auto; } }


/* ── ПРАВКИ_50: знак Proof слева вверху и бордо как акцент в обеих темах ──────────────────────────────────────────────
   Знак — «Proof» Cormorant Garamond 600 (Onyx на светлой, Ivory на тёмной), под ним «by Greydenberg & Partners» Inter
   (тихий текст рейки); оба — в одну строку, в ширину рейки до кнопки «скрыть». Квадратная точка после слова — всегда
   (ПРАВКИ_53; флаг ПРАВКИ_50 убран). Свёрнутая колонка — квадратный знак «P.» (иконка Б,
   уменьшенная) на кнопке «Показать список дел»; наведение и фокус — прежний значок рейки.
   Бордо — правило одной капли: точка, линия, слово, не плоскость; на экране не больше трёх видов акцента сразу.
   Где: «ответ готов» — квадратная точка у дела в списке; «Наши документы N» — маленькая плашка; «новый» / «новое» —
   словом; текущий документ описи — черта слева и подсветка; ссылка «Документ, л. N» — подчёркивание; черта активной
   вкладки; кольцо фокуса; тумблер «вкл»; главная кнопка при наведении; «Лимит · N %» от 80 %; выбранный тариф — рамка.
   «Внутреннее», нажатая кнопка панели и черта под шестерёнкой — без бордо (четвёртым акцентом они шумели). */
.знак-proof { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 4px; min-width: 0; color: var(--рейка-ярко); text-decoration: none; }
.слово-proof { display: inline-flex; align-items: baseline; font: 600 30px/.82 "Cormorant Garamond", var(--заголовок); letter-spacing: -.01em;
  color: var(--рейка-ярко); white-space: nowrap; font-variant-ligatures: none; }
.слово-proof i { display: none; flex: none; width: .11em; height: .11em; margin-left: .05em; background: var(--bordeaux); }
html[data-тема="тёмная"] .слово-proof i { background: var(--bordeaux-тм); }   /* знак — как в фирменном стиле, не токен акцента */
.знак-от { font: 500 10.5px/1.2 var(--ui); letter-spacing: .01em; color: var(--рейка-тихо); white-space: nowrap; }
.рейка .знак .знак-proof { flex: 1 1 auto; }
@media (max-width: 1279px) and (min-width: 1024px) { .слово-proof { font-size: 28px; } .знак-от { font-size: 10px; } }
/* свёрнутая колонка: «P.» — та же кнопка «Показать список дел»; значок рейки — при наведении и фокусе */
.показать-рейку .знак-кв { width: 26px; height: 26px; border-radius: 6px; display: block; }
.показать-рейку .знак-кв + .и { display: none; }
.показать-рейку:hover .знак-кв, .показать-рейку:focus-visible .знак-кв { display: none; }
.показать-рейку:hover .знак-кв + .и, .показать-рейку:focus-visible .знак-кв + .и { display: block; }
/* «ответ готов» — квадратная точка, как в знаке; уходит, когда дело открыто */
.ответ-готов { flex: none; width: 8px; height: 8px; margin: 5px 4px 0 0; background: var(--акцент-линия); }
.дело-строка[aria-current="true"] .ответ-готов { display: none; }
/* «Наши документы N», счётчик у дела — плашка под Ivory-цифрами */
.новых { background: var(--акцент-заливка); color: var(--акцент-на-заливке); }
/* главная кнопка и «Спросить» при наведении — на бордо Ivory (на тёмной Onyx-текст на #8E3A50 не читается) */
.кнопка-главная:hover:not(:disabled), .спросить:hover:not(:disabled) { color: var(--кнопка-текст-наведение); }
/* кольцо фокуса и черта активной вкладки — линия. Вкладки правой панели в рамках — без черты, как решено в ПРАВКИ_45
   (с ней на экране дела четвёртый акцент рядом со счётчиком «Наши N»); вариант с чертой — `data-черта`, на снимке */
:focus-visible { outline-color: var(--акцент-линия); }
.вкладка[aria-selected="true"]::after { background: var(--акцент-линия); }
/* черта под шестерёнкой «открыты настройки» — чернилами: на экранах настроек и тарифов бордо — у тумблеров и тарифа */
.рейка-низ .настройки-кнопка[aria-current="true"]::after { background: var(--рейка-ярко); }
@media (min-width: 768px) { .панель .вкладки[data-черта] .вкладка[aria-selected="true"]::after { background: var(--акцент-линия); } }
/* текущий документ описи: подсветка + черта слева; имя — словом */
.док-строка[aria-current="true"] { box-shadow: inset 2px 0 0 var(--акцент-линия); }
/* ссылка-закладка «Документ, л. N»: подчёркивание — бордовой линией; место из ответа — черта слева */
.источник { text-decoration-color: color-mix(in oklab, var(--акцент-линия) 70%, transparent); }
.место-ярлык { border-left-color: var(--акцент-линия); background: var(--акцент-фон); }
/* «Лимит · N %» от 80 % — словом и рамкой */
.баланс-счётчик.внимание { border-color: var(--акцент-линия); color: var(--акцент); }
.баланс-счётчик.внимание .полоска-тарифа::-webkit-progress-value { background: var(--акцент-линия); }
.баланс-счётчик.внимание .полоска-тарифа::-moz-progress-bar { background: var(--акцент-линия); }
/* без бордо: «внутреннее — клиенту не пересылать» (замок и слово — тихо), нажатая кнопка в шапке — подложкой */
.наш .внутр, .лист-шапка .внутр { color: var(--чернила-2); }
.кнопка-тихая[aria-pressed="true"][data-д="панель"] { color: var(--чернила); background: var(--наведение); }
.заг-группы .ответ-готов { margin: 0 0 0 2px; }


/* ── ПРАВКИ_51: папки — дело из папки, несколько дел сразу, путь у файла, архивы ─────────────────────────────── */
/* загрузка: путь папки у файла — тихо перед именем; «на площадке N из M» — тонкая полоса под сводкой */
.файл-путь { color: var(--чернила-3); }
.загрузка-сводка { position: relative; padding-bottom: 7px; }
.загрузка-сводка::before, .загрузка-сводка::after { content: ''; position: absolute; left: 0; bottom: 0; height: 2px; }
.загрузка-сводка::before { right: 0; background: var(--линия); }
.загрузка-сводка::after { width: calc(var(--доля, 0) * 100%); background: var(--чернила); transition: width var(--быстро) linear; }
.зона.телефонная .ряд-выбора { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
@media (pointer: coarse) { .зона.телефонная .ряд-выбора .кнопка-рамка { height: 44px; } }
/* подсказка «перетащите папку дела» — в пустом списке и в форме нового дела */
.подсказка-папки-текст { display: flex; align-items: flex-start; gap: 8px; color: var(--чернила-3) !important; font-size: 13.5px !important; line-height: 1.5; }
.подсказка-папки-текст .и { flex: none; margin-top: 2px; color: var(--чернила-3); }
.подсказка-папки-текст.в-форме { margin: -12px 0 22px; }
.подсказка-папки-текст .ссылка { font: inherit; color: var(--чернила-2); padding: 0; background: none; border: 0; cursor: pointer; }
@media (pointer: coarse) { .подсказка-папки-текст .ссылка { min-height: 44px; } .подсказка-папки-текст { align-items: center; } }
/* папку несут над рейкой / пустым списком / формой — туда она и ляжет новым делом */
body.папка-в-новое .рейка { box-shadow: inset 0 0 0 2px var(--акцент-линия); }
body.папка-в-новое .центр > .пусто, body.папка-в-новое form[data-д="форма-нового"] { outline: 2px dashed var(--акцент-линия); outline-offset: 8px; border-radius: 6px; }
body.папка-в-новое .рейка::after { content: 'Отпустите папку — заведу из неё дело'; position: fixed; z-index: 70; left: 12px; bottom: 16px;
  width: calc(var(--ширина-рейки) - 24px); box-sizing: border-box; padding: 10px 12px; border-radius: 6px; background: var(--акцент-заливка);
  color: var(--акцент-на-заливке); font: 500 13px/1.4 var(--ui); text-align: center; pointer-events: none; }
body.папка-в-новое .зона.над { border-color: var(--рамка-поля); border-style: dashed; background: none; }

/* окно «Новое дело из папки» / «Дела из папки» — как окно «Тариф» */
.окно-папки { width: min(560px, calc(100vw - 32px)); max-height: calc(var(--экран, 100vh) - 48px); overflow: auto; box-sizing: border-box; margin: auto;
  padding: 22px 24px 20px; background: var(--поле); color: var(--чернила); border: 1px solid var(--линия-сильная); border-radius: 10px;
  box-shadow: 0 30px 80px -30px color-mix(in oklab, var(--onyx) 70%, transparent); font-family: var(--ui); }
.окно-папки[open] { display: grid; gap: 12px; animation: появление-папки var(--плавно) var(--кривая); }
@keyframes появление-папки { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { .окно-папки[open] { animation: none; } .ход-полоса i, .загрузка-сводка::after { transition: none; } }
.окно-папки::backdrop { background: color-mix(in oklab, var(--onyx) 55%, transparent); }
.окно-папки .ряд-заголовка { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.окно-папки h2 { margin: 0; font: 600 24px/1.2 var(--заголовок); }
.окно-папки .откуда-папка { display: flex; align-items: center; gap: 6px; margin: -6px 0 0; font-size: 13px; color: var(--чернила-3); min-width: 0; }
.окно-папки .откуда-папка span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.окно-папки .поле-папки { display: grid; gap: 6px; font-size: 13px; font-weight: 500; color: var(--чернила-2); }
.окно-папки input[type="text"] { height: 44px; min-width: 0; padding: 0 12px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод);
  font: 15px var(--ui); color: var(--чернила); box-sizing: border-box; width: 100%; }
.окно-папки input[type="text"]:focus { outline: none; border-color: var(--чернила-2); box-shadow: 0 0 0 3px color-mix(in oklab, var(--platinum) 40%, transparent); }
.окно-папки input[type="text"]:disabled { color: var(--чернила-2); background: transparent; }
.итог-папки { margin: 0; font-size: 14.5px; color: var(--чернила); font-variant-numeric: tabular-nums; }
.дела-папки { list-style: none; margin: 0; padding: 0; display: grid; max-height: min(46vh, 420px); overflow: auto; border-top: 1px solid var(--линия); }
.дело-папки { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 4px 12px; padding: 10px 2px; border-bottom: 1px solid var(--линия); }
.галка-папки { display: grid; place-items: center; width: 32px; height: 40px; margin: 0 -6px; cursor: pointer; }
.дело-папки input[type="checkbox"] { width: 20px; height: 20px; margin: 0; accent-color: var(--акцент-линия); cursor: pointer; }
.дело-папки input[type="text"] { height: 40px; }
.сведения-папки { grid-column: 2; font-size: 12.5px; color: var(--чернила-3); }
.дело-папки.ок .сведения-папки { color: var(--чернила-2); }
.дело-папки.плохо .сведения-папки { color: var(--акцент); }
.тихо-папки { margin: 0; font-size: 13px; color: var(--чернила-3); line-height: 1.5; }
.отказы-папки { font-size: 13px; }
.отказы-папки summary { cursor: pointer; color: var(--чернила-2); padding: 4px 0; }
.отказы-папки ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; max-height: 180px; overflow: auto; }
.отказы-папки li { display: grid; gap: 2px; }
.отказы-папки .имя { color: var(--чернила); overflow-wrap: anywhere; }
.отказы-папки .почему { color: var(--чернила-3); font-size: 12.5px; }
.окно-папки .сменить-режим { justify-self: start; font: 14px var(--ui); padding: 0; background: none; border: 0; cursor: pointer; }
.окно-папки .ряд { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.окно-папки .ошибка { margin: 0; color: var(--акцент); font-size: 13px; }
@media (pointer: coarse) { .дело-папки input[type="checkbox"] { width: 24px; height: 24px; } .галка-папки { width: 44px; height: 44px; margin: 0 -10px; }
  .окно-папки .сменить-режим { min-height: 44px; }
  .окно-папки .кнопка-главная, .окно-папки .кнопка-рамка { height: 44px; } }
@media (max-width: 767px) {
  .окно-папки { width: 100vw; max-width: 100vw; max-height: calc(var(--экран, 100vh) - 24px); margin: auto 0 0; border-radius: 12px 12px 0 0;
    padding: 18px 16px calc(var(--над-краем) + env(safe-area-inset-bottom)); }
  .окно-папки .ряд .кнопка-главная { flex: 1 1 auto; }
}

/* общий ход загрузки папок — внизу слева, над низом рейки; на телефоне — над нижним рядом */
.ход-папок { position: fixed; z-index: 58; left: 12px; bottom: 64px; width: calc(var(--ширина-рейки) - 24px); box-sizing: border-box; display: grid; gap: 6px;
  padding: 10px 6px 10px 12px; background: var(--поле); color: var(--чернила); border: 1px solid var(--линия-сильная); border-radius: 8px;
  box-shadow: 0 12px 30px -16px color-mix(in oklab, var(--onyx) 60%, transparent); font: 13px/1.4 var(--ui); }
.ход-папок[hidden] { display: none; }
.ход-строка { display: flex; align-items: center; gap: 6px; margin: 0; }
.ход-текст { flex: 1; min-width: 0; font-variant-numeric: tabular-nums; }
.ход-строка .кнопка-тихая { width: 32px; height: 32px; flex: none; }
.ход-полоса { display: block; height: 3px; margin-right: 6px; background: var(--линия); border-radius: 2px; overflow: hidden; }
.ход-полоса i { display: block; height: 100%; background: var(--чернила); transition: width var(--быстро) linear; }
.ход-ошибки { margin: 0 6px 0 0; font-size: 12.5px; color: var(--акцент); }
.ход-ошибки .ссылка { font: inherit; color: inherit; padding: 0; background: none; border: 0; cursor: pointer; text-align: left; }
@media (max-width: 1023px) { .ход-папок { width: min(340px, calc(100vw - 24px)); } }
@media (max-width: 767px) { .ход-папок { left: 12px; right: 12px; width: auto; bottom: calc(var(--над-краем) + 64px + env(safe-area-inset-bottom)); } }
@media (pointer: coarse) { .ход-строка .кнопка-тихая { width: 44px; height: 44px; } }

/* документ описи: откуда — «Из папки: …», письмо, вложения; на телефоне — в «⋯» */
.происхождение { display: grid; gap: 2px; padding: 2px 0 8px; font-size: 12.5px; color: var(--чернила-2); min-width: 0; }
.происхождение p { margin: 0; overflow-wrap: anywhere; }
.из-папки { display: flex; align-items: center; gap: 6px; color: var(--чернила-3); }
.из-папки .и { flex: none; color: var(--чернила-3); }
.о-письме b { font-weight: 500; color: var(--чернила); }
.ссылка-док { font: inherit; color: var(--чернила); padding: 0; background: none; border: 0; cursor: pointer; text-decoration: underline;
  text-decoration-color: var(--линия-сильная); text-underline-offset: .2em; text-align: left; }
.ссылка-док:hover { color: var(--акцент); text-decoration-color: var(--акцент); }
.меню-документа .происхождение { padding: 4px 0 8px; border-bottom: 1px solid var(--линия); }
@media (pointer: coarse) { .ссылка-док { min-height: 32px; } }
/* «Не приняли» в описи: имя, причина словами, папка */
.не-принято ul { display: grid; }
.строка-не-принято { display: grid; gap: 2px; padding: 8px 12px 8px 16px; border-bottom: 1px solid var(--линия); font-size: 13px; }
.строка-не-принято .имя { color: var(--чернила); overflow-wrap: anywhere; }
.строка-не-принято .почему { color: var(--чернила-2); font-size: 12.5px; line-height: 1.45; }
.строка-не-принято .откуда { color: var(--чернила-3); font-size: 12px; overflow-wrap: anywhere; }


/* ── ПРАВКИ_53: точка в знаке всегда, счётчики — квадраты, насыщенное бордо в тёмной ─────────────────────────────────
   Знак — «Proof■» с квадратной бордовой точкой в обеих темах (как иконка «P.»): шапка, свёрнутая колонка, /админ/, телефон.
   Счётчики и метки — форма точки знака: квадрат (углы 2 px, не круг), цифра по центру, Ivory на бордо; 2–3 знака —
   прямоугольник той же высоты, больше 99 — «99+»; метка без числа — маленький квадрат. Кружков и «пилюль» у счётчиков нет. */
.слово-proof i { display: inline-block; }
.новых { min-width: 18px; height: 18px; padding: 0 4px; border-radius: 2px; font-size: 11px; line-height: 1; }
.вкладка .новых { min-width: 16px; height: 16px; padding: 0 3px; font-size: 10.5px; }
.суд-ещё { border-radius: 2px; }
.мк-день.заседание::after, .мк-день.срок::after, .неделя-дни .есть::after { border-radius: 0; }
.запись .точка-записи, .слушаю .точка-записи { border-radius: 1px; }

/* ── ПРАВКИ_32 (A10): фокус ветки и «Ассистент помнит» ─────────────────────────────────────────────────────────────
   Над полем вопроса: свёрнутая строка «Ассистент помнит: …» (раскрывается в записку по разделам) и ряд чипов «В фокусе».
   Цвета — только переменные палитры, тёмная тема — через них же. Телефон: чипы — одна строка с прокруткой вбок. */
.фокус-ряд { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 0 2px 6px; font-size: 12.5px; }
.фокус-подпись { flex: none; color: var(--чернила-3); font-size: 12px; }
.фокус-чип { display: inline-flex; align-items: center; gap: 6px; flex: none; max-width: 280px; padding: 2px 2px 2px 8px; border: 1px solid var(--рамка-поля);
  border-radius: 4px; background: var(--панель); color: var(--чернила); }
.фокус-чип > .и { flex: none; width: 14px; height: 14px; color: var(--чернила-3); }
.фокус-имя { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.фокус-чип.из-ответа { border-style: dashed; border-color: var(--линия-сильная); background: none; color: var(--чернила-2); }
.фокус-чип button { flex: none; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 3px; color: var(--чернила-3); }
.фокус-чип button:hover { background: var(--наведение); color: var(--чернила); }
.фокус-чип button .и { width: 14px; height: 14px; }

.помнит { margin: 0 2px 6px; font-size: 12.5px; color: var(--чернила-2); }
.помнит-строка { display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0; padding: 4px 6px; border-radius: 4px; text-align: left;
  color: var(--чернила-2); transition: background var(--быстро), color var(--быстро); }
.помнит-строка:hover { background: var(--наведение); color: var(--чернила); }
.помнит-строка > .и { flex: none; width: 14px; height: 14px; color: var(--чернила-3); }
.помнит-строка > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.помнит-записка { max-height: min(42vh, 360px); overflow-y: auto; overscroll-behavior: contain; margin-top: 4px; padding: 8px 10px 6px;
  border: 1px solid var(--линия); border-radius: 6px; background: var(--панель); }
.помнит-раздел + .помнит-раздел { margin-top: 8px; }
.помнит-раздел h3 { margin: 0 0 2px; font: 600 11px/1.4 var(--ui); letter-spacing: .06em; color: var(--чернила-3); }
.помнит-раздел ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.помнит-пункт { display: flex; align-items: flex-start; gap: 6px; padding: 3px 0; border-bottom: 1px solid var(--линия); }
.помнит-пункт:last-child { border-bottom: 0; }
.помнит-текст { flex: 1; min-width: 0; margin: 0; padding-top: 4px; color: var(--чернила); line-height: 1.45; overflow-wrap: anywhere; }
.помнит-метка { font-size: 11px; color: var(--чернила-3); white-space: nowrap; }
.помнит-кнопки { display: flex; flex: none; gap: 2px; }
.помнит-кнопки .кнопка-тихая { height: 28px; padding: 0 8px; font-size: 12px; font-weight: 400; color: var(--чернила-3); }
.помнит-кнопки .кнопка-тихая:hover { color: var(--чернила); }
.помнит-пункт.правится { flex-direction: column; align-items: stretch; }
.помнит-пункт.правится .помнит-кнопки { justify-content: flex-end; }
.помнит-поле { width: 100%; padding: 6px 8px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила);
  font-size: 13px; line-height: 1.45; resize: vertical; }
.помнит-поле:focus { outline: none; border-color: var(--чернила-2); box-shadow: 0 0 0 3px color-mix(in oklab, var(--platinum) 40%, transparent); }
.помнит-пусто { margin: 0; color: var(--чернила-3); }
.помнит-заново { height: 28px; margin-top: 6px; padding: 0 8px; font-size: 12px; font-weight: 400; color: var(--чернила-3); }

@media (max-width: 767px) {
  .фокус-ряд { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; margin: 0 0 6px; }
  .фокус-ряд::-webkit-scrollbar { display: none; }
  .фокус-чип { max-width: 200px; }
  .помнит { margin: 0 0 4px; }
  .помнит-записка { max-height: 38vh; }
  .помнит-пункт { flex-wrap: wrap; }
  .помнит-кнопки { margin-left: auto; }
}
@media (pointer: coarse) {
  .фокус-чип button { width: 36px; height: 32px; }
  .помнит-строка { min-height: 36px; }
  .помнит-кнопки .кнопка-тихая, .помнит-заново { min-height: 40px; height: 40px; }
  .помнит-поле { font-size: 16px; }
}

/* ── Общие папки (ПРАВКИ_52, решение № 44) — только за флагом: без него этих узлов нет ──────────────────────────── */
.заг-общих { display: flex; align-items: center; justify-content: space-between; margin: 14px 0 0; padding: 0 4px 2px 12px;
  font: 500 11.5px/1.4 var(--ui); color: var(--рейка-тихо); letter-spacing: .02em; border-top: 1px solid var(--рейка-линия); padding-top: 8px; }
.заг-общих .кнопка-тихая.иконка { width: 30px; height: 30px; color: var(--рейка-тихо); }
.заг-общих .кнопка-тихая.иконка:hover { color: var(--рейка-ярко); background: var(--рейка-2); }
.заг-общих + .ввод-папки, .ввод-папки.новая-общая { display: block; width: calc(100% - 8px); margin: 4px 4px 6px; }
.группа-дел.общая-группа:first-of-type { border-top: 0; }
.и-общей { color: var(--рейка-ярко); }
.строка-базы .кто { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.строка-базы .и-базы { width: 16px; height: 16px; flex: none; color: var(--рейка-тихо); }
.строка-базы[aria-current="true"] .и-базы { color: var(--рейка-ярко); }
.новое-в-общей { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 34px; margin: 0 0 6px; padding: 0 12px; border-radius: 4px;
  font-size: 12.5px; color: var(--рейка-тихо); text-align: left; }
.новое-в-общей:hover { background: var(--рейка-2); color: var(--рейка-ярко); }
.новое-в-общей .и { width: 14px; height: 14px; }
.общая-группа > .дело-строка:not(.строка-базы) { padding-left: 20px; }
.шапка-базы .реквизиты { display: flex; align-items: center; flex-wrap: wrap; gap: 0 4px; }
.шапка-базы .реквизиты .и-м, .чип-папки .и-м { width: 15px; height: 15px; color: var(--чернила-3); }
.чип-папки { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 8px; border: 1px solid var(--линия-сильная); border-radius: 4px;
  font-size: 12px; color: var(--чернила-2); max-width: 22ch; }
.чип-папки span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.чип-папки:hover { border-color: var(--рамка-поля); color: var(--чернила); }
.полоса-папки { display: grid; gap: 8px; margin: 0 20px 12px; padding: 12px 14px; border: 1px solid var(--линия-сильная); border-radius: 6px; background: var(--поле); font-size: 13px; }
.полоса-папки > p { display: flex; gap: 8px; align-items: flex-start; margin: 0; color: var(--чернила-2); line-height: 1.45; }
.полоса-папки > p .и-м { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--чернила-3); }
.полоса-папки .тихо { font-size: 12.5px; color: var(--чернила-3); }
.ряд-папки { display: flex; flex-wrap: wrap; gap: 6px; }
.ряд-папки .кнопка-рамка { height: 34px; font-size: 12.5px; }
.ряд-папки .кнопка-рамка .и { width: 14px; height: 14px; }
.ряд-папки .кнопка-рамка:disabled { color: var(--чернила-3); border-style: dashed; cursor: not-allowed; }
.новые-в-папке { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 6px 10px; border-radius: 4px; border: 1px solid var(--акцент-линия);
  color: var(--чернила); text-align: left; font-size: 13px; }
.новые-в-папке .и-м { width: 15px; height: 15px; color: var(--акцент); flex: none; }
.новые-в-папке b { color: var(--акцент); }
.новые-в-папке:hover { background: var(--акцент-фон); }
.поиск-в-папке { display: flex; gap: 6px; }
.поиск-в-папке input { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font: 14px var(--ui); }
.поиск-в-папке input:focus { outline: none; border-color: var(--чернила-2); }
.найдено-в-папке { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.найдено-в-папке li { display: grid; gap: 3px; padding: 8px 0; border-top: 1px solid var(--линия); }
.найдено-в-папке .имя { font-weight: 500; color: var(--чернила); }
.найдено-в-папке .откуда { font-size: 12px; color: var(--чернила-3); }
.найдено-в-папке .фрагмент { font: italic 13px/1.45 var(--текст); color: var(--чернила-2); }
.найдено-в-папке .кнопка-рамка { justify-self: start; height: 32px; font-size: 12.5px; margin-top: 2px; }
.снятые-ссылки summary { cursor: pointer; font-size: 12.5px; color: var(--чернила-2); }
.снятые-ссылки ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; }
.снятые-ссылки li { display: grid; gap: 2px; font-size: 12.5px; }
.снятые-ссылки .почему { color: var(--чернила-3); }
.снятые-ссылки .кнопка-тихая { justify-self: start; height: 30px; padding: 0 8px; font-size: 12px; }
.из-общей { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; padding: 0 5px; height: 18px; border: 1px solid var(--линия-сильная); border-radius: 3px;
  vertical-align: 1px; font: 500 10.5px/1 var(--ui); color: var(--чернила-2); letter-spacing: .01em; white-space: nowrap; }
.из-общей .и-м { width: 11px; height: 11px; }
.из-общей.подключается { border-style: dashed; color: var(--чернила-3); }
.правка-в-папке { display: grid; gap: 6px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--линия); }
.переименовать-док { display: flex; align-items: flex-end; gap: 6px; flex-wrap: wrap; }
.переименовать-док label { flex: 1 1 220px; display: grid; gap: 4px; font-size: 12px; color: var(--чернила-2); }
.переименовать-док input { height: 34px; padding: 0 10px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font: 13.5px var(--ui); }
.переименовать-док .кнопка-рамка { height: 34px; font-size: 12.5px; }
.правка-в-папке .кнопка-тихая { justify-self: start; height: 30px; padding: 0 8px; font-size: 12.5px; }
.правка-в-папке .ошибка, .полоса-папки .ошибка { margin: 0; font-size: 12.5px; color: var(--акцент); }
.история-документа { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 12.5px; color: var(--чернила-2); }
.история-документа .поле { color: var(--чернила-3); margin-right: 4px; }
.история-документа .кто { display: block; font-size: 11.5px; color: var(--чернила-3); }
.окно-общей { position: fixed; z-index: 61; inset: 50% auto auto 50%; translate: -50% -50%; width: min(640px, calc(100vw - 32px));
  height: min(720px, calc(var(--экран) - 48px)); display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 18px; background: var(--поле); color: var(--чернила);
  border: 1px solid var(--линия-сильная); border-radius: 10px; box-shadow: 0 30px 80px -30px color-mix(in oklab, var(--onyx) 70%, transparent);
  animation: появление-окна var(--плавно) var(--кривая); }
.окно-общей .ряд-заголовка { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex: none; }
.окно-общей h2 { margin: 0; font: 600 24px/1.2 var(--заголовок); }
.пояснение-окна { display: flex; gap: 8px; margin: 0; font-size: 13px; color: var(--чернила-2); line-height: 1.45; flex: none; }
.пояснение-окна .и-м { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--чернила-3); }
.ряд-фильтра { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; flex: none; }
.ряд-фильтра input[type="search"] { flex: 1 1 240px; min-width: 0; height: 38px; padding: 0 12px; border: 1px solid var(--рамка-поля); border-radius: 4px; background: var(--ввод); color: var(--чернила); font: 14px var(--ui); }
.ряд-фильтра input[type="search"]:focus { outline: none; border-color: var(--чернила-2); }
.список-выбора { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; border-top: 1px solid var(--линия); border-bottom: 1px solid var(--линия); padding: 4px 2px; }
.список-выбора > p { margin: 14px 4px; font-size: 13.5px; }
.список-выбора .тихо { color: var(--чернила-3); }
.категория-выбора { border: 0; margin: 0; padding: 6px 0 4px; }
.категория-выбора legend { padding: 0; width: 100%; }
.категория-выбора legend .галочка-строка { display: flex; align-items: center; gap: 10px; min-height: 32px; font-weight: 600; font-size: 12.5px; color: var(--чернила-2); }
.категория-выбора legend .счёт { margin-left: -4px; font-weight: 400; color: var(--чернила-3); }
.галочка-строка { display: grid; grid-template-columns: 20px 1fr; align-items: start; gap: 2px 10px; min-height: 36px; padding: 6px 6px; border-radius: 4px; cursor: pointer; }
.галочка-строка:hover { background: var(--наведение); }
.галочка-строка input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--акцент-линия); }
.документ-выбора .имя { font-size: 14px; color: var(--чернила); }
.документ-выбора .откуда { grid-column: 2; font-size: 12px; color: var(--чернила-3); }
.выбрать-все { min-height: 38px; align-items: center; font-size: 13px; color: var(--чернила-2); }
.выбрать-все input { margin: 0; }
.окно-общей .кнопки-окна { display: flex; gap: 10px; flex-wrap: wrap; flex: none; }
.окно-общей > .ошибка { margin: 0; color: var(--акцент); font-size: 13px; }
.блок-общей .в-папке-нового { display: flex; align-items: center; gap: 8px; margin: 6px 0 0; font-size: 14px; }
.блок-общей .в-папке-нового .и-м { width: 16px; height: 16px; color: var(--чернила-3); }
.блок-общей .в-папке-нового .кнопка-тихая { height: 30px; font-size: 12.5px; margin-left: auto; }
.блок-общей .выбор-нового { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 6px 0 0; font-size: 13px; color: var(--чернила-2); font-weight: 400; }
@media (max-width: 767px) {
  .окно-общей { inset: auto 0 0 0; translate: none; width: auto; height: calc(var(--экран) - 24px); border-radius: 12px 12px 0 0;
    padding: 18px 16px calc(14px + env(safe-area-inset-bottom)); animation: появление var(--плавно) var(--кривая); }
  .окно-общей h2 { font-size: 21px; }
  .окно-общей .кнопки-окна > * { flex: 1 1 0; height: 48px; }
  .ряд-фильтра input[type="search"], .поиск-в-папке input, .переименовать-док input { height: 44px; font-size: 16px; }
  .галочка-строка { min-height: 44px; padding: 10px 6px; }
  .ряд-папки .кнопка-рамка, .новые-в-папке, .найдено-в-папке .кнопка-рамка, .переименовать-док .кнопка-рамка { min-height: 44px; }
  .новое-в-общей { min-height: 44px; }
  .чип-папки { height: 28px; }
}
@media (pointer: coarse) { .заг-общих .кнопка-тихая.иконка { width: 44px; height: 44px; } .снятые-ссылки .кнопка-тихая, .правка-в-папке .кнопка-тихая { min-height: 44px; } }
@media (prefers-reduced-motion: reduce) { .окно-общей { animation: none; } }


/* ── ПРАВКИ_54: «Proof» везде, где юрист видит название ─────────────────────────────────────────────────────────────
   Знак-слово «Proof■» — как в рейке (Cormorant Garamond 600, квадратная точка 0,11 em), без рамки «G&P»: вход, «Доступ
   закрыт», «Условия и согласие» (всегда Onyx — Ivory, точка #8E3A50 из фирменного стиля), страницы /условия, /политика,
   /возврат (по теме: Onyx/Bordeaux на светлой, Ivory/#8E3A50 на тёмной). Фирма — одной тихой строкой «Proof от
   Greydenberg & Partners» внизу входа, рядом с «Условия · Политика»; на узком — строкой над ними. */
.знак-слово { display: inline-flex; align-items: baseline; flex: none; font: 600 1em/.82 "Cormorant Garamond", var(--заголовок); letter-spacing: -.01em;
  white-space: nowrap; font-variant-ligatures: none; color: inherit; text-decoration: none; }
.знак-слово i { display: inline-block; flex: none; width: .11em; height: .11em; margin-left: .05em; background: var(--bordeaux); }
html[data-тема="тёмная"] .знак-слово i, .вход .знак-слово i { background: var(--bordeaux-тм); }
.вход .знак-входа { justify-self: start; align-self: end; font-size: 46px; color: var(--ivory); padding: 6px 0 4px; }
.согласие-шапка .знак-входа { font-size: 40px; padding: 0; }
.документ-шапка .знак-слово { font-size: 34px; color: var(--чернила); }
.документ-шапка .знак-слово:focus-visible { outline: 2px solid var(--акцент); outline-offset: 4px; }
.вход .документы-входа .от-фирмы { color: color-mix(in oklab, var(--platinum) 70%, var(--onyx)); }
.документ-фирма { margin: 6px 0 0; font-size: 13px; color: var(--чернила-3); }
@media (max-width: 599px) {
  .вход .документы-входа .от-фирмы, .вход .документы-входа .ссылки-входа { display: block; }
  .вход .документы-входа .разд-фирмы { display: none; }
}
@media (max-width: 767px) {
  .вход .знак-входа { font-size: 42px; }
  .согласие-шапка .знак-входа { font-size: 34px; }
  .документ-шапка .знак-слово { font-size: 30px; }
}

/* ── ПРАВКИ_56: знак «Proof■» по центру на входе ────────────────────────────────────────────────────────────────────
   Вход (все способы), «Доступ закрыт», «Условия и согласие»: знак крупнее (46 → 64 px, телефон 42 → 56 px) и по центру
   по горизонтали; заголовок, строки и ссылки — тоже по центру, поле и кнопка — во всю ширину карты, как были. Главная
   строка «Код приглашения — от администратора практики.» на телефоне — 16,5 px и ровными строками (на 390 — одна строка,
   на 360 — две ровные), ничего не обрезается. Блоки «Причина» и «Связаться с практикой» — прежние плашки с чертой слева. */
.вход .карта-входа { text-align: center; }
.вход .знак-входа { justify-self: center; font-size: 64px; padding: 4px 0 6px; }
.вход .ссылка-входа, .вход .свой-qr { justify-self: center; }
.вход .свой-qr { justify-items: center; }
.вход .подпись-входа, .вход .тихо-входа { text-wrap: balance; }
.вход .причина-закрыто, .вход .контакт-закрыто { text-align: left; }
/* «Сохранить неотправленные снимки в файл» на 360–390 не помещалась строкой и раздвигала карту за экран (было и до
   П-56) — теперь переносится, карта в ширину экрана */
.вход .карта-входа > * { min-width: 0; }
.вход .выгрузка-закрыто .кнопка-главная { height: auto; min-height: 52px; padding: 12px 16px; white-space: normal; line-height: 1.3; text-wrap: balance; }
.согласие-шапка { flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.согласие-шапка .знак-входа { align-self: center; font-size: 52px; }
.вход .согласие-версия { text-wrap: balance; }
@media (max-width: 767px) {
  .вход .знак-входа { font-size: 56px; }
  .согласие-шапка { gap: 4px; }
  .согласие-шапка .знак-входа { font-size: 40px; }
}
@media (max-width: 430px) {
  .вход .подпись-входа { font-size: 16.5px; }
}
/* Телефон, лист документа во весь экран (полоса ПРАВКИ_34): над названием — маленький «Proof■», как в шапке съёмки;
   полоса прежней высоты (48 px), лист и «лист N из M» не перекрыты, «⋯» на месте. */
.полоса-документа .заглавие-полосы { flex: 1 1 auto; min-width: 0; display: grid; justify-items: start; gap: 3px; }
.полоса-документа .заглавие-полосы h2 { max-width: 100%; }
.полоса-документа .знак-полосы { font-size: 16px; color: var(--чернила); }
/* «Загрузить документы» на телефоне — над заголовком панели маленький «Proof■» (на телефоне рейки со знаком не видно):
   фото из галереи уходят с экрана, где видно приложение. На компьютере знак — в рейке, здесь его нет. */
.загрузка-шапка .заглавие-загрузки { display: grid; justify-items: start; gap: 4px; min-width: 0; }
.загрузка-шапка .знак-загрузки { display: none; font-size: 16px; color: var(--чернила); }
@media (max-width: 767px), (pointer: coarse) and (max-height: 540px) {
  .загрузка-шапка .знак-загрузки { display: inline-flex; }
}
