/* ============================================================================
   МедГраф · публичные страницы (Г-1): главная, лендинги, тарифы.
   Перенос 1:1 из эталонов: design/concepts/концепт_итог.html (главная),
   design/mockups/{лендинг_организаторов,лендинг_фармы,тарифы}.html.
   Палитра/типографика/движение — только токены (tokens.css).
   ========================================================================== */

/* ============ ПОЯВЛЕНИЕ ПО СКРОЛЛУ (P08, шаг stagger — токен канона) ====== */
.js .rv{opacity:0;transform:translateY(16px);transition:opacity var(--d-reveal) var(--e-reveal),transform var(--d-reveal) var(--e-reveal)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:var(--stagger)}
.js .rv.d2{transition-delay:calc(var(--stagger)*2)}
.js .rv.d3{transition-delay:calc(var(--stagger)*3)}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}

/* ============ ПИНГ СВЕЖЕСТИ (P06) ============ */
.ping{position:relative;display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber-dot);flex:none;vertical-align:1px}
.ping::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--amber-dot);opacity:0;animation:ping var(--d-ping) ease-out infinite}
@keyframes ping{0%{transform:scale(.35);opacity:.9}70%{transform:scale(1.25);opacity:0}100%{transform:scale(1.25);opacity:0}}
@media (prefers-reduced-motion:reduce){.ping::after{animation:none}}

/* ============ КНОПКИ ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:600;font-size:15px;padding:13px 22px;border-radius:var(--r-s);border:1px solid transparent;transition:transform var(--t-fast),background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn--amber{background:var(--amber);color:var(--on-amber);box-shadow:var(--sh-btn)}
.btn--amber:hover{background:var(--amber-hover)}
.btn--ghost{border-color:var(--line2);color:var(--text)}
.btn--ghost:hover{border-color:var(--amber-line)}
.btn--ink{background:var(--ink);color:var(--paper)}
.btn--ink:hover{background:#1C222C}
.btn--s{font-size:13px;padding:9px 15px}
.btn--l{font-size:15px;padding:14px 24px}

/* ============ ШАПКА ГЛАВНОЙ (терминал) ============ */
.hdr{position:sticky;top:0;z-index:var(--z-header);background:rgba(11,14,19,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr-top{display:flex;align-items:center;gap:28px;height:64px}
.logo{display:flex;align-items:center;gap:11px;font:800 19px/1 var(--disp);letter-spacing:-.01em}
.logo svg{flex:none}
.logo small{font:500 10px/1.35 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);max-width:150px}
/* Вправо строку раньше растягивала форма поиска (её убрали 31.07.2026 —
   поиск на главной остался один, в хиро). Теперь распорку держит логотип:
   он слева, «Войти» и соцсети — у правого края. */
.hdr-top .logo{margin-right:auto}
.hdr .btn{padding:9px 18px;font-size:14px}
.hdr-out{display:inline-flex}
.roles{display:flex;gap:4px;border-top:1px solid var(--line);padding:8px 0}
.roles .tag{margin-right:14px;align-self:center}
.role{font:500 13px/1 var(--body);color:var(--mut);padding:9px 16px;border-radius:8px;border:1px solid transparent;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}
.role:hover{color:var(--text)}
.role[aria-pressed="true"]{color:var(--amber);border-color:var(--amber-line);background:var(--amber-dim)}

/* ============ ШАПКА B2B-СТРАНИЦ ============ */
.hdr-b2b{display:flex;align-items:center;gap:18px;height:64px;padding:0 32px;border-bottom:1px solid var(--line);background:rgba(11,14,19,.86);position:sticky;top:0;z-index:var(--z-header);backdrop-filter:blur(10px)}
.hdr-b2b .logo{font-size:18px}
.hdr-b2b .aud{font:500 11px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut2)}
.hdr-b2b nav{margin-left:auto;display:flex;gap:8px;align-items:center}
.hdr-b2b nav a{font:500 13.5px/1 var(--body);color:var(--mut);padding:9px 13px;border-radius:var(--r-s);transition:color var(--t-fast)}
.hdr-b2b nav a:hover{color:var(--text)}
.hdr-b2b nav a.on{color:var(--amber);background:var(--amber-dim)}
.hdr-b2b nav a.btn{color:var(--on-amber)}

/* ============ ХИРО ГЛАВНОЙ ============ */
.hero{display:grid;grid-template-columns:minmax(0,1fr) 470px;gap:56px;align-items:start;padding:72px 32px 64px}
.hero-l{max-width:600px}
/* line-height:1 у .tag рассчитан на одну строку; на телефоне надстрочник
   хиро переносится на две, и строки слипались вплотную */
.eyebrow{margin-bottom:22px;line-height:1.5}
h1{font:800 var(--fs-h1)/1.06 var(--disp);letter-spacing:-.018em;margin-bottom:18px;min-height:2.1em}
.sub{color:var(--mut);font-size:17px;max-width:54ch;margin-bottom:30px}
.pitch{transition:opacity var(--t-fast)}
.pitch.swap{opacity:0}
/* карточка «Рынок в цифрах» per-роль (Павел 24.07): мягкая подмена цифр */
.market .bignum-row,.market .stat4{transition:opacity var(--t-fast)}
.market.swap .bignum-row,.market.swap .stat4{opacity:0}
.spec-form{display:flex;gap:10px;max-width:520px}
.spec-ac{flex:1;position:relative}
.spec-form input{width:100%;background:var(--panel);border:1px solid var(--line2);border-radius:var(--r-s);padding:13px 16px;font-size:15px}
.spec-form input::placeholder{color:var(--mut2)}
.spec-form input:focus{border-color:var(--amber-line);outline:none}
/* подсказки поиска специальности — единственного на сайте (31.07.2026) */
.ac-pop{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;
  background:var(--panel);border:1px solid var(--line2);border-radius:var(--r-s);
  box-shadow:0 18px 40px rgba(0,0,0,.45);overflow:hidden;max-height:296px;overflow-y:auto}
.ac-i{display:block;width:100%;text-align:left;padding:11px 16px;font-size:14.5px;
  color:var(--mut);background:none;border:0;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.ac-i b{color:var(--text);font-weight:600}
.ac-i:hover,.ac-i.on{background:var(--amber-dim);color:var(--text)}
.ac-none{padding:12px 16px;font-size:13.5px;color:var(--mut2)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{font:500 12px/1 var(--mono);color:var(--mut);border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 13px;transition:color var(--t-fast),border-color var(--t-fast)}
.chip:hover{color:var(--amber);border-color:var(--amber-line)}
.trust{margin-top:26px;font:500 12px/1.6 var(--mono);letter-spacing:.06em;color:var(--mut)}
.trust b{color:var(--up);font-weight:500}
#cta-b2b p{margin-top:12px;font:500 12px/1.5 var(--mono);color:var(--mut)}

/* панель «Рынок в цифрах» */
.market{background:linear-gradient(180deg,var(--panel) 0%,var(--bg2) 100%);border:1px solid var(--line);border-radius:var(--r-l);padding:24px 24px 18px;box-shadow:var(--sh-panel)}
.market-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}
.live{display:inline-flex;align-items:center;gap:8px;font:500 11px/1 var(--mono);color:var(--mut)}
.bignum{font:700 var(--fs-num-xl)/1 var(--mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}
/* цифра карточки «Рынок в цифрах» — светлая на тёмной карточке. Явно
   возвращаем цвет, т.к. глобальное .bignum{color:var(--ink)} из блока трекера
   ЗЕТ (светлая зона) иначе перекрывает и делает цифру тёмной по тёмному. */
.market .bignum{color:var(--text)}
.bignum-row{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.badge-down{font:700 13px/1 var(--mono);color:var(--down);background:var(--down-dim);border:1px solid var(--down-line);border-radius:var(--r-xs);padding:7px 10px;margin-bottom:8px;opacity:1;transition:opacity var(--t-swap) .2s}
.js .badge-down.wait{opacity:0}
.bignum-cap{margin-top:8px;font-size:13px;color:var(--mut)}
.bignum-cap b{color:var(--text);font-weight:600}
.chart{margin:18px 0 6px}
.chart text{font:500 10.5px var(--mono);fill:var(--mut2)}
.chart .val{fill:var(--mut)}
.chart .val--hot{fill:var(--amber);font-weight:700}
.chart .fc-cap{fill:var(--mut2);opacity:.85}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .ln{stroke:var(--down);stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.chart .fc{stroke:var(--down);stroke-width:2;fill:none;stroke-dasharray:4 7;opacity:.55}
.js .chart .late{opacity:0;transition:opacity .6s ease}
.js .chart .late.on{opacity:1}
.js .chart .fc.late.on{opacity:.55}
.stat4{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:14px}
.stat4 div{padding:14px 6px 6px;border-top:1px solid transparent}
.stat4 div:nth-child(odd){border-right:1px solid var(--line);padding-right:16px}
.stat4 div:nth-child(even){padding-left:16px}
.stat4 div:nth-child(n+3){border-top:1px solid var(--line);margin-top:2px}
.stat4 b{display:block;font:700 var(--fs-num-m)/1.2 var(--mono);color:var(--text)}
.stat4 span{font-size:12px;color:var(--mut)}

/* ============ ТИКЕР (P05, длительность — токен канона) ============ */
.ticker{border-top:1px solid var(--line);background:var(--bg2);overflow:hidden}
.tk-track{display:flex;width:max-content}
.js .tk-track{animation:tk var(--d-ticker) linear infinite}
.ticker:hover .tk-track{animation-play-state:paused}
@keyframes tk{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.js .tk-track{animation:none}}
.tk-set{display:flex;gap:44px;padding:13px 22px;white-space:nowrap}
.tk-set span{font:500 12px/1 var(--mono);color:var(--mut)}
.tk-set b{color:var(--amber);font-weight:700;margin-right:8px}

/* ============ ЭКГ-ПУЛЬС: стык зон (сигнатура) ============ */
.ecg{position:relative;height:56px;overflow:hidden;background:var(--paper);border-top:1px solid var(--line)}
.ecg svg{position:absolute;inset:0;width:100%;height:100%}
.ecg .base{stroke:var(--line-l);stroke-width:1.5;fill:none}
.ecg .beat{stroke:var(--amber-dot);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:130 1600;animation:beat var(--d-ecg) linear infinite}
@keyframes beat{to{stroke-dashoffset:-1730}}
@media (prefers-reduced-motion:reduce){.ecg .beat{animation:none;stroke-dasharray:none}}
.ecg--flip{background:var(--bg);border-top-color:var(--line-l)}
.ecg--flip .base{stroke:var(--line)}

/* ============ СВЕТЛАЯ ЗОНА ГЛАВНОЙ: ЛЕНТА ============ */
.light h2{font:800 var(--fs-h2)/1.1 var(--disp);letter-spacing:-.015em;margin:14px 0 10px;color:var(--ink)}
.feed{padding:72px 0 64px}
.feed-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:8px}
.feed-sub{color:var(--ink-mut);max-width:62ch}
.feed-sub b{color:var(--ink);font-weight:600}
.feed-date{font:500 11.5px/1.7 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mut2);padding-bottom:6px;white-space:nowrap}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}
.card{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:18px 20px;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}
.card:hover{transform:translateY(-3px);box-shadow:var(--sh-card);border-color:var(--line-l2)}
.c-top{display:flex;align-items:center;gap:9px;margin-bottom:13px}
.c-fresh{font:500 var(--fs-meta)/1 var(--mono);color:var(--ink-mut)}
/* --amber-hot на бумаге давал 3,2:1 (ревью Г-3) — берём чернильный янтарь */
.c-fresh.hot{color:var(--amber-ink);font-weight:700}
/* заголовок группы месяца + счётчик карточек в ней */
.fd .fd-group{display:flex;align-items:baseline;gap:10px;margin:28px 0 12px;font:700 20px/1.2 var(--disp);letter-spacing:-.01em;color:var(--ink)}
.fd-group::after{content:"";flex:1;height:1px;background:var(--line-l);order:3}
.fd-group i{order:2;font:500 11px/1 var(--mono);font-style:normal;color:var(--ink-mut);border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:4px 9px}
/* прошедшие: приглушены и помечены */
.fcard.is-past{opacity:.72}
.fcard.is-past .dateblock{background:var(--paper-dim);border-color:var(--line-l2)}
.fcard.is-past .dateblock span{color:var(--ink-mut)}
.c-past{font:700 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mut);border:1px solid var(--line-l2);border-radius:var(--r-xs);padding:4px 7px}
a.spec-tag:hover{border-color:var(--amber-edge2);color:var(--ink)}
.c-zet{margin-left:auto;font:700 12.5px/1 var(--mono);color:var(--amber-ink);background:var(--amber-wash2);border:1px solid var(--amber-edge2);border-radius:var(--r-xs);padding:6px 9px;white-space:nowrap}
.c-body{display:flex;gap:15px}
.dateblock{flex:none;width:56px;text-align:center;background:var(--amber-wash);border:1px solid var(--amber-edge);border-radius:var(--r-m);padding:9px 4px 7px;height:fit-content}
.dateblock b{display:block;font:700 19px/1.1 var(--disp);color:var(--ink)}
.dateblock span{display:block;font:500 10px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--amber-ink)}
/* год в дата-блоке: без него непонятно, какой год (Павел 24.07) */
.dateblock i{display:block;font:500 9.5px/1.3 var(--mono);letter-spacing:.06em;color:var(--ink-mut);font-style:normal}
.card h3{font:600 var(--fs-card)/1.38 var(--body);letter-spacing:-.005em;color:var(--ink);margin-bottom:4px}
.c-org{font-size:13.5px;color:var(--ink-mut);margin-bottom:9px}
.c-meta{display:flex;flex-wrap:wrap;gap:5px 14px;font-size:13px;color:var(--ink-mut);align-items:baseline}
.c-meta .free{color:var(--free);font-weight:600}
.c-meta .fee{font:500 13px/1 var(--mono);color:var(--ink)}
.feed-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:30px;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:22px 26px}
.feed-cta p{color:var(--ink-mut);font-size:var(--fs-s);max-width:52ch}
.feed-cta p b{color:var(--ink);font-weight:600}

/* ============ СВЕТЛАЯ ЗОНА ГЛАВНОЙ: АНАЛИТИКА ============ */
.press{padding:24px 0 84px}
.press-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:30px;flex-wrap:wrap}
/* справа от заголовка — только ссылка «Все материалы», без текста (14.08.2026);
   стиль в тон «Читать →» на карточках */
.press-more{font:600 14px/1 var(--body);color:var(--amber-hot);transition:color var(--t-fast)}
.press-more:hover{color:var(--amber-ink)}
.press-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.art{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}
.art:hover{transform:translateY(-3px);box-shadow:var(--sh-card);border-color:var(--line-l2)}
.art .cover{display:flex;align-items:center;justify-content:center;height:112px;font:700 36px/1 var(--mono);letter-spacing:-.03em}
.cover--1{background:var(--ink);color:var(--amber)}
.cover--2{background:var(--paper-dim);color:var(--ink)}
.cover--3{background:var(--amber-wash2);color:var(--amber-ink)}
.art-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:9px;flex:1}
.art .soon{font:500 11px/1 var(--mono);letter-spacing:.1em;color:var(--ink-mut2);text-transform:uppercase}
.art h3{font:700 var(--fs-title)/1.32 var(--disp);letter-spacing:-.008em;color:var(--ink)}
.art p{font-size:14px;color:var(--ink-mut);flex:1}
.art .go{font:600 13.5px/1 var(--body);color:var(--amber-hot)}

