/* sistemy.css: три системы A1, A4, B2 для v9, v10, v11 opter.ru.
   Собрано sobrat_sistemy3.py, руками не править: правка в генераторе и прогон заново.
   Каждая система живёт на атрибуте data-ds любого элемента (корень и образец в точке).
   Шрифты объявлены все, а браузер скачивает только те, на которые ссылаются стили
   активной системы (CSS Fonts 4, 4.8.1). */

/* Собрано sobrat_shrifty.py, руками не править. Opter Tekst это PT Root UI ParaType,
   урезанный и переименованный по условию 3 OFL (зарезервированное имя). */

/* Unbounded, cyrillic */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  src: url('fonts/unbounded-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Unbounded, latin-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  src: url('fonts/unbounded-rubl.woff2') format('woff2');
  unicode-range: U+20BD;
}

/* Unbounded, latin */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  src: url('fonts/unbounded-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Google Sans, cyrillic */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/google-sans-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Google Sans, latin-ext */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/google-sans-rubl.woff2') format('woff2');
  unicode-range: U+20BD;
}

/* Google Sans, latin */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/google-sans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Tektur, cyrillic */
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 75% 100%;
  font-display: swap;
  src: url('fonts/tektur-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Tektur, latin-ext */
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 75% 100%;
  font-display: swap;
  src: url('fonts/tektur-rubl.woff2') format('woff2');
  unicode-range: U+20BD;
}

