/* Cashflow Pro — компоненты (cf-*).
 * Только токены: var(--cf-*), var(--font-sans), var(--font-mono). Ни одного hex вне tokens.
 * Тема: атрибут data-theme="dark" на <html> (как на cfpro.ru). Корень оформления — класс .cf
 * на <html> или <body>. */

/* ── основа ────────────────────────────────────────────────────────── */
.cf {
  font-family: var(--font-sans); font-size: 15px; line-height: 1.5; font-weight: 400;
  font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1;
  color: var(--cf-ink); background: var(--cf-canvas);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
.cf *, .cf *::before, .cf *::after { box-sizing: border-box; }
:where(.cf) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.cf) a { color: inherit; }
.cf ::selection { background: var(--cf-accent-soft); color: var(--cf-ink); }
:where(.cf) :focus-visible { outline: 2px solid var(--cf-accent); outline-offset: 2px; border-radius: var(--cf-radius-xs); }
.cf-code, .cf-mono { font-family: var(--font-mono); font-size: 12.5px; font-weight: 500; letter-spacing: 0; }
.cf-up, .cf .cf-up { color: var(--cf-up); }
.cf-down, .cf .cf-down { color: var(--cf-down); }
.cf-muted, .cf .cf-muted { color: var(--cf-ink-3); }
.cf-dash { color: var(--cf-ink-3); }
.cf-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cf-scroll { overflow: auto; scrollbar-width: thin; scrollbar-color: var(--cf-line-strong) transparent; }
.cf-scroll::-webkit-scrollbar { width: 10px; height: 10px; }
.cf-scroll::-webkit-scrollbar-thumb { background: var(--cf-line-strong); border-radius: 99px; border: 3px solid var(--cf-surface); }
.cf-scroll::-webkit-scrollbar-track { background: transparent; }
.cf-page { max-width: var(--cf-page-max); margin: 0 auto; padding: 0 var(--cf-space-24); }
.cf-page--content { max-width: var(--cf-content-max); }

/* ── бренд ─────────────────────────────────────────────────────────── */
.cf-logo { display: inline-flex; align-items: center; gap: var(--cf-space-8); color: var(--cf-ink);
  font-size: 22px; font-weight: 700; letter-spacing: -.035em; line-height: 1; text-decoration: none; }
.cf-logo__pro { display: inline-flex; align-items: center; justify-content: center; padding: 4px 8px;
  border-radius: var(--cf-radius-pill); background: var(--cf-lime); color: var(--cf-on-lime);
  font-size: 11px; font-weight: 700; line-height: 1; letter-spacing: .01em; }
.cf-rule { display: block; width: 56px; height: 4px; border-radius: var(--cf-radius-pill); background: var(--cf-lime);
  margin: 14px 0 12px; border: 0; }
.cf-lime-tile { background: var(--cf-lime-tile); color: var(--cf-on-lime-tile); border: 1px solid var(--cf-lime-tile-line);
  border-radius: var(--cf-radius-xl); padding: 22px 24px; }
.cf-lime-tile .cf-keystrip__k, .cf-lime-tile .cf-muted { color: inherit; opacity: .78; }

/* ── заголовок раздела ─────────────────────────────────────────────── */
.cf-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--cf-space-16); flex-wrap: wrap; }
.cf-head__title { margin: 0; font-size: 34px; font-weight: 700; letter-spacing: -.035em; line-height: 1.1; color: var(--cf-ink); }
.cf-head__sub { margin: 0; font-size: 15px; line-height: 1.55; color: var(--cf-ink-3); max-width: 110ch; }
.cf-head__sub a { color: var(--cf-accent); text-decoration: none; }
.cf-head__sub a:hover { text-decoration: underline; text-underline-offset: 3px; }
.cf-status { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--cf-ink-3); white-space: nowrap; }
.cf-status__live { display: inline-flex; align-items: center; gap: 6px; color: var(--cf-up); font-weight: 600; }
.cf-status__live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--cf-up); box-shadow: 0 0 0 3px var(--cf-up-soft); }
.cf-status--stale .cf-status__live { color: var(--cf-amber); }
.cf-status--stale .cf-status__live::before { background: var(--cf-amber); box-shadow: 0 0 0 3px var(--cf-amber-soft); }
.cf-h2 { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -.025em; line-height: 1.2; text-wrap: balance; }
.cf-h3 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.02em; line-height: 1.3; }
.cf-lead { margin: 8px 0 0; font-size: 15px; line-height: 1.55; color: var(--cf-ink-2); max-width: 68ch; }

/* ── крошки ────────────────────────────────────────────────────────── */
.cf-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--cf-ink-3); }
.cf-crumbs a { color: var(--cf-ink-2); text-decoration: none; }
.cf-crumbs a:hover { color: var(--cf-accent); }
.cf-crumbs__sep { color: var(--cf-line-strong); }

/* ── кнопки и ссылки ───────────────────────────────────────────────── */
.cf-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--cf-space-8);
  height: var(--cf-h-button); padding: 0 18px; border: 1px solid transparent; border-radius: var(--cf-radius-pill);
  font-size: 14px; font-weight: 600; letter-spacing: -.005em; line-height: 1; white-space: nowrap; text-decoration: none; cursor: pointer;
  background: var(--cf-surface-2); color: var(--cf-ink);
  transition: transform var(--cf-dur-press) var(--cf-ease), background-color var(--cf-dur) ease, color var(--cf-dur) ease, border-color var(--cf-dur) ease, box-shadow var(--cf-dur) ease; }