/* ============ B2B-БЛОК ГЛАВНОЙ (тьма) ============ */
.b2b{padding:96px 0;border-top:1px solid var(--line)}
.b2b-grid{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:64px;align-items:center}
.b2b h2{font:800 var(--fs-h2d)/1.08 var(--disp);letter-spacing:-.016em;margin:16px 0 16px}
.b2b .lead{color:var(--mut);max-width:52ch;margin-bottom:28px}
.b2b .lead b{color:var(--text);font-weight:600}
.fracs{border-top:1px solid var(--line);margin-bottom:32px}
.frac{display:flex;align-items:baseline;gap:18px;padding:13px 2px;border-bottom:1px solid var(--line)}
.frac b{font:700 20px/1 var(--mono);color:var(--amber);min-width:96px;text-align:right;font-variant-numeric:tabular-nums}
.frac span{font-size:14px;color:var(--mut)}
.b2b-cta{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.link-more{font-size:14px;color:var(--mut);border-bottom:1px solid var(--line2);padding-bottom:2px;transition:color var(--t-fast),border-color var(--t-fast)}
.link-more:hover{color:var(--amber);border-color:var(--amber-line)}

/* обезличенный дашборд-фрагмент (Б-1) — главная и лендинг организаторов */
.dash{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line2);border-radius:var(--r-l);padding:22px;box-shadow:var(--sh-dash)}
.dash-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px;align-items:center}
.dash-head .tag{font-size:10.5px;letter-spacing:.12em;color:var(--mut)} /* --mut2 давал 3.99:1 на чернилах — ниже нормы мелкого моно (ревью Г-1, Ж-6) */
.dash-big b{display:block;font:700 26px/1.15 var(--disp);letter-spacing:-.015em;color:var(--down)}
.dash-big span{font-size:12.5px;color:var(--mut)}
.dash-rows{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.dash-rows div{font-size:12.5px;color:var(--mut);border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;line-height:1.5}
.spark{margin:4px 0 14px}
.spark line{stroke:var(--line);stroke-width:1}
.spark .ln{stroke:var(--down);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
/* P02: линия факта рисуется --d-draw (канон), точка «сейчас» — через 1.5s */
.js .spark.play .ln{stroke-dasharray:1000;stroke-dashoffset:1000;animation:spark-draw var(--d-draw) var(--e-draw) .15s forwards}
@keyframes spark-draw{to{stroke-dashoffset:0}}
.spark .late{opacity:1}
.js .spark.play .late{opacity:0;animation:spark-late .6s ease var(--d-draw-late) forwards}
@keyframes spark-late{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .js .spark.play .ln{animation:none;stroke-dasharray:none;stroke-dashoffset:0}
  .js .spark.play .late{animation:none;opacity:1}
}
.spark-cap{font:500 10px/1.5 var(--mono);color:var(--mut2);margin:-8px 0 12px}
.dash-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.dash-chips i{font:500 12px/1 var(--mono);font-style:normal;border-radius:var(--r-pill);padding:8px 12px;border:1px solid var(--line2);color:var(--mut)}
.dash-chips i.win{color:var(--amber);border-color:var(--amber-line)}
.alert{display:flex;gap:10px;align-items:center;background:var(--amber-dim);border:1px solid var(--amber-line);border-radius:var(--r-s);padding:12px 14px;font:500 12.5px/1.5 var(--mono);color:var(--amber)}
.dash-foot{margin-top:14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.dash-foot .mut{font-size:12px;color:var(--mut2)}

/* ============ БОЛЬШОЙ ФУТЕР (главная) ============ */
.ftb{border-top:1px solid var(--line);background:var(--bg2);padding:60px 0 34px}
/* шесть колонок: Специальности · Врачам · Организаторам · Индустрии ·
   МедГраф · Правовые документы. minmax(0,1fr) — иначе длинные названия
   документов распирают трек и колонки расходятся по ширине */
.ft-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px;margin-bottom:44px}
/* line-height 1.25 вместо 1: «Правовые документы» в две строки на узких
   треках, при line-height:1 строки слипаются */
.ft-grid h4{font:500 11px/1.25 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut2);margin-bottom:16px}
.ft-grid a{display:block;font-size:13.5px;color:var(--mut);padding:4px 0;transition:color .15s}
.ft-grid a:hover{color:var(--amber)}
/* «Выйти» в подвале выглядит как остальные ссылки колонки (это форма POST:
   разлогин GET-ссылкой Django не принимает) */
.ft-out button{display:block;background:none;border:0;padding:4px 0;font:400 13.5px/1.5 var(--body);color:var(--mut);cursor:pointer;transition:color .15s}
.ft-out button:hover{color:var(--amber)}
.ft-meta{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font:400 12px/1.6 var(--mono);color:var(--mut2)}

/* ============ ЛЕНДИНГИ: ХИРО, ФАКТЫ, СЕКЦИИ ============ */
.lhero{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:52px;align-items:center;padding:64px 32px 56px}
.lhero--solo{display:block;max-width:900px;padding:60px 32px 52px}
.lhero h1{font:800 clamp(30px,3.8vw,48px)/1.08 var(--disp);letter-spacing:-.017em;margin-bottom:16px;max-width:22ch;min-height:0}
.lhero--solo h1{font-size:clamp(28px,3.6vw,44px);line-height:1.1;max-width:24ch}
.l-eyebrow{font:500 var(--fs-tag)/1.6 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:20px}
.lead{color:var(--mut);font-size:16px;max-width:56ch;margin-bottom:26px}
.lead b{color:var(--text);font-weight:600}
.cta-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.cta-row .note{font-size:12.5px;color:var(--mut2);max-width:26ch}

/* колонок ровно столько, сколько плиток отрендерилось (Павел 14.08.2026):
   часть цифр условная, и при трёх плитках жёсткая сетка на 4 колонки
   оставляла пустую четверть — ряд выглядел прижатым влево */
.facts{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{padding:22px 26px;border-right:1px solid var(--line)}
.facts div:last-child{border-right:0}
.facts b{display:block;font:700 30px/1.15 var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.facts b.down{color:var(--down)}
.facts b.am{color:var(--amber)}
.facts span{font-size:12.5px;color:var(--mut)}

.sec{padding:64px 32px;border-bottom:1px solid var(--line)}
.sec--last{border-bottom:0}
.sec-h{margin-bottom:28px}
.sec-h .l-eyebrow{margin-bottom:12px}
.sec-h h2{font:800 clamp(24px,2.8vw,34px)/1.1 var(--disp);letter-spacing:-.015em}
.sec-h p{color:var(--mut);font-size:var(--fs-s);margin-top:8px;max-width:64ch}
.steps3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.step{border:1px solid var(--line2);border-radius:var(--r-l);padding:22px 24px;background:var(--panel)}
.step .n{font:700 12px/1 var(--mono);color:var(--amber);letter-spacing:.1em;margin-bottom:12px;display:block}
.step h3{font:700 16.5px/1.3 var(--disp);letter-spacing:-.008em;margin-bottom:8px}
.step p{font-size:13.5px;color:var(--mut)}

/* ============ ТАРИФЫ ============ */
.plans{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.plan{border:1px solid var(--line2);border-radius:var(--r-l);padding:24px;display:flex;flex-direction:column;background:var(--panel)}
.plan.hot{border-color:var(--amber-line);background:linear-gradient(180deg,rgba(245,185,66,.06),var(--panel));position:relative}
.plan.hot::before{content:"основной тариф";position:absolute;top:-10px;left:18px;background:var(--amber);color:var(--on-amber);font:700 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:5px}
.plan h3{font:700 18px/1.3 var(--disp)}
.plan .for{font-size:12.5px;color:var(--mut2);margin:3px 0 12px}
.plan .price{font:700 15px/1.4 var(--mono);color:var(--amber);margin:8px 0 14px}
.plan .price small{display:block;font:400 11.5px/1.5 var(--body);color:var(--mut2)}
.plan ul{margin:0 0 18px}
.plan li{font-size:13px;color:var(--mut);margin:0 0 8px 16px;line-height:1.5}
.plan li b{color:var(--text);font-weight:600}
.plan li.no{color:var(--mut2);list-style:none;margin-left:0}
.plan .btn{margin-top:auto}
.wide{margin-top:16px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--amber-line);background:var(--amber-dim);border-radius:var(--r-l);padding:18px 22px}
.wide p{font-size:14px;color:var(--text);max-width:58ch}
.wide p b{font-weight:700}
.wide .s{color:var(--mut)}

/* Витрина организатора: бесплатный вход, переключатель периода, крупная
   мономцена, бейдж «выбор большинства» (дизайн 08.2026, тёмная зона). */
.entry{margin:0 0 22px;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line2);background:var(--panel);border-radius:var(--r-l);padding:20px 24px}
.entry-h{font:700 16px/1.3 var(--disp);color:var(--text)}
.entry-s{font-size:13px;color:var(--mut);max-width:62ch;margin-top:5px;line-height:1.55}
.entry-cta{display:flex;gap:10px;flex-wrap:wrap;flex:none}

.ptoggle{display:inline-flex;gap:4px;margin:0 0 18px;padding:4px;border:1px solid var(--line2);border-radius:var(--r-pill);background:var(--panel)}
.pt{font:600 13px/1 var(--body);color:var(--mut);padding:9px 15px;border-radius:var(--r-pill);transition:color var(--t-fast),background var(--t-fast)}
.pt.on{background:var(--amber-dim);color:var(--amber)}

.plans--org .plan .price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin:10px 0 16px}
.plans--org .plan .price .num{font:700 34px/1 var(--mono);letter-spacing:-.02em;color:var(--amber)}
.plans--org .plan .price .per{font:500 13px/1 var(--body);color:var(--mut)}
.plans--org .plan .price .eco{flex-basis:100%;font:500 11.5px/1.45 var(--body);color:var(--mut2);min-height:1.1em;margin-top:2px}
/* строка «ниша — единица ширины»: отделена от состава пакета линией, чтобы
   читалась как условие цены, а не как ещё один пункт списка возможностей */
.plans--org .plan .xniche{margin:-6px 0 14px;padding-bottom:13px;border-bottom:1px solid var(--line2);
  font:500 12px/1.5 var(--body);color:var(--mut2)}
.plans--org .plan .xniche b{color:var(--mut);font-weight:700;white-space:nowrap}
.plans--org .plan.hot::before{content:"выбор большинства"}
.plans-note{margin:14px 0 0;font-size:13px;color:var(--mut2);line-height:1.5}

@media (max-width:820px){
  .plans--org{grid-template-columns:1fr}
  .entry{flex-direction:column;align-items:flex-start}
}
.pharma-row{margin-top:16px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line2);background:var(--panel);border-radius:var(--r-l);padding:18px 22px}
.pharma-row h3{font:700 16px/1.3 var(--disp)}
.pharma-row p{font-size:13px;color:var(--mut);max-width:56ch;margin-top:4px}
/* FAQ внутри секции лендинга: тарифы и вопросы переехали на страницы
   аудиторий, отдельного прайса больше нет (31.07.2026) */
.faq-inline{margin-top:28px;max-width:820px}
.faq-inline .h3{font:800 18px/1.25 var(--disp);letter-spacing:-.01em;margin-bottom:10px}
.faq-inline .faq p a{color:var(--amber);text-decoration:underline}
.lz .faq-inline .faq p a{color:var(--amber-ink)}
.faq-sec{padding:44px 32px 52px}
.faq-sec .h2{font:800 22px/1.2 var(--disp);letter-spacing:-.012em;margin-bottom:14px}
.faq{border:1px solid var(--line2);border-radius:var(--r-m);margin-top:9px;background:var(--panel)}
.faq summary{padding:13px 18px;font-weight:600;font-size:var(--fs-s);cursor:pointer;color:var(--text)}
.faq summary::marker{color:var(--amber)}
.faq p{padding:0 18px 15px;font-size:13.5px;color:var(--mut);max-width:74ch;line-height:1.6}

/* ============ ФОРМЫ ЛЕНДИНГОВ ============ */
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:680px}
.inp{width:100%;background:var(--panel);border:1px solid var(--line2);border-radius:var(--r-s);padding:13px 16px;font-size:14.5px;color:var(--text);transition:border-color var(--t-fast)}
.inp::placeholder{color:var(--mut2)}
.inp:focus{border-color:var(--amber-line);outline:none}
.sel{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238B93A0' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.form .full{grid-column:1/-1}
.pd{font-size:11.5px;color:var(--mut2);margin-top:12px;max-width:60ch}
.pd-check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--mut);max-width:60ch}
.pd-check input{width:16px;height:16px;margin-top:2px;accent-color:var(--amber);flex:none}
.hp{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
.form-note{border-radius:var(--r-s);padding:14px 16px;font-size:14px;max-width:680px;margin-bottom:16px}
.form-note--ok{background:var(--amber-dim);border:1px solid var(--amber-line);color:var(--amber)}
.form-note--err{background:rgba(240,101,90,.12);border:1px solid rgba(240,101,90,.35);color:var(--err)}

/* ============ МАЛЫЙ ФУТЕР (лендинги) ============ */
.ftr{padding:26px 32px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font:400 12px/1.6 var(--mono);color:var(--mut2)}
.ftr a{border-bottom:1px solid var(--line2)}
.ftr a:hover{color:var(--amber);border-color:var(--amber-line)}

/* ============ СВЕТЛАЯ ЗОНА ЛЕНДИНГОВ (.lz, правка Павла 23.07) ============ */
.lz{background:var(--paper);color:var(--ink);border-bottom:0}
.lz .l-eyebrow{color:var(--amber-hot)}
.lz .sec-h p{color:var(--ink-mut)}
.lz .step{background:var(--card);border-color:var(--line-l)}
.lz .step .n{color:var(--amber-hot)}
.lz .step p{color:var(--ink-mut)}
.lz .inp{background-color:var(--card);border-color:var(--line-l2);color:var(--ink)}
.lz .inp::placeholder{color:var(--ink-mut)}
.lz .inp:focus{border-color:var(--amber-edge2)}
.lz .sel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235F6672' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}
.lz .pd{color:var(--ink-mut)}
.lz .pd a{border-bottom:1px solid var(--line-l2)}
.lz .pd-check{color:var(--ink-mut)}
.lz .form-note--ok{background:var(--amber-wash);border-color:var(--amber-edge2);color:var(--amber-ink)}
.lz .form-note--err{background:rgba(192,57,43,.08);border-color:rgba(192,57,43,.3);color:var(--err-ink)}
.lz .plan{background:var(--card);border-color:var(--line-l2)}
.lz .plan.hot{border-color:var(--amber-edge2);background:linear-gradient(180deg,var(--amber-wash),var(--card))}
.lz .plan .for{color:var(--ink-mut)}
.lz .plan .price{color:var(--amber-hot)}
.lz .plan .price small{color:var(--ink-mut)}
.lz .plan li{color:var(--ink-mut)}
.lz .plan li b{color:var(--ink)}
.lz .plan li.no{color:var(--ink-mut)}
.lz .btn--ghost{border-color:var(--line-l2);color:var(--ink)}
.lz .btn--ghost:hover{border-color:var(--amber-edge2)}
.lz .wide{border-color:var(--amber-edge2);background:var(--amber-wash)}
.lz .wide p{color:var(--ink)}
.lz .wide .s{color:var(--ink-mut)}
.lz .pharma-row{border-color:var(--line-l);background:var(--card)}
.lz .pharma-row p{color:var(--ink-mut)}
.lz .faq{background:var(--card);border-color:var(--line-l2)}
.lz .faq summary{color:var(--ink)}
.lz .faq summary::marker{color:var(--amber-hot)}
.lz .faq p{color:var(--ink-mut)}

/* ============ ФАРМА: §74, «КАНАЛ В ДИНАМИКЕ», ОБЛАСТИ ============ */
.law{display:flex;gap:14px;align-items:flex-start;background:var(--paper);color:var(--ink);border-bottom:2px solid var(--amber-dot);padding:20px 32px;font-size:14px;line-height:1.6}
.law .ic{flex:none;width:34px;height:34px;border:1.5px solid var(--amber-edge2);border-radius:var(--r-s);display:flex;align-items:center;justify-content:center;color:var(--amber-hot);font:700 13px/1 var(--mono)}
.law b{font-weight:700}
.law .mut{color:var(--ink-mut)}

.dynwrap{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:44px;align-items:center}
.dynchart{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line2);border-radius:var(--r-l);padding:20px 22px 14px;box-shadow:var(--sh-dash)}
.dynchart .cap{display:flex;justify-content:space-between;gap:10px;font:500 10.5px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut2);margin-bottom:10px}
.ych{width:100%;height:auto;display:block}
.ych .grid{stroke:var(--line);stroke-width:1}
.ych .ln{stroke:var(--down);stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.js .ych.play .ln{stroke-dasharray:1000;stroke-dashoffset:1000;animation:ych-draw var(--d-draw) var(--e-draw) .15s forwards}
@keyframes ych-draw{to{stroke-dashoffset:0}}
.ych .late{opacity:1}
.js .ych.play .late{opacity:0;animation:ych-late .6s ease var(--d-draw-late) forwards}
@keyframes ych-late{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .js .ych.play .ln{animation:none;stroke-dasharray:none;stroke-dashoffset:0}
  .js .ych.play .late{animation:none;opacity:1}
}
.ych text{font:500 11px var(--mono);fill:var(--mut2)}
.ych .val{font:700 13px var(--mono);fill:var(--text)}
.ych .val--hot{fill:var(--down)}
.ych .pk{stroke:var(--mut2);fill:none} /* пик ряда — точка отсчёта сжатия */
.dynnote{font-size:12.5px;color:var(--mut2);margin-top:8px}

/* minmax(400px,…) не схлопывается ниже 400px — на 360–390px колонка
   оставалась в 400px и резала карточки областей по правому краю.
   min(400px,100%) даёт ту же сетку на широких и честную одну колонку на
   телефоне. */
.areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));gap:12px}
.area{display:flex;gap:16px;align-items:center;border:1px solid var(--line2);border-radius:var(--r-l);padding:16px 18px;background:var(--panel)}
.area .dir{flex:none;width:110px;text-align:center;font:700 12px/1.4 var(--mono);letter-spacing:.04em;border-radius:var(--r-xs);padding:9px 6px}
.area .dir.fast{color:var(--down);background:var(--down-dim);border:1px solid var(--down-line)}
.area .dir.slow{color:var(--up);background:rgba(70,214,140,.1);border:1px solid rgba(70,214,140,.32)}
.area .dir.flat{color:var(--mut);background:var(--panel2);border:1px solid var(--line2)}
.area h3{font:700 15.5px/1.3 var(--disp)}
.area p{font-size:12.5px;color:var(--mut);margin-top:3px}
.area > div{min-width:0}
/* на телефоне метка направления и текст встают друг под другом: в 360px
   рядом остаётся ~190px, и название области рвалось по слогам */