/* Tektur, latin */
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 75% 100%;
  font-display: swap;
  src: url('fonts/tektur-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Tilda Sans 250 900, cyrillic, нарезано из TildaSans-VF.ttf */
@font-face {
  font-family: 'Tilda Sans';
  font-style: normal;
  font-weight: 250 900;
  font-display: swap;
  src: url('fonts/tilda-sans-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Tilda Sans 250 900, latin-ext, нарезано из TildaSans-VF.ttf */
@font-face {
  font-family: 'Tilda Sans';
  font-style: normal;
  font-weight: 250 900;
  font-display: swap;
  src: url('fonts/tilda-sans-rubl.woff2') format('woff2');
  unicode-range: U+20BD;
}

/* Tilda Sans 250 900, latin, нарезано из TildaSans-VF.ttf */
@font-face {
  font-family: 'Tilda Sans';
  font-style: normal;
  font-weight: 250 900;
  font-display: swap;
  src: url('fonts/tilda-sans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Opter Tekst 400, cyrillic, нарезано из PT Root UI_Regular.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/opter-tekst-400-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Opter Tekst 400, latin-ext, нарезано из PT Root UI_Regular.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/opter-tekst-400-rubl.woff2') format('woff2');
  unicode-range: U+20BD;
}

/* Opter Tekst 400, latin, нарезано из PT Root UI_Regular.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/opter-tekst-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Opter Tekst 500, cyrillic, нарезано из PT Root UI_Medium.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/opter-tekst-500-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Opter Tekst 500, latin-ext, нарезано из PT Root UI_Medium.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/opter-tekst-500-rubl.woff2') format('woff2');
  unicode-range: U+20BD;
}

/* Opter Tekst 500, latin, нарезано из PT Root UI_Medium.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/opter-tekst-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Opter Tekst 700, cyrillic, нарезано из PT Root UI_Bold.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/opter-tekst-700-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Opter Tekst 700, latin-ext, нарезано из PT Root UI_Bold.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/opter-tekst-700-rubl.woff2') format('woff2');
  unicode-range: U+20BD;
}

/* Opter Tekst 700, latin, нарезано из PT Root UI_Bold.otf */
@font-face {
  font-family: 'Opter Tekst';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/opter-tekst-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Tektur: цифра 4 из Barlow Condensed 900, своя у Tektur читается как «Ч». Объявлена
   последней в семействе, поэтому у знака U+0034 побеждает она. */
@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 75% 100%;
  font-display: swap;
  src: url('fonts/tektur-chetyre.woff2') format('woff2');
  unicode-range: U+0034;
}

/* A1 «Широкий сигнал»: Unbounded и Google Sans */
[data-ds="a1"], :root:not([data-ds]) {
  --fon: #F3F4F6;
  --fon-2: #FFFFFF;
  --tekst: #0E1116;
  --tekst-2: #636569;
  --liniya: #CED0D2;
  --liniya-sil: #65676B;
  --tush: #0E1116;
  --na-tushi: #F3F4F6;
  --na-tushi-2: #85878A;
  --liniya-tush: #3C3E43;
  --akcent: #2B4BFF;
  --na-akcente: #FFFFFF;
  --akcent-navedenie: #253ECC;
  --akcent-na-tushi: #5871FF;
  --knopka-tush-fon: #2B4BFF;
  --knopka-tush-tekst: #FFFFFF;
  --knopka-tush-navedenie: #4964FF;
  --fokus: #2B4BFF;
  --fokus-tush: #5871FF;
  --sh-zag: 'Unbounded', 'Arial Black', system-ui, sans-serif;
  --sh-tekst: 'Google Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --zag-ves: 900;
  --zag-trekking: -0.035em;
  --zag-interlinyazh: 1.0;
  --zag-registr: none;
  --zag-masshtab: 0.8;
  --zag-shirina: 100%;
  --tekst-ves: 400;
  --tekst-ves-sil: 500;
  --tekst-ves-zhirn: 700;
}

/* A4 «Маркировка»: Tektur и PT Root UI */
[data-ds="a4"] {
  --fon: #F2F2EF;
  --fon-2: #FFFFFF;
  --tekst: #16171A;
  --tekst-2: #636465;
  --liniya: #CFCFCD;
  --liniya-sil: #6A6A6B;
  --tush: #16171A;
  --na-tushi: #F2F2EF;
  --na-tushi-2: #8B8B8B;
  --liniya-tush: #424345;
  --akcent: #0B7F4A;
  --na-akcente: #FFFFFF;
  --akcent-navedenie: #0D683F;
  --akcent-na-tushi: #309265;
  --knopka-tush-fon: #0B7F4A;
  --knopka-tush-tekst: #FFFFFF;
  --knopka-tush-navedenie: #0D683F;
  --fokus: #0B7F4A;
  --fokus-tush: #309265;
  --sh-zag: 'Tektur', 'Arial Narrow', system-ui, sans-serif;
  --sh-tekst: 'Opter Tekst', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --zag-ves: 900;
  --zag-trekking: -0.01em;
  --zag-interlinyazh: 1.0;
  --zag-registr: uppercase;
  --zag-masshtab: 1.06;
  --zag-shirina: 75%;
  --tekst-ves: 400;
  --tekst-ves-sil: 500;
  --tekst-ves-zhirn: 700;
}

/* B2 «Русский гротеск»: Tilda Sans в заголовке и тексте */
[data-ds="b2"] {
  --fon: #F4F5F8;
  --fon-2: #FFFFFF;
  --tekst: #10131A;
  --tekst-2: #64676C;
  --liniya: #D0D1D4;
  --liniya-sil: #67696E;
  --tush: #10131A;
  --na-tushi: #F4F5F8;
  --na-tushi-2: #87898D;
  --liniya-tush: #3E4046;
  --akcent: #2A3BFF;
  --na-akcente: #FFFFFF;
  --akcent-navedenie: #2432CD;
  --akcent-na-tushi: #6470FF;
  --knopka-tush-fon: #F4F5F8;
  --knopka-tush-tekst: #10131A;
  --knopka-tush-navedenie: #FFFFFF;
  --fokus: #2A3BFF;
  --fokus-tush: #6470FF;
  --sh-zag: 'Tilda Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --sh-tekst: 'Tilda Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --zag-ves: 900;
  --zag-trekking: -0.035em;
  --zag-interlinyazh: 0.95;
  --zag-registr: none;
  --zag-masshtab: 1.0;
  --zag-shirina: 100%;
  --tekst-ves: 450;
  --tekst-ves-sil: 600;
  --tekst-ves-zhirn: 750;
}

/* ПАНЕЛЬ ТОЧЕК. Базовые стили, строитель ставит панель в шапку и может переопределить раскладку,
   но не цели касания, кольцо выбора и скрытие без JS. */
.bez-js .ds-panel { display: none; }
.ds-panel { display: flex; align-items: center; gap: 2px 8px; min-height: 44px; }
.ds-zagolovok { font-size: 13px; line-height: 1; color: var(--tekst-2); }
.ds-tochki { display: flex; gap: 2px; }
.ds-tochka { -webkit-appearance: none; appearance: none; margin: 0; padding: 0 6px; border: 0;
  background: none; color: inherit; font: inherit; font-size: 13px; line-height: 1;
  font-weight: var(--tekst-ves-sil); min-width: 32px; height: 32px; display: inline-flex;
  align-items: center; gap: 6px; border-radius: 999px; cursor: pointer;
  -webkit-tap-highlight-color: transparent; font-variant-numeric: lining-nums; }
@media (pointer: coarse) { .ds-tochka { min-width: 44px; height: 44px; } }  /* палец: 44×44, WCAG 2.5.5 */
.ds-obrazec { width: 16px; height: 16px; border-radius: 50%; flex: none;
  background: radial-gradient(circle at 50% 50%, var(--akcent) 0 42%, var(--tush) 44% 100%);
  box-shadow: 0 0 0 1px var(--liniya); transition: transform .15s ease; }
.ds-tochka:hover .ds-obrazec { transform: scale(1.12); }
/* выбранная точка видна без цвета: кольцо, размер и жирная подпись (WCAG 1.4.1) */
.ds-tochka[aria-pressed="true"] .ds-obrazec { transform: scale(1.12);
  box-shadow: 0 0 0 2px var(--fon), 0 0 0 3.5px var(--tekst); }
.ds-tochka[aria-pressed="true"] .ds-kod { text-decoration: underline; text-underline-offset: 3px;
  text-decoration-thickness: 2px; }
.ds-tochka:focus-visible { outline: 2px solid var(--fokus); outline-offset: 2px; }
.ds-podpis { font-size: 13px; color: var(--tekst-2); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .ds-obrazec { transition: none; } }
