/* =========================================================================
   Уклад — компоненты (v1, 30.10.2026)
   Все классы начинаются с «u-», значения — только из uklad-tokens.css.
   Подключение: <body class="u-app"> + tokens.css + components.css + uklad-ui.js
   ========================================================================= */

/* ---------- база (только внутри .u-app). :where() — нулевая специфичность, чтобы сброс не перебивал компоненты ---------- */
.u-app{margin:0;background:var(--u-bg);color:var(--u-ink);font:var(--u-w-regular) var(--u-text-md)/var(--u-leading) var(--u-font);
  -webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;transition:background var(--u-mid) var(--u-ease),color var(--u-mid) var(--u-ease)}
:where(.u-app) *,:where(.u-app) *::before,:where(.u-app) *::after{box-sizing:border-box}
:where(.u-app) button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}
:where(.u-app) a{color:inherit}
:where(.u-app) :focus-visible{outline:2px solid var(--u-accent);outline-offset:3px;border-radius:6px}
.u-app [hidden]{display:none!important}
.u-num{font-variant-numeric:tabular-nums}
.u-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.u-ico{width:1.1em;height:1.1em;flex:none;vertical-align:-.15em}

/* ---------- раскладка ---------- */
.u-wrap{max-width:var(--u-content);margin:0 auto;padding:0 var(--u-gutter)}
.u-section{padding:var(--u-s8) 0 0}
.u-section:first-child{padding-top:var(--u-s7)}
.u-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--u-s5);margin-bottom:28px}
.u-eyebrow{display:flex;align-items:center;gap:var(--u-s2);margin-bottom:var(--u-s2);font-size:var(--u-text-sm);font-weight:var(--u-w-semibold);letter-spacing:.03em;color:var(--u-accent)}
.u-eyebrow .u-n{width:22px;height:22px;border-radius:7px;background:var(--u-accent-soft);display:grid;place-items:center;font-size:var(--u-text-xs)}
.u-h1{font-size:var(--u-text-3xl);line-height:1.04;letter-spacing:-.035em;font-weight:var(--u-w-semibold);margin:0}
.u-h2{font-size:var(--u-text-2xl);line-height:var(--u-leading-tight);letter-spacing:-.025em;font-weight:var(--u-w-semibold);margin:0}
.u-h3{font-size:var(--u-text-xl);line-height:1.25;letter-spacing:-.015em;font-weight:var(--u-w-semibold);margin:0}
.u-sub{color:var(--u-muted);margin:var(--u-s2) 0 0;max-width:62ch;font-size:var(--u-text-md)}
.u-mini-h{font-size:var(--u-text-xs);font-weight:var(--u-w-semibold);color:var(--u-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}
.u-cols{display:grid;gap:20px;align-items:start}
.u-cols--2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.u-cols--main-side{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.u-cols--side-main{grid-template-columns:minmax(0,400px) minmax(0,1fr)}
.u-cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.u-cols--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.u-cols--stat{grid-template-columns:minmax(0,320px) minmax(0,1fr)}
.u-back{display:inline-flex;align-items:center;gap:6px;font-size:var(--u-text-md);font-weight:var(--u-w-medium);color:var(--u-muted);text-decoration:none;margin-bottom:var(--u-s5);min-height:var(--u-tap)}
.u-back:hover{color:var(--u-ink)}

/* ---------- шапка ---------- */
.u-bar{position:sticky;top:0;z-index:50;color:var(--u-hero-ink);border-bottom:1px solid var(--u-hero-line);
  background:color-mix(in srgb,var(--u-hero) 84%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}
.u-bar .u-wrap{height:var(--u-bar-h);display:flex;align-items:center;gap:28px}
.u-logo{display:flex;align-items:center;gap:10px;font-weight:var(--u-w-semibold);font-size:18px;letter-spacing:-.01em;text-decoration:none;color:var(--u-hero-ink)}
.u-logo i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:15px;color:var(--u-hero);
  background:linear-gradient(140deg,#fff 0%,#C9D1FF 100%);box-shadow:0 0 0 1px rgba(255,255,255,.2),0 6px 18px -4px var(--u-hero-glow)}
.u-tabs{display:flex;gap:4px;padding:4px;border-radius:var(--u-r-md);background:rgba(255,255,255,.05);border:1px solid var(--u-hero-line)}
.u-tabs a,.u-tabs button{text-decoration:none;font-size:14px;font-weight:var(--u-w-medium);color:var(--u-hero-2);padding:7px 14px;border-radius:9px;transition:background var(--u-fast),color var(--u-fast);display:inline-flex;align-items:center;gap:6px}
.u-tabs a:hover,.u-tabs button:hover{color:#fff;background:rgba(255,255,255,.06)}
.u-tabs [aria-current]{color:var(--u-hero);background:#fff}
.u-bar-r{margin-left:auto;display:flex;align-items:center;gap:10px}
.u-pill{display:inline-flex;align-items:center;gap:var(--u-s2);height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--u-hero-line);background:rgba(255,255,255,.04);font-size:13.5px;color:var(--u-hero-2);white-space:nowrap;text-decoration:none}
.u-pill b{color:var(--u-hero-ink);font-weight:var(--u-w-semibold)}
.u-pill .u-dot{width:7px;height:7px;border-radius:50%;background:var(--u-hero-ok);box-shadow:0 0 0 3px rgba(76,196,140,.18)}
.u-icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--u-hero-line);display:grid;place-items:center;color:var(--u-hero-2);transition:color var(--u-fast),background var(--u-fast)}
.u-icon-btn:hover{color:#fff;background:rgba(255,255,255,.07)}
.u-icon-btn svg{width:18px;height:18px}
.u-avatar{width:34px;height:34px;border-radius:50%;background:#262B35;color:#fff;display:grid;place-items:center;font-weight:var(--u-w-semibold);font-size:13px}

/* выпадающее меню */
.u-menu-wrap{position:relative}
.u-menu{position:absolute;top:calc(100% + 10px);left:0;min-width:240px;z-index:60;padding:6px;border-radius:14px;background:var(--u-surface);border:1px solid var(--u-line);box-shadow:var(--u-shadow-3);
  opacity:0;transform:translateY(-4px) scale(.98);transform-origin:top left;pointer-events:none;transition:opacity var(--u-fast),transform var(--u-fast) var(--u-ease)}
.u-menu.is-open{opacity:1;transform:none;pointer-events:auto}
.u-menu--right{left:auto;right:0;transform-origin:top right}
.u-menu a{display:flex;flex-direction:column;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--u-ink);font-size:var(--u-text-md);font-weight:var(--u-w-medium)}
.u-menu a small{color:var(--u-muted);font-weight:var(--u-w-regular);font-size:var(--u-text-sm)}
.u-menu a:hover,.u-menu a[aria-current]{background:var(--u-surface-3)}
.u-menu hr{border:0;border-top:1px solid var(--u-line);margin:6px 4px}

/* нижняя панель вкладок (телефон) */
.u-tabbar{display:none}

/* ---------- кнопки ---------- */
.u-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;border-radius:var(--u-r-md);font-size:var(--u-text-md);font-weight:var(--u-w-semibold);text-decoration:none;white-space:nowrap;
  transition:transform var(--u-fast) var(--u-ease),background var(--u-fast),box-shadow var(--u-fast),color var(--u-fast),opacity var(--u-fast)}
.u-btn svg{width:17px;height:17px;transition:transform var(--u-fast) var(--u-ease)}
.u-btn:hover .u-arr{transform:translateX(3px)}
.u-btn:active{transform:scale(.98)}
.u-btn--sm{min-height:var(--u-tap);padding:0 14px;font-size:14px;border-radius:10px}
.u-btn--block{width:100%}
.u-btn--primary{background:var(--u-accent);color:var(--u-accent-ink);box-shadow:0 8px 22px -8px color-mix(in srgb,var(--u-accent) 70%,transparent)}
.u-btn--primary:hover{background:var(--u-accent-hover)}
.u-btn--quiet{border:1px solid var(--u-line-2);background:var(--u-surface);color:var(--u-ink)}
.u-btn--quiet:hover{background:var(--u-surface-2)}
.u-btn--danger{border:1px solid color-mix(in srgb,var(--u-danger) 40%,transparent);background:var(--u-surface);color:var(--u-danger)}
.u-btn--danger:hover{background:var(--u-danger-soft)}
.u-btn--link{min-height:auto;padding:0;color:var(--u-accent);font-weight:var(--u-w-semibold);border-radius:4px}
.u-btn--hero{background:#fff;color:var(--u-hero);box-shadow:0 10px 30px -8px rgba(132,152,255,.55),inset 0 -2px 0 rgba(0,0,0,.08)}
.u-btn--hero:hover{background:#EEF1FF}
.u-btn--ghost-hero{color:var(--u-hero-ink);border:1px solid var(--u-hero-line);background:rgba(255,255,255,.04)}
.u-btn--ghost-hero:hover{background:rgba(255,255,255,.09)}
.u-btn[disabled],.u-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}
.u-btn.is-loading{pointer-events:none;color:transparent!important;position:relative}
.u-btn.is-loading::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-color:var(--u-accent-ink) transparent var(--u-accent-ink) transparent;animation:u-spin .8s linear infinite}
.u-btn--quiet.is-loading::after{border-color:var(--u-ink) transparent var(--u-ink) transparent}
@keyframes u-spin{to{transform:rotate(360deg)}}
.u-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}

/* ---------- метки состояния: всегда иконка + слово ---------- */
.u-tag{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:2px 8px;border-radius:7px;font-size:var(--u-text-xs);font-weight:var(--u-w-medium);line-height:1.3;background:var(--u-surface-3);color:var(--u-muted)}
.u-tag svg{width:12px;height:12px;flex:none}
.u-tag--warn{background:var(--u-warn-soft);color:var(--u-warn)}
.u-tag--ok{background:var(--u-ok-soft);color:var(--u-ok)}
.u-tag--danger{background:var(--u-danger-soft);color:var(--u-danger)}
.u-tag--accent{background:var(--u-accent-soft);color:var(--u-accent)}
.u-tags{display:flex;gap:6px;flex-wrap:wrap}

/* ---------- карточки ---------- */
.u-card{background:var(--u-surface);border:1px solid var(--u-line);border-radius:var(--u-r-xl);box-shadow:var(--u-shadow-2)}
.u-card--pad{padding:26px}
.u-card--flat{box-shadow:var(--u-shadow-1)}
.u-card--link{display:block;text-decoration:none;transition:transform var(--u-mid) var(--u-ease),box-shadow var(--u-mid) var(--u-ease),border-color var(--u-fast)}
.u-card--link:hover{transform:translateY(-3px);box-shadow:var(--u-shadow-3)}

/* ---------- тёмный верх с выводом ---------- */
.u-hero{background:var(--u-hero);color:var(--u-hero-ink);position:relative;overflow:hidden;padding:var(--u-s7) 0 0}
.u-hero--short{padding-bottom:var(--u-s7)}
.u-hero::before{content:"";position:absolute;inset:-40% -10% auto auto;width:900px;height:700px;background:radial-gradient(closest-side,var(--u-hero-glow),transparent 70%);pointer-events:none}
.u-hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--u-hero-line) 1px,transparent 1px),linear-gradient(90deg,var(--u-hero-line) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 70% 80% at 75% 20%,#000 0%,transparent 70%);mask-image:radial-gradient(ellipse 70% 80% at 75% 20%,#000 0%,transparent 70%)}
.u-hero>.u-wrap{position:relative;z-index:1}
.u-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:56px;align-items:center}
.u-hero .u-h1{margin-bottom:22px}
.u-hero .u-h1 .u-brand{background:linear-gradient(100deg,#fff 10%,#AFC0FF 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.u-hero .u-h2{color:var(--u-hero-ink)}
.u-lead{font-size:18px;line-height:1.6;color:var(--u-hero-2);max-width:56ch;margin:0}
.u-lead b{color:var(--u-hero-ink);font-weight:var(--u-w-medium)}
.u-hero .u-back{color:var(--u-hero-muted)}
.u-hero .u-back:hover{color:var(--u-hero-ink)}
.u-hint{font-size:var(--u-text-sm);color:var(--u-hero-muted);margin:12px 0 0}
.u-meta{display:flex;flex-wrap:wrap;gap:var(--u-s2);margin-bottom:22px}
.u-chip{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 11px;border-radius:var(--u-r-pill);font-size:12.5px;font-weight:var(--u-w-medium);border:1px solid var(--u-hero-line);color:var(--u-hero-2);background:rgba(255,255,255,.03)}
.u-chip svg{width:13px;height:13px}
.u-chip--warn{color:var(--u-hero-warn);border-color:rgba(241,194,125,.28);background:rgba(241,194,125,.07)}
.u-chip--ok{color:var(--u-hero-ok);border-color:rgba(76,196,140,.3);background:rgba(76,196,140,.08)}
.u-hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.u-hstat{border:1px solid var(--u-hero-line);border-radius:var(--u-r-lg);padding:20px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.01))}
.u-hstat b{display:block;font-size:44px;font-weight:var(--u-w-semibold);letter-spacing:-.04em;line-height:1}
.u-hstat span{display:block;margin-top:8px;font-size:14px;color:var(--u-hero-2);line-height:1.35}