@media (max-width:520px){
  .area{flex-direction:column;align-items:flex-start;gap:10px}
  .area .dir{width:auto;min-width:110px;padding:7px 12px}
}
.areas-note{font-size:13px;color:var(--mut);margin-top:14px;max-width:66ch}
.lz .area{background:var(--card);border-color:var(--line-l)}
.lz .area p{color:var(--ink-mut)}
.lz .area .dir.fast{color:var(--down-ink);background:rgba(192,57,43,.08);border-color:rgba(192,57,43,.3)}
.lz .area .dir.slow{color:var(--up-ink);background:rgba(27,122,75,.08);border-color:rgba(27,122,75,.3)}
.lz .area .dir.flat{color:var(--ink-mut);background:var(--paper-dim);border-color:var(--line-l2)}

/* ============ СЕТКА B2B-ЛЕНДИНГОВ ============
   Лендинги фармы и организаторов клались прямо в <main> без .wrap, поэтому
   контент растягивался во всю ширину экрана, а подвал жил в колонке 1200 —
   на широких мониторах получалась ступенька и строка дисклеймера в ~150
   знаков. Жёлоб считаем формулой, без медиазапроса: max() сам вырождает его
   в 32px на узких экранах. Проценты в padding резолвятся от ширины <main>. */
.hdr-b2b,.law,.facts,.sec,.lhero,.pricing-body,.faq-sec{
  --gut:calc(var(--s-6) + max(0px,(100% - var(--wrap))/2));
  padding-left:var(--gut);
  padding-right:var(--gut);
}
/* тарифы: карточки и FAQ жили на 32px, а хиро и подвал — в колонке 1200,
   из-за чего блок тарифов торчал шире всего остального */
.pricing-body{padding-top:40px;padding-bottom:44px}
/* ширину хиро держит сама мера строки, а не блок, прижатый к левому краю */
.lhero--solo{max-width:none}
.lhero--solo .lead{max-width:58ch}
/* крайние ячейки фактов — вровень с жёлобом страницы */
.facts div:first-child{padding-left:0}
.facts div:last-child{padding-right:0}
/* дисклеймер §74 — читаемая мера строки */
.law p{max-width:92ch}

/* ============ АДАПТИВ ============ */
@media (max-width:1060px){
  .hero{grid-template-columns:1fr;gap:44px;padding-top:56px}
  .hero-l{max-width:640px}
  .market{max-width:640px}
  .b2b-grid{grid-template-columns:1fr;gap:44px}
  .dash{max-width:560px}
  .press-grid{grid-template-columns:1fr;gap:12px}
  .cards{grid-template-columns:1fr}
  /* шесть колонок в 1136px помещаются, в ~1000px уже нет — идём 6 → 3 → 2 */
  .ft-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lhero{grid-template-columns:1fr;gap:40px}
  .facts{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr 1fr}
  .facts div{border-bottom:1px solid var(--line)}
  .plans{grid-template-columns:1fr} /* .steps3 и .areas сами схлопываются через auto-fit */
  .plans .plan.hot{order:-1} /* «Бенчмарк» первым в одну колонку — по мобильному фрейму макета */
  .form{grid-template-columns:1fr}
  .dynwrap{grid-template-columns:1fr}
  /* в одну колонку карточка иначе растягивается на всю ширину и
     масштабирует график вместе с подписями в полтора раза */
  .dynchart{max-width:520px}
}
@media (max-width:900px){
  /* B2B-шапка перестаёт помещаться в строку: аудиторию несёт h1 хиро,
     соцсети есть в подвале — иначе строка переносится и даёт горизонтальный
     скролл, а sticky-шапка съедает седьмую часть экрана */
  .hdr-b2b .aud,.hdr-b2b .socials-row--header{display:none}
  /* Разделы B2B-шапки в 375px не помещаются и уезжают за край: оставляем
     логотип, «Войти» и янтарный призыв. Сами разделы никуда не деваются —
     они есть в подвале и в перекрёстных ссылках внутри страниц. */
  .hdr-b2b nav a:not(.btn):not(.b2b-in){display:none}
  /* Шапка главной: логотип + «Войти» + 4 иконки в 375px не помещаются —
     последняя уезжала за край. Соцсети убираем (они есть в подвале, там
     они крупнее), вход остаётся у правого края. */
  .hdr-top .socials-row--header{display:none}
  .hdr-top{gap:14px}
  .roles{overflow-x:auto;scrollbar-width:none}
  .roles::-webkit-scrollbar{display:none}
  .role{white-space:nowrap}
}
@media (max-width:700px){
  .hdr-b2b{flex-wrap:wrap;height:auto;padding:10px 16px;gap:10px}
  .hdr-b2b nav{margin-left:0}
  .law{flex-wrap:wrap;padding:16px 18px;font-size:13px}
}
/* на узких карточка графика ужимается до ~340px и SVG масштабируется
   в 0.74 — компенсируем кегль, иначе подписи падают до 8px */
@media (max-width:480px){
  .ych text{font-size:15px}
  .ych .val{font-size:17px}
  .dynchart .cap{flex-direction:column;align-items:flex-start;gap:2px}
}
@media (max-width:600px){
  .hero{padding:44px 18px 48px}
  h1{min-height:0}
  .spec-form{flex-direction:column}
  .spec-form .btn{justify-content:center}
  .roles .tag{display:none}
  /* «Я из индустрии» уезжала за правый край и читалась как обрезанная:
     полоса прокрутки без подсказки выглядит поломанной вёрсткой. Три
     кнопки просто переносим на вторую строку. */
  .roles{flex-wrap:wrap;overflow-x:visible;gap:6px}
  .role{padding:9px 13px}
  /* Вторичная ссылка рядом с кнопкой в B2B-баннерах главной («Сразу
     запросить демо →» у организатора, «Сразу получить срез →» у индустрии)
     на телефоне жмётся вплотную к кнопке и выглядит неопрятно. Убираем на
     мобильном — основная кнопка остаётся (правка Павла 03.08.2026). */
  #cta-b2b-btn2,.b2b-cta .link-more{display:none}
  .stat4 b{font-size:18px}
  .market{padding:18px 16px 12px}
  .feed{padding:56px 0 48px}
  .press{padding:16px 0 64px}
  .b2b{padding:64px 0}
  .dash{padding:16px}
  .ft-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
  .logo small{display:none}
  .ecg{height:40px}
  .lhero{padding:36px 18px 36px}
  .sec{padding:40px 18px}
  .faq-sec{padding:36px 18px 44px}
  .facts div{padding:14px 18px}
  .facts b{font-size:21px}
  .ftr{padding:20px 18px}
  .cta-row .btn{width:100%}
  .dash-rows{grid-template-columns:1fr}
}

/* ============================================================================
   Г-3 · ВРАЧЕБНАЯ ЗОНА: лента /feed/, карточка /event/, специальность
   /specialty/. Перенос из макетов design/mockups/{лента_врача,
   карточка_мероприятия,страница_специальности}.html — «тихая» светлая зона:
   без счётчиков и агрессивных анимаций, изумруд только «бесплатно»,
   лейблы на бумаге — контрастные (--ink-lbl).
   ========================================================================== */

/* ---- хром: тёмная шапка врачебной зоны ---- */
.dhdr{display:flex;align-items:center;gap:16px;height:60px;padding:0 28px;background:var(--bg);color:var(--text)}
.dhdr .logo{font-size:18px}
.dhdr nav{display:flex;gap:4px;margin-left:10px}
.dhdr nav a{font:500 13.5px/1 var(--body);color:var(--mut);padding:9px 13px;border-radius:var(--r-s);transition:color var(--t-fast)}
.dhdr nav a:hover{color:var(--text)}
.dhdr nav a.on{color:var(--amber);background:var(--amber-dim)}
.dhdr .din{margin-left:auto;font-size:13.5px;color:var(--mut)}
.dhdr .din b{color:var(--text);font-weight:600}

.docz{min-height:62vh}
.docz .wrap-n{max-width:1080px;margin:0 auto;padding:0 28px}
.docz h1{font:800 clamp(24px,3vw,32px)/1.22 var(--disp);letter-spacing:-.015em;color:var(--ink);min-height:0;margin:0}
.docz .btn--paper{background:var(--card);color:var(--ink);border-color:var(--line-l2)}
.docz .btn--paper:hover{border-color:var(--amber-hot)}
.docz .btn--xs{font-size:12px;padding:6px 11px}
.docz .btn--main{font-size:15px;padding:14px 26px}
.docz .free{color:var(--free);font-weight:600}
.docz .fee{font:500 13px/1 var(--mono);color:var(--ink)}
.docz .go-note{font-size:12px;color:var(--ink-mut2)}
.docz .spec-tag{display:inline-block;font:400 11.5px/1 var(--body);border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:4px 10px;color:var(--ink-mut);margin:0 5px 6px 0;background:var(--card)}
.docz .lbl{font:500 11px/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-lbl);margin-bottom:8px}
.docz .crumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-mut2);margin-bottom:16px}
.docz .crumbs a{color:var(--ink-mut)}
.docz .crumbs a:hover{color:var(--amber-ink)}
.docz .crumbs .sep{color:var(--line-l2)}
.docz .crumbs .cur{color:var(--ink);font-weight:600}

/* ---- лента ---- */
.fd{padding:26px 0 56px}
.fd-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.fd-sub{color:var(--ink-mut);max-width:62ch;margin-top:8px;font-size:14.5px}
.fd-sub b{color:var(--ink);font-weight:600}
.fd-date{font:500 11.5px/1.7 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lbl);padding-bottom:4px;white-space:nowrap}
.fd-count{font:500 12px/1.6 var(--mono);color:var(--ink-mut);margin-top:14px}
.ctrl{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:18px}
.fsel{appearance:none;font:500 12.5px/1 var(--body);color:var(--ink);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235F6672' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--line-l2);border-radius:var(--r-s);padding:9px 32px 9px 13px;max-width:240px;cursor:pointer}
.fsel:focus{border-color:var(--amber-edge2);outline:none}
.org-picker{position:relative;width:100%;max-width:100%}
.org-picker__input{padding-right:42px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235F6672' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 16px center}
.org-picker__input[aria-expanded="true"]{border-color:var(--amber-hot);border-bottom-left-radius:var(--r-s);border-bottom-right-radius:var(--r-s)}
.org-picker__options{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;max-height:260px;overflow:auto;padding:6px;background:#fff;border:1px solid var(--line-l2);border-radius:var(--r-s);box-shadow:0 14px 30px rgba(27,32,42,.14)}
.org-picker__option{display:block;width:100%;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:400 14px/1.25 var(--body);text-align:left;cursor:pointer}
.org-picker__option[hidden]{display:none}
.org-picker__option:hover,.org-picker__option:focus-visible{background:var(--white2);outline:none;color:var(--amber-hot)}
.docz .chip{font:500 12px/1 var(--mono);color:var(--ink-mut);border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:8px 13px;background:var(--card);cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast);display:inline-flex;align-items:center;gap:7px}
.docz .chip:hover{color:var(--amber-ink);border-color:var(--amber-edge2)}
.docz .chip.on{color:var(--amber-ink);border-color:var(--amber-edge2);background:var(--amber-wash2);font-weight:700}
.docz .chip.chk input{width:14px;height:14px;accent-color:var(--amber-hot);margin:0}
.newbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:11px 16px;font-size:13.5px;color:var(--ink-mut);margin-top:14px}
.newbar b{color:var(--ink);font-weight:700}
.fcard{margin-top:12px;padding:16px 20px}
.fcard h2{font:600 16px/1.4 var(--body);letter-spacing:-.005em;color:var(--ink);margin:0 0 2px}
.fcard h2 a:hover{color:var(--amber-hot)}
.fcard .c-main{flex:1;min-width:0}
.c-act{display:flex;gap:10px;margin-top:11px;align-items:center;flex-wrap:wrap}
.pager{display:flex;gap:14px;align-items:center;justify-content:center;padding:20px 0 4px;flex-wrap:wrap}
.pager .pg{font:500 12px/1.6 var(--mono);color:var(--ink-mut)}

/* врезка «Спонсировано»: только активная оплаченная кампания с erid (Ж-2) */
.spons{border:1px solid var(--line-l2);background:var(--paper-dim);border-radius:var(--r-l);padding:14px 20px;margin-top:12px}
.lbl-badge{font:500 9.5px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-lbl);border:1px solid var(--line-l2);border-radius:var(--r-xs);padding:4px 7px;background:var(--card);display:inline-block;margin-bottom:10px}
.spons-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.spons h2{font:600 15.5px/1.4 var(--body);color:var(--ink);margin:0}
.spons p{font-size:12.5px;color:var(--ink-mut);margin-top:2px}

