/* ==========================================================================
   Vizza AI — дизайн-система (ТЗ v2.0)
   Визуальный язык — защитная печать: гильош, ирисовый раскат, штемпельная
   краска, машиночитаемая строка. Один «громкий» элемент — розетка в герое,
   всё остальное тихое.
   --------------------------------------------------------------------------
   01 Шрифты        02 Токены        03 База           04 Типографика
   05 Сетка         06 Кнопки        07 Формы          08 Метки и статусы
   09 Поверхности   10 Таблицы       11 Шапка, подвал  12 Прогресс и шкалы
   13 Документы     14 Окна, тосты   15 Помощник       16 Флаги
   17 Иконки        18 Утилиты       19 Печать, моторика
   ========================================================================== */

/* 01 Шрифты (лежат рядом, сайт не зависит от внешних CDN) =================== */
@font-face { font-family: "Prata"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/prata-latin-400-normal.woff2") format("woff2");
  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+2212; }
@font-face { font-family: "Prata"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/prata-cyrillic-400-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Prata"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/prata-cyrillic-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* У Prata единица похожа на букву «l» — «DS-160» и «1 200 000» читаются плохо.
   Цифры для заголовков берём из Playfair Display (тот же контраст штриха). */
@font-face { font-family: "Prata"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/playfair-display-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0030-0039; }

@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-latin-wght-normal.woff2") format("woff2");
  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; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-cyrillic-wght-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-cyrillic-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2212; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2212; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/ibm-plex-mono-cyrillic-400-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("../fonts/ibm-plex-mono-cyrillic-500-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* 02 Токены ================================================================= */
:root {
  /* Чернила */
  --ink:   #0E1A3A;
  --ink-2: #36426B;
  --ink-3: #5F6A8F;
  --ink-4: #98A1BD;

  /* Бумага и линии */
  --paper:  #FFFFFF;
  --wash:   #F5F7FB;
  --wash-2: #EBEEF6;
  --line:   #DFE3EF;
  --line-2: #C7CEE0;

  /* Штемпельная краска — единственный акцент */
  --violet:   #4A2FBD;
  --violet-d: #39229A;
  --violet-t: #EEEBFB;
  --violet-l: #CFC6F6;

  /* Статусы проверки */
  --ok:     #11734B;
  --ok-t:   #E2F3EA;
  --warn:   #8A5600;
  --warn-t: #FBF0DA;
  --bad:    #B2332A;
  --bad-t:  #FBE8E5;

  /* Ирисовый раскат — фон защищённых документов */
  --iris-1: #CDEBDD;
  --iris-2: #D8D3F7;
  --iris-3: #FADFCF;
  --iris-4: #CFE5F8;
  --iris: linear-gradient(115deg, var(--iris-1), var(--iris-4) 30%, var(--iris-2) 62%, var(--iris-3));

  /* Шрифты */
  --display: "Prata", "Times New Roman", serif;
  --text: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --code: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* Радиусы: у каждого уровня свой */
  --r-doc: 4px;     /* документы, бланки */
  --r-ctl: 10px;    /* кнопки, поля */
  --r-box: 16px;    /* панели */
  --r-big: 24px;    /* крупные блоки */

  /* Тени на чернильной основе */
  --sh-1: 0 1px 2px rgba(14, 26, 58, .06);
  --sh-2: 0 2px 6px rgba(14, 26, 58, .05), 0 12px 28px -14px rgba(14, 26, 58, .22);
  --sh-3: 0 4px 12px rgba(14, 26, 58, .06), 0 32px 64px -28px rgba(14, 26, 58, .38);

  --wrap: 1184px;
  --pad: 20px;
  --top-h: 64px;

  --ease: cubic-bezier(.2, .7, .2, 1);
  --fast: 140ms var(--ease);
  --med: 280ms var(--ease);
}
@media (min-width: 720px) { :root { --pad: 32px; --top-h: 72px; } }

/* 03 База =================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--top-h) + 16px); }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 16px/1.55 var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-variant-numeric: lining-nums;
  overflow-x: hidden;
}
img, svg, video { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: var(--violet); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--violet-d); }
hr { border: 0; height: 1px; background: var(--line); margin: 0; }
::selection { background: var(--violet-l); color: var(--ink); }
:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; border-radius: 4px; }
[hidden] { display: none !important; }

.skip { position: absolute; left: 12px; top: -80px; z-index: 200; padding: 10px 16px; border-radius: var(--r-ctl); background: var(--ink); color: #fff; text-decoration: none; transition: top var(--fast); }
.skip:focus { top: 12px; color: #fff; }
.sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* 04 Типографика ============================================================ */
h1, h2, h3, h4, p, ul, ol, dl, figure { margin: 0; }
h1, h2, .display {
  font-family: var(--display);
  font-weight: 400;
  color: var(--ink);
  text-wrap: balance;
}
h1 { font-size: clamp(2.125rem, 1.3rem + 3.4vw, 3.5rem); line-height: 1.1; letter-spacing: -.012em; }
h2 { font-size: clamp(1.625rem, 1.2rem + 1.9vw, 2.5rem); line-height: 1.16; letter-spacing: -.008em; }
h3 { font: 600 1.1875rem/1.32 var(--text); letter-spacing: -.012em; }
h4 { font: 600 1rem/1.4 var(--text); letter-spacing: -.006em; }
p { text-wrap: pretty; }

.lede { font-size: clamp(1.0625rem, 1rem + .35vw, 1.1875rem); line-height: 1.58; color: var(--ink-2); max-width: 58ch; }
.muted { color: var(--ink-3); }
.small { font-size: .875rem; line-height: 1.5; }
.tiny { font-size: .8125rem; line-height: 1.45; }
.num { font-variant-numeric: lining-nums tabular-nums; }
.code { font-family: var(--code); font-size: .875em; letter-spacing: .01em; }
.nowrap { white-space: nowrap; }
strong, b { font-weight: 600; }

/* Машиночитаемая строка — только там, где это действительно код документа */
.mrz {
  font: 400 .75rem/1.6 var(--code);
  letter-spacing: .14em;
  color: var(--ink-2);
  white-space: nowrap;
  overflow: hidden;
  user-select: none;
}

/* 05 Сетка ================================================================== */
.wrap { width: min(100% - 2 * var(--pad), var(--wrap)); margin-inline: auto; }
.section { padding-block: clamp(56px, 4vw + 40px, 112px); }
.section--wash { background: var(--wash); }
.section--ink { background: var(--ink); color: #D9DEEE; }
.section--ink h2, .section--ink h3, .section--ink h4 { color: #fff; }
.section--ink .lede, .section--ink .muted { color: #A9B2D0; }
.section__head { display: grid; gap: 14px; margin-bottom: clamp(28px, 3vw, 48px); max-width: 720px; }

.stack { display: grid; gap: 16px; }
.stack-s { display: grid; gap: 8px; }
.stack-l { display: grid; gap: 28px; }
/* Одна колонка не должна растягиваться под содержимое (длинные коды, таблицы) */
.stack, .stack-s, .stack-l, .cols { grid-template-columns: minmax(0, 1fr); }
.row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.row--tight { gap: 8px; }
.row--split { justify-content: space-between; }
.row--top { align-items: flex-start; }
.grow { flex: 1 1 15rem; min-width: 0; }   /* текст не уже 15rem: иначе кнопка переносится на свою строку */
.cols { display: grid; gap: 20px; }
@media (min-width: 720px) {
  .cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
  .split--even { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.split > * + * { margin-top: 32px; }
@media (min-width: 1024px) { .split > * + * { margin-top: 0; } }

/* 06 Кнопки ================================================================= */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 10px 18px;
  border: 1px solid transparent; border-radius: var(--r-ctl);
  background: transparent; color: var(--ink);
  font: 500 .9375rem/1.2 var(--text); letter-spacing: -.005em;
  text-decoration: none; white-space: nowrap; user-select: none;
  transition: background var(--fast), border-color var(--fast), color var(--fast), box-shadow var(--fast), transform var(--fast);
}
.btn:active { transform: translateY(1px); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }

.btn--primary { background: var(--violet); color: #fff; box-shadow: 0 1px 0 rgba(255, 255, 255, .18) inset, 0 8px 18px -10px rgba(74, 47, 189, .8); }
.btn--primary:hover { background: var(--violet-d); color: #fff; }
.btn--ink { background: var(--ink); color: #fff; }
.btn--ink:hover { background: #1B2A55; color: #fff; }
.btn--line { background: var(--paper); border-color: var(--line-2); color: var(--ink); }
.btn--line:hover { border-color: var(--ink); color: var(--ink); }
.btn--soft { background: var(--violet-t); color: var(--violet-d); }
.btn--soft:hover { background: var(--violet-l); color: var(--violet-d); }
.btn--quiet { color: var(--ink-2); padding-inline: 10px; }
.btn--quiet:hover { background: var(--wash-2); color: var(--ink); }
.btn--onink { background: #fff; color: var(--ink); }
.btn--onink:hover { background: var(--violet-t); color: var(--ink); }
.btn--ghost-onink { border-color: rgba(255, 255, 255, .28); color: #fff; }
.btn--ghost-onink:hover { border-color: #fff; color: #fff; }

.btn--s { min-height: 36px; padding: 6px 12px; font-size: .875rem; border-radius: 8px; }
.btn--l { min-height: 52px; padding: 14px 24px; font-size: 1rem; }
.btn--wide { width: 100%; }
.btn--icon { padding: 0; width: 44px; }
.btn--icon.btn--s { width: 36px; }

.link { background: none; border: 0; padding: 0; color: var(--violet); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.link:hover { color: var(--violet-d); }

/* 07 Формы ================================================================== */
.field { display: grid; gap: 6px; align-content: start; }
.field > label, .label { font-weight: 500; font-size: .9375rem; color: var(--ink); }
.hint { font-size: .8125rem; line-height: 1.45; color: var(--ink-3); }
.err { display: none; font-size: .8125rem; color: var(--bad); }
.field.is-bad .err { display: block; }
.field.is-bad .input, .field.is-bad .select { border-color: var(--bad); box-shadow: 0 0 0 3px var(--bad-t); }

.input, .select, .textarea {
  width: 100%; min-height: 48px; padding: 11px 14px;
  background: var(--paper); color: var(--ink);
  border: 1px solid var(--line-2); border-radius: var(--r-ctl);
  font-size: 1rem; line-height: 1.4;
  transition: border-color var(--fast), box-shadow var(--fast);
  appearance: none; -webkit-appearance: none;
}
.input::placeholder, .textarea::placeholder { color: var(--ink-4); }
.input:hover, .select:hover, .textarea:hover { border-color: var(--ink-4); }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px var(--violet-t); }
.input[readonly] { background: var(--wash); color: var(--ink-2); }
.textarea { min-height: 104px; resize: vertical; }
.select {
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235F6A8F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}
input[type="date"].input { min-width: 0; }

/* Плитки выбора (радио и чекбоксы) */
.choices { display: grid; gap: 10px; }
@media (min-width: 720px) {
  .choices--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .choices--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .choices--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.choice {
  position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 2px 12px; align-items: start;
  padding: 14px 16px; background: var(--paper);
  border: 1px solid var(--line-2); border-radius: 12px; cursor: pointer;
  transition: border-color var(--fast), background var(--fast), box-shadow var(--fast);
}
.choice:hover { border-color: var(--ink-4); }
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice__mark {
  grid-row: 1 / span 3; width: 20px; height: 20px; margin-top: 2px;
  border: 1.5px solid var(--line-2); border-radius: 50%; background: var(--paper);
  display: grid; place-items: center; transition: border-color var(--fast), background var(--fast);
}
.choice__mark::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #fff; transform: scale(0); transition: transform var(--fast); }
.choice input[type="checkbox"] ~ .choice__mark { border-radius: 6px; }
.choice input[type="checkbox"] ~ .choice__mark::after {
  width: 12px; height: 12px; border-radius: 0; background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;
}
.choice__t { grid-column: 2; font-weight: 500; color: var(--ink); line-height: 1.4; }
.choice__d { grid-column: 2; font-size: .875rem; line-height: 1.45; color: var(--ink-3); }
.choice__x { grid-column: 2; font-size: .875rem; font-weight: 500; color: var(--violet-d); margin-top: 2px; }
.choice:has(input:checked) { border-color: var(--violet); background: var(--violet-t); box-shadow: 0 0 0 1px var(--violet) inset; }
.choice:has(input:checked) .choice__mark { border-color: var(--violet); background: var(--violet); }
.choice:has(input:checked) .choice__mark::after { transform: scale(1); }
.choice:has(input:focus-visible) { outline: 2px solid var(--violet); outline-offset: 2px; }
.choice:has(input:disabled) { opacity: .5; cursor: not-allowed; }
/* запасной вариант для браузеров без :has — класс ставит ui.js */
.choice.is-on { border-color: var(--violet); background: var(--violet-t); box-shadow: 0 0 0 1px var(--violet) inset; }
.choice.is-on .choice__mark { border-color: var(--violet); background: var(--violet); }
.choice.is-on .choice__mark::after { transform: scale(1); }

/* Простой чекбокс в строке */
.check { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; cursor: pointer; }
.check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--violet); }

/* Согласие на обработку данных */
.consent {
  display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start;
  padding: 16px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--wash);
  font-size: .9375rem; line-height: 1.5; color: var(--ink-2); cursor: pointer;
}
.consent input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--violet); }
.consent.is-bad { border-color: var(--bad); background: var(--bad-t); }

/* Сегментированный переключатель */
.seg { display: inline-flex; padding: 3px; background: var(--wash-2); border-radius: 10px; gap: 2px; }
.seg button {
  min-height: 34px; padding: 4px 12px; border: 0; border-radius: 8px; background: transparent;
  font-weight: 500; font-size: .8125rem; color: var(--ink-3); transition: background var(--fast), color var(--fast);
}
.seg button:hover { color: var(--ink); }
.seg button[aria-pressed="true"] { background: var(--paper); color: var(--ink); box-shadow: var(--sh-1); }

/* Счётчик */
.stepper { display: inline-grid; grid-template-columns: 44px 56px 44px; align-items: center; border: 1px solid var(--line-2); border-radius: var(--r-ctl); background: var(--paper); overflow: hidden; }
.stepper button { height: 46px; border: 0; background: transparent; color: var(--ink-2); display: grid; place-items: center; }
.stepper button:hover { background: var(--wash-2); color: var(--ink); }
.stepper output { text-align: center; font-weight: 600; font-variant-numeric: lining-nums tabular-nums; }

/* 08 Метки и статусы ======================================================== */
.tag {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 24px; padding: 2px 9px; border-radius: 6px;
  background: var(--wash-2); color: var(--ink-2);
  font-size: .8125rem; font-weight: 500; line-height: 1.3; white-space: nowrap;
}
.tag .ic { width: 14px; height: 14px; }
.tag--ok { background: var(--ok-t); color: var(--ok); }
.tag--warn { background: var(--warn-t); color: var(--warn); }
.tag--bad { background: var(--bad-t); color: var(--bad); }
.tag--ai { background: var(--violet-t); color: var(--violet-d); }
.tag--ink { background: var(--ink); color: #fff; }
.tag--line { background: transparent; box-shadow: 0 0 0 1px var(--line-2) inset; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }

/* Штамп — ставится, когда что-то подтверждено или отклонено */
.stamp {
  display: inline-grid; justify-items: center; gap: 1px;
  padding: 6px 12px 5px; border: 1.5px solid currentColor; border-radius: 3px;
  color: var(--violet); font: 600 .6875rem/1.25 var(--text); letter-spacing: .09em; text-transform: uppercase;
  transform: rotate(-3deg); white-space: nowrap;
}
.stamp small { font-size: .625rem; font-weight: 500; letter-spacing: .05em; opacity: .8; }
.stamp--ok { color: var(--ok); }
.stamp--bad { color: var(--bad); }
.stamp--warn { color: var(--warn); }
.stamp.is-pressed { animation: stamp 520ms cubic-bezier(.2, .9, .25, 1) both; }
@keyframes stamp {
  0% { opacity: 0; transform: rotate(-9deg) scale(1.9); }
  60% { opacity: 1; transform: rotate(-3deg) scale(.98); }
  100% { opacity: 1; transform: rotate(-3deg) scale(1); }
}

/* 09 Поверхности ============================================================ */
.card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-box); padding: 20px; }
@media (min-width: 720px) { .card { padding: 28px; } }
.card--flat { background: var(--wash); border-color: transparent; }
.card--lift { box-shadow: var(--sh-2); border-color: transparent; }
.card--tight { padding: 16px; }
@media (min-width: 720px) { .card--tight { padding: 20px; } }
.card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-bottom: 16px; }

/* Пояснения */
.note {
  display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; align-items: start;
  padding: 14px 16px; border-radius: 12px; background: var(--wash); color: var(--ink-2);
  font-size: .9375rem; line-height: 1.5;
}
.note > .ic { margin-top: 2px; width: 20px; height: 20px; color: var(--ink-3); }
.note b, .note strong { color: var(--ink); }
.note--ai { background: var(--violet-t); }
.note--ai > .ic { color: var(--violet); }
.note--warn { background: var(--warn-t); }
.note--warn > .ic { color: var(--warn); }
.note--bad { background: var(--bad-t); }
.note--bad > .ic { color: var(--bad); }
.note--ok { background: var(--ok-t); }
.note--ok > .ic { color: var(--ok); }

/* Строки «название — значение» */
.dl { display: grid; }
.dl > div { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 4px 16px; padding: 11px 0; border-top: 1px solid var(--line); }
.dl > div:first-child { border-top: 0; }
.dl dt { color: var(--ink-3); font-size: .9375rem; }
.dl dd { margin: 0; color: var(--ink); font-weight: 500; font-size: .9375rem; }
.dl--stack > div { grid-template-columns: 1fr; }
@media (max-width: 479px) { .dl > div { grid-template-columns: 1fr; } }

/* Нумерованные шаги инструкции */
.howto { counter-reset: h; display: grid; gap: 0; list-style: none; padding: 0; }
.howto > li { counter-increment: h; position: relative; padding: 0 0 18px 44px; }
.howto > li::before {
  content: counter(h); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center; background: var(--violet-t); color: var(--violet-d);
  font-weight: 600; font-size: .8125rem; font-variant-numeric: lining-nums tabular-nums;
}
.howto > li::after { content: ""; position: absolute; left: 13.5px; top: 32px; bottom: 4px; width: 1px; background: var(--line-2); }
.howto > li:last-child { padding-bottom: 0; }
.howto > li:last-child::after { display: none; }
.howto b { display: block; color: var(--ink); }
.howto span { color: var(--ink-2); font-size: .9375rem; }

/* Список с галочками */
.ticks { list-style: none; padding: 0; display: grid; gap: 10px; }
.ticks li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; color: var(--ink-2); }
.ticks li::before {
  content: ""; width: 18px; height: 18px; margin-top: 3px; background: var(--ok);
  -webkit-mask: var(--i-check) center/contain no-repeat; mask: var(--i-check) center/contain no-repeat;
}
.ticks--x li::before { background: var(--ink-4); -webkit-mask-image: var(--i-x); mask-image: var(--i-x); }
.section--ink .ticks li { color: #C6CCE2; }
.section--ink .ticks li::before { background: #7FD6AB; }

/* Раскрывающиеся вопросы */
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { position: relative; list-style: none; cursor: pointer; padding: 20px 44px 20px 0; font-weight: 500; font-size: 1.0625rem; color: var(--ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; position: absolute; right: 4px; top: 22px; width: 22px; height: 22px; background: var(--ink-3);
  -webkit-mask: var(--i-plus) center/contain no-repeat; mask: var(--i-plus) center/contain no-repeat;
  transition: transform var(--fast);
}
.faq details[open] summary::after { transform: rotate(45deg); background: var(--violet); }
.faq details > div { padding: 0 44px 22px 0; color: var(--ink-2); max-width: 70ch; }

/* «Наклейка» — объект в ирисовой печати */
.iris { position: relative; background: var(--iris); border-radius: var(--r-big); isolation: isolate; }
.iris::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: url("../img/mesh.svg") 0 0 / 160px 80px; z-index: -1; }

/* 10 Таблицы ================================================================ */
.tbl-wrap { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tbl { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.tbl th { text-align: left; font-weight: 500; font-size: .8125rem; color: var(--ink-3); padding: 10px 14px; border-bottom: 1px solid var(--line-2); white-space: nowrap; }
.tbl td { padding: 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
.tbl tr:last-child td { border-bottom: 0; }
.tbl td:first-child, .tbl th:first-child { padding-left: 0; }
.tbl td:last-child, .tbl th:last-child { padding-right: 0; }
.tbl .r { text-align: right; }
/* На телефоне строки превращаются в карточки с подписями */
@media (max-width: 719px) {
  .tbl--stack thead { display: none; }
  .tbl--stack, .tbl--stack tbody, .tbl--stack tr, .tbl--stack td { display: block; width: 100%; }
  .tbl--stack tr { padding: 14px 0; border-bottom: 1px solid var(--line); }
  .tbl--stack tr:last-child { border-bottom: 0; }
  .tbl--stack td { padding: 3px 0; border: 0; }
  .tbl--stack td.r { text-align: left; }
  .tbl--stack td[data-th]::before { content: attr(data-th); display: block; font-size: .75rem; color: var(--ink-3); margin-top: 6px; }
}

/* 11 Шапка и подвал ========================================================= */
.top { position: sticky; top: 0; z-index: 60; background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px); border-bottom: 1px solid transparent; transition: border-color var(--med), box-shadow var(--med); }
.top.is-stuck { border-bottom-color: var(--line); box-shadow: 0 10px 30px -24px rgba(14, 26, 58, .5); }
.top__in { display: flex; align-items: center; gap: 12px; height: var(--top-h); }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; flex: none; }
.brand:hover { color: var(--ink); }
.brand__seal { width: 30px; height: 30px; background: var(--violet); -webkit-mask: var(--seal) center/contain no-repeat; mask: var(--seal) center/contain no-repeat; }
.brand__name { font-family: var(--display); font-size: 1.375rem; line-height: 1; letter-spacing: -.01em; }
.brand__ai { align-self: flex-start; margin: -1px 0 0 -6px; font: 600 .625rem/1 var(--text); letter-spacing: .06em; color: var(--violet); }
.nav { display: none; align-items: center; gap: 2px; margin-left: 28px; }
.nav a { padding: 8px 12px; border-radius: 8px; color: var(--ink-2); text-decoration: none; font-size: .9375rem; font-weight: 450; white-space: nowrap; }
.nav a:hover { background: var(--wash-2); color: var(--ink); }
.nav a[aria-current="page"] { color: var(--ink); font-weight: 600; }
.top__end { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.top__menu { display: inline-grid; }
@media (min-width: 1024px) { .nav { display: flex; } .top__menu { display: none; } }
@media (max-width: 479px) { .top__end .btn--primary.hide-xs { display: none; } }

/* Мобильное меню */
.drawer { position: fixed; inset: 0; z-index: 90; display: grid; grid-template-rows: auto 1fr; background: var(--paper); padding: 0 var(--pad) 24px; transform: translateY(-8px); opacity: 0; pointer-events: none; transition: opacity var(--med), transform var(--med); }
.drawer.is-open { opacity: 1; transform: none; pointer-events: auto; }
.drawer__head { display: flex; align-items: center; justify-content: space-between; height: var(--top-h); }
.drawer nav { display: grid; align-content: start; }
.drawer nav a { padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; font-family: var(--display); font-size: 1.5rem; }

.foot { background: var(--ink); color: #A9B2D0; padding: 56px 0 28px; font-size: .9375rem; }
.foot a { color: #D9DEEE; text-decoration: none; }
.foot a:hover { color: #fff; text-decoration: underline; }
.foot h4 { color: #fff; font-size: .875rem; margin-bottom: 14px; }
.foot ul { list-style: none; padding: 0; display: grid; gap: 9px; }
.foot__grid { display: grid; gap: 36px; }
@media (min-width: 720px) { .foot__grid { grid-template-columns: 1.5fr repeat(3, 1fr); } }
.foot .brand, .foot .brand:hover { color: #fff; }
.foot .brand__seal { background: var(--violet-l); }
.foot .brand__ai { color: var(--violet-l); }
.foot__end { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; margin-top: 44px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .8125rem; color: #7E88AB; }
.foot .mrz { color: #56618A; margin-top: 18px; }

/* 12 Прогресс и шкалы ======================================================= */
.bar { height: 6px; border-radius: 6px; background: var(--wash-2); overflow: hidden; }
.bar > i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--violet); transition: width 420ms var(--ease); }
.bar--ok > i { background: var(--ok); }

/* Шкала уверенности ИИ с порогами (ТЗ 7) */
.meter { --v: 0; --lo: 70; --hi: 90; position: relative; padding: 22px 0 26px; }
.meter__track { position: relative; height: 10px; border-radius: 10px; background:
  linear-gradient(90deg, var(--bad-t) 0 calc(var(--lo) * 1%), var(--warn-t) calc(var(--lo) * 1%) calc(var(--hi) * 1%), var(--ok-t) calc(var(--hi) * 1%) 100%); }
.meter__track::before, .meter__track::after { content: ""; position: absolute; top: -5px; bottom: -5px; width: 1.5px; background: var(--ink-4); }
.meter__track::before { left: calc(var(--lo) * 1%); }
.meter__track::after { left: calc(var(--hi) * 1%); }
.meter__pin { position: absolute; top: 14px; left: calc(var(--v) * 1%); width: 26px; height: 26px; margin-left: -13px; border-radius: 50%; background: var(--ink); border: 4px solid #fff; box-shadow: var(--sh-2); transition: left 520ms var(--ease), background var(--med); }
.meter[data-zone="ok"] .meter__pin { background: var(--ok); }
.meter[data-zone="mid"] .meter__pin { background: var(--warn); }
.meter[data-zone="low"] .meter__pin { background: var(--bad); }
.meter__ticks { position: relative; height: 18px; margin-top: 8px; font-size: .75rem; color: var(--ink-3); font-variant-numeric: lining-nums tabular-nums; }
.meter__ticks span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.meter__ticks span:first-child { left: calc(var(--lo) * 1%); }
.meter__ticks span:last-child { left: calc(var(--hi) * 1%); }
.card > .meter:last-child { padding-bottom: 0; }

/* Круговой индикатор */
.ring { --p: 0; position: relative; width: 48px; height: 48px; flex: none; display: grid; place-items: center; border-radius: 50%;
  background: conic-gradient(var(--c, var(--violet)) calc(var(--p) * 1%), var(--wash-2) 0); }
.ring::before { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--paper); }
.ring > span { position: relative; font-weight: 600; font-size: .8125rem; font-variant-numeric: lining-nums tabular-nums; }
.ring--ok { --c: var(--ok); } .ring--warn { --c: var(--warn); } .ring--bad { --c: var(--bad); }
.ring--l { width: 76px; height: 76px; }
.ring--l::before { inset: 6px; }
.ring--l > span { font-size: 1.125rem; }

/* 13 Документы ============================================================== */
/* Строка документа в чек-листе */
.doc { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 4px 14px; padding: 16px 0; border-top: 1px solid var(--line); }
.doc:first-child { border-top: 0; }
.doc__ico { grid-row: 1 / span 2; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--wash-2); color: var(--ink-3); }
.doc__ico .ic { width: 20px; height: 20px; }
.doc__main { min-width: 0; }
.doc__title { font-weight: 500; color: var(--ink); }
.doc__note { font-size: .875rem; line-height: 1.45; color: var(--ink-3); margin-top: 2px; }
.doc__side { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.doc__file { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 8px; padding: 8px 12px; border-radius: 8px; background: var(--wash); font-size: .875rem; color: var(--ink-2); }
.doc__file .code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
@media (min-width: 900px) {
  .doc { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .doc__side { grid-column: 3; grid-row: 1; margin-top: 0; justify-content: flex-end; align-self: start; }
  .doc__file { grid-column: 2 / -1; }
}
.doc.is-ok .doc__ico { background: var(--ok-t); color: var(--ok); }
.doc.is-bad .doc__ico { background: var(--bad-t); color: var(--bad); }
.doc.is-busy .doc__ico { background: var(--violet-t); color: var(--violet); }
.doc.is-self .doc__ico { background: var(--warn-t); color: var(--warn); }
.doc.is-busy .doc__ico .ic { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Дерево архива */
.tree { list-style: none; padding: 0; font-size: .9375rem; }
.tree > li { border-top: 1px solid var(--line); }
.tree > li:first-child { border-top: 0; }
.tree summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 14px 0; }
.tree summary::-webkit-details-marker { display: none; }
.tree summary .ic:first-child { color: var(--violet); }
.tree summary b { font-weight: 500; }
.tree summary b .code { color: var(--ink-3); margin-right: 6px; }
.tree details[open] summary .ic-chevron-down { transform: rotate(180deg); }
.tree ul { list-style: none; padding: 0 0 14px 36px; display: grid; gap: 8px; }
.tree ul li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 10px; align-items: start; color: var(--ink-2); }
.tree ul li .ic { width: 16px; height: 16px; margin-top: 3px; color: var(--ink-4); }
.tree ul li .code { color: var(--ink); word-break: break-all; }

/* Отметки «что взять с собой» */
.todo { list-style: none; padding: 0; display: grid; }
.todo li { border-top: 1px solid var(--line); }
.todo li:first-child { border-top: 0; }
.todo label { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; padding: 13px 0; cursor: pointer; align-items: start; }
.todo input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.todo .box { width: 22px; height: 22px; margin-top: 1px; border: 1.5px solid var(--line-2); border-radius: 6px; display: grid; place-items: center; transition: background var(--fast), border-color var(--fast); }
.todo .box::after { content: ""; width: 13px; height: 13px; background: #fff; -webkit-mask: var(--i-check) center/contain no-repeat; mask: var(--i-check) center/contain no-repeat; transform: scale(0); transition: transform var(--fast); }
.todo input:checked + .box { background: var(--ok); border-color: var(--ok); }
.todo input:checked + .box::after { transform: scale(1); }
.todo input:focus-visible + .box { outline: 2px solid var(--violet); outline-offset: 2px; }
.todo input:checked ~ span { color: var(--ink-3); text-decoration: line-through; text-decoration-color: var(--line-2); }
.todo span small { display: block; color: var(--ink-3); font-size: .8125rem; text-decoration: none; }

/* Зона загрузки */
.drop { position: relative; display: grid; justify-items: center; gap: 6px; padding: 28px 16px; text-align: center; border: 1.5px dashed var(--line-2); border-radius: 12px; background: var(--paper); cursor: pointer; transition: border-color var(--fast), background var(--fast); }
.drop:hover, .drop.is-over { border-color: var(--violet); background: var(--violet-t); }
.drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.drop .ic { width: 24px; height: 24px; color: var(--violet); }
.drop b { font-weight: 500; }

/* Обезличенный образец: водяной знак, размытые поля, без скачивания (ТЗ 15) */
.sample { position: relative; background: #fff; border: 1px solid var(--line-2); border-radius: var(--r-doc); padding: 22px 20px; overflow: hidden; user-select: none; -webkit-user-select: none; font-size: .875rem; }
.sample::after {
  content: attr(data-mark); position: absolute; inset: -40% -20%; display: grid; place-items: center; pointer-events: none;
  font: 500 .75rem/2.6 var(--code); letter-spacing: .2em; color: rgba(74, 47, 189, .13); text-align: center; white-space: pre-wrap; word-spacing: 2.4em; transform: rotate(-24deg);
}
.sample h4 { font-family: var(--display); font-weight: 400; font-size: 1.125rem; margin-bottom: 12px; }
.sample .blur { filter: blur(4.5px); }
.sample table { width: 100%; border-collapse: collapse; }
.sample td { padding: 6px 0; border-bottom: 1px dotted var(--line-2); vertical-align: top; }
.sample td:first-child { color: var(--ink-3); width: 44%; padding-right: 12px; }

/* Выбор страны чипами */
.pick { display: flex; flex-wrap: wrap; gap: 6px; }
.pick button { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 6px 12px; border: 1px solid var(--line-2); border-radius: 20px; background: var(--paper); font-size: .875rem; font-weight: 500; color: var(--ink-2); transition: border-color var(--fast), color var(--fast), background var(--fast); }
.pick button:hover { border-color: var(--ink-3); color: var(--ink); }
.pick button[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: #fff; }

/* Строки «название — сумма» */
.plan__rows { display: grid; gap: 6px; }
.plan__rows div { display: flex; justify-content: space-between; gap: 12px; font-size: .9375rem; }
.plan__rows div span:first-child { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-2); }
.plan__rows div b { font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }

/* Архив: дерево папок слева, лист «что взять» справа */
.zip { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
@media (min-width: 1024px) { .zip { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; } }
.zip__name { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid var(--line-2); margin-bottom: 4px; }
.zip__name .code { font-size: .875rem; color: var(--ink); word-break: break-all; }
.sheet { position: relative; padding: 26px 24px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-doc); box-shadow: 6px 6px 0 -1px var(--paper), 6px 6px 0 0 var(--line), 12px 12px 0 -1px var(--paper), 12px 12px 0 0 var(--line), var(--sh-2); margin-right: 12px; }
.sheet h3 { font-family: var(--display); font-weight: 400; font-size: 1.375rem; margin-bottom: 4px; }
.sheet .stamp { float: right; margin: -8px -6px 6px 12px; }   /* обтекание: длинный заголовок не попадает под штамп */
.sheet .todo { margin-top: 14px; }

/* 14 Окна и уведомления ===================================================== */
.modal { position: fixed; inset: 0; z-index: 120; display: grid; place-items: end center; background: rgba(14, 26, 58, .5); opacity: 0; pointer-events: none; transition: opacity var(--med); }
.modal.is-open { opacity: 1; pointer-events: auto; }
.modal__box { width: 100%; max-width: 560px; max-height: 92dvh; overflow: auto; overscroll-behavior: contain; background: var(--paper); border-radius: 20px 20px 0 0; padding: 22px var(--pad) calc(22px + env(safe-area-inset-bottom)); box-shadow: var(--sh-3); transform: translateY(24px); transition: transform var(--med); }
.modal.is-open .modal__box { transform: none; }
.modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.modal__head h3 { font-family: var(--display); font-weight: 400; font-size: 1.5rem; line-height: 1.2; letter-spacing: -.005em; }
@media (min-width: 720px) {
  .modal { place-items: center; padding: 24px; }
  .modal__box { border-radius: 20px; padding: 28px; }
  .modal__box--wide { max-width: 760px; }
}

.toasts { position: fixed; left: 50%; bottom: 20px; z-index: 140; display: grid; gap: 8px; width: min(92vw, 420px); transform: translateX(-50%); pointer-events: none; }
.toast { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; padding: 12px 14px; border-radius: 12px; background: var(--ink); color: #fff; font-size: .9375rem; box-shadow: var(--sh-3); animation: toast 260ms var(--ease) both; }
.toast .ic { margin-top: 2px; color: #7FD6AB; }
.toast--bad .ic { color: #FF9D93; }
@keyframes toast { from { opacity: 0; transform: translateY(10px); } }
/* На телефоне уведомления сверху: внизу они закрывали бы кнопку «Дальше» и помощника */
@media (max-width: 719px) {
  .toasts { top: calc(12px + env(safe-area-inset-top)); bottom: auto; }
  @keyframes toast { from { opacity: 0; transform: translateY(-10px); } }
}

/* 15 Помощник =============================================================== */
.ai-fab { position: fixed; right: 16px; bottom: 16px; z-index: 80; display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 18px 8px 8px; border: 0; border-radius: 30px; background: var(--ink); color: #fff; font-weight: 500; font-size: .9375rem; box-shadow: var(--sh-3); transition: transform var(--fast), background var(--fast); }
.ai-fab:hover { background: #1B2A55; transform: translateY(-2px); }
.ai-fab__seal { width: 36px; height: 36px; border-radius: 50%; background: var(--violet); display: grid; place-items: center; }
.ai-fab__seal::after { content: ""; width: 22px; height: 22px; background: #fff; -webkit-mask: var(--seal) center/contain no-repeat; mask: var(--seal) center/contain no-repeat; }
@media (max-width: 719px) { .ai-fab span.ai-fab__t { display: none; } .ai-fab { padding: 8px; } }
body.has-dock .ai-fab { bottom: 84px; }

.ai { position: fixed; z-index: 110; inset: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: var(--paper); opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity var(--med), transform var(--med); }
.ai.is-open { opacity: 1; pointer-events: auto; transform: none; }
@media (min-width: 720px) {
  .ai { inset: auto 20px 20px auto; width: 408px; height: min(640px, calc(100dvh - 40px)); border-radius: 20px; border: 1px solid var(--line); box-shadow: var(--sh-3); overflow: hidden; }
}
.ai__head { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 14px 16px; background: var(--ink); color: #fff; }
.ai__head b { display: block; font-family: var(--display); font-weight: 400; font-size: 1.0625rem; line-height: 1.2; }
.ai__head small { color: #A9B2D0; font-size: .75rem; }
.ai__x { width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; display: grid; place-items: center; }
.ai__x:hover { background: rgba(255, 255, 255, .22); }
.ai__log { overflow-y: auto; overscroll-behavior: contain; padding: 16px; display: grid; align-content: start; gap: 12px; }
.ai__ctx { padding: 8px 12px; border-radius: 8px; background: var(--wash); font-size: .8125rem; color: var(--ink-3); }
.msg { max-width: 88%; padding: 10px 14px; border-radius: 4px 16px 16px 16px; background: var(--wash); font-size: .9375rem; line-height: 1.5; color: var(--ink); justify-self: start; }
.msg--me { justify-self: end; border-radius: 16px 4px 16px 16px; background: var(--violet); color: #fff; }
.msg ul { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 4px; }
.msg p + p { margin-top: 8px; }
.typing { display: inline-flex; gap: 4px; padding: 5px 0; }
.typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--ink-4); animation: blip 1.1s ease-in-out infinite; }
.typing i:nth-child(2) { animation-delay: .15s; } .typing i:nth-child(3) { animation-delay: .3s; }
@keyframes blip { 0%, 60%, 100% { opacity: .3; transform: none; } 30% { opacity: 1; transform: translateY(-3px); } }
.ai__chips { display: flex; gap: 6px; padding: 0 16px 10px; overflow-x: auto; scrollbar-width: none; }
.ai__chips::-webkit-scrollbar { display: none; }
.ai__chips button { flex: none; min-height: 34px; padding: 6px 12px; border: 1px solid var(--line-2); border-radius: 18px; background: var(--paper); font-size: .8125rem; color: var(--ink-2); white-space: nowrap; }
.ai__chips button:hover { border-color: var(--violet); color: var(--violet-d); background: var(--violet-t); }
.ai__form { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 8px; align-items: end; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); }
.ai__form textarea { min-height: 40px; max-height: 120px; padding: 9px 14px; border: 1px solid var(--line-2); border-radius: 20px; resize: none; font-size: .9375rem; line-height: 1.4; background: var(--paper); }
.ai__form textarea:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px var(--violet-t); }
.ai__btn { width: 40px; height: 40px; border: 0; border-radius: 50%; display: grid; place-items: center; background: var(--wash-2); color: var(--ink-2); cursor: pointer; }
.ai__btn input { display: none; }
.ai__btn--send { background: var(--violet); color: #fff; }
.ai__btn--send:disabled { opacity: .4; }
.ai__fine { padding: 0 16px 10px; text-align: center; font-size: .6875rem; color: var(--ink-4); }

/* 16 Флаги (CSS, без картинок и эмодзи) ===================================== */
.flag { position: relative; display: inline-block; width: 24px; height: 16px; border-radius: 3px; overflow: hidden; flex: none; box-shadow: 0 0 0 1px rgba(14, 26, 58, .14); background: #fff; vertical-align: -2px; }
.flag--jp { background: radial-gradient(circle at 50% 50%, #BC002D 0 4.8px, #fff 5.2px); }
.flag--us { background:
  linear-gradient(#3C3B6E, #3C3B6E) 0 0 / 42% 54% no-repeat,
  repeating-linear-gradient(#B22234 0 1.23px, #fff 1.23px 2.46px); }
.flag--fr { background: linear-gradient(90deg, #0055A4 33.3%, #fff 33.3% 66.6%, #EF4135 66.6%); }
.flag--es { background: linear-gradient(#AA151B 25%, #F1BF00 25% 75%, #AA151B 75%); }
.flag--cz { background: linear-gradient(#fff 50%, #D7141A 50%); }
.flag--cz::before { content: ""; position: absolute; inset: 0; background: #11457E; clip-path: polygon(0 0, 50% 50%, 0 100%); }
.flag--hu { background: linear-gradient(#CE2939 33.3%, #fff 33.3% 66.6%, #477050 66.6%); }
.flag--at { background: linear-gradient(#ED2939 33.3%, #fff 33.3% 66.6%, #ED2939 66.6%); }
.flag--de { background: linear-gradient(#000 33.3%, #DD0000 33.3% 66.6%, #FFCE00 66.6%); }
.flag--l { width: 36px; height: 24px; border-radius: 4px; }
.flag--l.flag--jp { background: radial-gradient(circle at 50% 50%, #BC002D 0 7.2px, #fff 7.7px); }
.flag--l.flag--us { background:
  linear-gradient(#3C3B6E, #3C3B6E) 0 0 / 42% 54% no-repeat,
  repeating-linear-gradient(#B22234 0 1.846px, #fff 1.846px 3.692px); }

/* 17 Иконки (маска, цвет — currentColor) ==================================== */
.ic { display: inline-block; width: 20px; height: 20px; flex: none; background: currentColor; vertical-align: -4px;
  -webkit-mask: var(--i) center/contain no-repeat; mask: var(--i) center/contain no-repeat; }
.ic--s { width: 16px; height: 16px; vertical-align: -3px; }
.ic--l { width: 24px; height: 24px; }
/* Печать бренда встроена в CSS: маска из внешнего файла не грузится, когда сайт открыт двойным щелчком (file://) */
:root { --seal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none'%3E%3Cpath d='M54.6 32L55.8 32.7L56.5 33.5L56.8 34.3L56.8 35.1L56.6 35.9L56.5 36.7L56.3 37.4L56.2 38.2L55.9 39L55.5 39.6L54.8 40.2L53.6 40.6L52.1 40.7L50.2 40.6L48.3 40.3L46.4 39.9L44.9 39.6L43.9 39.6L43.5 39.8L43.7 40.5L44.4 41.6L45.4 43.1L46.4 44.7L47.3 46.4L48 48L48.3 49.3L48.2 50.4L47.8 51.2L47.3 51.7L46.7 52.2L46 52.6L45.4 53L44.7 53.5L44 53.9L43.2 54L42.3 53.9L41.2 53.3L40 52.3L38.8 51L37.6 49.4L36.6 47.8L35.7 46.5L35.1 45.8L34.6 45.7L34.3 46.3L34 47.6L33.6 49.3L33.2 51.2L32.7 53L32 54.6L31.3 55.8L30.5 56.5L29.7 56.8L28.9 56.8L28.1 56.6L27.3 56.5L26.6 56.3L25.8 56.2L25 55.9L24.4 55.5L23.8 54.8L23.4 53.6L23.3 52.1L23.4 50.2L23.7 48.3L24.1 46.4L24.4 44.9L24.4 43.9L24.2 43.5L23.5 43.7L22.4 44.4L20.9 45.4L19.3 46.4L17.6 47.3L16 48L14.7 48.3L13.6 48.2L12.8 47.8L12.3 47.3L11.8 46.7L11.4 46L11 45.4L10.5 44.7L10.1 44L10 43.2L10.1 42.3L10.7 41.2L11.7 40L13 38.8L14.6 37.6L16.2 36.6L17.5 35.7L18.2 35.1L18.3 34.6L17.7 34.3L16.4 34L14.7 33.6L12.8 33.2L11 32.7L9.4 32L8.2 31.3L7.5 30.5L7.2 29.7L7.2 28.9L7.4 28.1L7.5 27.3L7.7 26.6L7.8 25.8L8.1 25L8.5 24.4L9.2 23.8L10.4 23.4L11.9 23.3L13.8 23.4L15.7 23.7L17.6 24.1L19.1 24.4L20.1 24.4L20.5 24.2L20.3 23.5L19.6 22.4L18.6 20.9L17.6 19.3L16.7 17.6L16 16L15.7 14.7L15.8 13.6L16.2 12.8L16.7 12.3L17.3 11.8L18 11.4L18.6 11L19.3 10.5L20 10.1L20.8 10L21.7 10.1L22.8 10.7L24 11.7L25.2 13L26.4 14.6L27.4 16.2L28.3 17.5L28.9 18.2L29.4 18.3L29.7 17.7L30 16.4L30.4 14.7L30.8 12.8L31.3 11L32 9.4L32.7 8.2L33.5 7.5L34.3 7.2L35.1 7.2L35.9 7.4L36.7 7.5L37.4 7.7L38.2 7.8L39 8.1L39.6 8.5L40.2 9.2L40.6 10.4L40.7 11.9L40.6 13.8L40.3 15.7L39.9 17.6L39.6 19.1L39.6 20.1L39.8 20.5L40.5 20.3L41.6 19.6L43.1 18.6L44.7 17.6L46.4 16.7L48 16L49.3 15.7L50.4 15.8L51.2 16.2L51.7 16.7L52.2 17.3L52.6 18L53 18.6L53.5 19.3L53.9 20L54 20.8L53.9 21.7L53.3 22.8L52.3 24L51 25.2L49.4 26.4L47.8 27.4L46.5 28.3L45.8 28.9L45.7 29.4L46.3 29.7L47.6 30L49.3 30.4L51.2 30.8L53 31.3L54.6 32Z' stroke='currentColor' stroke-width='1.15'/%3E%3Cpath d='M56.9 32L56.9 32.8L56.9 33.6L56.8 34.3L56.4 35.1L55.7 35.8L54.5 36.3L52.9 36.7L51.1 36.9L49.1 37L47.3 37L45.8 37L45 37.2L44.8 37.6L45.3 38.3L46.3 39.3L47.6 40.6L48.9 42L50.1 43.5L51 44.9L51.4 46.1L51.5 47.1L51.2 47.9L50.7 48.5L50.2 49.1L49.6 49.6L49.1 50.2L48.5 50.7L47.9 51.2L47.1 51.5L46.1 51.4L44.9 51L43.5 50.1L42 48.9L40.6 47.6L39.3 46.3L38.3 45.3L37.6 44.8L37.2 45L37 45.8L37 47.3L37 49.1L36.9 51.1L36.7 52.9L36.3 54.5L35.8 55.7L35.1 56.4L34.3 56.8L33.6 56.9L32.8 56.9L32 56.9L31.2 56.9L30.4 56.9L29.7 56.8L28.9 56.4L28.2 55.7L27.7 54.5L27.3 52.9L27.1 51.1L27 49.1L27 47.3L27 45.8L26.8 45L26.4 44.8L25.7 45.3L24.7 46.3L23.4 47.6L22 48.9L20.5 50.1L19.1 51L17.9 51.4L16.9 51.5L16.1 51.2L15.5 50.7L14.9 50.2L14.4 49.6L13.8 49.1L13.3 48.5L12.8 47.9L12.5 47.1L12.6 46.1L13 44.9L13.9 43.5L15.1 42L16.4 40.6L17.7 39.3L18.7 38.3L19.2 37.6L19 37.2L18.2 37L16.7 37L14.9 37L12.9 36.9L11.1 36.7L9.5 36.3L8.3 35.8L7.6 35.1L7.2 34.3L7.1 33.6L7.1 32.8L7.1 32L7.1 31.2L7.1 30.4L7.2 29.7L7.6 28.9L8.3 28.2L9.5 27.7L11.1 27.3L12.9 27.1L14.9 27L16.7 27L18.2 27L19 26.8L19.2 26.4L18.7 25.7L17.7 24.7L16.4 23.4L15.1 22L13.9 20.5L13 19.1L12.6 17.9L12.5 16.9L12.8 16.1L13.3 15.5L13.8 14.9L14.4 14.4L14.9 13.8L15.5 13.3L16.1 12.8L16.9 12.5L17.9 12.6L19.1 13L20.5 13.9L22 15.1L23.4 16.4L24.7 17.7L25.7 18.7L26.4 19.2L26.8 19L27 18.2L27 16.7L27 14.9L27.1 12.9L27.3 11.1L27.7 9.5L28.2 8.3L28.9 7.6L29.7 7.2L30.4 7.1L31.2 7.1L32 7.1L32.8 7.1L33.6 7.1L34.3 7.2L35.1 7.6L35.8 8.3L36.3 9.5L36.7 11.1L36.9 12.9L37 14.9L37 16.7L37 18.2L37.2 19L37.6 19.2L38.3 18.7L39.3 17.7L40.6 16.4L42 15.1L43.5 13.9L44.9 13L46.1 12.6L47.1 12.5L47.9 12.8L48.5 13.3L49.1 13.8L49.6 14.4L50.2 14.9L50.7 15.5L51.2 16.1L51.5 16.9L51.4 17.9L51 19.1L50.1 20.5L48.9 22L47.6 23.4L46.3 24.7L45.3 25.7L44.8 26.4L45 26.8L45.8 27L47.3 27L49.1 27L51.1 27.1L52.9 27.3L54.5 27.7L55.7 28.2L56.4 28.9L56.8 29.7L56.9 30.4L56.9 31.2L56.9 32Z' stroke='currentColor' stroke-width='1.15'/%3E%3Cpath d='M54.6 32L53 32.7L51.2 33.2L49.3 33.6L47.6 34L46.3 34.3L45.7 34.6L45.8 35.1L46.5 35.7L47.8 36.6L49.4 37.6L51 38.8L52.3 40L53.3 41.2L53.9 42.3L54 43.2L53.9 44L53.5 44.7L53 45.4L52.6 46L52.2 46.7L51.7 47.3L51.2 47.8L50.4 48.2L49.3 48.3L48 48L46.4 47.3L44.7 46.4L43.1 45.4L41.6 44.4L40.5 43.7L39.8 43.5L39.6 43.9L39.6 44.9L39.9 46.4L40.3 48.3L40.6 50.2L40.7 52.1L40.6 53.6L40.2 54.8L39.6 55.5L39 55.9L38.2 56.2L37.4 56.3L36.7 56.5L35.9 56.6L35.1 56.8L34.3 56.8L33.5 56.5L32.7 55.8L32 54.6L31.3 53L30.8 51.2L30.4 49.3L30 47.6L29.7 46.3L29.4 45.7L28.9 45.8L28.3 46.5L27.4 47.8L26.4 49.4L25.2 51L24 52.3L22.8 53.3L21.7 53.9L20.8 54L20 53.9L19.3 53.5L18.6 53L18 52.6L17.3 52.2L16.7 51.7L16.2 51.2L15.8 50.4L15.7 49.3L16 48L16.7 46.4L17.6 44.7L18.6 43.1L19.6 41.6L20.3 40.5L20.5 39.8L20.1 39.6L19.1 39.6L17.6 39.9L15.7 40.3L13.8 40.6L11.9 40.7L10.4 40.6L9.2 40.2L8.5 39.6L8.1 39L7.8 38.2L7.7 37.4L7.5 36.7L7.4 35.9L7.2 35.1L7.2 34.3L7.5 33.5L8.2 32.7L9.4 32L11 31.3L12.8 30.8L14.7 30.4L16.4 30L17.7 29.7L18.3 29.4L18.2 28.9L17.5 28.3L16.2 27.4L14.6 26.4L13 25.2L11.7 24L10.7 22.8L10.1 21.7L10 20.8L10.1 20L10.5 19.3L11 18.6L11.4 18L11.8 17.3L12.3 16.7L12.8 16.2L13.6 15.8L14.7 15.7L16 16L17.6 16.7L19.3 17.6L20.9 18.6L22.4 19.6L23.5 20.3L24.2 20.5L24.4 20.1L24.4 19.1L24.1 17.6L23.7 15.7L23.4 13.8L23.3 11.9L23.4 10.4L23.8 9.2L24.4 8.5L25 8.1L25.8 7.8L26.6 7.7L27.3 7.5L28.1 7.4L28.9 7.2L29.7 7.2L30.5 7.5L31.3 8.2L32 9.4L32.7 11L33.2 12.8L33.6 14.7L34 16.4L34.3 17.7L34.6 18.3L35.1 18.2L35.7 17.5L36.6 16.2L37.6 14.6L38.8 13L40 11.7L41.2 10.7L42.3 10.1L43.2 10L44 10.1L44.7 10.5L45.4 11L46 11.4L46.7 11.8L47.3 12.3L47.8 12.8L48.2 13.6L48.3 14.7L48 16L47.3 17.6L46.4 19.3L45.4 20.9L44.4 22.4L43.7 23.5L43.5 24.2L43.9 24.4L44.9 24.4L46.4 24.1L48.3 23.7L50.2 23.4L52.1 23.3L53.6 23.4L54.8 23.8L55.5 24.4L55.9 25L56.2 25.8L56.3 26.6L56.5 27.3L56.6 28.1L56.8 28.9L56.8 29.7L56.5 30.5L55.8 31.3L54.6 32Z' stroke='currentColor' stroke-width='1.15'/%3E%3Cpath d='M45.9 32L46.3 32.4L47.3 33L48.8 33.6L50.6 34.3L52.3 35.2L53.8 36.2L55 37.1L55.6 38.1L55.8 38.9L55.7 39.7L55.5 40.5L55.2 41.2L54.9 41.9L54.6 42.6L54.2 43.3L53.7 44L53 44.4L51.9 44.6L50.4 44.5L48.7 44.1L46.8 43.5L45 42.8L43.5 42.1L42.4 41.8L41.8 41.8L41.8 42.4L42.1 43.5L42.8 45L43.5 46.8L44.1 48.7L44.5 50.4L44.6 51.9L44.4 53L44 53.7L43.3 54.2L42.6 54.6L41.9 54.9L41.2 55.2L40.5 55.5L39.7 55.7L38.9 55.8L38.1 55.6L37.1 55L36.2 53.8L35.2 52.3L34.3 50.6L33.6 48.8L33 47.3L32.4 46.3L32 45.9L31.6 46.3L31 47.3L30.4 48.8L29.7 50.6L28.8 52.3L27.8 53.8L26.9 55L25.9 55.6L25.1 55.8L24.3 55.7L23.5 55.5L22.8 55.2L22.1 54.9L21.4 54.6L20.7 54.2L20 53.7L19.6 53L19.4 51.9L19.5 50.4L19.9 48.7L20.5 46.8L21.2 45L21.9 43.5L22.2 42.4L22.2 41.8L21.6 41.8L20.5 42.1L19 42.8L17.2 43.5L15.3 44.1L13.6 44.5L12.1 44.6L11 44.4L10.3 44L9.8 43.3L9.4 42.6L9.1 41.9L8.8 41.2L8.5 40.5L8.3 39.7L8.2 38.9L8.4 38.1L9 37.1L10.2 36.2L11.7 35.2L13.4 34.3L15.2 33.6L16.7 33L17.7 32.4L18.1 32L17.7 31.6L16.7 31L15.2 30.4L13.4 29.7L11.7 28.8L10.2 27.8L9 26.9L8.4 25.9L8.2 25.1L8.3 24.3L8.5 23.5L8.8 22.8L9.1 22.1L9.4 21.4L9.8 20.7L10.3 20L11 19.6L12.1 19.4L13.6 19.5L15.3 19.9L17.2 20.5L19 21.2L20.5 21.9L21.6 22.2L22.2 22.2L22.2 21.6L21.9 20.5L21.2 19L20.5 17.2L19.9 15.3L19.5 13.6L19.4 12.1L19.6 11L20 10.3L20.7 9.8L21.4 9.4L22.1 9.1L22.8 8.8L23.5 8.5L24.3 8.3L25.1 8.2L25.9 8.4L26.9 9L27.8 10.2L28.8 11.7L29.7 13.4L30.4 15.2L31 16.7L31.6 17.7L32 18.1L32.4 17.7L33 16.7L33.6 15.2L34.3 13.4L35.2 11.7L36.2 10.2L37.1 9L38.1 8.4L38.9 8.2L39.7 8.3L40.5 8.5L41.2 8.8L41.9 9.1L42.6 9.4L43.3 9.8L44 10.3L44.4 11L44.6 12.1L44.5 13.6L44.1 15.3L43.5 17.2L42.8 19L42.1 20.5L41.8 21.6L41.8 22.2L42.4 22.2L43.5 21.9L45 21.2L46.8 20.5L48.7 19.9L50.4 19.5L51.9 19.4L53 19.6L53.7 20L54.2 20.7L54.6 21.4L54.9 22.1L55.2 22.8L55.5 23.5L55.7 24.3L55.8 25.1L55.6 25.9L55 26.9L53.8 27.8L52.3 28.8L50.6 29.7L48.8 30.4L47.3 31L46.3 31.6L45.9 32Z' stroke='currentColor' stroke-width='1.15'/%3E%3Ccircle cx='32' cy='32' r='29.5' stroke='currentColor' stroke-width='1.6'/%3E%3Ccircle cx='32' cy='32' r='9' fill='currentColor'/%3E%3C/svg%3E"); }

/* @icons */
:root {
  --i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --i-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
  --i-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  --i-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
  --i-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  --i-chevron-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
  --i-chevron-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 6l-6 6 6 6'/%3E%3C/svg%3E");
  --i-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --i-arrow-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E");
  --i-upload: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5M4 16v3a1 1 0 001 1h14a1 1 0 001-1v-3'/%3E%3C/svg%3E");
  --i-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v12M7 11l5 5 5-5M4 20h16'/%3E%3C/svg%3E");
  --i-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l5 5v12a1 1 0 01-1 1H7a1 1 0 01-1-1V4a1 1 0 011-1zM14 3v5h5'/%3E%3C/svg%3E");
  --i-file-text: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l5 5v12a1 1 0 01-1 1H7a1 1 0 01-1-1V4a1 1 0 011-1zM14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E");
  --i-folder: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a1 1 0 011-1h5l2 2h8a1 1 0 011 1v9a1 1 0 01-1 1H4a1 1 0 01-1-1V7z'/%3E%3C/svg%3E");
  --i-zip: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v4H4zM5 9v10a1 1 0 001 1h12a1 1 0 001-1V9M10 13h4'/%3E%3C/svg%3E");
  --i-printer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 9V4h10v5M7 17H5a1 1 0 01-1-1v-5a2 2 0 012-2h12a2 2 0 012 2v5a1 1 0 01-1 1h-2M7 14h10v6H7z'/%3E%3C/svg%3E");
  --i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.5-2.9 8.3-7 10-4.1-1.7-7-5.5-7-10V6l7-3zM9 12l2.2 2.2L15 10.5'/%3E%3C/svg%3E");
  --i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21a9 9 0 100-18 9 9 0 000 18zM12 7.5V12l3 2'/%3E%3C/svg%3E");
  --i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3h3l1.5 4-2 1.500a12 12 0 006.5 6.500l1.5-2 4 1.500v3a2 2 0 01-2.2 2A17 17 0 014.5 5.2 2 2 0 016.5 3z'/%3E%3C/svg%3E");
  --i-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21a9 9 0 100-18 9 9 0 000 18zM3 12h18M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.6-3.8-9s1.3-6.4 3.8-9z'/%3E%3C/svg%3E");
  --i-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16a1 1 0 011 1v10a1 1 0 01-1 1h-9l-5 4v-4H4a1 1 0 01-1-1V6a1 1 0 011-1z'/%3E%3C/svg%3E");
  --i-send: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 3.500L3 10.500l6.5 2.5 2.5 7 8.5-16.500zM9.5 13l4.5-4'/%3E%3C/svg%3E");
  --i-clip: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11.500l-8.2 8.200a5 5 0 01-7.1-7.100l8.5-8.500a3.4 3.4 0 014.8 4.800l-8.5 8.500a1.7 1.7 0 01-2.4-2.400l7.8-7.8'/%3E%3C/svg%3E");
  --i-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21a9 9 0 100-18 9 9 0 000 18zM12 11v5.500M12 7.500v.1'/%3E%3C/svg%3E");
  --i-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4l9 16H3L12 4zM12 10v4.500M12 17.300v.1'/%3E%3C/svg%3E");
  --i-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 11h12a1 1 0 011 1v7a1 1 0 01-1 1H6a1 1 0 01-1-1v-7a1 1 0 011-1zM8 11V8a4 4 0 018 0v3'/%3E%3C/svg%3E");
  --i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12a4 4 0 100-8 4 4 0 000 8zM4.5 20.500a7.5 7.5 0 0115 0'/%3E%3C/svg%3E");
  --i-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11a3.5 3.5 0 100-7 3.5 3.5 0 000 7zM2.5 20a6.5 6.5 0 0113 0M16 4.200a3.5 3.5 0 010 6.600M17.5 14.200a6.5 6.5 0 014 5.8'/%3E%3C/svg%3E");
  --i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 5h14a1 1 0 011 1v13a1 1 0 01-1 1H5a1 1 0 01-1-1V6a1 1 0 011-1zM4 10h16M8 3v4M16 3v4'/%3E%3C/svg%3E");
  --i-ticket: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16v3a2 2 0 000 4v3H4v-3a2 2 0 000-4V7zM14 7.500v2M14 11.500v2M14 15v1.5'/%3E%3C/svg%3E");
  --i-bed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 19V6M3 15h18v4M21 15v-2a3 3 0 00-3-3h-8v5M6.5 12.200a1.2 1.2 0 100-.01'/%3E%3C/svg%3E");
  --i-camera: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l1.5-2h7L17 8h3a1 1 0 011 1v9a1 1 0 01-1 1H4a1 1 0 01-1-1V9a1 1 0 011-1zM12 16.500a3.5 3.5 0 100-7 3.5 3.5 0 000 7z'/%3E%3C/svg%3E");
  --i-pen: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1-4L16.5 4.500a2.1 2.1 0 013 3L8 19l-4 1zM14.5 6.500l3 3'/%3E%3C/svg%3E");
  --i-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12zM12 15a3 3 0 100-6 3 3 0 000 6z'/%3E%3C/svg%3E");
  --i-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 9h10a1 1 0 011 1v10a1 1 0 01-1 1H9a1 1 0 01-1-1V10a1 1 0 011-1zM5 15H4a1 1 0 01-1-1V4a1 1 0 011-1h10a1 1 0 011 1v1'/%3E%3C/svg%3E");
  --i-external: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 01-1 1H5a1 1 0 01-1-1V7a1 1 0 011-1h5'/%3E%3C/svg%3E");
  --i-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E");
  --i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 18a7 7 0 100-14 7 7 0 000 14zM20 20l-4-4'/%3E%3C/svg%3E");
  --i-card: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a1 1 0 011-1h16a1 1 0 011 1v10a1 1 0 01-1 1H4a1 1 0 01-1-1V7zM3 10.500h18M7 15h3'/%3E%3C/svg%3E");
  --i-translate: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h9M8.5 4v2M6 6c.5 3.5 3 6.5 6 8M11 6c-.5 3.5-3 6.5-6.5 8M13 20l4-9 4 9M14.3 17h5.4'/%3E%3C/svg%3E");
  --i-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 5.500v13l11-6.5-11-6.500z'/%3E%3C/svg%3E");
  --i-trash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 7h14M10 7V4h4v3M7 7l1 13h8l1-13M10 11v5M14 11v5'/%3E%3C/svg%3E");
  --i-bell: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 16v-5a6 6 0 0112 0v5l1.5 2h-15L6 16zM10 20.500a2 2 0 004 0'/%3E%3C/svg%3E");
  --i-sliders: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h10M18 7h2M4 17h4M12 17h8M16 5v4M10 15v4'/%3E%3C/svg%3E");
  --i-chart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 20V11M12 20V4M19 20v-7M3 20h18'/%3E%3C/svg%3E");
  --i-list: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7h11M9 12h11M9 17h11M4.5 7h.01M4.5 12h.01M4.5 17h.01'/%3E%3C/svg%3E");
  --i-refresh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11a8 8 0 10-2.3 6M20 5v6h-6'/%3E%3C/svg%3E");
  --i-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11l8-7 8 7v8a1 1 0 01-1 1h-4v-6h-6v6H5a1 1 0 01-1-1v-8z'/%3E%3C/svg%3E");
  --i-qr: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h3v3h-3zM20 14v.01M20 17v3M17 20h.01'/%3E%3C/svg%3E");
  --i-stamp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 14c0-2 1.5-2.5 1.5-5a2.5 2.5 0 015 0c0 2.5 1.5 3 1.5 5M5 14h14v4H5zM5 21h14'/%3E%3C/svg%3E");
  --i-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 5-9 5-9-5 9-5zM3 13l9 5 9-5M3 17.500l9 5 9-5'/%3E%3C/svg%3E");
  --i-spinner: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a9 9 0 109 9'/%3E%3C/svg%3E");
  --i-flag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4M5 4h11l-2 4 2 4H5'/%3E%3C/svg%3E");
  --i-edit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16v4zM13.5 6.500l4 4'/%3E%3C/svg%3E");
  --i-logout: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 4H5a1 1 0 00-1 1v14a1 1 0 001 1h5M15 8l4 4-4 4M19 12H9'/%3E%3C/svg%3E");
  --i-key: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 9.500a4.5 4.5 0 11-3.2 1.300L20 2.500M17 5.500l2.5 2.500M14.5 8l2 2'/%3E%3C/svg%3E");
  --i-book: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h11a3 3 0 013 3v13H8a3 3 0 01-3-3V4zM5 17a3 3 0 013-3h11'/%3E%3C/svg%3E");
  --i-history: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12a8 8 0 108-8 8 8 0 00-6 2.700M4 4v4h4M12 8v4l3 2'/%3E%3C/svg%3E");
  --i-tag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12V4h8l10 10-8 8L3 12zM7.5 8.500h.01'/%3E%3C/svg%3E");
}
.ic-check { --i: var(--i-check); }
.ic-x { --i: var(--i-x); }
.ic-plus { --i: var(--i-plus); }
.ic-minus { --i: var(--i-minus); }
.ic-chevron-down { --i: var(--i-chevron-down); }
.ic-chevron-right { --i: var(--i-chevron-right); }
.ic-chevron-left { --i: var(--i-chevron-left); }
.ic-arrow-right { --i: var(--i-arrow-right); }
.ic-arrow-left { --i: var(--i-arrow-left); }
.ic-upload { --i: var(--i-upload); }
.ic-download { --i: var(--i-download); }
.ic-file { --i: var(--i-file); }
.ic-file-text { --i: var(--i-file-text); }
.ic-folder { --i: var(--i-folder); }
.ic-zip { --i: var(--i-zip); }
.ic-printer { --i: var(--i-printer); }
.ic-shield { --i: var(--i-shield); }
.ic-clock { --i: var(--i-clock); }
.ic-phone { --i: var(--i-phone); }
.ic-globe { --i: var(--i-globe); }
.ic-chat { --i: var(--i-chat); }
.ic-send { --i: var(--i-send); }
.ic-clip { --i: var(--i-clip); }
.ic-info { --i: var(--i-info); }
.ic-alert { --i: var(--i-alert); }
.ic-lock { --i: var(--i-lock); }
.ic-user { --i: var(--i-user); }
.ic-users { --i: var(--i-users); }
.ic-calendar { --i: var(--i-calendar); }
.ic-ticket { --i: var(--i-ticket); }
.ic-bed { --i: var(--i-bed); }
.ic-camera { --i: var(--i-camera); }
.ic-pen { --i: var(--i-pen); }
.ic-eye { --i: var(--i-eye); }
.ic-copy { --i: var(--i-copy); }
.ic-external { --i: var(--i-external); }
.ic-menu { --i: var(--i-menu); }
.ic-search { --i: var(--i-search); }
.ic-card { --i: var(--i-card); }
.ic-translate { --i: var(--i-translate); }
.ic-play { --i: var(--i-play); }
.ic-trash { --i: var(--i-trash); }
.ic-bell { --i: var(--i-bell); }
.ic-sliders { --i: var(--i-sliders); }
.ic-chart { --i: var(--i-chart); }
.ic-list { --i: var(--i-list); }
.ic-refresh { --i: var(--i-refresh); }
.ic-home { --i: var(--i-home); }
.ic-qr { --i: var(--i-qr); }
.ic-stamp { --i: var(--i-stamp); }
.ic-layers { --i: var(--i-layers); }
.ic-spinner { --i: var(--i-spinner); }
.ic-flag { --i: var(--i-flag); }
.ic-edit { --i: var(--i-edit); }
.ic-logout { --i: var(--i-logout); }
.ic-key { --i: var(--i-key); }
.ic-book { --i: var(--i-book); }
.ic-history { --i: var(--i-history); }
.ic-tag { --i: var(--i-tag); }
/* @/icons */

/* 18 Утилиты ================================================================ */
.mt-0 { margin-top: 0 !important; } .mt-1 { margin-top: 8px; } .mt-2 { margin-top: 16px; } .mt-3 { margin-top: 24px; } .mt-4 { margin-top: 32px; } .mt-5 { margin-top: 48px; }
.mb-1 { margin-bottom: 8px; } .mb-2 { margin-bottom: 16px; } .mb-3 { margin-bottom: 24px; }
.center { text-align: center; }
.right { text-align: right; }
.only-d { display: none; }
@media (min-width: 720px) { .only-d { display: initial; } .only-m { display: none !important; } }
.price { font-family: var(--display); font-size: 1.75rem; line-height: 1.1; font-variant-numeric: lining-nums; white-space: nowrap; }
.price small { font: 400 .875rem/1 var(--text); color: var(--ink-3); margin-left: 4px; }
.divider { height: 24px; background: url("../img/band.svg") center / 240px 24px repeat-x; opacity: .9; }

/* Плашка «прототип» */
.proto { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 6px var(--pad); background: var(--ink); color: #C6CCE2; font-size: .75rem; text-align: center; }
.proto b { color: #fff; font-weight: 500; }
/* Режим менеджера: заявку за клиента оформляет сотрудник */
.staffbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 10px; padding: 8px var(--pad); background: var(--violet-t); color: var(--violet-d); font-size: .875rem; text-align: center; }
.staffbar[hidden] { display: none; }
.staffbar b { font-weight: 600; }
.staffbar .ic { flex: none; }
@media (max-width: 719px) { .staffbar .ic { display: none; } }
.staffbar a { color: inherit; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }

/* 19 Печать и моторика ====================================================== */
@media print {
  .top, .foot, .ai-fab, .ai, .toasts, .proto, .staffbar, .no-print, .drawer, .modal { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .section { padding-block: 0; }
  .card { border-color: #999; box-shadow: none; break-inside: avoid; }
  a { color: inherit; text-decoration: none; }
  @page { size: A4; margin: 16mm; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* Пока применяется узбекский словарь, страница не показывается (без мигания).
   Если скрипт не загрузился, через секунду она проявится сама. */
.i18n-wait body { visibility: hidden; animation: i18n-show 0s 1.2s forwards; }
@keyframes i18n-show { to { visibility: visible; } }