/* кольцо «N из 3» */
.u-gauges{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.u-gauge{position:relative;border:1px solid var(--u-hero-line);border-radius:var(--u-r-lg);padding:22px 20px 18px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.01));transition:border-color var(--u-mid),transform var(--u-mid) var(--u-ease)}
.u-gauge:hover{border-color:rgba(255,255,255,.18);transform:translateY(-2px)}
.u-gauge svg{display:block;width:132px;height:132px;margin:0 auto}
.u-gauge .u-seg-bg{fill:none;stroke-width:10;stroke-linecap:round;stroke:rgba(255,255,255,.07)}
.u-gauge .u-seg-miss{fill:none;stroke-linecap:round;stroke:rgba(241,194,125,.75);stroke-width:3;stroke-dasharray:.1 7;opacity:0;animation:u-fadein .6s var(--u-ease) forwards}
.u-gauge .u-seg-hit{fill:none;stroke-width:10;stroke-linecap:round;stroke:var(--u-hero-ok);stroke-dasharray:1;stroke-dashoffset:1;animation:u-draw 1.1s var(--u-ease) forwards}
@keyframes u-draw{to{stroke-dashoffset:0}}
@keyframes u-fadein{to{opacity:1}}
.u-gauge-c{position:absolute;left:0;right:0;top:22px;height:132px;display:grid;place-items:center;text-align:center;pointer-events:none}
.u-gauge-c b{display:block;font-size:40px;font-weight:var(--u-w-semibold);letter-spacing:-.04em;line-height:1}
.u-gauge-c small{display:block;font-size:13px;color:var(--u-hero-muted);margin-top:2px}
.u-gauge-l{text-align:center;margin-top:14px;font-size:15px;font-weight:var(--u-w-semibold)}
.u-gauge-note{grid-column:1/-1;font-size:12.5px;color:var(--u-hero-muted);text-align:center}

