/*
 * RU: Стили нового кабинета бизнеса /biz/app/ (БИ0.5, docs/BIZ-TOOLS-PLAN-2026-09-26.md). Перенесены из рабочего макета
 *     mockups/biz-tools-2026-09-26 (компоненты ui.css плана улучшений, biz.css, extra-a.css, extra-b.css) разовым
 *     переносом: токены макета заменены на токены сайта из kartivi.css (шкала шрифтов сдвинута на единицу, золото —
 *     --k-viz-gold, цвета рядов графиков — --k-viz-cat-1…8, тепловая карта — --k-viz-seq-1…6), литералов цвета нет
 *     (храповик check:theme), каждый селектор — внутри body.bt-page: имена классов макета (card, btn, tabs…) общие, и
 *     вне страницы кабинета они не должны ничего перекрашивать.
 *     Имена классов оставлены макетными намеренно: экраны переносятся из макета почти без правок разметки.
 * EN: Styles of the new business cabinet /biz/app/ (БИ0.5). Ported from the working mockup mockups/biz-tools-2026-09-26
 *     (components of the improvement plan's ui.css, biz.css, extra-a.css, extra-b.css) in a one-off port: mockup tokens are
 *     replaced by site tokens from kartivi.css (the font scale shifted by one, gold — --k-viz-gold, chart series —
 *     --k-viz-cat-1…8, the heatmap — --k-viz-seq-1…6), no colour literals (the check:theme ratchet), every selector sits
 *     inside body.bt-page: the mockup class names (card, btn, tabs…) are generic and must repaint nothing outside the
 *     cabinet page. The mockup class names are kept on purpose: screens port from the mockup with almost no markup edits.
 */

/* RU: Локальные токены кабинета — смеси токенов сайта: затемнение под окнами, линии сетки графиков, «прочее» в кольцах,
       моноширинный шрифт кода.
   EN: Cabinet-local tokens — mixes of site tokens: the dialog scrim, chart grid lines, "other" in donuts, the code font. */
body.bt-page {
  --bt-scrim: color-mix(in oklab, var(--k-text) 45%, transparent);
  --bt-grid: color-mix(in oklab, var(--k-border) 70%, var(--k-surface));
  --bt-ch-0: color-mix(in oklab, var(--k-text-subtle) 28%, var(--k-surface-2));
  --xb-mono: var(--k-font-mono);
  margin: 0;
}

/* RU: Превью виджетов в тёмных темах сайта: пара «светлый/тёмный край» меняется местами, чтобы «светлый» виджет
       оставался светлым при любой теме кабинета (как было в макете на data-tone).
   EN: Widget previews in the site's dark themes: the "light/dark end" pair swaps so a "light" widget stays light under
       any cabinet theme (as it was in the mockup on data-tone). */
:root[data-theme="dark"] body.bt-page .xb-w, :root[data-theme="dim"] body.bt-page .xb-w { --w-light: var(--k-text); --w-dark: var(--k-surface); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) body.bt-page .xb-w { --w-light: var(--k-text); --w-dark: var(--k-surface); }
}

/* RU: Раскладка кабинета: шапка сайта сверху, меню слева, экран справа. EN: The cabinet layout: the site header on top, the menu on the left, the screen on the right. */
body.bt-page .bz { display: grid; grid-template-columns: 248px minmax(0, 1fr); grid-template-areas: "top top" "nav main"; min-height: calc(100vh - 56px); }
body.bt-page .bt-empty { max-width: 640px; margin: var(--k-s-8) auto; display: grid; gap: var(--k-s-3); }
body.bt-page .bt-empty h1 { margin: 0; font: 700 var(--k-fs-7)/1.15 var(--k-font-brand); }

/* RU: Перенесено из mockups/improvement-2026-09-25/assets/ui.css. EN: Ported from mockups/improvement-2026-09-25/assets/ui.css. */
body.bt-page *, body.bt-page *::before, body.bt-page *::after {box-sizing: border-box;}
body.bt-page {margin: 0;
  background: var(--k-bg);
  color: var(--k-text);
  font-family: var(--k-font-ui);
  font-size: var(--k-fs-3);
  line-height: var(--k-lh-base);
  font-feature-settings: "tnum" 0;}
body.bt-page a {color: var(--k-brand-ink);}
body.bt-page :focus-visible {outline: 2px solid var(--k-brand); outline-offset: 2px; border-radius: var(--k-r-1);}
body.bt-page .num {font-variant-numeric: tabular-nums;}
body.bt-page .sr {position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;}
body.bt-page .btn {display: inline-flex; align-items: center; justify-content: center; gap: var(--k-s-2);
  min-height: var(--k-tap-min); padding: 0 var(--k-s-4);
  border: 1px solid var(--k-border); border-radius: var(--k-r-2);
  background: var(--k-surface); color: var(--k-text);
  font: 600 var(--k-fs-3)/1 var(--k-font-ui); cursor: pointer; text-decoration: none;
  transition: background var(--k-dur-fast), border-color var(--k-dur-fast);}
body.bt-page .btn:hover {border-color: var(--k-border-strong);}
body.bt-page .btn.is-primary {background: var(--k-brand); border-color: var(--k-brand); color: var(--k-text-on-accent);}
body.bt-page .btn.is-primary:hover {background: var(--k-brand-hover);}
body.bt-page .btn.is-ghost {background: transparent; border-color: transparent;}
body.bt-page .btn.is-sm {min-height: 34px; padding: 0 var(--k-s-3); font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .btn svg {width: 18px; height: 18px; flex: none;}
body.bt-page .chip {display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 var(--k-s-3);
  border: 1px solid var(--k-border); border-radius: var(--k-r-pill);
  background: var(--k-surface); color: var(--k-text); font: 500 var(--k-fs-2)/1 var(--k-font-ui);
  white-space: nowrap; cursor: pointer;}
body.bt-page .chip.is-on {background: var(--k-brand-soft); border-color: var(--k-brand); color: var(--k-brand-ink); font-weight: 600;}
body.bt-page .chips {display: flex; gap: var(--k-s-2); flex-wrap: wrap;}
body.bt-page .chips.is-scroll {flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;}
body.bt-page .seg {display: inline-flex; padding: 3px; gap: 2px; background: var(--k-surface-2); border-radius: var(--k-r-2);}
body.bt-page .seg button {white-space: nowrap; border: 0; background: transparent; color: var(--k-text-muted); font: 600 var(--k-fs-2)/1 var(--k-font-ui); padding: 9px 12px; border-radius: calc(var(--k-r-2) - 3px); cursor: pointer;}
body.bt-page .seg button.is-on {background: var(--k-surface); color: var(--k-text); box-shadow: var(--k-shadow-1);}
body.bt-page .status {font-weight: 600; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .status.is-open {color: var(--k-ok);}
body.bt-page .status.is-soon {color: var(--k-warn);}
body.bt-page .status.is-closed {color: var(--k-danger);}
body.bt-page .dot-sep::before {content: "·"; margin: 0 6px; color: var(--k-text-subtle);}
body.bt-page .muted {color: var(--k-text-muted);}
body.bt-page .subtle {color: var(--k-text-subtle);}
body.bt-page .eyebrow {font: 700 var(--k-fs-1)/1.2 var(--k-font-ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--k-text-subtle);}
body.bt-page .h-brand {font-family: var(--k-font-brand); font-weight: 700; letter-spacing: -0.01em; line-height: 1.1; margin: 0;}
body.bt-page .card {background: var(--k-surface); border: 1px solid var(--k-border); border-radius: var(--k-r-3);}
body.bt-page .card-pad {padding: var(--k-s-4);}
body.bt-page .actions {display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--k-s-2);}
body.bt-page .act {display: grid; justify-items: center; gap: 6px; padding: 10px 4px; min-height: 64px; border-radius: var(--k-r-2); border: 1px solid var(--k-border); background: var(--k-surface); color: var(--k-text); font: 600 var(--k-fs-1)/1.1 var(--k-font-ui); cursor: pointer;}
body.bt-page .act svg {width: 22px; height: 22px;}
body.bt-page .act.is-primary {background: var(--k-brand); border-color: var(--k-brand); color: var(--k-text-on-accent);}
body.bt-page .tabs {display: flex; gap: 2px; border-bottom: 1px solid var(--k-border); overflow-x: auto; scrollbar-width: none;}
body.bt-page .tabs button {flex: none; border: 0; background: none; padding: 12px 10px; font: 600 var(--k-fs-3)/1 var(--k-font-ui); color: var(--k-text-muted); border-bottom: 2px solid transparent; cursor: pointer;}
body.bt-page .tabs button.is-on {color: var(--k-text); border-bottom-color: var(--k-brand);}
body.bt-page .fact {display: grid; grid-template-columns: 22px 1fr auto; gap: 2px 10px; align-items: start; padding: 10px 0;}
body.bt-page .fact + .fact {border-top: 1px solid var(--k-border);}
body.bt-page .fact svg {width: 20px; height: 20px; color: var(--k-text-muted); margin-top: 1px;}
body.bt-page .fact .v {font-weight: 600;}
body.bt-page .fact .stamp {font-size: var(--k-fs-1); line-height: var(--k-lh-cap); color: var(--k-ok); font-weight: 600; white-space: nowrap;}
body.bt-page .week {display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-top: 6px;}
body.bt-page .week span {text-align: center; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); padding: 5px 0; border-radius: var(--k-r-1); background: var(--k-surface-2); color: var(--k-text-muted);}
body.bt-page .week span.is-today {background: var(--k-brand-soft); color: var(--k-brand-ink); font-weight: 700;}
body.bt-page .photos {display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 84px 84px; gap: 4px; border-radius: var(--k-r-3); overflow: hidden;}
body.bt-page .photos > div {background: var(--k-surface-3); position: relative;}
body.bt-page .photos > div:first-child {grid-row: span 2;}
body.bt-page .ph {background:
  linear-gradient(160deg, color-mix(in oklab, var(--k-brand) 26%, var(--k-surface-3)), var(--k-surface-3) 70%),
  var(--k-surface-3);}
body.bt-page .ph.b {background: linear-gradient(200deg, color-mix(in oklab, var(--k-viz-seq-2) 60%, var(--k-surface-3)), var(--k-surface-3));}
body.bt-page .ph.c {background: linear-gradient(20deg, color-mix(in oklab, var(--k-viz-cat-3) 70%, var(--k-surface-3)), var(--k-surface-3));}
body.bt-page .ph.d {background: linear-gradient(120deg, color-mix(in oklab, var(--k-viz-gold) 30%, var(--k-surface-3)), var(--k-surface-3));}
body.bt-page .toggle {display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; font-weight: 500;}
body.bt-page .toggle + .toggle {border-top: 1px solid var(--k-border);}
body.bt-page .sw {width: 40px; height: 24px; border-radius: 12px; background: var(--k-surface-3); position: relative; flex: none; border: 1px solid var(--k-border);}
body.bt-page .sw::after {content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--k-surface); box-shadow: var(--k-shadow-1);}
body.bt-page .sw.is-on {background: var(--k-brand); border-color: var(--k-brand);}
body.bt-page .sw.is-on::after {left: 18px;}
body.bt-page .legend {display: flex; gap: 12px; flex-wrap: wrap; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); color: var(--k-text-muted);}
body.bt-page .legend i {display: inline-block; width: 18px; height: 5px; border-radius: 3px; vertical-align: middle; margin-right: 5px;}
/* RU: Перенесено из mockups/biz-tools-2026-09-26/assets/biz.css. EN: Ported from mockups/biz-tools-2026-09-26/assets/biz.css. */
body.bt-page {min-height: 100vh;}
body.bt-page .bz {display: grid; min-height: 100vh;
  grid-template-columns: 248px minmax(0, 1fr);
  grid-template-rows: auto auto 1fr;
  grid-template-areas: "top top" "demo demo" "nav main";}
