/* AIN-T-003 · схемы исследования v0.2 · figures.css · ain-fig/1.1
   Палитра A (06.10.2026). Только классы ain-fig-*. Без JS, шрифтов и изображений.
   Подключается страницей один раз; во фрагменты не копируется. */

:root{
  --ain-fig-canvas:#fff;
  --ain-fig-surface:#f7f8fc;
  --ain-fig-soft:#eef0ff;
  --ain-fig-ink:#252536;
  --ain-fig-body:#424254;
  --ain-fig-muted:#686879;
  --ain-fig-line:#e1e3ee;
  --ain-fig-line-strong:#b9bfd7;
  --ain-fig-accent:#5365c9;
  --ain-fig-accent-hover:#4554af;
  --ain-fig-brand:#8ca3ff;
  --ain-fig-series-1:#5365c9;
  --ain-fig-series-2:#9684c9;
  --ain-fig-series-3:#477b83;
  /* статусы: коды производные (в источнике названы только цвета), контраст текста ≥ 4.5:1 на своём фоне */
  --ain-fig-ok:#2f7358;
  --ain-fig-ok-bg:#e8f4ee;
  --ain-fig-warn:#785325;
  --ain-fig-warn-bg:#faf4e9;
  --ain-fig-risk:#a63d5a;
  --ain-fig-risk-bg:#fbebf0;
  --ain-fig-focus:#5365c9;
  --ain-fig-radius-panel:14.4px;
  --ain-fig-radius-tag:7px;
  --ain-fig-font:Manrope,Arial,sans-serif;
}

/* контейнер */
.ain-fig{margin:2rem 0;padding:0;font-family:var(--ain-fig-font);color:var(--ain-fig-body);min-width:0}
.ain-fig-title{margin:0 0 .75rem;font-size:1.05rem;font-weight:750;line-height:1.35;color:var(--ain-fig-ink);letter-spacing:-.01em}
.ain-fig-svg{display:block;width:100%;height:auto;max-width:100%;background:var(--ain-fig-canvas);border:1px solid var(--ain-fig-line);border-radius:var(--ain-fig-radius-panel)}
.ain-fig-caption{margin:.75rem 0 0;font-size:.82rem;line-height:1.6;color:var(--ain-fig-muted);text-wrap:pretty}
.ain-fig-text{margin:.75rem 0 0;font-size:.82rem;line-height:1.6;color:var(--ain-fig-body)}
.ain-fig-text>summary{cursor:pointer;color:var(--ain-fig-accent);font-weight:650;padding:.35rem 0;min-height:44px;display:flex;align-items:center}
.ain-fig-text>summary:hover{color:var(--ain-fig-accent-hover)}
.ain-fig-text>:not(summary){margin:.5rem 0 0;padding-left:1.25rem;max-width:68ch}
.ain-fig-text>p{padding-left:0}
.ain-fig-text li{margin:0 0 .35rem}
.ain-fig :focus-visible{outline:3px solid var(--ain-fig-focus);outline-offset:2px}

/* узкие экраны (v1.1): SVG внутри .ain-fig-scroll не уже 960px (1 user-unit = 1 px, текст 14 ед. = 14 px),
   горизонтальная прокрутка остаётся внутри фокусируемой обёртки, а не у всей страницы */
.ain-fig-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--ain-fig-line);border-radius:var(--ain-fig-radius-panel);background:var(--ain-fig-canvas)}
.ain-fig-scroll>.ain-fig-svg{min-width:960px;border:0;border-radius:0}
.ain-fig-scroll:focus-visible{outline:3px solid var(--ain-fig-focus);outline-offset:2px}
.ain-fig-scroll>.ain-fig-table{min-width:560px}

/* SVG: узлы */
.ain-fig-node{fill:var(--ain-fig-surface);stroke:var(--ain-fig-line-strong);stroke-width:1.5}
.ain-fig-node--soft{fill:var(--ain-fig-soft);stroke:var(--ain-fig-line-strong)}
.ain-fig-node--accent{fill:var(--ain-fig-accent);stroke:var(--ain-fig-accent)}
.ain-fig-node--muted{fill:var(--ain-fig-canvas);stroke:var(--ain-fig-line-strong);stroke-dasharray:6 4}
.ain-fig-node--ok{fill:var(--ain-fig-ok-bg);stroke:var(--ain-fig-ok)}
.ain-fig-node--warn{fill:var(--ain-fig-warn-bg);stroke:var(--ain-fig-warn)}
.ain-fig-node--risk{fill:var(--ain-fig-risk-bg);stroke:var(--ain-fig-risk)}
.ain-fig-node--series-1{fill:var(--ain-fig-series-1);stroke:var(--ain-fig-series-1)}
.ain-fig-node--series-2{fill:var(--ain-fig-series-2);stroke:var(--ain-fig-series-2)}
.ain-fig-node--series-3{fill:var(--ain-fig-series-3);stroke:var(--ain-fig-series-3)}
.ain-fig-band{fill:var(--ain-fig-soft);stroke:var(--ain-fig-line-strong);stroke-width:1}
.ain-fig-group,.ain-fig-lane{fill:none;stroke:var(--ain-fig-line-strong);stroke-width:1;stroke-dasharray:3 4}
.ain-fig-lane{fill:var(--ain-fig-surface);stroke-dasharray:none}
.ain-fig-marker{fill:var(--ain-fig-canvas);stroke:var(--ain-fig-accent);stroke-width:1.5}