.cf-btn:active { transform: scale(.97); }
.cf-btn svg { width: 17px; height: 17px; flex: none; }
.cf-btn:focus-visible { outline: 2px solid var(--cf-accent); outline-offset: 2px; border-radius: var(--cf-radius-pill); }
.cf-btn--primary { background: var(--cf-accent-fill); color: var(--cf-on-accent); }
.cf-btn--primary:hover { background: var(--cf-accent-fill-hover); }
.cf-btn--secondary { background: var(--cf-surface-2); color: var(--cf-ink); box-shadow: inset 0 0 0 1px var(--cf-line-strong); }
.cf-btn--secondary:hover { background: var(--cf-surface-3); }
.cf-btn--outline { background: var(--cf-surface); color: var(--cf-ink-2); border-color: var(--cf-line-strong); }
.cf-btn--outline:hover { background: var(--cf-surface-2); color: var(--cf-ink); }
.cf-btn--soft { background: var(--cf-accent-soft); color: var(--cf-accent); }
.cf-btn--soft:hover { background: var(--cf-accent-fill); color: var(--cf-on-accent); }
.cf-btn--ghost { background: none; color: var(--cf-ink-2); padding: 0 12px; }
.cf-btn--ghost:hover { background: var(--cf-surface-2); color: var(--cf-ink); }
.cf-btn--danger-text:hover { color: var(--cf-down); }
.cf-btn--sm { height: var(--cf-h-sm); padding: 0 12px; font-size: 13px; }
.cf-btn--control { height: var(--cf-h-control); padding: 0 20px; }
.cf-btn--lg { height: var(--cf-h-button-lg); font-size: 15px; }
.cf-btn--block { width: 100%; }
.cf-btn[disabled], .cf-btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.cf-iconbtn { display: inline-grid; place-items: center; flex: none; width: var(--cf-h-button); height: var(--cf-h-button); padding: 0;
  border: 1px solid var(--cf-line-strong); border-radius: 50%; background: transparent; color: var(--cf-ink); cursor: pointer;
  transition: background-color var(--cf-dur) ease, color var(--cf-dur) ease, transform var(--cf-dur-press) var(--cf-ease); }
.cf-iconbtn:hover { background: var(--cf-surface-2); }
.cf-iconbtn:active { transform: scale(.94); }
.cf-iconbtn svg { width: 18px; height: 18px; }
.cf-iconbtn--sm { width: var(--cf-h-pill); height: var(--cf-h-pill); }
.cf-iconbtn--bare { border-color: transparent; color: var(--cf-ink-3); }
.cf-iconbtn--bare:hover { color: var(--cf-ink); background: var(--cf-surface-3); }
.cf-iconbtn:focus-visible { border-radius: 50%; }
.cf-star[aria-pressed="true"] { color: var(--cf-star); }
.cf-star[aria-pressed="true"] svg path { fill: currentColor; }
.cf-link { color: var(--cf-accent); font-weight: 600; text-decoration: none; }
.cf-link:hover { color: var(--cf-accent-hover); text-decoration: underline; text-underline-offset: 3px; }
.cf-link--arrow::after { content: " →"; }

/* ── метки ─────────────────────────────────────────────────────────── */
.cf-tag { display: inline-flex; align-items: center; gap: 5px; min-height: 20px; padding: 2px 8px; border-radius: var(--cf-radius-pill);
  font-size: 11.5px; font-weight: 600; line-height: 1.3; white-space: nowrap; letter-spacing: 0;
  background: var(--cf-surface-2); color: var(--cf-ink-2); border: 0; vertical-align: 1px; }
.cf-tag--accent { background: var(--cf-accent-soft); color: var(--cf-accent); }
.cf-tag--violet { background: var(--cf-violet-soft); color: var(--cf-violet); }
.cf-tag--teal { background: var(--cf-teal-soft); color: var(--cf-teal); }
.cf-tag--amber { background: var(--cf-amber-soft); color: var(--cf-amber); }
.cf-tag--up { background: var(--cf-up-soft); color: var(--cf-up); }
.cf-tag--down { background: var(--cf-down-soft); color: var(--cf-down); }
.cf-tag--outline { background: none; box-shadow: inset 0 0 0 1px var(--cf-line-strong); color: var(--cf-ink-2); }
.cf-tag--new { background: var(--cf-lime); color: var(--cf-on-lime); font-weight: 700; }
.cf-tag--lg { height: var(--cf-h-tag); padding: 0 10px; font-size: 12.5px; background: var(--cf-surface-2);
  box-shadow: inset 0 0 0 1px var(--cf-line); gap: 6px; }
button.cf-tag, a.cf-tag { cursor: pointer; text-decoration: none; transition: background-color var(--cf-dur) ease, color var(--cf-dur) ease, transform var(--cf-dur-press) var(--cf-ease); }
button.cf-tag:hover, a.cf-tag:hover { background: var(--cf-accent-soft); color: var(--cf-accent); }
button.cf-tag:active { transform: scale(.97); }
.cf-tag svg { width: 13px; height: 13px; opacity: .7; }
.cf-tag.is-copied { color: var(--cf-up); }
.cf-tag .cf-code { font-size: 12px; }
.cf-tags { display: flex; flex-wrap: wrap; gap: var(--cf-space-6); align-items: center; }

/* ── дельта ────────────────────────────────────────────────────────── */
.cf-delta { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; color: var(--cf-up); white-space: nowrap; }
.cf-delta--down { color: var(--cf-down); }
.cf-delta--flat { color: var(--cf-ink-3); }
.cf-delta svg { width: 12px; height: 12px; flex: none; }
.cf-delta__abs { font-weight: 500; }
.cf-delta--chip { padding: 3px 9px; border-radius: var(--cf-radius-pill); font-size: 12.5px; background: var(--cf-up-soft); }
.cf-delta--chip.cf-delta--down { background: var(--cf-down-soft); }
.cf-delta--chip.cf-delta--flat { background: var(--cf-surface-2); }

/* ── рейтинг ───────────────────────────────────────────────────────── */
.cf-rt { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; padding: 3px 9px; border-radius: var(--cf-radius-pill);
  font-size: 12.5px; font-weight: 700; line-height: 1.3; letter-spacing: 0; white-space: nowrap; }
.cf-rt--aaa { background: var(--cf-rt-aaa-bg); color: var(--cf-rt-aaa-fg); }
.cf-rt--aa { background: var(--cf-rt-aa-bg); color: var(--cf-rt-aa-fg); }
.cf-rt--a { background: var(--cf-rt-a-bg); color: var(--cf-rt-a-fg); }
.cf-rt--bbb { background: var(--cf-rt-bbb-bg); color: var(--cf-rt-bbb-fg); }
.cf-rt--bb { background: var(--cf-rt-bb-bg); color: var(--cf-rt-bb-fg); }
.cf-rt--b { background: var(--cf-rt-b-bg); color: var(--cf-rt-b-fg); }
.cf-rt--ccc { background: var(--cf-rt-ccc-bg); color: var(--cf-rt-ccc-fg); }
.cf-rt--d { background: var(--cf-rt-d-bg); color: var(--cf-rt-d-fg); }
.cf-rt--nr { background: var(--cf-rt-nr-bg); color: var(--cf-rt-nr-fg); font-weight: 600; }
.cf-rt--gov { background: var(--cf-accent-soft); color: var(--cf-accent); }
.cf-rt--aff { background: transparent; box-shadow: inset 0 0 0 1px currentColor; }
.cf-rt-cell { display: inline-flex; align-items: center; gap: 6px; }
.cf-rt-cell__more { font-size: 11.5px; color: var(--cf-ink-3); }
.cf-rt-meter { display: flex; flex-direction: column; gap: 10px; min-width: 260px; }
.cf-rt-meter__top { display: flex; align-items: center; gap: 14px; }
.cf-grade { flex: none; min-width: 76px; height: 58px; padding: 0 12px; border-radius: var(--cf-radius-grade); display: grid; place-items: center;
  background: var(--cf-accent-soft); color: var(--cf-accent); font-size: 24px; font-weight: 700; letter-spacing: -.03em; }