/* путь работы */
.u-journey{margin-top:var(--u-s7);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--u-hero-line)}
.u-jstep{position:relative;text-decoration:none;padding:18px 16px 20px 0;color:var(--u-hero-muted);font-size:13.5px;display:flex;gap:12px;align-items:flex-start;transition:color var(--u-fast)}
.u-jstep:hover{color:var(--u-hero-ink)}
.u-jstep::before{content:"";position:absolute;left:0;right:12px;top:-1px;height:2px;background:transparent}
.u-jstep.is-done::before{background:var(--u-hero-ok)}
.u-jstep.is-now::before{background:linear-gradient(90deg,#fff,#9AACFF)}
.u-jstep .u-d{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--u-hero-line);display:grid;place-items:center;font-size:12px;font-weight:var(--u-w-semibold)}
.u-jstep.is-done .u-d{background:var(--u-hero-ok);border-color:var(--u-hero-ok);color:#06140D}
.u-jstep.is-now{color:var(--u-hero-ink)}
.u-jstep.is-now .u-d{background:#fff;color:var(--u-hero);border-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.08)}
.u-jstep b{display:block;font-weight:var(--u-w-semibold);font-size:14px;line-height:1.3}
.u-jstep span{display:block;font-size:12.5px;line-height:1.35;margin-top:2px;opacity:.85}

/* ---------- вопросы и ответ ИИ ---------- */
.u-qlist{display:flex;flex-direction:column;gap:10px;position:sticky;top:calc(var(--u-bar-h) + 24px)}
.u-q{display:grid;grid-template-columns:auto 1fr;gap:14px;text-align:left;padding:18px;border-radius:var(--u-r-lg);border:1px solid var(--u-line);background:var(--u-surface);box-shadow:var(--u-shadow-1);
  transition:border-color var(--u-fast),box-shadow var(--u-mid) var(--u-ease),transform var(--u-mid) var(--u-ease)}
.u-q:hover{transform:translateY(-1px);box-shadow:var(--u-shadow-2)}
.u-q[aria-selected="true"]{border-color:color-mix(in srgb,var(--u-accent) 55%,transparent);box-shadow:0 0 0 4px var(--u-accent-soft),var(--u-shadow-2)}
.u-q .u-k{width:30px;height:30px;border-radius:10px;background:var(--u-surface-3);display:grid;place-items:center;font-weight:var(--u-w-semibold);font-size:13px;color:var(--u-ink-2);transition:background var(--u-fast),color var(--u-fast)}
.u-q[aria-selected="true"] .u-k{background:var(--u-accent);color:var(--u-accent-ink)}
.u-q p{margin:0 0 10px;font-size:var(--u-text-md);line-height:1.45;font-weight:var(--u-w-medium)}
.u-viewer{overflow:hidden}
.u-v-head{padding:24px 28px 20px;border-bottom:1px solid var(--u-line);display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.u-who{display:flex;gap:12px;align-items:center}
.u-who .u-ai{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--u-accent),#9B7BFF);color:#fff}
.u-who .u-ai svg{width:20px;height:20px}
.u-who b{display:block;font-size:var(--u-text-md);font-weight:var(--u-w-semibold)}
.u-who small{font-size:var(--u-text-sm);color:var(--u-muted)}
.u-v-body{padding:24px 28px 8px}
.u-v-q{font-size:var(--u-text-xl);line-height:1.35;letter-spacing:-.01em;font-weight:var(--u-w-semibold);margin:0 0 16px}
.u-answer{color:var(--u-ink-2);font-size:var(--u-text-md);line-height:1.7;max-height:300px;overflow:hidden;position:relative;transition:max-height .6s var(--u-ease)}
.u-answer.is-open{max-height:6000px}
.u-answer:not(.is-open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:110px;background:linear-gradient(transparent,var(--u-surface))}
.u-answer p{margin:0 0 10px}
.u-answer strong{color:var(--u-ink);font-weight:var(--u-w-semibold)}
.u-answer .u-li{padding-left:16px;position:relative}
.u-answer .u-li::before{content:"";position:absolute;left:3px;top:.75em;width:5px;height:5px;border-radius:50%;background:var(--u-faint)}
.u-more{margin:6px 0 4px;min-height:var(--u-tap);font-size:14px;font-weight:var(--u-w-semibold);color:var(--u-accent);display:inline-flex;gap:6px;align-items:center}
.u-more svg{width:15px;height:15px;transition:transform var(--u-mid) var(--u-ease)}
.u-more[aria-expanded="true"] svg{transform:rotate(180deg)}
.u-v-foot{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--u-line);margin-top:16px}
.u-v-foot>div{padding:20px 28px}
.u-v-foot>div+div{border-left:1px solid var(--u-line)}
.u-src{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:0 -10px;border-radius:10px;text-decoration:none;font-size:13.5px;line-height:1.35;color:var(--u-ink-2);transition:background var(--u-fast)}
.u-src:hover{background:var(--u-surface-2)}
.u-src .u-fav{flex:none;width:32px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:10.5px;font-weight:700;color:#fff}
.u-quote{display:block;font-size:14px;line-height:1.55;color:var(--u-ink-2);padding:10px 12px;border-left:2px solid var(--u-accent);background:var(--u-accent-soft);border-radius:0 10px 10px 0;margin:0 0 8px}
.u-swap{animation:u-swap .42s var(--u-ease)}
@keyframes u-swap{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- состав источников ---------- */
.u-insight{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:40px;padding:32px;align-items:center}
.u-insight .u-h3{font-size:26px;line-height:1.15;letter-spacing:-.02em;margin-bottom:10px}
.u-insight em{font-style:normal;color:var(--u-warn)}
.u-insight p{color:var(--u-muted);margin:0}
.u-stack{display:flex;height:16px;border-radius:var(--u-r-pill);overflow:hidden;background:var(--u-surface-3);gap:2px}
.u-stack i{display:block;height:100%;width:0;transition:width 1.1s var(--u-ease)}
.u-stack-cap{display:flex;justify-content:space-between;font-size:var(--u-text-sm);color:var(--u-muted);margin-bottom:10px}
.u-stack-cap b{color:var(--u-ink)}
.u-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;margin-top:18px}
.u-legend div{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--u-ink-2)}
.u-legend i{width:10px;height:10px;border-radius:3px;flex:none}
.u-legend b{margin-left:auto;font-weight:var(--u-w-semibold);color:var(--u-ink)}
.u-legend .u-zero{color:var(--u-muted)}
.u-legend .u-zero i{border:1.5px dashed var(--u-faint)}

/* ---------- макет страницы сайта, «сейчас / после» ---------- */
.u-browser{overflow:hidden}
.u-b-top{height:46px;display:flex;align-items:center;gap:14px;padding:0 16px;border-bottom:1px solid var(--u-line);background:var(--u-surface-2)}
.u-b-dots{display:flex;gap:6px}.u-b-dots i{width:10px;height:10px;border-radius:50%;background:var(--u-line-2)}
.u-b-url{flex:1;min-width:0;height:28px;border-radius:8px;background:var(--u-surface);border:1px solid var(--u-line);display:flex;align-items:center;padding:0 10px;font-size:12.5px;color:var(--u-muted);gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-b-url svg{width:12px;height:12px;flex:none}
.u-page{padding:44px 48px 40px}
.u-page-nav{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--u-muted);margin-bottom:34px}
.u-page-nav b{color:var(--u-ink-2);font-size:13px;letter-spacing:.02em}
.u-page-nav span{display:flex;gap:16px}
.u-ph{height:8px;border-radius:4px;background:var(--u-surface-3);display:inline-block}
.u-page-h{font-size:30px;line-height:1.12;letter-spacing:-.025em;font-weight:var(--u-w-semibold);margin:0 0 18px;max-width:22ch}
.u-para{font-size:var(--u-text-lg);line-height:1.7;color:var(--u-ink-2);white-space:pre-line}
.u-add{background:var(--u-mark);border-bottom:2px solid var(--u-mark-line);color:var(--u-ink);padding:1px 0;animation:u-mark .6s var(--u-ease)}
@keyframes u-mark{from{background-color:transparent}}
.u-del{color:var(--u-muted);text-decoration:line-through;text-decoration-color:var(--u-danger)}
.u-claim{cursor:help;border-radius:4px;transition:background var(--u-fast);outline:none}
.u-claim:hover,.u-claim:focus{background:var(--u-accent-soft)}
.u-page-fake{display:flex;gap:10px;margin-top:26px}
.u-page-fake span{height:40px;border-radius:10px;background:var(--u-ink);opacity:.9;width:160px}
.u-page-fake span+span{background:var(--u-surface-3);opacity:1;width:120px}
.u-b-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--u-line);background:var(--u-surface-2);font-size:var(--u-text-sm);color:var(--u-muted)}

/* переключатель с бегунком */
.u-seg{position:relative;display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:4px;border-radius:var(--u-r-md);background:var(--u-surface-3);border:1px solid var(--u-line)}
.u-seg button{position:relative;z-index:1;white-space:nowrap;height:34px;padding:0 16px;font-size:13.5px;font-weight:var(--u-w-semibold);color:var(--u-muted);border-radius:9px;transition:color var(--u-fast)}
.u-seg button[aria-pressed="true"]{color:var(--u-ink)}
.u-seg .u-thumb{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;border-radius:9px;background:var(--u-surface);box-shadow:var(--u-shadow-2);transition:transform var(--u-mid) var(--u-ease),width var(--u-mid) var(--u-ease)}

/* боковая панель решения */
.u-side{padding:26px}
.u-row{display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--u-line);font-size:14px;color:var(--u-ink-2)}
.u-row:first-of-type{border-top:0}
.u-row>svg{flex:none;width:18px;height:18px;color:var(--u-muted);margin-top:2px}
.u-row b{display:block;color:var(--u-ink);font-weight:var(--u-w-semibold);font-size:14px}
.u-lock{display:flex;gap:10px;align-items:flex-start;font-size:var(--u-text-sm);color:var(--u-muted);margin-top:14px;line-height:1.45}
.u-lock svg{flex:none;width:16px;height:16px;color:var(--u-ok);margin-top:1px}