/* «тихий» изумрудный блок: живой ряд бесплатных онлайн (P02, без пингов) */
.freeblock{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:22px;align-items:center;margin-top:18px;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:18px 22px}
.freeblock h2{font:700 17px/1.35 var(--disp);color:var(--ink);letter-spacing:-.008em;margin:0}
.freeblock .big{font:700 26px/1.2 var(--mono);color:var(--free);font-variant-numeric:tabular-nums;margin:6px 0 2px}
.freeblock .fsub{font-size:12.5px;color:var(--ink-mut)}
.freeblock .cap{font:500 10px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-lbl);display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}
.fch{width:100%;height:auto;display:block}
.fch .grid{stroke:var(--line-l);stroke-width:1}
.fch .ln{stroke:var(--free);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.js .fch.play .ln{stroke-dasharray:1000;stroke-dashoffset:1000;animation:fch-draw var(--d-draw) var(--e-draw) .15s forwards}
@keyframes fch-draw{to{stroke-dashoffset:0}}
.fch .late{opacity:1}
.js .fch.play .late{opacity:0;animation:fch-late .6s ease var(--d-draw-late) forwards}
@keyframes fch-late{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .js .fch.play .ln{animation:none;stroke-dasharray:none;stroke-dashoffset:0}
  .js .fch.play .late{animation:none;opacity:1}
}
.fch text{font:500 10px var(--mono);fill:var(--ink-mut2)}
.tgcta{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:18px 22px}
.tgcta p{color:var(--ink-mut);font-size:14px;max-width:52ch}
.tgcta p b{color:var(--ink);font-weight:600}
.tgcta .btn[disabled]{opacity:.55;cursor:default;transform:none}

/* ---- карточка мероприятия ---- */
.body-pad{padding:26px 32px 56px;max-width:880px;margin:0 auto}
.docz .head{display:flex;gap:24px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.docz .head h1{max-width:26ch}
.zetcol{text-align:right;flex:none}
.zetbig{font:700 30px/1 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.zetbig small{font-size:17px;font-weight:700;color:var(--amber-ink)}
.b-accr{display:inline-flex;gap:7px;align-items:center;font:600 12px/1 var(--body);color:var(--paper);background:var(--ink);border-radius:var(--r-xs);padding:6px 10px;margin-top:8px}
.b-claim{display:inline-flex;font:600 12px/1 var(--body);color:var(--warn-ink);background:var(--warn-wash);border:1px solid var(--amber-edge2);border-radius:var(--r-xs);padding:6px 10px;margin-top:8px}
.warn{display:flex;gap:10px;align-items:flex-start;font:600 13px/1.55 var(--body);color:var(--warn-ink);background:var(--warn-wash);border:1px solid var(--amber-edge2);border-radius:var(--r-s);padding:12px 15px;margin-top:16px}
.sp-note{font:500 10.5px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--amber-ink);margin:0 0 10px}
.metastrip{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px;color:var(--ink);border-top:1px solid var(--line-l);border-bottom:1px solid var(--line-l);padding:14px 0;margin:20px 0}
.metastrip b{font-weight:700}
.metastrip .dim{color:var(--ink-mut)}
.metastrip .pub{font:500 12px/1.6 var(--mono);color:var(--amber-hot);font-weight:700;display:inline-flex;gap:7px;align-items:center}
.blk{margin-bottom:22px}
.docz .pt{font-size:15px}
.orgrow{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:13px 16px}
.orgrow b{font-weight:700}
.orgrow .fee,.metastrip .fee{font:700 16px/1 var(--mono)}
.desc{font-size:15px;color:var(--ink);max-width:64ch;line-height:1.66;white-space:pre-line}
.cta-row2{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:18px 20px}
.sim{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.simc{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:12px 14px;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.simc:hover{transform:translateY(-2px);box-shadow:var(--sh-card)}
.simc h3{font:600 13.5px/1.4 var(--body);color:var(--ink)}
.simc p{font-size:12px;color:var(--ink-mut);margin-top:4px}
.disc{font-size:12.5px;color:var(--ink-mut);line-height:1.6;border-top:1px solid var(--line-l);padding-top:14px;max-width:70ch}
.note-mut{font-size:12.5px;color:var(--ink-mut);margin-top:6px;max-width:60ch}

/* ---- страница специальности ---- */
.docz .pad{padding:24px 28px 30px}
.docz .h1{font:800 clamp(26px,3.2vw,36px)/1.18 var(--disp);letter-spacing:-.016em;max-width:30ch}
.intro{font-size:15.5px;max-width:66ch;margin-top:12px;color:var(--ink);line-height:1.66}
.intro b{font-weight:700}
.intro .free{font-weight:700}
.docz .tgcta{margin-top:20px}
.docz .sec{padding:22px 28px;border-top:1px solid var(--line-l);border-bottom:0}
.docz .h2{font:700 17px/1.3 var(--disp);letter-spacing:-.008em;color:var(--ink);margin:0}
.docz .h2 small{font:400 12px/1.5 var(--body);color:var(--ink-mut);letter-spacing:0;text-transform:none}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:14px}
.chart-box{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:14px 16px}
.cb-h{font:500 10.5px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lbl);margin:0 0 12px}
.ybars{display:flex;align-items:flex-end;gap:14px;height:104px}
.ybars .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%}
.ybars .bar{width:58%;background:var(--amber-dot);border-radius:3px 3px 0 0;opacity:.9;min-height:2px}
.ybars .bar.run{opacity:.45}
.ybars b{font:700 12px/1 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.ybars .col > span:last-child{font:500 9.5px/1.2 var(--mono);color:var(--ink-mut);text-align:center}
.bars{display:flex;align-items:flex-end;gap:3px;height:70px}
.bars i{flex:1;background:var(--line-l2);display:block;border-radius:2px 2px 0 0;min-height:2px}
.bars i.hot{background:var(--amber-dot)}
.chart-box .foot{font-size:11.5px;color:var(--ink-mut);margin-top:8px;line-height:1.5}
/* Ряд «мероприятий в год» — 11 колонок с числами над каждой. Колонка 1fr не
   умеет становиться уже своего min-content, поэтому на телефоне ряд распирал
   карточку до 482px при экране 390 и уводил всю страницу специальности вбок
   на 111px. minmax(0,1fr) разрешает колонке сжаться, а сам ряд лет
   прокручивается внутри карточки: цифры по годам остаются читаемыми, а не
   вылезают за экран. Растушёвка справа — подсказка, что ряд листается. */
@media (max-width:700px){
  .grid3{grid-template-columns:minmax(0,1fr)}
  .chart-box{min-width:0}
  .ybars{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent);
    mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent)}
  .ybars::-webkit-scrollbar{display:none}
  .ybars .col{flex:0 0 38px}
}
.avail p{display:flex;gap:10px;align-items:baseline;margin:0 0 10px}
.avail b{font:700 18px/1.2 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;min-width:76px}
.avail b.free{color:var(--free)}
.avail span{font-size:12.5px;color:var(--ink-mut)}
.ecard{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:12px 15px;margin-top:9px;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.ecard:hover{transform:translateY(-2px);box-shadow:var(--sh-card)}
.ecard .ec-main{flex:1;min-width:0}
.ecard h3{font:600 14px/1.4 var(--body);color:var(--ink)}
.ecard p{font-size:12.5px;color:var(--ink-mut);margin-top:3px}
.ecard .c-zet{margin-left:0;flex:none}
.sec-cta{margin-top:12px}
.chips-row{margin-top:10px}
.chips-row .chip{margin:0 5px 6px 0}
.docz .faq{border:1px solid var(--line-l);border-radius:var(--r-m);margin-top:9px;background:var(--card)}
.docz .faq summary{padding:12px 16px;font-weight:700;font-size:14px;cursor:pointer;color:var(--ink)}
.docz .faq summary::marker{color:var(--amber-hot)}
.docz .faq p{padding:0 16px 14px;font-size:13.5px;color:var(--ink-mut);max-width:70ch;line-height:1.6}
.docz .ft{padding:16px 28px 24px;font-size:12.5px;color:var(--ink-mut);display:flex;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line-l)}
.docz .ft a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2)}
.docz .ft .r{margin-left:auto}

/* ---- адаптив врачебной зоны ---- */
@media (max-width:900px){
  .grid3{grid-template-columns:1fr}
  .sim{grid-template-columns:1fr}
  .docz .pad,.docz .sec,.docz .ft{padding-left:18px;padding-right:18px}
  .body-pad{padding:20px 18px 40px}
  .docz .wrap-n{padding:0 18px}
  .freeblock{grid-template-columns:1fr}
}
/* Шапка врачебной зоны на узких экранах. Порог именно 900px, как у .hdr-gen
   и .hdr-top: до правки перенос включался только с 700px, и на планшете
   (768) строка «почта + выйти + соцсети» уезжала за правый край — страница
   ехала вбок на 169px. Соцсети здесь убираем по той же причине, что и в
   двух других шапках: они есть в подвале, и там они крупнее. */
@media (max-width:900px){
  .dhdr{flex-wrap:wrap;height:auto;padding:10px 16px;gap:8px 12px}
  .dhdr .din{margin-left:auto;min-width:0;flex-wrap:wrap;gap:10px}
  /* длинная почта не должна распирать строку — обрезаем многоточием */
  .dhdr .din-cab,.dhdr .din-in,.dhdr .din b{min-width:0;max-width:52vw;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dhdr .socials-row--header{display:none}
  /* меню врачебной зоны у залогиненного (4 пункта) не влезало в 375px —
     горизонтальная прокрутка полосой, без переполнения страницы (релиз-QA) */
  .dhdr nav{margin-left:0;width:100%;order:3;overflow-x:auto;flex-wrap:nowrap;
    gap:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .dhdr nav::-webkit-scrollbar{display:none}
  .dhdr nav a{padding:8px 10px;white-space:nowrap;flex:none}
}
@media (max-width:700px){
  .docz .ft{flex-direction:column}
  .docz .ft .r{margin-left:0}
  .fsel{max-width:100%;flex:1 1 45%}
  .zetcol{text-align:left}
}

/* ============ КАТАЛОГ СПЕЦИАЛЬНОСТЕЙ (вход в срезы, Павел 24.07) ========= */
.sp-lead{color:var(--ink-mut);font-size:15px;max-width:78ch;margin:10px 0 24px}
.sp-lead b{color:var(--ink);font-weight:600}
.sp-h2{font:700 18px/1.3 var(--disp);color:var(--ink);margin:26px 0 12px}
.sp-top{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.sp-card{display:flex;flex-direction:column;gap:5px;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:14px 16px;transition:border-color var(--t-fast),transform var(--t-fast)}
.sp-card:hover{border-color:var(--amber-edge2);transform:translateY(-1px)}
.sp-card b{font:600 14.5px/1.3 var(--body);color:var(--ink)}
.sp-card span{font:500 11.5px/1.4 var(--mono);color:var(--ink-mut)}
.sp-card i{color:var(--amber-ink);font-style:normal}
.sp-alpha{columns:3;column-gap:28px}
.sp-letter{break-inside:avoid;margin-bottom:18px}
.sp-letter h3{font:700 12px/1 var(--mono);letter-spacing:.16em;color:var(--ink-lbl);border-bottom:1px solid var(--line-l);padding-bottom:6px;margin-bottom:8px}
.sp-letter ul{list-style:none;padding:0;margin:0}
.sp-letter li{display:flex;gap:10px;align-items:baseline;justify-content:space-between;padding:4px 0}
.sp-letter a{font-size:14px;color:var(--ink)}
.sp-letter a:hover{color:var(--amber-ink)}
.sp-n{font:500 10.5px/1.4 var(--mono);color:var(--ink-mut2);white-space:nowrap}
.sp-note{font-size:12.5px;color:var(--ink-mut);margin-top:24px;padding-bottom:8px}
@media (max-width:900px){.sp-alpha{columns:2}}
@media (max-width:600px){.sp-alpha{columns:1}}

/* ============================================================================
   Г-4 · ВРАЧЕБНЫЙ КАБИНЕТ: регистрация, онбординг, кабинет, трекер ЗЕТ,
   «Доберите баллы», план, оповещения, настройки.
   Эталоны: design/mockups/{онбординг_врача,кабинет_врача,трекер_зет,
   доберите_баллы}.html. Зона тихая: бумага, изумруд только «бесплатно»,
   никаких счётчиков-даунов и агрессивных анимаций.
   ========================================================================== */

/* ---- шапка врачебной зоны: вход в кабинет ---- */
.dhdr .din{display:flex;align-items:center;gap:12px}
/* Шапка «общих» страниц (методология, комплаенс, о проекте, правовые):
   три входа сразу, чтобы вернуться в раздел, из которого пришёл. Раньше
   эти страницы носили врачебную шапку и были тупиком для B2B (31.07.2026). */
/* Содержимое шапки стоит на колонке контента, а не по краям экрана: сама
   полоса во всю ширину, но логотип слева и меню справа встают ровно над
   текстом страницы (тот же жёлоб, что у .hdr-b2b). Ширину колонки задаёт
   --hdr-w: у страниц-документов это 1080 (.docz .wrap-n), у страниц на
   полной сетке — 1200 (модификатор .hdr-gen--wide). */
.hdr-gen{--hdr-w:1080px;--hdr-pad:28px;
  --gut:calc(var(--hdr-pad) + max(0px,(100% - var(--hdr-w))/2));
  display:flex;align-items:center;gap:16px;height:60px;padding:0 var(--gut);
  background:var(--bg);color:var(--text)}
.hdr-gen--wide{--hdr-w:var(--wrap);--hdr-pad:var(--s-6)}
.hdr-gen .logo{font-size:18px}
.hdr-gen .aud{font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--mut2);padding-left:16px;border-left:1px solid var(--line)}
.hdr-gen .aud:empty{display:none}
.hdr-gen nav{display:flex;align-items:center;gap:6px;margin-left:auto}
.hdr-gen nav a{font:500 13.5px/1 var(--body);color:var(--mut);padding:9px 13px;
  border-radius:var(--r-s);transition:color var(--t-fast)}
.hdr-gen nav a:hover{color:var(--text)}
.hdr-gen nav a.btn{color:var(--text)}
.hdr-gen .din-out button{background:none;border:0;color:var(--mut2);
  font:500 12px/1 var(--mono);cursor:pointer;padding:0 6px}
.hdr-gen .din-out button:hover{color:var(--amber)}
/* навигация инструкций (_guide_nav): текущая инструкция подсвечена,
   «Индустрии · скоро» — некликабельная заглушка, «← Все инструкции» —
   шаг назад к выбору роли (14.08.2026) */
.hdr-gen nav a.gnav-on{color:var(--amber)}
.hdr-gen nav .gnav-back{color:var(--mut2)}
.hdr-gen nav .gnav-back:hover{color:var(--amber)}
.hdr-gen nav .gnav-soon{font:500 13.5px/1 var(--body);color:var(--mut2);
  padding:9px 13px;white-space:nowrap;cursor:default}

.dhdr .din-cab{color:var(--text);font-weight:600}
.dhdr .din-in{font:500 13.5px/1 var(--body);color:var(--mut)}
.dhdr .din-in:hover{color:var(--amber)}
.dhdr .din-cab:hover{color:var(--amber)}
.dhdr .din-out button{background:none;border:0;color:var(--mut2);font:500 12px/1 var(--mono);cursor:pointer;padding:0}
.dhdr .din-out button:hover{color:var(--amber)}

/* ---- воронка входа: шапка без навигации ----
   На экранах входа/регистрации/восстановления вкладок и кнопки «Кабинет
   врача» нет намеренно (31.07.2026) — они уводили человека из воронки. */
.ahdr{display:flex;align-items:center;gap:16px;height:60px;padding:0 28px;background:var(--bg);color:var(--text)}
.ahdr .logo{font-size:18px}
.ahdr-out{margin-left:auto;font:500 13px/1 var(--body);color:var(--mut)}
.ahdr-out:hover{color:var(--amber)}

/* вкладки роли на верхнем крае карточки — общие для входа и регистрации.
   Цвет роли живёт на карточке (--role), поэтому активная вкладка и её
   подложка меняются одним атрибутом data-role.

   Линия под полосой ровно одна: общая — у .roletabs, у активной вкладки
   тот же отрезок перекрашен и перекрывает её (margin-bottom:-1px). Рамок
   вокруг вкладки нет: коробка поверх канта карточки читалась как
   наслоение (правка Павла 31.07.2026). */
.roletabs{display:flex;margin:-29px -30px 22px;border-bottom:1px solid var(--line-l)}
.roletab{flex:1;display:flex}
.roletab input{position:absolute;opacity:0;width:1px;height:1px}
.roletab span{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:16px 8px 14px;margin-bottom:-1px;font:500 12.5px/1.25 var(--body);
  color:var(--ink-mut);cursor:pointer;border-bottom:2px solid transparent;
  transition:color var(--t-fast),background var(--t-fast),border-color var(--t-fast)}
.roletab span:hover{color:var(--ink)}
.roletab input:checked+span{color:var(--role);border-bottom-color:var(--role);
  background:var(--role-wash);font-weight:700}
/* фокус с клавиатуры — внутренней тенью: outline с отрицательным сдвигом
   рисовал вторую рамку поверх вкладки */
.roletab input:focus-visible+span{box-shadow:inset 0 0 0 2px var(--role)}

/* ---- регистрация и онбординг ---- */
.regwrap{padding:34px 18px 64px;display:flex;justify-content:center}
.regcard{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);
  max-width:520px;width:100%;padding:28px 30px;box-shadow:0 18px 50px rgba(31,26,12,.08);
  /* overflow: вкладки выходят под края карточки отрицательными полями */
  overflow:hidden}
/* цвет роли: по умолчанию врачебный янтарь, дальше — по data-role карточки */
.regcard{--role:var(--role-doc);--role-wash:var(--role-doc-wash)}
.regcard[data-role="organizer"]{--role:var(--role-org);--role-wash:var(--role-org-wash)}
.regcard[data-role="pharma"]{--role:var(--role-pharma);--role-wash:var(--role-pharma-wash)}
.regcard .qn{font:500 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-lbl);margin-bottom:12px}
.reg-h{font:800 23px/1.26 var(--disp);letter-spacing:-.013em;color:var(--ink);margin:0 0 8px}
.regcard .why{font-size:13.5px;color:var(--ink-mut);line-height:1.6;margin-bottom:16px}
.regcard .gain{border:1px solid var(--line-l);border-radius:var(--r-m);padding:12px 14px;margin-bottom:9px;background:var(--paper-dim)}
.regcard .gain b{display:block;font-size:13.5px;color:var(--ink)}
.regcard .gain span{color:var(--ink-mut);font-size:12px}
.reglab{display:block;font-size:13px;color:var(--ink-mut);margin:12px 0 4px}
/* background-COLOR, не шорткат: шорткат .inp здесь идёт после .sel и
   сбрасывал background-repeat → стрелка селектов тайлилась («волны») */