.cf-grade--none { background: var(--cf-surface-2); color: var(--cf-ink-3); font-size: 15px; }
.cf-rt-meter__txt { font-size: 13px; color: var(--cf-ink-3); line-height: 1.4; }
.cf-rt-meter__txt b { display: block; color: var(--cf-ink); font-size: 16px; font-weight: 600; margin-bottom: 2px; }
.cf-scale { display: grid; grid-template-columns: repeat(9, 1fr); gap: 3px; }
.cf-scale span { height: 7px; border-radius: var(--cf-radius-bar); background: var(--cf-line-strong); }
.cf-scale span.is-dim { background: var(--cf-accent-dim); }
.cf-scale span.is-on { background: var(--cf-accent); }
.cf-scale-leg { display: grid; grid-template-columns: repeat(9, 1fr); font-size: 11px; color: var(--cf-ink-3); }
.cf-scale-leg span:nth-child(1) { grid-column: 1; }
.cf-scale-leg span:nth-child(2) { grid-column: 5; text-align: center; }
.cf-scale-leg span:nth-child(3) { grid-column: 7; text-align: center; }
.cf-scale-leg span:nth-child(4) { grid-column: 9; text-align: right; }

/* ── цена ──────────────────────────────────────────────────────────── */
.cf-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.cf-price__now { font-size: 48px; font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.cf-price__rub { font-size: 17px; font-weight: 500; color: var(--cf-ink-2); }
.cf-price .cf-delta { font-size: 15px; }
.cf-stamp { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 2px 14px; font-size: 13px; color: var(--cf-ink-3); }

/* ── лента ключевых чисел ──────────────────────────────────────────── */
.cf-keystrip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: auto auto auto;
  border-top: 1px solid var(--cf-line); border-bottom: 1px solid var(--cf-line); }
.cf-keystrip > div { grid-row: span 3; display: grid; grid-template-rows: subgrid; align-content: start; position: relative; min-width: 0; padding: 18px 20px; }
.cf-keystrip > div:first-child { padding-left: 0; }
.cf-keystrip > div + div::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 1px; background: var(--cf-line); }
.cf-keystrip__k { align-self: end; font-size: 13px; line-height: 1.35; color: var(--cf-ink-3); text-wrap: balance; }
.cf-keystrip__v { margin-top: 8px; font-size: 28px; font-weight: 700; letter-spacing: -.035em; line-height: 1; white-space: nowrap; }
.cf-keystrip__v em { font-style: normal; font-size: 15px; font-weight: 600; color: var(--cf-ink-2); margin-left: 6px; letter-spacing: -.01em; }
.cf-keystrip__u { margin-top: 7px; font-size: 13px; color: var(--cf-ink-2); }
.cf-keystrip--panel { border: 0; border-radius: var(--cf-radius-xl); background: var(--cf-surface); box-shadow: inset 0 0 0 1px var(--cf-line); }
.cf-keystrip--panel > div, .cf-keystrip--panel > div:first-child { padding: 16px 18px; }
.cf-keystrip--panel > div + div::before { top: 16px; bottom: 16px; }
.cf-keystrip--wide { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cf-keystrip--wide .cf-keystrip__v { margin-top: 6px; font-size: 21px; letter-spacing: -.03em; line-height: 1.1; }
.cf-keystrip--wide .cf-keystrip__u { margin-top: 5px; font-size: 12.5px; color: var(--cf-ink-3); white-space: nowrap; }

/* ── панели и сетка ────────────────────────────────────────────────── */
.cf-panel { min-width: 0; border-radius: var(--cf-radius-xl); padding: 22px 24px; background: var(--cf-surface); box-shadow: inset 0 0 0 1px var(--cf-line); }
.cf-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.cf-panel__head h2, .cf-panel__head h3 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.02em; }
.cf-panel__meta { font-size: 13px; color: var(--cf-ink-3); }
.cf-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--cf-space-16); }
.cf-grid > * { grid-column: span 12; }
.cf-grid > .cf-span-4 { grid-column: span 4; } .cf-grid > .cf-span-5 { grid-column: span 5; }
.cf-grid > .cf-span-6 { grid-column: span 6; } .cf-grid > .cf-span-7 { grid-column: span 7; }
.cf-grid > .cf-span-8 { grid-column: span 8; }

/* ── строки «название — значение» ──────────────────────────────────── */
.cf-rows { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--cf-space-40); }
.cf-rows--one { grid-template-columns: minmax(0, 1fr); }
.cf-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--cf-line); min-width: 0; }
.cf-row dt { margin: 0; font-size: 14.5px; color: var(--cf-ink-2); }
.cf-row dd { margin: 0; font-size: 15px; font-weight: 600; text-align: right; letter-spacing: -.01em; }
.cf-row dd small { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 400; color: var(--cf-ink-3); letter-spacing: 0; }
.cf-row dd.is-warn { color: var(--cf-amber); }
.cf-q { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: 6px; padding: 0; border: 0; border-radius: 50%;
  background: var(--cf-surface-3); color: var(--cf-ink-3); font-size: 10.5px; font-weight: 700; line-height: 1; cursor: help; vertical-align: 1px; }
.cf-q:hover, .cf-q:focus-visible { background: var(--cf-accent-soft); color: var(--cf-accent); }

