/* «Дэшборд» кабинета (src/dash.js): полоса из шести разделов и «Что делать»; только токены и компоненты body.cab (cabinet-theme.css).
   Вариант 3 владельца (30.10.2026): справа встанет «Обсудить» во всю высоту. */
body.cab .d-main { display: grid; gap: 16px; align-content: start; min-width: 0; }
body.cab .d-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 0 0 4px; }
body.cab .d-h h2 { margin: 0; font-size: 16px; }
body.cab .d-sub { font-size: 12px; color: var(--fg-2); }

/* «В рублях» (волна 2.4, сюда ушла «Сегодня»): свободное время трёх дней, итог 30 дней, средний чек; на телефоне — одна под другой */
body.cab .d-money { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(0, 1fr); }
body.cab .d-mon { display: grid; gap: 4px; align-content: start; padding: 16px 20px; border-left: 1px solid var(--line); min-width: 0; color: inherit; text-decoration: none; }
body.cab .d-mon:first-child { border-left: 0; }
body.cab .d-mon:hover { background: var(--page); }
body.cab .d-mon .cap { font-size: 12px; color: var(--fg-2); }
body.cab .d-mon .v { font: 500 28px/1.1 var(--mono); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; white-space: nowrap; }
body.cab .d-mon .v small { font: 400 13px/1 var(--font); color: var(--fg-2); margin-left: 6px; letter-spacing: 0; }
body.cab .d-mon .d { font-size: 12px; color: var(--fg-2); }
body.cab .d-mon .v.w { font: 500 22px/1.2 var(--font); letter-spacing: 0; white-space: normal; }   /* «Всё занято»: words, not a figure */

/* «Результат анализа»: шесть плиток в ряд, на телефоне — по две */
body.cab .d-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
body.cab .d-tile { position: relative; display: grid; gap: 6px; padding: 14px; border-left: 1px solid var(--line); align-content: start; justify-items: start; min-width: 0; }
body.cab .d-tile:first-child { border-left: 0; }
body.cab .d-tile:hover { background: var(--page); }
body.cab .d-tl { position: absolute; inset: 0; border-radius: inherit; }
body.cab .d-tl:focus-visible { outline-offset: -2px; }
body.cab .d-tile .cap { font-size: 12px; color: var(--fg-2); }
body.cab .d-tile .v { font: 500 20px/1.15 var(--mono); letter-spacing: -0.02em; white-space: nowrap; }
/* the unit under the figure: six tiles beside the chat leave about 115 px each */
body.cab .d-tile .v small { display: block; margin-top: 2px; font: 400 12px/1.3 var(--font); color: var(--fg-2); letter-spacing: 0; white-space: normal; }
body.cab .d-tile .st { white-space: normal; height: auto; min-height: 22px; line-height: 1.25; padding: 3px 8px; }
body.cab .d-tile .d { font-size: 12px; color: var(--fg-2); }
body.cab .d-tile .t-bar { width: 100%; }
body.cab .d-tile.fail .v { color: var(--sched); }
body.cab .d-tile .v.w { font: 500 18px/1.2 var(--font); letter-spacing: 0; white-space: normal; }   /* «Всё занято»: words, not a figure */
body.cab .d-retry { position: relative; z-index: 1; }
/* the windows and the mailings in sight; the four sections of the analysis fold into «Данные о вашем бизнесе» once done (30.10.2026) */
body.cab .d-day { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.cab .d-four { grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); }
body.cab .d-data > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: inherit; }
body.cab .d-data > summary::-webkit-details-marker { display: none; }
body.cab .d-data > summary .d-h { flex: 1; margin: 0; }
body.cab .d-data > summary::after { content: ''; flex: none; width: 7px; height: 7px; margin-top: -4px; border-right: 1.5px solid var(--fg-3); border-bottom: 1.5px solid var(--fg-3); transform: rotate(45deg); }
body.cab .d-data[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
body.cab .d-data > summary:hover { background: var(--page); }
body.cab .d-data > summary:focus-visible { outline-offset: -2px; }

/* «Что делать» */
body.cab .d-todo { display: grid; gap: 10px; }
body.cab .d-grp { font-size: 11px; color: var(--fg-3); letter-spacing: .04em; text-transform: uppercase; margin: 6px 0 -2px; }
body.cab .d-act { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 4px 12px; align-content: start; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-ctl); background: var(--surface); }
body.cab .d-act.first { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
body.cab .d-act .n { 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); }
body.cab .d-act.first .n { border-color: var(--accent); color: var(--accent); }
body.cab .d-act b { font-weight: 500; align-self: center; }
body.cab .d-act p { margin: 2px 0 0; font-size: 13px; color: var(--fg-2); grid-column: 2; }
body.cab .d-act .why { grid-column: 2; font-size: 12px; color: var(--fg-3); }
body.cab .d-act .btns { grid-column: 2; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
body.cab .d-act a.btn { display: inline-flex; align-items: center; text-decoration: none; color: var(--fg); }
body.cab .d-act a.btn-primary, body.cab .d-act a.btn-primary:hover { color: var(--on-accent); }
body.cab .d-act.soon { background: var(--panel); border-style: dashed; }
body.cab .d-act.soon b { color: var(--fg-2); font-weight: 400; }
body.cab .d-empty { margin: 4px 0 0; font-size: 13px; color: var(--fg-2); }
/* Версия 3 (владелец, 03.11.2026; radar/docs/2026-11-03-dashboard-zones.md) в виде «Фраза и картинка» (владелец, о черновиках: «давай второй
   вариант» — черновик m2 в палитре 3б): у каждой зоны полоса-ответ — фраза, одно крупное число, картинка данных на белой вставке, одна
   кнопка, — под ней карточки одного вида: картинка, вывод, число с меткой, одна кнопка. Палитра 3б — только у страницы дэшборда (#page-dash):
   кремовый холст, бирюза — свой салон, сирень — конкуренты, персик — события, бирюзовая кнопка на белом и чернильная на цветной полосе;
   красный, жёлтый и зелёный — только у состояний и всегда со словом. Все цвета — переменные одного блока ниже: тёмная тема поменяет только
   его. Меню, другие страницы и «Обсудить» остаются как были: у них свои, кабинетные цвета. */
body.cab #page-dash {
  --dz-canvas: #f6f2ea; --dz-paper: #ffffff; --dz-paper-2: #fbf8f2; --dz-stone: #ece3d5;
  --dz-line: #e7ddcd; --dz-line-2: #cfc3b1;
  --dz-ink: #1d1a15; --dz-ink-2: #5b5247; --dz-ink-h: #38322a; --dz-on-ink: #ffffff;
  --dz-hover: rgb(29 26 21 / .06); --dz-wash: rgb(29 26 21 / .07); --dz-wash-2: rgb(29 26 21 / .12); --dz-veil: rgb(255 255 255 / .55);
  --dz-sun: #5fd5b6; --dz-sun-soft: #e4f8f1; --dz-sun-art: #0f8a72;
  --dz-lilac: #bdb2ff; --dz-lilac-soft: #efebff; --dz-lilac-ink: #3d2f99; --dz-lilac-art: #8f80ff;
  --dz-rose: #ffbd8a; --dz-rose-soft: #fff1e6; --dz-rose-art: #f07f33;
  --dz-act: #116c67; --dz-act-h: #0b5550; --dz-on-act: #ffffff;
  --dz-red-bg: #ffe1da; --dz-red-ink: #a3221a; --dz-red: #e5392b;
  --dz-amber-bg: #ffeab8; --dz-amber-ink: #744b00; --dz-amber: #e09b00;
  --dz-green-bg: #d9f1e1; --dz-green-ink: #1d6638; --dz-green: #2b9a57;
  --dz-grey: #a89c8a;
  --dz-font: var(--font);
  /* the canvas to the page's edges: the margins of .cab-main taken back */
  margin: -20px -24px -40px; padding: 20px 24px 40px; background: var(--dz-canvas);
}
body.cab #dash-head, body.cab #dash-main { font-family: var(--dz-font); color: var(--dz-ink); }
/* the cabinet's own parts inside the dashboard — the statuses, the bars, the territory's line, the tiles of the data — take the palette too */
body.cab #dash-head, body.cab #dash-main :is(.dz, .d-onb, .d-data) {
  --fg: var(--dz-ink); --fg-2: var(--dz-ink-2); --fg-3: var(--dz-ink-2); --line: var(--dz-line); --line-strong: var(--dz-line-2);
  --page: var(--dz-paper-2); --surface: var(--dz-paper); --panel: var(--dz-stone);
  --accent: var(--dz-act); --accent-h: var(--dz-act-h); --accent-tint: var(--dz-sun-soft); --warn-bg: var(--dz-amber-bg); --sched: var(--dz-amber-ink); --ok: var(--dz-green-ink);
}
body.cab #dash-main :is(.dz, .d-onb, .d-data) .st { background: var(--dz-stone); color: var(--dz-ink-2); font-size: 12px; }
body.cab #dash-main :is(.dz, .d-onb, .d-data) .st.ok { background: var(--dz-green-bg); color: var(--dz-green-ink); }
body.cab #dash-main :is(.dz, .d-onb, .d-data) .st.warn { background: var(--dz-amber-bg); color: var(--dz-amber-ink); }
body.cab #dash-main :is(.dz, .d-onb, .d-data) .st.act { background: var(--dz-sun-soft); color: var(--dz-act); }
body.cab #dash-head .num, body.cab #dash-main .num { font-family: inherit; font-weight: inherit; font-variant-numeric: normal; letter-spacing: 0; }
body.cab .dz h2, body.cab .dz h3, body.cab .dz h4, body.cab .dz p, body.cab .dz ul, body.cab .dz ol, body.cab .dz dl, body.cab .dz dd, body.cab .dz-head p, body.cab .dz-head h1 { margin: 0; padding: 0; }
body.cab .dz ul, body.cab .dz ol { list-style: none; }
body.cab .dz h2, body.cab .dz h3, body.cab .dz h4, body.cab .dz-head h1 { color: var(--dz-ink); text-wrap: balance; }
body.cab .dz p { text-wrap: pretty; }
body.cab .dz a:not([class]) { color: var(--dz-act); font-weight: 600; }
body.cab .dz-eye { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 12px; font-weight: 600; line-height: 1.3; text-transform: uppercase; letter-spacing: .09em; color: var(--dz-ink-2); }

/* the head: the day as the draft's, when the data and the neighbours were looked at, three ways to the zones */
body.cab .dz-head { margin: 0 0 8px; padding: 4px 4px 0; }
body.cab .dz-head h1 { margin-top: 8px; font: 600 clamp(32px, 3.4vw, 46px)/1.02 var(--dz-font); letter-spacing: -.04em; }
body.cab .dz-head h1 span { color: var(--dz-ink-2); }
body.cab .dz-when { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 14px; }
body.cab .dz-when p { display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: 14.5px; color: var(--dz-ink-2); }
body.cab .dz-since { margin-top: 12px; font-size: 14px; color: var(--dz-ink-2); }
body.cab .dz-since b { margin-right: 6px; color: var(--dz-ink); }
body.cab .dz-jump { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; margin-top: 18px; }
body.cab .dz-j { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto; grid-template-areas: "sq name go" ". state go"; align-items: center; gap: 4px 12px;
  min-height: 68px; padding: 12px 16px; border: 0; border-radius: 20px; background: var(--dz-paper); color: var(--dz-ink); font: inherit; text-align: left; cursor: pointer; }
body.cab .dz-j:hover { box-shadow: 0 0 0 1.5px var(--dz-line-2); }
body.cab .dz-j > i { grid-area: sq; width: 14px; height: 14px; border-radius: 4px; background: var(--dz-sun); }
body.cab .dz-j.rivals > i { background: var(--dz-lilac); }
body.cab .dz-j.events > i { background: var(--dz-rose); }
body.cab .dz-j.cmp > i { background: var(--dz-green); }   /* «Спрос и места рядом» */
body.cab .dz-j small.good { color: var(--dz-green-ink); font-weight: 600; }
body.cab .dz-j small.good i { width: 8px; height: 8px; border-radius: 50%; background: var(--dz-green); }
body.cab .dz-j b { grid-area: name; font: 600 16px/1.25 var(--dz-font); letter-spacing: -.01em; overflow-wrap: anywhere; }
body.cab .dz-j small { grid-area: state; display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--dz-ink-2); }
body.cab .dz-j small.red { color: var(--dz-red-ink); font-weight: 600; }
body.cab .dz-j small i { width: 8px; height: 8px; border-radius: 50%; background: var(--dz-red); }
body.cab .dz-j-go { grid-area: go; font-size: 18px; color: var(--dz-ink-2); }

/* buttons: teal filled on white, ink filled on a coloured band, an outlined pill for «Обсудить», links underlined with an arrow */
body.cab .dz-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border: 0; border-radius: 999px;
  background: var(--dz-act); color: var(--dz-on-act); font: 600 15px/1.15 var(--dz-font); text-align: center; text-decoration: none; white-space: nowrap; cursor: pointer; }