.inp{width:100%;border:1px solid var(--line-l2);border-radius:var(--r-m);padding:12px 14px;font:400 14.5px/1.3 var(--body);color:var(--ink);background-color:#fff}
.inp:focus{border-color:var(--amber-hot);outline:none}
/* «глазок» показать/скрыть пароль в полях ввода */
.pw-wrap{position:relative}
.pw-wrap>.inp{padding-right:46px}
.pw-eye{position:absolute;top:0;right:0;height:100%;width:44px;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;padding:0;margin:0;cursor:pointer;color:var(--ink-mut);border-radius:var(--r-m)}
.pw-eye:hover{color:var(--ink)}
.pw-eye:focus-visible{outline:2px solid var(--amber-hot);outline-offset:-3px}
.pw-eye svg{width:20px;height:20px;display:block}
.pw-eye .pw-ic--hide{display:none}
.pw-eye[aria-pressed="true"] .pw-ic--show{display:none}
.pw-eye[aria-pressed="true"] .pw-ic--hide{display:block}
.consent{border:2px solid var(--amber-dot);border-radius:var(--r-m);padding:13px 14px;margin:14px 0 8px;display:flex;gap:10px;align-items:flex-start;background:var(--card)}
.consent input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:var(--amber-hot)}
.consent label{font-size:12.5px;line-height:1.55;color:var(--ink)}
/* Б-3: предмет согласия должен читаться как ссылка, а не как текст */
.consent label a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2);font-weight:600}
.consent label a:hover{text-decoration-color:var(--amber-hot)}
.regcard .fine{font-size:11.5px;color:var(--ink-mut);line-height:1.6;margin-bottom:12px}
.regcard .fine b{color:var(--ink)}
/* главная кнопка формы стоит заметно ниже последнего поля (правка Павла
   31.07.2026): вплотную она читалась как часть поля пароля */
.regbtn{width:100%;margin-top:24px}
.regnote{font-size:12.5px;color:var(--ink-mut);margin-top:14px}
/* «Забыли пароль?» и «Зарегистрироваться» — единственные выходы из воронки,
   поэтому должны читаться как ссылки, а не как продолжение фразы */
.regnote a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2);font-weight:600}
.regnote a:hover{text-decoration-color:var(--amber-hot)}
/* ошибка входа тоже ведёт человека дальше — ссылка внутри неё видна */
.derr a{color:var(--amber-ink);text-decoration:underline;font-weight:600}
.regback{margin-top:10px;font-size:12.5px}
.regback a{color:var(--ink-mut);text-decoration:underline;text-decoration-color:var(--line-l2)}
.regback a:hover{color:var(--amber-ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.derr{font-size:13px;color:var(--down-ink);background:var(--warn-wash);border:1px solid var(--amber-edge2);border-radius:var(--r-s);padding:10px 13px;margin:10px 0}
.dok{font-size:13px;color:var(--free);background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-s);padding:10px 13px;margin:12px 0}
.devlink{border:1px dashed var(--line-l2);border-radius:var(--r-m);padding:12px 14px;margin-top:12px;background:var(--paper-dim)}
.devlink p{font-size:12px;color:var(--ink-mut);margin-bottom:6px}
.devlink a{font:500 11px/1.5 var(--mono);color:var(--amber-ink);word-break:break-all}

.onb .steps{display:flex;gap:5px;margin-bottom:16px}
.onb .steps i{flex:1;height:4px;background:var(--line-l);border-radius:2px}
.onb .steps i.on{background:var(--amber-dot)}
.onb .opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line-l2);border-radius:var(--r-m);padding:14px 15px;margin-bottom:9px;font-size:14.5px;font-weight:600;cursor:pointer;background:var(--card);color:var(--ink)}
.onb .opt:hover{border-color:var(--amber-hot)}
.onb .opt.on{border:2px solid var(--amber-dot);background:var(--amber-wash);padding:13px 14px}
.onb .opt small{display:block;font-weight:400;font-size:12px;color:var(--ink-mut);margin-top:2px}
.onb .opt input{margin-top:3px;accent-color:var(--amber-hot)}
.onb .chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.onb .chips .chip input{width:13px;height:13px;accent-color:var(--amber-hot);margin-right:5px}
.onb-sel{max-width:100%;width:100%}
.onb .fin{border:1px solid var(--line-l);border-radius:var(--r-m);padding:14px 16px;margin-bottom:10px;background:var(--paper-dim)}
.onb .fin .cap{font-size:12.5px;color:var(--ink-mut)}
.onb .fin .num{font:700 32px/1.15 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.onb .fin .s{font-size:12px;color:var(--ink-mut)}
.onb .fin .s b{color:var(--ink)}
.onb .fin-b{font:700 15.5px/1.4 var(--body);color:var(--ink);margin-top:3px}
.onb .bar{height:8px;background:#fff;border:1px solid var(--line-l);border-radius:4px;overflow:hidden;margin-top:8px}
.onb .bar i{display:block;height:100%;background:var(--amber-dot)}
.onb-foot{display:flex;gap:10px;align-items:center;margin-top:16px}
.onb-foot .btn--main{flex:1}

/* ---- каркас кабинета: разделы ---- */
.dcab{padding:22px 0 60px}
/* .docz .wrap-n{padding:0 28px} перебивает .dcab и обнуляет нижний отступ —
   возвращаем воздух перед подвалом (специфичность как у .docz .wrap-n) */
.docz .dcab{padding-bottom:72px}
.dcab-nav{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line-l);padding-bottom:10px;margin-bottom:20px}
.dcab-nav a{font:500 13.5px/1 var(--body);color:var(--ink-mut);padding:9px 13px;border-radius:var(--r-s);transition:color var(--t-fast),background var(--t-fast)}
.dcab-nav a:hover{color:var(--ink);background:var(--paper-dim)}
.dcab-nav a.on{color:var(--ink);background:var(--amber-wash2);font-weight:700}
.dcab-n{font:700 10.5px/1 var(--mono);background:var(--ink);color:var(--paper);border-radius:var(--r-pill);padding:3px 6px;font-style:normal;margin-left:4px}
.dcab-body h1{font:800 clamp(22px,2.8vw,28px)/1.22 var(--disp);letter-spacing:-.014em;color:var(--ink);margin:0}
.dcab-hello p{font-size:13px;color:var(--ink-mut);margin-top:5px}
/* перечисление специальностей на телефоне подрезаем: у врача с большим
   набором оно занимало больше двух экранов до первой цифры кабинета.
   Срок цикла вынесен отдельной строкой и виден всегда. */
@media (max-width:700px){
  .dcab-hello .dcab-specs{display:-webkit-box;-webkit-line-clamp:3;
    -webkit-box-orient:vertical;overflow:hidden}
  .dcab-hello .dcab-cycle{margin-top:3px}
}
.dlead{font-size:14px;color:var(--ink-mut);max-width:70ch;margin-top:8px;line-height:1.6}
.dsec{padding:20px 0;border-top:1px solid var(--line-l);margin-top:18px}
.dsec:first-of-type{border-top:0;margin-top:14px}
.dcab-body .h2{font:700 16.5px/1.3 var(--disp);letter-spacing:-.008em;color:var(--ink);margin:0 0 12px}
.dcab-body .h2 small{font:400 12px/1.5 var(--body);color:var(--ink-mut2);letter-spacing:0}
.dmut{font-size:13.5px;color:var(--ink-mut);line-height:1.65;max-width:74ch}
.dmut a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2)}
.dmut-inline{font-size:12.5px;color:var(--ink-mut);margin-left:8px}
.dsec-cta{margin-top:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
/* длинные подписи кнопок кабинета не должны расширять страницу на 375 */
.dsec-cta .btn{white-space:normal;text-align:center;max-width:100%}

/* ---- трекер-строка кабинета ---- */
.trk{display:flex;gap:22px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:16px 20px}
.trk .num b{font:700 24px/1.1 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;display:block}
.trk .num span{font-size:12px;color:var(--ink-mut)}
.trk .bar{flex:1;min-width:180px;height:12px;background:var(--paper-dim);border:1px solid var(--line-l);border-radius:6px;position:relative;display:block}
.trk .bar i{display:block;height:100%;border-radius:5px 0 0 5px;background:linear-gradient(90deg,var(--amber-dot),var(--amber))}
.trk .bar .norm{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink)}
.trk .delta b{font:700 18px/1.2 var(--mono);color:var(--ink);display:block;font-variant-numeric:tabular-nums}
.trk .delta b.down{color:var(--down-ink)}
.trk .delta span{font-size:12px;color:var(--ink-mut)}

/* ---- карточки кабинета ---- */
.dcard{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:12px 15px;margin-top:9px;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.dcard:hover{transform:translateY(-2px);box-shadow:var(--sh-card)}
.dcard.is-past{opacity:.78}
.dc-main{flex:1;min-width:0}
.dcard h3{font:600 14.5px/1.4 var(--body);color:var(--ink);margin:0}
.dcard h3 a:hover{color:var(--amber-hot)}
.dcard p{font-size:12.5px;color:var(--ink-mut);margin-top:3px}
.dcard .b-zet{margin-left:auto}
.b-zet{flex:none;font:700 12.5px/1 var(--mono);color:var(--amber-ink);background:var(--amber-wash2);border:1px solid var(--amber-edge2);border-radius:var(--r-xs);padding:6px 9px;white-space:nowrap}
.dcard .ping{margin-top:6px}

/* ---- действия врача (лента, карточка, кабинет) ---- */
.dact-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.dact-card{border-top:1px solid var(--line-l);padding-top:14px}
.dact{display:inline-flex;margin:0}
.dact .btn.is-on{border-color:var(--amber-edge2);background:var(--amber-wash2);color:var(--amber-ink);font-weight:700}
.dact-done{font:500 11.5px/1 var(--mono);color:var(--free);border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:6px 11px}
.dact-invite{font-size:12.5px;color:var(--ink-mut);text-decoration:underline;text-decoration-color:var(--line-l2)}
.dact-invite:hover{color:var(--amber-ink)}
.c-act .dact-invite{font-size:12px}
.invitebar{background:var(--paper-dim)}

/* ---- трекер ЗЕТ ---- */
.trk-top{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.bignum-row{margin-top:8px}
.bignum{font:700 clamp(34px,4.4vw,46px)/1 var(--mono);letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums}
.bignum small{font-size:19px;color:var(--ink-mut);font-weight:500;letter-spacing:0}
.trk-bar{height:16px;background:var(--paper-dim);border:1px solid var(--line-l);border-radius:8px;margin:34px 0 8px;position:relative}
.trk-bar i{display:block;height:100%;border-radius:7px 0 0 7px;background:linear-gradient(90deg,var(--amber-dot),var(--amber))}
.trk-bar .norm{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--ink)}
.trk-bar .norm::after{content:attr(data-cap);position:absolute;top:-20px;left:50%;transform:translateX(-50%);font:500 10.5px/1 var(--mono);letter-spacing:.06em;color:var(--ink-mut);white-space:nowrap}
.trk-row{display:flex;justify-content:space-between;font:500 11.5px/1 var(--mono);color:var(--ink-mut2)}
/* на широких подпись нормы стоит у самой отметки (.norm::after) */
.trk-cap{display:none}
@media (max-width:700px){
  .trk-bar{margin-top:8px}
  .trk-bar .norm::after{display:none}
  .trk-cap{display:block;text-align:right;margin-top:20px;
    font:500 10.5px/1.4 var(--mono);letter-spacing:.06em;color:var(--ink-mut)}
}
.stats{display:flex;gap:30px;flex-wrap:wrap;margin-top:18px}
.stats div b{display:block;font:700 20px/1.3 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.stats div b.down{color:var(--down-ink)}
.stats div span{font-size:12px;color:var(--ink-mut)}
.behind{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:var(--warn-wash);border:1px solid var(--amber-edge2);border-radius:var(--r-m);padding:13px 16px;font-size:13.5px;color:var(--ink);margin-top:18px}
.behind b{color:var(--warn-ink);font-weight:700}
.years{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:14px}
.yr{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:12px 14px}
.yr.cur{border:2px solid var(--amber-dot);padding:11px 13px}
.yr.fut{opacity:.62}
.yr h4{font:500 10.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-lbl)}
.yr .v{font:700 19px/1.4 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.yr .bar{height:8px;background:var(--paper-dim);border-radius:4px;overflow:hidden;margin-top:6px}
.yr .bar i{display:block;height:100%;background:var(--amber-dot)}
.yr small{font-size:11px;color:var(--ink-mut)}
.dtab-wrap{overflow-x:auto}
.dtab{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:12px}
.dtab th{font:500 10.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-lbl);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line-l2)}
.dtab td{padding:10px;border-bottom:1px solid var(--line-l);color:var(--ink)}
.dtab tr:hover td{background:var(--amber-wash)}
.dtab td a{color:var(--ink)}
.dtab td a:hover{color:var(--amber-ink)}
.dtab .num{font:500 12.5px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-mut);white-space:nowrap}
.dtab .st{font-size:11.5px;color:var(--ink-mut);border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:3px 9px;white-space:nowrap}
.dtab .rm{font-size:12px;color:var(--ink-mut2);text-decoration:underline;text-decoration-color:var(--line-l2);background:none;border:0;cursor:pointer;padding:0}
.dtab .rm:hover{color:var(--down-ink)}
.dform{margin-top:16px;border:1px solid var(--line-l);border-radius:var(--r-m);background:var(--card)}
.dform summary{padding:12px 16px;font-weight:700;font-size:13.5px;cursor:pointer;color:var(--ink)}
.dform summary span{font-weight:400;font-size:12px;color:var(--ink-mut);margin-left:6px}
.dform form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:0 16px 16px}
.dform label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-mut);flex:1 1 180px}
.dform input{border:1px solid var(--line-l2);border-radius:var(--r-s);padding:9px 11px;font:400 13.5px/1.3 var(--body);color:var(--ink);background:#fff}
.dform input:focus{border-color:var(--amber-hot);outline:none}
.tg-note{font-size:12.5px;color:var(--ink-mut);margin-top:14px;line-height:1.6;max-width:74ch}
.tg-note a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2)}
.catch{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--warn-wash);border:1px solid var(--amber-edge2);border-radius:var(--r-l);padding:16px 20px}
.catch p{font-size:13.5px;color:var(--ink);max-width:60ch;line-height:1.6}
.catch p b{font-weight:700}

/* ---- «Доберите баллы» ---- */
.cu-title{font:800 clamp(22px,2.8vw,28px)/1.2 var(--disp);letter-spacing:-.014em;color:var(--ink);margin:0 0 18px}
/* «Доберите баллы»: одна цельная панель, факты — колонками с тонкими
   разделителями; вердикт-фраза — утверждением, а не гигантским числом */