/* ── подсказка ─────────────────────────────────────────────────────── */
.cf-tip { display: inline-block; max-width: 280px; padding: 10px 13px; border-radius: var(--cf-radius-md);
  background: var(--cf-tooltip-bg); color: var(--cf-tooltip-ink); box-shadow: var(--cf-shadow-tooltip);
  font-size: 12.5px; font-weight: 400; line-height: 1.45; text-align: left; white-space: normal; z-index: var(--cf-z-popover); }
.cf-tip b { font-weight: 600; }

/* ── поля ──────────────────────────────────────────────────────────── */
.cf-field { display: grid; gap: 7px; min-width: 0; }
.cf-field__label { font-size: 13px; font-weight: 500; line-height: 1.25; color: var(--cf-ink-3); }
.cf-field__hint { font-size: 12.5px; color: var(--cf-ink-3); }
.cf-field__error { font-size: 12.5px; font-weight: 500; color: var(--cf-down); }
.cf-input { width: 100%; height: var(--cf-h-control); padding: 0 14px; border-radius: var(--cf-radius-md); border: 1px solid transparent;
  background: var(--cf-surface-2); color: var(--cf-ink); font-size: 14.5px; font-weight: 500; outline: none; -moz-appearance: textfield;
  transition: background-color var(--cf-dur) ease, border-color var(--cf-dur) ease, box-shadow var(--cf-dur) ease; }
.cf-input::placeholder { color: var(--cf-ink-3); opacity: 1; }
.cf-input:hover { background: var(--cf-surface-3); }
.cf-input:focus, .cf-input:focus-visible, .cf-select[aria-expanded="true"] { outline: none; background: var(--cf-surface); border-color: var(--cf-accent); box-shadow: var(--cf-shadow-focus); border-radius: var(--cf-radius-md); }
.cf-input::-webkit-outer-spin-button, .cf-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cf-input.is-set { background: var(--cf-accent-soft); color: var(--cf-accent); font-weight: 600; }
.cf-input.is-invalid, .cf-input[aria-invalid="true"] { border-color: var(--cf-down); }
.cf-input[disabled] { opacity: .5; cursor: not-allowed; }
.cf-search { position: relative; }
.cf-search svg { position: absolute; left: 14px; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); color: var(--cf-ink-3); pointer-events: none; }
.cf-search .cf-input { padding-left: 42px; }
.cf-select { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; cursor: pointer; }
.cf-select::after { content: ""; flex: none; width: 7px; height: 7px; margin: -3px 2px 0 0; border-right: 1.8px solid var(--cf-ink-3); border-bottom: 1.8px solid var(--cf-ink-3); transform: rotate(45deg); transition: transform var(--cf-dur-slow) var(--cf-ease); }
.cf-select[aria-expanded="true"]::after { transform: translateY(3px) rotate(-135deg); border-color: var(--cf-accent); }
.cf-select.is-set::after { border-color: var(--cf-accent); }
.cf-range { display: flex; position: relative; border-radius: var(--cf-radius-md); background: var(--cf-surface-2); border: 1px solid transparent;
  transition: background-color var(--cf-dur) ease, border-color var(--cf-dur) ease, box-shadow var(--cf-dur) ease; }
.cf-range:hover { background: var(--cf-surface-3); }
.cf-range .cf-input { height: calc(var(--cf-h-control) - 2px); background: transparent; border: 0; box-shadow: none; min-width: 0; padding: 0 12px; }
.cf-range .cf-input + .cf-input { background-image: linear-gradient(var(--cf-line-strong), var(--cf-line-strong)); background-repeat: no-repeat; background-size: 1px 20px; background-position: left center; }
.cf-range:focus-within { background: var(--cf-surface); border-color: var(--cf-accent); box-shadow: var(--cf-shadow-focus); }
.cf-range.is-set { background: var(--cf-accent-soft); }
.cf-range.is-set .cf-input { color: var(--cf-accent); font-weight: 600; }
.cf-check { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 0; flex: none; border-radius: var(--cf-radius-xs);
  border: 1.5px solid var(--cf-line-strong); background: var(--cf-surface); display: inline-grid; place-items: center; cursor: pointer; vertical-align: -4px; }
.cf-check:hover { border-color: var(--cf-accent); }
.cf-check:checked { background: var(--cf-accent-fill); border-color: var(--cf-accent-fill); }
.cf-check:checked::after { content: ""; width: 5px; height: 9px; margin-top: -2px; border: solid var(--cf-on-accent); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.cf-check-label { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; cursor: pointer; }

/* ── панель фильтров ───────────────────────────────────────────────── */
.cf-filters { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); align-items: end; gap: 16px 12px;
  padding: 18px 20px 20px; border-radius: var(--cf-radius-xl); background: var(--cf-surface); border: 1px solid var(--cf-line); }
.cf-filters__actions { display: flex; align-items: center; gap: 12px; }
.cf-filters__count { font-size: 13px; font-weight: 600; color: var(--cf-accent); white-space: nowrap; }

/* ── чипы ──────────────────────────────────────────────────────────── */
.cf-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 7px 12px; border-radius: var(--cf-radius-pill);
  border: 1px solid transparent; background: var(--cf-surface-2); color: var(--cf-ink-2); font-size: 13px; font-weight: 600; line-height: 1.2; cursor: pointer;
  transition: background-color var(--cf-dur) ease, color var(--cf-dur) ease, border-color var(--cf-dur) ease; }
.cf-chip:hover { background: var(--cf-surface-3); color: var(--cf-ink); }
.cf-chip[aria-pressed="true"] { background: var(--cf-accent-fill); border-color: var(--cf-accent-fill); color: var(--cf-on-accent); }
.cf-chip__n { font-size: 11.5px; font-weight: 600; color: var(--cf-ink-3); }
.cf-chip[aria-pressed="true"] .cf-chip__n { color: var(--cf-on-accent); font-weight: 500; }
.cf-chip:focus-visible { border-radius: var(--cf-radius-pill); }
.cf-chip--metric { min-height: var(--cf-h-pill); padding: 0 13px; background: var(--cf-surface); border-color: var(--cf-line-strong); font-size: 13.5px; font-weight: 500; }
.cf-chip--metric:hover { background: var(--cf-surface-2); }
.cf-chip--metric b { font-weight: 600; color: var(--cf-accent); }
.cf-chip--metric.is-set { background: var(--cf-accent-soft); border-color: transparent; color: var(--cf-accent); font-weight: 600; }
.cf-chip--metric[aria-expanded="true"] { background: var(--cf-surface); border-color: var(--cf-accent); box-shadow: var(--cf-shadow-focus); color: var(--cf-ink); }
.cf-chips { display: flex; flex-wrap: wrap; gap: var(--cf-space-6); }