body.cab .dz-btn:hover:not(:disabled) { background: var(--dz-act-h); color: var(--dz-on-act); text-decoration: none; }
body.cab .dz-btn.dz-ink { background: var(--dz-ink); color: var(--dz-on-ink); }
body.cab .dz-btn.dz-ink:hover:not(:disabled) { background: var(--dz-ink-h); color: var(--dz-on-ink); }
body.cab .dz-ghost { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 16px; border: 1.5px solid var(--dz-ink); border-radius: 999px;
  background: transparent; color: var(--dz-ink); font: 600 14px/1.15 var(--dz-font); text-align: center; cursor: pointer; }
body.cab .dz-ghost:hover:not(:disabled) { background: var(--dz-hover); }
body.cab .dz-btn:disabled, body.cab .dz-ghost:disabled { opacity: .55; cursor: default; }
body.cab .dz-go { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0; border: 0; background: none; color: var(--dz-ink);
  font: 600 14.5px/1.3 var(--dz-font); text-align: left; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; cursor: pointer; }
body.cab .dz-go:hover { color: var(--dz-ink); text-decoration-thickness: 2.5px; }
body.cab .dz-go:disabled { color: var(--dz-ink-2); cursor: default; text-decoration: none; }
body.cab .dz-x { min-height: 40px; padding: 0 2px; border: 0; background: none; color: var(--dz-ink-2); font: 500 14px var(--dz-font); text-decoration: underline;
  text-decoration-thickness: 1.5px; text-underline-offset: 4px; cursor: pointer; }
body.cab .dz-x:hover { color: var(--dz-ink); }
body.cab .dz-lbl { display: inline-block; padding: 1px 8px; border-radius: 999px; background: var(--dz-wash); color: var(--dz-ink-2); font-size: 12px; font-weight: 500;
  line-height: 1.6; vertical-align: 1px; white-space: nowrap; }
body.cab .dz-band .dz-lbl, body.cab .dz-deal.first .dz-lbl { background: var(--dz-wash-2); color: var(--dz-ink); }
/* a date's kind beside a band's heading of 30 px («праздник · выходной»): a step larger and on the line's middle (the main session, 04.11.2026:
   «фишка… рядом с заголовком мелкая на 1366») */
body.cab .dz-band h3 .dz-lbl { font-size: 13px; letter-spacing: 0; vertical-align: .45em; }
/* a state in words with its colour (the traffic light only here) */
body.cab .dz-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--dz-stone); color: var(--dz-ink-2);
  font: 600 12.5px/1.2 var(--dz-font); white-space: nowrap; }
body.cab .dz-chip i { width: 8px; height: 8px; border-radius: 50%; background: var(--dz-grey); }
body.cab .dz-chip.red { background: var(--dz-red-bg); color: var(--dz-red-ink); }
body.cab .dz-chip.red i { background: var(--dz-red); }
body.cab .dz-chip.amber { background: var(--dz-amber-bg); color: var(--dz-amber-ink); }
body.cab .dz-chip.amber i { background: var(--dz-amber); }
body.cab .dz-chip.green { background: var(--dz-green-bg); color: var(--dz-green-ink); }
body.cab .dz-chip.green i { background: var(--dz-green); }
/* «загружается»: the section is still gathered — its dot pulses (still with reduced motion) */
body.cab .dz-chip.load i { background: var(--dz-act); animation: d-dot 1.4s ease-in-out infinite; }
body.cab .dz-badge { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--dz-stone); color: var(--dz-ink-2); font-size: 12.5px; font-weight: 600; }
body.cab .dz-badge.attention { background: var(--dz-red-bg); color: var(--dz-red-ink); }
body.cab .dz-badge.watch { background: var(--dz-amber-bg); color: var(--dz-amber-ink); }
body.cab .dz-badge.chance { background: var(--dz-green-bg); color: var(--dz-green-ink); }

/* a zone: no box of its own on the canvas — its eyebrow, heading and line, the band of its colour, white cards under it */
body.cab .dz { margin: 32px 0 0; padding: 0; container-type: inline-size; scroll-margin-top: 12px; }
body.cab .d-onb + .dz { margin-top: 16px; }
body.cab .dz.sun { --dz-band: var(--dz-sun); }
body.cab .dz.lilac { --dz-band: var(--dz-lilac); }
body.cab .dz.rose { --dz-band: var(--dz-rose); }
body.cab .dz-zh { padding: 0 4px; }
body.cab .dz-sq { width: 12px; height: 12px; border-radius: 3px; background: var(--dz-band); }
body.cab .dz-zh h2 { margin-top: 8px; font: 600 clamp(28px, 2.6vw, 36px)/1.06 var(--dz-font); letter-spacing: -.035em; }
body.cab .dz-lead { display: flex; align-items: baseline; gap: 10px; max-width: 62ch; margin-top: 10px; font-size: 16px; line-height: 1.45; }
body.cab .dz-dot { flex: none; width: 10px; height: 10px; border-radius: 50%; transform: translateY(-1px); }
body.cab .dz-dot.red { background: var(--dz-red); }
body.cab .dz-dot.green { background: var(--dz-green); }
body.cab .dz-src { margin: 18px 4px 0; font-size: 12.5px; color: var(--dz-ink-2); }
body.cab .dz-empty, body.cab .dz-small { font-size: 13.5px; line-height: 1.45; color: var(--dz-ink-2); }
body.cab .dz-after { margin: 12px 4px 0; }
body.cab .dz-ch > .dz-empty { margin-top: 12px; padding: 16px 20px; border-radius: 24px; background: var(--dz-paper); }
body.cab .dz-tag { font-size: 14px; color: var(--dz-ink-2); }

/* the band: a phrase and one figure, the picture on a white inset, one button */
body.cab .dz-band { margin-top: 18px; padding: 24px 24px 20px; border-radius: 28px; background: var(--dz-band); color: var(--dz-ink); }
body.cab .dz-band-top { display: grid; gap: 16px 28px; }
body.cab .dz-band-k { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-bottom: 12px; font-size: 14px; }
body.cab .dz-band-k b { font-weight: 600; }
body.cab .dz-band h3 { max-width: 24ch; font: 600 30px/1.1 var(--dz-font); letter-spacing: -.03em; }
body.cab .dz-band-say > p:not(.dz-band-k) { margin-top: 10px; font-size: 15px; line-height: 1.45; }
body.cab .dz-band-say > .dz-band-fact { font-size: 16px; font-weight: 500; }
body.cab .dz-band-fact .dz-cells { margin-right: 8px; vertical-align: 1px; }
body.cab .dz-band-num { display: grid; justify-items: start; align-content: end; gap: 6px; }
body.cab .dz-band-num p { max-width: 16em; font-size: 15px; font-weight: 500; }
body.cab .dz-band-num .dz-bignum { font: 600 52px/.95 var(--dz-font); letter-spacing: -.05em; white-space: nowrap; }
body.cab .dz-band-num .dz-bignum.long { font-size: 32px; line-height: 1.05; white-space: normal; }
body.cab .dz-band-num .dz-bignum small { font-size: 20px; font-weight: 500; letter-spacing: 0; }
body.cab .dz-inset { margin-top: 18px; padding: 16px 20px; border-radius: 20px; background: var(--dz-paper); container-type: inline-size; }
/* the territory's line is put in by territory.js: until it is, no empty inset */
body.cab .dz-inset:has(> .terr-slot[hidden]:only-child) { display: none; }
body.cab .dz-band-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: 16px; }
/* the first screen (the owner, 04.11.2026): the two lines, then «У кого есть свободное время» — you and the neighbours a day a row, the
   day opening under it; the own colour the band's, the neighbours' lilac */
body.cab .dz-today { margin-top: 0; }
body.cab .dz-today > .dz-band { margin-top: 0; }
body.cab .dz-news2 { font-weight: 600; color: var(--dz-ink); }
body.cab .dz-band-act { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 14px; }
/* «Добрать записи» at the band's right (a phone: under its words): what can be filled and what it brings, one large button to the windows */
body.cab .dz-band-side { min-width: 0; }
body.cab .dz-fill { display: grid; gap: 12px; padding: 18px; border-radius: 22px; background: var(--dz-paper); color: var(--dz-ink); }
body.cab .dz-fill-k { margin: 0; font-size: 13px; font-weight: 600; }
body.cab .dz-fill-big { display: grid; gap: 4px; margin: 0; }
body.cab .dz-fill-big b { font: 600 34px/1.02 var(--dz-font); letter-spacing: -.04em; }
body.cab .dz-fill-big span { font-size: 14px; color: var(--dz-ink-2); }
body.cab .dz-fill-l { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.cab .dz-fill-l li { display: grid; gap: 2px; padding-top: 8px; border-top: 1px solid var(--dz-line); font-size: 14px; }
body.cab .dz-fill-l b { font-weight: 600; }
body.cab .dz-fill-l span { color: var(--dz-ink-2); }
body.cab .dz-fill-l small { display: block; font-size: 13px; line-height: 1.35; color: var(--dz-ink-2); }
body.cab .dz-fill-go { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 60px; padding: 0 22px; border: 0;
  border-radius: 18px; background: var(--dz-ink); color: var(--dz-on-ink); font: 600 17px/1.2 var(--dz-font); text-align: left; cursor: pointer; }
body.cab .dz-fill-go:hover { background: var(--dz-ink-h); }
body.cab .dz-fill-go:focus-visible { outline: 2px solid var(--dz-ink); outline-offset: 3px; }
body.cab .dz-fill-go i { font-style: normal; font-size: 22px; }
body.cab .dz-fill .dz-small { margin: 0; }
/* beside the words only on a wide band (the chat closed or a wide screen): beside the chat its words ran to eight lines of 238 px. From 560
   to 859 px one column, the block under the words: the band's two columns there (minmax(0, 1fr) auto) gave the block its 598 px and the
   words 0 («Дизайн», 04.11.2026, measured on the live ArtCut at 1366 with the chat open); this rule's weight outdoes theirs */
body.cab .dz-band-top:has(> .dz-band-side) { grid-template-columns: minmax(0, 1fr); }
@container (min-width: 860px) {
  body.cab .dz-band-top:has(> .dz-band-side) { grid-template-columns: minmax(0, 1fr) minmax(320px, 380px); align-items: start; }
  /* the block the band's height at the right, the words, the buttons and «Насколько заняты мастера» under them at the left: the left stood
     empty beside the block's height (the owner, 04.11.2026, Betone man on a wide screen: «Вот тут куча свободного места, вообще
     неэффективно как-то распределил это первое. Наверное, как-то можно красиво всё это подужать») */
  body.cab .dz-band:has(> .dz-band-top > .dz-band-side) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 380px); column-gap: 28px; align-items: start; }
  body.cab .dz-band:has(> .dz-band-top > .dz-band-side) > .dz-band-top { display: contents; }
  body.cab .dz-band:has(> .dz-band-top > .dz-band-side) > :is(.dz-band-k, .dz-band-foot) { grid-column: 1 / -1; }
  body.cab .dz-band:has(> .dz-band-top > .dz-band-side) .dz-band-say { grid-column: 1; grid-row: 2; }
  body.cab .dz-band:has(> .dz-band-top > .dz-band-side) .dz-band-side { grid-column: 2; grid-row: 2 / span 2; }
  body.cab .dz-band:has(> .dz-band-top > .dz-band-side) > .dz-inset { grid-column: 1; grid-row: 3; }
}
body.cab .dz-cmp { display: grid; gap: 6px; }
body.cab .dz-cmph { display: grid; gap: 2px; margin-bottom: 4px; }
body.cab .dz-cmph b { font-size: 16px; font-weight: 600; color: var(--dz-ink); }
body.cab .dz-cmph span { font-size: 13px; color: var(--dz-ink-2); }
/* a day's two bars on one line (the owner, 04.11.2026: «нужно выровнить их по высоте»): the figure, the bar, the note under it */
body.cab .dz-cmpk, body.cab .dz-cmpd > summary { display: grid; grid-template-columns: minmax(6.5em, .8fr) minmax(0, 1fr) minmax(0, 1fr) 14px; align-items: center; gap: 4px 16px; }
body.cab .dz-cmpd > summary { align-items: start; }
body.cab .dz-cmpk { font-size: 12px; color: var(--dz-ink-2); }
body.cab .dz-cmpd { border-top: 1px solid var(--dz-line); }
body.cab .dz-cmpd > summary { min-height: 52px; padding: 8px 0; cursor: pointer; list-style: none; }
body.cab .dz-cmpd > summary::-webkit-details-marker { display: none; }
body.cab .dz-cmpd > summary::after { content: '▾'; font-size: 14px; color: var(--dz-ink-2); }
body.cab .dz-cmpd[open] > summary::after { content: '▴'; }
body.cab .dz-cmpd > summary:focus-visible { outline: 2px solid var(--dz-ink); outline-offset: 2px; border-radius: 8px; }
body.cab .dz-cmpd > summary > b { font-size: 15px; font-weight: 600; color: var(--dz-ink); }
body.cab .dz-cmpd > summary > b small { display: block; font-size: 12px; font-weight: 500; color: var(--dz-ink-2); }
body.cab .dz-cmpc { display: grid; gap: 4px; min-width: 0; font-size: 14px; font-weight: 600; color: var(--dz-ink); }
body.cab .dz-cmpc small { display: block; font-size: 12px; font-weight: 500; color: var(--dz-ink-2); }
/* a day's columns in the summary's three rows (subgrid): the bars on one line whatever the words over them, a share's figure or the names
   of fewer than two masters (04.11.2026, of the names with no bar: «тут пропали прогресс бары») */