.calc{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);margin:18px 0}
.calc div{padding:20px 24px;border-left:1px solid var(--line-l)}
.calc div:first-child{border-left:0}
.calc div b{display:block;font:700 21px/1.15 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.calc div b.hot{color:var(--amber-ink)}
.calc div .cu-say{font:800 15px/1.3 var(--disp);letter-spacing:-.01em}
.calc div span{display:block;font-size:12px;color:var(--ink-mut);margin-top:9px;line-height:1.5}
@media (max-width:640px){.calc{grid-template-columns:1fr}.calc div{border-left:0;border-top:1px solid var(--line-l)}.calc div:first-child{border-top:0}}
.season{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:16px 18px;margin-top:18px}
.season .bars{display:flex;align-items:flex-end;gap:3px;height:52px;flex:none}
.season .bars i{width:10px;background:var(--line-l2);display:block;border-radius:2px 2px 0 0}
.season .bars i.hot{background:var(--amber-dot)}
.season .bars i.now{background:var(--ink);outline:2px solid var(--amber-dot);outline-offset:1px}
.season p{font-size:13.5px;max-width:58ch;color:var(--ink-mut);line-height:1.6}
.season p b{color:var(--ink)}
.cu-card{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:13px 16px;margin-top:10px;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.cu-card:hover{transform:translateY(-2px);box-shadow:var(--sh-card)}
.cu-card h3{font:600 14.5px/1.4 var(--body);color:var(--ink);margin:0}
.cu-card h3 a:hover{color:var(--amber-hot)}
.cu-card p{font-size:12.5px;color:var(--ink-mut);margin-top:3px}
.cu-go{margin-left:auto;flex:none}
.sum{border-top:2px solid var(--ink);margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:13.5px;color:var(--ink)}
.sum .r{color:var(--ink-mut)}
.sum a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2)}

/* ---- оповещения ---- */
.dalert{font-size:13.5px;color:var(--ink);line-height:1.6;margin-top:8px}
.dalert-row{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:12px 15px;margin-top:9px}
.dalert-row > div{min-width:0}
.dalert-row p{font-size:13.5px;color:var(--ink);line-height:1.55}
.dalert-row .s{font:500 11px/1.5 var(--mono);color:var(--ink-mut2);margin-top:4px}
.dalert-row .btn{margin-left:auto;flex:none}
.dalert-k{font:500 10px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lbl);border:1px solid var(--line-l2);border-radius:var(--r-xs);padding:4px 7px;background:var(--paper-dim);white-space:nowrap;flex:none}
.dalert-k--canceled{color:var(--down-ink);border-color:var(--down-ink)}

/* ---- лента оповещений врача (страница «Оповещения») -------------------
   Префикс .nt-, а НЕ .dtab-: класс .dtab уже занят таблицей кабинета
   (width:100% + min-width:520px на телефоне) — вкладки его наследовали, от
   этого подписи ломались на две строки, а на мобильном уезжали за экран.  */
.nt-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 14px}
.nt-tabs{display:inline-flex;gap:2px;padding:3px;background:var(--paper-dim);border:1px solid var(--line-l);border-radius:var(--r-pill)}
.nt-tab{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font:600 12.5px/1 var(--body);color:var(--ink-mut);padding:9px 15px;border-radius:var(--r-pill);transition:color var(--t-fast),background var(--t-fast)}
.nt-tab:hover{color:var(--ink)}
.nt-tab.on{background:var(--card);color:var(--ink);box-shadow:var(--sh-card)}
.nt-n{font:600 11px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-mut2);background:var(--card);border-radius:var(--r-pill);padding:3px 7px}
.nt-tab.on .nt-n{color:var(--amber-ink);background:var(--amber-wash2)}

/* Строка: [ метка+спец / заголовок / мета ] [ действия ].
   Метка «не прочитано» — inset-полоса, а не border-left: рамка меняла бы
   внутреннюю геометрию, и прочитанные строки вставали с другим отступом
   («всё уехало» при переключении вкладок). Теперь обе вкладки совпадают. */
.nt-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 18px;align-items:center;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:14px 16px;margin-top:8px}
.nt-row--new{background:var(--amber-wash);border-color:var(--amber-edge);box-shadow:inset 3px 0 0 var(--amber-dot)}
.nt-main{min-width:0}
.nt-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.nt-kind{font:500 10px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lbl);border:1px solid var(--line-l2);border-radius:var(--r-xs);padding:3px 7px;background:var(--paper-dim);white-space:nowrap}
.nt-row--new .nt-kind{color:var(--amber-ink);border-color:var(--amber-edge2);background:var(--amber-wash2)}
.nt-kind--canceled{color:var(--down-ink);border-color:var(--down-ink);background:transparent}
.nt-row--new .nt-kind--canceled{color:var(--down-ink);border-color:var(--down-ink);background:transparent}
.nt-spec{font:500 11px/1.4 var(--mono);letter-spacing:.04em;color:var(--ink-mut2)}
.nt-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font:600 14.5px/1.45 var(--body);color:var(--ink)}
a.nt-title:hover{color:var(--amber-hot)}
.nt-detail{font-size:12.5px;line-height:1.55;color:var(--ink-mut);margin-top:4px}
.nt-meta{font:500 11px/1.5 var(--mono);color:var(--ink-mut2);margin-top:5px}
.nt-act{display:flex;align-items:center;gap:14px;white-space:nowrap}
.nt-read{font:600 12px/1 var(--body);color:var(--amber-ink);white-space:nowrap;border-bottom:1px solid var(--amber-edge2);padding:0 0 2px}
.nt-read:hover{color:var(--amber-hot)}
.nt-pager{display:flex;gap:16px;align-items:center;justify-content:center;margin-top:18px;font:500 12.5px/1 var(--mono);color:var(--ink-mut)}
.nt-pager a{color:var(--amber-ink);font-weight:600}
.dnotif-list .empty-state{text-align:center;max-width:46ch;margin:32px auto 8px;color:var(--ink-mut)}
.dnotif-list .empty-state .empty-ic{display:block;font-size:28px;line-height:1;margin-bottom:10px;opacity:.7}
.dnotif-list .empty-state p{margin:0;line-height:1.6}
@media (max-width:640px){
  .nt-head{gap:10px}
  .nt-tabs{width:100%}
  .nt-tab{flex:1;justify-content:center;padding:9px 10px}
  .nt-row{grid-template-columns:minmax(0,1fr);gap:12px}
  .nt-act{justify-content:flex-start}
}

/* ---- настройки ---- */
.dset{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.setrow{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:13px 16px;font-size:13.5px;color:var(--ink)}
.setrow h4{font:500 10.5px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lbl);margin-bottom:6px}
.setrow b{font-weight:700;color:var(--ink)}
.setrow .s{font-size:12px;color:var(--ink-mut);margin-top:4px;line-height:1.6}
.setrow a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2)}
.dcode{font:500 12px/1 var(--mono);color:var(--ink);background:var(--paper-dim);border:1px solid var(--line-l);border-radius:var(--r-xs);padding:4px 7px}
.specgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-top:12px;max-height:420px;overflow-y:auto;padding-right:4px}
.specopt{display:flex;gap:9px;align-items:center;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-s);padding:9px 12px;font-size:13.5px;color:var(--ink);cursor:pointer}
/* фильтр поиска: атрибут hidden должен перебивать display:flex выше */
.specopt[hidden]{display:none}
.specopt:hover{border-color:var(--amber-hot)}
.specopt.on{border-color:var(--amber-edge2);background:var(--amber-wash)}
.specopt input{accent-color:var(--amber-hot);flex:none}
.specopt span{flex:1;min-width:0}
.specopt i{font:500 11px/1 var(--mono);color:var(--ink-mut2);font-style:normal}
.drow2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.drow2 label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--ink-mut)}
.drow2 input{border:1px solid var(--line-l2);border-radius:var(--r-s);padding:10px 12px;font:400 14px/1.3 var(--body);color:var(--ink);background:#fff}
.drow2 input:focus{border-color:var(--amber-hot);outline:none}
.drow2 small{font-size:11.5px;color:var(--ink-mut2)}
.dcheck{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--ink);padding:8px 0}
.dcheck input{width:18px;height:18px;accent-color:var(--amber-hot)}
/* блок «Оповещения»: две карточки (Подписка / Telegram) + список ниже */
.dnotif-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;align-items:stretch}
.dnotif-card{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:16px 18px}
.dnotif-card .h2{margin-bottom:10px}
.dnotif-card .dcheck{padding:6px 0}
.dnotif-card .dmut{font-size:13px}
.dnotif-actions{margin-top:14px}
/* явный разделитель: список оповещений отделён от карточек чертой */
.dnotif-list{margin-top:26px;padding-top:24px;border-top:1px solid var(--line-l2)}
@media (max-width:700px){.dnotif-cols{grid-template-columns:1fr}}

@media (max-width:900px){
  .dset,.drow2{grid-template-columns:1fr}
  .years{grid-template-columns:1fr 1fr}
  .cu-go{margin-left:0}
}
@media (max-width:700px){
  .regwrap{padding:22px 14px 46px}
  .regcard{padding:22px 18px}
  .ahdr{padding:10px 16px}
  /* вкладки не сжимаем, а даём подписи перенестись в две строки */
  .roletabs{margin:-23px -18px 18px}
  .roletab span{padding:13px 6px 11px;font-size:11.5px}
  .dcab-nav{gap:2px}
  .dcab-nav a{padding:8px 10px;font-size:12.5px}
  .stats{gap:16px}
  .trk .bar{min-width:100%;flex-basis:100%}
  .cu-card{flex-wrap:wrap}
  /* Строка оповещения: метка, текст, кнопка «Карточка». В одну строку на
     телефоне не влезает — текст сжимался до столбика по слову, а кнопка
     вылезала за карточку. Переносим: метка сверху, текст на всю ширину,
     кнопка отдельной строкой. */
  .dalert-row{flex-wrap:wrap;gap:8px 12px}
  .dalert-row > div{flex:1 1 100%;min-width:0}
  .dalert-row .btn{margin-left:0}
  .dsec-cta .btn{width:100%}
  .dtab{min-width:520px}
}

/* ====== ПРАВКИ ПРИЁМКИ ВРАЧЕБНОЙ ЧАСТИ (Б-3, В-1, Ж-2, Ж-10) ============ */

/* Ж-2: приглашение гостя на карточке выглядело как серый текст — теперь
   у единственной точки конверсии есть кнопочная affordance */
.dact-invite{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;
  color:var(--ink);text-decoration:none;background:var(--card);
  border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:7px 14px}
.dact-invite::after{content:"→";color:var(--amber-ink)}
.dact-invite:hover{border-color:var(--amber-hot);color:var(--amber-ink)}
.c-act .dact-invite{font-size:12px;padding:6px 12px}

/* В-1: закрытая норма года — поздравление вместо выдуманной нехватки */
.cu-done{background:var(--card);border:1px solid var(--line-l);
  border-left:3px solid var(--free);border-radius:var(--r-m);
  padding:14px 18px;margin:14px 0}
.cu-done p{font-size:14px;color:var(--ink);line-height:1.6;max-width:70ch}
.cu-done p.s{font-size:13px;color:var(--ink-mut);margin-top:6px}

/* Ж-10: поиск по списку специальностей в настройках */
.specfind{display:flex;flex-direction:column;gap:5px;font-size:13px;
  color:var(--ink-mut);margin-top:12px;max-width:340px}
.specfind input{border:1px solid var(--line-l2);border-radius:var(--r-s);
  padding:9px 12px;font:400 14px/1.3 var(--body);color:var(--ink);background:#fff}
.specfind input:focus{border-color:var(--amber-hot);outline:none}

/* Б-3: запросы по 152-ФЗ в настройках кабинета */
.dreqs{margin:10px 0 14px;padding-left:18px;font-size:13px;color:var(--ink-mut)}
.dreqs li{margin:4px 0}
.dreqs b{color:var(--ink);font-weight:600}
.dreq-btns{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 8px}
/* секции настроек — лёгкие карточки (как на «Оповещениях»), чёткое деление */
.dset-card{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:18px 20px;margin-top:16px}
.dset-save{margin-top:18px}
/* «Согласие и данные»: тихий блок глубоко внизу настроек, малозаметный */
.dsettings-legal{margin-top:112px;padding-top:20px;border-top:1px solid var(--line-l)}
.dsettings-legal-h{font:600 12.5px/1.3 var(--body);color:var(--ink-mut);margin:0 0 8px;text-transform:uppercase;letter-spacing:.05em}
.dsettings-legal-t{font-size:12px;color:var(--ink-mut2);line-height:1.65;max-width:78ch;margin:0}
.dsettings-legal-t a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2)}
.dsettings-legal .dreq-btns{margin:14px 0 6px}
.dsettings-legal-note{font-size:11px;font-style:italic;color:var(--ink-mut2);line-height:1.6;max-width:82ch;margin:0}
.opt-mark{color:var(--ink-mut2);font-weight:400}

/* Б-3: страница политики обработки ПД — та же светлая «журнальная» зона */
.legal{max-width:78ch;margin:0 auto;padding:34px 18px 64px}
.legal .qn{font:500 10.5px/1 var(--mono);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-lbl);margin-bottom:12px}
.legal h1{font:700 30px/1.2 var(--disp);color:var(--ink);margin-bottom:14px}
.legal .lead{font-size:15px;color:var(--ink-mut);line-height:1.7;
  max-width:70ch;margin-bottom:26px}
.legal h2{font:600 18px/1.35 var(--disp);color:var(--ink);
  margin:28px 0 10px;padding-top:18px;border-top:1px solid var(--line-l)}
.legal p{font-size:14.5px;color:var(--ink);line-height:1.75;margin-bottom:12px}
.legal .lead b{color:var(--ink);font-weight:600} /* имя оператора — полный контраст на бумаге */
.legal ul{margin:0 0 14px 20px}
.legal li{font-size:14.5px;color:var(--ink);line-height:1.7;margin-bottom:7px}
.legal a{color:var(--amber-ink);text-decoration:underline;
  text-decoration-color:var(--amber-edge2)}
.legal .legal-foot{margin-top:30px;padding-top:16px;
  border-top:1px solid var(--line-l);font-size:13px;color:var(--ink-mut)}
.legal .fine{font-size:12.5px;color:var(--ink-mut);line-height:1.7;
  margin-top:22px;padding:14px 16px;background:var(--paper-dim);
  border:1px solid var(--line-l);border-radius:var(--r-m)}
/* индекс /legal/: список документов со ссылками и описаниями */
.legal-list{list-style:none;margin:8px 0 8px;padding:0}
.legal-list li{margin:0 0 12px;padding:14px 16px;border:1px solid var(--line-l);
  border-radius:var(--r-m);background:var(--card)}
.legal-list li a{font-size:15px;color:var(--amber-ink);text-decoration:none}
.legal-list li a:hover b{text-decoration:underline}
.legal-list li span{display:block;margin-top:4px;font-size:13px;
  color:var(--ink-mut);line-height:1.6}
/* короткий дисклеймер в подвале аналитических экранов + светлых страниц */
.disclaimer-note{font-size:12px;color:var(--ink-mut);line-height:1.65;
  margin:0;padding:12px 0}
.disclaimer-note a{color:var(--amber-ink);white-space:nowrap}
/* B2B-регистрация: две колонки пароля, ошибки полей, необязательный чекбокс */
.reg2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.consent--opt{border-color:var(--line-l);border-width:1px}
.ferr{font-size:12px;color:var(--down-ink);margin:2px 0 8px}
@media (max-width:700px){
  .legal{padding:24px 14px 46px}
  .legal h1{font-size:24px}
  .dreq-btns .btn{width:100%}
  .reg2col{grid-template-columns:1fr}
}

/* Флеш-сообщения (например, «аккаунт удалён») — вверху main, все зоны */
.sitemsgs{max-width:960px;margin:16px auto 0;padding:0 20px}
/* Подложка сплошная, а не полупрозрачная: `main` начинается в ТЁМНОЙ зоне
   (шапка главной, врачебный каркас), и чернильный текст на просвечивающем
   тёмном фоне не читался вовсе — сообщение об удалении аккаунта и
   подтверждение предложения выглядели пустой полосой. Светлая карточка
   читается в обеих зонах, роль несёт кант. */
