/* Geans: страница «Как убедиться, что файл остаётся у вас» (verify.html, verify.en.html) и юридические страницы legal/*.html.
 * Базовые стили — style.css.
 * Отдельный файл, чтобы не увеличивать стили, встраиваемые в сохранённый отчёт. Без внешних ресурсов (CSP: style-src 'self'). */
/* красный текст на рисунках: контраст ≥ 4,5:1 к фону карточки (#b3261e на #fff ≈ 6,6:1; #ef8a80 на #222226 ≈ 6,5:1) */
:root { --no-text: #b3261e; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --no-text: #ef8a80; } }
.top a.brand { color: var(--text); text-decoration: none; }
.lang a.lang-btn { display: inline-block; text-decoration: none; }
.lang a.lang-btn[aria-current="page"] { background: var(--accent); color: var(--accent-text); border-color: var(--accent); }
.vp a { color: var(--accent); }
.vp h2 { font-size: 21px; line-height: 1.3; margin: 28px 0 8px; }
.vp h3 { font-size: 17px; margin: 20px 0 6px; }
.vp .card h2:first-child, .vp .card h3:first-child { margin-top: 4px; }
.vp p, .vp li { max-width: 72ch; }
.vp ol li, .vp ul li { margin: 4px 0; }
.vp .lead { font-size: 17px; }
.vp kbd { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.88em; border: 1px solid var(--line);
  border-bottom-width: 2px; border-radius: 4px; padding: 0 4px; background: var(--th); white-space: nowrap; }
.vp code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.92em; background: var(--th);
  border-radius: 4px; padding: 0 3px; overflow-wrap: anywhere; }
.vp .toc ol { margin: 4px 0 0; padding-left: 22px; }
.vp .callout { background: var(--warn-bg); border: 1px solid var(--warn-line); border-radius: 10px; padding: 10px 14px; margin: 12px 0; }
.vp .muted { color: var(--muted); font-size: 14px; }
.vp table { border-collapse: collapse; width: 100%; font-size: 14px; }
.vp th, .vp td { border: 1px solid var(--line); padding: 5px 8px; vertical-align: top; text-align: left; }
.vp th { background: var(--th); }
.vp .table-wrap { overflow-x: auto; margin: 8px 0 16px; }
/* юридические страницы (legal/): места, которые заполняют юрист или владелец, и ссылки на документы в подвале */
.vp mark.ph { background: var(--warn-bg); color: var(--text); border: 1px dashed var(--warn-line); border-radius: 4px; padding: 0 4px; }
.foot .legal-links p { margin: 0 0 6px; }

/* рисунки: встроенный SVG, цвета — из переменных темы (светлая/тёмная) */
.fig { margin: 16px 0; }
.fig figcaption { color: var(--muted); font-size: 14px; margin-top: 6px; max-width: 72ch; }
.fig-scroll { overflow-x: auto; }
.fig svg { display: block; width: 100%; height: auto; }
.fig-flow svg { max-width: 400px; margin: 0 auto; }
.fig-net svg { min-width: 640px; max-width: 760px; }
.fig text { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 14px; fill: var(--text); }
.fig text.b { font-weight: 700; }
.fig text.s { font-size: 12.5px; fill: var(--muted); }
.fig text.m { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12.5px; }
.fig text.ok { fill: var(--ok); font-weight: 700; }
.fig text.no { fill: var(--no-text); font-weight: 700; }
.fig text.acc { fill: var(--accent); font-weight: 700; }
.fig .box { fill: var(--card); stroke: var(--line); stroke-width: 1.5; }
.fig .box-acc { fill: var(--card); stroke: var(--accent); stroke-width: 2; }
.fig .zone { fill: none; stroke: var(--muted); stroke-width: 1.5; stroke-dasharray: 6 5; }
.fig .bar { fill: var(--th); stroke: var(--line); stroke-width: 1; }
.fig .row { fill: var(--card); }
.fig .row-alt { fill: var(--bg); }
.fig .grid { stroke: var(--line); stroke-width: 1; }
.fig .hl { fill: var(--warn-bg); stroke: var(--warn-line); stroke-width: 2.5; }
.fig .hl-line { fill: none; stroke: var(--warn-line); stroke-width: 2.5; }
.fig .tab-on { fill: var(--card); stroke: var(--accent); stroke-width: 2; }
.fig .arrow { fill: none; stroke: var(--text); stroke-width: 2; }
.fig .arrow-acc { fill: none; stroke: var(--accent); stroke-width: 2.5; }
.fig .head { fill: var(--text); }
.fig .head-acc { fill: var(--accent); }
.fig .no-line { fill: none; stroke: var(--err-line); stroke-width: 2.5; }
.fig .no-fill { fill: var(--err-bg); stroke: var(--err-line); stroke-width: 2; }
.fig .ok-fill { fill: var(--card); stroke: var(--ok); stroke-width: 2; }
/* размеры текста в единицах viewBox подобраны так, чтобы на телефоне (поле ~300 px) было не меньше 12 px:
   рис. 1 — viewBox 320; рис. 2–3 (viewBox 720) не уже 640 px, на узком экране — прокрутка внутри рисунка */
.fig-flow text { font-size: 16px; }
.fig-flow text.s { font-size: 15px; }
.fig-net text { font-size: 15px; }
.fig-net text.s, .fig-net text.m { font-size: 14px; }

@media (max-width: 600px) {
  .vp h2 { font-size: 19px; }
}
@media print {
  .fig-net svg { min-width: 0; }
  .vp .toc { display: none; }
}

/* форма обратной связи (feedback.html, feedback.en.html; T17): обычная HTML-форма без скриптов */
.vp form.fb { margin: 12px 0 4px; max-width: 72ch; }
.vp form.fb label { display: block; margin: 12px 0 4px; font-weight: 600; }
.vp form.fb label .muted { font-weight: 400; }
.vp form.fb textarea, .vp form.fb input[type="text"] { display: block; box-sizing: border-box; width: 100%; font: inherit;
  color: var(--text); background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; }
.vp form.fb textarea { resize: vertical; min-height: 10em; }
.vp form.fb textarea:focus, .vp form.fb input[type="text"]:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.vp form.fb button { margin-top: 16px; }
/* ловушка для программ: поле вне экрана (не display:none — простые программы такие поля пропускают) */
.vp form.fb .hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