body.cab .dz-cmpd > summary > :where(b, .dz-cmpc) { grid-row: 1 / span 3; }
body.cab .dz-cmpd > summary > .dz-cmpc { grid-template-rows: subgrid; }
/* the note under a column always the third row: a cell with no bar («часы не видны» and its lines) put its note in the bar's row, and the
   other column's note went down under an empty space («Окна по фото», 04.11.2026) */
body.cab .dz-cmpd > summary > .dz-cmpc > small { grid-row: 3; }
body.cab .dz-cmpd > summary::after { grid-row: 1; }
body.cab .dz-segs { display: flex; gap: 3px; height: 8px; }
body.cab .dz-segs i { flex: 1 1 0; min-width: 6px; border-radius: 4px; background: var(--dz-line); }
body.cab .dz-segs i.on { background: var(--dz-sun-art); }
body.cab .dz-segs i.no { background: transparent; box-shadow: inset 0 0 0 1.5px var(--dz-ink-2); opacity: .55; }
/* a free master filled on the share busy of his hours seen (src/dash.js partOf; the measure of «Свободные окна»): from the left */
body.cab .dz-segs i.part { background: linear-gradient(to right, var(--dz-sun-art) var(--part), var(--dz-line) var(--part)); }
/* the middle busy share by weekday (history.js): a row a weekday, yours and theirs a bar each */
body.cab .dz-avg { margin: 4px 0 0; }
body.cab .dz-avg-t { display: grid; gap: 4px; margin: 8px 0 6px; }
body.cab .dz-avg-r { display: grid; grid-template-columns: 2.4em minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 4px 12px; margin: 0; font-size: 12.5px; color: var(--dz-ink-2); }
body.cab .dz-avg-c { display: grid; grid-template-columns: minmax(0, 1fr) 3em; align-items: center; gap: 8px; }
body.cab .dz-avg-c b { font-weight: 600; color: var(--dz-ink); text-align: right; }
body.cab .dz-avg-c .g-tr { fill: var(--dz-line); stroke: none; }
body.cab .dz-avg-c .g-on.me { fill: var(--dz-sun-art); }
body.cab .dz-avg-c .g-on.them { fill: var(--dz-lilac-art); }
body.cab .dz-avg-wait { margin: 6px 0 0; }
/* «Новые отзывы» (api/_lib/reviewdays.js): a small table — you and the neighbours how many new, under it the good and the bad, the day and the week
   its columns, the figures at the right of them */
