/* TenderMax (tendermax.uz) — дизайн-система: шрифт → токены → база → каркас → компоненты → страницы.
   Принципы (редизайн 22.10.2026, шеф: «выглядит как AI-слоп, хочу интуитивно и современно»):
   спокойная монохромная основа; цвет только со смыслом (риск — красный, осторожно — жёлтый, плюс и шанс — зелёный,
   ссылки и выбранное — синий); линии вместо теней; иконки только там, где они помогают действию. */

@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/fonts/onest-cyrillic-ext.woff2?v=1") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/fonts/onest-cyrillic.woff2?v=1") 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-latin-ext.woff2?v=1") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, 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-latin.woff2?v=1") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  color-scheme: light;
  --bg: #f4f6f8;
  --surface: #ffffff;
  --surface-2: #f3f5f7;
  --surface-3: #e4e8ec;
  --line: #e2e6ea;
  --line-2: #cdd4da;
  --ink: #0f1419;
  --ink-2: #444e58;
  --ink-3: #75808a;
  /* фирменный цвет — бирюза самаркандских куполов; золото — только точка в знаке */
  --brand: #0b7285;
  --brand-hover: #095e6e;
  --brand-soft: #e2f1f3;
  --brand-ink: #09687a;
  --brand-band: #0a5f6f;
  --gold: #e9a800;
  --link: var(--brand-ink);
  --link-soft: var(--brand-soft);
  --primary: var(--brand);
  --primary-hover: var(--brand-hover);
  --on-primary: #ffffff;
  --good: #0d7537;
  --good-soft: #e6f4eb;
  --warn: #855600;
  --warn-soft: #fbf0d8;
  --bad: #c0292b;
  --bad-soft: #fcebea;
  --info: #4d5763;
  --info-soft: #eef1f4;
  /* статус на шкалах и графиках (dataviz: status palette) */
  --st-good: #0ca30c;
  --st-warn: #fab219;
  --st-crit: #d03b3b;
  /* категории на графиках (dataviz: reference palette, порядок фиксирован); --bar — одиночная серия */
  --s1: #2a78d6;
  --s2: #eb6834;
  --s3: #1baf7a;
  --s7: #6250d6;
  --bar: #0b7285;
  /* ступени карты (dataviz validate_palette --ordinal: PASS в обеих темах) */
  --q1: #75bcc7;
  --q2: #4ea9b7;
  --q3: #2a8c9d;
  --q4: #15707f;
  --q5: #0b4f5b;
  --it-bg: .95 .035;
  --it-fg: .5 .13;
  --c1: #2a78d6;
  --c2: #eb6834;
  --c3: #1baf7a;
  --c4: #eda100;
  --c5: #e87ba4;
  --grid: #e9edf0;
  --shadow-pop: 0 12px 32px rgba(15, 20, 25, .12), 0 2px 6px rgba(15, 20, 25, .06);
  --radius-s: 6px;
  --radius: 10px;
  --radius-l: 14px;
  /* китайские иероглифы — системным шрифтом (PingFang на Mac и iPhone, Microsoft YaHei на Windows, Noto на Android) */
  --font: "Onest", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", sans-serif;
  --font-display: var(--font);
  --fs-2xs: 11px;
  --fs-xs: 12px;
  --fs-s: 13.5px;
  --fs-m: 15px;
  --fs-l: 17px;
  --fs-xl: 20px;
  --fs-2xl: 26px;
  --fs-3xl: 34px;
  --hdr: 64px;
  --tabbar: 62px;
  --wrap: 1280px;
  --gut: 32px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  /* узор гирих (8-конечная звезда, сетка 96 px) — фон бирюзовых полос */
  --girih: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.10' stroke-width='1'%3E%3Cpath d='M28 28h40v40H28z'/%3E%3Cpath d='M48 20l28 28-28 28-28-28z'/%3E%3Cpath d='M48 0v20M96 48H76M48 96V76M0 48h20M28 28 0 0M68 28 96 0M68 68l28 28M28 68 0 96'/%3E%3Ccircle cx='48' cy='48' r='6'/%3E%3C/g%3E%3C/svg%3E");
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #0b0f12;
    --surface: #12181c;
    --surface-2: #182025;
    --surface-3: #242d33;
    --line: #20292f;
    --line-2: #303b42;
    --ink: #e8edf0;
    --ink-2: #aab5bd;
    --ink-3: #7d8992;
    --brand: #23a5ba;
    --brand-hover: #38b6ca;
    --brand-soft: #0f2a30;
    --brand-ink: #5ec8d8;
    --brand-band: #0f3a42;
    --gold: #f2b52a;
    --link: var(--brand-ink);
    --link-soft: var(--brand-soft);
    --primary: var(--brand);
    --primary-hover: var(--brand-hover);
    --on-primary: #04181c;
    --good: #55c27c;
    --good-soft: #11251a;
    --warn: #e9b54b;
    --warn-soft: #2a2111;
    --bad: #f27e7e;
    --bad-soft: #2e1718;
    --info: #a9b3bd;
    --info-soft: #1b2328;
    --s1: #3987e5;
    --s2: #d95926;
    --s3: #199e70;
    --s7: #9085e9;
    --bar: #23a5ba;
  --q1: #235a63;
  --q2: #287b87;
  --q3: #2f9cab;
  --q4: #4fb8c7;
  --q5: #8adbe6;
  --it-bg: .31 .055;
  --it-fg: .84 .1;
  --c1: #3987e5;
  --c2: #d95926;
  --c3: #199e70;
  --c4: #c98500;
  --c5: #d55181;
    --q1: #235a63;
    --q2: #287b87;
    --q3: #2f9cab;
    --q4: #4fb8c7;
    --q5: #8adbe6;
    --it-bg: .31 .055;
    --it-fg: .84 .1;
    --c1: #3987e5;
    --c2: #d95926;
    --c3: #199e70;
    --c4: #c98500;
    --c5: #d55181;
    --grid: #1f272c;
    --shadow-pop: 0 16px 40px rgba(0, 0, 0, .55);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0b0f12;
  --surface: #12181c;
  --surface-2: #182025;
  --surface-3: #242d33;
  --line: #20292f;
  --line-2: #303b42;
  --ink: #e8edf0;
  --ink-2: #aab5bd;
  --ink-3: #7d8992;
  --brand: #23a5ba;
  --brand-hover: #38b6ca;
  --brand-soft: #0f2a30;
  --brand-ink: #5ec8d8;
  --brand-band: #0f3a42;
  --gold: #f2b52a;
  --link: var(--brand-ink);
  --link-soft: var(--brand-soft);
  --primary: var(--brand);
  --primary-hover: var(--brand-hover);
  --on-primary: #04181c;
  --good: #55c27c;
  --good-soft: #11251a;
  --warn: #e9b54b;
  --warn-soft: #2a2111;
  --bad: #f27e7e;
  --bad-soft: #2e1718;
  --info: #a9b3bd;
  --info-soft: #1b2328;
  --s1: #3987e5;
  --s2: #d95926;
  --s3: #199e70;
  --s7: #9085e9;
  --bar: #23a5ba;
  --grid: #1f272c;
  --shadow-pop: 0 16px 40px rgba(0, 0, 0, .55);
}

/* ------------------------------------------------------------------ база */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; background: var(--bg); scroll-padding-top: calc(var(--hdr) + 16px); }
body {
  margin: 0; background: var(--bg); color: var(--ink); font: 400 var(--fs-m)/1.5 var(--font);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden;
}
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; border-radius: 6px; }
::selection { background: color-mix(in srgb, var(--link) 22%, transparent); }
h1, h2, h3, h4 { font-family: var(--font-display); margin: 0; line-height: 1.2; letter-spacing: -.02em; }
h1 { font-size: var(--fs-3xl); font-weight: 650; }
h2 { font-size: var(--fs-xl); font-weight: 620; letter-spacing: -.015em; }
h3 { font-size: var(--fs-m); font-weight: 620; letter-spacing: -.01em; }
p { margin: 0; }
.num { font-variant-numeric: tabular-nums; }
.muted { color: var(--ink-3); }
.sub { color: var(--ink-2); }
.small { font-size: var(--fs-s); }
.xs { font-size: var(--fs-xs); }
.ic { width: 18px; height: 18px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ic.s { width: 15px; height: 15px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hide { display: none !important; }

/* ------------------------------------------------------------------ каркас */
.app { min-height: 100vh; display: flex; flex-direction: column; }
.hdr {
  position: sticky; top: 0; z-index: 30; height: var(--hdr); border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 84%, transparent); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
}
.hdr-in { max-width: var(--wrap); height: 100%; margin: 0 auto; padding: 0 var(--gut); display: flex; align-items: center; gap: 36px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none !important; flex: none; }
.brand-mark { width: 28px; height: 28px; flex: none; display: block; }
.brand-mark rect { fill: var(--brand); }
.brand-mark path { stroke: #fff; stroke-width: 3.2; stroke-linecap: round; fill: none; }
.brand-mark circle { fill: var(--gold); }
.brand-name { font: 600 18px/1 var(--font-display); letter-spacing: -.03em; }
.brand-name b { font-weight: 800; }
.nav { display: flex; align-items: center; gap: 4px; height: 100%; min-width: 0; }
.hdr-r { flex: none; }
.nav a { position: relative; display: flex; align-items: center; height: 100%; padding: 0 12px; color: var(--ink-2); font-weight: 500; font-size: var(--fs-m); white-space: nowrap;
  text-decoration: none; transition: color .15s; }
.nav a:hover { color: var(--ink); }
/* шапка на средних экранах: длинные языки (кириллица, английский) должны влезть */
@media (max-width: 1320px) { .nav a { padding: 0 8px; font-size: var(--fs-s); } }
.nav a[aria-current="page"] { color: var(--ink); }
.nav a[aria-current="page"]::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--brand); }
.nav a .ic { display: none; }
.hdr-r { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.seg { display: inline-flex; border: 1px solid var(--line-2); border-radius: 8px; padding: 2px; gap: 2px; }
/* выбор языка: шесть вариантов в меню (узбекский тремя письмами, русский, английский, китайский) */
.langs { position: relative; }
.langs > summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border: 1px solid var(--line-2);
  border-radius: 8px; font-size: var(--fs-xs); font-weight: 600; color: var(--ink-2); letter-spacing: .02em; cursor: pointer; user-select: none; }