.sitemsg{margin:0 0 8px;padding:12px 16px;border-radius:10px;
  background:var(--card);border:1px solid var(--amber-line);
  color:var(--ink);font-size:14px}
.sitemsg--success{border-color:rgba(46,160,110,.55)}
.sitemsg--error{border-color:var(--down-line)}

/* ============================================================
   Раздел «Аналитика»: список статей, страница статьи, О проекте,
   Методология. Живёт в «журнальной» светлой зоне (.docz), поэтому
   переиспользует токены бумаги и карточные классы .art/.cover/.soon/.go.
   ============================================================ */
.docz .atabs{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.docz .atab{font:500 13px/1 var(--body);color:var(--ink-mut);border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:9px 16px;background:var(--card);transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}
.docz .atab:hover{color:var(--amber-ink);border-color:var(--amber-edge2)}
.docz .atab.on{color:var(--amber-ink);border-color:var(--amber-edge2);background:var(--amber-wash2);font-weight:700}

.alist{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.acard{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}
.acard:hover{transform:translateY(-3px);box-shadow:var(--sh-card);border-color:var(--line-l2)}

.apage{display:flex;align-items:center;gap:18px;margin-top:26px;font:500 13px/1 var(--body);color:var(--ink-mut)}
.apage a{color:var(--amber-ink)}

.aempty{background:var(--card);border:1px dashed var(--line-l2);border-radius:var(--r-l);padding:34px 26px;text-align:center;color:var(--ink-mut)}
.aempty .ae-h{font:700 18px/1.3 var(--disp);color:var(--ink);margin-bottom:8px}
.aempty a{color:var(--amber-ink)}

.adet .lbl{margin-top:14px}
.ameta{font-size:13.5px;color:var(--ink-mut);margin-top:10px}
.ameta b{color:var(--ink)}

.afacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:6px}
.afact{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:14px 16px}
.afact b{display:block;font:700 24px/1.1 var(--disp);letter-spacing:-.01em;color:var(--ink)}
.afact span{font-size:12.5px;color:var(--ink-mut)}

.abody{font-size:15.5px;line-height:1.72;color:var(--ink);max-width:72ch}
.abody h2{font:700 20px/1.3 var(--disp);letter-spacing:-.01em;color:var(--ink);margin:26px 0 10px}
.abody h2:first-child{margin-top:0}
.abody h3{font:700 16px/1.35 var(--disp);color:var(--ink);margin:20px 0 8px}
.abody p{margin:0 0 14px}
.abody ul{margin:0 0 16px;padding-left:22px}
.abody li{margin:0 0 7px}
.abody a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2)}
.abody strong{font-weight:700}
.abody code{font:500 13px/1 var(--mono);background:var(--paper-dim);padding:2px 6px;border-radius:6px}
.abody blockquote{margin:0 0 16px;padding:10px 18px;border-left:3px solid var(--amber-edge2);background:var(--amber-wash2);border-radius:0 8px 8px 0}
.abody blockquote p{margin:0;color:var(--ink)}

/* картинки статьи: обложка под лидом и врезки-графики в теле */
.acover{margin:20px 0 0;border:1px solid var(--line-l);border-radius:var(--r-l);overflow:hidden;background:var(--card)}
.acover img{display:block;width:100%;height:auto}
.afig{margin:0 0 18px}
.afig img{display:block;width:100%;height:auto;border:1px solid var(--line-l);border-radius:var(--r-m);background:var(--card)}
.afig figcaption{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--ink-mut)}
/* обложка-картинка: целиком, без обрезки — картинки статей всегда 16:9 */
.cover--img{aspect-ratio:16/9;padding:0;overflow:hidden;background:var(--paper-dim)}
.cover--img img{display:block;width:100%;height:100%;object-fit:cover}
.arel-sub{font-size:13.5px;color:var(--ink-mut);margin:2px 0 6px}

@media (max-width:860px){.alist{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.alist{grid-template-columns:1fr}.afact b{font-size:21px}}

/* плавная прокрутка по якорям */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ============ РЯД СОЦСЕТЕЙ (общий: сайт, врачебная зона, кабинеты) ======
   Иконки-«чипы» без подписей, 5 каналов. Фон под каждый бренд — как на
   заглушке coming-soon. variant: header|footer|cab (только размер/отступы). */
.socials-row{display:flex;align-items:center;gap:8px;flex:0 0 auto;flex-wrap:nowrap}
.socials-row--footer{flex-wrap:wrap}
.soc{width:26px;height:26px;flex:none;display:flex;align-items:center;justify-content:center;
  border-radius:7px;overflow:hidden;
  transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}
.soc:hover,.soc:focus-visible{transform:translateY(-2px);outline:none;
  box-shadow:0 4px 12px rgba(0,0,0,.28)}
/* max-width:none — перебиваем глобальный сброс img,svg{max-width:100%},
   иначе в чипе-флексе глиф схлопывается в 0 и видна «просто заливка» */
.soc-i{width:15px;height:15px;max-width:none;flex:none;display:block}
.soc--telegram{background:#26a5e4}
.soc--max{background:linear-gradient(135deg,#2f6bff 0%,#7a2bf5 100%)}
.soc--vk{background:#0077ff}
.soc--dzen{background:#fff}
.soc--dzen .soc-i{width:17px;height:17px}
/* в подвале — чуть крупнее */
.socials-row--footer{gap:10px}
.socials-row--footer .soc{width:32px;height:32px;border-radius:8px}
.socials-row--footer .soc-i{width:18px;height:18px}
.socials-row--footer .soc--dzen .soc-i{width:20px;height:20px}
/* на узких экранах шапка не должна ломаться — компактнее */
@media (max-width:900px){
  .socials-row--header .soc{width:24px;height:24px;border-radius:6px}
  .socials-row--header .soc-i{width:14px;height:14px}
  .socials-row--header{gap:6px}
}
/* блок соцсетей в подвале главной (.ftb) */
.ft-socials{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:20px 0;margin-top:44px;border-top:1px solid var(--line)}
.ft-socials-label{font:500 12px/1.4 var(--mono);color:var(--mut2);letter-spacing:.05em}

/* Общая шапка на узких экранах. Блок стоит в конце файла осознанно:
   базовые правила .hdr-gen объявлены ниже медиазапроса на 900px и при
   равной специфичности перебивали бы его (высота шапки не менялась, и
   третья строка наезжала на ЭКГ-стык). */
@media (max-width:900px){
  .hdr-gen{flex-wrap:wrap;height:auto;padding:10px 16px;gap:8px 10px}
  .hdr-gen .aud{order:3;width:100%;padding-left:0;border-left:0}
  .hdr-gen nav{gap:2px;margin-left:auto}
  .hdr-gen nav a{padding:8px 9px;font-size:12.5px}
  .hdr-gen .socials-row--header{display:none}
}
/* Три входа общей шапки («Врачам · Организаторам · Индустрии» + кнопка) в
   360–390px не помещались в строку и уводили страницу вбок на 19–49px.
   Ниже 700px меню занимает свою строку и прокручивается полосой, как в
   шапке врачебной зоны. */
@media (max-width:700px){
  .hdr-gen nav{width:100%;order:4;margin-left:0;flex-wrap:nowrap;
    overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .hdr-gen nav::-webkit-scrollbar{display:none}
  .hdr-gen nav a{flex:none;white-space:nowrap}
}

/* Блок индустрии на главной — симметричен организаторскому (31.07.2026).
   Тонировка отличает его от блока организаторов, чтобы два B2B-экрана
   подряд не сливались в один. */
.b2b--alt{background:var(--bg2)}
.srez{display:grid;gap:10px;margin:14px 0 4px}
.srez li{display:flex;flex-direction:column;gap:2px;padding:11px 14px;
  border:1px solid var(--line);border-radius:var(--r-m);background:var(--panel)}
.srez li b{font-size:13.5px;color:var(--text);font-weight:600}
.srez li span{font-size:12px;color:var(--mut)}

/* «Продвижение» подано спокойнее ряда тарифов: это реклама, а не аналитика */
.wide--calm{border-color:var(--line2);background:var(--panel)}

/* ---- окно про cookie и аналитику (31.07.2026) ----
   Неблокирующая полоса внизу: служебные cookie необходимы для работы
   сервиса, и стена в европейском стиле здесь не нужна. Обе кнопки
   равноценны по читаемости — иначе выбор перестаёт быть свободным. */
.ckb{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-header);
  background:rgba(11,14,19,.97);border-top:1px solid var(--line);
  backdrop-filter:blur(10px);padding:14px 0}
.ckb-in{max-width:1180px;margin:0 auto;padding:0 28px;display:flex;gap:26px;
  align-items:center;justify-content:space-between;flex-wrap:wrap}
.ckb-txt{flex:1 1 460px;min-width:0}
.ckb-txt b{display:block;font:700 14px/1.3 var(--disp);color:var(--text);margin-bottom:4px}
.ckb-txt p{font-size:12.5px;line-height:1.6;color:var(--mut);max-width:82ch}
.ckb-btns{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ckb-btns form{display:flex;gap:8px;flex-wrap:wrap}
.ckb-more{font-size:12px;color:var(--mut2);text-decoration:underline}
.ckb-more:hover{color:var(--amber)}
@media (max-width:700px){
  .ckb{padding:12px 0}
  .ckb-in{padding:0 16px;gap:12px}
  .ckb-txt p{font-size:12px}
  .ckb-btns{width:100%}
  .ckb-btns form{width:100%}
  .ckb-btns .btn{flex:1}
}

/* таблица перечня cookie в политике */
.ck-table{width:100%;border-collapse:collapse;margin:12px 0 18px;font-size:13px}
.ck-table th,.ck-table td{border:1px solid var(--line-l);padding:8px 10px;text-align:left;vertical-align:top}
.ck-table th{background:var(--paper-dim);font-weight:700;color:var(--ink);font-size:12.5px}
.ck-table td{color:var(--ink-mut)}
.ck-table code{font:500 12px/1.4 var(--mono);color:var(--ink)}
@media (max-width:700px){
  .ck-table{display:block;overflow-x:auto;white-space:nowrap}
}

/* ============ ПЛАШКА «ПРЕДЛОЖИТЬ ИДЕЮ» (все три кабинета) ============
   Требование Павла 24.08: видно на любой вкладке кабинета, но не кричит.
   Отсюда бумажная палитра вместо яркого круглого FAB службы поддержки —
   такой виджет ломает тишину врачебной зоны. Янтарь только в иконке.
   Раскрывается на месте, без затемнения экрана: модалка с оверлеем
   заявляет «сейчас будет важное», а здесь мысль мимоходом.
   Поверхность (фон, кант, тень) висит на самом <details>, а не на пилюле:
   так свёрнутая плашка и раскрытая карточка — одно и то же тело, и между
   состояниями ничего не мигает. */
.fbp{position:fixed;right:18px;bottom:18px;z-index:var(--z-sticky);
  background:var(--card);border:1px solid var(--line-l2);
  border-radius:var(--r-pill);box-shadow:var(--sh-card-w);
  transition:border-radius var(--t-fast),box-shadow var(--t-fast)}
.fbp[open]{width:330px;border-radius:var(--r-l);box-shadow:var(--sh-card)}
.fbp:hover{border-color:var(--amber-line)}

/* заголовок: свёрнутый — пилюля, раскрытый — шапка карточки */
.fbp-t{display:flex;align-items:center;gap:7px;cursor:pointer;
  padding:9px 15px;font:500 13px/1.15 var(--body);color:var(--ink);
  list-style:none;user-select:none}
.fbp-t::-webkit-details-marker{display:none}
.fbp-t::marker{content:""}
.fbp[open] .fbp-t{padding:14px 16px 0;font:600 14.5px/1.3 var(--disp)}
.fbp-i{flex:none}
.fbp-i--bulb{color:var(--amber-ink)}
.fbp-i--x{display:none;margin-left:auto;color:var(--ink-mut2)}
.fbp[open] .fbp-i--bulb{display:none}
.fbp[open] .fbp-i--x{display:block}
.fbp-t:hover .fbp-i--x{color:var(--ink)}

.fbp-card{padding:0 16px 15px}
.fbp-sub{font:400 12px/1.5 var(--body);color:var(--ink-mut);margin:4px 0 11px}
.fbp-f{display:block;margin-bottom:8px}
.fbp-f input,.fbp-f textarea{width:100%;background:#fff;border:1px solid var(--line-l);
  border-radius:7px;padding:8px 10px;font:400 12.5px/1.45 var(--body);color:var(--ink)}
.fbp-f textarea{resize:vertical;min-height:74px}
.fbp-f input::placeholder,.fbp-f textarea::placeholder{color:var(--ink-mut2)}
.fbp-f input:focus,.fbp-f textarea:focus{border-color:var(--line-l2);outline-offset:1px}
.fbp-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}
.fbp-mail{font:400 11.5px/1.4 var(--body);color:var(--ink-mut2)}
.fbp-mail b{display:block;font-weight:500;color:var(--ink-mut);word-break:break-all}

/* B2B-кабинет — белый дашборд на прохладно-сером холсте, тёплая бумага в
   нём выглядит пятном. Меняем только поверхности, поведение общее. */
.cab .fbp{background:var(--cab-card);border-color:var(--cab-card-bd)}
.cab .fbp:hover{border-color:var(--amber-line)}
.cab .fbp[open]{box-shadow:var(--cab-card-sh)}
.cab .fbp-f input,.cab .fbp-f textarea{border-color:var(--cab-card-bd)}

@media (max-width:640px){
  /* На телефоне подпись съедала почти половину строки и накрывала текст
     под собой — свёрнутая плашка ужимается до кружка с лампочкой.
     Раскрытая идёт по ширине окна: карточка в 330px вылезала бы за край. */
  .fbp{right:12px;bottom:12px;border-radius:var(--r-pill)}
  .fbp:not([open]) .fbp-lbl{position:absolute;width:1px;height:1px;
    overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  /* 44px — минимальная цель для пальца; при padding:11px кружок
     выходил 39px и промахнуться было легко. */
  .fbp:not([open]) .fbp-t{padding:14px}
  .fbp[open]{right:12px;left:12px;bottom:12px;width:auto}
}

/* ====== КАБИНЕТ ВРАЧА v3 (09.09.2026) — главная на карточках, реестры,
   «Подтвердите посещение», «Доберите баллы» в трекере, окно Telegram.
   Макеты: design/mockups/кабинет_врача_v3_index.html. Префикс .dh- ====== */

/* ===== Макет v2 главной кабинета врача (09.09.2026). Префикс .dh- ===== */
.dh-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.dh-head h1{font:800 clamp(22px,2.8vw,28px)/1.22 var(--disp);letter-spacing:-.014em;color:var(--ink);margin:0}
.dh-sub{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.dh-chip{font:500 11.5px/1 var(--mono);color:var(--amber-ink);background:var(--amber-wash);border:1px solid var(--amber-edge);border-radius:var(--r-pill);padding:6px 10px}
.dh-chip.mut{color:var(--ink-mut);background:var(--card);border-color:var(--line-l)}
.dh-sub .dh-cyc{font-size:12.5px;color:var(--ink-mut)}
.dh-head .dh-acts{display:flex;gap:8px;flex-wrap:wrap}

/* --- сводка цикла --- */
.dh-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:stretch}
.dh-main{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:20px 22px 18px;display:flex;flex-direction:column;gap:14px}
.dh-main .lbl{font:500 10.5px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lbl);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dh-main .lbl .dh-pill{margin-left:auto;font:600 12px/1 var(--body);letter-spacing:0;text-transform:none;color:var(--ink);background:var(--paper-dim);border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:6px 10px;white-space:nowrap}
.dh-main .lbl .dh-pill.down{color:var(--down-ink);border-color:var(--down-ink);background:transparent}
.dh-big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.dh-big b{font:700 clamp(34px,4vw,44px)/1 var(--mono);letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums}
.dh-big>span{font:500 17px/1 var(--mono);color:var(--ink-mut)}
.dh-big>span.dh-pill{margin-left:auto;font:600 12px/1 var(--body);color:var(--ink);background:var(--paper-dim);border:1px solid var(--line-l2);border-radius:var(--r-pill);padding:7px 11px;white-space:nowrap}
.dh-pill.down{color:var(--down-ink);border-color:var(--down-ink);background:transparent}
.dh-bar{position:relative;height:14px;background:var(--paper-dim);border:1px solid var(--line-l);border-radius:7px;margin-top:26px}
.dh-bar i{display:block;height:100%;width:0;border-radius:6px 0 0 6px;background:linear-gradient(90deg,var(--amber-dot),var(--amber));transition:width 1.1s cubic-bezier(.22,.9,.3,1)}
.dh-bar .norm{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--ink);opacity:0;transition:opacity .4s ease .9s}
.dh-bar .norm::after{content:attr(data-cap);position:absolute;top:-19px;left:50%;transform:translateX(-50%);font:500 10.5px/1 var(--mono);letter-spacing:.05em;color:var(--ink-mut);white-space:nowrap}
.is-ready .dh-bar .norm{opacity:1}
.dh-legend{display:flex;justify-content:space-between;gap:12px;font:500 11.5px/1 var(--mono);color:var(--ink-mut2);margin-top:2px}
.dh-legend b{color:var(--ink-mut);font-weight:500}
.dh-main .dh-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.dh-main .dh-foot .dmut{font-size:12.5px}
.dh-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dh-tile{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:14px 15px 12px;display:flex;flex-direction:column;gap:3px;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.dh-tile:hover{transform:translateY(-2px);box-shadow:var(--sh-card)}
.dh-tile b{font:700 21px/1.15 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.dh-tile b small{font-size:13px;color:var(--ink-mut);font-weight:500}
.dh-tile>span{font-size:12px;color:var(--ink-mut);line-height:1.45}
.dh-tile em{font-style:normal;font:500 11px/1.4 var(--mono);color:var(--ink-mut2);margin-top:auto;padding-top:6px}
.dh-tile em.warn{color:var(--amber-ink)}
.dh-tile .mini{height:5px;background:var(--paper-dim);border-radius:3px;overflow:hidden;margin-top:7px;position:relative}
.dh-tile .mini i{display:block;height:100%;width:0;background:var(--amber-dot);transition:width 1s cubic-bezier(.22,.9,.3,1) .2s}
.dh-tile .mini u{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink)}

/* --- что сделать --- */
.dh-todo{margin-top:22px}
.dh-todo .h2 small{margin-left:4px}
.dh-todo ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dh-todo li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:12px 15px;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}
.dh-todo li:hover{transform:translateY(-2px);box-shadow:var(--sh-card);border-color:var(--line-l2)}
.dh-todo li.hot{background:var(--warn-wash);border-color:var(--amber-edge2)}
.dh-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--amber-wash2);border:1px solid var(--amber-edge);color:var(--amber-ink);font:700 13px/1 var(--mono);flex:none}
.dh-ic.ink{background:var(--paper-dim);border-color:var(--line-l2);color:var(--ink)}
.dh-todo h3{font:600 14.5px/1.4 var(--body);color:var(--ink);margin:0}
.dh-todo p{font-size:12.5px;color:var(--ink-mut);margin-top:2px;line-height:1.5}
.dh-todo p b{color:var(--ink);font-weight:600}
.dh-todo .btn{white-space:nowrap}
.dh-ok{display:flex;gap:12px;align-items:center;background:var(--card);border:1px dashed var(--line-l2);border-radius:var(--r-m);padding:14px 16px;font-size:13.5px;color:var(--ink-mut)}

/* --- реестры: одна колонка, строки с разделителями, лимит + «ещё N» --- */
.dh-list{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);overflow:hidden}
.dh-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto auto;gap:6px 16px;align-items:center;padding:11px 16px;border-top:1px solid var(--line-l);transition:background var(--t-fast)}
.dh-row:first-child{border-top:0}
.dh-row:hover{background:var(--paper-dim)}
.dh-row.new{background:var(--amber-wash);box-shadow:inset 3px 0 0 var(--amber-dot)}
.dh-row.new:hover{background:var(--amber-wash2)}
.dh-d{font:500 11.5px/1.35 var(--mono);color:var(--ink-mut);white-space:nowrap}
.dh-d b{display:block;font:700 15px/1.1 var(--mono);color:var(--ink)}
.dh-t{min-width:0}
.dh-t a,.dh-t .tt{display:block;font:600 13.5px/1.4 var(--body);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dh-t a:hover{color:var(--amber-hot)}
.dh-t p{font-size:12px;color:var(--ink-mut);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dh-t p b{color:var(--ink);font-weight:600}
.dh-k{font:500 9.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lbl);border:1px solid var(--line-l2);border-radius:var(--r-xs);padding:3px 6px;background:var(--paper-dim);white-space:nowrap;margin-right:6px;vertical-align:1px}
.dh-row.new .dh-k{color:var(--amber-ink);border-color:var(--amber-edge2);background:var(--amber-wash2)}
.dh-k.cancel{color:var(--down-ink);border-color:var(--down-ink);background:transparent}
.dh-row .b-zet{padding:5px 8px;font-size:12px}
.dh-row .act{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}
.dh-row .act .btn{white-space:nowrap}
.dh-more{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line-l);background:var(--paper-dim);font-size:12.5px;color:var(--ink-mut)}
.dh-more a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2);font-weight:500}
.dh-more .n{font:500 11.5px/1 var(--mono)}
.dh-empty{padding:16px;font-size:13px;color:var(--ink-mut);line-height:1.55}
.dh-empty a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2)}