/* ---------- пошаговое внесение ---------- */
.u-steps{list-style:none;margin:0;padding:0;position:relative}
.u-step{position:relative;display:grid;grid-template-columns:28px 1fr;gap:14px;padding:0 0 20px}
.u-step::before{content:"";position:absolute;left:13.5px;top:30px;bottom:2px;width:1px;background:var(--u-line-2)}
.u-step:last-child::before{display:none}
.u-step .u-d{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--u-line-2);display:grid;place-items:center;font-size:12px;font-weight:var(--u-w-semibold);color:var(--u-muted);background:var(--u-surface);position:relative;z-index:1;transition:all var(--u-mid) var(--u-ease)}
.u-step b{display:block;font-size:var(--u-text-md);font-weight:var(--u-w-semibold);color:var(--u-muted);line-height:28px}
.u-step p{margin:0;font-size:var(--u-text-sm);color:var(--u-muted)}
.u-step.is-done .u-d{background:var(--u-ok);border-color:var(--u-ok);color:#fff}
.u-step.is-done b{color:var(--u-ink)}
.u-step.is-done::before{background:var(--u-ok)}
.u-step.is-now .u-d{border-color:var(--u-accent);color:var(--u-accent);box-shadow:0 0 0 5px var(--u-accent-soft)}
.u-step.is-now b{color:var(--u-ink)}
.u-step.is-run .u-d{border-color:var(--u-accent) transparent var(--u-accent) transparent;animation:u-spin 1s linear infinite}
.u-step.is-warn .u-d{background:var(--u-warn);border-color:var(--u-warn);color:#fff}

/* ---------- плашки-сообщения ---------- */
.u-callout{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;font-size:14px;line-height:1.5;background:var(--u-surface-3);color:var(--u-ink-2)}
.u-callout>svg{flex:none;width:18px;height:18px;margin-top:1px}
.u-callout b{display:block;color:var(--u-ink);font-weight:var(--u-w-semibold)}
.u-callout ul{margin:6px 0 0;padding-left:18px}
.u-callout li{margin:3px 0}
.u-callout--warn{background:var(--u-warn-soft)}.u-callout--warn>svg{color:var(--u-warn)}
.u-callout--ok{background:var(--u-ok-soft)}.u-callout--ok>svg{color:var(--u-ok)}
.u-callout--danger{background:var(--u-danger-soft)}.u-callout--danger>svg{color:var(--u-danger)}
.u-callout--info{background:var(--u-accent-soft)}.u-callout--info>svg{color:var(--u-accent)}

/* ---------- списки материалов ---------- */
.u-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:18px}
.u-filters{display:flex;gap:8px;flex-wrap:wrap}
.u-filter{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:var(--u-r-pill);border:1px solid var(--u-line-2);background:var(--u-surface);font-size:14px;font-weight:var(--u-w-medium);color:var(--u-ink-2);transition:all var(--u-fast)}
.u-filter b{font-weight:var(--u-w-semibold);color:var(--u-muted)}
.u-filter:hover{border-color:var(--u-faint)}
.u-filter[aria-pressed="true"]{background:var(--u-ink);border-color:var(--u-ink);color:var(--u-bg)}
.u-filter[aria-pressed="true"] b{color:inherit;opacity:.7}
.u-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px 22px;text-decoration:none;color:inherit}
.u-item+.u-item{border-top:1px solid var(--u-line)}
.u-item:hover{background:var(--u-surface-2)}
.u-item .u-kind{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--u-accent-soft);color:var(--u-accent)}
.u-item .u-kind svg{width:20px;height:20px}
.u-item .u-kind--warn{background:var(--u-warn-soft);color:var(--u-warn)}
.u-item .u-kind--ok{background:var(--u-ok-soft);color:var(--u-ok)}
.u-item b{display:block;font-size:var(--u-text-md);font-weight:var(--u-w-semibold);line-height:1.35}
.u-item small{display:block;color:var(--u-muted);font-size:var(--u-text-sm);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u-item .u-tags{margin-top:8px}
.u-item .u-go{color:var(--u-faint);transition:transform var(--u-fast),color var(--u-fast)}
.u-item:hover .u-go{color:var(--u-accent);transform:translateX(3px)}
.u-list{overflow:hidden}
.u-group-h{display:flex;align-items:baseline;gap:10px;margin:28px 0 12px}
.u-group-h h3{margin:0;font-size:var(--u-text-lg);font-weight:var(--u-w-semibold)}
.u-group-h span{color:var(--u-muted);font-size:var(--u-text-sm)}

/* ---------- поля ввода ---------- */
.u-field{display:flex;flex-direction:column;gap:6px}
.u-label{font-size:var(--u-text-sm);font-weight:var(--u-w-semibold);color:var(--u-ink-2)}
.u-input{height:48px;border-radius:var(--u-r-md);border:1px solid var(--u-line-2);background:var(--u-surface);color:var(--u-ink);font:inherit;font-size:var(--u-text-md);padding:0 14px;transition:border-color var(--u-fast),box-shadow var(--u-fast);width:100%}
.u-input::placeholder{color:var(--u-faint)}
.u-input:focus{outline:none;border-color:var(--u-accent);box-shadow:0 0 0 4px var(--u-accent-soft)}
.u-input[aria-invalid="true"]{border-color:var(--u-danger);box-shadow:0 0 0 4px var(--u-danger-soft)}
.u-field-err{display:flex;gap:6px;align-items:center;font-size:var(--u-text-sm);color:var(--u-danger)}
.u-field-err svg{width:14px;height:14px}
.u-field-hint{font-size:var(--u-text-sm);color:var(--u-muted)}
.u-search{position:relative;flex:1;max-width:420px;min-width:220px}
.u-search svg{position:absolute;left:14px;top:50%;width:17px;height:17px;transform:translateY(-50%);color:var(--u-faint)}
.u-search .u-input{padding-left:40px;height:44px}

/* ---------- раскрывающийся блок ---------- */
.u-disc{border:1px solid var(--u-line);border-radius:14px;background:var(--u-surface)}
.u-disc>summary{list-style:none;min-height:52px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-weight:var(--u-w-semibold);font-size:var(--u-text-md)}
.u-disc>summary::-webkit-details-marker{display:none}
.u-disc>summary svg{width:16px;height:16px;color:var(--u-muted);transition:transform var(--u-mid) var(--u-ease)}
.u-disc[open]>summary svg{transform:rotate(180deg)}
.u-disc>div{padding:0 18px 18px;color:var(--u-ink-2);font-size:14.5px}

/* ---------- сниппет поиска ---------- */
.u-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(360px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 18px;margin:0 -4px;scrollbar-width:thin}
.u-snip{scroll-snap-align:start;padding:22px;display:flex;flex-direction:column;gap:14px;transition:transform var(--u-mid) var(--u-ease),box-shadow var(--u-mid)}
.u-snip:hover{transform:translateY(-3px);box-shadow:var(--u-shadow-3)}
.u-serp{border:1px solid var(--u-line);border-radius:14px;padding:16px;background:var(--u-surface-2);min-height:150px}
.u-serp-u{font-size:12.5px;color:var(--u-ok);display:flex;align-items:center;gap:7px;margin-bottom:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.u-serp-u i{width:18px;height:18px;border-radius:5px;background:var(--u-ink);color:var(--u-bg);font-style:normal;font-size:10px;font-weight:700;display:grid;place-items:center;flex:none}
.u-serp-t{font-size:16px;font-weight:var(--u-w-semibold);color:var(--u-accent);line-height:1.3;margin-bottom:6px}
.u-serp-d{font-size:13.5px;line-height:1.5;color:var(--u-ink-2)}
.u-serp-d.is-empty{color:var(--u-muted);font-style:italic}
.u-snip-f{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--u-muted)}

/* ---------- цифры и полосы ---------- */
.u-stat{padding:24px}
.u-stat b{display:block;font-size:var(--u-text-num);font-weight:var(--u-w-semibold);letter-spacing:-.045em;line-height:1}
.u-stat p{margin:8px 0 0;color:var(--u-muted);font-size:14px;line-height:1.4}
.u-stat .u-tag{margin-top:14px}
.u-irow{display:grid;grid-template-columns:minmax(0,1fr) 220px 70px;gap:20px;align-items:center;padding:18px 0;border-top:1px solid var(--u-line);text-decoration:none;color:inherit}
.u-irow:first-child{border-top:0}
.u-irow b{font-weight:var(--u-w-semibold);font-size:var(--u-text-md);display:block}
.u-irow small{color:var(--u-muted);font-size:var(--u-text-sm)}
.u-irow .u-c{text-align:right;font-weight:var(--u-w-semibold);font-size:16px}
a.u-irow:hover b{color:var(--u-accent)}
.u-barh{height:8px;border-radius:var(--u-r-pill);background:var(--u-surface-3);overflow:hidden}
.u-barh i{display:block;height:100%;width:0;border-radius:var(--u-r-pill);background:var(--u-warn);transition:width 1s var(--u-ease)}

/* ---------- таблица ---------- */
.u-table{width:100%;border-collapse:collapse;font-size:14px}
.u-table th{font-size:var(--u-text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--u-muted);font-weight:var(--u-w-semibold);text-align:left;padding:12px 20px;background:var(--u-surface-2);border-bottom:1px solid var(--u-line)}
.u-table td{padding:16px 20px;border-bottom:1px solid var(--u-line);vertical-align:top}
.u-table tr:last-child td{border-bottom:0}
.u-table tbody tr{cursor:pointer;transition:background var(--u-fast)}
.u-table tbody tr:hover{background:var(--u-surface-2)}
.u-table-wrap{overflow-x:auto}

/* ---------- письмо-обращение ---------- */
.u-letter{padding:32px 36px;font-size:var(--u-text-lg);line-height:1.75;color:var(--u-ink-2);white-space:pre-line;overflow-wrap:anywhere}
.u-letter-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--u-line);background:var(--u-surface-2);font-size:var(--u-text-sm);color:var(--u-muted)}