.langs > summary::-webkit-details-marker { display: none; }
.langs > summary:hover { border-color: var(--ink-3); }
.langs > summary .ic { width: 15px; height: 15px; }
.langs-m { position: absolute; right: 0; top: calc(100% + 6px); z-index: 60; min-width: 190px; padding: 6px; background: var(--surface);
  border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 40px -16px rgba(15, 20, 25, .35); display: grid; gap: 2px; }
.langs-m button { text-align: left; border: 0; background: transparent; padding: 9px 12px; border-radius: 8px; font-size: var(--fs-s); color: var(--ink); }
.langs-m button:hover { background: var(--surface-2); }
.langs-m button[aria-checked="true"] { background: var(--brand-soft); color: var(--brand-ink); font-weight: 600; }
.app.dark-top .langs > summary { border-color: rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .85); }
.app.dark-top .langs > summary:hover { border-color: rgba(255, 255, 255, .5); }
.seg button { border: 0; background: transparent; height: 26px; padding: 0 9px; border-radius: 6px; font-size: var(--fs-xs); font-weight: 600; color: var(--ink-3); letter-spacing: .02em; }
.seg button[aria-pressed="true"] { background: var(--brand-soft); color: var(--brand-ink); }
.icon-btn { width: 32px; height: 32px; display: inline-grid; place-items: center; border-radius: 8px; border: 1px solid var(--line-2); background: transparent; color: var(--ink-2); }
.icon-btn:hover { color: var(--ink); background: var(--surface-2); }
.icon-btn .ic { width: 16px; height: 16px; }

.main { flex: 1; display: flex; flex-direction: column; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 36px var(--gut) 64px; flex: 1; }
.tabbar { display: none; }

.foot { border-top: 1px solid var(--line); }
.foot-in { max-width: var(--wrap); margin: 0 auto; padding: 28px var(--gut) 36px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 40px;
  color: var(--ink-3); font-size: var(--fs-xs); line-height: 1.6; }
.foot-in .brand-name { font-size: 15px; color: var(--ink); }
.foot-in p { margin-top: 8px; max-width: 34rem; }
.foot-links { display: flex; gap: 20px; flex-wrap: wrap; align-items: flex-start; }
.foot-links a { color: var(--ink-2); font-size: var(--fs-s); }
.fresh { display: inline-flex; align-items: center; gap: 7px; font-size: var(--fs-xs); color: var(--ink-3); }
.fresh .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--st-good); box-shadow: 0 0 0 3px color-mix(in srgb, var(--st-good) 18%, transparent); flex: none; }
.fresh.stale .dot { background: var(--st-warn); box-shadow: 0 0 0 3px color-mix(in srgb, var(--st-warn) 22%, transparent); }
.fresh b { color: var(--ink-2); font-weight: 600; }

@media (max-width: 1023px) {
  :root { --gut: 16px; --hdr: 56px; }
  .nav { display: none; }
  .hdr-in { gap: 12px; padding-top: env(safe-area-inset-top); }
  .hdr { height: calc(var(--hdr) + env(safe-area-inset-top)); }
  .main { padding-bottom: calc(var(--tabbar) + env(safe-area-inset-bottom)); }
  .tabbar {
    display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; inset: auto 0 0 0; z-index: 30;
    height: calc(var(--tabbar) + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom);
    background: color-mix(in srgb, var(--surface) 92%, transparent); -webkit-backdrop-filter: saturate(1.4) blur(16px); backdrop-filter: saturate(1.4) blur(16px);
    border-top: 1px solid var(--line);
  }
  .tabbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: var(--ink-3); font-size: 11px;
    font-weight: 550; text-decoration: none; }
  .tabbar a .ic { width: 22px; height: 22px; stroke-width: 1.7; }
  .tabbar a[aria-current="page"] { color: var(--ink); }
  .tabbar a[aria-current="page"] .ic { stroke-width: 2.2; }
  .wrap { padding: 20px var(--gut) 40px; }
  .foot-in { grid-template-columns: 1fr; padding: 24px var(--gut) 28px; }
  h1 { font-size: var(--fs-2xl); }
}

/* ------------------------------------------------------------------ компоненты */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); }
.card-pad { padding: 22px 24px; }
.card-h { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.card-h h2, .card-h h3 { font-size: var(--fs-m); font-weight: 620; letter-spacing: -.01em; }
.card-h .aside { margin-left: auto; }
.card-h .ic { display: none; }
.label { font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; }
.eyebrow { font-size: var(--fs-s); color: var(--ink-3); font-weight: 500; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 20px; border-radius: var(--radius);
  border: 1px solid transparent; font-weight: 600; font-size: var(--fs-m); text-decoration: none !important; white-space: nowrap; letter-spacing: -.005em;
  transition: background .15s, border-color .15s, color .15s;
}
.btn .ic { width: 16px; height: 16px; stroke-width: 2; }
.btn-primary { background: var(--primary); color: var(--on-primary); }
.btn-primary:hover { background: var(--primary-hover); }
.btn-ghost { background: var(--surface); color: var(--ink); border-color: var(--line-2); }
.btn-ghost:hover { background: var(--surface-2); border-color: var(--ink-3); }
.btn-soft { background: var(--surface-2); color: var(--ink); }
.btn-soft:hover { background: var(--surface-3); }
.btn-s { height: 36px; padding: 0 14px; font-size: var(--fs-s); border-radius: 8px; }
.btn[disabled], .btn.is-disabled { opacity: .55; cursor: not-allowed; }
.btn .soon, .soon { font-size: var(--fs-2xs); font-weight: 600; padding: 2px 7px; border-radius: 5px; background: var(--surface-3); color: var(--ink-3); }
.arrow-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: var(--fs-s); color: var(--ink); }
.arrow-link .ic { width: 15px; height: 15px; transition: transform .15s var(--ease); }
.arrow-link:hover { text-decoration: none; }
.arrow-link:hover .ic { transform: translateX(3px); }

/* метки лота: красный — признак ловушки, жёлтый — осторожно, зелёный — плюс, серый — справка */
.chip { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 8px; border-radius: var(--radius-s); font-size: var(--fs-xs); font-weight: 550;
  white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; background: var(--info-soft); color: var(--info); }
.chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.chip .ic { display: none; }
.chip.r { background: var(--bad-soft); color: var(--bad); }
.chip.a { background: var(--warn-soft); color: var(--warn); }
.chip.g { background: var(--good-soft); color: var(--good); }
.chip.more { background: transparent; color: var(--ink-3); padding: 0 4px; }
.chip.more::before { display: none; }
.src { display: inline-flex; align-items: center; gap: 6px; }
.src::before { content: ""; width: 7px; height: 7px; border-radius: 2px; background: var(--ink-3); flex: none; }
.src-etender::before { background: var(--s1); }
.src-eshop::before { background: var(--s7); }
.src-xt::before { background: var(--s3); }
.new-tag { color: var(--brand-ink); font-weight: 600; }

.tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--line); margin-bottom: 16px; overflow-x: auto; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tabs button { border: 0; background: none; padding: 10px 12px; font-weight: 550; color: var(--ink-3); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tabs button:hover { color: var(--ink); }
.tabs button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--brand); }

.field { position: relative; display: flex; align-items: center; }
.field > .ic { position: absolute; left: 14px; color: var(--ink-3); pointer-events: none; }
.input, .select {
  width: 100%; height: 44px; border-radius: var(--radius); border: 1px solid var(--line-2); background: var(--surface); padding: 0 14px;
  font-size: var(--fs-m); transition: border-color .15s, box-shadow .15s; appearance: none; -webkit-appearance: none;
}
.input::placeholder { color: var(--ink-3); }
.input:hover, .select:hover { border-color: var(--ink-3); }
.input:focus, .select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent); }
.field .input { padding-left: 42px; }
.select { padding-right: 34px; cursor: pointer; background-repeat: no-repeat; background-position: right 11px center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%237b7d83' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.search-x { position: absolute; right: 6px; width: 32px; height: 32px; border: 0; border-radius: 8px; background: transparent; color: var(--ink-3); display: grid; place-items: center; }
.search-x:hover { background: var(--surface-2); color: var(--ink); }

.qchips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 1px; }
.qchips::-webkit-scrollbar { display: none; }
.qchip { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line-2);
  background: var(--surface); color: var(--ink-2); font-size: var(--fs-s); font-weight: 550; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; flex: none; }
.qchip:hover { border-color: var(--ink-3); color: var(--ink); }
.qchip[aria-pressed="true"] { background: var(--brand-soft); border-color: var(--brand); color: var(--brand-ink); }
.qchip .ic { width: 15px; height: 15px; }
.qchip .n { font-variant-numeric: tabular-nums; opacity: .7; }

/* скелетоны */
.sk { position: relative; overflow: hidden; background: var(--surface-2); border-radius: 6px; }
.sk::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--surface) 70%, transparent), transparent); animation: sk 1.3s infinite; }
@keyframes sk { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .sk::after { animation: none; } * { transition: none !important; } }
.sk-line { height: 12px; margin: 8px 0; }

.empty { text-align: center; padding: 56px 24px; }
.empty svg.art { width: 104px; height: 84px; margin: 0 auto 16px; display: block; }
.empty h3 { margin-bottom: 6px; font-size: var(--fs-l); }
.empty p { color: var(--ink-2); max-width: 26rem; margin: 0 auto 20px; }
/* текст лота и каталога, который сервер кладёт в страницу (для поиска и без JS); app.js рисует поверх */
.ssr { max-width: 860px; color: var(--ink-2); }
.ssr h1 { font-size: 30px; line-height: 1.2; color: var(--ink); margin: 8px 0 10px; }
.ssr h2 { font-size: var(--fs-l); color: var(--ink); margin: 28px 0 10px; }
.ssr p, .ssr li { line-height: 1.55; }
.ssr ul, .ssr ol { padding-left: 22px; }
.ssr li + li { margin-top: 6px; }
.ssr-meta { font-size: var(--fs-s); color: var(--ink-3); }
.ssr-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px 24px; margin: 20px 0 0; }
.ssr-facts dt { font-size: var(--fs-xs); color: var(--ink-3); }
.ssr-facts dd { margin: 2px 0 0; font-weight: 600; color: var(--ink); }
/* «Страница не найдена» */
.nf { max-width: 560px; margin: 24px auto 0; }
.nf h1 { font-size: var(--fs-xl); margin-bottom: 8px; }
.nf .field { max-width: 420px; margin: 0 auto 16px; }
.nf .input { height: 48px; }
.nf-a { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }

.toast { position: fixed; left: 50%; bottom: calc(var(--tabbar) + 18px + env(safe-area-inset-bottom)); transform: translate(-50%, 16px); opacity: 0;
  background: var(--ink); color: var(--bg); padding: 10px 16px; border-radius: 10px; font-size: var(--fs-s); font-weight: 550; z-index: 80;
  transition: all .25s var(--ease); pointer-events: none; box-shadow: var(--shadow-pop); }
.toast.on { opacity: 1; transform: translate(-50%, 0); }
@media (min-width: 1024px) { .toast { bottom: 28px; } }
.err { padding: 14px 16px; border-radius: var(--radius); background: var(--bad-soft); color: var(--bad); font-weight: 550; font-size: var(--fs-s); }
.note { font-size: var(--fs-xs); color: var(--ink-3); margin-top: 14px; line-height: 1.55; }
.back { display: inline-flex; align-items: center; gap: 6px; color: var(--ink-3); font-weight: 500; font-size: var(--fs-s); margin-bottom: 18px; }
.back:hover { color: var(--ink); text-decoration: none; }

/* заголовок страницы */
.ph { margin-bottom: 24px; }
.ph h1 { max-width: 48rem; }
.ph-sub { color: var(--ink-2); margin-top: 8px; max-width: 46rem; font-size: var(--fs-m); }
.ph-sub b { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }

/* плитка отрасли: значок Lucide на мягком фоне своего оттенка — визуальная опора в списках вместо «таблицы Excel» */
.itile { --s: 44px; width: var(--s); height: var(--s); flex: none; border-radius: 12px; display: grid; place-items: center;
  background: oklch(var(--it-bg) var(--h, 240)); color: oklch(var(--it-fg) var(--h, 240)); }