body.bt-page .bz-top {grid-area: top; position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: var(--k-s-3); padding: 10px var(--k-s-4);
  background: var(--k-surface); border-bottom: 1px solid var(--k-border);}
body.bt-page .bz-brand {display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--k-text); font: 700 var(--k-fs-5)/1 var(--k-font-brand);}
body.bt-page .bz-brand small {display: block; font: 600 var(--k-fs-cap)/1.2 var(--k-font-ui); color: var(--k-text-muted); letter-spacing: 0.02em;}
body.bt-page .bz-logo {width: 32px; height: 32px; border-radius: 10px; background: var(--k-brand); color: var(--k-text-on-accent); display: grid; place-items: center; font: 700 var(--k-fs-title-s)/1 var(--k-font-brand);}
body.bt-page .bz-org {display: grid; text-align: left; gap: 2px; min-width: 0; max-width: 380px; margin-left: var(--k-s-4);
  padding: 6px 34px 6px 12px; border: 1px solid var(--k-border); border-radius: var(--k-r-2);
  background: var(--k-surface) no-repeat right 12px center / 12px; color: var(--k-text); cursor: pointer; position: relative;}
body.bt-page .bz-org::after {content: "▾"; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--k-text-subtle);}
body.bt-page .bz-org:hover {border-color: var(--k-border-strong);}
body.bt-page .bz-org-n {font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
body.bt-page .bz-org-a {font-size: var(--k-fs-1); line-height: var(--k-lh-cap); color: var(--k-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
body.bt-page .bz-top .bz-burger {display: none;}
body.bt-page .bz-nav {grid-area: nav; position: sticky; top: 57px; align-self: start; height: calc(100vh - 57px); overflow: auto;
  padding: var(--k-s-3) var(--k-s-2) var(--k-s-6); background: var(--k-surface); border-right: 1px solid var(--k-border);
  display: flex; flex-direction: column; gap: 2px;}
body.bt-page .bz-nav-g {margin: var(--k-s-2) var(--k-s-3) 2px; font: 700 var(--k-fs-cap)/1.2 var(--k-font-ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--k-text-subtle);}
body.bt-page .bz-nav-i {display: flex; align-items: center; gap: 10px; min-height: 36px; padding: 0 var(--k-s-3); border-radius: var(--k-r-2);
  color: var(--k-text); text-decoration: none; font-weight: 500;}
body.bt-page .bz-nav-i .ic {width: 20px; height: 20px; color: var(--k-text-muted); flex: none;}
body.bt-page .bz-nav-i:hover {background: var(--k-surface-2);}
body.bt-page .bz-nav-i.is-on {background: var(--k-brand-soft); color: var(--k-brand-ink); font-weight: 700;}
body.bt-page .bz-nav-i.is-on .ic {color: var(--k-brand);}
body.bt-page .bz-nav-i span {flex: 1;}
body.bt-page .bz-badge {min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--k-danger); color: var(--k-text-on-accent); font: 700 var(--k-fs-cap) / var(--k-lh-cap) var(--k-font-ui); text-align: center;}
body.bt-page .bz-nav-foot {margin-top: auto; padding: var(--k-s-3);}
body.bt-page .bz-plan {display: grid; gap: 4px; padding: var(--k-s-3); border-radius: var(--k-r-3); background: var(--k-surface-2);}
body.bt-page .bz-plan a {font-size: var(--k-fs-2); line-height: var(--k-lh-sm); color: var(--k-brand-ink);}
body.bt-page .bz-main {grid-area: main; min-width: 0; padding: var(--k-s-5) var(--k-s-6) var(--k-s-8); transition: opacity var(--k-dur-fast);}
body.bt-page .bz-main.is-loading {opacity: 0.55;}
body.bt-page .sc {max-width: 1240px; margin: 0 auto;}
body.bt-page .sc-head {display: grid; gap: var(--k-s-3); margin-bottom: var(--k-s-4);}
body.bt-page .sc-title h1 {font-size: var(--k-fs-7); line-height: var(--k-lh-head);}
body.bt-page .sc-title p {margin: 6px 0 0;}
body.bt-page .sc-tabs {margin-top: 2px;}
body.bt-page .sc-body {display: grid; gap: var(--k-s-4); min-width: 0;}
body.bt-page .sc-body > *, body.bt-page .grid-2 > *, body.bt-page .grid-3 > *, body.bt-page .tiles > *, body.bt-page .ed-layout > *, body.bt-page .promo-layout > *, body.bt-page .rv-layout > *, body.bt-page .chat-layout > * {min-width: 0;}
body.bt-page .spark {max-width: 100%;}
body.bt-page .hello h2, body.bt-page .sc-title h1 {overflow-wrap: anywhere;}
body.bt-page .ic {width: 18px; height: 18px; flex: none; vertical-align: -3px;}
body.bt-page .i-xs {width: 15px; height: 15px; vertical-align: -2px;}
body.bt-page .icon-btn {width: 38px; height: 38px; display: inline-grid; place-items: center; border: 1px solid transparent; border-radius: var(--k-r-2); background: transparent; color: var(--k-text-muted); cursor: pointer;}
body.bt-page .icon-btn:hover {background: var(--k-surface-2); color: var(--k-text);}
body.bt-page .link {background: none; border: 0; padding: 0; color: var(--k-brand-ink); font: 600 var(--k-fs-2) / var(--k-lh-sm) var(--k-font-ui); cursor: pointer; text-decoration: underline; text-underline-offset: 3px;}
body.bt-page .row {display: flex; align-items: center; gap: var(--k-s-2); flex-wrap: wrap;}
body.bt-page .row.gap {gap: var(--k-s-3);}
body.bt-page .grow {flex: 1; min-width: 0;}
body.bt-page .grow-r {margin-left: auto;}
body.bt-page .mt {margin-top: var(--k-s-4);}
body.bt-page .mt-s {margin-top: var(--k-s-2);}
body.bt-page .pad {padding: var(--k-s-4);}
body.bt-page .small {font-size: var(--k-fs-1); line-height: var(--k-lh-cap);}
body.bt-page .plain {list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 8px;}
body.bt-page .ok {color: var(--k-ok);}
body.bt-page .bad {color: var(--k-danger);}
body.bt-page .num {text-align: right; font-variant-numeric: tabular-nums;}
body.bt-page .big-n {font: 700 var(--k-fs-8)/1 var(--k-font-ui); margin: 6px 0; letter-spacing: -0.02em;}
body.bt-page .big-n small {font-size: var(--k-fs-4); line-height: var(--k-lh-read); color: var(--k-text-muted); font-weight: 600;}
body.bt-page h2, body.bt-page h3, body.bt-page h4 {margin: 0;}
body.bt-page h3 {font-size: var(--k-fs-5); line-height: var(--k-lh-title-s);}
body.bt-page p {margin: 6px 0;}
body.bt-page .chip.is-ok {color: var(--k-ok); border-color: color-mix(in oklab, var(--k-ok) 40%, var(--k-border)); background: var(--k-ok-soft);}
body.bt-page .chip.is-warn {color: var(--k-warn); border-color: color-mix(in oklab, var(--k-warn) 40%, var(--k-border)); background: var(--k-warn-soft); text-decoration: none;}
body.bt-page .seg.is-xs button {padding: 6px 10px; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap);}
body.bt-page .seg button:disabled {opacity: 0.4; cursor: not-allowed;}
body.bt-page .inp, body.bt-page select.inp, body.bt-page textarea.inp {min-height: 40px; padding: 8px 12px; border: 1px solid var(--k-border); border-radius: var(--k-r-2);
  background: var(--k-surface); color: var(--k-text); font: 500 var(--k-fs-3) / var(--k-lh-base) var(--k-font-ui); width: 100%;}
body.bt-page textarea.inp {min-height: 110px; resize: vertical;}
body.bt-page .inp:focus {outline: 2px solid var(--k-brand); outline-offset: 0; border-color: var(--k-brand);}
body.bt-page label.fld {display: grid; gap: 6px; font-weight: 600; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page label.fld .hint {font-weight: 500; color: var(--k-text-subtle);}
body.bt-page .form {display: grid; gap: var(--k-s-3);}
body.bt-page .form-2 {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--k-s-3);}
body.bt-page .banner {padding: 10px 14px; border-radius: var(--k-r-2); font-size: var(--k-fs-2); line-height: var(--k-lh-sm); margin: 0;}
body.bt-page .banner.info {background: var(--k-brand-soft); color: var(--k-brand-ink);}
body.bt-page .banner.warn {background: var(--k-warn-soft); color: var(--k-warn);}
body.bt-page .banner.bad {background: var(--k-danger-soft); color: var(--k-danger);}
body.bt-page .pill {display: inline-block; padding: 3px 9px; border-radius: var(--k-r-pill); font: 600 var(--k-fs-cap) / var(--k-lh-cap) var(--k-font-ui); background: var(--k-surface-2); color: var(--k-text-muted); white-space: nowrap;}
body.bt-page .pill-discovery {background: color-mix(in oklab, var(--k-viz-cat-1) 16%, var(--k-surface)); color: var(--k-text);}
body.bt-page .pill-direct {background: color-mix(in oklab, var(--k-viz-cat-2) 16%, var(--k-surface)); color: var(--k-text);}
body.bt-page .pill-paid {background: color-mix(in oklab, var(--k-viz-cat-3) 18%, var(--k-surface)); color: var(--k-text);}
body.bt-page .pill.is-ok {background: var(--k-ok-soft); color: var(--k-ok);}
body.bt-page .pill.is-warn {background: var(--k-warn-soft); color: var(--k-warn);}
body.bt-page .pill.is-bad {background: var(--k-danger-soft); color: var(--k-danger);}
body.bt-page .meter {display: inline-block; width: 90px; height: 6px; border-radius: 3px; background: var(--k-surface-3); vertical-align: middle; margin-right: 8px; overflow: hidden;}
body.bt-page .meter i {display: block; height: 100%; background: var(--k-viz-cat-1); border-radius: 3px;}
body.bt-page .stars {color: var(--k-viz-gold); letter-spacing: 1px; font-size: var(--k-fs-sm); line-height: var(--k-lh-sm);}
body.bt-page .stars i {color: var(--k-surface-3); font-style: normal;}
body.bt-page .card-h {display: flex; align-items: center; gap: var(--k-s-2); flex-wrap: wrap; margin-bottom: var(--k-s-3);}
body.bt-page .card-h h3 {margin-right: auto;}
body.bt-page .grid-2 {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--k-s-4);}
body.bt-page .grid-2.is-wide-l {grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);}
body.bt-page .grid-3 {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--k-s-4);}
body.bt-page .tiles {display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--k-s-3);}
body.bt-page .tile {display: grid; gap: 4px; align-content: start; padding: var(--k-s-3) var(--k-s-4); background: var(--k-surface); border: 1px solid var(--k-border); border-radius: var(--k-r-3); min-height: 112px;}
body.bt-page .tile.is-link {cursor: pointer;}
body.bt-page .tile.is-link:hover {border-color: var(--k-border-strong);}
body.bt-page .tile-l {font-size: var(--k-fs-2); line-height: var(--k-lh-sm); color: var(--k-text-muted); font-weight: 600;}
body.bt-page .tile-v {font: 700 var(--k-fs-7)/1.05 var(--k-font-ui); letter-spacing: -0.01em;}
body.bt-page .tile-d {font-size: var(--k-fs-1); line-height: var(--k-lh-cap); font-weight: 600;}
body.bt-page .tile-d.is-good {color: var(--k-ok);}
body.bt-page .tile-d.is-bad {color: var(--k-danger);}
body.bt-page .tile-d.is-flat {color: var(--k-text-subtle);}
body.bt-page .tile-s {margin-top: 2px;}
body.bt-page .hello {display: flex; gap: var(--k-s-5); align-items: center; justify-content: space-between; padding: var(--k-s-5); border-radius: var(--k-r-4); background: linear-gradient(120deg, var(--k-brand-soft), var(--k-surface) 70%); border: 1px solid var(--k-border); flex-wrap: wrap;}
body.bt-page .hello h2 {font-size: var(--k-fs-7); line-height: var(--k-lh-head);}
body.bt-page .hello-r {display: flex; gap: var(--k-s-4); align-items: center;}
body.bt-page .todo {list-style: none; margin: 0; padding: 0; display: grid; gap: 2px;}
body.bt-page .todo li {display: grid; grid-template-columns: 28px 1fr auto; gap: var(--k-s-3); align-items: center; padding: 10px 0; border-top: 1px solid var(--k-border);}
body.bt-page .todo li:first-child {border-top: 0;}
body.bt-page .todo p {margin: 2px 0 0; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .todo-n {width: 26px; height: 26px; border-radius: 50%; background: var(--k-brand-soft); color: var(--k-brand-ink); display: grid; place-items: center; font: 700 var(--k-fs-cap)/1 var(--k-font-ui);}
body.bt-page .mini-rv {padding: 10px 0; border-top: 1px solid var(--k-border);}
body.bt-page .mini-rv:first-of-type {border-top: 0; padding-top: 0;}
body.bt-page .mini-rv p {font-size: var(--k-fs-2); line-height: var(--k-lh-sm); margin: 4px 0 6px;}
body.bt-page .share-mini {display: flex; gap: var(--k-s-3); align-items: center; flex-wrap: wrap;}
body.bt-page .share-mini .ch-legend {flex-direction: column; gap: 4px; margin: 0;}
body.bt-page .share-mini p {font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .promo-strip {display: flex; align-items: center; gap: var(--k-s-4); flex-wrap: wrap;}
body.bt-page .promo-strip > div:first-child {width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--k-brand-soft); color: var(--k-brand);}
body.bt-page .filters {display: flex; flex-wrap: wrap; align-items: center; gap: var(--k-s-3);}
body.bt-page .tbl {width: 100%; border-collapse: collapse; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .tbl th {text-align: left; font-weight: 600; color: var(--k-text-muted); padding: 8px 10px; border-bottom: 1px solid var(--k-border); white-space: nowrap;}
body.bt-page .tbl td {padding: 9px 10px; border-bottom: 1px solid var(--k-border); vertical-align: middle;}
body.bt-page .tbl th.num, body.bt-page .tbl td.num {text-align: right;}
body.bt-page .tbl.is-hover tbody tr:hover {background: var(--k-surface-2);}
body.bt-page .tbl tr.is-self td {background: var(--k-brand-soft); font-weight: 600;}
body.bt-page .tbl-wrap {overflow-x: auto;}
body.bt-page .glossary summary {cursor: pointer; font-weight: 600;}
body.bt-page .glossary dl {display: grid; grid-template-columns: 110px 1fr; gap: 6px 14px; margin: 12px 0 0; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .glossary dt {font-weight: 700;}
body.bt-page .glossary dd {margin: 0; color: var(--k-text-muted);}
body.bt-page .visits {list-style: none; margin: 0; padding: 0;}
body.bt-page .visits li {display: grid; grid-template-columns: 110px 120px minmax(120px, 1fr) minmax(200px, 2fr) 140px; gap: var(--k-s-3); align-items: center; padding: 9px 0; border-top: 1px solid var(--k-border); font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .visits .v-t {color: var(--k-text-muted);}
body.bt-page .visits .v-steps {display: flex; gap: 6px; flex-wrap: wrap;}
body.bt-page .step {display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: var(--k-r-pill); background: var(--k-surface-2); font-size: var(--k-fs-cap); line-height: var(--k-lh-cap);}
body.bt-page .map-box {height: 420px; border-radius: var(--k-r-3); overflow: hidden; border: 1px solid var(--k-border); background: var(--k-surface-2);}
body.bt-page .donut-row {display: grid; justify-items: center; gap: var(--k-s-3);}
body.bt-page .ch {position: relative;}
body.bt-page .ch-svg {width: 100%; height: auto; display: block; overflow: visible;}
body.bt-page .ch-svg:focus-visible {outline: 2px solid var(--k-brand); outline-offset: 4px;}
body.bt-page .ch-grid {stroke: var(--bt-grid); stroke-width: 1;}
body.bt-page .ch-base {stroke: var(--k-border-strong); stroke-width: 1;}
body.bt-page .ch-ax {fill: var(--k-text-subtle); font: 500 11px var(--k-font-ui); font-variant-numeric: tabular-nums;}
body.bt-page .ch-line {fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke;}
body.bt-page .ch-line.is-compare {stroke-dasharray: 5 5; opacity: 0.45;}
body.bt-page .ch-area {stroke: none; opacity: 0.1;}
body.bt-page .ch-dot {stroke: var(--k-surface); stroke-width: 2; vector-effect: non-scaling-stroke;}
body.bt-page .ch-cross {stroke: var(--k-text-subtle); stroke-width: 1; vector-effect: non-scaling-stroke;}
body.bt-page .ch-bar {cursor: pointer;}
body.bt-page .ch-bar:hover, body.bt-page .ch-bar:focus {opacity: 0.8; outline: none;}
body.bt-page .ch-s0 {--c: var(--k-viz-cat-0);}
body.bt-page .ch-s1 {--c: var(--k-viz-cat-1);}
body.bt-page .ch-s2 {--c: var(--k-viz-cat-2);}
body.bt-page .ch-s3 {--c: var(--k-viz-cat-3);}
body.bt-page .ch-s4 {--c: var(--k-viz-cat-4);}
body.bt-page .ch-s5 {--c: var(--k-viz-cat-5);}
body.bt-page .ch-s6 {--c: var(--k-viz-cat-6);}
body.bt-page .ch-s7 {--c: var(--k-viz-cat-7);}
body.bt-page .ch-s8 {--c: var(--k-viz-cat-8);}
body.bt-page .ch-line.ch-s0, body.bt-page .ch-line[class*="ch-s"] {stroke: var(--c);}
body.bt-page .ch-area[class*="ch-s"], body.bt-page .ch-dot[class*="ch-s"], body.bt-page .ch-bar[class*="ch-s"] {fill: var(--c);}
body.bt-page .ch-tip {position: absolute; z-index: 5; min-width: 150px; padding: 8px 10px; border-radius: var(--k-r-2); background: var(--k-surface); border: 1px solid var(--k-border); box-shadow: var(--k-shadow-2); pointer-events: none; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap);}
body.bt-page .ch-tip-t {color: var(--k-text-muted); font-weight: 600; margin-bottom: 4px;}
body.bt-page .ch-tip-r {display: grid; grid-template-columns: 14px auto 1fr; gap: 6px; align-items: center;}
body.bt-page .ch-tip-r b {font-size: var(--k-fs-sm); line-height: var(--k-lh-sm);}
body.bt-page .ch-tip-r span {color: var(--k-text-muted);}
body.bt-page .ch-key {display: inline-block; width: 14px; height: 3px; border-radius: 2px; background: var(--c, var(--k-text-subtle));}
body.bt-page .ch-key.is-bar {width: 10px; height: 10px; border-radius: 3px;}
body.bt-page .ch-legend {display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 8px; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); color: var(--k-text-muted);}
body.bt-page .ch-leg {display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; padding: 2px 0; color: inherit; font: inherit; cursor: default;}
body.bt-page button.ch-leg {cursor: pointer;}
body.bt-page .ch-leg.is-off {opacity: 0.4; text-decoration: line-through;}
body.bt-page .ch-wrap {display: grid; gap: 8px;}
body.bt-page .ch-wrap > .seg {justify-self: end;}
body.bt-page .ch-table {max-height: 320px; overflow: auto;}
body.bt-page .hb {display: grid; gap: 8px;}
body.bt-page .hb-row {display: grid; grid-template-columns: minmax(120px, 190px) 1fr 70px; gap: 10px; align-items: center; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .hb-row.is-self {font-weight: 700;}
body.bt-page .hb-t {height: 12px; border-radius: 0 4px 4px 0; background: var(--k-surface-2); overflow: hidden;}
body.bt-page .hb-f {display: block; height: 100%; border-radius: 0 4px 4px 0; background: var(--c);}
body.bt-page .hb-v {text-align: right; font-variant-numeric: tabular-nums; font-weight: 600;}
body.bt-page .hb-n {grid-column: 1 / -1; color: var(--k-text-subtle); font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); margin-top: -4px;}
body.bt-page .fn {display: grid; gap: 8px;}
body.bt-page .fn-row {display: grid; grid-template-columns: 1fr; gap: 3px; position: relative;}
body.bt-page .fn-bar {height: 30px; border-radius: 0 6px 6px 0;}
body.bt-page .fn-o1 {background: var(--k-viz-seq-6);}
body.bt-page .fn-o2 {background: var(--k-viz-seq-5);}
body.bt-page .fn-o3 {background: var(--k-viz-seq-4);}
body.bt-page .fn-o4 {background: var(--k-viz-seq-3);}
body.bt-page .fn-o5 {background: var(--k-viz-seq-2);}
body.bt-page .fn-txt {display: flex; gap: 8px; align-items: baseline; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .fn-txt b {font-size: var(--k-fs-5); line-height: var(--k-lh-title-s);}
body.bt-page .fn-txt span {color: var(--k-text-muted);}
body.bt-page .fn-conv {position: absolute; right: 0; top: 36px; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); color: var(--k-text-subtle);}
body.bt-page .hm-grid {display: grid; gap: 3px; align-items: center;}
body.bt-page .hm-x {font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); color: var(--k-text-subtle); text-align: left;}
body.bt-page .hm-y {font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); color: var(--k-text-muted); font-weight: 600;}
body.bt-page .hm-c {display: block; height: 26px; border-radius: 3px; background: var(--k-viz-seq-0); position: relative;}
body.bt-page .hm-c.q1 {background: var(--k-viz-seq-1);}
body.bt-page .hm-c.q2 {background: var(--k-viz-seq-2);}
body.bt-page .hm-c.q3 {background: var(--k-viz-seq-3);}
body.bt-page .hm-c.q4 {background: var(--k-viz-seq-4);}
body.bt-page .hm-c.q5 {background: var(--k-viz-seq-5);}
body.bt-page .hm-c.q6 {background: var(--k-viz-seq-6);}
body.bt-page .hm-c.is-open {box-shadow: inset 0 0 0 2px var(--k-viz-gold);}
body.bt-page .hm-legend {display: flex; align-items: center; gap: 5px; margin-top: 10px; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); color: var(--k-text-muted); flex-wrap: wrap;}
body.bt-page .hm-legend .hm-c {width: 22px; height: 12px;}
body.bt-page .hm-gap {width: 14px;}
body.bt-page .dn {display: inline-block;}
body.bt-page .dn-track {fill: none; stroke: var(--k-surface-2); stroke-width: 16;}
body.bt-page .dn-seg {fill: none; stroke: var(--c); stroke-width: 16;}
body.bt-page .dn-c {font: 700 var(--k-fs-title) / var(--k-lh-title) var(--k-font-ui); fill: var(--k-text);}
body.bt-page .dn-s {font: 600 11px var(--k-font-ui); fill: var(--k-text-muted);}
body.bt-page .spark {display: block;}
body.bt-page .spark-l {fill: none; stroke: var(--k-text-subtle); stroke-width: 1.5; opacity: 0.7;}
body.bt-page .spark-d {fill: var(--k-viz-cat-1); stroke: var(--k-surface); stroke-width: 1.5;}
body.bt-page .modal {width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 64px); padding: 0; border: 1px solid var(--k-border); border-radius: var(--k-r-4); background: var(--k-surface); color: var(--k-text); box-shadow: var(--k-shadow-3);}
body.bt-page .modal.is-wide {width: min(980px, calc(100vw - 32px));}
body.bt-page .modal::backdrop {background: var(--bt-scrim);}
body.bt-page .modal-h {display: flex; align-items: center; justify-content: space-between; padding: var(--k-s-4) var(--k-s-5); border-bottom: 1px solid var(--k-border);}
body.bt-page .modal-b {padding: var(--k-s-4) var(--k-s-5) var(--k-s-5); overflow: auto; display: grid; gap: var(--k-s-3);}
body.bt-page .op-res {display: grid; gap: 4px; max-height: 360px; overflow: auto;}
body.bt-page .op-item {display: grid; gap: 2px; text-align: left; padding: 10px 12px; border: 0; border-radius: var(--k-r-2); background: transparent; color: var(--k-text); cursor: pointer; font: inherit;}
body.bt-page .op-item:hover {background: var(--k-brand-soft);}
body.bt-page .op-item span {font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .toasts {position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 100; display: grid; gap: 8px; justify-items: center; pointer-events: none;}
body.bt-page .toast {padding: 10px 16px; border-radius: var(--k-r-2); background: var(--k-text); color: var(--k-bg); font-weight: 600; box-shadow: var(--k-shadow-3); transition: opacity 0.3s, transform 0.3s;}
body.bt-page .toast.is-warn {background: var(--k-warn); color: var(--k-text-on-accent);}
body.bt-page .toast.is-out {opacity: 0; transform: translateY(8px);}
body.bt-page .inp.is-sm {min-height: 32px; padding: 4px 8px; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .inp.is-time {width: 112px; display: inline-block;}
body.bt-page .inp.is-date {width: 170px;}
body.bt-page .inp.is-price {width: 120px; flex: none;}
body.bt-page .inp.is-cat {width: 170px; flex: none;}
body.bt-page label.check, body.bt-page label.radio {display: inline-flex; align-items: center; gap: 8px; font-weight: 500; cursor: pointer;}
body.bt-page label.check input, body.bt-page label.radio input {accent-color: var(--k-brand); width: 16px; height: 16px;}
body.bt-page .range {width: 100%; accent-color: var(--k-brand);}
body.bt-page hr.sep {border: 0; border-top: 1px solid var(--k-border); margin: var(--k-s-3) 0;}
body.bt-page code {font: 500 var(--k-fs-cap) / var(--k-lh-cap) ui-monospace, "SF Mono", Menlo, monospace; background: var(--k-surface-2); padding: 1px 5px; border-radius: 4px; word-break: break-all;}
body.bt-page .rv-layout {display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: var(--k-s-4); align-items: start;}
body.bt-page .rv-list {max-height: 78vh; overflow: auto; padding: 4px;}
body.bt-page .rv-item {display: grid; gap: 4px; width: 100%; text-align: left; padding: 12px; border: 0; border-radius: var(--k-r-2); background: transparent; color: var(--k-text); font: inherit; cursor: pointer; border-bottom: 1px solid var(--k-border);}
body.bt-page .rv-item:hover {background: var(--k-surface-2);}
body.bt-page .rv-item.is-on {background: var(--k-brand-soft);}
body.bt-page .rv-item.is-unread b::before {content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--k-danger); margin-right: 6px; vertical-align: 1px;}
body.bt-page .rv-snip {font-size: var(--k-fs-2); line-height: var(--k-lh-sm); color: var(--k-text-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}
body.bt-page .rv-detail {position: sticky; top: 72px; display: grid; gap: var(--k-s-3);}
body.bt-page .rv-text {font-size: var(--k-fs-4); line-height: var(--k-lh-read); margin: 0;}
body.bt-page .rv-photos {display: flex; gap: 6px;}
body.bt-page .rv-photos .ph {width: 88px; height: 66px; border-radius: var(--k-r-2);}
body.bt-page .reply-box, body.bt-page .reply-form {display: grid; gap: var(--k-s-2);}
body.bt-page .reply-box {padding: var(--k-s-3); border-radius: var(--k-r-2); background: var(--k-surface-2);}
body.bt-page .rcheck {list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .rcheck .warn {color: var(--k-warn);}
body.bt-page .tpl {position: relative;}
body.bt-page .tpl-list {position: absolute; right: 0; top: 24px; z-index: 5; width: 360px; padding: 6px; background: var(--k-surface); border: 1px solid var(--k-border); border-radius: var(--k-r-2); box-shadow: var(--k-shadow-2);}
body.bt-page .posneg {display: inline-flex; width: 140px; height: 10px; border-radius: 5px; overflow: hidden; gap: 2px; vertical-align: middle; margin-right: 8px; background: var(--k-surface);}
body.bt-page .posneg i {display: block; height: 100%;}
body.bt-page .posneg .p {background: var(--k-viz-cat-3);}
body.bt-page .posneg .n {background: var(--k-viz-cat-8);}
body.bt-page .formula {margin: 10px 0; padding: 10px 12px; border-radius: var(--k-r-2); background: var(--k-surface-2); font: 600 var(--k-fs-2) / var(--k-lh-sm) ui-monospace, "SF Mono", Menlo, monospace;}
body.bt-page .crit {list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 6px;}
body.bt-page .crit li {display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: var(--k-r-2); background: var(--k-surface-2); color: var(--k-text-muted);}
body.bt-page .crit li.ok {background: var(--k-ok-soft); color: var(--k-ok);}
body.bt-page .promo-sheet {display: grid; grid-template-columns: 1fr auto; gap: var(--k-s-4); align-items: center; margin-top: var(--k-s-3); padding: var(--k-s-5); border-radius: var(--k-r-3); border: 2px dashed var(--k-border-strong); background: var(--k-surface);}
body.bt-page .promo-sheet.is-tent {transform: perspective(700px) rotateX(10deg);}
body.bt-page .promo-sheet.is-sticker {border-radius: 999px 999px var(--k-r-3) var(--k-r-3);}
body.bt-page .promo-sheet .stars.big {font-size: var(--k-fs-title); line-height: var(--k-lh-title); letter-spacing: 4px;}
body.bt-page .ps-r {padding: 8px; background: var(--k-surface); border-radius: var(--k-r-2); box-shadow: var(--k-shadow-1);}
body.bt-page .ps-r img, body.bt-page .ps-r canvas {display: block;}
body.bt-page .badge-demo {display: inline-flex; align-items: center; gap: 8px; width: 150px; height: 50px; padding: 0 10px; border-radius: 10px; border: 1px solid var(--k-border); background: var(--k-surface); box-shadow: var(--k-shadow-1);}
body.bt-page .bd-logo {width: 22px; height: 22px; border-radius: 6px; background: var(--k-brand); color: var(--k-text-on-accent); display: grid; place-items: center; font: 700 var(--k-fs-cap)/1 var(--k-font-brand);}
body.bt-page .gaps {list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;}
body.bt-page .gaps li {display: grid; grid-template-columns: minmax(180px, 1fr) 130px 120px auto; gap: var(--k-s-3); align-items: center; padding: 8px 0; border-top: 1px solid var(--k-border);}
body.bt-page .near {margin: 0; padding-left: 20px; display: grid; gap: 6px;}
body.bt-page .near li {display: grid; grid-template-columns: 1fr auto auto; gap: 10px;}
body.bt-page .near li.is-self {font-weight: 700; color: var(--k-brand-ink);}
body.bt-page .feed {list-style: none; margin: 0; padding: 0;}
body.bt-page .feed li {display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: start; padding: 10px 0; border-top: 1px solid var(--k-border);}
body.bt-page .feed-ic {width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--k-surface-2); color: var(--k-text-muted);}
body.bt-page .ch-key.dot-gold {background: var(--k-viz-gold);}
body.bt-page .ed-layout {display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--k-s-4); align-items: start;}
body.bt-page .ed-main {display: grid; gap: var(--k-s-4); min-width: 0;}
body.bt-page .ed-side {position: sticky; top: 72px; display: grid; gap: var(--k-s-2);}
body.bt-page .saved {font: 600 var(--k-fs-cap)/1 var(--k-font-ui); color: var(--k-ok); opacity: 0.6; transition: opacity 0.3s;}
body.bt-page .saved.is-flash {opacity: 1;}
body.bt-page .feat-grid {display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px 14px; margin: 6px 0 4px;}
body.bt-page .map-box.is-sm {height: 260px;}
body.bt-page .ent-pin {width: 22px; height: 22px; border-radius: 50%; background: var(--k-viz-gold); border: 3px solid var(--k-surface); box-shadow: 0 0 0 2px var(--k-viz-gold-ink), var(--k-shadow-2); cursor: grab;}
body.bt-page .hours-tbl th {width: 48px; color: var(--k-text);}
body.bt-page .hours-tbl td {border-bottom-color: var(--bt-grid);}
body.bt-page .impact {margin-top: var(--k-s-3); padding: 10px 14px; border-radius: var(--k-r-2); background: var(--k-surface-2);}
body.bt-page .ph-grid {display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--k-s-3);}
body.bt-page .ph-item {margin: 0; border: 1px solid var(--k-border); border-radius: var(--k-r-2); overflow: hidden; background: var(--k-surface);}
body.bt-page .ph-img {position: relative; aspect-ratio: 4 / 3; background: var(--k-surface-3);}
body.bt-page .ph-img img {width: 100%; height: 100%; object-fit: cover; display: block;}
body.bt-page .ph-badge {position: absolute; left: 8px; top: 8px;}
body.bt-page .ph-item figcaption {padding: 8px; display: grid; gap: 6px;}
body.bt-page .ph-item .icon-btn {width: 30px; height: 30px;}
body.bt-page .ph-empty {display: grid; place-items: center; text-align: center; gap: 6px; padding: 16px; border: 2px dashed var(--k-border); border-radius: var(--k-r-2); color: var(--k-text-muted); font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .logo-box {width: 64px; height: 64px; border-radius: 16px; background: var(--k-brand-soft); color: var(--k-brand-ink); display: grid; place-items: center; font: 700 var(--k-fs-head)/1 var(--k-font-brand); flex: none;}
body.bt-page .vis-row {display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;}
body.bt-page .vis .ph {height: 80px; border-radius: var(--k-r-2); margin-bottom: 6px;}
body.bt-page .pr-tbl td {padding: 6px;}
body.bt-page .pr-ph {width: 44px; height: 36px; border-radius: 6px; background: var(--k-surface-2); display: grid; place-items: center; cursor: pointer; overflow: hidden; color: var(--k-text-subtle);}
body.bt-page .pr-ph img {width: 100%; height: 100%; object-fit: cover;}
body.bt-page .sync-grid {display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--k-s-3);}
body.bt-page .sync {display: grid; gap: 6px; padding: var(--k-s-3); border-radius: var(--k-r-2); background: var(--k-surface-2);}
body.bt-page .post-types {display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--k-s-3);}
body.bt-page .post-type {display: grid; gap: 6px; justify-items: start; text-align: left; padding: var(--k-s-3); border: 1px solid var(--k-border); border-radius: var(--k-r-3); background: var(--k-surface); color: var(--k-text); font: inherit; cursor: pointer;}
body.bt-page .post-type:hover {border-color: var(--k-brand); background: var(--k-brand-soft);}
body.bt-page .post-type .ic {width: 24px; height: 24px; color: var(--k-brand);}
body.bt-page .pv-card {border: 1px solid var(--k-border); border-radius: var(--k-r-4); overflow: hidden; background: var(--k-surface); box-shadow: var(--k-shadow-2);}
body.bt-page .pv-cover {position: relative; height: 150px; background: var(--k-surface-3);}
body.bt-page .pv-cover img {width: 100%; height: 100%; object-fit: cover; display: block;}
body.bt-page .pv-story, body.bt-page .pv-count {position: absolute; bottom: 8px; padding: 4px 8px; border-radius: var(--k-r-pill); background: var(--bt-scrim); color: var(--k-text-on-accent); font: 600 var(--k-fs-cap)/1 var(--k-font-ui); display: inline-flex; gap: 4px; align-items: center;}
body.bt-page .pv-story {left: 8px; box-shadow: 0 0 0 2px var(--k-viz-gold);}
body.bt-page .pv-count {right: 8px;}
body.bt-page .pv-body {padding: var(--k-s-3) var(--k-s-4) var(--k-s-4); display: grid; gap: 6px;}
body.bt-page .pv-name {font: 700 var(--k-fs-6)/1.15 var(--k-font-brand);}
body.bt-page .pv-check {color: var(--k-brand); display: inline-flex;}
body.bt-page .pv-ad {margin-left: auto; font: 700 var(--k-fs-cap)/1 var(--k-font-ui); padding: 3px 6px; border-radius: 4px; border: 1px solid var(--k-border-strong); color: var(--k-text-muted);}
body.bt-page .pv-promo {padding: 8px 10px; border-radius: var(--k-r-2); background: var(--k-ok-soft); color: var(--k-ok); font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .pv-acts {display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 4px 0;}
body.bt-page .pv-acts .act {min-height: 58px; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap);}
body.bt-page .pv-acts .act.is-cta {background: var(--k-viz-gold); border-color: var(--k-viz-gold); color: var(--k-viz-gold-ink);}
body.bt-page .pv-addr {display: flex; gap: 6px; align-items: center; font-size: var(--k-fs-2); line-height: var(--k-lh-sm); margin: 0;}
body.bt-page .pv-feat .chip {min-height: 26px; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap);}
body.bt-page .pv-prices, body.bt-page .pv-pinned {padding-top: 8px; border-top: 1px solid var(--k-border); display: grid; gap: 4px; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .pv-card.is-compact .pv-cover {height: 110px;}
body.bt-page .pv-stage {display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: var(--k-s-5); align-items: start;}
body.bt-page .pv-phone {padding: 14px; border-radius: 40px; background: var(--k-surface-2); box-shadow: 0 0 0 8px var(--k-text), var(--k-shadow-3);}
body.bt-page .pv-results {display: grid; gap: var(--k-s-3); max-width: 420px;}
body.bt-page .pv-other {padding: var(--k-s-3); border: 1px solid var(--k-border); border-radius: var(--k-r-3);}
body.bt-page .chat-layout {display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: var(--k-s-4);}
body.bt-page .chat-list {padding: 4px; max-height: 70vh; overflow: auto;}
body.bt-page .chat-item {display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; width: 100%; text-align: left; padding: 12px; border: 0; border-radius: var(--k-r-2); background: transparent; color: var(--k-text); font: inherit; cursor: pointer;}
body.bt-page .chat-item .rv-snip {grid-column: 1 / -1;}
body.bt-page .chat-item:hover {background: var(--k-surface-2);}
body.bt-page .chat-item.is-on {background: var(--k-brand-soft);}
body.bt-page .chat-item.is-unread b::after {content: " •"; color: var(--k-danger);}
body.bt-page .chat-view {display: grid; grid-template-rows: auto 1fr auto auto; min-height: 460px;}
body.bt-page .chat-h {display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: var(--k-s-3) var(--k-s-4); border-bottom: 1px solid var(--k-border);}
body.bt-page .chat-msgs {padding: var(--k-s-4); display: flex; flex-direction: column; gap: 8px; overflow: auto;}
body.bt-page .msg {max-width: 70%; padding: 10px 12px; border-radius: 14px 14px 14px 4px; background: var(--k-surface-2); display: grid; gap: 4px;}
body.bt-page .msg.is-me {align-self: flex-end; border-radius: 14px 14px 4px 14px; background: var(--k-brand); color: var(--k-text-on-accent);}
body.bt-page .msg.is-me .subtle {color: var(--k-text-on-accent); opacity: 0.75;}
body.bt-page .chat-quick {padding: 0 var(--k-s-4);}
body.bt-page .chat-input {padding: var(--k-s-3) var(--k-s-4); border-top: 1px solid var(--k-border);}
body.bt-page .slots {display: grid; gap: 10px; margin-top: var(--k-s-3);}
body.bt-page .slot-day {display: flex; flex-wrap: wrap; gap: 6px; align-items: center;}
body.bt-page .slot-day b {width: 90px; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .slot {min-width: 58px; height: 32px; border-radius: var(--k-r-2); border: 1px solid var(--k-brand); background: var(--k-brand-soft); color: var(--k-brand-ink); font: 600 var(--k-fs-cap)/1 var(--k-font-ui); cursor: pointer;}
body.bt-page .slot.is-busy {border-color: var(--k-border); background: var(--k-surface-2); color: var(--k-text-subtle); text-decoration: line-through;}
body.bt-page .promo-layout {display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--k-s-4); align-items: start;}
body.bt-page .fc-box {position: sticky; top: 72px; display: grid; gap: 6px;}
body.bt-page label.pl-row {display: flex; width: 100%; align-items: flex-start; gap: 10px; padding: 10px 0; border-top: 1px solid var(--k-border);}
body.bt-page .pl-row input {margin-top: 3px;}
body.bt-page .ord {border-style: dashed;}
body.bt-page .rules {margin: 0; padding-left: 20px; display: grid; gap: 8px;}
@media (max-width: 1100px) {
  body.bt-page .grid-3 {grid-template-columns: 1fr 1fr;}
  body.bt-page .ed-layout, body.bt-page .promo-layout, body.bt-page .pv-stage {grid-template-columns: 1fr;}
  body.bt-page .ed-side, body.bt-page .fc-box {position: static;}
  body.bt-page .rv-layout, body.bt-page .chat-layout {grid-template-columns: 1fr;}
  body.bt-page .rv-detail {position: static;}
  body.bt-page .post-types {grid-template-columns: 1fr 1fr;}
  body.bt-page .gaps li {grid-template-columns: 1fr auto;}
  body.bt-page .grid-2.is-wide-l {grid-template-columns: 1fr;}
  body.bt-page .visits li {grid-template-columns: 90px 110px 1fr;}
  body.bt-page .visits li > :nth-child(4), body.bt-page .visits li > :nth-child(5) {grid-column: 2 / -1;}
}
@media (max-width: 900px) {
  body.bt-page .bz {grid-template-columns: 1fr; grid-template-areas: "top" "demo" "main";}
  body.bt-page .bz-top .bz-burger {display: inline-grid;}
  body.bt-page .bz-nav {position: fixed; top: 0; left: 0; bottom: 0; z-index: 40; width: 280px; height: 100vh; transform: translateX(-100%); transition: transform 0.2s; box-shadow: var(--k-shadow-3);}
  body.bt-page .bz.nav-open .bz-nav {transform: none;}
  body.bt-page .bz-org {margin-left: 0; max-width: 46vw;}
  body.bt-page .bz-main {padding: var(--k-s-4) var(--k-s-4) var(--k-s-8);}
  body.bt-page .grid-2, body.bt-page .grid-3 {grid-template-columns: 1fr;}
  body.bt-page .form-2 {grid-template-columns: 1fr;}
}
@media (max-width: 560px) {
  body.bt-page .tiles {grid-template-columns: 1fr 1fr;}
  body.bt-page .tile-v {font-size: var(--k-fs-6); line-height: var(--k-lh-title);}
  body.bt-page .bz-brand > span:last-child {display: none;}
  body.bt-page .hb-row {grid-template-columns: 110px 1fr 56px;}
  body.bt-page .visits li {grid-template-columns: 1fr; gap: 4px;}
  body.bt-page .visits li > * {grid-column: auto !important;}
}
/* RU: Перенесено из mockups/biz-tools-2026-09-26/assets/extra-a.css. EN: Ported from mockups/biz-tools-2026-09-26/assets/extra-a.css. */
body.bt-page .sc-network [hidden], body.bt-page .sc-team [hidden], body.bt-page .sc-claim [hidden], body.bt-page .xa-flow [hidden], body.bt-page .xa-points[hidden] {display: none !important;}
body.bt-page .xa-sw {padding: 0; cursor: pointer;}
body.bt-page .xa-sw:focus-visible {outline: 2px solid var(--k-brand); outline-offset: 2px;}
body.bt-page .xa-nowrap {white-space: nowrap;}
body.bt-page .xa-auto {width: auto; max-width: 100%;}
body.bt-page .xa-warn-t {color: var(--k-warn);}
body.bt-page .xa-fld {display: grid; gap: 6px; align-content: start; min-width: 0;}
body.bt-page .xa-fld-l {font-weight: 600; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xa-col {display: grid; gap: var(--k-s-4); align-content: start; min-width: 0;}
body.bt-page .xa-ic {width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--k-brand-soft); color: var(--k-brand-ink);}
body.bt-page .xa-ic.is-warn {background: var(--k-warn-soft); color: var(--k-warn);}
body.bt-page .xa-ic.is-bad {background: var(--k-danger-soft); color: var(--k-danger);}
body.bt-page .xa-ic.is-lg {width: 52px; height: 52px;}
body.bt-page .xa-ic.is-lg .ic {width: 26px; height: 26px;}
body.bt-page .xa-acts {display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end;}
body.bt-page .xa-code {display: block; margin: 6px 0 8px; padding: 10px 12px; border-radius: var(--k-r-2); background: var(--k-surface-2); color: var(--k-text); font: 500 var(--k-fs-cap) / var(--k-lh-cap) ui-monospace, "SF Mono", Menlo, monospace; white-space: pre-wrap; word-break: break-all;}
body.bt-page .xa-drop {position: relative; display: grid; justify-items: center; gap: 6px; padding: var(--k-s-5) var(--k-s-4); border: 2px dashed var(--k-border-strong); border-radius: var(--k-r-3); background: var(--k-surface-2); text-align: center; cursor: pointer; transition: border-color var(--k-dur-fast), background var(--k-dur-fast);}
body.bt-page .xa-drop:hover, body.bt-page .xa-drop.is-over {border-color: var(--k-brand); background: var(--k-brand-soft);}
body.bt-page .xa-drop:focus-within {outline: 2px solid var(--k-brand); outline-offset: 2px;}
body.bt-page .xa-drop > .ic {width: 28px; height: 28px; color: var(--k-brand);}
body.bt-page .xa-drop.is-sm {padding: var(--k-s-3);}
body.bt-page .xa-steps {list-style: none; counter-reset: xa-step; margin: 0; padding: 0; display: grid;}
body.bt-page .xa-steps li {counter-increment: xa-step; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: start; padding: 8px 0;}
body.bt-page .xa-steps li::before {content: counter(xa-step); width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--k-surface-2); color: var(--k-text-muted); font: 700 var(--k-fs-cap)/1 var(--k-font-ui);}
body.bt-page .xa-steps li.is-done::before {content: "✓"; background: var(--k-ok-soft); color: var(--k-ok);}
body.bt-page .xa-steps li.is-now::before {background: var(--k-brand); color: var(--k-text-on-accent);}
body.bt-page .xa-steps li.is-now b {color: var(--k-brand-ink);}
body.bt-page .xa-steps.is-log li {padding: 5px 0;}
body.bt-page .xa-fg {display: grid; gap: var(--k-s-3); padding: var(--k-s-3); border: 1px solid var(--k-border); border-radius: var(--k-r-2);}
body.bt-page .xa-fg.is-off {background: var(--k-surface-2);}
body.bt-page .xa-fg-h {font-size: var(--k-fs-3); line-height: var(--k-lh-base);}
body.bt-page .xa-fg-b {display: grid; gap: var(--k-s-3); transition: opacity var(--k-dur-fast);}
body.bt-page .xa-fg.is-off .xa-fg-b {opacity: 0.45;}
body.bt-page .xa-pts {display: grid; margin-top: var(--k-s-2);}
body.bt-page .xa-pt {display: grid; gap: 4px; padding: 10px 0; border-top: 1px solid var(--k-border);}
body.bt-page .xa-pt:first-child {border-top: 0;}
body.bt-page .xa-pt p {margin: 0 0 0 24px;}
body.bt-page .xa-diff {list-style: none; margin: 0 0 0 24px; padding: 0; display: grid; gap: 4px; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xa-diff li {display: grid; grid-template-columns: minmax(90px, 130px) minmax(0, 1fr); gap: 8px; align-items: baseline;}
body.bt-page .xa-was {color: var(--k-text-subtle);}
body.bt-page .xa-now {color: var(--k-ok); font-weight: 600;}
body.bt-page .xa-log li {display: flex; gap: 8px; flex-wrap: wrap;}
body.bt-page .xa-feed {list-style: none; margin: 0; padding: 0;}
body.bt-page .xa-item {display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: var(--k-s-3); align-items: start; padding: 12px 0; border-top: 1px solid var(--k-border);}
body.bt-page .xa-item:first-child {border-top: 0; padding-top: 0;}
body.bt-page .xa-item p {margin: 4px 0; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xa-item.is-done > :not(.xa-acts) {opacity: 0.6;}
body.bt-page .xa-thumbs {display: flex; gap: 6px; margin: 6px 0;}
body.bt-page .xa-thumbs span {width: 44px; height: 44px; border-radius: var(--k-r-1); display: grid; place-items: center; background: var(--k-surface-3); color: var(--k-text-subtle);}
body.bt-page .xa-quote {margin: 0; padding: 8px 12px; border-left: 3px solid var(--k-border-strong); border-radius: 0 var(--k-r-2) var(--k-r-2) 0; background: var(--k-surface-2); font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xa-imp {display: grid; gap: var(--k-s-2); margin-top: var(--k-s-3);}
body.bt-page .xa-matrix th, body.bt-page .xa-matrix td {text-align: center;}
body.bt-page .xa-matrix th:first-child, body.bt-page .xa-matrix td:first-child {text-align: left; white-space: nowrap;}
body.bt-page .xa-lvl {display: inline-block; min-width: 76px; padding: 4px 10px; border: 1px solid transparent; border-radius: var(--k-r-pill); font: 600 var(--k-fs-cap) / var(--k-lh-cap) var(--k-font-ui); text-align: center;}
body.bt-page .xa-lvl.is-0 {background: var(--k-surface-2); color: var(--k-text-subtle);}
body.bt-page .xa-lvl.is-1 {background: var(--k-brand-soft); color: var(--k-brand-ink);}
body.bt-page .xa-lvl.is-2 {background: var(--k-ok-soft); color: var(--k-ok);}
body.bt-page button.xa-lvl {cursor: pointer; border-color: var(--k-border-strong); border-style: dashed;}
body.bt-page button.xa-lvl:hover {border-color: var(--k-brand);}
body.bt-page .xa-points {display: grid; gap: 6px; max-height: 220px; overflow: auto; padding: 4px 0 4px 26px;}
body.bt-page .xa-fs {border: 0; margin: 0; padding: 0; display: grid; gap: 6px; min-width: 0;}
body.bt-page .xa-fs legend {padding: 0; margin-bottom: 4px; font-weight: 600; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xa-off td {color: var(--k-text-subtle);}
body.bt-page .xa-inv {display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--k-border);}
body.bt-page .xa-inv:first-child {border-top: 0;}
body.bt-page .xa-hero {display: flex; align-items: center; gap: var(--k-s-4); flex-wrap: wrap; border-color: color-mix(in oklab, var(--k-warn) 35%, var(--k-border)); background: linear-gradient(120deg, var(--k-warn-soft), var(--k-surface) 70%);}
body.bt-page .xa-kv {display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 14px; margin: 0; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xa-kv dt {color: var(--k-text-muted); font-weight: 600;}
body.bt-page .xa-kv dd {margin: 0;}
body.bt-page .xa-meter-w {width: 180px;}
body.bt-page .xa-methods {display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--k-s-4);}
body.bt-page .xa-method {display: flex; flex-direction: column; gap: var(--k-s-2);}
body.bt-page .xa-method h3 {font-size: var(--k-fs-4); line-height: var(--k-lh-read);}
body.bt-page .xa-method-go {margin-top: auto; padding-top: var(--k-s-2);}
body.bt-page .xa-flow {display: grid; gap: var(--k-s-3);}
body.bt-page .xa-otp {max-width: 240px; font: 700 var(--k-fs-head)/1 ui-monospace, "SF Mono", Menlo, monospace; letter-spacing: 0.35em; text-align: center;}
body.bt-page .xa-wait {display: flex; align-items: center; gap: 10px; font-weight: 600;}
body.bt-page .xa-wait .ic {color: var(--k-brand); animation: xa-pulse 1s ease-in-out infinite alternate;}
body.bt-page .xa-done {display: grid; justify-items: center; gap: 8px; padding: var(--k-s-3) 0; text-align: center;}
body.bt-page .xa-done > .ic {width: 44px; height: 44px; color: var(--k-ok);}
body.bt-page @keyframes xa-pulse {from { opacity: 0.35; } to { opacity: 1; }}
@media (prefers-reduced-motion: reduce) {
  body.bt-page .xa-wait .ic {animation: none;}
}
body.bt-page .xa-suffix {display: flex; align-items: center; gap: 6px; font-weight: 500;}
body.bt-page .xa-suffix .inp {flex: 1; min-width: 0;}
body.bt-page .xa-suffix span {font-weight: 600; white-space: nowrap;}
body.bt-page label.fld .hint.xa-hint-ok {color: var(--k-ok);}
body.bt-page label.fld .hint.xa-hint-bad {color: var(--k-danger);}
body.bt-page .xa-map-stub {height: 100%; display: grid; place-content: center; justify-items: center; gap: 8px; padding: var(--k-s-4); text-align: center; color: var(--k-text-muted);}
body.bt-page .xa-map-stub > .ic {width: 28px; height: 28px; color: var(--k-viz-gold);}
@media (max-width: 560px) {
  body.bt-page .xa-item {grid-template-columns: 30px minmax(0, 1fr);}
  body.bt-page .xa-acts {grid-column: 2; justify-content: flex-start;}
  body.bt-page .xa-inv {grid-template-columns: minmax(0, 1fr);}
  body.bt-page .xa-inv .xa-acts {grid-column: 1;}
  body.bt-page .xa-diff li {grid-template-columns: minmax(0, 1fr); gap: 0;}
  body.bt-page .xa-hero {align-items: flex-start;}
}
/* RU: Перенесено из mockups/biz-tools-2026-09-26/assets/extra-b.css. EN: Ported from mockups/biz-tools-2026-09-26/assets/extra-b.css. */
body.bt-page .sc-notify code, body.bt-page .sc-api code, body.bt-page .sc-billing code {font-family: var(--xb-mono); font-size: 0.92em;}
body.bt-page .xb-sw {padding: 0; margin: 0; cursor: pointer; font: inherit;}
body.bt-page .xb-sw:disabled {opacity: 0.45; cursor: not-allowed;}
body.bt-page .xb-chk {display: flex; align-items: flex-start; gap: 10px; padding: 6px 0; font-size: var(--k-fs-3); line-height: var(--k-lh-base); font-weight: 500; cursor: pointer;}
body.bt-page .xb-chk input {width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--k-brand);}
body.bt-page .xb-chk input:disabled + span {opacity: 0.5;}
body.bt-page .xb-fs {border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 2px;}
body.bt-page .xb-fs legend {padding: 0; margin-bottom: 4px; font-weight: 600; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xb-fld {display: grid; gap: 6px; margin: 0; font-weight: 600; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xb-fld .seg {justify-self: start;}
body.bt-page .xb-link {display: block; margin: 4px 0; padding: 6px 10px; border-radius: var(--k-r-1); background: var(--k-surface-2); color: var(--k-text); font: 500 var(--k-fs-cap) / var(--k-lh-cap) var(--xb-mono); overflow-wrap: anywhere;}
body.bt-page .xb-pre {margin: 0; padding: 12px 14px; max-height: 380px; overflow: auto; border: 1px solid var(--k-border); border-radius: var(--k-r-2); background: var(--k-surface-2); color: var(--k-text); font: 500 var(--k-fs-cap) / var(--k-lh-cap) var(--xb-mono); white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 2;}
body.bt-page .xb-pre[hidden] {display: none;}
body.bt-page .xb-codebox {display: grid; gap: 8px;}
body.bt-page .xb-key {display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 12px; border: 1px dashed var(--k-border-strong); border-radius: var(--k-r-2); background: var(--k-surface-2);}
body.bt-page .xb-key code {flex: 1; min-width: 0; font: 600 var(--k-fs-sm) / var(--k-lh-sm) var(--xb-mono); overflow-wrap: anywhere; user-select: all;}
body.bt-page .xb-scopes {display: flex; flex-wrap: wrap; gap: 4px;}
body.bt-page .xb-scope {display: inline-block; padding: 2px 7px; border: 1px solid var(--k-border); border-radius: var(--k-r-1); background: var(--k-surface-2); color: var(--k-text); font: 500 var(--k-fs-cap) / var(--k-lh-cap) var(--xb-mono); white-space: nowrap;}
body.bt-page .btn.xb-danger {background: var(--k-danger); border-color: var(--k-danger); color: var(--k-text-on-accent);}
body.bt-page .btn.xb-danger:hover {background: color-mix(in oklab, var(--k-danger) 85%, var(--k-text));}
body.bt-page .xb-msg {min-height: 1.3em; font-size: var(--k-fs-1); line-height: var(--k-lh-cap); font-weight: 500; color: var(--k-text-subtle);}
body.bt-page .xb-msg.is-ok {color: var(--k-ok);}
body.bt-page .xb-msg.is-bad {color: var(--k-danger);}
body.bt-page .sc-billing .inp[aria-invalid="true"] {border-color: var(--k-danger);}
body.bt-page .xb-matrix th.xb-ch {text-align: center;}
body.bt-page .xb-matrix th.xb-ch small {display: block; margin-top: 2px; font: 500 var(--k-fs-cap) / var(--k-lh-cap) var(--k-font-ui); color: var(--k-text-subtle); white-space: normal;}
body.bt-page .xb-matrix th.xb-ch .link {font-size: var(--k-fs-cap); line-height: var(--k-lh-cap);}
body.bt-page .xb-matrix td.xb-c {width: 104px; text-align: center;}
body.bt-page .xb-grp th {padding-top: 14px; font: 700 var(--k-fs-cap)/1.2 var(--k-font-ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--k-text-subtle);}
body.bt-page .xb-ev b {display: block; font-weight: 600;}
body.bt-page .xb-when {display: block; margin: 1px 0 3px; font-size: var(--k-fs-1); line-height: var(--k-lh-cap); color: var(--k-text-subtle);}
body.bt-page .xb-cell {width: 34px; height: 34px; padding: 0; display: inline-grid; place-items: center; border: 1px solid var(--k-border); border-radius: var(--k-r-2); background: var(--k-surface); color: var(--k-surface); cursor: pointer; transition: background var(--k-dur-fast), border-color var(--k-dur-fast);}
body.bt-page .xb-cell:hover {border-color: var(--k-border-strong); color: var(--k-text-subtle);}
body.bt-page .xb-cell.is-on {background: var(--k-brand); border-color: var(--k-brand); color: var(--k-text-on-accent);}
body.bt-page .xb-cell.is-locked {cursor: not-allowed; border-style: dashed; background: var(--k-surface-2); color: var(--k-text-subtle);}
body.bt-page .xb-dest {display: grid;}
body.bt-page .xb-dest-r {display: flex; align-items: flex-start; gap: var(--k-s-3); padding: 12px 0; border-top: 1px solid var(--k-border);}
body.bt-page .xb-dest-r:first-child {border-top: 0; padding-top: 0;}
body.bt-page .xb-dest-r > .ic {width: 22px; height: 22px; margin-top: 2px; color: var(--k-text-muted);}
body.bt-page .xb-dest-r p {margin: 2px 0 6px;}
body.bt-page .xb-dest-r.is-off {opacity: 0.72;}
body.bt-page .xb-people {list-style: none; margin: 8px 0; padding: 0;}
body.bt-page .xb-people label {display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--k-border); cursor: pointer;}
body.bt-page .xb-people li:first-child label {border-top: 0;}
body.bt-page .xb-people input {width: 18px; height: 18px; margin: 0; flex: none; accent-color: var(--k-brand);}
body.bt-page .xb-av {width: 32px; height: 32px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--k-brand-soft); color: var(--k-brand-ink); font: 700 var(--k-fs-cap)/1 var(--k-font-ui);}
body.bt-page .xb-mail {overflow: hidden; border: 1px solid var(--k-border); border-radius: var(--k-r-3); background: var(--k-bg);}
body.bt-page .xb-mail-meta {display: grid; gap: 4px; padding: 12px 16px; border-bottom: 1px solid var(--k-border); background: var(--k-surface-2); font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xb-mail-meta div {display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 8px;}
body.bt-page .xb-mail-meta span {color: var(--k-text-subtle);}
body.bt-page .xb-mail-meta b {font-weight: 600; overflow-wrap: anywhere;}
body.bt-page .xb-mail-b {max-width: 600px; margin: 0 auto; padding: 20px 20px 24px; background: var(--k-surface); color: var(--k-text); font-family: var(--k-font-ui); font-size: var(--k-fs-3); line-height: var(--k-lh-base);}
body.bt-page .xb-mail-b p {margin: 6px 0;}
body.bt-page .xb-mail-over {margin: 0; font: 700 var(--k-fs-cap)/1.2 var(--k-font-ui); letter-spacing: 0.06em; text-transform: uppercase; color: var(--k-text-subtle);}
body.bt-page .xb-mail-t {margin: 4px 0 8px; font-family: var(--k-font-brand); font-weight: 700; font-size: var(--k-fs-7); line-height: 1.1; letter-spacing: -0.01em;}
body.bt-page .xb-mail-kpis {display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin: 14px 0;}
body.bt-page .xb-mail-kpi {display: grid; gap: 2px; align-content: start; padding: 10px 12px; border: 1px solid var(--k-border); border-radius: var(--k-r-2); background: var(--k-surface);}
body.bt-page .xb-mail-kpi span {font-size: var(--k-fs-1); line-height: var(--k-lh-cap); font-weight: 600; color: var(--k-text-muted);}
body.bt-page .xb-mail-kpi b {font: 700 var(--k-fs-6)/1.1 var(--k-font-ui); font-variant-numeric: tabular-nums;}
body.bt-page .xb-mail-kpi i {font-style: normal; font-size: var(--k-fs-1); line-height: var(--k-lh-cap); font-weight: 600;}
body.bt-page .xb-mail-kpi i.is-good {color: var(--k-ok);}
body.bt-page .xb-mail-kpi i.is-bad {color: var(--k-danger);}
body.bt-page .xb-mail-kpi i.is-flat {color: var(--k-text-subtle);}
body.bt-page .xb-mail-h {margin: 18px 0 6px; font-size: var(--k-fs-4); line-height: var(--k-lh-read);}
body.bt-page .xb-mail-list {margin: 0; padding-left: 20px; display: grid; gap: 6px;}
body.bt-page .xb-mail-rv {list-style: none; margin: 0; padding: 0; display: grid; gap: 10px;}
body.bt-page .xb-mail-rv p {margin: 2px 0 0; color: var(--k-text-muted);}
body.bt-page .xb-mail-stars {color: var(--k-viz-gold); letter-spacing: 1px;}
body.bt-page .xb-mail-stars i {font-style: normal; color: var(--k-surface-3);}
body.bt-page .xb-mail-warn {color: var(--k-warn); font-weight: 600;}
body.bt-page .xb-mail-muted {color: var(--k-text-muted); font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xb-mail-cta {display: inline-block; margin-top: 8px; padding: 10px 18px; border-radius: var(--k-r-2); background: var(--k-brand); color: var(--k-text-on-accent); font-weight: 600; text-decoration: none;}
body.bt-page .xb-mail-foot {margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--k-border); font-size: var(--k-fs-1); line-height: var(--k-lh-cap); color: var(--k-text-subtle);}
body.bt-page .xb-mail-page {margin: 0; padding: 24px 12px; background: var(--k-bg); color: var(--k-text); font-family: var(--k-font-ui);}
body.bt-page .xb-steps {list-style: none; counter-reset: xb-step; margin: 0; padding: 0; display: grid; gap: 14px;}
body.bt-page .xb-steps > li {counter-increment: xb-step; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px;}
body.bt-page .xb-steps > li::before {content: counter(xb-step); width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--k-brand-soft); color: var(--k-brand-ink); font: 700 var(--k-fs-cap)/1 var(--k-font-ui);}
body.bt-page .xb-steps p {margin: 4px 0;}
body.bt-page .xb-otp {display: inline-block; padding: 8px 14px; border: 1px dashed var(--k-border-strong); border-radius: var(--k-r-2); background: var(--k-surface-2); font: 700 var(--k-fs-head)/1 var(--xb-mono); letter-spacing: 0.12em; font-variant-numeric: tabular-nums;}
body.bt-page .xb-cmds code {padding: 1px 6px; border-radius: var(--k-r-1); background: var(--k-surface-2); font-weight: 600;}
body.bt-page .xb-tg {display: grid; gap: 8px; max-height: 540px; overflow: auto; padding: 12px; border-radius: var(--k-r-3); background: var(--k-surface-2);}
body.bt-page .xb-tg-msg {display: grid; gap: 4px; max-width: 86%;}
body.bt-page .xb-tg-msg.is-me {justify-self: end;}
body.bt-page .xb-tg-msg.is-bot {justify-self: start;}
body.bt-page .xb-tg-b {padding: 8px 12px; border-radius: 14px; box-shadow: var(--k-shadow-1); font-size: var(--k-fs-2); line-height: var(--k-lh-sm); overflow-wrap: anywhere;}
body.bt-page .xb-tg-msg.is-bot .xb-tg-b {background: var(--k-surface); border-bottom-left-radius: 4px;}
body.bt-page .xb-tg-msg.is-me .xb-tg-b {background: var(--k-brand-soft); color: var(--k-brand-ink); border-bottom-right-radius: 4px;}
body.bt-page .xb-tg-kb {display: flex; flex-wrap: wrap; gap: 4px;}
body.bt-page .xb-tg-kb button {flex: 1 1 auto; min-height: 34px; padding: 6px 10px; border: 0; border-radius: var(--k-r-2); background: color-mix(in oklab, var(--k-brand) 14%, var(--k-surface)); color: var(--k-brand-ink); font: 600 var(--k-fs-2)/1.2 var(--k-font-ui); cursor: pointer;}
body.bt-page .xb-tg-kb button:hover {background: color-mix(in oklab, var(--k-brand) 24%, var(--k-surface));}
body.bt-page .xb-tg-note {display: inline-block; margin-top: 4px; font-size: var(--k-fs-1); line-height: var(--k-lh-cap); color: var(--k-text-muted);}
body.bt-page .xb-wg {display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: var(--k-s-4); align-items: start;}
body.bt-page .xb-wg-ctl {display: grid; gap: 10px; min-width: 0;}
body.bt-page .xb-opts {display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 12px; align-items: center; font-size: var(--k-fs-2); line-height: var(--k-lh-sm); color: var(--k-text-muted);}
body.bt-page .xb-opts .seg {justify-self: start;}
body.bt-page .xb-stage {position: relative; display: grid; place-items: center; min-height: 200px; padding: 40px 16px 20px; border: 1px dashed var(--k-border); border-radius: var(--k-r-3); background: radial-gradient(circle, var(--k-border) 1px, var(--k-surface-2) 1.5px) 0 0 / 16px 16px;}
body.bt-page .xb-stage-l {position: absolute; top: 10px; left: 12px; font: 600 var(--k-fs-cap)/1.2 var(--k-font-ui); letter-spacing: 0.04em; text-transform: uppercase; color: var(--k-text-subtle);}
body.bt-page .xb-w {--w-light: var(--k-surface); --w-dark: var(--k-text);
  --w-bg: var(--w-light); --w-fg: var(--w-dark);
  --w-mute: color-mix(in oklab, var(--w-fg) 60%, var(--w-bg));
  --w-faint: color-mix(in oklab, var(--w-fg) 22%, var(--w-bg));
  --w-line: color-mix(in oklab, var(--w-fg) 14%, var(--w-bg));
  background: var(--w-bg); color: var(--w-fg); font-family: var(--k-font-ui);}
body.bt-page .xb-w.is-dark {--w-bg: var(--w-dark); --w-fg: var(--w-light);}
body.bt-page .xb-badge {display: inline-grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--w-line); border-radius: 10px; box-shadow: var(--k-shadow-1); overflow: hidden;}
body.bt-page .xb-badge.is-m {width: 150px; height: 50px;}
body.bt-page .xb-badge.is-l {width: 200px; height: 66px; padding: 0 16px; gap: 12px;}
body.bt-page .xb-badge-r {display: inline-flex; align-items: center; gap: 3px; font: 700 var(--k-fs-title)/1 var(--k-font-ui); font-variant-numeric: tabular-nums;}
body.bt-page .xb-badge-r i {font-style: normal; font-size: 0.75em; color: var(--k-viz-gold);}
body.bt-page .xb-badge-s {display: grid; gap: 2px; min-width: 0; font-size: var(--k-fs-cap); line-height: 1.15; color: var(--w-mute); white-space: nowrap;}
body.bt-page .xb-badge-s b {font: 700 var(--k-fs-cap)/1 var(--k-font-brand); letter-spacing: -0.01em; color: var(--w-fg);}
body.bt-page .xb-badge.is-l .xb-badge-r {font-size: var(--k-fs-head); line-height: var(--k-lh-head);}
body.bt-page .xb-badge.is-l .xb-badge-s {font-size: var(--k-fs-cap); line-height: var(--k-lh-cap);}
body.bt-page .xb-badge.is-l .xb-badge-s b {font-size: var(--k-fs-base); line-height: var(--k-lh-base);}
body.bt-page .xb-rw {width: 100%; max-width: 380px; overflow: hidden; border: 1px solid var(--w-line); border-radius: 14px; box-shadow: var(--k-shadow-1); font-size: var(--k-fs-sm); line-height: var(--k-lh-sm);}
body.bt-page .xb-rw-h {display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--w-line);}
body.bt-page .xb-rw-h span {color: var(--w-mute); font-weight: 600; white-space: nowrap;}
body.bt-page .xb-star {font-style: normal; color: var(--k-viz-gold);}
body.bt-page .xb-rw-i {margin: 0; padding: 10px 14px; border-bottom: 1px solid var(--w-line);}
body.bt-page .xb-rw-i p {margin: 4px 0 0; line-height: 1.45;}
body.bt-page .xb-rw-a {display: flex; align-items: center; gap: 8px; flex-wrap: wrap;}
body.bt-page .xb-rw-st {color: var(--k-viz-gold); letter-spacing: 1px; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap);}
body.bt-page .xb-rw-st i {font-style: normal; color: var(--w-faint);}
body.bt-page .xb-rw-d {margin-left: auto; font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); color: var(--w-mute);}
body.bt-page .xb-rw .xb-rw-rep {padding-left: 10px; border-left: 2px solid var(--w-line); font-size: var(--k-fs-cap); line-height: var(--k-lh-cap); color: var(--w-mute);}
body.bt-page .xb-rw-f {padding: 10px 14px; font-weight: 600;}
body.bt-page .xb-acts {display: flex; flex-wrap: wrap; gap: 8px; padding: 14px; border: 1px solid var(--w-line); border-radius: 14px;}
body.bt-page .xb-act {display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border: 1.5px solid var(--k-brand); border-radius: 10px; background: var(--k-brand); color: var(--k-text-on-accent); font: 600 var(--k-fs-base)/1 var(--k-font-ui);}
body.bt-page .xb-act.is-outline {background: none; color: var(--w-fg);}
body.bt-page .xb-mats li {display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--k-border);}
body.bt-page .xb-mats li:first-child {border-top: 0;}
body.bt-page .xb-mats li > .ic {width: 22px; height: 22px; color: var(--k-text-muted);}
body.bt-page .xb-dim td {color: var(--k-text-subtle);}
body.bt-page .xb-dim td b {text-decoration: line-through;}
body.bt-page .xb-hooks {gap: 10px;}
body.bt-page .xb-hook {display: grid; gap: 8px; padding: 12px; border: 1px solid var(--k-border); border-radius: var(--k-r-2);}
body.bt-page .xb-hook.is-off {opacity: 0.6;}
body.bt-page .xb-hook .xb-link {margin: 0;}
body.bt-page .xb-add summary {cursor: pointer; font-weight: 600; color: var(--k-brand-ink);}
body.bt-page .xb-trunc {display: inline-block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom;}
body.bt-page .xb-diff {margin: 8px 0 0;}
body.bt-page .xb-diff li {display: flex; align-items: center; gap: 8px; flex-wrap: wrap;}
body.bt-page .xb-methods {display: grid;}
body.bt-page .xb-method {display: grid; gap: 6px; padding: 14px 0; border-top: 1px solid var(--k-border);}
body.bt-page .xb-method:first-child {border-top: 0; padding-top: 4px;}
body.bt-page .xb-method-h {display: flex; align-items: center; gap: 8px; flex-wrap: wrap;}
body.bt-page .xb-path {font: 600 var(--k-fs-sm) / var(--k-lh-sm) var(--xb-mono); overflow-wrap: anywhere;}
body.bt-page .xb-verb {--c: var(--k-viz-cat-1); display: inline-block; min-width: 58px; padding: 3px 8px; border: 1px solid color-mix(in oklab, var(--c) 45%, var(--k-surface)); border-radius: var(--k-r-1); background: color-mix(in oklab, var(--c) 18%, var(--k-surface)); color: var(--k-text); font: 700 var(--k-fs-cap) / var(--k-lh-cap) var(--xb-mono); text-align: center;}
body.bt-page .xb-verb.is-post {--c: var(--k-viz-cat-3);}
body.bt-page .xb-verb.is-patch {--c: var(--k-viz-cat-4);}
body.bt-page .xb-verb.is-put {--c: var(--k-viz-cat-7);}
body.bt-page .xb-plans {display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--k-s-4);}
body.bt-page .xb-plan {display: flex; flex-direction: column; gap: 8px;}
body.bt-page .xb-plan.is-current {border-color: var(--k-brand); box-shadow: 0 0 0 2px var(--k-brand-soft);}
body.bt-page .xb-price {margin: 2px 0; font: 700 var(--k-fs-7)/1.1 var(--k-font-ui); letter-spacing: -0.01em; font-variant-numeric: tabular-nums;}
body.bt-page .xb-price small {font-size: var(--k-fs-2); line-height: var(--k-lh-sm); font-weight: 600; letter-spacing: 0; color: var(--k-text-muted);}
body.bt-page .xb-feats {flex: 1; margin: 4px 0;}
body.bt-page .xb-feats li {display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; align-items: start; font-size: var(--k-fs-2); line-height: var(--k-lh-sm);}
body.bt-page .xb-feats li .ic {margin-top: 2px; color: var(--k-ok);}
body.bt-page .xb-plan-f {margin-top: auto;}
body.bt-page .xb-plan-f .btn {width: 100%;}
body.bt-page .xb-plan-f .btn:disabled {opacity: 0.6; cursor: default;}
body.bt-page .xb-note {margin: 0;}
body.bt-page .xb-cmp td {vertical-align: top;}
body.bt-page .xb-yes, body.bt-page .xb-no {display: inline-flex; align-items: baseline; gap: 6px;}
body.bt-page .xb-yes .ic, body.bt-page .xb-no .ic {flex: none; align-self: center;}
body.bt-page .xb-yes .ic {color: var(--k-ok);}
body.bt-page .xb-no {color: var(--k-text-muted);}
body.bt-page .xb-no .ic {color: var(--k-danger);}
@media (max-width: 1100px) {
  body.bt-page .xb-wg {grid-template-columns: 1fr;}
}
@media (max-width: 560px) {
  body.bt-page .xb-opts {grid-template-columns: 1fr;}
  body.bt-page .xb-matrix td.xb-c {width: 52px;}
  body.bt-page .xb-mail-b {padding: 16px 14px 20px;}
  body.bt-page .xb-mail-meta div {grid-template-columns: 44px minmax(0, 1fr);}
  body.bt-page .xb-trunc {max-width: 140px;}
}

/* RU: Телефон (проверка всех 14 разделов на 375 px, 27.09): широкие таблицы (конкуренты, матрица уведомлений) и полоса
       вкладок прокручиваются внутри себя, а не растягивают страницу; переключатели-сегменты переносятся на вторую строку.
       Таблица становится блоком только на узком экране: на компьютере она остаётся таблицей во всю ширину карточки.
   EN: Phone (all 14 sections checked at 375 px, 09-27): wide tables (competitors, the notification matrix) and the tab strip
       scroll inside themselves rather than stretching the page; segmented switches wrap to a second line. A table becomes a
       block only on a narrow screen: on a desktop it stays a full-width table. */
@media (max-width: 640px) {
  /* RU: relative — скрытые подписи .sr-only (position: absolute) остаются внутри прокрутки, а не растягивают страницу.
     EN: relative — hidden .sr-only labels (position: absolute) stay inside the scroll box instead of stretching the page. */
  body.bt-page table.tbl { display: block; position: relative; max-width: 100%; overflow-x: auto; }
  body.bt-page .sc-tabs { max-width: 100%; overflow-x: auto; flex-wrap: nowrap; }
  body.bt-page .seg { flex-wrap: wrap; max-width: 100%; }
}
