/* The cabinet's own style since 29.10.2026 (the owner: «Не смотри на стиль МТС, делаем свой»), loaded after the radar's app.css and
   the cabinet's own blocks, and scoped to body.cab, so the radar and the rest of the site keep their look. The direction, from the
   Refero research of 29.10.2026: a warm data terminal — warm near-white canvas with a faint ruling, warm ink, white cards with a
   hairline border and no shadow, every value in a monospaced face over a small caption, one teal action per screen, a violet scale
   for data only. Fonts: Onest for text, JetBrains Mono for values (both with Cyrillic). */
body.cab {
  --page: #fafafa; --surface: #ffffff; --panel: #f4f4f2; --tint: #f7f3eb;
  --fg: #1f1d1b; --fg-2: #6b6662; --fg-3: #8a847f;
  --line: #e4e5e1; --line-strong: #d4d5d0;
  --accent: #088177; --accent-h: #06665e; --on-accent: #ffffff; --accent-tint: #e6f3f1;
  --ink: #1f1d1b; --on-ink: #ffffff;
  --sched: #8a5a00; --on-sched: #ffffff; --warn-bg: #fbf1dc; --ok: #1f7a3e;
  --d1: #d8d3f1; --d2: #b3abe6; --d3: #8c80d6; --d4: #6557bf; --d5: #4a3ea3; --d6: #241c66;
  --res: #6557bf; --wrk: #1f1d1b;
  --ld-full: #6557bf; --ld-mid: #8c80d6; --ld-low: #b3abe6; --ld-full-t: #ffffff; --ld-mid-t: #1f1d1b; --ld-low-t: #1f1d1b;
  --font: "Onest", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display: "Onest", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --r-card: 10px; --r-ctl: 8px; --r-pill: 9999px;
  --shadow-float: rgba(0, 0, 0, .2) 0 2px 5px;
  --side: 240px;
  color-scheme: light;
  background: var(--page) repeating-linear-gradient(to bottom, transparent 0 7px, rgba(31, 29, 27, .03) 7px 8px);
  color: var(--fg); font: 400 14px/1.5 var(--font);
}
body.cab a { color: var(--accent); }
body.cab a:hover { color: var(--accent-h); }
body.cab h1, body.cab h2, body.cab h3, body.cab h4 { font-family: var(--font); font-weight: 500; letter-spacing: -0.01em; text-wrap: balance; }
body.cab .num { font-family: var(--mono); font-weight: 400; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
body.cab :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
body.cab .cab-note { font-size: 12px; color: var(--fg-2); }
body.cab .cab-note .num { color: var(--fg); }

/* ---------- Buttons: one filled action a screen, the rest white with a border; pills only for filters and statuses ---------- */
body.cab .btn { height: 36px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); font: 500 14px var(--font); gap: 6px; text-transform: none; letter-spacing: 0; }
body.cab .btn:hover { border-color: var(--fg-2); text-decoration: none; }
body.cab .btn-primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
body.cab .btn-primary:hover { background: var(--accent-h); border-color: var(--accent-h); }
body.cab .btn-primary:disabled { background: var(--line); border-color: var(--line); color: var(--fg-3); }
body.cab .btn-ghost { background: transparent; border-color: transparent; color: var(--accent); padding: 0 8px; }
body.cab .btn-ghost:hover { background: var(--accent-tint); text-decoration: none; }
body.cab .btn-ghost.btn-line { background: var(--surface); border-color: var(--line-strong); color: var(--fg); }
body.cab .btn-ghost.btn-line:hover { border-color: var(--fg-2); }
body.cab .btn-sm { height: 28px; padding: 0 10px; font-size: 13px; }
body.cab .btn svg { width: 14px; height: 14px; }
body.cab .tg { height: 28px; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: var(--r-pill); background: var(--surface); color: var(--fg); font: 400 13px var(--font); gap: 6px; }
body.cab .tg .bx { display: none; }
body.cab .tg[aria-pressed=true] { border: 1.5px solid var(--accent); padding: 0 10.5px; }
body.cab .tg .num { font-size: 11px; color: var(--fg-3); }
body.cab .tg[aria-pressed=true] .num { color: var(--accent); }
body.cab .seg { padding: 0; gap: 6px; background: transparent; border-radius: 0; }
body.cab .seg button { height: 28px; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: var(--r-pill); background: var(--surface); color: var(--fg); font: 400 13px var(--font); box-shadow: none; }
body.cab .seg button[aria-selected=true] { border: 1.5px solid var(--accent); padding: 0 10.5px; background: var(--surface); color: var(--fg); box-shadow: none; }
body.cab .seg .num { font-size: 11px; color: var(--fg-3); }
body.cab .seg button[aria-selected=true] .num { color: var(--accent); }
body.cab .badge { height: 20px; padding: 0 7px; border-radius: 4px; font-size: 11px; font-weight: 500; }
body.cab .badge.grey { background: var(--panel); color: var(--fg-2); }
body.cab .riv-new { background: var(--accent-tint); color: var(--accent); }
body.cab .toast { background: var(--ink); color: var(--on-ink); border-radius: var(--r-ctl); box-shadow: var(--shadow-float); }
/* statuses */
body.cab .st { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: var(--r-pill); background: var(--panel); color: var(--fg-2); font-size: 11px; white-space: nowrap; }
body.cab .st.ok { background: #e8f3ec; color: var(--ok); }
body.cab .st.warn { background: var(--warn-bg); color: var(--sched); }
body.cab .st.act { background: var(--accent-tint); color: var(--accent); }

/* ---------- The shell: a sidebar of 240 px, the pages to its right; a top bar and a tab bar on the phone ---------- */
body.cab { padding: 0; }
body.cab .cab-app { display: grid; grid-template-columns: var(--side) minmax(0, 1fr); min-height: 100dvh; }
body.cab .cab-app:has(#cab-in:not([hidden])) { grid-template-columns: minmax(0, 1fr); }
.cab-side { position: sticky; top: 0; height: 100dvh; padding: 16px 12px; border-right: 1px solid var(--line); background: var(--surface); display: flex; flex-direction: column; gap: 16px; }
.cab-side[hidden] { display: none; }
.cab-brandrow { display: flex; align-items: center; gap: 10px; padding: 4px 8px; font-weight: 600; font-size: 15px; }
.cab-mark { width: 22px; height: 22px; border-radius: 6px; background: var(--accent); display: inline-grid; place-items: center; color: #fff; font: 600 11px var(--mono); font-style: normal; }
/* the company's card opens «Настройки» (the owner, 03.11.2026: «проваливаться в название кампании в этом же поле»), lit while they are open */
body.cab .cab-co { position: relative; display: grid; gap: 2px; padding: 10px 28px 10px 12px; border: 1px solid var(--line); border-radius: var(--r-ctl); background: var(--page); color: var(--fg); font: inherit; text-align: left; text-decoration: none; cursor: pointer; }
body.cab .cab-co:hover { border-color: var(--line-strong); color: var(--fg); text-decoration: none; }
body.cab .cab-co[aria-current] { border-color: var(--accent); background: var(--accent-tint); color: var(--accent); }
.cab-co:focus-visible, .cab-topco:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; }
.cab-chev { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font: 400 20px/1 var(--font); font-style: normal; color: var(--fg-3); }
.cab-co b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cab-co span { font-size: 12px; color: var(--fg-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.cab .cab-nav { display: grid; gap: 2px; padding: 0; border: 0; background: transparent; position: static; overflow: visible; }
body.cab .cab-nav .cab-grp { margin: 10px 8px 4px; font-size: 11px; color: var(--fg-3); letter-spacing: .04em; text-transform: uppercase; }
body.cab .cab-nav a { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: auto; padding: 8px 10px; border: 0; border-left: 2px solid transparent; border-radius: var(--r-ctl); background: transparent; color: var(--fg); font: 400 14px/1.4 var(--font); text-decoration: none; white-space: normal; }
body.cab .cab-nav a::after { display: none; }
body.cab .cab-nav a:hover { background: var(--panel); color: var(--fg); text-decoration: none; }
body.cab .cab-nav a[aria-current] { color: var(--accent); border-left-color: var(--accent); background: var(--accent-tint); font-weight: 500; }
.cab-nav a .num { font-size: 11px; color: var(--fg-3); }
.cab-nav a[aria-current] .num { color: var(--accent); }
.cab-nav a .num:empty { display: none; }
/* «скоро»: a section seen in the menu, not opened yet (the owner, 03.11.2026: «Лидогенерация — неактивная, рядом «скоро»») */
body.cab .cab-nav .cab-soon { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px 8px 12px; color: var(--fg-3); font: 400 14px/1.4 var(--font); cursor: default; }
.cab-soon small { padding: 0 6px; border: 1px solid var(--line); border-radius: 4px; font-size: 11px; font-weight: 400; line-height: 1.5; color: var(--fg-2); }
.cab-foot { margin-top: auto; padding: 0 8px; font-size: 11px; color: var(--fg-3); }
.cab-top { display: none; }
.cab-tabbar { display: none; }
body.cab .cab-main { width: auto; max-width: none; margin: 0; padding: 20px 24px 40px; min-width: 0; display: block; }
body.cab .cab-in { min-height: 100dvh; background: var(--tint); }
.cab-page[hidden] { display: none; }
.cab-ph { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.cab-h1 { margin: 0; font-size: 22px; line-height: 1.2; font-weight: 500; }
.cab-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cab-card2 { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); padding: 20px 24px; }
body.cab .cab-sec { gap: 12px; }
body.cab .cab-h2 { font-size: 16px; font-weight: 500; }
body.cab .cab-lead { font-size: 14px; }
body.cab .cab-h { font-size: 22px; font-weight: 500; }
/* «Настройки»: a row with its switch */
.set-card { max-width: 760px; }
.set-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: start; cursor: pointer; }
.set-row b { display: block; font-size: 15px; font-weight: 500; }
.set-row .set-d { display: block; margin-top: 4px; font-size: 13px; color: var(--fg-2); }
.set-sw { appearance: none; position: relative; flex: none; width: 44px; height: 26px; margin: 0; border-radius: 999px; background: var(--line-strong); cursor: pointer; transition: background .15s; }
.set-sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #ffffff; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); transition: transform .15s; }
.set-sw:checked { background: var(--accent); }
.set-sw:checked::after { transform: translateX(18px); }
.set-sw:focus-visible { outline: 2px solid var(--fg); outline-offset: 2px; }
.set-sw:disabled { opacity: .6; }
@media (prefers-reduced-motion: reduce) { .set-sw, .set-sw::after { transition: none; } }
.set-st { margin: 12px 0 0; font-size: 13px; color: var(--fg-2); display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.set-st:empty { display: none; }
.set-co { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 12px; }
.set-co b { display: block; font-size: 15px; font-weight: 500; }
.set-co .set-d { display: block; margin-top: 2px; font-size: 13px; color: var(--fg-2); }
/* «Ещё» on a phone: the pages the bottom bar has no tab for, a row each */
body.cab .cab-more { display: grid; padding: 0 20px; }
body.cab .cab-more a { position: relative; display: grid; gap: 2px; min-height: 56px; align-content: center; padding: 12px 28px 12px 0; border-bottom: 1px solid var(--line); color: var(--fg); font-size: 15px; font-weight: 500; text-decoration: none; }
body.cab .cab-more a:last-child { border-bottom: 0; }
body.cab .cab-more a span { font-size: 13px; font-weight: 400; color: var(--fg-2); }
body.cab .cab-more a::after { content: '›'; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 22px; line-height: 1; color: var(--fg-3); }
body.cab .cab-more a:hover { text-decoration: none; color: var(--accent); }
body.cab .cab-more .cab-soon { padding: 12px 28px 12px 0; border-bottom: 1px solid var(--line); color: var(--fg-3); font-size: 15px; font-weight: 500; }
body.cab .cab-more .cab-soon small { margin-left: 6px; vertical-align: 1px; }
body.cab .cab-more .cab-soon span { display: block; margin-top: 2px; font-size: 13px; font-weight: 400; color: var(--fg-3); }

/* ---------- Metrics, strips, banners, steps, jobs ---------- */
.t-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); }
.t-card.pad { padding: 20px 24px; align-content: start; }
.t-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.t-strip > div { padding: 16px 20px; border-left: 1px solid var(--line); min-width: 0; }
.t-strip > div:first-child { border-left: 0; }
.t-metric { display: grid; gap: 4px; align-content: start; }
.t-metric .cap { order: -1; }
.t-metric .v { font: 500 32px/1.1 var(--mono); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.t-metric .v small { font: 400 13px/1 var(--mono); color: var(--fg-2); margin-left: 6px; }
.t-metric .d { font-size: 12px; color: var(--fg-2); }
.t-metric .d.ok { color: var(--ok); } .t-metric .d.warn { color: var(--sched); }
.cap { font-size: 11px; line-height: 1.45; color: var(--fg-3); letter-spacing: .01em; }
.t-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.t-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.t-banner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 14px 20px; border-radius: var(--r-card); background: var(--tint); border: 1px solid #ede6d6; }
.t-banner b { font-weight: 500; }
.t-ch { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.t-ch h2 { margin: 0; font-size: 16px; }
.t-bar { height: 6px; border-radius: 3px; background: var(--panel); overflow: hidden; }
.t-bar i { display: block; height: 100%; background: var(--d4); }
.t-bar.act i { background: var(--accent); }
.t-tile { display: grid; gap: 8px; color: inherit; text-decoration: none; }
.t-tile:hover { border-color: var(--line-strong); color: inherit; text-decoration: none; }
.t-steps { display: grid; }
.t-step { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.t-step:first-child { border-top: 0; }
.t-step .k { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font: 500 12px var(--mono); border: 1.5px solid var(--line-strong); color: var(--fg-2); }
.t-step .k.done { background: var(--accent); border-color: var(--accent); color: #fff; }
.t-step .k.run { border-color: var(--accent); color: var(--accent); }
.t-step b { font-weight: 500; display: block; }
.t-step .s { font-size: 12px; color: var(--fg-2); }
.t-step.lock { color: var(--fg-3); }
.t-job { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-ctl); background: var(--panel); }
.t-job .row { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; padding: 0; border: 0; cursor: default; }
.t-job .row:hover { background: transparent; }
.t-job .stages { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: var(--fg-2); }
.t-job .stages .on { color: var(--fg); font-weight: 500; }
.t-job .stages .done { color: var(--ok); }
.t-sec { margin-top: 24px; }

/* ---------- The days and the schedule grid ---------- */
body.cab .cab-days { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
body.cab .cab-day { padding: 18px 20px; border-radius: var(--r-card); gap: 10px; }
body.cab .cab-day.on { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
body.cab .cab-day-h b { font-family: var(--font); font-size: 12px; font-weight: 400; color: var(--fg-3); }
body.cab .cab-day-h span { font-size: 12px; }
body.cab .cab-fig { font: 500 32px/1.1 var(--mono); letter-spacing: -0.02em; }
body.cab .cab-fig small { font-family: var(--font); font-size: 12px; margin-top: 6px; }
body.cab .cab-meter { height: 6px; border-radius: 3px; }
body.cab .cab-free li span { font-family: var(--mono); font-size: 13px; }
body.cab .cab-sw { color: var(--accent); }
body.cab .cab-info { font-size: 14px; }
body.cab .cab-info dt { color: var(--fg-2); }

/* ---------- Tables: rules, no zebra, caption-like headers, values in mono on the right ---------- */
body.cab .cmp-t { font-size: 14px; }
body.cab .cmp-t th, body.cab .cmp-t td { padding: 9px 10px; border-bottom: 1px solid var(--line); }
body.cab .cmp-t thead th { position: sticky; top: 0; z-index: 1; background: var(--surface); font-size: 11px; font-weight: 500; color: var(--fg-3); letter-spacing: .01em; border-bottom-color: var(--line-strong); }
body.cab .cmp-t tbody th { font-weight: 500; color: var(--fg); }
body.cab .cmp-t td.num, body.cab .cmp-t th.num { font-family: var(--mono); font-weight: 400; text-align: right; white-space: nowrap; }
body.cab .cmp-t .cmp-g th { font-family: var(--font); font-size: 12px; color: var(--fg-2); }
body.cab .cmp-t tr:hover td, body.cab .cmp-t tr:hover th { background: #fcfcfb; }
body.cab .cmp-t tr[aria-selected=true] th, body.cab .cmp-t tr[aria-selected=true] td { box-shadow: inset 0 0 0 1.5px var(--accent); background: var(--accent-tint); }
body.cab .cmp-also { color: var(--fg-3); }
body.cab .cmp-diff.up { color: var(--sched); } body.cab .cmp-diff.down { color: var(--ok); }
body.cab .cmp-card, body.cab .cmp-sum { border-radius: var(--r-card); border-color: var(--line); gap: 20px; padding: 20px 24px; }
body.cab .cmp-h { font-size: 16px; font-weight: 500; font-family: var(--font); }
body.cab .cmp-h .num { font-size: 12px; color: var(--fg-3); }
body.cab .cmp-part-h h4 { font-family: var(--font); font-size: 15px; font-weight: 500; }
body.cab .cmp-note { font-size: 13px; }
body.cab .cmp-err { background: var(--warn-bg); color: var(--sched); border-radius: var(--r-ctl); }
body.cab .cmp-bar { background: var(--panel); } body.cab .cmp-bar i { background: var(--accent); }
body.cab .cmp-link { color: var(--accent); text-decoration: none; }
body.cab .cmp-link:hover { text-decoration: underline; }
body.cab .cmp-dl { font-size: 12px; }
body.cab .cmp-pick select { height: 36px; border-radius: var(--r-ctl); border-color: var(--line-strong); font: inherit; }
body.cab .cmp-prog { background: var(--panel); border-radius: var(--r-ctl); }
body.cab .cmp-cov summary { color: var(--accent); }
body.cab .look-h { font-family: var(--font); font-weight: 500; font-size: 13px; }

/* ---------- Competitors: rows, chips, map, floating things ---------- */
body.cab .riv-flt { padding: 0; border: 0; background: transparent; gap: 8px; }
body.cab .riv-f { gap: 8px; }
body.cab .riv-l { font-size: 11px; color: var(--fg-3); }
body.cab .riv-chips { gap: 6px; }
body.cab .riv-list { border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); overflow: hidden; }
body.cab .riv-sum { padding: 10px 12px; border-bottom: 1px solid var(--line-strong); font-size: 12px; color: var(--fg-2); }
body.cab .riv-sum b { font-family: var(--font); font-weight: 500; color: var(--fg); font-size: 13px; }
body.cab .riv-ring h3 { padding: 10px 12px 4px; font-family: var(--font); font-size: 11px; font-weight: 500; color: var(--fg-3); text-transform: uppercase; letter-spacing: .04em; }
body.cab .riv-row { padding: 9px 12px; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
body.cab .riv-row .nm { font-weight: 500; font-size: 14px; }
body.cab .riv-row .nm i { font-family: var(--mono); font-size: 11px; font-weight: 400; }
body.cab .riv-row .m1, body.cab .riv-m2 { font-size: 12px; }
body.cab .riv-row .dist { font: 400 13px var(--mono); color: var(--fg-2); }
body.cab .riv-row.on { box-shadow: inset 0 0 0 1.5px var(--accent); background: var(--accent-tint); }
body.cab .riv-map, body.cab .pl-map { border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; }
body.cab .map-legend { background: var(--surface); border-radius: var(--r-ctl); box-shadow: var(--shadow-float); font-size: 12px; }
body.cab .map-msg { background: var(--surface); box-shadow: var(--shadow-float); border-radius: var(--r-ctl); }
body.cab .riv-start, body.cab .riv-due { background: var(--tint); border: 1px solid #ede6d6; border-radius: var(--r-card); }
body.cab .riv-none { color: var(--fg-2); }

/* ---------- Place: the layers, the map, the figures ---------- */
body.cab .pl-stats { gap: 0; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
body.cab .pl-stat { padding: 16px 20px; border-left: 1px solid var(--line); background: transparent; border-radius: 0; }
body.cab .pl-stat:first-child { border-left: 0; }
body.cab .pl-stat b { font: 500 32px/1.1 var(--mono); letter-spacing: -0.02em; }
body.cab .pl-stat span { font-size: 12px; }

/* ---------- The phone: no sidebar, a top bar and a tab bar ---------- */
@media (max-width: 900px) {
  /* the rows stand at the top: a page shorter than the screen («Ещё», «Настройки») no longer stretches the top bar */
  body.cab .cab-app { grid-template-columns: minmax(0, 1fr); align-content: start; }
  .cab-side, .cab-side:not([hidden]) { display: none; }
  .cab-top:not([hidden]) { display: flex; align-items: center; justify-content: space-between; gap: 10px; position: sticky; top: 0; z-index: 5; padding: 10px 16px; background: var(--surface); border-bottom: 1px solid var(--line); }
  .cab-top b { font-weight: 500; }
  body.cab .cab-topco { display: flex; align-items: center; gap: 6px; min-width: 0; min-height: 40px; color: var(--fg); text-decoration: none; }
  .cab-topco b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .cab-topco .cab-chev { position: static; transform: none; }
  body.cab .cab-topco:hover { color: var(--fg); text-decoration: none; }
  body.cab .cab-topco[aria-current] { color: var(--accent); }
  body.cab .cab-main { padding: 16px 16px 84px; }
  .cab-page { scroll-margin-top: 64px; }
  .t-strip { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .t-strip > div { border-left: 0; border-top: 1px solid var(--line); }
  .t-strip > div:nth-child(-n+2) { border-top: 0; }
  .t-strip > div:nth-child(even) { border-left: 1px solid var(--line); }
  .t-grid2, .t-grid3 { grid-template-columns: minmax(0, 1fr); }
  .t-metric .v { font-size: 28px; }
  .t-step { grid-template-columns: 28px minmax(0, 1fr); }
  .t-step > :last-child:not(div) { grid-column: 2; justify-self: start; }
  body.cab .cab-days { grid-template-columns: minmax(0, 1fr); }
  body.cab .pl-stats { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.cab .pl-stat { border-left: 0; border-top: 1px solid var(--line); }
  body.cab .pl-stat:nth-child(-n+2) { border-top: 0; }
  body.cab .pl-stat:nth-child(even) { border-left: 1px solid var(--line); }
  .cab-tabbar:not([hidden]) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 6; background: var(--surface); border-top: 1px solid var(--line); padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); }
  .cab-tabbar a { display: grid; justify-items: center; gap: 2px; padding: 6px 0; font-size: 11px; color: var(--fg-2); border-radius: 8px; text-decoration: none; }
  .cab-tabbar a[aria-current] { color: var(--accent); font-weight: 500; }
  .cab-tabbar a i { width: 18px; height: 18px; border-radius: 5px; background: currentColor; opacity: .85; }
}
@media (prefers-reduced-motion: no-preference) { body.cab .btn, body.cab .tg, .cab-nav a { transition: background-color .12s, border-color .12s, color .12s; } }

/* ---------- Competitors: the filter row, the list beside the map, the panel over the map ---------- */
body.cab .riv-flt { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
body.cab .riv-f { gap: 6px 8px; }
body.cab .riv-l { min-width: 0; font-size: 11px; color: var(--fg-3); }
body.cab .riv-f-x { padding-left: 0; flex: 1 1 auto; }
body.cab .riv-f-x .riv-up { margin-left: auto; height: 36px; border-radius: var(--r-ctl); padding: 0 14px; }
body.cab .riv-body { grid-template-columns: minmax(0, 7fr) minmax(0, 13fr); gap: 16px; }
body.cab .riv-sum { display: flex; }
body.cab .riv-mts { flex-basis: auto; }
body.cab .riv-ring h3 { position: static; background: transparent; border-bottom: 1px solid var(--line); }
body.cab .riv-row .m1 { white-space: normal; }
body.cab .riv-row .dist { display: grid; justify-items: end; gap: 4px; font: 400 13px var(--mono); color: var(--fg-2); }
body.cab .riv-cmp { height: 28px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); font: 500 13px var(--font); cursor: pointer; }
body.cab .riv-cmp:hover { border-color: var(--fg-2); }
body.cab .riv-lv, body.cab .riv-cmp-on { font-family: var(--font); font-size: 12px; }
body.cab .riv-sheet { position: absolute; z-index: 4; top: 12px; right: 12px; bottom: 12px; width: min(360px, calc(100% - 24px)); overflow: auto; padding: 18px 20px; display: grid; gap: 14px; align-content: start; background: var(--surface); border-radius: var(--r-card); box-shadow: var(--shadow-float); }
body.cab .riv-sheet[hidden] { display: none; }
body.cab .riv-sheet-x { position: absolute; top: 10px; right: 10px; }
body.cab .riv-sheet .cmp-h { margin: 0 32px 2px 0; }
body.cab .riv-kv { display: grid; grid-template-columns: 136px minmax(0, 1fr); gap: 6px 12px; margin: 0; font-size: 13px; }
body.cab .riv-kv dt { color: var(--fg-2); } body.cab .riv-kv dd { margin: 0; }
body.cab .riv-sheet-act { display: flex; gap: 8px; flex-wrap: wrap; }
body.cab .riv-map .mk { border-color: var(--res); background: var(--surface); }
body.cab .riv-map .mk.focus { border-color: var(--accent); border-width: 3px; }
body.cab .riv-map .mk.dim { opacity: .55; }

/* ---------- Comparison: the figures, the tables as cards, the card as a page with tabs ---------- */
body.cab .cmp-kpi { margin-bottom: 20px; }
body.cab .cmp-sum { display: grid; gap: 20px; padding: 0; border: 0; background: transparent; }
body.cab .cmp-sum > .cmp-part { padding: 16px 20px; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
body.cab .cmp-crumb { margin-bottom: 8px; font-size: 13px; }
body.cab .cmp-card { border-color: var(--line); }
body.cab .cmp-card .cmp-h { font-size: 20px; }
body.cab .cmp-tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--line); overflow-x: auto; margin-top: -8px; }
body.cab .cmp-tabs button { padding: 8px 12px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--fg-2); font: 400 14px var(--font); white-space: nowrap; cursor: pointer; }
body.cab .cmp-tabs button:hover { color: var(--fg); }
body.cab .cmp-tabs .num { font-size: 11px; margin-left: 4px; }
body.cab .cmp-part { scroll-margin-top: 16px; }
body.cab .cmp-pickrow { margin-bottom: 4px; }
@media (max-width: 900px) {
  body.cab .riv-body { grid-template-columns: minmax(0, 1fr); }
  body.cab .riv-sheet { position: fixed; inset: auto 0 0 0; top: 25%; width: auto; border-radius: 14px 14px 0 0; z-index: 7; }
  body.cab .riv-f-x .riv-up { margin-left: 0; }
}
body.cab .cmp-card > * { min-width: 0; }
body.cab .cmp-tabs { min-width: 0; }

/* ---------- Place: the layers beside the map, the figures beside it, the hours and incomes as cards ---------- */
body.cab #pl-box { gap: 16px; }
body.cab .pl-wrap { display: grid; grid-template-columns: 216px minmax(0, 1fr); gap: 16px; align-items: start; }
body.cab .pl-right { display: grid; gap: 16px; min-width: 0; }
body.cab .pl-layers { padding: 16px 18px; display: grid; gap: 14px; align-content: start; }
body.cab .pl-layers h3 { margin: 0 0 6px; font-size: 11px; color: var(--fg-3); font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
body.cab .pl-layer { display: flex; align-items: center; gap: 8px; padding: 5px 0; cursor: pointer; font-size: 14px; }
body.cab .pl-layer input { accent-color: var(--accent); width: 16px; height: 16px; margin: 0; }
body.cab .pl-layers .seg { flex-wrap: wrap; }
body.cab .pl-stop { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; font-size: 13px; }
body.cab .pl-stop .num { color: var(--fg-2); white-space: nowrap; }
body.cab .pl-mapcard { display: grid; grid-template-columns: minmax(0, 63fr) minmax(0, 37fr); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; background: var(--surface); }
body.cab .pl-mapcard .pl-map { position: relative; height: 540px; min-height: 0; margin: 0; border: 0; border-radius: 0; }
body.cab .pl-sum { padding: 20px 22px; display: grid; gap: 18px; align-content: start; border-left: 1px solid var(--line); }
body.cab .pl-legend { left: auto; right: 12px; bottom: 12px; display: grid; gap: 6px; min-width: 180px; padding: 10px 12px; }
body.cab .pl-legend .ramp { display: grid; grid-auto-flow: column; height: 10px; border-radius: 3px; overflow: hidden; }
body.cab .pl-legend .ramp i { display: block; width: auto; height: auto; border: 0; border-radius: 0; }
body.cab .pl-legend .ends { display: flex; justify-content: space-between; font: 400 11px var(--mono); color: var(--fg-2); }
body.cab .pl-legend .row { display: flex; align-items: center; gap: 8px; padding: 0; border: 0; font-size: 12px; cursor: default; grid-template-columns: none; }
body.cab .pl-legend .row:hover { background: transparent; }
body.cab .pl-legend .sw { display: block; width: 18px; height: 3px; border: 0; border-radius: 2px; }
body.cab .pl-legend .sw.dash { height: 0; border-top: 2px dashed var(--fg-2); border-radius: 0; }
body.cab .pl-legend .mk { width: 10px; height: 10px; border-radius: 50%; background: var(--ink); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--ink); cursor: default; }
body.cab .pl-cap { margin: 0; }
body.cab .pl-ext { gap: 12px; margin-bottom: 12px; }
body.cab .pl-ext > div { padding: 12px 14px; border-radius: 8px; background: var(--panel); }
body.cab .pl-ext > div:first-child { background: var(--tint); }
body.cab .pl-hr i { background: var(--d4); }
body.cab .pl-hr:hover i, body.cab .pl-hr.on i { background: var(--d5); }
body.cab .pl-hv { font-family: var(--mono); font-weight: 500; }
body.cab .share { display: grid; grid-template-columns: minmax(60px, 1fr) auto; gap: 10px; align-items: center; }
body.cab .share .t-bar { height: 8px; }
body.cab .pl-inc th .cmp-also { display: block; font-weight: 400; font-size: 12px; }
body.cab .pl-camp .f { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 4px 12px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 13px; }
body.cab .pl-camp .f:first-of-type { border-top: 0; }
body.cab .pl-camp .f .l { color: var(--fg-2); }
body.cab .pl-camp .f .v { font-weight: 500; min-width: 0; }
body.cab .pl-camp .f .why { grid-column: 2; font-size: 12px; color: var(--fg-3); font-weight: 400; }
body.cab .val { display: inline-block; padding: 1px 6px; border-radius: 4px; background: var(--panel); font-family: var(--mono); font-size: 12px; margin: 0 4px 4px 0; overflow-wrap: anywhere; }
body.cab .pl-how summary, body.cab .cmp-cov summary { color: var(--accent); }
@media (max-width: 900px) {
  body.cab .pl-wrap, body.cab .pl-mapcard { grid-template-columns: minmax(0, 1fr); }
  body.cab .pl-sum { border-left: 0; border-top: 1px solid var(--line); }
  body.cab .pl-layers { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }   /* the groups tile, nothing scrolls sideways */
  body.cab .pl-mapcard .pl-map { height: 380px; }
  body.cab .pl-camp .f { grid-template-columns: minmax(0, 1fr); }
  body.cab .pl-camp .f .why { grid-column: 1; }
}
/* a wide table scrolls inside its card, never the page; the income table's columns fit the card */
body.cab .cmp-tw { overflow-x: auto; overscroll-behavior-x: contain; }
body.cab .pl-inc { table-layout: fixed; width: 100%; }
body.cab .pl-inc th, body.cab .pl-inc td { padding: 9px 6px; }
body.cab .pl-inc th.num { white-space: normal; }
body.cab .pl-inc thead th:first-child { width: 34%; }
body.cab .pl-inc thead th:nth-child(2) { width: 30%; }
body.cab .pl-inc .share { grid-template-columns: minmax(40px, 1fr) auto; }
body.cab .t-grid2 > *, body.cab .t-grid3 > * { min-width: 0; }
@media (max-width: 700px) {
  /* a folded table's figures wrap like text: nothing pushes the page sideways */
  body.cab .cmp-card .cmp-t td.num, body.cab .pl-t td.num { white-space: normal; text-align: left; }
  body.cab .riv-map .map-legend { top: 10px; bottom: auto; }   /* off the map credits on a narrow map */
}
/* Competitors, 29.10.2026: likeness by size, picking on the map and in the list, the search of Yandex Maps as a card of work */
body.cab .riv-list { overflow: clip; }   /* clip, not hidden: the block of the picked sticks while the list scrolls */
body.cab .riv-row { grid-template-columns: auto minmax(0, 1fr) auto; }
body.cab .riv-pick { display: grid; place-items: center; width: 20px; align-self: start; padding-top: 2px; cursor: pointer; }
body.cab .riv-pick input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); cursor: pointer; }
body.cab .riv-row.picked:not(.on) { background: color-mix(in srgb, var(--d1) 30%, var(--surface)); }
body.cab .riv-row.far .nm { color: var(--fg-2); font-weight: 400; }
body.cab .lk { display: inline-flex; align-items: center; height: 20px; margin-left: 8px; padding: 0 7px; border-radius: var(--r-pill); font-size: 11px; font-weight: 500; vertical-align: 1px; }
body.cab .lk-high { background: var(--d1); color: var(--d6); }
body.cab .lk-mid { background: var(--panel); color: var(--d5); }
body.cab .riv-job { margin: 12px; }
body.cab .riv-pickbox { position: sticky; top: 0; z-index: 3; display: grid; gap: 10px; padding: 12px; background: var(--surface); border-bottom: 1px solid var(--line-strong); box-shadow: var(--shadow-float); }
body.cab .riv-pick-h { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
body.cab .riv-pick-h b { font-weight: 500; }
body.cab .riv-pick-l { display: flex; flex-wrap: wrap; gap: 6px; max-height: 96px; overflow-y: auto; }
body.cab .riv-chip { display: inline-flex; align-items: center; height: 28px; border: 1px solid var(--d3); border-radius: var(--r-pill); background: color-mix(in srgb, var(--d1) 35%, var(--surface)); }
body.cab .riv-chip-n { padding: 0 4px 0 10px; border: 0; background: none; font: 400 13px var(--font); color: var(--fg); cursor: pointer; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.cab .riv-chip-x { width: 26px; height: 26px; border: 0; border-radius: 50%; background: none; color: var(--fg-2); font-size: 11px; cursor: pointer; }
body.cab .riv-chip-x:hover, body.cab .riv-chip-n:hover { color: var(--accent); }
body.cab .riv-pick-a { display: flex; flex-wrap: wrap; gap: 8px; }
body.cab .riv-pickbox .t-job { margin: 0; }
body.cab .riv-searching { position: absolute; z-index: 3; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 12px; border-radius: var(--r-pill); background: var(--surface); box-shadow: var(--shadow-float); font-size: 12px; color: var(--fg); }
body.cab .riv-searching::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); animation: riv-pulse 1.2s ease-in-out infinite; }
@keyframes riv-pulse { 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { body.cab .riv-searching::before { animation: none; } }
/* the marks: the more alike, the bigger; picked filled with a tick; the one lit from the list ringed in the action colour, on top */
body.cab .riv-map .mk.l-high { width: 22px; height: 22px; border-width: 2.5px; }
body.cab .riv-map .mk.l-mid { width: 16px; height: 16px; }
body.cab .riv-map .mk.l-low { width: 10px; height: 10px; border-width: 2px; opacity: .6; }
body.cab .riv-map .mk.picked { z-index: 2; opacity: 1; min-width: 16px; min-height: 16px; background: var(--d4) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.2l2.6 2.6L11 4.4' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 70% no-repeat; border-color: var(--d6); }
body.cab .riv-map .mk.focus { z-index: 4; opacity: 1; border-color: var(--accent); border-width: 3px; box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent); }
body.cab .riv-map .map-legend i.c.lk-big { width: 14px; height: 14px; margin-right: 2px; }
body.cab .riv-map .map-legend i.c.pk { background: var(--d4); border-color: var(--d6); }
body.cab .riv-map .map-legend { flex-wrap: wrap; max-width: calc(100% - 24px); }
@media (max-width: 900px) {
  body.cab .riv-pickbox { top: 56px; }   /* under the phone's top bar */
  body.cab .riv-searching { top: auto; bottom: 12px; }
}
/* the outline of one's own: the tip over the map while drawing; the marks let the clicks through to the map */
body.cab .riv-draw { position: absolute; z-index: 5; top: 12px; left: 12px; right: 12px; max-width: 420px; display: grid; gap: 6px; padding: 12px 14px; border-radius: var(--r-card); background: var(--surface); box-shadow: var(--shadow-float); font-size: 13px; }
body.cab .riv-draw b { font-weight: 500; }
body.cab .riv-draw span { color: var(--fg-2); font-size: 12px; }
body.cab .riv-draw-a { display: flex; gap: 8px; margin-top: 4px; }
body.cab .riv-map.drawing .mk, body.cab .riv-map.drawing .office-mk { pointer-events: none; }
body.cab .riv-map.drawing .riv-sheet { display: none; }
body.cab .riv-job .st, body.cab .riv-pickbox .st { gap: 4px; }
/* the windows page while the cabinet looks for the company's booking: a running bar under the words */
body.cab .cab-empty.act { border-style: solid; }
body.cab .cab-empty .t-bar { margin-top: 6px; overflow: hidden; }
body.cab .cab-empty .t-bar i { width: 35%; animation: cab-slide 1.6s ease-in-out infinite; }
@keyframes cab-slide { from { transform: translateX(-100%); } to { transform: translateX(290%); } }
@media (prefers-reduced-motion: reduce) { body.cab .cab-empty .t-bar i { animation: none; width: 100%; opacity: .5; } }
/* the summary's link to a competitor's compared look */
body.cab .cmp-look-tag { display: block; margin-top: 2px; padding: 0; border: 0; background: none; color: var(--accent); font: 400 12px var(--font); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
body.cab .cmp-look-tag:hover { color: var(--accent-hover, var(--accent)); }
/* the demand: the summary's column and the card's «Спрос у них» */
body.cab .dm { display: inline-block; font-size: 12px; line-height: 1.5; color: var(--fg-2); }
body.cab .dm .num { color: var(--fg); }
body.cab .dm-h { margin: 14px 0 8px; font-size: 12px; font-weight: 500; color: var(--fg-3); }
body.cab .dm-topics { display: flex; flex-wrap: wrap; gap: 6px; }
body.cab .dm-topics .st { gap: 6px; height: 26px; font-size: 12px; color: var(--fg); }
body.cab .dm-topics .st .num { color: var(--d5); }
body.cab .pl-send { margin: 0 0 16px; padding: 12px 14px; border-radius: var(--r-card); background: var(--tint); }
/* the map of the mailings on «Настройки МТС Маркетолог»: the outlines of the islands over the houses that can pay */
body.cab .pl-mtsmap { margin-bottom: 20px; overflow: hidden; }
body.cab .pl-mtsmap .map { position: relative; height: 420px; margin: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
body.cab .pl-mtsmap #mts-mapgl { position: absolute; inset: 0; }
body.cab .pl-mtscap { margin: 0; padding: 12px 16px; }
@media (max-width: 900px) { body.cab .pl-mtsmap .map { height: 320px; } }
/* «Целевая аудитория»: the services as cards on the left, the map of the houses and the chosen service's detail on the right */
body.cab .tg-wrap { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 13fr); gap: 16px; align-items: start; }
body.cab .tg-list { display: grid; gap: 10px; }
body.cab .tg-svc { display: grid; gap: 6px; padding: 14px 16px; text-align: left; font: inherit; color: inherit; cursor: pointer; }
body.cab .tg-svc.on { box-shadow: inset 0 0 0 1.5px var(--accent); background: var(--accent-tint); }
body.cab .tg-svc .tg-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
body.cab .tg-svc .tg-h b { font-weight: 500; }
body.cab .tg-svc .t-metric .v { font-size: 28px; }
body.cab .tg-who { font-size: 12px; color: var(--fg-2); }
body.cab .tg-right { display: grid; gap: 16px; position: sticky; top: 16px; }
body.cab .tg-mapcard { overflow: hidden; }
body.cab .tg-mapcard .map { position: relative; height: 440px; margin: 0; border: 0; border-radius: 0; }
body.cab .tg-mapcard #tg-mapgl { position: absolute; inset: 0; }
body.cab .tg-steps { display: grid; gap: 6px; }
body.cab .tg-steps .share { grid-template-columns: 120px minmax(60px, 1fr) auto; }
@media (max-width: 900px) {
  body.cab .tg-wrap { grid-template-columns: minmax(0, 1fr); }
  body.cab .tg-right { position: static; order: -1; }
  body.cab .tg-mapcard .map { height: 320px; }
}
/* the houses by whether a service wins clients there now (radar/docs/2026-11-01-target-saturation.md): the cabinet's green, MTS yellow
   (prep.css), the red of the walks' fixes on «Место и потоки»; the competitors hollow, ringed by their booking */
body.cab { --sat-g: #1f7a3e; --sat-y: #fac031; --sat-r: #b42318; --sat-u: #8a847f; }
body.cab .tg-split { display: flex; height: 8px; border-radius: 4px; overflow: hidden; background: var(--panel); }
body.cab .tg-split i { display: block; height: 100%; }
body.cab .tg-split .g, body.cab .tg-dot.g { background: var(--sat-g); }
body.cab .tg-split .y, body.cab .tg-dot.y { background: var(--sat-y); }
body.cab .tg-split .r, body.cab .tg-dot.r { background: var(--sat-r); }
body.cab .tg-split .u, body.cab .tg-dot.u { background: var(--sat-u); }
body.cab .tg-keys { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--fg-2); }
body.cab .tg-keys > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
body.cab .tg-keys b { font-weight: 500; color: var(--fg); }
body.cab .tg-dot { display: inline-block; flex: none; width: 9px; height: 9px; border-radius: 50%; }
body.cab .tg-dot.none { background: #e4e5e1; box-shadow: inset 0 0 0 1px var(--line-strong); }
body.cab .tg-ring { display: inline-block; flex: none; box-sizing: border-box; width: 11px; height: 11px; border-radius: 50%; border: 2.5px solid var(--sat-u); background: #fff; }
body.cab .tg-ring.f { border-color: var(--sat-r); }
body.cab .tg-ring.b { border-color: var(--sat-g); }
body.cab .tg-tones { display: grid; gap: 10px; margin: 4px 0 12px; }
body.cab .tg-tone { display: grid; grid-template-columns: 130px minmax(60px, 1fr) auto; gap: 2px 10px; align-items: center; }
body.cab .tg-tone .t-bar { height: 8px; }
body.cab .tg-tone .cap { grid-column: 1 / -1; }
body.cab .tg-tl { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; }
body.cab .tg-rivals { display: grid; gap: 2px; margin: 0 0 8px; padding: 0; list-style: none; }
body.cab .tg-rivals button { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 8px; align-items: center; width: 100%; padding: 6px 8px; border: 0; border-radius: var(--r-ctl); background: none; font: inherit; font-size: 13px; color: inherit; text-align: left; cursor: pointer; }
body.cab .tg-rivals button:hover { background: var(--panel); }
body.cab .tg-rivals .cap { grid-column: 2; }
body.cab .tg-legend { display: grid; gap: 6px; padding: 10px 14px 12px; border-top: 1px solid var(--line); font-size: 12px; color: var(--fg-2); }
body.cab .tg-lg { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
body.cab .tg-lg b { margin-right: 2px; font-weight: 500; color: var(--fg); }
body.cab .tg-lg > span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
body.cab .tg-legend .sw { display: block; width: 18px; height: 3px; border-radius: 2px; }
body.cab .tg-legend .sw.dash { height: 0; border-top: 2px dashed #4a3ea3; border-radius: 0; }
body.cab .tg-legend .sw.terr { height: 0; border-top: 2px dotted #1d2023; border-radius: 0; }
body.cab .tg-legend .sw.rings { height: 0; border-top: 1.5px dashed var(--accent); border-radius: 0; }

/* The territory of the cabinet (territory.js, the owner, 31.10.2026): one line under the title of the pages other than «Конкуренты»; on
   «Сравнение» the same switch over the map lent from «Конкуренты» (audience.js placeMap), the compared marks filled */
body.cab .terr-slot { margin: 0 0 16px; }
body.cab .terr { gap: 6px 8px; }
body.cab .terr .terr-n { flex: 1 1 260px; font-size: 12px; color: var(--fg-2); }
body.cab .terr .seg button[disabled] { opacity: .6; cursor: progress; }
body.cab .d-terr { margin: 2px 0 14px; }
body.cab .cmp-terr { display: grid; gap: 10px; margin: 0 0 16px; }
body.cab .cmp-terr-n { margin: 0; }
body.cab .cmp-mapslot .riv-map { position: relative; top: 0; height: 340px; min-height: 0; }
body.cab .riv-map.on-cmp .riv-lg-pk { display: none; }
body.cab .riv-map .mk.made { background: var(--d2); border-color: var(--d6); }
body.cab .riv-map .map-legend i.c.made { background: var(--d2); border-color: var(--d6); }
body.cab .pl-legend .sw.terr { height: 0; border-top: 2px dotted #1d2023; border-radius: 0; background: none; }
@media (max-width: 900px) { body.cab .cmp-mapslot .riv-map { height: 280px; } }

/* «Кто пишет отзывы» on «Целевая аудитория» (src/target.js revHtml): a table on a computer, a small card a place on a phone */
body.cab .tg-rev { margin-top: 20px; }
body.cab .tg-rev .t-ch .btn { margin-left: auto; }
body.cab .tg-rev .cmp-t td.num { white-space: nowrap; }
body.cab .tg-rev .t-job { margin: 8px 0 12px; }
@media (max-width: 720px) {
  body.cab .tg-rev .cmp-t, body.cab .tg-rev .cmp-t tbody { display: block; }
  body.cab .tg-rev .cmp-t thead { display: none; }
  body.cab .tg-rev .cmp-t tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
  body.cab .tg-rev .cmp-t th, body.cab .tg-rev .cmp-t td { width: auto; padding: 2px 0; border: 0; text-align: left; white-space: normal; }
  body.cab .tg-rev .cmp-t tbody th[scope=row] { grid-column: 1 / -1; padding-bottom: 4px; }
  body.cab .tg-rev .cmp-t td[data-l]::before { content: attr(data-l); display: block; font-size: 12px; color: var(--fg-2); }
  body.cab .tg-rev .cmp-t td[colspan] { grid-column: 1 / -1; }
}

/* «Лидогенерация» (src/leads.js, the owner 01.11.2026): the tabs of the section; three cards — the windows as chips of time, the channels as
   rows with a switch (Navia «Where do you post?»), the texts with a promo code each; the accent on actions and on the chosen only */
body.cab .lg-tabs { display: flex; gap: 4px; margin: -4px 0 16px; border-bottom: 1px solid var(--line); overflow-x: auto; }
body.cab .lg-tabs a { padding: 10px 12px; color: var(--fg-2); font-size: 14px; text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
body.cab .lg-tabs a[aria-current=page] { color: var(--fg); border-bottom-color: var(--accent); font-weight: 500; }
body.cab .lg-card { display: grid; gap: 14px; margin: 0 0 16px; }
body.cab .lg-card-h { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; }
body.cab .lg-card-h h2 { margin: 0; display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 500; }
body.cab .lg-n { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--panel); color: var(--fg-2); font-size: 13px; }
body.cab .lg-day { display: grid; gap: 8px; }
body.cab .lg-dh { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; }
body.cab .lg-ws { display: flex; flex-wrap: wrap; gap: 8px; }
body.cab .lg-w { display: inline-flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: 44px; min-width: 84px; padding: 4px 12px; border: 1px solid var(--line-strong);
  border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); font: 500 15px var(--font); cursor: pointer; text-align: left; }
body.cab .lg-w small { font-size: 11px; font-weight: 400; color: var(--fg-3); }
body.cab .lg-w[aria-pressed=true] { border: 1.5px solid var(--accent); background: var(--accent-tint); padding: 3.5px 11.5px; }
body.cab .lg-places { display: grid; gap: 12px; padding: 14px; border-radius: var(--r-card); background: var(--panel); }
body.cab .lg-places > b { font-weight: 500; }
body.cab .lg-f { display: grid; gap: 4px; font-size: 13px; color: var(--fg-2); }
body.cab .lg-f input, body.cab .lg-f textarea { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); font: 400 15px/1.45 var(--font); }
body.cab .lg-f textarea { resize: vertical; min-height: 96px; }
body.cab .lg-chs { display: grid; gap: 0; }
body.cab .lg-ch { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px 0; border-top: 1px solid var(--line); cursor: pointer; }
body.cab .lg-ch:first-child { border-top: 0; }
body.cab .lg-ch.late .lg-ch-h b { color: var(--fg-2); }
body.cab .lg-ch-b { display: grid; gap: 4px; min-width: 0; }
body.cab .lg-ch-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
body.cab .lg-ch-h b { font-weight: 500; font-size: 15px; }
body.cab .lg-ch-w, body.cab .lg-cost, body.cab .lg-why { font-size: 13px; color: var(--fg-2); }
body.cab .lg-ch-st { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
body.cab .lg-tx { display: grid; gap: 8px; padding: 14px 0; border-top: 1px solid var(--line); }
body.cab .lg-tx-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
body.cab .lg-tx-h b { font-weight: 500; }
body.cab .lg-vars { display: flex; flex-wrap: wrap; gap: 6px; }
body.cab .lg-count { font-size: 12px; color: var(--fg-3); }
body.cab .lg-count.over { color: var(--sched); }
body.cab .lg-how summary { cursor: pointer; font-size: 13px; color: var(--fg-2); }
body.cab .lg-how p { margin: 6px 0 0; font-size: 13px; }
body.cab .lg-act, body.cab .lg-all { display: flex; flex-wrap: wrap; gap: 8px; }
body.cab .lg-pub { margin: 0; font-size: 14px; color: var(--fg-2); }
body.cab .lg-hist { list-style: none; margin: 0; padding: 0; display: grid; }
body.cab .lg-hist li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; padding: 10px 0; border-top: 1px solid var(--line); font-size: 14px; }
body.cab .lg-hist li:first-child { border-top: 0; }
body.cab .lg-hist li > span:first-child { display: grid; gap: 2px; }
body.cab .lg-res { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13px; color: var(--fg-2); }
body.cab .lg-pl-sum { display: flex; align-items: center; gap: 8px; margin: 0; }
@media (max-width: 560px) {
  body.cab .lg-act .btn, body.cab .lg-all .btn { flex: 1 1 140px; height: 44px; }
  body.cab .lg-w { min-width: calc(50% - 4px); }
}
@media (max-width: 900px) { body.cab #lg-box { padding-bottom: 72px; } }   /* the last button clears «Обсудить» floating over the page */
body.cab .lg-sum { padding-bottom: 6px; border-bottom: 1px solid var(--line); }
body.cab .lg-mark { color: var(--sched); }   /* the marking of an advertisement on the internet: what to do before publishing */
body.cab .lg-no { margin-top: 12px; }   /* why Instagram is not among the channels */
/* «Лидогенерация» → «Ozon» (src/ozon.js; radar/docs/2026-11-03-ozon.md): the advice and the settings on the left, the map of the pickup
   points on the right, as «Целевая аудитория» lays them */
body.cab .oz-left { display: grid; gap: 16px; align-content: start; }
body.cab .oz-verdict .t-ch .st { margin-left: auto; }
body.cab .oz-verdict .tg-split { margin: 4px 0 8px; }
body.cab .oz-set .t-ch .btn { margin-left: auto; }
body.cab .oz-text { margin: 12px 0 0; }
body.cab #oz-box > .riv-f { margin-bottom: 16px; }
body.cab .tg-mapcard #oz-mapgl { position: absolute; inset: 0; }
@media (max-width: 900px) { body.cab #page-ozon { padding-bottom: 72px; } }   /* the line of sources under the page clears «Обсудить» floating over it */
/* «Расширить бизнес» (src/expand.js; the owner, 03.11.2026): the area chosen over the map, the radar's line going down its squares, the
   best places numbered on the map and as cards on the left, as «Целевая аудитория» lays them */
body.cab .ex-pick { display: grid; gap: 14px; }
body.cab .ex-pick .t-ch { margin-bottom: 0; }
body.cab .ex-lead { margin: 0; max-width: 72ch; }
body.cab .ex-sel { display: grid; gap: 4px; max-width: 420px; font-size: 13px; color: var(--fg-2); }
body.cab .ex-sel select { width: 100%; height: 36px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); font: 400 14px var(--font); }
body.cab .ex-map { position: relative; height: 440px; margin: 0; border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; }
body.cab .tg-mapcard .ex-map { border: 0; border-radius: 0; }
body.cab #ex-mapgl { position: absolute; inset: 0; }
body.cab .ex-map.drawing .office-mk, body.cab .ex-map.drawing .ex-mk { pointer-events: none; }
body.cab .ex-act { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
body.cab .ex-job { margin-bottom: 16px; }
body.cab .ex-past { margin-bottom: 16px; }
body.cab .ex-past .btn { margin-left: auto; }
/* the places: a numbered mark on the map, a card each on the left */
body.cab .ex-mk { display: grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 2px solid var(--d5); border-radius: 50%; background: var(--surface); color: var(--d5); font: 500 12px var(--mono); line-height: 1; cursor: pointer; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
body.cab .ex-mk:hover { background: var(--d5); color: #ffffff; }
body.cab .ex-wrap { grid-template-columns: minmax(0, 9fr) minmax(0, 11fr); }   /* the cards hold a table: a little wider than on «Целевая аудитория» */
body.cab .ex-list { display: grid; gap: 16px; align-content: start; }
body.cab .ex-place { min-width: 0; }
body.cab .ex-place .cmp-tw { overflow-x: auto; overscroll-behavior-x: contain; }
body.cab .ex-t thead th { white-space: normal; }
body.cab .ex-t td:last-child, body.cab .ex-t thead th:last-child { white-space: nowrap; }   /* the mark («как у вас») does not break letter by letter in a narrow card */
body.cab .ex-tip-short { display: none; }
body.cab .ex-place .t-ch .st { margin-left: auto; }
body.cab .ex-place .pl-camp { margin-bottom: 10px; }
body.cab .ex-place .cmp-tw { margin-bottom: 10px; }
body.cab .ex-place .cmp-note { margin: 0 0 10px; }
body.cab .ex-place .t-job { margin: 0 0 10px; }
body.cab .ex-ready { margin: 0 0 10px; color: var(--ok); }
body.cab .ex-foot { margin-top: 12px; }
body.cab .tg-legend .ex-ramp { display: inline-grid; grid-auto-flow: column; width: 84px; height: 10px; border-radius: 3px; overflow: hidden; }
body.cab .tg-legend .ex-ramp i { display: block; }
body.cab .tg-legend .ex-cell { display: inline-block; width: 12px; height: 12px; border-radius: 2px; background: #e4e5e1; box-shadow: inset 0 0 0 1px var(--line-strong); }
@media (max-width: 720px) {
  body.cab .ex-tip-long { display: none; }
  body.cab .ex-tip-short { display: inline; }
  body.cab .ex-t, body.cab .ex-t tbody { display: block; }
  body.cab .ex-t thead { display: none; }
  body.cab .ex-t tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
  body.cab .ex-t th, body.cab .ex-t td { width: auto; padding: 2px 0; border: 0; text-align: left; white-space: normal; }
  body.cab .ex-t tbody th[scope=row] { grid-column: 1 / -1; padding-bottom: 4px; }
  body.cab .ex-t td[data-l]::before { content: attr(data-l); display: block; font-size: 12px; color: var(--fg-2); }
}
@media (max-width: 900px) {
  body.cab #page-expand { padding-bottom: 72px; }   /* the last card and the line of sources clear «Обсудить» floating over the page */
  body.cab .ex-wrap { grid-template-columns: minmax(0, 1fr); }   /* one column, the map first, as .tg-wrap */
  body.cab .ex-map { height: 320px; }
  body.cab .ex-sel { max-width: none; }
  body.cab .ex-past .btn { margin-left: 0; }
}
/* «МТС Маркетолог» after the five entrepreneurs (05.11.2026): what it is and what it costs first, the mailings as cards — whom, where,
   the SMS to copy — and the form's fields under a fold (src/place.js paintMts) */
body.cab .mts-about { margin-bottom: 20px; }
body.cab .mts-dl { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 6px 14px; margin: 0; font-size: 14px; line-height: 1.45; }
body.cab .mts-dl dt { color: var(--fg-2); font-size: 13px; }
body.cab .mts-dl dd { margin: 0; min-width: 0; }
body.cab .mts-3 { grid-template-columns: 160px minmax(0, 1fr); gap: 12px 18px; }
body.cab .mts-3 dt { font-weight: 500; color: var(--fg); font-size: 14px; }
body.cab .mts-price { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; color: var(--fg-2); }
body.cab .mts-price input { width: 110px; padding: 6px 8px; border: 1px solid var(--line-strong); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); font: 400 14px var(--mono); }
body.cab .mts-h { margin: 0 0 12px; font-size: 18px; font-weight: 500; }
body.cab .mts-list { margin-bottom: 20px; }
body.cab .mts-card { display: grid; gap: 12px; align-content: start; }
body.cab .mts-card .t-ch { margin-bottom: 0; }
body.cab .mts-sms { display: grid; gap: 8px; padding: 12px 14px; border-radius: 8px; background: var(--tint); }
body.cab .mts-sms p { margin: 0; font-size: 15px; line-height: 1.45; }
body.cab .mts-fields summary { cursor: pointer; font-size: 13px; color: var(--accent); }
body.cab .mts-fields .f:first-of-type { margin-top: 8px; border-top: 1px solid var(--line); }
body.cab .mts-pro summary { font-size: 13px; }
@media (max-width: 700px) {
  body.cab .mts-dl, body.cab .mts-3 { grid-template-columns: minmax(0, 1fr); gap: 2px 0; }
  body.cab .mts-3 dd { margin-bottom: 10px; }
  body.cab .mts-price { display: flex; }
}
/* «Место и потоки»: «Что с этим делать» — three lines of advice over the hours and the incomes (round 2 of 05.11.2026) */
body.cab .pl-advice { margin-bottom: 16px; }
body.cab .pl-do { margin: 0; padding-left: 18px; display: grid; gap: 8px; font-size: 14px; line-height: 1.45; }
body.cab .pl-do b { font-weight: 500; }