.itile svg { width: 52%; height: 52%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.itile.mute { background: var(--surface-2); color: var(--ink-3); }
.itile.l { --s: 56px; border-radius: 15px; }
.itile.xs { --s: 22px; border-radius: 6px; }
.itile.xs svg { width: 62%; height: 62%; stroke-width: 2; }

/* узкая бирюзовая полоса-заголовок внутренних разделов (тот же фон и узор, что у главной; см. «главная») */
.band { position: relative; isolation: isolate; overflow: hidden; color: #fff; margin: -36px calc(50% - 50vw) 28px; padding: 40px calc(50vw - 50%) 30px;
  background: radial-gradient(50% 120% at 85% 0%, rgba(56, 196, 214, .22), transparent 70%), linear-gradient(172deg, #0b4450 0%, #072f37 100%); }
.band::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--girih); background-size: 96px 96px;
  -webkit-mask-image: radial-gradient(60% 140% at 85% 0%, #000 10%, transparent 75%); mask-image: radial-gradient(60% 140% at 85% 0%, #000 10%, transparent 75%); }
.band .ph { margin-bottom: 0; }
.band .ph h1 { color: #fff; }
.band .ph-sub { color: rgba(255, 255, 255, .72); }
.band .ph-sub b { color: #fff; }
.band .cat-top { margin: 24px 0 0; }
.band .field > .ic { color: #6b7680; z-index: 1; }
.band .input { background: #fff; color: #0f1419; border-color: transparent; }
.band .input::placeholder { color: #6b7680; }
.band .input:focus { border-color: #f2b52a; box-shadow: 0 0 0 4px rgba(242, 181, 42, .3); }
.band .search-x { color: #6b7680; }
.band .search-x:hover { background: #eef1f4; color: #0f1419; }
.band .qchip { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .86); }
.band .qchip:hover { border-color: rgba(255, 255, 255, .5); color: #fff; }
.band .qchip[aria-pressed="true"] { background: #fff; border-color: #fff; color: #0a5f6f; }
.band .active-f button { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .22); color: #fff; }
.band .active-f button .ic { color: rgba(255, 255, 255, .7); }
.band .active-f .clear { background: none; border-color: transparent; color: rgba(255, 255, 255, .7); }
@media (max-width: 1023px) {
  .band { margin-top: -20px; margin-bottom: 20px; padding-top: 24px; padding-bottom: 22px; }
}

/* ------------------------------------------------------------------ строка лота (каталог, главная, похожие, компания) */
.list { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); overflow: hidden; container-type: inline-size; }
.list-h, .lot { display: grid; grid-template-columns: minmax(0, 1fr) 112px 128px 72px; gap: 24px; padding: 0 22px; }
.list-h { min-height: 40px; padding-top: 8px; padding-bottom: 8px; line-height: 1.25; align-items: center; border-bottom: 1px solid var(--line); font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; background: var(--surface-2); }
.list-h span:nth-child(n+2) { text-align: right; }
.lot { padding-top: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none !important; transition: background .12s; align-items: start; }
.lot:last-child { border-bottom: 0; }
.lot:hover { background: color-mix(in srgb, var(--surface-2) 70%, var(--surface)); }
.lot:hover .lot-t { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--line-2); }
.lot-l { min-width: 0; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 0 16px; align-items: start; }
.lot-x { min-width: 0; }
.lot-m { display: flex; align-items: center; gap: 6px 14px; flex-wrap: wrap; font-size: var(--fs-xs); color: var(--ink-3); margin-bottom: 6px; }
.lot-t { font-size: var(--fs-m); font-weight: 600; line-height: 1.4; letter-spacing: -.008em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lot-s { margin-top: 5px; font-size: var(--fs-s); color: var(--ink-3); display: flex; min-width: 0; white-space: nowrap; overflow: hidden; }
.lot-s span { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.lot-s span.new-tag { flex: none; }
.lot-s span.who { flex-shrink: 20; color: var(--ink-2); }
.lot-s span + span::before { content: "·"; margin: 0 8px; color: var(--ink-3); }
.lot-s .new-tag + span::before { content: none; }
.lot-s .new-tag { margin-right: 8px; padding: 0 6px; border-radius: 4px; background: var(--brand-soft); font-size: var(--fs-2xs); line-height: 19px; align-self: center; }
.lot-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.lot-p, .lot-d, .lot-c { text-align: right; }
.lot-p { font: 650 var(--fs-l)/1.25 var(--font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lot-p small { display: block; font-size: var(--fs-xs); font-weight: 500; color: var(--ink-3); letter-spacing: 0; margin-top: 2px; }
.lot-d { font-size: var(--fs-s); color: var(--ink); font-variant-numeric: tabular-nums; line-height: 1.35; white-space: nowrap; }
.lot-d .left { display: block; font-size: var(--fs-xs); color: var(--ink-3); margin-top: 3px; font-weight: 500; }
.lot-d .left.warn { color: var(--warn); font-weight: 600; }
.lot-d .left.crit { color: var(--bad); font-weight: 600; }
.lot-d.unknown { color: var(--ink-3); white-space: normal; font-size: var(--fs-xs); }
.lot-c { display: flex; justify-content: flex-end; }
.lot-c .lbl { display: none; }
.score { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 28px; padding: 0 8px; border-radius: 7px;
  font: 650 var(--fs-m)/1 var(--font-display); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.score.high { background: var(--good-soft); color: var(--good); }
.score.mid { background: var(--warn-soft); color: var(--warn); }
.score.low { background: var(--bad-soft); color: var(--bad); }
.lot.sk-card { pointer-events: none; }
/* узкий список рядом с фильтрами (компьютер 1024–1200 px): площадка — на странице лота, строке не хватает места */
@container (max-width: 760px) { .lot-s .s-src { display: none; } }
/* узкая колонка (похожие лоты на странице лота) */
.lp-body .list-h, .lp-body .lot { grid-template-columns: minmax(0, 1fr) 104px 118px 64px; gap: 16px; padding-left: 18px; padding-right: 18px; }
.load-more { display: flex; justify-content: center; padding: 20px 0 0; }

@media (max-width: 760px) {
  .list-h { display: none; }
  .lot { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "l l" "p c" "d c"; gap: 0 12px; padding: 16px; }
  .lot-l { grid-area: l; }
  .lot-p { grid-area: p; text-align: left; margin-top: 12px; display: flex; align-items: baseline; gap: 6px; }
  .lot-p small { display: inline; margin: 0; }
  .lot-d { grid-area: d; text-align: left; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-top: 2px; }
  .lot-d .left { display: inline; margin: 0; }
  .lot-d .left::before { content: "·"; margin-right: 8px; color: var(--ink-3); font-weight: 400; }
  .lot-c { grid-area: c; align-self: end; flex-direction: column; align-items: flex-end; gap: 3px; }
  .lot-c .lbl { display: block; font-size: var(--fs-2xs); color: var(--ink-3); }
  .lot-s .s-src { display: none; }
}

/* ------------------------------------------------------------------ главная
   Один яркий акцент на весь сайт: первый экран главной — тёмная бирюза с узором гирих (геометрия изразцов Самарканда),
   золотая кнопка поиска, парящая карточка с настоящими лотами и строка живых цифр. Всё ниже — спокойное и светлое. */
.wrap.is-home { max-width: none; padding: 0 0 72px; }
.home-in { max-width: var(--wrap); margin-left: auto; margin-right: auto; padding-left: var(--gut); padding-right: var(--gut); }
.app.dark-top .hdr { background: #0b4450; border-bottom-color: rgba(255, 255, 255, .08); color: #fff; }
.app.dark-top .brand { color: #fff; }
.app.dark-top .brand-mark rect { fill: #fff; }
.app.dark-top .brand-mark path { stroke: #0b4450; }
.app.dark-top .nav a { color: rgba(255, 255, 255, .72); }
.app.dark-top .nav a:hover, .app.dark-top .nav a[aria-current="page"] { color: #fff; }
.app.dark-top .seg { border-color: rgba(255, 255, 255, .2); }
.app.dark-top .seg button { color: rgba(255, 255, 255, .6); }
.app.dark-top .seg button[aria-pressed="true"] { background: rgba(255, 255, 255, .14); color: #fff; }
.app.dark-top .icon-btn { border-color: rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .8); }
.app.dark-top .icon-btn:hover { background: rgba(255, 255, 255, .1); color: #fff; }

.hero-band { position: relative; isolation: isolate; overflow: hidden; color: #fff;
  background: radial-gradient(55% 75% at 78% 16%, rgba(56, 196, 214, .26), transparent 70%),
    radial-gradient(45% 60% at 6% 100%, rgba(233, 168, 0, .10), transparent 70%),
    linear-gradient(172deg, #0b4450 0%, #072f37 62%, #06262d 100%); }
.hero-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--girih); background-size: 96px 96px; background-position: center top;
  -webkit-mask-image: radial-gradient(75% 95% at 74% 28%, #000 10%, transparent 78%); mask-image: radial-gradient(75% 95% at 74% 28%, #000 10%, transparent 78%); }
.hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 500px); gap: 72px; align-items: center; padding-top: 120px; padding-bottom: 64px; }
.hero-k { display: inline-flex; align-items: center; gap: 8px; font-size: var(--fs-s); color: rgba(255, 255, 255, .72); font-weight: 500; font-variant-numeric: tabular-nums; }
.hero-k .dot { width: 7px; height: 7px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 0 4px rgba(61, 220, 132, .18); }
.hero h1 { font-size: 66px; line-height: 1; letter-spacing: -.045em; font-weight: 700; margin-top: 22px; color: #fff; }
.hero .lead { font-size: 18px; line-height: 1.6; color: rgba(255, 255, 255, .78); margin-top: 22px; max-width: 31rem; }
.hsearch { position: relative; display: flex; align-items: center; margin-top: 34px; max-width: 34rem; }
.hsearch > .ic { position: absolute; left: 18px; color: #6b7680; pointer-events: none; z-index: 1; }
.hsearch .input { height: 58px; border-radius: 14px; padding: 0 130px 0 48px; font-size: var(--fs-l); background: #fff; color: #0f1419; border-color: transparent;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .22); }
.hsearch .input::placeholder { color: #6b7680; }
.hsearch .input:focus { border-color: #f2b52a; box-shadow: 0 0 0 4px rgba(242, 181, 42, .3), 0 14px 34px rgba(0, 0, 0, .22); }
.btn-gold { background: #f2b52a; color: #1f1600; }
.btn-gold:hover { background: #ffc443; }
.hsearch .btn { position: absolute; right: 7px; height: 44px; border-radius: 10px; padding: 0 22px; }
.hint { margin-top: 16px; font-size: var(--fs-s); color: rgba(255, 255, 255, .6); }
.hint a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px; }
.hint a:hover { text-decoration-color: #f2b52a; }

.demo-wrap { position: relative; }
.demo-wrap .demo { position: relative; z-index: 1; }
.portal { position: absolute; left: 50%; top: -150px; width: 600px; height: 560px; transform: translateX(-50%); pointer-events: none; z-index: 0;
  stroke: rgba(242, 181, 42, .42); stroke-width: 1.4;
  -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 72%, transparent 100%); }
.demo { margin: 0; background: var(--surface); color: var(--ink); border: 1px solid rgba(255, 255, 255, .12); border-radius: 20px; overflow: hidden;
  box-shadow: 0 40px 80px -24px rgba(0, 0, 0, .55), 0 0 0 1px rgba(0, 0, 0, .04); }
.demo-h { display: flex; justify-content: space-between; padding: 16px 22px 12px; font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; }
.demo-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 18px 22px; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none !important; }
.demo-row:hover { background: color-mix(in srgb, var(--surface-2) 60%, var(--surface)); }
.demo-l { min-width: 0; }
.demo-row .itile { --s: 40px; border-radius: 11px; align-self: start; margin-top: 2px; }
.demo-l b { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 600; line-height: 1.4; }
.demo-l > span { display: block; margin-top: 4px; font-size: var(--fs-s); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.demo-l .lot-chips { margin-top: 10px; }
.demo-s { display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 64px; }
.demo-s .score { min-width: 58px; height: 46px; font-size: 23px; border-radius: 12px; }
.demo-s em { font-style: normal; font-size: var(--fs-2xs); color: var(--ink-3); font-weight: 500; }
.demo-f { padding: 14px 22px 18px; border-top: 1px solid var(--line); font-size: var(--fs-s); color: var(--ink-2); line-height: 1.5; background: var(--surface-2); }

.hero-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255, 255, 255, .12); padding: 30px 0 44px; }
.hero-nums > div { padding: 0 28px; border-left: 1px solid rgba(255, 255, 255, .12); min-width: 0; }
.hero-nums > div:first-child { padding-left: 0; border-left: 0; }
.hero-nums b { display: block; font: 650 42px/1.05 var(--font-display); letter-spacing: -.035em; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hero-nums b small { font-size: 16px; font-weight: 500; color: rgba(255, 255, 255, .6); letter-spacing: 0; margin-left: 6px; }
.hero-nums em { display: block; font-style: normal; margin-top: 8px; font-size: var(--fs-s); color: rgba(255, 255, 255, .62); }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.hero-band .a { animation: rise .8s var(--ease) both; animation-delay: var(--d, 0s); }
@media (prefers-reduced-motion: reduce) { .hero-band .a { animation: none; } }

.how { padding-top: 72px; padding-bottom: 64px; }
.how h2, .hsec-h h2 { font-size: 30px; letter-spacing: -.03em; font-weight: 650; }
.how-l { list-style: none; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; counter-reset: how; }
.how-l li { counter-increment: how; position: relative; }
.how-l li::before { content: counter(how); font: 650 15px/1 var(--font-display); color: #fff; width: 34px; height: 34px; border-radius: 50%;
  background: var(--brand); display: grid; place-items: center; margin-bottom: 20px; font-variant-numeric: tabular-nums; position: relative; z-index: 1; }
.how-l li:not(:last-child)::after { content: ""; position: absolute; top: 17px; left: 46px; right: -36px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--brand) 0%, color-mix(in srgb, var(--brand) 15%, transparent) 100%); }
.how-l h3 { font-size: var(--fs-l); letter-spacing: -.015em; }
.how-l p { color: var(--ink-2); margin-top: 8px; line-height: 1.6; max-width: 22rem; }

.hsec { padding-top: 56px; padding-bottom: 8px; }
.hsec-h { display: flex; align-items: flex-end; gap: 24px; margin-bottom: 24px; }
.hsec-h p { color: var(--ink-2); margin-top: 8px; max-width: 40rem; }
.hsec-h .arrow-link { margin-left: auto; flex: none; }

.inds { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ind-card { display: grid; grid-template-columns: 48px minmax(0, 1fr); grid-template-rows: auto auto; gap: 2px 14px; align-items: center; padding: 18px;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); color: var(--ink); text-decoration: none !important;
  transition: transform .2s var(--ease), box-shadow .2s, border-color .2s; }
.ind-card:hover { transform: translateY(-2px); border-color: transparent; box-shadow: 0 16px 32px -18px rgba(15, 20, 25, .3), 0 0 0 1px var(--line); }
.ind-card .itile { --s: 48px; grid-row: span 2; }
.ind-card b { font-weight: 600; line-height: 1.3; align-self: end; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; text-wrap: balance; }
.ind-card span { font-size: var(--fs-s); color: var(--ink-3); align-self: start; font-variant-numeric: tabular-nums; }
.ind-card span em { font-style: normal; color: var(--ink); font-weight: 600; }
.today { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fact-big { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); padding: 24px; display: flex; flex-direction: column; min-width: 0; }
.fact-big b { font: 700 60px/1 var(--font-display); letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.fact-big.bad b { color: var(--bad); }
.fact-big.good b { color: var(--good); }
.fact-big.warn b { color: var(--warn); }
.fact-big p { color: var(--ink-2); margin-top: 14px; line-height: 1.55; }
.fact-big .arrow-link { margin-top: auto; padding-top: 18px; }

.tg { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: center; padding: 44px 52px; border-radius: 22px; background: var(--brand-soft); margin-top: 24px; }
.tg h2 { font-size: 30px; letter-spacing: -.03em; margin-top: 10px; }
.tg-p { color: var(--ink-2); margin: 12px 0 26px; max-width: 32rem; line-height: 1.6; }
.tg-chat { display: flex; flex-direction: column; gap: 10px; padding: 18px; border-radius: 24px; background: var(--surface-2); border: 1px solid var(--line);
  box-shadow: 0 24px 48px -28px rgba(15, 20, 25, .35); transform: rotate(1.5deg); }
.tg-chat .msg .lot-chips { margin-top: 8px; }
.tg-chat .msg .chip { margin: 0; }

@media (max-width: 1023px) {
  .hero { grid-template-columns: 1fr; gap: 36px; padding-top: 32px; padding-bottom: 36px; }
  .hero h1 { font-size: 42px; margin-top: 14px; }
  .hero .lead { font-size: var(--fs-m); margin-top: 14px; }
  .hsearch { margin-top: 24px; max-width: none; }
  .hsearch .input { height: 54px; font-size: var(--fs-m); padding-right: 116px; }
  .hsearch .btn { height: 42px; padding: 0 16px; }
  .hero-nums { grid-template-columns: 1fr 1fr; gap: 22px 0; padding: 24px 0 32px; }
  .hero-nums > div { padding: 0 18px; }
  .hero-nums > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .hero-nums b { font-size: 30px; }
  .how { padding-top: 44px; padding-bottom: 32px; }
  .how-l { grid-template-columns: 1fr; gap: 24px; margin-top: 24px; }
  .how-l li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 0 14px; }
  .how-l li::before { grid-row: span 2; margin: 0; }
  .how-l li:not(:last-child)::after { top: 40px; bottom: -22px; left: 16px; right: auto; width: 2px; height: auto;
    background: linear-gradient(180deg, var(--brand), color-mix(in srgb, var(--brand) 15%, transparent)); }
  .how-l p { max-width: none; margin-top: 4px; }
  .how h2, .hsec-h h2 { font-size: var(--fs-xl); }
  .hsec { padding-top: 40px; }
  .hsec-h { flex-wrap: wrap; gap: 8px; }
  .hsec-h .arrow-link { margin-left: 0; }
  .today { grid-template-columns: 1fr; }
  .inds { grid-template-columns: 1fr 1fr; }
  .portal { display: none; }
  .tg { grid-template-columns: 1fr; gap: 28px; padding: 26px 22px; }
  .tg h2 { font-size: var(--fs-xl); }
  .tg-chat { transform: none; }
}
@media (max-width: 520px) {
  .hero h1 { font-size: 36px; }
  .demo-row { padding: 16px; gap: 14px; }
  .demo-h, .demo-f { padding-left: 16px; padding-right: 16px; }
  .fact-big { padding: 18px; }
  .fact-big b { font-size: 42px; }
  .inds { grid-template-columns: 1fr; gap: 8px; }
  .ind-card { padding: 14px; }
  .lot-l { grid-template-columns: 36px minmax(0, 1fr); gap: 0 12px; }
  .lot-l .itile { --s: 36px; border-radius: 10px; }
  .lb-title { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; }
  .lb-title .itile { --s: 44px; }
}

/* карта Узбекистана: области по числу открытых лотов (5 ступеней бирюзы), подписи с ореолом, Ташкент — точкой с выноской */
.map-wrap { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(250px, 1fr); gap: 36px; align-items: center; }
.map-wrap.card { padding: 28px; }
.map-main { min-width: 0; }
.map-box { position: relative; }
.uzmap { width: 100%; height: auto; display: block; overflow: visible; }
.uzmap .rg path { stroke: var(--surface); stroke-width: 1.6; stroke-linejoin: round; transition: opacity .15s; }
.uzmap .rg:hover path, .uzmap .rg:focus-visible path { opacity: .78; }
.uzmap .rg:focus-visible { outline: none; }
.uzmap .q0 path { fill: var(--surface-3); }
.uzmap .q1 path { fill: var(--q1); }
.uzmap .q2 path { fill: var(--q2); }
.uzmap .q3 path { fill: var(--q3); }
.uzmap .q4 path { fill: var(--q4); }
.uzmap .q5 path { fill: var(--q5); }
.uzmap .ml { font: 650 23px var(--font); fill: var(--ink); text-anchor: middle; paint-order: stroke; stroke: var(--surface); stroke-width: 5px;
  stroke-linejoin: round; pointer-events: none; font-variant-numeric: tabular-nums; }
.uzmap .ml.city { text-anchor: end; font-size: 21px; }
.uzmap .rg-city circle { fill: var(--surface); stroke: var(--brand); stroke-width: 3; }
.uzmap .rg-city circle.in { fill: var(--brand); stroke: none; }
.uzmap .rg-city .lead { fill: none; stroke: var(--ink-3); stroke-width: 1.2; }
.uzmap .rg-city:hover circle:not(.in) { fill: var(--brand-soft); }
.map-tip { position: absolute; z-index: 3; pointer-events: none; background: var(--ink); color: var(--bg); padding: 8px 12px; border-radius: 10px;
  font-size: var(--fs-s); box-shadow: var(--shadow-pop); white-space: nowrap; }
.map-tip b { display: block; font-weight: 600; }
.map-tip span { opacity: .78; font-variant-numeric: tabular-nums; }
.map-side { min-width: 0; }
.map-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.map-list a { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 1px 10px; padding: 8px 10px; border-radius: 8px; color: var(--ink);
  text-decoration: none !important; align-items: baseline; }
.map-list a:hover { background: var(--surface-2); }
.map-list .sw { width: 12px; height: 12px; border-radius: 3px; align-self: center; grid-row: span 2; }
.map-list .nm { font-weight: 550; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.map-list b { font-weight: 650; font-variant-numeric: tabular-nums; text-align: right; }
.map-list em { grid-column: 2 / -1; font-style: normal; font-size: var(--fs-xs); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.sw.q0, .map-legend i.q0 { background: var(--surface-3); }
.sw.q1, .map-legend i.q1 { background: var(--q1); }
.sw.q2, .map-legend i.q2 { background: var(--q2); }
.sw.q3, .map-legend i.q3 { background: var(--q3); }
.sw.q4, .map-legend i.q4 { background: var(--q4); }
.sw.q5, .map-legend i.q5 { background: var(--q5); }
.map-note { font-size: var(--fs-s); color: var(--ink-2); margin: 10px 10px 0; }
.map-legend { display: flex; align-items: center; gap: 3px; margin: 18px 10px 0; font-size: var(--fs-xs); color: var(--ink-3); }
.map-legend i { width: 26px; height: 10px; border-radius: 2px; }
.map-legend span:first-child { margin-right: 6px; }
.map-legend span:last-child { margin-left: 6px; }
.map-src { font-size: var(--fs-2xs); color: var(--ink-3); margin: 10px 10px 0; }
@media (max-width: 900px) {
  .map-wrap { grid-template-columns: 1fr; gap: 16px; }
  .map-wrap.card { padding: 16px; }
}
@media (max-width: 640px) {
  .uzmap .ml:not(.city) { display: none; }
  .uzmap .ml.city { font-size: 30px; stroke-width: 6px; }
}

/* ------------------------------------------------------------------ каталог */
.cat-top { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.cat-top .field .input { height: 48px; font-size: var(--fs-m); }
.cat { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 36px; align-items: start; }
.filters { position: sticky; top: calc(var(--hdr) + 20px); max-height: calc(100vh - var(--hdr) - 40px); overflow: auto; scrollbar-width: thin;
  display: flex; flex-direction: column; padding-right: 4px; }
.fgroup { padding: 18px 0; border-top: 1px solid var(--line); }
.fgroup:first-child { border-top: 0; padding-top: 2px; }
.fgroup h4 { font-size: var(--fs-s); font-weight: 600; color: var(--ink); margin: 0 0 10px; letter-spacing: -.005em; }
.opt { display: flex; align-items: center; gap: 10px; padding: 5px 6px; margin: 0 -6px; border-radius: 6px; cursor: pointer; font-size: var(--fs-s); color: var(--ink-2); line-height: 1.35; }
.opt:hover { background: var(--surface-2); color: var(--ink); }
.opt input { appearance: none; -webkit-appearance: none; width: 16px; height: 16px; margin: 0; flex: none; border: 1.5px solid var(--line-2); border-radius: 4px; background: var(--surface);
  display: grid; place-items: center; transition: background .12s, border-color .12s; }
.opt input::after { content: ""; width: 8px; height: 5px; border: 2px solid var(--on-primary); border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); opacity: 0; }
.opt input:checked { background: var(--primary); border-color: var(--primary); }
.opt input:checked::after { opacity: 1; }
.opt:has(input:checked) { color: var(--ink); font-weight: 550; }
.opt .n { margin-left: auto; color: var(--ink-3); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; font-weight: 400; }
.opt.zero { opacity: .45; }
.opt .sw { width: 7px; height: 7px; border-radius: 2px; flex: none; }
.range { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.range .input { height: 36px; font-size: var(--fs-s); padding: 0 10px; border-radius: 8px; }
.presets { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.presets button { border: 1px solid var(--line-2); background: var(--surface); border-radius: 999px; height: 28px; padding: 0 11px; font-size: var(--fs-xs); font-weight: 550; color: var(--ink-2); }
.presets button:hover { border-color: var(--ink-3); color: var(--ink); }
.presets button[aria-pressed="true"] { border-color: var(--brand); background: var(--brand-soft); color: var(--brand-ink); }
.fgroup .select { height: 38px; font-size: var(--fs-s); border-radius: 8px; }
.more-btn { border: 0; background: none; color: var(--link); font-weight: 550; font-size: var(--fs-s); padding: 6px 0 0; }
.res-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; min-height: 36px; }
.res-head .count { font-weight: 600; font-size: var(--fs-m); }
.res-head .count small { color: var(--ink-3); font-weight: 400; font-size: var(--fs-s); margin-left: 8px; }
.res-head .sort { margin-left: auto; display: flex; align-items: center; gap: 8px; font-size: var(--fs-s); color: var(--ink-3); }
.res-head .select { width: auto; height: 36px; font-size: var(--fs-s); border-radius: 8px; padding-left: 12px; color: var(--ink); }
.fbtn { display: none; }
.active-f { display: flex; flex-wrap: wrap; gap: 6px; }
.active-f:empty { display: none; }
.active-f button { display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--line-2); background: var(--surface); color: var(--ink); border-radius: 999px;
  height: 28px; padding: 0 8px 0 12px; font-size: var(--fs-xs); font-weight: 550; }
.active-f button:hover { border-color: var(--ink-3); }
.active-f button .ic { width: 13px; height: 13px; color: var(--ink-3); }
.active-f .clear { border-color: transparent; color: var(--ink-3); padding: 0 8px; background: none; }
.active-f .clear:hover { color: var(--ink); }

@media (max-width: 1023px) {
  .cat { grid-template-columns: minmax(0, 1fr); }
  .filters { display: none; }
  .fbtn { display: inline-flex; }
  .cat-top { margin-bottom: 16px; }
}
@media (max-width: 640px) {
  .res-head .sort span { display: none; }
}

/* нижний лист фильтров (телефон) */
.sheet-bg { position: fixed; inset: 0; background: rgba(10, 11, 13, .42); z-index: 60; opacity: 0; pointer-events: none; transition: opacity .25s; }
.sheet-bg.on { opacity: 1; pointer-events: auto; }
.sheet { position: fixed; inset: auto 0 0 0; z-index: 61; background: var(--surface); border-radius: 18px 18px 0 0; max-height: 88vh; display: flex; flex-direction: column;
  transform: translateY(105%); transition: transform .32s var(--ease); box-shadow: var(--shadow-pop); padding-bottom: env(safe-area-inset-bottom); }
.sheet.on { transform: none; }
.sheet-h { display: flex; align-items: center; padding: 18px 16px 12px; border-bottom: 1px solid var(--line); }
.sheet-h::before { content: ""; position: absolute; top: 7px; left: 50%; width: 36px; height: 4px; border-radius: 4px; background: var(--line-2); transform: translateX(-50%); }
.sheet-h h3 { font-size: var(--fs-l); }
.sheet-h .icon-btn { margin-left: auto; }
.sheet-b { overflow: auto; padding: 4px 16px 16px; display: flex; flex-direction: column; }
.sheet-f { padding: 12px 16px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 2fr; gap: 8px; }

/* ------------------------------------------------------------------ лот
   Как главная: бирюзовая полоса с названием, заказчиком и строкой главных цифр; карточка с бюджетом, сроком и кнопкой
   «Открыть на площадке» парит, заходя на полосу, и едет за прокруткой. Ниже — разбор на светлом фоне. */
.band.lot-band { padding-top: 22px; padding-bottom: 34px; margin-bottom: 32px; }
.lot-band .lb-in { max-width: calc(100% - 340px - 56px); }
.lot-band .back { color: rgba(255, 255, 255, .66); margin-bottom: 20px; }
.lot-band .back:hover { color: #fff; }
.lot-band .err { margin-bottom: 16px; }
.lot-band .lot-m { color: rgba(255, 255, 255, .66); margin-bottom: 12px; font-size: var(--fs-s); }
.lb-title { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; align-items: start; }
.lb-title .itile { margin-top: 4px; box-shadow: 0 8px 20px rgba(0, 0, 0, .25); }
.lb-ind { color: rgba(255, 255, 255, .62); font-size: var(--fs-s); margin-top: 8px; }
.lot-band h1 { color: #fff; font-size: 34px; line-height: 1.18; letter-spacing: -.03em; font-weight: 650; text-wrap: pretty; }
.lot-band .orig { color: rgba(255, 255, 255, .55); font-size: var(--fs-s); margin-top: 10px; }
.lp-cust { display: flex; align-items: center; gap: 12px; margin-top: 22px; }
.avatar { width: 40px; height: 40px; border-radius: 10px; flex: none; display: grid; place-items: center; font-weight: 650; font-size: var(--fs-s);
  background: var(--surface-2); color: var(--ink-2); border: 1px solid var(--line); }
.avatar .ic { width: 18px; height: 18px; }
.lp-cust .who { min-width: 0; flex: 1; }
.lp-cust .who b { display: block; font-weight: 600; line-height: 1.35; }
.lp-cust .who b a { color: var(--ink); }
.lp-cust .who b a:hover { color: var(--link); }
.lot-band .avatar { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .16); color: #fff; }
.lot-band .lp-cust .who b, .lot-band .lp-cust .who b a { color: #fff; }
.lot-band .lp-cust .who b a { text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .3); text-underline-offset: 3px; }
.lot-band .lp-cust .who b a:hover { text-decoration-color: #f2b52a; }
.lot-band .lp-cust .muted { color: rgba(255, 255, 255, .6); }
.lb-nums { display: flex; flex-wrap: wrap; gap: 18px 0; margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .12); }
.lb-nums > div { padding: 0 28px; border-left: 1px solid rgba(255, 255, 255, .12); min-width: 0; }
.lb-nums > div:first-child { padding-left: 0; border-left: 0; }
.lb-nums b { display: flex; align-items: baseline; gap: 6px; font: 650 28px/1.1 var(--font-display); letter-spacing: -.03em; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lb-nums b small { font-size: var(--fs-s); font-weight: 500; letter-spacing: 0; color: rgba(255, 255, 255, .6); }
.lb-nums b .score { font-size: 22px; height: 38px; min-width: 52px; border-radius: 10px; }
.lb-nums b:has(.score) { align-items: center; height: 31px; }
.lb-nums em { display: block; font-style: normal; margin-top: 8px; font-size: var(--fs-s); color: rgba(255, 255, 255, .62); }

.lot-page { display: grid; grid-template-columns: minmax(0, 1fr) 340px; grid-template-areas: "body side"; gap: 0 56px; align-items: start; }
.lp-body { grid-area: body; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.lot-page > .side-col { grid-area: side; position: sticky; top: calc(var(--hdr) + 20px); z-index: 2; margin-top: -300px; }
.lot-page .price-card { border: 0; box-shadow: 0 40px 80px -28px rgba(4, 30, 36, .55), 0 0 0 1px rgba(15, 20, 25, .06); border-radius: 20px; }
.btn-l { height: 52px; font-size: var(--fs-l); border-radius: 12px; }

.price-card { padding: 24px; }
.price-card .big { font: 650 36px/1.05 var(--font-display); letter-spacing: -.035em; font-variant-numeric: tabular-nums; margin-top: 6px; }
.price-card .big small { font-size: var(--fs-m); color: var(--ink-3); font-weight: 500; margin-left: 6px; letter-spacing: 0; }
.cd { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.cd .row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: var(--fs-s); color: var(--ink-2); }
.cd .row b { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.tl { width: 100%; height: 4px; border-radius: 4px; background: var(--surface-3); overflow: hidden; margin-top: 10px; }
.tl i { display: block; height: 100%; border-radius: 4px; background: var(--ink-3); }
.tl.warn i { background: var(--st-warn); }
.tl.crit i { background: var(--st-crit); }
.tl-t { font-size: var(--fs-s); font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tl-t.warn { color: var(--warn); }
.tl-t.crit { color: var(--bad); }
.ctas { display: flex; flex-direction: column; gap: 8px; margin-top: 22px; }
.ctas .btn { width: 100%; }
.side-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.side-col .note { margin-top: 12px; }
.tz-soon { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: var(--fs-s); color: var(--ink-3); padding: 6px 0 0; }

/* вердикт: шанс для новичка + причины + риски */
.verdict { overflow: hidden; }
.v-top { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: center; padding: 22px 24px; border-bottom: 1px solid var(--line); }
.v-num { width: 72px; height: 72px; border-radius: 14px; display: grid; place-items: center; font: 700 30px/1 var(--font-display); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.v-num.high { background: var(--good-soft); color: var(--good); }
.v-num.mid { background: var(--warn-soft); color: var(--warn); }
.v-num.low { background: var(--bad-soft); color: var(--bad); }
.v-top h2 { font-size: var(--fs-l); letter-spacing: -.015em; }
.v-top p { color: var(--ink-2); font-size: var(--fs-s); margin-top: 4px; }
.meter { position: relative; height: 6px; border-radius: 3px; margin-top: 12px; max-width: 420px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--st-crit) 28%, var(--surface-3)) 0 35%, color-mix(in srgb, var(--st-warn) 30%, var(--surface-3)) 35% 65%, color-mix(in srgb, var(--st-good) 28%, var(--surface-3)) 65% 100%); }
.meter i { position: absolute; top: 50%; width: 14px; height: 14px; border-radius: 50%; background: var(--surface); border: 3px solid var(--ink); transform: translate(-50%, -50%); }
.meter-l { position: relative; height: 14px; max-width: 420px; font-size: var(--fs-2xs); color: var(--ink-3); margin-top: 6px; font-variant-numeric: tabular-nums; }
.meter-l span { position: absolute; transform: translateX(-50%); }
.meter-l span:first-child { transform: none; }
.meter-l span:last-child { transform: translateX(-100%); }
.v-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.v-cols > div { padding: 20px 24px 22px; min-width: 0; }
.v-cols > div + div { border-left: 1px solid var(--line); }
.v-cols h3 { font-size: var(--fs-s); font-weight: 600; margin-bottom: 12px; color: var(--ink); }
.why { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.why li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 8px; font-size: var(--fs-s); color: var(--ink-2); align-items: baseline; line-height: 1.45; }
.why .d { font-weight: 650; font-variant-numeric: tabular-nums; text-align: right; }
.why .d.p { color: var(--good); }
.why .d.m { color: var(--bad); }
.why .d.c { color: var(--bad); font-size: var(--fs-xs); }
.flags { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.flag { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 10px; }
.flag .fi { width: 8px; height: 8px; border-radius: 50%; margin-top: 6px; background: var(--info); }
.flag .fi .ic { display: none; }
.flag.r .fi { background: var(--bad); }
.flag.a .fi { background: var(--st-warn); }
.flag.g .fi { background: var(--st-good); }
.flag b { display: block; font-size: var(--fs-s); font-weight: 600; line-height: 1.4; }
.flag.r b { color: var(--bad); }
.flag p { font-size: var(--fs-xs); color: var(--ink-2); margin-top: 2px; line-height: 1.5; }
.flags-ok { display: flex; gap: 8px; align-items: center; font-weight: 550; font-size: var(--fs-s); color: var(--good); margin-bottom: 12px; }
.flags-ok .ic { width: 16px; height: 16px; }
.v-note { padding: 12px 24px; border-top: 1px solid var(--line); background: var(--surface-2); font-size: var(--fs-xs); color: var(--ink-3); line-height: 1.5; }

/* ключевые условия */
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); margin-top: 16px; }
.fact { padding: 16px 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-width: 0; }
.fact:nth-child(3n) { border-right: 0; }
.facts.last-row-3 .fact:nth-last-child(-n+3), .facts.last-row-2 .fact:nth-last-child(-n+2), .facts.last-row-1 .fact:nth-last-child(1) { border-bottom: 0; }
.fact .k { font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; }
.fact .k .ic { display: none; }
.fact .v { font-weight: 600; margin-top: 4px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; line-height: 1.4; }
.fact .h { font-size: var(--fs-xs); color: var(--ink-3); margin-top: 2px; }
.copy-btn { width: 26px; height: 26px; border: 0; border-radius: 6px; background: none; color: var(--ink-3); display: inline-grid; place-items: center; vertical-align: -7px; }
.copy-btn:hover { background: var(--surface-2); color: var(--ink); }

.prose { color: var(--ink-2); line-height: 1.65; }
.reqs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; counter-reset: rq; }
.reqs li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; color: var(--ink-2); line-height: 1.55; counter-increment: rq; }
.reqs li::before { content: counter(rq); font-size: var(--fs-xs); font-weight: 600; color: var(--ink-3); font-variant-numeric: tabular-nums; padding-top: 2px; }
.tbl { width: 100%; border-collapse: collapse; font-size: var(--fs-s); }
.tbl th { text-align: left; font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; padding: 8px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tbl td { padding: 11px 10px; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--ink-2); line-height: 1.45; }
.tbl th:first-child, .tbl td:first-child { padding-left: 0; }
.tbl th:last-child, .tbl td:last-child { padding-right: 0; }
.tbl td.r, .tbl th.r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tbl tr:last-child td { border-bottom: 0; }
.tbl-wrap { overflow-x: auto; }
.lp-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }

.scale { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
.scale i { height: 8px; border-radius: 2px; background: var(--surface-3); }
.scale i.on { background: var(--bar); }
.scale-l { display: flex; justify-content: space-between; font-size: var(--fs-xs); color: var(--ink-3); margin-top: 6px; }
.dist { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; align-items: end; height: 64px; margin-top: 16px; }
.dist div { display: flex; flex-direction: column; align-items: center; gap: 4px; height: 100%; justify-content: flex-end; }
.dist span { width: 100%; max-width: 24px; background: var(--bar); border-radius: 3px 3px 0 0; min-height: 2px; }
.dist em { font-style: normal; font-size: 10px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.share { display: flex; flex-direction: column; gap: 12px; }
.share-row .top { display: flex; justify-content: space-between; gap: 8px; font-size: var(--fs-s); }
.share-row .top span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-2); }
.share-row .top span:first-child a { color: var(--ink); }
.share-row .top span:last-child { font-variant-numeric: tabular-nums; color: var(--ink-3); flex: none; }
.share-row .bar { height: 4px; background: var(--surface-3); border-radius: 2px; margin-top: 6px; overflow: hidden; }
.share-row .bar i { display: block; height: 100%; background: var(--bar); border-radius: 2px; }
.src-share { gap: 18px; padding-top: 4px; }
.src-share .share-row .top span:first-child { color: var(--ink); font-weight: 550; }
.src-share .share-row .top b { color: var(--ink); font-weight: 600; }
.src-share .bar { height: 8px; border-radius: 4px; }
.src-share .bar i { border-radius: 4px; }
.share-row .bar i.src-bar-etender { background: var(--s1); }
.share-row .bar i.src-bar-eshop { background: var(--s7); }
.share-row .bar i.src-bar-xt { background: var(--s3); }
.mini-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-bottom: 16px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.mini-stats div { background: var(--surface); padding: 12px 14px; }
.mini-stats b { display: block; font-size: var(--fs-xl); font-weight: 650; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.mini-stats span { font-size: var(--fs-xs); color: var(--ink-3); }

@media (max-width: 1023px) {
  .lot-band .lb-in { max-width: none; }
  .band.lot-band { padding-bottom: 26px; margin-bottom: 20px; }
  .lot-band h1 { font-size: 26px; }
  .lb-nums > div { padding: 0 18px; }
  .lb-nums b { font-size: 22px; }
  .lot-page { grid-template-columns: minmax(0, 1fr); grid-template-areas: "side" "body"; gap: 0; }
  .lot-page > .side-col { position: static; margin: 0 0 16px; }
}
@media (max-width: 760px) {
  .lot-band h1 { font-size: 23px; }
  .lb-nums { display: grid; grid-template-columns: 1fr 1fr; }
  .lb-nums > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .v-top { grid-template-columns: 56px minmax(0, 1fr); gap: 14px; padding: 18px; align-items: start; }
  .v-num { width: 56px; height: 56px; font-size: 24px; border-radius: 12px; }
  .v-cols { grid-template-columns: 1fr; }
  .v-cols > div { padding: 18px; }
  .v-cols > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .v-note { padding: 12px 18px; }
  .facts { grid-template-columns: 1fr 1fr; }
  .fact { padding: 14px 18px; }
  .fact:nth-child(3n) { border-right: 1px solid var(--line); }
  .fact:nth-child(2n) { border-right: 0; }
  .facts.last-row-3 .fact:nth-last-child(-n+3), .facts.last-row-1 .fact:nth-last-child(1) { border-bottom: 1px solid var(--line); }
  .facts.m-last-2 .fact:nth-last-child(-n+2), .facts.m-last-1 .fact:nth-last-child(1) { border-bottom: 0; }
  .card-pad { padding: 18px; }
  .price-card { padding: 20px 18px; }
  .lp-2 { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------------ аналитика */
.stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); margin-bottom: 16px; overflow: hidden; }
.stats > div { padding: 18px 20px; border-right: 1px solid var(--line); min-width: 0; }
.stats > div:last-child { border-right: 0; }
.stats .k { font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; line-height: 1.35; display: flex; align-items: center; gap: 7px; }
.stats .k i { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.stats .v { font: 650 26px/1.15 var(--font-display); letter-spacing: -.03em; margin-top: 8px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.stats .v small { font-size: var(--fs-s); font-weight: 500; color: var(--ink-3); letter-spacing: 0; margin-left: 3px; }
.stats .h { font-size: var(--fs-xs); color: var(--ink-3); margin-top: 3px; }
.stats.s3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.grid2 .wide { grid-column: 1 / -1; }
.chart { width: 100%; height: 320px; }
.chart.tall { height: 420px; }
.chart.short { height: 240px; }
.chart-note { font-size: var(--fs-xs); color: var(--ink-3); margin-top: 10px; line-height: 1.55; }
.legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: var(--fs-xs); color: var(--ink-2); margin-top: 10px; }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }
.rank { list-style: none; margin: 0; padding: 0; counter-reset: r; }
.rank li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 4px 10px; padding: 11px 0; border-bottom: 1px solid var(--line); align-items: center; counter-increment: r; }
.rank li:first-child { padding-top: 0; }
.rank li:last-child { border-bottom: 0; padding-bottom: 0; }
.rank li::before { content: counter(r); font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; font-variant-numeric: tabular-nums; }
.rank a, .rank .nm { font-size: var(--fs-s); font-weight: 550; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rank .vv { font-size: var(--fs-s); font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.rank .bar { grid-column: 2 / -1; height: 3px; background: var(--surface-3); border-radius: 2px; overflow: hidden; }
.rank .bar i { display: block; height: 100%; background: var(--bar); border-radius: 2px; }
.rank .meta { grid-column: 2 / -1; font-size: var(--fs-xs); color: var(--ink-3); }
.sk-chart { height: 280px; border-radius: 10px; }
@media (max-width: 1180px) {
  .stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stats > div:nth-child(3n) { border-right: 0; }
  .stats > div:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .stats.s3 > div:nth-child(-n+3) { border-bottom: 0; }
}
@media (max-width: 760px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats > div { padding: 14px 16px; border-bottom: 1px solid var(--line); }
  .stats > div:nth-child(3n) { border-right: 1px solid var(--line); }
  .stats > div:nth-child(2n) { border-right: 0; }
  .stats > div:nth-last-child(-n+2) { border-bottom: 0; }
  .stats .v { font-size: 22px; }
  .stats.s3 { grid-template-columns: 1fr; }
  .stats.s3 > div { border-right: 0 !important; border-bottom: 1px solid var(--line) !important; }
  .stats.s3 > div:last-child { border-bottom: 0 !important; }
  .grid2 { grid-template-columns: 1fr; }
  .chart { height: 300px; }
  .chart.tall { height: 400px; }
}

/* ------------------------------------------------------------------ компании */
.ctools { display: grid; grid-template-columns: minmax(0, 1fr) 220px 200px; gap: 8px; margin-bottom: 12px; }
.comp-list { display: flex; flex-direction: column; }
.comp { display: grid; grid-template-columns: 32px minmax(0, 1fr) 180px 180px; gap: 20px; align-items: center; padding: 16px 22px;
  border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none !important; transition: background .12s; }
.comp:hover { background: color-mix(in srgb, var(--surface-2) 70%, var(--surface)); }
.comp:last-child { border-bottom: 0; }
.comp .rk { font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; font-variant-numeric: tabular-nums; }
.comp .nm { font-weight: 600; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.comp .mt { font-size: var(--fs-xs); color: var(--ink-3); margin-top: 4px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.comp .st { text-align: right; font-size: var(--fs-s); font-variant-numeric: tabular-nums; }
.comp .st b { display: block; font-weight: 600; }
.comp .st span { font-size: var(--fs-xs); color: var(--ink-3); }
.role { font-size: var(--fs-2xs); font-weight: 600; padding: 2px 7px; border-radius: 5px; }
.role.s { background: var(--good-soft); color: var(--good); }
.role.c { background: var(--link-soft); color: var(--link); }
.co-head { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 24px; }
.co-head .avatar { width: 52px; height: 52px; border-radius: 12px; font-size: var(--fs-l); }
.co-head h1 { font-size: var(--fs-2xl); line-height: 1.25; }
.deals { display: flex; flex-direction: column; }
.deal { display: grid; grid-template-columns: 96px minmax(0, 1fr) 150px; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-s); }
.deal:first-child { padding-top: 0; }
.deal:last-child { border-bottom: 0; }
.deal .dt { color: var(--ink-3); font-variant-numeric: tabular-nums; }
.deal .tt { color: var(--ink); font-weight: 500; line-height: 1.45; }
.deal .pp { color: var(--ink-3); font-size: var(--fs-xs); margin-top: 2px; }
.deal .sm { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.sec-h { display: flex; align-items: baseline; gap: 12px; margin: 16px 0 12px; }
.sec-h h2 { font-size: var(--fs-l); }
@media (max-width: 900px) {
  .ctools { grid-template-columns: 1fr 1fr; }
  .ctools .field { grid-column: 1 / -1; }
  .comp { grid-template-columns: 24px minmax(0, 1fr); gap: 4px 12px; padding: 14px 16px; }
  .comp .st { grid-column: 2; text-align: left; display: flex; gap: 6px; align-items: baseline; }
  .comp .st b { display: inline; }
  .co-head .avatar { width: 44px; height: 44px; }
  .co-head h1 { font-size: var(--fs-xl); }
  .deal { grid-template-columns: minmax(0, 1fr) auto; }
  .deal .dt { grid-column: 1 / -1; font-size: var(--fs-xs); }
}

/* ------------------------------------------------------------------ бот */
.bot-hero { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: center; padding: 12px 0 40px; }
.bot-hero h1 { font-size: 44px; letter-spacing: -.035em; line-height: 1.08; }
.bot-hero .lead { color: var(--ink-2); font-size: var(--fs-l); margin-top: 16px; max-width: 34rem; }
.phone { border-radius: 28px; background: var(--surface-2); border: 1px solid var(--line); padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.msg { background: var(--surface); border-radius: 14px 14px 14px 4px; padding: 11px 13px; font-size: var(--fs-s); line-height: 1.5; border: 1px solid var(--line); }
.msg b { display: block; margin-bottom: 4px; }
.msg .chip { margin-top: 8px; }
.msg.me { align-self: flex-end; background: var(--brand); color: var(--on-primary); border-color: var(--brand); border-radius: 14px 14px 4px 14px; }
.steps { counter-reset: s; list-style: none; padding: 0; margin: 28px 0 0; display: flex; flex-direction: column; gap: 14px; }
.steps li { counter-increment: s; display: grid; grid-template-columns: 28px 1fr; gap: 12px; color: var(--ink-2); align-items: baseline; }
.steps li::before { content: counter(s); width: 28px; height: 28px; border-radius: 8px; background: var(--brand-soft); color: var(--brand-ink); display: grid; place-items: center; font-weight: 600; font-size: var(--fs-s); }
.cmds code { font: 600 var(--fs-s)/1 ui-monospace, "SF Mono", Menlo, monospace; color: var(--ink); }
@media (max-width: 860px) {
  .bot-hero { grid-template-columns: 1fr; gap: 28px; padding: 0 0 28px; }
  .bot-hero h1 { font-size: 32px; }
  .bot-hero .lead { font-size: var(--fs-m); }
}

/* ------------------------------------------------------------------ аккаунт: вход, замки Pro, тарифы, кабинет */
.hdr-me { display: inline-flex; }
.hdr-login .ic { width: 15px; height: 15px; }
.app.dark-top .hdr-login { background: #f2b52a; color: #1f1600; }
.app.dark-top .hdr-login:hover { background: #ffc443; }
.me-chip { display: inline-flex; align-items: center; gap: 6px; text-decoration: none !important; }
.me-av { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-weight: 650; font-size: var(--fs-xs);
  background: var(--brand); color: #fff; letter-spacing: .02em; }
.me-av.l { width: 56px; height: 56px; font-size: var(--fs-l); flex: none; box-shadow: 0 0 0 3px rgba(255, 255, 255, .18); }
.app.dark-top .me-av { background: #fff; color: #0b4450; }
.pro-tag { font-size: var(--fs-2xs); font-weight: 700; padding: 2px 7px; border-radius: 6px; background: #f2b52a; color: #1f1600; letter-spacing: .02em; }
@media (max-width: 1023px) { .hdr-login span { display: none; } .hdr-login { padding: 0 10px; } }

.modal-bg { position: fixed; inset: 0; z-index: 90; background: rgba(6, 20, 24, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.modal { position: fixed; z-index: 91; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(420px, calc(100vw - 32px)); max-height: calc(100vh - 32px);
  overflow: auto; background: var(--surface); border-radius: 22px; padding: 30px 28px 22px; box-shadow: var(--shadow-pop); text-align: center; }
.modal-x { position: absolute; top: 14px; right: 14px; }
.lg-mark { width: 56px; height: 56px; border-radius: 16px; margin: 0 auto 16px; display: grid; place-items: center; background: #229ed9; color: #fff; }
.lg-mark .ic { width: 26px; height: 26px; }
.modal h2 { font-size: var(--fs-xl); }
.lg-p { color: var(--ink-2); margin: 8px 0 20px; font-size: var(--fs-s); line-height: 1.55; }
.lg-open { width: 100%; background: #229ed9; }
.lg-open:hover { background: #1b8bc2; }
.lg-qr { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.lg-qr #lg-qr { width: 168px; height: 168px; margin: 0 auto; background: #fff; border-radius: 12px; padding: 6px; }
.lg-qr #lg-qr svg { width: 100%; height: 100%; display: block; }
.lg-qr p { font-size: var(--fs-xs); color: var(--ink-3); margin-top: 8px; }
.lg-wait { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 16px; font-size: var(--fs-s); color: var(--ink-2); }
.spin { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--line-2); border-top-color: var(--brand); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.lg-note { font-size: var(--fs-2xs); color: var(--ink-3); margin-top: 16px; line-height: 1.5; }

.lock { position: relative; border-radius: 12px; overflow: hidden; min-height: 150px; margin-top: 4px; }
.lock-ghost { display: flex; flex-direction: column; gap: 10px; padding: 14px 4px; filter: blur(3px); opacity: .55; }
.lock-ghost i { display: block; height: 12px; border-radius: 6px; background: var(--surface-3); }
.lock-ghost i:nth-child(1) { width: 86%; } .lock-ghost i:nth-child(2) { width: 64%; } .lock-ghost i:nth-child(3) { width: 74%; }
.lock-c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 6px; padding: 12px;
  background: color-mix(in srgb, var(--surface) 72%, transparent); }
.lock-i { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: #f2b52a; color: #1f1600; }
.lock-c b { font-size: var(--fs-s); }
.lock-c p { font-size: var(--fs-xs); color: var(--ink-2); max-width: 26rem; line-height: 1.45; }
.lock-c .btn { margin-top: 6px; }

.plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 920px; margin: 8px auto 0; }
.plan { position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 30px; }
.plan.pro { border: 2px solid var(--brand); box-shadow: 0 30px 60px -30px rgba(11, 114, 133, .45); }
.plan h2 { font-size: var(--fs-xl); }
.plan .badge { position: absolute; top: -13px; left: 28px; background: #f2b52a; color: #1f1600; font-size: var(--fs-xs); font-weight: 700; padding: 5px 12px; border-radius: 999px; }
.pz { display: flex; align-items: baseline; gap: 8px; margin-top: 14px; }
.pz b { font: 700 44px/1 var(--font-display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.pz span { color: var(--ink-3); font-weight: 500; }
.pd { color: var(--ink-2); margin-top: 10px; font-size: var(--fs-s); }
.plan ul { list-style: none; padding: 0; margin: 22px 0 26px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.plan li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; font-size: var(--fs-s); line-height: 1.45; }
.plan li .ic { color: var(--good); margin-top: 1px; }
.plan.pro li .ic { color: var(--brand); }
.plan .btn { width: 100%; }
.year { margin-top: 12px; display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border-radius: 12px;
  border: 1px dashed var(--line-2); background: var(--surface-2); font-size: var(--fs-s); color: var(--ink-2); text-align: left; }
.year:hover { border-color: var(--brand); }
.year b { color: var(--ink); }
.year em { font-style: normal; font-weight: 650; font-size: var(--fs-xs); color: var(--good); background: var(--good-soft); padding: 3px 8px; border-radius: 6px; white-space: nowrap; }
.pay-note { display: flex; gap: 8px; justify-content: center; align-items: flex-start; max-width: 720px; margin: 22px auto 0; font-size: var(--fs-s); color: var(--ink-3); text-align: left; }
.pay-note .ic { margin-top: 2px; }
.faq { max-width: 720px; margin: 48px auto 0; }
.faq h2 { font-size: var(--fs-xl); margin-bottom: 14px; }
.faq details { border-top: 1px solid var(--line); padding: 14px 2px; }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; font-weight: 600; list-style-position: outside; }
.faq details p { color: var(--ink-2); margin-top: 8px; line-height: 1.6; }

.acc-h { display: flex; align-items: center; gap: 18px; }
.acc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.acc-plan.is-pro { border-color: var(--brand); }
.ap-n { font: 650 26px/1.2 var(--font-display); letter-spacing: -.02em; margin-top: 6px; }
.acc-grid .sub { margin-top: 6px; font-size: var(--fs-s); }
.acc-grid .ctas { flex-direction: row; flex-wrap: wrap; margin-top: 18px; }
.acc-grid .ctas .btn { width: auto; }
.acc-out { margin-top: 28px; }
.paid-msg { display: flex; gap: 8px; align-items: center; padding: 14px 16px; border-radius: 12px; background: var(--good-soft); color: var(--good); font-weight: 550; margin-bottom: 16px; }
@media (max-width: 760px) {
  .plans, .acc-grid { grid-template-columns: 1fr; }
  .plan { padding: 24px 20px; }
  .pz b { font-size: 36px; }
}

/* ------------------------------------------------------------------ оферта и политика */
.doc { max-width: 760px; margin: 0 auto; }
.doc-h { padding-bottom: 24px; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.doc-h .eyebrow { margin-bottom: 10px; }
.doc-h h1 { font-size: var(--fs-3xl); letter-spacing: -.03em; line-height: 1.12; }
.doc-meta { color: var(--ink-3); font-size: var(--fs-s); margin-top: 12px; }
.doc-toc { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); padding: 18px 22px; margin-bottom: 32px; }
.doc-toc ol { margin: 0; padding-left: 20px; columns: 2; column-gap: 32px; font-size: var(--fs-s); }
.doc-toc li { margin: 0 0 6px; break-inside: avoid; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.doc-toc a { color: var(--ink-2); }
.doc section { margin-top: 32px; }
.doc h2 { font-size: var(--fs-xl); margin-bottom: 12px; }
.doc h3 { font-size: var(--fs-m); margin: 18px 0 8px; }
.doc p, .doc li, .doc dd { color: var(--ink-2); line-height: 1.7; }
.doc p + p { margin-top: 10px; }
.doc ul { margin: 10px 0; padding-left: 20px; }
.doc li { margin: 4px 0; }
.doc dl { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 8px 20px; margin: 12px 0 0; font-size: var(--fs-s); }
.doc dt { color: var(--ink-3); }
.doc dd { margin: 0; color: var(--ink); }
@media (max-width: 640px) {
  .doc-h h1 { font-size: var(--fs-2xl); }
  .doc-toc ol { columns: 1; }
  .doc dl { grid-template-columns: 1fr; gap: 2px; }
  .doc dd { margin-bottom: 10px; }
}