/* ---------- окно подтверждения ---------- */
.u-backdrop{position:fixed;inset:0;z-index:100;background:rgba(6,8,12,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;opacity:0;pointer-events:none;transition:opacity var(--u-mid)}
.u-backdrop.is-open{opacity:1;pointer-events:auto}
.u-modal{width:min(620px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--u-surface);border-radius:var(--u-r-xl);box-shadow:var(--u-shadow-3);transform:translateY(12px) scale(.98);transition:transform var(--u-mid) var(--u-ease)}
.u-backdrop.is-open .u-modal{transform:none}
.u-modal-h{padding:24px 26px 6px}
.u-modal-b{padding:12px 26px 6px}
.u-modal-f{padding:18px 26px 24px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.u-diff{border:1px solid var(--u-line);border-radius:14px;overflow:hidden;font-size:14.5px;line-height:1.6}
.u-diff div{padding:12px 14px}
.u-diff div+div{border-top:1px solid var(--u-line)}
.u-diff small{display:block;font-size:var(--u-text-xs);font-weight:var(--u-w-semibold);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}
.u-diff .u-was{background:var(--u-surface-2);color:var(--u-muted)}
.u-diff .u-will{background:var(--u-ok-soft);color:var(--u-ink)}
.u-diff .u-will small{color:var(--u-ok)}

/* ---------- всплывающее ---------- */
.u-toast{position:fixed;left:50%;bottom:24px;z-index:120;transform:translate(-50%,20px);opacity:0;background:var(--u-ink);color:var(--u-bg);padding:11px 16px;border-radius:var(--u-r-md);font-size:14px;font-weight:var(--u-w-medium);transition:opacity var(--u-mid),transform var(--u-mid) var(--u-ease);display:flex;gap:8px;align-items:center;pointer-events:none}
.u-toast.is-on{opacity:1;transform:translate(-50%,0)}
.u-toast svg{width:16px;height:16px;color:var(--u-ok)}
.u-tip{position:fixed;z-index:110;max-width:320px;padding:12px 14px;border-radius:var(--u-r-md);background:var(--u-hero);color:var(--u-hero-ink);font-size:13px;line-height:1.5;box-shadow:var(--u-shadow-3);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity var(--u-fast),transform var(--u-fast)}
.u-tip.is-on{opacity:1;transform:none}
.u-tip small{display:block;color:var(--u-hero-muted);font-size:11.5px;margin-bottom:4px;letter-spacing:.02em}

/* ---------- пустое состояние, загрузка, ход проверки ---------- */
.u-empty{text-align:center;padding:56px 24px}
.u-empty .u-ill{width:72px;height:72px;margin:0 auto 18px;border-radius:22px;display:grid;place-items:center;background:var(--u-surface-3);color:var(--u-muted)}
.u-empty .u-ill svg{width:30px;height:30px}
.u-empty .u-h3{margin-bottom:8px}
.u-empty p{color:var(--u-muted);max-width:46ch;margin:0 auto 20px}
.u-skel{display:block;border-radius:8px;background:linear-gradient(90deg,var(--u-surface-3) 0,var(--u-surface-2) 50%,var(--u-surface-3) 100%);background-size:200% 100%;animation:u-shimmer 1.4s ease-in-out infinite}
@keyframes u-shimmer{from{background-position:100% 0}to{background-position:-100% 0}}
.u-progress{height:6px;border-radius:var(--u-r-pill);background:rgba(255,255,255,.08);overflow:hidden}
.u-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#fff,#9AACFF);transition:width .6s var(--u-ease)}
.u-progress--light{background:var(--u-surface-3)}
.u-progress--light i{background:var(--u-accent)}
.u-pulse{width:8px;height:8px;border-radius:50%;background:var(--u-accent);box-shadow:0 0 0 0 var(--u-accent);animation:u-pulse 1.6s infinite}
@keyframes u-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--u-accent) 50%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}