/* ── сегменты ──────────────────────────────────────────────────────── */
.cf-seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: var(--cf-radius-pill); background: var(--cf-surface-2); box-shadow: inset 0 0 0 1px var(--cf-line); }
.cf-seg button { height: var(--cf-h-sm); padding: 0 13px; border: 0; border-radius: var(--cf-radius-pill); background: none; color: var(--cf-ink-3);
  font-size: 13px; font-weight: 600; cursor: pointer; transition: color var(--cf-dur) ease, background-color var(--cf-dur) ease; }
.cf-seg button:hover { color: var(--cf-ink); }
.cf-seg button[aria-pressed="true"], .cf-seg button[aria-selected="true"] { background: var(--cf-surface); color: var(--cf-ink); box-shadow: var(--cf-shadow-thumb); }
[data-theme="dark"] .cf-seg button[aria-pressed="true"], [data-theme="dark"] .cf-seg button[aria-selected="true"] { background: var(--cf-surface-3); }
.cf-seg--lg button { height: 38px; min-width: 38px; font-size: 14px; }

/* ── вкладки ───────────────────────────────────────────────────────── */
.cf-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--cf-line); overflow-x: auto; scrollbar-width: none; }
.cf-tabs::-webkit-scrollbar { display: none; }
.cf-tab { flex: none; padding: 9px 14px 10px; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; cursor: pointer;
  font-size: 14px; font-weight: 600; white-space: nowrap; color: var(--cf-ink-3); border-radius: 0; transition: color var(--cf-dur) ease, border-color var(--cf-dur) ease; }
.cf-tab:hover { color: var(--cf-ink); }
.cf-tab[aria-selected="true"] { color: var(--cf-ink); border-bottom-color: var(--cf-accent); }
.cf-tab__n { font-weight: 500; color: var(--cf-ink-3); margin-left: 2px; }
.cf-tab:focus-visible { outline-offset: -2px; border-radius: var(--cf-radius-xs) var(--cf-radius-xs) 0 0; }

/* ── поповер ───────────────────────────────────────────────────────── */
.cf-popover { width: min(340px, calc(100vw - 24px)); padding: 16px; border-radius: var(--cf-radius-lg); border: 1px solid var(--cf-line);
  background: var(--cf-surface); box-shadow: var(--cf-shadow-popover); z-index: var(--cf-z-popover); }
.cf-popover__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cf-popover__head h3 { margin: 0; font-size: 15px; font-weight: 700; letter-spacing: -.015em; }
.cf-popover__sec { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--cf-line); }
.cf-popover__sec > p { margin: 0 0 8px; font-size: 12.5px; font-weight: 600; color: var(--cf-ink-3); }
.cf-popover__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--cf-line); }
.cf-popover .cf-input { height: 40px; border-radius: var(--cf-radius-sm); font-size: 14px; }

/* ── таблица ───────────────────────────────────────────────────────── */
.cf-table-wrap { border-radius: var(--cf-radius-xl); border: 1px solid var(--cf-line); background: var(--cf-surface); overflow: hidden; }
.cf-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; }
.cf-table th { position: sticky; top: 0; z-index: var(--cf-z-sticky); background: var(--cf-surface); color: var(--cf-ink-3); font-size: 13px; font-weight: 500;
  text-align: right; white-space: nowrap; padding: 15px 12px 13px; border-bottom: 1px solid var(--cf-line); }
.cf-table th button { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.cf-table th button:focus-visible { outline: 2px solid var(--cf-accent); outline-offset: 3px; border-radius: 4px; }
.cf-table th:hover { color: var(--cf-ink); }
.cf-table th[aria-sort="ascending"], .cf-table th[aria-sort="descending"] { color: var(--cf-ink); font-weight: 600; }
.cf-table th[aria-sort="ascending"] button::after { content: "↑"; color: var(--cf-accent); }
.cf-table th[aria-sort="descending"] button::after { content: "↓"; color: var(--cf-accent); }
.cf-table td { padding: 12px; text-align: right; white-space: nowrap; border-bottom: 1px solid var(--cf-line); color: var(--cf-ink); background: var(--cf-surface);
  transition: background-color var(--cf-dur-fast) ease; }
.cf-table tr:last-child td { border-bottom: 0; }
.cf-table th:first-child, .cf-table td:first-child { position: sticky; left: 0; text-align: left; padding-left: 20px; }
.cf-table td:first-child { z-index: 1; }
.cf-table th:first-child { z-index: calc(var(--cf-z-sticky) + 1); }
.cf-table th:last-child, .cf-table td:last-child { padding-right: 20px; }
.cf-table .cf-l { text-align: left; }
.cf-table tbody tr:hover td { background: var(--cf-surface-2); }
.cf-table tr.is-past td { color: var(--cf-ink-3); }
.cf-table tr.is-now td { font-weight: 600; }
.cf-table tr.is-now td:first-child { color: var(--cf-accent); }
.cf-table--shifted th:first-child, .cf-table--shifted td:first-child { box-shadow: var(--cf-shadow-sticky); }
.cf-table--plain th:first-child, .cf-table--plain td:first-child { padding-left: 0; position: static; }
.cf-table--plain th:last-child, .cf-table--plain td:last-child { padding-right: 0; }
.cf-table--plain th, .cf-table--plain td { background: transparent; }
.cf-table--plain th { position: static; font-size: 12.5px; font-weight: 600; padding: 0 12px 10px; }
.cf-table--plain tbody tr:hover td { background: transparent; }
.cf-strong { font-weight: 600; }
.cf-issuer { display: inline-flex; align-items: center; gap: 12px; min-width: 0; text-decoration: none; color: inherit; }
.cf-issuer__logo { flex: none; width: 32px; height: 32px; border-radius: 50%; overflow: hidden; background: var(--cf-surface-2); box-shadow: inset 0 0 0 1px var(--cf-line); }
.cf-issuer__logo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.cf-monogram { flex: none; display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--cf-surface-2); color: var(--cf-ink-2); font-size: 13px; font-weight: 700; letter-spacing: -.02em; }
.cf-monogram--gov { background: var(--cf-accent-soft); color: var(--cf-accent); }
.cf-monogram--lg { width: 52px; height: 52px; font-size: 18px; }
.cf-issuer__txt { display: grid; gap: 2px; min-width: 0; }
.cf-issuer__name { font-size: 14.5px; font-weight: 600; letter-spacing: -.01em; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; }
a.cf-issuer:hover .cf-issuer__name { color: var(--cf-accent); }
.cf-issuer__sub { font-size: 12.5px; color: var(--cf-ink-3); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.cf-table-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 16px 2px 0; }
.cf-table-foot__count { font-size: 13px; color: var(--cf-ink-3); }