body.cab .dz-rnew { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--dz-line); }
body.cab .dz-rnew table { width: 100%; border-collapse: collapse; font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz-rnew caption { padding-bottom: 6px; text-align: left; font-size: 13px; font-weight: 600; color: var(--dz-ink); }
body.cab .dz-rnew :is(th, td) { padding: 3px 0; text-align: right; font-weight: 500; }
body.cab .dz-rnew :is(thead th, thead td) { font-size: 12px; }
body.cab .dz-rnew th[scope="row"] { padding-left: 12px; text-align: left; white-space: nowrap; }
body.cab .dz-rnew tr.all > * { padding-top: 8px; font-size: 15px; font-weight: 600; color: var(--dz-ink); }
body.cab .dz-rnew tr.all th[scope="row"] { padding-left: 0; }
body.cab .dz-rnew tbody + tbody tr.all > * { border-top: 1px solid var(--dz-line); }
body.cab .dz-rnew td { width: 24%; }
body.cab .dz-rnew table + .dz-small { margin-top: 8px; }
/* «Мониторинг нового»: your reviews' line, the new reviews, what is new at the neighbours — a part each, a line between */
body.cab .dz-mon-s { display: grid; gap: 6px; }
body.cab .dz-mon-s .dz-pk { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0; }
body.cab .dz-mon-s :is(.dz-say, .dz-fig) { margin: 0; }
body.cab .dz-rnew + .dz-mon-s { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--dz-line); }
body.cab .dz-cmpc .dz-cmpw { font-size: 13.5px; line-height: 1.3; overflow-wrap: anywhere; }
body.cab .dz-cmpc .g-tr { fill: var(--dz-line); stroke: none; }
body.cab .dz-cmpc .g-on.me { fill: var(--dz-sun-art); }
body.cab .dz-cmpc .g-on.them { fill: var(--dz-lilac-art); }
body.cab .dz-dayd { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 4px 0 16px; }
body.cab .dz-dayd > div + div { padding-top: 14px; border-top: 1px solid var(--dz-line); }
body.cab .dz-dayd > footer { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
body.cab .dz-dl { display: grid; gap: 6px; margin: 6px 0 0; padding: 0; list-style: none; font-size: 14px; color: var(--dz-ink); }
body.cab .dz-dl li { display: block; overflow-wrap: anywhere; }
body.cab .dz-dl li small { display: block; margin-top: 2px; font-size: 12px; color: var(--dz-ink-2); }
body.cab .dz-dl li.none { color: var(--dz-ink-2); }
/* on a phone the day a line over its two columns: beside them «Послезавтра» ran into the names and the names broke a word a line */
@container (max-width: 520px) {
  body.cab .dz-cmpk, body.cab .dz-cmpd > summary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 12px; gap: 4px 12px; }
  body.cab .dz-cmpk > span:first-child { display: none; }
  body.cab .dz-cmpd > summary > b { grid-row: 1; grid-column: 1 / 3; }
  body.cab .dz-cmpd > summary > b small { display: inline; margin-left: 8px; }
  body.cab .dz-cmpd > summary > .dz-cmpc { grid-row: 2 / span 3; }
  body.cab .dz-cmpd > summary::after { grid-row: 1; grid-column: 3; }
}
@container (min-width: 560px) {
  body.cab .dz-band-top { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  body.cab .dz-band-num { justify-items: end; text-align: right; }
}

/* cards of one kind: the name and state, the picture, what it says, the figure with what it stands on, one button */
body.cab .dz-feed { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 12px; }
@container (min-width: 560px) {
  body.cab .dz-feed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.cab .dz-feed > .wide, body.cab .dz-odd > .dz-ins:last-child:nth-child(odd of :not(.wide)) { grid-column: 1 / -1; }
}
/* a cell kept free beside «Ваши отзывы» (the owner, 04.11.2026: «Это свободное окошко пока ничем не заменяй»); one column has no cell to keep */
@container (max-width: 559px) { body.cab .dz-hole { display: none; } }
body.cab .dz-feed.dz-sigs { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
body.cab .dz-ins { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 20px 20px 16px; border-radius: 24px; background: var(--dz-paper); }
body.cab .dz-kick { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-height: 28px; }
body.cab .dz-kick h4 { font: 600 14px/1.3 var(--dz-font); color: var(--dz-ink-2); }
body.cab .dz-kick > .dz-chip { margin-left: auto; }
body.cab .dz-kick > span:not([class]) { font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz-pic { display: grid; align-content: center; gap: 8px; min-width: 0; min-height: 88px; padding: 16px; border-radius: 18px; background: var(--dz-paper-2); }
body.cab .dz-say { font: 600 19px/1.25 var(--dz-font); letter-spacing: -.02em; overflow-wrap: anywhere; }
body.cab .dz-say.big { font-size: 34px; line-height: 1; letter-spacing: -.045em; }
body.cab .dz-say small { font-size: 16px; font-weight: 500; letter-spacing: 0; color: var(--dz-ink-2); }
body.cab .dz-fig { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: -4px; font-size: 14px; line-height: 1.45; color: var(--dz-ink-2); }
body.cab .dz-fig > b { font: 600 30px/1 var(--dz-font); letter-spacing: -.045em; color: var(--dz-ink); }
body.cab .dz-note { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 14px; line-height: 1.45; color: var(--dz-ink-2); }
body.cab .dz-text { font-size: 14px; line-height: 1.45; color: var(--dz-ink-2); }
body.cab .dz-ins > :is(.dz-btn, .dz-ghost) { align-self: flex-start; }
body.cab .dz-ins > footer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: auto; padding-top: 4px; }
body.cab .dz-sure { display: inline-block; padding: 4px 12px; border-radius: 12px; background: var(--dz-wash); color: var(--dz-ink-2); font-size: 12px; line-height: 1.4; }
/* a light's days and a signal's proof, folded */
body.cab .dz-det > summary, body.cab .dz-proof > summary, body.cab .dz-rest > summary { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; cursor: pointer;
  font-size: 14px; font-weight: 600; color: var(--dz-ink); list-style: none; }
body.cab .dz-det > summary::-webkit-details-marker, body.cab .dz-proof > summary::-webkit-details-marker, body.cab .dz-rest > summary::-webkit-details-marker { display: none; }
body.cab .dz-det > summary::after, body.cab .dz-proof > summary::after, body.cab .dz-rest > summary::after { content: ''; width: 7px; height: 7px; margin: -4px 0 0 4px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
body.cab .dz-det[open] > summary::after, body.cab .dz-proof[open] > summary::after, body.cab .dz-rest[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
body.cab .dz-proof ul { display: grid; gap: 4px; margin: 6px 0 0; padding-left: 18px; list-style: disc; font-size: 13.5px; color: var(--dz-ink-2); }
body.cab .dz-rest { margin: 12px 4px 0; }
body.cab .dz-rest > summary { padding: 0 16px 0 14px; border-radius: 999px; background: var(--dz-hover); }
body.cab .dz-rest[open] > summary { margin-bottom: 4px; }

/* chapters of a zone */
body.cab .dz-ch { margin-top: 32px; }
body.cab .dz-chh { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 0 4px; }
body.cab .dz-chh h3 { font: 600 22px/1.15 var(--dz-font); letter-spacing: -.025em; }
body.cab .dz-chsum { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 10px 4px 0; font-size: 14.5px; color: var(--dz-ink-2); }
body.cab .dz-chsum > b { font: 600 44px/1 var(--dz-font); letter-spacing: -.05em; color: var(--dz-ink); }
body.cab .dz-afterlist { display: grid; gap: 4px; margin: 12px 4px 0; }
body.cab .dz-afterlist .st { margin-right: 6px; }

/* ——— the pictures of the data ——— */
body.cab .dz-scale, body.cab .dz-rib { display: grid; gap: 6px; min-width: 0; }
body.cab .dz-scale svg, body.cab .dz-rib svg, body.cab .dz-bars svg, body.cab .dz-grow svg { display: block; overflow: visible; }
/* the price scale drawn for a phone's card and for a computer's: the zone's width shows one */
body.cab .dz-scale .dz-sc-w { display: none; }
@container (min-width: 520px) {
  body.cab .dz-scale .dz-sc-n { display: none; }
  body.cab .dz-scale .dz-sc-w { display: block; }
}
body.cab .dz-ends { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); font-size: 12px; font-weight: 600; color: var(--dz-ink-2); }
body.cab .dz-ends b { color: var(--dz-ink); }
body.cab .dz-ends span:last-child { text-align: right; }
body.cab .g-ax, body.cab .g-tr { stroke: var(--dz-line); stroke-width: 2; }
body.cab line.g-you { stroke: var(--dz-sun-art); stroke-width: 2; }
body.cab circle.g-you { fill: var(--dz-sun-art); stroke: var(--dz-paper-2); stroke-width: 2; }
body.cab .g-rv { fill: var(--dz-lilac-art); stroke: var(--dz-paper-2); stroke-width: 2; }
body.cab .g-stem { stroke: var(--dz-ink-2); stroke-width: 1; opacity: .5; }
body.cab .g-nm { fill: var(--dz-ink); font: 600 13px var(--dz-font); }
body.cab .g-pc { fill: var(--dz-ink-2); font: 400 12px var(--mono); }
body.cab .g-rub { fill: var(--dz-ink); font: 600 12px var(--mono); }
body.cab .g-rub.you { font-weight: 700; }
body.cab .g-ot { fill: var(--dz-lilac); opacity: .8; }
body.cab .g-me { fill: var(--dz-lilac-art); stroke: var(--dz-paper-2); stroke-width: 3; }
body.cab .dz-rival .dz-pic { min-height: 0; padding: 10px 14px; }
/* «N из M»: one kind of cells on the whole page, filled — there is, empty — there is not */
body.cab .dz-cells { --dz-c: var(--dz-lilac-art); display: inline-flex; flex-wrap: wrap; gap: 4px; vertical-align: middle; }
body.cab .dz-cells i { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: var(--dz-stone); color: var(--dz-ink-2);
  font-style: normal; font-size: 13px; font-weight: 600; }
body.cab .dz-cells i.on { background: var(--dz-c); color: var(--dz-ink); }
body.cab .dz-cells.own { --dz-c: var(--dz-sun); }
body.cab .dz-cells.xs { gap: 2px; }
body.cab .dz-cells.xs i { width: 10px; height: 10px; border-radius: 3px; }
body.cab .dz-cells.sm i { width: 22px; height: 22px; border-radius: 6px; font-size: 12px; }
body.cab .dz-cells.lg { --dz-c: var(--dz-lilac); }
body.cab .dz-cells.lg i { width: 36px; height: 36px; border-radius: 10px; }
body.cab .dz-cells.rub i { width: 26px; height: 26px; }
body.cab .dz-cells.slot { display: grid; grid-template-columns: repeat(auto-fit, minmax(28px, 1fr)); }
body.cab .dz-cells.slot i { width: auto; }
body.cab .dz-cells.onfill i { background: var(--dz-veil); }
body.cab .dz-cells.onfill i.on { background: var(--dz-ink); }
body.cab .dz-cells.rev { max-width: 150px; gap: 3px; }
body.cab .dz-cells.rev i { width: 12px; height: 12px; border-radius: 3px; }
body.cab .dz-cells.rev i.on { background: var(--dz-sun); }
body.cab .dz-cells.rev i.hot { background: var(--dz-ink); }
body.cab .dz-recs { display: grid; justify-items: start; gap: 8px; }
body.cab .dz-recs > span:not(.dz-cells), body.cab .dz-pk { font-size: 13px; font-weight: 600; }
/* the own three days: a row a day, a cell a master or a time (Zendesk Status) */
body.cab .dz-heat { display: grid; gap: 4px; }
body.cab .dz-hrow { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; }
body.cab .dz-hrow > p { align-self: center; font-size: 14px; font-weight: 600; }
body.cab .dz-hrow > p.dz-hunk { grid-column: 2; font-size: 13px; font-weight: 500; color: var(--dz-ink-2); }
body.cab .dz-hcells { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 4px; }
body.cab .dz-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 48px; padding: 4px 8px; border-radius: 8px;
  font: 600 13px/1.2 var(--dz-font); text-align: center; overflow-wrap: anywhere; }
body.cab .dz-cell b { font: 400 12px/1.3 var(--mono); }
body.cab .dz-cell.free { background: var(--dz-sun); color: var(--dz-ink); }
body.cab .dz-cell.busy { background: var(--dz-stone); color: var(--dz-ink-2); }
body.cab .dz-cell.off, body.cab .dz-cell.more { border: 1px solid var(--dz-line); color: var(--dz-ink-2); font-weight: 500; }
body.cab .dz-legend { display: flex; flex-wrap: wrap; gap: 4px 20px; margin-top: 12px; font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz-legend span { display: inline-flex; align-items: center; gap: 8px; }
body.cab .dz-legend i { width: 16px; height: 16px; border-radius: 5px; }
body.cab .dz-legend i.free { background: var(--dz-sun); }
body.cab .dz-legend i.busy { background: var(--dz-stone); }
/* the hours the booking page shows and the reader could not: its link (04.11.2026, «ArtCut», the owner: «Ссылка на запись») */
body.cab .dz-legend .dz-hours { display: block; flex-basis: 100%; }
body.cab .dz-legend a { color: var(--dz-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
@container (max-width: 480px) {
  body.cab .dz-hrow { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  body.cab .dz-hrow > p { margin-top: 4px; font-size: 13.5px; }
  body.cab .dz-hrow > p.dz-hunk { grid-column: 1; margin-top: 0; font-size: 12.5px; }
  body.cab .dz-hcells { gap: 2px; }
  body.cab .dz-cell { min-height: 56px; padding: 4px; font-size: 12px; }
}
/* «Кто как занят» in a day opened: a row a salon — the name and how far, a cell a master (filled busy all day, empty a free window, dashed no
   schedule), the words; yours first in the own colour. «без перемен» over months; a price moved; the people near a service */
body.cab .dz-busy { display: grid; gap: 10px; margin: 8px 0 0; padding: 0; list-style: none; }
body.cab .dz-busy li { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: start; gap: 4px 12px; }
body.cab .dz-busy li > b { font-size: 14px; font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
body.cab .dz-busy li > b small { display: block; font-size: 12px; font-weight: 500; color: var(--dz-ink-2); }
body.cab .dz-busy li > div { grid-column: 2; font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz-busy li > .dz-cells { margin-top: 1px; }
body.cab .dz-how { margin: 2px 0 0; }
body.cab .dz-how > summary { min-height: 28px; font-size: 13px; }
body.cab .dz-how p { margin: 4px 0 0; font-size: 12.5px; line-height: 1.4; }
body.cab .dz-busy .dz-cells.own { --dz-c: var(--dz-sun-art); }
body.cab :is(.dz-busy .dz-cells, .dz-busyk) i.no { background: transparent; box-shadow: inset 0 0 0 1.5px var(--dz-ink-2); opacity: .55; }
body.cab .dz-busyk { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 10px 0 0; font-size: 12px; color: var(--dz-ink-2); }
body.cab .dz-busyk span { display: inline-flex; align-items: center; gap: 6px; }
body.cab .dz-busyk i { width: 12px; height: 12px; border-radius: 3px; background: var(--dz-stone); }
body.cab .dz-busyk i.on { background: var(--dz-lilac-art); }
body.cab .dz-busy .dz-cells i.part { background: linear-gradient(to right, var(--dz-c) var(--part), var(--dz-stone) var(--part)); }
body.cab .dz-busyk i.part { background: linear-gradient(to right, var(--dz-lilac-art) 50%, var(--dz-stone) 50%); }
@container (max-width: 520px) { body.cab .dz-busy li { grid-template-columns: 92px minmax(0, 1fr); } }
/* «Цена и предложения» in five panels: a panel a question, its label a pill, a hairline between (Enode «Default / Smart charging»); the
   rubles under the dots; the offers a row a neighbour, his usual price → the offer's; the special services as chips; the praise in
   numbered rows (Metaview «Interest by department») */
body.cab .dz-prices { gap: 0; }
body.cab .dz-pn { display: grid; gap: 8px; padding: 16px 0 14px; border-top: 1px solid var(--dz-line); }
body.cab .dz-prices > header + .dz-pn { border-top: 0; padding-top: 6px; }
body.cab .dz-pn-h { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
body.cab .dz-tag { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; background: var(--dz-stone); color: var(--dz-ink); font: 700 11px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
body.cab .dz-pn-h small { font-size: 12px; color: var(--dz-ink-2); }
body.cab .dz-pn-say { margin: 0; font-size: 14.5px; line-height: 1.4; color: var(--dz-ink); }
body.cab .dz-pn-say b { font-weight: 700; }
body.cab .dz-pn-l { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz-pn-l b { color: var(--dz-ink); font-weight: 600; }
body.cab .dz-pn-f { display: flex; justify-content: flex-end; }   /* a panel's «Обсудить» (the owner, 05.11.2026: «вот тут кнопки Обсудить нет») */
body.cab .g-ring { fill: var(--dz-paper); stroke: var(--dz-sun-art); stroke-width: 2.5; stroke-dasharray: 3 2.5; }
body.cab .g-mid { stroke: var(--dz-ink-2); stroke-width: 1.5; stroke-dasharray: 2 3; }
body.cab .g-bar { stroke: var(--dz-lilac); stroke-width: 6; stroke-linecap: round; opacity: .55; }
body.cab .g-old { fill: var(--dz-paper); stroke: var(--dz-lilac-art); stroke-width: 2; }
body.cab .g-nm.you { fill: var(--dz-ink); }
/* «Акции сейчас»: the names a column, a lane a neighbour (his ring and its rubles → an arrow → the offer's dot and its rubles), the gap at the
   right, your price a line through the lanes; an offer under 5 % pale */
body.cab .dz-off { display: grid; gap: 8px; }
body.cab .dz-off-key { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0; font-size: 12.5px; color: var(--dz-ink-2); }
body.cab .dz-off-key span { display: inline-flex; align-items: center; gap: 6px; }
body.cab .dz-off-key .to { margin: 0 -6px; }
body.cab .dz-off-key i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; }
body.cab .dz-off-key i.ring { box-sizing: border-box; border: 2px solid var(--dz-lilac-art); background: var(--dz-paper); }
body.cab .dz-off-key i.dot { background: var(--dz-lilac-art); }
body.cab .dz-off-key i.you { width: 3px; height: 14px; border-radius: 2px; background: var(--dz-sun-art); }
body.cab .dz-off-g { display: grid; }
body.cab .dz-off-r { display: grid; grid-template-columns: 9.5em minmax(0, 1fr) 4.8em; align-items: center; gap: 0 12px; }
body.cab .dz-off-r > b { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 13.5px; font-weight: 600; line-height: 1.2; }
body.cab .dz-off-r > b small { display: block; font-size: 12px; font-weight: 500; color: var(--dz-ink-2); }
body.cab .dz-off-pc { text-align: right; font-size: 14px; font-weight: 700; color: var(--dz-ink); }
body.cab .dz-off-pc small { display: block; font-size: 11px; font-weight: 500; line-height: 1.2; color: var(--dz-ink-2); }
body.cab .dz-off-r.faint > b, body.cab .dz-off-r.faint .dz-off-t { opacity: .55; }
body.cab .dz-off .g-arrow { stroke: var(--dz-lilac-art); stroke-width: 2; }
body.cab .dz-off .g-arw { fill: var(--dz-lilac-art); }
body.cab .dz-off .g-rub { fill: var(--dz-ink); font: 700 12.5px var(--dz-font); }
body.cab .dz-off .g-pr { fill: var(--dz-ink-2); font: 500 12px var(--dz-font); }
body.cab .dz-off .g-mo { fill: var(--dz-ink-2); font: 500 11.5px var(--dz-font); }
body.cab .dz-off-l li > div b { color: var(--dz-ink); font-weight: 600; }
/* a phone: the name and the gap a line over the lane, the lane the card's width */
@container (max-width: 519px) {
  body.cab .dz-off-r { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; padding-top: 6px; }
  body.cab .dz-off-r > b { grid-column: 1; grid-row: 1; }
  body.cab .dz-off-r > .dz-off-pc { grid-column: 2; grid-row: 1; }
  body.cab .dz-off-r > .dz-off-t { grid-column: 1 / -1; grid-row: 2; }
  body.cab .dz-off-r:is(.head, .axis) { padding-top: 0; }
  body.cab .dz-off-r:is(.head, .axis) > span { display: none; }
  body.cab .dz-off-r:is(.head, .axis) > .dz-off-t { grid-row: 1; }
}
body.cab .dz-promo { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
body.cab .dz-promo li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 6px 0; }
body.cab .dz-promo li > b { display: flex; align-items: baseline; gap: 8px; font-size: 13.5px; font-weight: 600; line-height: 1.25; }
body.cab .dz-promo li > b .dz-pn-pc { margin-left: auto; }
body.cab .dz-promo-g .g-mo { fill: var(--dz-ink-2); font: 500 12px var(--dz-font); }
body.cab .dz-promo li > b small { margin-left: 6px; font-size: 12px; font-weight: 500; color: var(--dz-ink-2); }
body.cab .dz-pn-pc { font: 700 12px var(--mono); text-align: right; color: var(--dz-ink); }
body.cab .dz-promo li > div { font-size: 12.5px; color: var(--dz-ink-2); }
body.cab .dz-pn-two { display: grid; gap: 10px; }
@container (min-width: 520px) { body.cab .dz-pn-two { grid-template-columns: 1fr 1fr; } }
body.cab .dz-chipsx { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
body.cab .dz-chipx { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 6px; padding: 6px 10px; border-radius: 12px; background: var(--dz-paper-2); border: 1px solid var(--dz-line); font-size: 13px; color: var(--dz-ink); }
body.cab .dz-chipx i { font: 600 11.5px var(--mono); font-style: normal; color: var(--dz-ink-2); }
body.cab .dz-rank { display: grid; margin: 0; padding: 0; list-style: none; counter-reset: dzr; }
body.cab .dz-rank li { display: grid; grid-template-columns: 22px 104px minmax(0, 1fr); gap: 4px 12px; align-items: baseline; padding: 7px 0; border-top: 1px solid var(--dz-line); font-size: 13.5px; color: var(--dz-ink); }
body.cab .dz-rank li:first-child { border-top: 0; }
body.cab .dz-rank li::before { counter-increment: dzr; content: counter(dzr); font: 600 12px var(--mono); color: var(--dz-ink-2); }
body.cab .dz-rank li.you::before { content: '★'; color: var(--dz-sun-art); }
body.cab .dz-rank li > b { font-weight: 600; overflow-wrap: anywhere; }
@container (max-width: 519px) { body.cab .dz-rank li { grid-template-columns: 18px 84px minmax(0, 1fr); } }
/* «Может ли рядом открыться такой же бизнес» in «Кто пришёл и ушёл»: its level, the areas a bar each, yours in the own colour */
body.cab .dz-entry { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid var(--dz-line); }
body.cab .dz-entry-say { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.35; color: var(--dz-ink); }
body.cab .dz-entry-say .dz-chip { margin-left: 4px; vertical-align: 1px; }
body.cab .dz-entry-l { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
body.cab .dz-entry-l li { display: grid; grid-template-columns: minmax(0, 9em) minmax(0, 1fr) 2.5em; align-items: center; gap: 10px; font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz-entry-l li.own { color: var(--dz-ink); font-weight: 600; }
body.cab .dz-entry-l li > b { text-align: right; font-weight: 600; color: var(--dz-ink); }
body.cab .dz-entry-l .g-on.me { fill: var(--dz-sun-art); }
body.cab .dz-entry-l .g-on.them { fill: var(--dz-lilac-art); }
body.cab .dz-entry-l .g-tr { fill: var(--dz-line); stroke: none; }
/* «Спрос рядом»: the split bar of «Целевая аудитория» (cabinet-theme.css .tg-split), the other services a row each */
body.cab .dz-dem-s { display: grid; gap: 8px; }
body.cab .dz-dem-d { display: block; margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--dz-paper-2); font-size: 14px; color: var(--dz-ink); }
body.cab .dz-dem-d > span:not(.dz-lbl) { display: block; margin-top: 4px; font-size: 12.5px; color: var(--dz-ink-2); }
body.cab .dz-dem > footer > .dz-ghost { margin-left: auto; }
body.cab .dz-dem-more { margin: 0; }
body.cab .dz-dem-l { display: grid; gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
body.cab .dz-dem-l li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: baseline; }
body.cab .dz-dem-l li > b { font-size: 14px; font-weight: 600; }
body.cab .dz-dem-l li > .num { font-weight: 600; }
body.cab .dz-dem-l li > :is(.tg-split, small) { grid-column: 1 / -1; }
body.cab .dz-dem-l li > small { font-size: 12.5px; color: var(--dz-ink-2); }
/* what the search for a neighbour's booking tried, under «онлайн-записи не нашли» */
body.cab .dz-srch { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.4; color: var(--dz-ink-2); }
body.cab .dz-flat { position: relative; }
body.cab .dz-flat .g-ax { stroke: var(--dz-line); stroke-width: 3; }
body.cab .dz-flat .g-tick { stroke: var(--dz-ink-2); stroke-width: 1.5; opacity: .6; }
body.cab .dz-flat .g-end { fill: var(--dz-line); }
body.cab .dz-flat .g-now { fill: var(--dz-ink-2); }
body.cab .dz-flat .g-msg { fill: var(--dz-ink); font: 600 13px var(--dz-font); }
body.cab .dz-flat .g-mo { fill: var(--dz-ink-2); font: 500 12px var(--dz-font); }
body.cab .dz-grow { display: flex; align-items: center; gap: 12px; }
body.cab .dz-grow svg { flex: 1; min-width: 0; }
body.cab .dz-grow b { font-size: 15px; font-weight: 600; white-space: nowrap; }
body.cab .g-was { fill: var(--dz-stone); }
body.cab .g-add { fill: var(--dz-lilac-art); }
body.cab .dz-bars { display: grid; gap: 8px; width: 100%; }
body.cab .dz-bars p { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "n v" "t t"; gap: 4px 8px; font-size: 12.5px; color: var(--dz-ink-2); }
body.cab .dz-bars > p > span { grid-area: n; overflow-wrap: anywhere; }
body.cab .dz-bars > p > b { grid-area: v; font-weight: 600; }
body.cab .dz-bars svg { grid-area: t; }
body.cab .dz-bars .g-tr { fill: var(--dz-paper); stroke: none; }
body.cab .dz-bars .g-on { fill: var(--dz-stone); }
body.cab .dz-bars p.me { color: var(--dz-ink); font-weight: 600; }
body.cab .dz-bars p.me .g-on { fill: var(--dz-sun-art); }
/* the days to each date */
body.cab .dz-rib0 { font-size: 12px; font-weight: 600; color: var(--dz-ink-2); }
body.cab .dz-rib ol { display: grid; gap: 10px; }
body.cab .dz-rib li { display: grid; gap: 4px; }
body.cab .dz-rib li p { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 12px; font-size: 13px; color: var(--dz-ink-2); }
/* the dates past the nearest five, folded under «Ещё N дат» on the same scale */
body.cab .dz-rib-more { margin-top: 10px; }
body.cab .dz-rib-more > .dz-rib { margin-top: 10px; }
/* «Шанс…» by service: the main one a line, the others folded, each its level and its figures */
body.cab .dz-entry-svc, body.cab .dz-entry-ol li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 8px 0 0; font-size: 13.5px; color: var(--dz-ink-2); }
body.cab .dz-entry-svc b, body.cab .dz-entry-ol b { color: var(--dz-ink); font-weight: 600; }
body.cab .dz-entry-ol { display: grid; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
body.cab .dz-entry-ol li { margin: 0; }
body.cab .dz-rib li b { font-weight: 600; color: var(--dz-ink); }
body.cab .dz-rib .g-on { fill: var(--dz-rose); }
body.cab .dz-rib .g-pt { fill: var(--dz-rose-art); stroke: var(--dz-paper); stroke-width: 2; }
body.cab .dz-rib li.next .g-on { fill: var(--dz-rose-art); }
@container (min-width: 520px) {
  body.cab .dz-rib li { grid-template-columns: minmax(0, 16em) minmax(0, 1fr) auto; align-items: center; gap: 16px; }
  body.cab .dz-rib0 { padding-left: calc(16em + 16px); }
}

/* «Готовые решения»: a numbered strip, the first filled with the zone's colour (s3) */
body.cab .dz-deals { display: flex; flex-direction: column; gap: 4px; margin-top: 12px; padding: 4px; border-radius: 24px; background: var(--dz-paper); }
body.cab .dz-deal { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; padding: 16px; border-radius: 20px; }
body.cab .dz-deal:not(:first-child) { border-top: 1px solid var(--dz-line); border-radius: 0; }
body.cab .dz-deal.first { background: var(--dz-sun); border-top: 0; border-radius: 20px; }
@container (min-width: 640px) {
  body.cab .dz-deals:not(.dz-more) { flex-direction: row; }
  body.cab .dz-deals:not(.dz-more) > .dz-deal { flex: 1 1 0; }
  body.cab .dz-deals:not(.dz-more) > .dz-deal.first { flex-grow: 1.3; }
  body.cab .dz-deals:not(.dz-more) > .dz-deal:not(:first-child) { border-top: 0; border-left: 1px solid var(--dz-line); }
  body.cab .dz-deals:not(.dz-more) > .dz-deal.first + .dz-deal { border-left: 0; }
}
body.cab .dz-n { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border: 1.5px solid var(--dz-ink); border-radius: 50%; font: 600 14px var(--dz-font); }
body.cab .dz-deal.first .dz-n { background: var(--dz-ink); color: var(--dz-on-ink); }
body.cab .dz-deal-pic { display: grid; gap: 8px; align-self: stretch; padding: 12px; border-radius: 14px; background: var(--dz-paper-2); }
body.cab .dz-deal.first .dz-deal-pic { background: var(--dz-paper); }
body.cab .dz-deal > b { font: 600 17px/1.25 var(--dz-font); letter-spacing: -.015em; }
body.cab .dz-deal.first > b { font-size: 20px; letter-spacing: -.02em; }
body.cab .dz-deal > p { font-size: 14px; line-height: 1.45; }
body.cab .dz-deal .dz-small { font-size: 13px; }
body.cab .dz-deal.first .dz-small { color: var(--dz-ink); }
body.cab .dz-deal > .dz-btn, body.cab .dz-deal > .dz-go { margin-top: auto; }
body.cab .dz-deal.soon > b { color: var(--dz-ink-2); font-weight: 500; }

/* «Что поменялось»: the night in a line with its state, the changes a row each, Telegram */
body.cab .dz-seg { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--dz-stone); }
body.cab .dz-seg button { min-height: 36px; padding: 0 16px; border: 0; border-radius: 999px; background: transparent; color: var(--dz-ink); font: 600 14px var(--dz-font); cursor: pointer; }
body.cab .dz-seg button[aria-selected="true"] { background: var(--dz-ink); color: var(--dz-on-ink); }
body.cab .dz-news { margin-top: 12px; }
body.cab .dz-calm { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 4px 16px; }
body.cab .dz-calm > i { position: relative; width: 44px; height: 44px; border-radius: 50%; background: var(--dz-stone); }
body.cab .dz-calm > i::after { content: ''; position: absolute; left: 15px; top: 12px; width: 13px; height: 8px; border-left: 2.5px solid var(--dz-ink-2); border-bottom: 2.5px solid var(--dz-ink-2); transform: rotate(-45deg); }
body.cab .dz-calm.none > i::after { display: none; }
body.cab .dz-calm.calm > i { background: var(--dz-green-bg); }
body.cab .dz-calm.calm > i::after { border-color: var(--dz-green-ink); }
body.cab .dz-calm.watch > i, body.cab .dz-calm.threat > i { background: var(--dz-amber-bg); }
body.cab .dz-calm.threat > i { background: var(--dz-red-bg); }
body.cab .dz-calm.watch > i::after, body.cab .dz-calm.threat > i::after { left: 20px; top: 10px; width: 0; height: 15px; border: 0; border-left: 3px solid var(--dz-amber-ink); transform: none; }
body.cab .dz-calm.threat > i::after { border-left-color: var(--dz-red-ink); }
body.cab .dz-calm > div > b { display: block; font: 600 18px/1.3 var(--dz-font); letter-spacing: -.015em; }
body.cab .dz-calm > div > span { display: block; margin-top: 4px; font-size: 13.5px; color: var(--dz-ink-2); }
body.cab .dz-chg > li { display: grid; gap: 6px; padding: 14px 0; border-top: 1px solid var(--dz-line); }
/* «Что поменялось» a card a neighbour: his news a line each, when, the conditions folded (04.11.2026) */
body.cab .dz-nwl { display: grid; gap: 8px; margin: 2px 0 0; padding: 0; list-style: none; font-size: 14.5px; color: var(--dz-ink); }
body.cab .dz-nwl small { display: block; margin-top: 2px; font-size: 12px; color: var(--dz-ink-2); }
body.cab .dz-nwl li.compare, body.cab .dz-nwl li.reviews { color: var(--dz-ink-2); }
body.cab .dz-chg > li > b { font-size: 15px; line-height: 1.35; }
body.cab .dz-chg > li > span { font-size: 14px; color: var(--dz-ink-2); }
body.cab .dz-chg > li > button { justify-self: start; }
body.cab .dz-calm + .dz-chg { margin-top: 8px; }
body.cab .dz-news > .dz-chg:first-child > li:first-child { border-top: 0; padding-top: 0; }
body.cab .dz .d-nb-tg { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0; padding-top: 14px; border-top: 1px solid var(--dz-line); font-size: 14px; color: var(--dz-ink-2); }
body.cab .dz .d-nb-tg [role="alert"] { color: var(--dz-red-ink); }
body.cab .dz .d-nb-tg a.dz-ghost { text-decoration: none; }   /* the link to «Telegram и MAX» drawn as the button it was */

/* zone 2: the territory's line on the band's inset; a neighbour a card */
body.cab .dz .d-terr { margin: 0; }
body.cab .dz .terr .riv-l { font-size: 12px; font-weight: 600; color: var(--dz-ink-2); }
body.cab .dz .terr .seg button { min-height: 36px; height: auto; padding: 0 12px; border: 1.5px solid var(--dz-line); border-radius: 999px; background: var(--dz-paper-2); color: var(--dz-ink); font: 600 13px var(--dz-font); }
body.cab .dz .terr .seg button[aria-selected="true"] { border-color: var(--dz-ink); background: var(--dz-ink); color: var(--dz-on-ink); }
body.cab .dz .terr .seg .num { margin-left: 6px; color: var(--dz-ink-2); font-size: 12px; }
body.cab .dz .terr .seg button[aria-selected="true"] .num { color: var(--dz-on-ink); }
body.cab .dz .terr .terr-n { font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz .terr .terr-n a { color: var(--dz-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
body.cab .dz-rival .dz-kick { flex-wrap: nowrap; gap: 12px; }
body.cab .dz-ava { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--dz-lilac); font-size: 15px; font-weight: 600; }
/* zone 2: a row a neighbour, the rest folded under it (the review of 04.11.2026) */
body.cab .dz-rvs { display: grid; gap: 8px; margin-top: 12px; }
body.cab .dz-rv { border-radius: 22px; background: var(--dz-paper); }
body.cab .dz-rv > summary { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto 14px; align-items: center; gap: 12px; min-height: 44px; padding: 12px 16px 12px 12px;
  cursor: pointer; list-style: none; }
body.cab .dz-rv > summary::-webkit-details-marker { display: none; }
body.cab .dz-rv > summary::after { content: '▾'; font-size: 14px; color: var(--dz-ink-2); }
body.cab .dz-rv[open] > summary::after { content: '▴'; }
body.cab .dz-rv > summary:focus-visible { outline: 2px solid var(--dz-ink); outline-offset: -2px; border-radius: 22px; }
body.cab .dz-rvn { display: grid; gap: 2px; min-width: 0; }
body.cab .dz-rvn b { font-size: 16px; font-weight: 600; color: var(--dz-ink); overflow-wrap: anywhere; }
body.cab .dz-rvn span { font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz-rvp { display: grid; justify-items: end; gap: 2px; text-align: right; }
body.cab .dz-rvp b { font-size: 18px; font-weight: 700; color: var(--dz-ink); white-space: nowrap; }
body.cab .dz-rvp small { font-size: 11.5px; color: var(--dz-ink-2); }
body.cab .dz-rvb { display: grid; gap: 14px; padding: 0 16px 16px; }
body.cab .dz-rvb > footer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
body.cab .dz-rival h3 { min-width: 0; font: 600 16px/1.25 var(--dz-font); letter-spacing: -.01em; overflow-wrap: anywhere; }
body.cab .dz-dist { flex: none; margin-left: auto; padding: 4px 12px; border-radius: 999px; background: var(--dz-lilac-soft); color: var(--dz-lilac-ink); font: 500 12.5px var(--mono); white-space: nowrap; }
body.cab .dz-rival .dz-say { font-size: 21px; }
body.cab .dz-facts { display: grid; gap: 10px; }
body.cab .dz-facts > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: start; gap: 4px 12px; }
body.cab .dz-facts dt { padding-top: 2px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--dz-ink-2); }
body.cab .dz-facts dd { font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
body.cab .dz-facts dd .dz-cells { margin-right: 8px; vertical-align: 1px; }
body.cab .dz-facts dd.none, body.cab .dz-facts .none { color: var(--dz-ink-2); }
body.cab .dz-new { display: block; margin-bottom: 4px; padding: 4px 8px; border-radius: 8px; background: var(--dz-lilac-soft); color: var(--dz-lilac-ink); font-size: 13px; font-weight: 600; line-height: 1.35; }

/* zone 3: the later dates' «Обсудить →» and «Убрать» on the ribbon; the owner's own dates under it */
body.cab .dz-rib .dz-line { justify-content: flex-start; }
body.cab .dz-rib + .dz-small { margin-top: 12px; }
/* what is decided about a day (src/dash.js decHtml; the owner, 04.11.2026: «то что мы решили должно там записываться и корректироваться»):
   under its row the whole width, «Поправить» a field of the page's face */
body.cab .dz-rib .dz-dec { grid-column: 1 / -1; display: grid; gap: 6px; margin: 2px 0 4px; padding: 10px 14px; border-radius: 14px; background: var(--dz-paper-2); }
body.cab .dz-rib .dz-dec p { display: block; margin: 0; font-size: 14px; line-height: 1.45; color: var(--dz-ink); }
body.cab .dz-rib .dz-dec p span { font-size: 13px; color: var(--dz-ink-2); }
body.cab .dz-dec textarea { box-sizing: border-box; width: 100%; field-sizing: content; min-block-size: calc(3lh + 24px); max-block-size: 40svh; padding: 10px 14px; resize: vertical;
  border: 1.5px solid var(--dz-line); border-radius: 14px; background: var(--dz-paper); color: var(--dz-ink); font: 400 15px/1.5 var(--dz-font); }
body.cab .dz-dec textarea:focus-visible { outline: 2px solid var(--dz-ink); outline-offset: 1px; }
@media (max-width: 900px) { body.cab .dz-dec textarea { font-size: 16px; } }   /* no zoom on focus */

body.cab .dz-line { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 4px 16px; }
body.cab .dz-own { margin-top: 24px; padding: 20px; border-radius: 24px; background: var(--dz-paper); }
body.cab .dz-own h3 { font: 600 19px/1.25 var(--dz-font); letter-spacing: -.02em; }
body.cab .dz-own > p { margin-top: 6px; font-size: 14px; color: var(--dz-ink-2); }
body.cab .dz-fields { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-top: 12px; }
body.cab .dz-fields label { display: grid; gap: 6px; font-size: 13px; font-weight: 600; color: var(--dz-ink); }
body.cab .dz-f-t { flex: 1 1 220px; }
body.cab .dz-f-d { flex: 0 1 180px; }
body.cab .dz-fields input[type="text"], body.cab .dz-fields input[type="date"] { box-sizing: border-box; width: 100%; min-height: 48px; padding: 0 18px; border: 1.5px solid var(--dz-line);
  border-radius: 999px; background: var(--dz-paper-2); color: var(--dz-ink); font: 400 15px var(--dz-font); }
body.cab .dz-fields input:hover { border-color: var(--dz-line-2); }
body.cab .dz-fields input:focus-visible { outline: 2px solid var(--dz-ink); outline-offset: 1px; }
body.cab .dz-fields label.dz-chk { display: flex; align-items: center; gap: 10px; min-height: 48px; font-size: 15px; font-weight: 500; }
body.cab .dz-chk input { width: 22px; height: 22px; margin: 0; accent-color: var(--dz-ink); }
body.cab .dz-add { min-height: 48px; }
body.cab .dz-err { margin-top: 8px; font-size: 13.5px; color: var(--dz-red-ink); }

/* the phone: the bands and cards narrower, every button 44 px high */
@media (max-width: 900px) {
  body.cab #page-dash { margin: -16px -16px -84px; padding: 16px 16px 144px; }
  body.cab #dash-main :is(.dz-btn, .dz-ghost, .dz-go, .dz-x, .dz-seg button, .terr .seg button, .d-nb-off), body.cab #dash-head :is(.dz-ghost, .dz-j),
  body.cab #dash-main :is(.dz-det, .dz-proof, .dz-rest) > summary { min-height: 44px; }
  body.cab .dz .terr .terr-n a, body.cab #dash-main .d-onb-b a { display: inline-flex; align-items: center; min-height: 44px; }
  body.cab .dz-fields input[type="text"], body.cab .dz-fields input[type="date"] { font-size: 16px; }   /* no zoom on focus */
}
@media (prefers-reduced-motion: reduce) { body.cab .d-askbar, body.cab .d-askbar.away { transition: none; } }
@media (max-width: 640px) {
  /* the first screen of a phone holds the day and the main of it (the review of 04.11.2026: the head took the whole first screen):
     the head short, the ways to the zones left to the desktop */
  body.cab .dz-head > .dz-eye { display: none; }
  body.cab .dz-head h1 { margin-top: 0; font-size: 28px; }
  body.cab .dz-when { margin-top: 8px; gap: 0 12px; }
  body.cab .dz-when p { flex-direction: column; gap: 2px; font-size: 13px; }
  body.cab #dash-head .dz-when .dz-ghost { padding: 0; border: 0; background: none; color: var(--dz-ink); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
  body.cab .dz-since { margin-top: 4px; font-size: 13px; }
  /* the ways to the zones a short row each: the name, its state at the right (the five readers, 05.11.2026, missed them on the phone) */
  body.cab .dz-jump { grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: 12px; }
  body.cab .dz-j { grid-template-columns: 12px auto minmax(0, 1fr) auto; grid-template-areas: "sq name state go"; gap: 0 10px; min-height: 48px; padding: 8px 14px; border-radius: 16px; }
  body.cab .dz-j > i { width: 12px; height: 12px; }
  body.cab .dz-j b { font-size: 15px; }
  body.cab .dz-j small { justify-content: flex-end; text-align: right; font-size: 13px; }
  body.cab .dz { margin-top: 28px; }
  body.cab .dz-zh h2 { font-size: 30px; }
  body.cab .dz-band { margin-top: 16px; padding: 20px 16px 16px; border-radius: 24px; }
  body.cab .dz-band h3 { font-size: 25px; }
  body.cab .dz-band-num .dz-bignum { font-size: 44px; }
  body.cab .dz-band-num .dz-bignum.long { font-size: 28px; }
  body.cab .dz-inset { padding: 12px; border-radius: 18px; }
  body.cab .dz-ins { padding: 16px 16px 14px; border-radius: 22px; }
  body.cab .dz-pic { padding: 12px; border-radius: 16px; }
  body.cab .dz-say { font-size: 18px; }
  body.cab .dz-say.big { font-size: 32px; }
  body.cab .dz-fig > b { font-size: 28px; }
  body.cab .dz-ch { margin-top: 28px; }
  body.cab .dz-chh h3 { font-size: 21px; }
  body.cab .dz-cells.lg i { width: 40px; height: 40px; }
  body.cab .dz-deal { padding: 16px 12px; }
  body.cab .dz-facts > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }

  body.cab .dz-fields { flex-direction: column; align-items: stretch; }
  body.cab .dz-f-t, body.cab .dz-f-d { flex: none; }
  body.cab .dz-add { width: 100%; }
}

/* «Собираем данные» (radar/docs/2026-11-01-onboarding.md): the run's line and bar, each section a row — its state, what it gives or found, its time;
   in the dashboard's look, a white card on the canvas */
body.cab #dash-main .d-onb { display: grid; gap: 4px; padding: 22px 24px; border: 0; border-radius: 24px; background: var(--dz-paper); color: var(--dz-ink); }
body.cab #dash-main .d-onb .d-h { align-items: center; }
body.cab #dash-main .d-onb .d-h h2 { font: 600 22px/1.2 var(--dz-font); letter-spacing: -.02em; color: var(--dz-ink); }
body.cab .d-onb-line { margin: 2px 0 10px; font-size: 15px; color: var(--dz-ink-2); }
body.cab #dash-main .d-onb .t-bar { background: var(--dz-stone); }
body.cab #dash-main .d-onb .t-bar i { background: var(--dz-act); }
body.cab .d-onb-bar { display: block; width: 100%; height: 10px; border-radius: 5px; }
body.cab .d-onb-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; }
body.cab .d-onb-list[hidden] { display: none; }
/* the collection folded: its line, its bar, the stages a dot each and a line; the chevron at the heading's right opens the list (04.11.2026) */
body.cab .d-onb-tg { display: grid; place-items: center; flex: none; width: 44px; height: 44px; margin: -8px -10px -8px auto; padding: 0; border: 0;
  border-radius: 999px; background: transparent; color: var(--dz-ink); cursor: pointer; }
body.cab .d-onb .d-h:has(> .d-onb-tg) .d-onb-tg { margin-top: -6px; }
body.cab .d-onb-tg:hover { background: var(--dz-stone); }
body.cab .d-onb-tg:focus-visible { outline: 2px solid var(--dz-ink); outline-offset: 2px; }
body.cab .d-onb-tg i { width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform .2s; }
body.cab .d-onb-tg[aria-expanded="true"] i { transform: translateY(3px) rotate(-135deg); }
body.cab .d-onb-steps { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 10px 0 0; font-size: 13.5px; color: var(--dz-ink-2); }
body.cab .d-onb-dots { display: inline-flex; gap: 5px; }
body.cab .d-onb-dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--dz-stone); }
body.cab .d-onb-dots i.ok { background: var(--dz-green); }
body.cab .d-onb-dots i.act { background: transparent; box-shadow: inset 0 0 0 2px var(--dz-act); }   /* going: a ring, apart from done in either theme */
/* the run going moves (the owner, 05.11.2026: «Пусть этот прогресс бар будет вращающимся, чтобы видно было что там идет процесс-движение»):
   a light runs along the filled part of each bar, 1,8 s a pass, and the step going pulses; a run done (.fin) and reduced motion — still */
body.cab .d-onb:not(.fin) .t-bar i { position: relative; overflow: hidden; }
body.cab .d-onb:not(.fin) .t-bar i::after { content: ''; position: absolute; inset: 0; translate: -100% 0;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--dz-on-act) 55%, transparent), transparent); animation: d-onb-run 1.8s linear infinite; }
body.cab .d-onb:not(.fin) .d-onb-dots i.act { animation: d-onb-pulse 1.2s ease-in-out infinite; }
@keyframes d-onb-run { to { translate: 100% 0; } }
@keyframes d-onb-pulse { 50% { box-shadow: inset 0 0 0 2px var(--dz-act), 0 0 0 4px color-mix(in srgb, var(--dz-act) 30%, transparent); } }
@media (prefers-reduced-motion: reduce) {
  body.cab .d-onb .t-bar i::after { display: none; }
  body.cab .d-onb .d-onb-dots i.act, body.cab .dz-chip.load i { animation: none; }
}
/* the chevron on the heading's line, a phone too (it wrapped under «Собираем данные для «…»») */
body.cab #dash-main .d-onb .d-h:has(> .d-onb-tg) { flex-wrap: nowrap; align-items: flex-start; }
body.cab #dash-main .d-onb .d-h:has(> .d-onb-tg) h2 { min-width: 0; }
body.cab .d-onb-dots i.warn { background: var(--dz-amber); }
@media (prefers-reduced-motion: reduce) { body.cab .d-onb-tg i { transition: none; } }
body.cab .d-onb-row { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: 4px 14px; align-items: start; padding: 12px 0; border-top: 1px solid var(--dz-line); }
body.cab .d-onb-row:first-child { border-top: 0; }
body.cab #dash-main .d-onb-row > .st { justify-self: start; min-height: 26px; height: auto; padding: 0 10px; font-size: 12.5px; font-weight: 600; }
body.cab .d-onb-b { display: grid; gap: 4px; min-width: 0; }
body.cab .d-onb-b b { font-weight: 600; }
body.cab #dash-main .d-onb-b a { color: var(--dz-ink); text-decoration: none; }
body.cab .d-onb-b a:hover b { text-decoration: underline; }
body.cab #dash-main .d-onb-b a b::after { content: ' →'; color: var(--dz-act); }
body.cab .d-onb-b .d { font-size: 13.5px; color: var(--dz-ink-2); }
body.cab .d-onb-row.done .d-onb-b .d { color: var(--dz-ink); }
body.cab .d-onb-b .t-bar { width: 100%; max-width: 360px; margin-top: 2px; }
body.cab .d-onb-b .why { font-size: 13px; color: var(--dz-red-ink); }
body.cab .d-onb-b .dz-ghost { justify-self: start; margin-top: 4px; }
body.cab .d-onb-t { padding-top: 3px; font-size: 13px; color: var(--dz-ink-2); white-space: nowrap; text-align: right; }
body.cab .d-onb-row.waiting .d-onb-b b { color: var(--dz-ink-2); }
body.cab .d-onb-note { margin: 10px 0 0; padding-top: 12px; border-top: 1px solid var(--dz-line); font-size: 14px; color: var(--dz-ink-2); }
@media (max-width: 640px) {
  body.cab #dash-main .d-onb { padding: 18px 16px; }
  body.cab .d-onb-row { grid-template-columns: minmax(0, 1fr) auto; }
  body.cab .d-onb-row > .st { grid-column: 1; grid-row: 1; }
  body.cab .d-onb-t { grid-column: 2; grid-row: 1; }
  body.cab .d-onb-b { grid-column: 1 / -1; }
}
/* «Данные о вашем бизнесе» under the zones: a white card on the canvas */
body.cab #dash-main .d-data { margin-top: 32px; border: 0; border-radius: 24px; background: var(--dz-paper); color: var(--dz-ink); }
body.cab #dash-main .d-data > summary { min-height: 64px; padding: 0 24px; }
body.cab #dash-main .d-data > summary:hover { background: var(--dz-paper-2); }
body.cab #dash-main .d-data .d-h h2 { font: 600 17px/1.3 var(--dz-font); color: var(--dz-ink); }
body.cab #dash-main .d-data .d-sub { font-size: 14px; color: var(--dz-ink-2); }
body.cab #dash-main .d-data .d-four { border-top-color: var(--dz-line); }
body.cab #dash-main .d-data .d-tile { border-color: var(--dz-line); }
body.cab #dash-main .d-data .d-tile:hover { background: var(--dz-paper-2); }

/* «по дням» of the neighbours' record, opened in its card */
body.cab .d-ldet { display: grid; gap: 8px; padding: 8px 0 4px; }
body.cab .d-lrow { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 2px 14px; padding: 8px 0; border-top: 1px dashed var(--dz-line); font-size: 13.5px; }
body.cab .d-lrow:first-child { border-top: 0; }
body.cab .d-lname { display: grid; gap: 2px; min-width: 0; }
body.cab .d-lname b { font-weight: 600; overflow-wrap: anywhere; }
body.cab .d-lname > span { font-size: 12px; color: var(--dz-ink-2); }
body.cab .d-lrow ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; color: var(--dz-ink-2); }
body.cab .d-lrow li .dl { display: inline-block; min-width: 92px; color: var(--dz-ink); }
body.cab .d-lrow li.full { color: var(--dz-red-ink); }
body.cab .d-lnote { margin: 0; font-size: 12.5px; color: var(--dz-ink-2); }
@media (max-width: 640px) { body.cab .d-lrow { grid-template-columns: minmax(0, 1fr); } }

/* «Обсудить» на других страницах: та же беседа в выдвижной панели справа, на телефоне — во весь экран */
body.cab .d-fab { position: fixed; right: 20px; bottom: 20px; z-index: 7; display: inline-flex; align-items: center; padding: 10px 18px; border: 0; border-radius: var(--r-pill);
  background: var(--accent); color: var(--on-accent); font: 500 14px var(--font); box-shadow: var(--shadow-float); cursor: pointer; }
body.cab .d-fab:hover { background: var(--accent-h); }
body.cab .d-fab[hidden], body.cab .d-dock[hidden] { display: none; }
body.cab .d-dock { position: fixed; top: 12px; right: 12px; bottom: 12px; width: min(420px, calc(100vw - 24px)); z-index: 8; display: grid; }
body.cab .d-dock .d-chat { position: static; height: 100%; min-height: 0; box-shadow: var(--shadow-float); }
body.cab .d-dock .d-msgs { max-height: none; }
body.cab .d-close { display: none; }
body.cab .d-dock .d-close { display: inline-flex; }
body.cab .d-dock .d-wide { display: none; }

/* «Обсудить»: справа во всю высоту окна, свой скролл у переписки (GlossGenius «AI Growth Analyst», вариант 3) */
body.cab .d-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
/* its height: the window less the page's head above it, so its field is in sight before the page is scrolled */
body.cab .d-chat { position: sticky; top: 20px; height: calc(100svh - 88px); min-height: 420px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; }
body.cab .d-chat-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 16px 20px 10px; border-bottom: 1px solid var(--line); }
body.cab .d-chat-h h2 { margin: 0; font-size: 16px; }
body.cab .d-msgs { overflow-y: auto; overscroll-behavior: contain; padding: 14px 20px; display: grid; gap: 12px; align-content: start; font-size: 14px; line-height: 1.5; }
body.cab .d-hello { margin: 0; color: var(--fg-2); font-size: 13px; }
body.cab .d-me { justify-self: end; max-width: 85%; padding: 8px 12px; border-radius: 12px 12px 4px 12px; background: var(--panel); white-space: pre-wrap; overflow-wrap: anywhere; }
body.cab .d-ai p { margin: 0 0 8px; overflow-wrap: anywhere; }
body.cab .d-ai p:last-of-type { margin-bottom: 0; }
body.cab .d-ai .src { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 6px; font-size: 12px; color: var(--fg-3); }
body.cab .d-copy { margin-left: auto; padding: 0; border: 0; background: none; color: var(--fg-3); font: 400 12px var(--font); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
body.cab .d-copy:hover { color: var(--fg); }
body.cab .d-chat-h .d-sub { flex: 1; }
/* «Новый разговор», «Прошлые»: a row of their own under the title (01.11.2026, the memory of the talks) */
body.cab .d-chat-h { flex-wrap: wrap; }
body.cab .d-talks { order: 5; flex-basis: 100%; display: flex; gap: 6px; margin-left: -10px; }
body.cab .d-talks .btn[aria-pressed="true"] { color: var(--fg); }
body.cab .d-mem a, body.cab .d-hello a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
body.cab .d-past { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
body.cab .d-past button { display: grid; gap: 2px; width: 100%; padding: 8px 10px; border: 0; border-radius: var(--r-ctl); background: none; color: var(--fg); font: 400 14px/1.35 var(--font); text-align: left; cursor: pointer; }
body.cab .d-past button:hover, body.cab .d-past button[aria-current="true"] { background: var(--panel); }
body.cab .d-past b { font-weight: 500; overflow-wrap: anywhere; }
body.cab .d-past span { font-size: 12px; color: var(--fg-3); }
body.cab .d-wide { align-self: center; }
/* «Шире»: the talk over the page, beside the menu; long answers read in full width */
body.cab .d-chat.wide { position: fixed; inset: 16px 16px 16px calc(var(--side) + 16px); z-index: 8; height: auto; min-height: 0; box-shadow: var(--shadow-float); grid-template-rows: auto minmax(0, 1fr) auto; }
body.cab .d-chat.wide .d-msgs { max-height: none; font-size: 15px; padding: 18px 28px; }
body.cab .d-chat.wide .d-me, body.cab .d-chat.wide .d-ai { max-width: 820px; }
body.cab .d-chat.wide .d-me { justify-self: end; }
body.cab .d-think { color: var(--fg-2); }
body.cab .d-think i { display: inline-block; width: 4px; height: 4px; margin-left: 3px; border-radius: 50%; background: currentColor; vertical-align: middle; }
@media (prefers-reduced-motion: no-preference) {
  body.cab .d-think i { animation: d-dot 1.2s infinite ease-in-out; }
  body.cab .d-think i:nth-child(2) { animation-delay: .2s; }
  body.cab .d-think i:nth-child(3) { animation-delay: .4s; }
}
@keyframes d-dot { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }
body.cab .d-chips { display: flex; flex-wrap: wrap; gap: 6px; }
body.cab .d-chips .tg { height: auto; min-height: 28px; padding: 4px 11px; text-align: left; white-space: normal; line-height: 1.3; }
body.cab .d-in { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 8px; align-items: end; padding: 12px 16px 14px; border-top: 1px solid var(--line); }
body.cab .d-f { display: block; min-width: 0; }
body.cab .d-in textarea { display: block; width: 100%; box-sizing: border-box; min-height: 40px; max-height: 140px; resize: vertical; padding: 8px 10px;
  border: 1px solid var(--line-strong); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); font: 400 14px/1.4 var(--font); }
body.cab .d-in small { grid-column: 1 / -1; font-size: 11px; color: var(--fg-3); }
/* «Разбираем: … ×» — the item of the dashboard the talk is on (radar/docs/2026-11-03-chat-focus.md) */
body.cab .d-focus { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; min-width: 0; margin: 0; padding: 3px 3px 3px 10px;
  border-radius: var(--r-ctl); background: var(--accent-tint); font-size: 13px; line-height: 1.3; }
body.cab .d-focus[hidden] { display: none; }
body.cab .d-focus span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.cab .d-focus b { font-weight: 600; }
body.cab .d-focus button { flex: none; width: 32px; height: 32px; border: 0; border-radius: var(--r-ctl); background: transparent; color: var(--fg-2); font-size: 18px; cursor: pointer; }
body.cab .d-focus button:hover { background: var(--surface); color: var(--fg); }
body.cab .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body.cab .d-askbar { display: none; }
/* the sheet of the phone (radar/docs/2026-11-03-chat-phone.md): made at body, used only up to 900 px */
body.cab .d-sheet { display: none; }

/* меньше 1180 px чату рядом тесно: он уходит под «Что делать» */
@media (max-width: 1180px) {
  body.cab .d-wrap { grid-template-columns: minmax(0, 1fr); }
  body.cab .d-chat { position: static; height: auto; min-height: 0; grid-template-rows: auto auto auto; }
  body.cab .d-chat.wide { position: fixed; inset: 12px; height: auto; grid-template-rows: auto minmax(0, 1fr) auto; }
  body.cab .d-msgs { max-height: 60svh; }
}
@media (max-width: 900px) {
  body.cab .d-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.cab .d-in textarea { font-size: 16px; }   /* no zoom on focus */
  /* the bar «Спросить…» above the menu on every page, the room for it under each page */
  body.cab .cab-page { padding-bottom: 60px; }
  body.cab .d-askbar { display: flex; align-items: center; gap: 8px; position: fixed; left: 12px; right: 12px; bottom: calc(64px + env(safe-area-inset-bottom, 0px)); z-index: 6;
    padding: 8px 8px 8px 14px; border: 1px solid var(--line-strong); border-radius: var(--r-ctl); background: var(--surface); box-shadow: var(--shadow-float);
    color: var(--fg-3); font: 400 14px var(--font); text-align: left; cursor: pointer; }
  body.cab .d-askbar[hidden] { display: none; }
  /* away while the page goes down (src/dash.js): no text under two bars */
  body.cab .d-askbar { transition: opacity .2s, translate .2s, visibility 0s; }
  body.cab .d-askbar.away { opacity: 0; translate: 0 16px; visibility: hidden; pointer-events: none; transition: opacity .2s, translate .2s, visibility 0s .2s; }
  body.cab .d-askbar span { flex: 1; }
  body.cab .d-askbar b { padding: 6px 10px; border-radius: var(--r-ctl); background: var(--accent); color: var(--on-accent); font-weight: 500; font-size: 13px; }
  body.cab .d-fab { display: none; }
  /* the page under the open sheet stays where it was: a wheel or a finger on the dimmed part scrolled it (the main session's check of
     84d1009: 600 px); overflow of the root, not a fixed body, which would lose the place */
  html:has(body.cab .d-sheet[open]) { overflow: hidden; }
  /* the sheet: 90 % of the screen with the browser's bars shown (svh), lifted over the keyboard (--kb, src/dash.js keyboardLift) */
  body.cab .d-sheet[open] { position: fixed; inset: auto 0 0; margin: 0 0 var(--kb, 0px); width: 100%; max-width: 100%; height: calc(90svh - var(--kb, 0px)); max-height: none;
    padding: 0; border: 0; border-radius: 16px 16px 0 0; background: var(--surface); color: var(--fg); box-shadow: var(--shadow-float);
    display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; }
  /* the dimmed page takes the theme's --scrim (theme.css, light and dark); ::backdrop inherits it from the sheet where the browser can */
  body.cab .d-sheet::backdrop { background: var(--scrim, rgb(29 26 21 / .4)); }
  body.cab .d-grab { display: grid; place-items: center; height: 20px; touch-action: none; cursor: grab; }
  body.cab .d-grab::before { content: ''; width: 40px; height: 4px; border-radius: 2px; background: var(--line-strong); }
  body.cab .d-sheet .d-chat { position: static; height: auto; min-height: 0; border: 0; border-radius: 0; box-shadow: none; grid-template-rows: auto minmax(0, 1fr) auto; }
  body.cab .d-sheet .d-msgs { max-height: none; overscroll-behavior: contain; }
  /* its title in one row: «Обсудить», «Новый разговор», «Прошлые», × — pulled down to close, so no browser gesture on it */
  body.cab .d-sheet .d-chat-h { flex-wrap: nowrap; align-items: center; gap: 4px; padding: 0 8px 8px 16px; touch-action: none; }
  body.cab .d-sheet .d-talks { order: 0; flex-basis: auto; margin-left: 4px; }
  body.cab .d-sheet .d-sub, body.cab .d-sheet .d-wide { display: none; }
  body.cab .d-sheet .d-close { display: inline-flex; margin-left: auto; font-size: 0; }
  body.cab .d-sheet .d-close::after { content: '×'; font-size: 24px; line-height: 1; }
  body.cab .d-sheet .d-in { padding-bottom: max(12px, env(safe-area-inset-bottom, 0px)); }
  body.cab .d-money { grid-template-columns: minmax(0, 1fr); }
  body.cab .d-mon { border-left: 0; border-top: 1px solid var(--line); padding: 14px 16px; }
  body.cab .d-mon:first-child { border-top: 0; }
  body.cab .d-mon .v { font-size: 24px; }
  body.cab .d-tile { border-left: 0; border-top: 1px solid var(--line); }
  body.cab .d-tile:nth-child(-n+2) { border-top: 0; }
  body.cab .d-tile:nth-child(even) { border-left: 1px solid var(--line); }
  body.cab .d-act { padding: 12px 14px; }
  body.cab .d-lrow { grid-template-columns: minmax(0, 1fr); }
  body.cab .d-fab { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); right: 12px; }
  body.cab .d-dock { inset: 0; width: auto; }
  body.cab .d-dock .d-chat { border-radius: 0; }
}
/* the sheet comes up from below, unless the reader asked for less motion */
@media (max-width: 900px) and (prefers-reduced-motion: no-preference) {
  body.cab .d-sheet[open] { animation: d-sheet-up .22s ease-out; }
}
@keyframes d-sheet-up { from { translate: 0 100%; } }

/* Cabinet home: schedule, comparable hours and the forecast. */
body.cab:has(#page-dash:not([hidden])) {
  --page: #f7f6f2; --fg: #202622; --fg-2: #626b65; --line: #e1e5df;
  --accent: #0f766e; --accent-h: #0c6059; --accent-tint: #e8f4f1;
  background: var(--page);
}
body.cab #dash-box {
  --hc-muted: var(--fg-2); --hc-rival: #64748b; --hc-urgent: #b42318;
  --hc-urgent-bg: #feece9; --hc-watch: #9a6700; --hc-watch-bg: #fff5d6;
}
body.cab:has(#page-dash:not([hidden])) .cab-nav a[aria-current],
body.cab:has(#page-dash:not([hidden])) .cab-tabbar a[aria-current] { color: var(--fg); background: var(--accent-tint); }
body.cab #dash-box .d-wrap { grid-template-columns: minmax(0, 1fr); }
body.cab #dash-box .hc-head { margin: 0 0 24px; }
body.cab #dash-box .hc-head h1 { margin: 4px 0 8px; font-size: clamp(28px, 4vw, 40px); line-height: 1.12; }
body.cab #dash-box .hc-head p { margin: 0; }
body.cab #dash-box :is(.hc-today,.hc-promotion) { font-size: 16px; line-height: 1.45; }
body.cab #dash-box :is(.hc-today,.hc-promotion) h2 { margin: 0 0 8px; font-size: 20px; }
body.cab #dash-box :is(.hc-today,.hc-promotion) h3 { margin: 0 0 8px; font-size: 17px; }
body.cab #dash-box .hc-card { background: var(--surface); color: var(--fg); border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
body.cab #dash-box .hc-note { font-size: 14px; color: var(--hc-muted); }
body.cab #dash-box .hc-days { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
body.cab #dash-box .hc-day { grid-row: 1; display: flex; flex-direction: column; gap: 4px; text-align: left; font: inherit; cursor: pointer; min-width: 0; }
body.cab #dash-box .hc-day:hover { border-color: var(--accent); }
body.cab #dash-box .hc-day[data-selected] { border-color: var(--accent); background: var(--accent-tint); }
body.cab #dash-box .hc-day-head { display: flex; width: 100%; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
body.cab #dash-box .hc-day-head small { color: var(--hc-muted); font-size: 14px; }
body.cab #dash-box .hc-day-head i { margin-inline-start: auto; align-self: center; width: 8px; height: 8px; border-right: 2px solid; border-bottom: 2px solid; transform: rotate(45deg); }
body.cab #dash-box .hc-day[aria-expanded=true] .hc-day-head i { transform: rotate(225deg); }
body.cab #dash-box .hc-number { font-weight: 600; font-size: clamp(24px, 2.7vw, 36px); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
body.cab #dash-box .hc-day[data-selected] .hc-number { color: var(--accent); }
body.cab #dash-box .hc-times { font-variant-numeric: tabular-nums; }
body.cab #dash-box .hc-slot-panel { grid-column: 1 / -1; }
body.cab #dash-box .hc-slot-panel[hidden] { display: none; }
body.cab #dash-box .hc-slots { list-style: none; padding: 0; margin: 8px 0; }
body.cab #dash-box .hc-slots li { border-top: 1px solid var(--line); padding: 8px 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 16px; }
body.cab #dash-box .hc-slots li small { font-size: 14px; color: var(--hc-muted); }
body.cab #dash-box .hc-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; }
body.cab #dash-box :is(.hc-action,.hc-link) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 12px; border: 1px solid transparent; border-radius: 8px; font: inherit; text-decoration: none; cursor: pointer; }
body.cab #dash-box .hc-link { background: transparent; color: var(--accent); }
body.cab #dash-box .hc-link:hover { background: var(--accent-tint); }
body.cab #dash-box :is(.hc-action,.hc-promotion .dz-fill-go) { background: var(--accent); color: var(--on-accent); }
body.cab #dash-box :is(.hc-action,.hc-promotion .dz-fill-go):hover { background: var(--accent-h); }
body.cab #dash-box .hc-occupancy { margin-top: 16px; }
body.cab #dash-box .hc-occupancy-row { padding: 8px 0; border-top: 1px solid var(--line); }
body.cab #dash-box .hc-occupancy-row > div:first-child { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
body.cab #dash-box .hc-occupancy-row small { font-size: 14px; color: var(--hc-muted); }
body.cab #dash-box .hc-pct { margin-left: auto; font-variant-numeric: tabular-nums; }
body.cab #dash-box .hc-occupancy-row p { margin: 4px 0 0; }
body.cab #dash-box .hc-track { height: 8px; background: var(--line); border-radius: 4px; overflow: hidden; margin-top: 4px; }
body.cab #dash-box .hc-track i { display: block; height: 100%; background: var(--hc-rival); }
body.cab #dash-box .hc-occupancy-row.own .hc-track i { background: var(--accent); }
body.cab #dash-box .hc-separated { margin: 8px 0; padding-top: 8px; border-top: 1px solid var(--line); }
body.cab #dash-box .hc-proof { border-top: 1px solid var(--line); margin-top: 8px; }
body.cab #dash-box .hc-proof summary { min-height: 44px; align-content: center; cursor: pointer; }
body.cab #dash-box .hc-promotion { margin: 32px 0; }
body.cab #dash-box .hc-promotion select { display: block; max-width: 100%; min-height: 44px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 8px; background: var(--surface); color: var(--fg); font: inherit; }
body.cab #dash-box .hc-promotion .dz-fill { padding: 16px 0 0; margin: 16px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; }
body.cab #dash-box .hc-promotion .dz-fill-go { width: fit-content; min-height: 44px; border: 0; border-radius: 8px; }
@media (max-width: 760px) {
  body.cab #dash-box .hc-days { grid-template-columns: minmax(0, 1fr); }
  body.cab #dash-box .hc-day { grid-row: auto; }
}

body.cab #dash-box .hc-section { margin: 32px 0; font-size: 16px; }
body.cab #dash-box .hc-section h2 { margin: 0 0 8px; font-size: 20px; }
body.cab #dash-box .hc-section h3 { margin: 0 0 8px; font-size: 17px; }
body.cab #dash-box .hc-section p { margin: 8px 0; }
body.cab #dash-box .hc-section > .hc-card + .hc-card { margin-top: 16px; }
body.cab #dash-box .hc-event { border-inline-start: 3px solid var(--hc-urgent); }
body.cab #dash-box .hc-event header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-bottom: 8px; }
body.cab #dash-box .hc-status { color: var(--hc-urgent); background: var(--hc-urgent-bg); padding: 2px 8px; border-radius: 4px; font-size: 14px; }
body.cab #dash-box .hc-error { color: var(--hc-urgent); }
body.cab #dash-box .hc-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
body.cab #dash-box .hc-table :is(th,td) { padding: 8px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
body.cab #dash-box .hc-table :is(th,td):last-child { text-align: right; white-space: nowrap; }
body.cab #dash-box .hc-table th { color: var(--hc-muted); font-size: 14px; font-weight: 500; }
body.cab #dash-box .hc-table td:first-child { font-size: 14px; color: var(--hc-muted); }
body.cab #dash-box .hc-table .own { background: var(--accent-tint); }
body.cab #dash-box .hc-table summary { min-height: 44px; cursor: pointer; }
body.cab #dash-box .hc-table summary > span { display: block; overflow-wrap: anywhere; }
body.cab #dash-box .hc-price select { display: block; max-width: 100%; min-height: 44px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 8px; background: var(--surface); color: var(--fg); font: inherit; }
body.cab #dash-box .hc-price .dz-scale { padding: 8px; }
body.cab #dash-box .hc-price-values { display: flex; flex-wrap: wrap; gap: 4px 16px; }
body.cab #dash-box .hc-price-values strong { color: var(--accent); }
body.cab #dash-box .hc-price .g-rv { fill: var(--hc-rival); }
body.cab #dash-box .hc-price .g-you { fill: var(--accent); }
body.cab #dash-box .hc-price .hc-range { stroke: var(--hc-rival); stroke-width: 6; opacity: .32; }
body.cab #dash-box .hc-price .dz-scale + p { font-variant-numeric: tabular-nums; }
body.cab #dash-box #dash-rivals :is(.dz-band,.dz-rv) { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; color: var(--fg); }
body.cab #dash-box #dash-rivals .dz-sq { display: none; }
body.cab #dash-box #dash-rivals :is(.dz-ink,.dz-btn) { background: var(--accent); color: var(--on-accent); border-radius: 8px; }
body.cab #dash-box .hc-proof :is(.dz-own,.dz-dec) { border: 0; border-radius: 0; box-shadow: none; background: transparent; }
body.cab .pr-svc.pr-selected { outline: 2px solid var(--accent); outline-offset: -2px; }
@media (max-width: 540px) {
  body.cab #dash-box .hc-table :is(th,td):last-child { display: none; }
  body.cab #dash-box .hc-table :is(th,td) { padding: 8px 4px; }
}

body.cab #page-dash {
  --dz-canvas: #f7f6f2; --dz-ink: #202622; --dz-ink-2: #626b65; --dz-line: #e1e5df;
  --dz-act: #0f766e; --dz-act-h: #0c6059; --dz-sun-soft: #e8f4f1;
}

body.cab #dash-box .hc-month-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 16px 0; }
body.cab #dash-box .hc-metric > summary { display: flex; flex-direction: column; cursor: pointer; min-height: 44px; }
body.cab #dash-box .hc-day[aria-busy=true] .hc-times { display: block; width: 8em; height: .65em; margin: 4px 0; border-radius: 4px; background: var(--line); }
@media (max-width: 540px) { body.cab #dash-box .hc-month-grid { grid-template-columns: minmax(0, 1fr); } }

/* The source may still be loading after the ordinary collection has finished. */
body.cab #dash-recovery { margin: 0 0 20px; font: 14px/1.5 var(--font); color: var(--fg); }
body.cab #dash-recovery[hidden], body.cab #dash-recovery [hidden] { display: none; }
body.cab #dash-recovery .rc-panel { border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
body.cab #dash-recovery .rc-summary { min-height: 44px; padding: 10px 16px; cursor: pointer; box-sizing: border-box; }
body.cab #dash-recovery .rc-summary:focus-visible, body.cab #dash-recovery a:focus-visible, body.cab #dash-recovery .rc-details summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
body.cab #dash-recovery .rc-heading { font-weight: 600; margin-inline-end: 12px; }
body.cab #dash-recovery .rc-tally, body.cab #dash-recovery :is(.rc-counts,.rc-done,.rc-when,.rc-note) { color: var(--fg-2); }
body.cab #dash-recovery .rc-list { list-style: none; margin: 0; padding: 0 16px 4px; }
body.cab #dash-recovery .rc-row { padding: 12px 0 4px; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
body.cab #dash-recovery .rc-name { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
body.cab #dash-recovery :is(.rc-stage,.rc-counts,.rc-done,.rc-reason,.rc-when) { margin: 4px 0; }
body.cab #dash-recovery :is(.rc-counts,.rc-done) { font-variant-numeric: tabular-nums; }
body.cab #dash-recovery .rc-details > summary { min-height: 44px; align-content: center; cursor: pointer; color: var(--fg-2); }
body.cab #dash-recovery .rc-details > p { max-width: 70ch; }
body.cab #dash-recovery .rc-when { font-size: 12px; }
body.cab #dash-recovery .rc-progress { display: block; max-width: 320px; width: 100%; height: 6px; accent-color: var(--accent); margin: 8px 0; }
body.cab #dash-recovery .rc-note { margin: 0 16px 12px; }
@media (max-width: 540px) {
  body.cab #dash-recovery .rc-summary { padding: 10px 12px; }
  body.cab #dash-recovery .rc-tally { display: block; padding-inline-start: 14px; }
  body.cab #dash-recovery .rc-list { padding-inline: 12px; }
}