/* ---------- низ страницы ---------- */
.u-trust{margin:var(--u-s8) 0 0;padding:28px 0 56px;border-top:1px solid var(--u-line);display:flex;flex-wrap:wrap;gap:12px 28px;font-size:13.5px;color:var(--u-muted)}
.u-trust span{display:inline-flex;align-items:center;gap:8px}
.u-trust svg{width:16px;height:16px;color:var(--u-ok)}

/* ---------- появление при прокрутке ---------- */
.u-rv{opacity:0;transform:translateY(18px);transition:opacity var(--u-slow) var(--u-ease),transform var(--u-slow) var(--u-ease)}
.u-rv.is-in{opacity:1;transform:none}
.u-d1{transition-delay:.08s}.u-d2{transition-delay:.16s}.u-d3{transition-delay:.24s}

/* =========================================================================
   Адаптив: ноутбук → планшет → телефон
   ========================================================================= */
@media (max-width:1080px){
  .u-hero-grid,.u-cols--stat,.u-cols--2,.u-cols--main-side,.u-cols--side-main,.u-insight{grid-template-columns:minmax(0,1fr)}
  .u-hero-grid{gap:36px}
  .u-cols--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .u-qlist{position:static}
  .u-journey{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto}
  .u-pill--site{display:none}
}
@media (max-width:720px){
  .u-bar .u-wrap{gap:12px}
  .u-bar .u-tabs,.u-pill--safe{display:none}
  .u-tabbar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:70;padding:6px 8px calc(6px + env(safe-area-inset-bottom));
    background:color-mix(in srgb,var(--u-surface) 90%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--u-line)}
  .u-tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:50px;justify-content:center;border-radius:12px;font-size:11.5px;font-weight:var(--u-w-medium);color:var(--u-muted);text-decoration:none}
  .u-tabbar a svg{width:22px;height:22px}
  .u-tabbar a[aria-current]{color:var(--u-accent)}
  .u-app{padding-bottom:72px}
  .u-hero{padding-top:32px}
  .u-lead{font-size:16px}
  .u-hero .u-actions .u-btn{width:100%}
  .u-gauge svg{width:104px;height:104px}.u-gauge-c{height:104px}.u-gauge-c b{font-size:32px}.u-gauge{padding:16px 10px 14px}
  .u-hstat b{font-size:34px}
  .u-journey{margin-top:32px;grid-template-columns:repeat(5,170px);margin-right:calc(-1 * var(--u-gutter));padding-right:var(--u-gutter)}
  .u-section{padding-top:56px}
  .u-sec-head{flex-direction:column;align-items:flex-start}
  .u-cols--3{grid-template-columns:minmax(0,1fr)}
  .u-cols--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .u-qlist{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--u-gutter));padding:4px var(--u-gutter) 8px}
  .u-q{min-width:270px;scroll-snap-align:start}
  .u-v-head,.u-v-body{padding-left:18px;padding-right:18px}
  .u-v-head{flex-direction:column}
  .u-v-foot{grid-template-columns:1fr}
  .u-v-foot>div{padding:18px}
  .u-v-foot>div+div{border-left:0;border-top:1px solid var(--u-line)}
  .u-insight{padding:22px;gap:22px}
  .u-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
  .u-page{padding:28px 20px}
  .u-page-h{font-size:24px}
  .u-para{font-size:15.5px}
  .u-b-foot{flex-direction:column;align-items:stretch}
  .u-rail{grid-auto-columns:86%}
  .u-irow{grid-template-columns:minmax(0,1fr) 60px}
  .u-irow .u-barh{grid-column:1/-1;order:3}
  .u-item{grid-template-columns:auto minmax(0,1fr);padding:16px}
  .u-item .u-go{display:none}
  .u-letter{padding:22px 18px;font-size:15.5px}
  .u-card--pad,.u-side{padding:20px}
  .u-toolbar{flex-direction:column;align-items:stretch}
  .u-toolbar>*{min-width:0;max-width:100%}
  .u-search{max-width:none}
  .u-filters{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1 * var(--u-gutter));padding:0 var(--u-gutter) 4px;max-width:calc(100% + 2 * var(--u-gutter))!important}
  .u-filter{flex:none}
  .u-modal-f .u-btn{width:100%}
  .u-table th,.u-table td{padding:12px}
  .u-toast{bottom:84px}
}
@media (prefers-reduced-motion:reduce){
  .u-app *,.u-app *::before,.u-app *::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}
  .u-rv{opacity:1;transform:none}
}
html.u-static *,html.u-static *::before,html.u-static *::after{animation-duration:0s!important;animation-delay:0s!important;transition:none!important}
html.u-static .u-rv{opacity:1;transform:none}