/* ── лента событий рейтингов ───────────────────────────────────────── */
.cf-feed { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto auto auto; background: var(--cf-surface); border: 1px solid var(--cf-line); border-radius: var(--cf-radius-xl); overflow: hidden; }
.cf-feed__row { display: grid; grid-column: 1 / -1; grid-template-columns: subgrid; align-items: center; column-gap: 20px; padding: 15px 22px; border-top: 1px solid var(--cf-line); transition: background-color var(--cf-dur-fast) ease; }
.cf-feed__row:first-child { border-top: 0; }
.cf-feed__row:hover { background: var(--cf-surface-2); }
.cf-feed__date { font-size: 13px; color: var(--cf-ink-3); }
.cf-feed__name { font-size: 14.5px; font-weight: 600; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cf-feed__name a { text-decoration: none; }
.cf-feed__name a:hover { color: var(--cf-accent); }
.cf-feed__move { display: inline-flex; align-items: center; gap: 7px; font-size: 14.5px; }
.cf-feed__old { color: var(--cf-ink-3); }
.cf-feed__new { font-weight: 700; }
.cf-feed__meta { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--cf-ink-3); white-space: nowrap; }
.cf-act { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 4px 11px 4px 9px; border-radius: var(--cf-radius-pill); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.cf-act--up { background: var(--cf-up-soft); color: var(--cf-up); }
.cf-act--down { background: var(--cf-down-soft); color: var(--cf-down); }
.cf-act--new { background: var(--cf-accent-soft); color: var(--cf-accent); }
.cf-act--hold { background: var(--cf-surface-2); color: var(--cf-ink-2); }
.cf-act--off { background: var(--cf-amber-soft); color: var(--cf-amber); }

/* ── события: буквы, хронология ────────────────────────────────────── */
.cf-ev { flex: none; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; font-size: 11.5px; font-weight: 700; line-height: 1; }
.cf-ev--coupon { background: var(--cf-accent-soft); color: var(--cf-accent); }
.cf-ev--offer { background: var(--cf-violet); color: var(--cf-surface); }
.cf-ev--call { background: var(--cf-violet-soft); color: var(--cf-violet); box-shadow: inset 0 0 0 1.5px var(--cf-violet); }
.cf-ev--amort { background: var(--cf-teal); color: var(--cf-surface); }
.cf-ev--maturity { background: var(--cf-ink); color: var(--cf-surface); }
.cf-ev.is-past { opacity: .45; }
.cf-evlist { list-style: none; margin: 0; padding: 0; }
.cf-evlist li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 10px 0; border-bottom: 1px solid var(--cf-line); }
.cf-evlist li:last-child { border-bottom: 0; }
.cf-evlist b { display: block; font-size: 14px; font-weight: 600; color: var(--cf-ink); }
.cf-evlist li > span:not(.cf-ev) > span { display: block; margin-top: 1px; font-size: 12.5px; color: var(--cf-ink-3); }
.cf-evlist time { font-size: 13px; color: var(--cf-ink-2); padding-top: 1px; }
.cf-tl { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.cf-tl::before { content: ""; position: absolute; left: 7px; right: 7px; top: 7px; height: 2px; background: var(--cf-line-strong); }
.cf-tl__i { position: relative; padding-right: 16px; }
.cf-tl__i::before { content: ""; position: relative; z-index: 1; display: block; width: 16px; height: 16px; border-radius: 50%; background: var(--cf-surface); box-shadow: inset 0 0 0 2px var(--cf-line-strong); }
.cf-tl__i.is-now::before { background: var(--cf-accent); box-shadow: 0 0 0 4px var(--cf-accent-soft); }
.cf-tl__i.is-key::before { box-shadow: inset 0 0 0 2px var(--cf-accent); }
.cf-tl__i.is-end::before { background: var(--cf-ink); box-shadow: none; }
.cf-tl__d { margin-top: 12px; font-size: 13px; color: var(--cf-ink-3); }
.cf-tl__t { margin-top: 2px; font-size: 16px; font-weight: 600; letter-spacing: -.015em; }
.cf-tl__x { margin-top: 4px; font-size: 13.5px; line-height: 1.45; color: var(--cf-ink-2); max-width: 30ch; }

/* ── графики (SVG-классы) ──────────────────────────────────────────── */
.cf-chart { position: relative; user-select: none; }
.cf-chart svg { display: block; width: 100%; height: auto; overflow: visible; touch-action: pan-y; }
.cf-ch-grid { stroke: var(--cf-line); stroke-width: 1; }
.cf-ch-ax { fill: var(--cf-ink-3); font-size: 11px; font-family: var(--font-sans); }
.cf-ch-line { fill: none; stroke: var(--cf-chart-1); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.cf-ch-line--2 { stroke: var(--cf-chart-2); stroke-width: 1.5; stroke-dasharray: 5 4; }
.cf-ch-area-top { stop-color: var(--cf-chart-1); stop-opacity: .16; }
.cf-ch-area-bot { stop-color: var(--cf-chart-1); stop-opacity: 0; }
.cf-ch-base { stroke: var(--cf-chart-muted); stroke-width: 1; stroke-dasharray: 2 4; opacity: .7; }
.cf-ch-price { fill: var(--cf-accent-fill); }
.cf-ch-price-t { fill: var(--cf-on-accent); font-size: 11px; font-weight: 600; font-family: var(--font-sans); }
.cf-ch-cross { stroke: var(--cf-ink-3); stroke-width: 1; stroke-dasharray: 3 3; }
.cf-ch-dot { fill: var(--cf-chart-1); stroke: var(--cf-surface); stroke-width: 2.5; }
.cf-chart__tip { position: absolute; top: 0; pointer-events: none; padding: 8px 10px; border-radius: var(--cf-radius-sm); background: var(--cf-tooltip-bg); color: var(--cf-tooltip-ink);
  font-size: 12.5px; line-height: 1.35; white-space: nowrap; transform: translateX(-50%); box-shadow: var(--cf-shadow-tooltip); }
.cf-chart__tip b { font-size: 14px; font-weight: 600; }
.cf-chart__legend { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; font-size: 13px; color: var(--cf-ink-3); }
.cf-chart__legend b { color: var(--cf-ink); font-weight: 600; }
.cf-chart__legend i { display: inline-block; width: 12px; height: 3px; border-radius: 2px; margin-right: 6px; vertical-align: middle; }
.cf-ps-bar { fill: var(--cf-accent-dim); }
.cf-ps-bar.is-past { fill: var(--cf-line-strong); }
.cf-ps-bar.is-now { fill: var(--cf-accent); }
.cf-ps-bar.is-unk { fill: none; stroke: var(--cf-line-strong); stroke-width: 1.2; stroke-dasharray: 3 2; }
.cf-ps-lbl { fill: var(--cf-ink-3); font-size: 11px; font-family: var(--font-sans); }
.cf-ps-today { stroke: var(--cf-accent); stroke-width: 1.2; stroke-dasharray: 2 3; }
.cf-ps-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; font-size: 12.5px; color: var(--cf-ink-3); }
.cf-ps-legend span { display: inline-flex; align-items: center; gap: 7px; }
.cf-ps-legend i { width: 10px; height: 10px; border-radius: var(--cf-radius-bar); background: var(--cf-accent-dim); }
.cf-ps-legend i.is-now { background: var(--cf-accent); }
.cf-ps-legend i.is-past { background: var(--cf-line-strong); }

/* ── аккордеон (FAQ) ───────────────────────────────────────────────── */
.cf-faq { border-top: 1px solid var(--cf-line); }
.cf-faq details { border-bottom: 1px solid var(--cf-line); }
.cf-faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 0;
  font-size: 16px; font-weight: 600; letter-spacing: -.012em; cursor: pointer; }