/* --- профиль одной строкой --- */
.dh-prof{margin-top:26px;padding-top:18px;border-top:1px solid var(--line-l);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dh-prof div{font-size:13px;color:var(--ink);line-height:1.5;min-width:0}
.dh-prof h4{font:500 10px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lbl);margin-bottom:3px}
.dh-prof b{font-weight:600}
.dh-prof a{color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2);font-size:12.5px;margin-left:4px}
.dh-prof .s{font-size:12px;color:var(--ink-mut)}
.dh-disc{margin-top:22px}

/* --- появление блоков --- */
.js .dh-in{opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s cubic-bezier(.22,.9,.3,1)}
.js .is-ready .dh-in{opacity:1;transform:none}
.dh-in:nth-child(2){transition-delay:.06s}.dh-in:nth-child(3){transition-delay:.12s}.dh-in:nth-child(4){transition-delay:.18s}.dh-in:nth-child(5){transition-delay:.24s}.dh-in:nth-child(6){transition-delay:.3s}

@media (prefers-reduced-motion:reduce){
  .dh-bar i,.dh-tile .mini i{transition:none}
  .js .dh-in{opacity:1;transform:none;transition:none}
  .dh-bar .norm{transition:none;opacity:1}
}
@media (max-width:900px){
  .dh-hero{grid-template-columns:1fr}
  .dh-prof{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  .dh-tiles{grid-template-columns:1fr 1fr}
  .dh-row{grid-template-columns:56px minmax(0,1fr);gap:6px 12px;padding:11px 12px}
  .dh-row .b-zet{grid-column:2;justify-self:start}
  .dh-row .act{grid-column:2;justify-content:flex-start;flex-wrap:wrap}
  .dh-t a,.dh-t .tt,.dh-t p{white-space:normal}
  .dh-prof{grid-template-columns:1fr}
  .dh-todo li{grid-template-columns:auto minmax(0,1fr)}
  .dh-todo li .btn{grid-column:2;justify-self:start;white-space:normal}
  .dh-bar .norm::after{display:none}
  .dh-main .lbl .dh-pill{margin-left:0}
  .dh-bar{margin-top:8px}
  .dh-head .dh-acts{width:100%}
  .dh-head .dh-acts .btn{flex:1}
}


.dcab-nav .dcab-side{margin-left:auto;color:var(--ink-mut2);font-weight:500}
.dcab-nav .dcab-side.on{background:var(--amber-wash2);color:var(--ink);font-weight:700}
@media (max-width:700px){.dcab-nav .dcab-side{margin-left:0}}
/* пояснение под заголовком блока — одна строка на десктопе, перенос по
   ширине экрана на телефоне (Павел 09.09: 74ch резал его на три строки) */
.dh-why{font-size:12.5px;color:var(--ink-mut);margin:-4px 0 10px;line-height:1.5}
.dh-card{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:18px 20px;margin-top:18px}
.dh-card .h2{margin-bottom:6px}
.dh-card .dh-list{border-radius:var(--r-m)}
.dh-card .dh-reg{margin-top:0;padding-top:0;border-top:0}
.dh-prof-card{margin-top:18px}
.dh-prof-card .dh-prof{margin-top:0;padding-top:0;border-top:0}
.dh-more-link{font:500 12.5px/1 var(--body);color:var(--amber-ink);text-decoration:underline;text-decoration-color:var(--amber-edge2);letter-spacing:0}
.dh-modal[hidden]{display:none}
/* «Подтвердите посещение» в трекере */
.dh-confirm{background:var(--warn-wash);border:1px solid var(--amber-edge2);border-radius:var(--r-l);padding:16px 18px;margin-top:20px}
.dh-confirm .h2{margin-bottom:4px}
.dh-confirm .dh-list{margin-top:10px}
.dh-confirm .dh-row{background:var(--card)}
/* «Доберите баллы» как раздел трекера */
.dh-catch .calc{margin:12px 0 0}
.dh-catch .season{margin-top:12px}
.dh-catch .dh-catchset{margin-top:18px}
.dh-catch .dh-catchset .h2{font-size:14.5px}
/* пароль на подложке */
/* модалка Telegram */
.dh-modal{position:fixed;inset:0;background:rgba(18,22,29,.42);display:none;align-items:center;justify-content:center;padding:20px;z-index:60}
.dh-modal.on{display:flex}
.dh-modal-box{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-l);padding:24px 26px 20px;max-width:480px;width:100%;box-shadow:0 24px 60px rgba(18,22,29,.25);transform:translateY(10px);opacity:0;transition:transform .35s cubic-bezier(.22,.9,.3,1),opacity .35s ease}
.dh-modal.on .dh-modal-box{transform:none;opacity:1}
.dh-modal-box .lbl{font:500 10.5px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber-ink);display:flex;gap:8px;align-items:center}
.dh-modal-box .lbl svg{width:16px;height:16px}
.dh-modal-box h2{font:800 20px/1.25 var(--disp);letter-spacing:-.012em;color:var(--ink);margin:10px 0 8px}
.dh-modal-box p{font-size:13.5px;color:var(--ink-mut);line-height:1.6}
.dh-modal-box .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.dh-modal-box .fine{font-size:11.5px;color:var(--ink-mut2);margin-top:12px}
.dh-modal-box .x{position:absolute;top:10px;right:12px;background:none;border:0;font-size:20px;color:var(--ink-mut2);cursor:pointer}
.dh-modal-box{position:relative}
@media (prefers-reduced-motion:reduce){.dh-modal-box{transition:none}}

/* «Пригласить коллегу»: мелкий юридический текст был без стиля и рендерился
   крупнее основного (разбор 09.09) */
.invbox .fine{font-size:11.5px;color:var(--ink-mut2);line-height:1.6;margin-top:8px}

/* ====== КАБИНЕТ ВРАЧА, ТЕЛЕФОН (≤700px): кнопки одного размера и на одних
   местах во всех вкладках (Павел 09.09). Правило одно: группа кнопок —
   сетка из двух равных колонок, одиночная или третья кнопка — на всю
   ширину; высота кнопок одинаковая (не меньше 38px под палец). ====== */
@media (max-width:700px){
  .docz .dact-row,.docz .dh-row .act,.docz .nt-act,.docz .dreq-btns,
  .docz .dsec-cta,.docz .dh-acts,.docz .invlink,.docz .dh-modal-box .acts{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-left:0}
  .docz .dact-row>*,.docz .dh-row .act>*,.docz .nt-act>*,.docz .dreq-btns>*,
  .docz .dsec-cta>*,.docz .dh-acts>*,.docz .dh-modal-box .acts>*{min-width:0;margin:0}
  /* одиночная кнопка и третья в тройке — во всю ширину */
  .docz .dact-row>:only-child,.docz .dh-row .act>:only-child,.docz .nt-act>:only-child,
  .docz .dreq-btns>:only-child,.docz .dsec-cta>:only-child,.docz .dh-acts>:only-child,
  .docz .dact-row>:nth-child(3):last-child,.docz .dh-row .act>:nth-child(3):last-child,
  .docz .dsec-cta>:nth-child(3):last-child{grid-column:1/-1}
  .docz .dsec-cta .dmut-inline{grid-column:1/-1;margin:0;font-size:12px}
  /* форма-обёртка кнопки (В план / Отметить) растягивается вместе с ней */
  .docz .dact{display:flex;width:100%}
  .docz .dact-row .btn,.docz .dh-row .act .btn,.docz .nt-act .btn,.docz .dreq-btns .btn,
  .docz .dsec-cta .btn,.docz .dh-acts .btn,.docz .dact .btn,.docz .dh-modal-box .acts .btn,
  .docz .dh-todo li .btn,.docz .dset-save .btn,.docz .dnotif-actions .btn,.docz .trk-top .btn,
  .docz .dform form .btn,.docz .cu-go,.docz .nt-head form .btn{
    width:100%;justify-content:center;text-align:center;white-space:normal;
    font-size:13px;padding:10px 12px;min-height:38px;line-height:1.25}
  .docz .dact-done{display:flex;align-items:center;justify-content:center;width:100%;
    min-height:38px;padding:8px 12px;font-size:12px;border-radius:var(--r-s)}
  /* «Прочитано» в оповещениях — такая же кнопка, а не подчёркнутая ссылка */
  .docz .nt-act form{display:flex;width:100%}
  .docz .nt-read{width:100%;min-height:38px;display:inline-flex;align-items:center;justify-content:center;
    font:600 13px/1.25 var(--body);color:var(--ink);background:var(--card);border:1px solid var(--line-l2);
    border-radius:var(--r-s);padding:10px 12px}
  .docz .nt-head{gap:10px}
  .docz .nt-head form{width:100%}
  /* «Что сделать»: кнопка под текстом, во всю ширину */
  .docz .dh-todo li .btn{grid-column:2;justify-self:stretch}
  /* трекер: «Скачать PDF» и «Сохранить» — во всю ширину под заголовком */
  .docz .trk-top>a.btn,.docz .dset-save .btn,.docz .dnotif-actions .btn{width:100%}
  .docz .dnotif-actions form{width:100%}
  .docz .dform form{flex-direction:column;align-items:stretch}
  .docz .dform label{flex:none}
  /* «Доберите баллы»: карточка набора — колонкой, кнопка внизу во всю ширину */
  .docz .cu-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px}
  .docz .cu-card .dc-main{grid-column:2}
  .docz .cu-card .cu-go{grid-column:1/-1;margin-left:0}
  /* «Пригласить коллегу»: поле ссылки над кнопкой */
  .docz .invlink input{grid-column:1/-1;min-width:0}
  .docz .invlink .btn{grid-column:1/-1}
  /* отметки посещений в трекере: таблица → карточки (была горизонтальная прокрутка) */
  .docz .dtab-wrap{overflow:visible}
  .docz .dtab{min-width:0;display:block}
  .docz .dtab tbody,.docz .dtab tr,.docz .dtab td{display:block}
  .docz .dtab tr:first-child{display:none}                      /* строка заголовков */
  .docz .dtab tr{background:var(--card);border:1px solid var(--line-l);border-radius:var(--r-m);padding:10px 12px;margin-top:8px;position:relative}
  .docz .dtab tr:hover td{background:transparent}
  .docz .dtab td{padding:0;border:0}
  .docz .dtab td.num{font-size:11.5px;color:var(--ink-mut2);margin-bottom:3px}
  .docz .dtab td:nth-child(2){font-size:13.5px;line-height:1.4;font-weight:600;padding-right:56px}
  .docz .dtab td:nth-child(3){position:absolute;top:10px;right:12px}
  .docz .dtab td:nth-child(4),.docz .dtab td:nth-child(5){display:inline-block;margin-top:8px;margin-right:10px;vertical-align:middle}
  .docz .dtab .rm{font-size:12px}
}