/* SVG: связи */
.ain-fig-edge{fill:none;stroke:var(--ain-fig-muted);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ain-fig-edge--dashed{stroke-dasharray:6 5}
.ain-fig-edge--strong{stroke:var(--ain-fig-accent);stroke-width:2.5}
.ain-fig-edge--muted{stroke:var(--ain-fig-line-strong)}
.ain-fig-arrow{fill:var(--ain-fig-muted);stroke:none}
.ain-fig-bracket{fill:none;stroke:var(--ain-fig-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ain-fig-divider{stroke:var(--ain-fig-line);stroke-width:1}

/* SVG: текст (user-space единицы при viewBox 960) */
.ain-fig-node-label,.ain-fig-text-svg{font-family:var(--ain-fig-font);font-size:16px;font-weight:650;fill:var(--ain-fig-ink)}
.ain-fig-node-sub,.ain-fig-text-svg--small{font-size:14px;font-weight:500;fill:var(--ain-fig-body)}
.ain-fig-node-num{font-family:var(--ain-fig-font);font-size:14px;font-weight:750;fill:var(--ain-fig-accent);font-variant-numeric:tabular-nums}
.ain-fig-text-svg--strong{font-weight:750}
.ain-fig-text-svg--muted,.ain-fig-axis-label{fill:var(--ain-fig-muted)}
.ain-fig-axis-label{font-family:var(--ain-fig-font);font-size:14px;font-weight:500}
.ain-fig-text-svg--on-accent{fill:#fff}

/* легенда */
.ain-fig-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:.75rem 0 0;padding:0;list-style:none;font-size:.78rem;color:var(--ain-fig-muted)}
.ain-fig-legend-item{display:inline-flex;align-items:center;gap:.4rem}

/* таблица (A1-T-01) */
.ain-fig-table{width:100%;border-collapse:collapse;font-size:.82rem;line-height:1.55;color:var(--ain-fig-body)}
.ain-fig-table caption{caption-side:top;text-align:left;padding:.75rem .9rem;font-weight:750;color:var(--ain-fig-ink)}
.ain-fig-table th,.ain-fig-table td{padding:.7rem .9rem;border-bottom:1px solid var(--ain-fig-line);vertical-align:top;text-align:left}
.ain-fig-table thead th{background:var(--ain-fig-soft);color:var(--ain-fig-ink);font-weight:750;font-size:.76rem;position:sticky;top:0}
.ain-fig-table tbody th{font-weight:700;color:var(--ain-fig-ink);background:var(--ain-fig-surface)}
.ain-fig-table tbody tr:last-child>*{border-bottom:0}

.ain-fig-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* уменьшенное движение: у фрагментов нет анимации; запрет на случай внешних правил */
@media (prefers-reduced-motion:reduce){.ain-fig,.ain-fig *{animation:none!important;transition:none!important}}

/* адаптив */
@media (max-width:767px){
  .ain-fig{margin:1.5rem 0}
  .ain-fig-title{font-size:1rem}
  .ain-fig-caption,.ain-fig-text,.ain-fig-table{font-size:.8rem}
  .ain-fig-svg{border-radius:10px}
}

/* усиленные контрастные режимы */
@media (forced-colors:active){
  .ain-fig-node,.ain-fig-band,.ain-fig-lane,.ain-fig-marker{stroke:CanvasText;fill:Canvas}
  .ain-fig-edge,.ain-fig-bracket,.ain-fig-arrow{stroke:CanvasText;fill:none}
  .ain-fig-node-label,.ain-fig-text-svg,.ain-fig-node-sub,.ain-fig-node-num,.ain-fig-axis-label{fill:CanvasText}
}

/* печать: светлый фон, без обрезки, схема целиком на странице */
@media print{
  .ain-fig{break-inside:avoid;page-break-inside:avoid;margin:1rem 0;color:#000}
  .ain-fig-svg,.ain-fig-scroll{border-color:#999;max-width:100%;overflow:visible}
  .ain-fig-scroll>.ain-fig-svg,.ain-fig-scroll>.ain-fig-table{min-width:0}
  .ain-fig-caption,.ain-fig-table{color:#000}
  .ain-fig-node--accent,.ain-fig-node--series-1,.ain-fig-node--series-2,.ain-fig-node--series-3{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