.cf-faq summary::-webkit-details-marker { display: none; }
.cf-faq summary::after { content: ""; flex: none; width: 10px; height: 10px; margin-right: 4px; border-right: 2px solid var(--cf-ink-3); border-bottom: 2px solid var(--cf-ink-3);
  transform: translateY(-3px) rotate(45deg); transition: transform var(--cf-dur-slow) var(--cf-ease); }
.cf-faq details[open] summary::after { transform: translateY(2px) rotate(-135deg); }
.cf-faq summary:hover { color: var(--cf-accent); }
.cf-faq__a { padding: 0 0 18px; font-size: 15px; line-height: 1.62; color: var(--cf-ink-2); max-width: 72ch; }
.cf-faq__a p { margin: 0 0 10px; } .cf-faq__a p:last-child { margin: 0; }

/* ── текст ─────────────────────────────────────────────────────────── */
.cf-prose { font-size: 16px; line-height: 1.65; color: var(--cf-ink-2); max-width: var(--cf-prose-max); }
.cf-prose p { margin: 0 0 14px; }
.cf-prose b, .cf-prose strong { color: var(--cf-ink); font-weight: 600; }
.cf-prose a { color: var(--cf-accent); text-decoration: none; }
.cf-prose a:hover { text-decoration: underline; text-underline-offset: 3px; }
.cf-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 32px; }
.cf-links a { display: flex; justify-content: space-between; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--cf-line); font-size: 15px; font-weight: 500; text-decoration: none; color: var(--cf-ink); }
.cf-links a::after { content: "→"; color: var(--cf-ink-3); transition: transform var(--cf-dur-press) var(--cf-ease), color var(--cf-dur) ease; }
.cf-links a:hover { color: var(--cf-accent); }
.cf-links a:hover::after { color: var(--cf-accent); transform: translateX(3px); }

/* ── модалка ───────────────────────────────────────────────────────── */
.cf-scrim { position: fixed; inset: 0; background: var(--cf-scrim); z-index: var(--cf-z-modal); display: grid; place-items: center; padding: 24px; }
.cf-modal { width: min(980px, 100%); max-height: min(88vh, 900px); display: flex; flex-direction: column; overflow: hidden;
  background: var(--cf-surface); border: 1px solid var(--cf-line); border-radius: var(--cf-radius-xl); box-shadow: var(--cf-shadow-modal); }
.cf-modal__head { display: flex; align-items: flex-start; gap: 14px; padding: 20px 22px 0; }
.cf-modal__titles { flex: 1 1 auto; min-width: 0; }
.cf-modal__title { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.025em; line-height: 1.2; }
.cf-modal__sub { margin-top: 3px; font-size: 13.5px; color: var(--cf-ink-3); display: flex; flex-wrap: wrap; gap: 2px 8px; }
.cf-modal__sub > * + *::before { content: "·"; margin-right: 8px; color: var(--cf-line-strong); }
.cf-modal__acts { flex: none; display: flex; gap: 8px; align-items: center; }
.cf-modal__body { padding: 16px 22px 22px; overflow: auto; }

/* ── шапка сайта ───────────────────────────────────────────────────── */
.cf-header { position: sticky; top: 0; z-index: var(--cf-z-header); width: 100%; background: var(--cf-header-bg);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--cf-line); }
.cf-header__bar { max-width: var(--cf-page-max); height: var(--cf-header-h); margin: 0 auto; padding: 12px 24px; display: flex; align-items: center; gap: 18px; }
.cf-header__nav { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.cf-header__nav::-webkit-scrollbar { display: none; }
.cf-header__nav a { flex: none; padding: 8px 10px; border-radius: var(--cf-radius-pill); color: var(--cf-ink-2); font-size: 13.5px; font-weight: 600;
  letter-spacing: -.01em; line-height: 1.2; white-space: nowrap; text-decoration: none; transition: background-color var(--cf-dur) ease, color var(--cf-dur) ease; }
.cf-header__nav a:hover { background: var(--cf-surface-2); color: var(--cf-ink); }
.cf-header__nav a[aria-current="page"] { background: var(--cf-accent-soft); color: var(--cf-accent); }
.cf-header__sep { flex: none; width: 1px; height: 20px; margin: 0 6px; background: var(--cf-line-strong); }
.cf-header__acts { flex: none; margin-left: auto; display: flex; align-items: center; gap: 8px; }
.cf-header__tg { height: var(--cf-h-button); padding: 0 14px; font-size: 13.5px; }

/* ── подвал ────────────────────────────────────────────────────────── */
.cf-footer { background: var(--cf-surface); border-top: 1px solid var(--cf-line); }
.cf-footer__in { max-width: var(--cf-page-max); margin: 0 auto; padding: 38px 28px 26px; display: grid; grid-template-columns: minmax(250px, 1.45fr) repeat(3, minmax(132px, 1fr)); gap: 28px; }
.cf-footer__brand p { margin: 11px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--cf-ink-3); max-width: 46ch; }
.cf-footer__nav { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; min-width: 0; }
.cf-footer__nav b { font-size: 13px; font-weight: 600; color: var(--cf-ink-3); }
.cf-footer__nav a { font-size: 14px; font-weight: 500; color: var(--cf-ink-2); text-decoration: none; overflow-wrap: break-word; }
.cf-footer__nav a:hover { color: var(--cf-ink); text-decoration: underline; text-underline-offset: 3px; }
.cf-footer__bottom { max-width: var(--cf-page-max); margin: 0 auto; padding: 16px 28px 30px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  border-top: 1px solid var(--cf-line); font-size: 13px; color: var(--cf-ink-3); }
.cf-footer__disclaimer { max-width: var(--cf-page-max); margin: 0 auto; padding: 0 28px 16px; font-size: 12.5px; line-height: 1.55; color: var(--cf-ink-3); }

/* ── обратная связь: плашка, пусто, загрузка, тост ─────────────────── */
.cf-callout { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--cf-radius-md); background: var(--cf-surface-2); color: var(--cf-ink-2); font-size: 14px; line-height: 1.5; }
.cf-callout svg { flex: none; width: 18px; height: 18px; margin-top: 1px; color: var(--cf-ink-3); }
.cf-callout b { color: var(--cf-ink); font-weight: 600; }
.cf-callout--info { background: var(--cf-accent-soft); }
.cf-callout--info svg { color: var(--cf-accent); }
.cf-callout--warn { background: var(--cf-amber-soft); }
.cf-callout--warn svg { color: var(--cf-amber); }
.cf-callout--danger { background: var(--cf-down-soft); }
.cf-callout--danger svg { color: var(--cf-down); }
.cf-callout--demo { background: var(--cf-amber-soft); box-shadow: inset 0 0 0 1px var(--cf-amber); border-radius: var(--cf-radius-pill); padding: 6px 14px; font-size: 13px; font-weight: 600; color: var(--cf-amber); display: inline-flex; align-items: center; }
.cf-empty { display: grid; justify-items: center; gap: 8px; padding: 40px 24px; text-align: center; }
.cf-empty__t { font-size: 15px; font-weight: 600; color: var(--cf-ink); }
.cf-empty__x { font-size: 14px; color: var(--cf-ink-3); max-width: 48ch; }
.cf-empty .cf-btn { margin-top: 8px; }
.cf-skel { display: block; border-radius: var(--cf-radius-xs); background: linear-gradient(90deg, var(--cf-surface-2) 0%, var(--cf-surface-3) 50%, var(--cf-surface-2) 100%);
  background-size: 200% 100%; animation: cf-skel 1.4s ease-in-out infinite; }
.cf-skel--text { height: 12px; }
.cf-skel--num { height: 24px; width: 96px; }
.cf-skel--circle { border-radius: 50%; width: 32px; height: 32px; }
@keyframes cf-skel { from { background-position: 100% 0; } to { background-position: -100% 0; } }
.cf-toast { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: var(--cf-radius-pill); background: var(--cf-tooltip-bg); color: var(--cf-tooltip-ink);
  font-size: 13.5px; font-weight: 600; box-shadow: var(--cf-shadow-tooltip); z-index: var(--cf-z-toast); }
.cf-toast svg { width: 16px; height: 16px; }
.cf-toast--fixed { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); }

/* ── телефон ───────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .cf-header__bar { gap: 10px; padding-left: 16px; padding-right: 16px; }
  .cf-header__nav a { padding-left: 8px; padding-right: 8px; font-size: 13px; }
  .cf-keystrip--wide { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cf-keystrip--wide > div:nth-child(n+5) { border-top: 1px solid var(--cf-line); }
  .cf-keystrip--wide > div:nth-child(4n+1)::before { display: none; }
  .cf-footer__in { grid-template-columns: 1fr 1fr; padding: 30px 20px 22px; }
  .cf-grid > .cf-span-4, .cf-grid > .cf-span-5, .cf-grid > .cf-span-6, .cf-grid > .cf-span-7, .cf-grid > .cf-span-8 { grid-column: span 12; }
}
@media (max-width: 860px) {
  .cf-header__bar { height: 112px; display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; padding: 10px 14px; }
  .cf-header__nav { grid-column: 1 / -1; grid-row: 2; }
  .cf-header__sep { display: none; }
}
@media (max-width: 767px) {
  .cf-page { padding: 0 16px; }
  .cf-head__title { font-size: 28px; }
  .cf-price__now { font-size: 36px; }
  .cf-input { font-size: 16px; }
  .cf-keystrip, .cf-keystrip--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cf-keystrip > div:nth-child(odd) { padding-left: 0; }
  .cf-keystrip--panel > div:nth-child(odd) { padding-left: 16px; }
  .cf-keystrip > div:nth-child(odd)::before { display: none; }
  .cf-keystrip > div:nth-child(n+3) { border-top: 1px solid var(--cf-line); }
  .cf-keystrip__v { font-size: 23px; }
  .cf-rows { grid-template-columns: minmax(0, 1fr); }
  .cf-panel { padding: 18px 16px; }
  .cf-feed { display: block; }
  .cf-feed__row { grid-template-columns: minmax(0, 1fr) auto; row-gap: 6px; padding: 14px 16px; }
  .cf-btn, .cf-chip, .cf-iconbtn { min-height: var(--cf-tap-min); }
  .cf-scrim { place-items: end center; padding: 0; }
  .cf-modal { width: 100%; max-height: 92vh; border-radius: var(--cf-radius-xl) var(--cf-radius-xl) 0 0; }
  .cf-footer__in { grid-template-columns: 1fr; }
  .cf-tl { grid-auto-flow: row; }
}
@media (max-width: 620px) {
  .cf-header__tg { display: none; }
  .cf-logo { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .cf *, .cf *::before, .cf *::after { transition: none !important; animation: none !important; }
}
