/* ============================================================================
   МедГраф · публичные страницы (Г-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}
.hdr-search{flex:1;max-width:360px;margin-left:auto;position:relative}
.hdr-search input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 14px 9px 36px;font-size:14px;color:var(--text);transition:border-color var(--t-fast)}
.hdr-search input::placeholder{color:var(--mut2)}
.hdr-search input:focus{border-color:var(--amber-line);outline:none}
.hdr-search .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--mut2);pointer-events:none}
.hdr .btn{padding:9px 18px;font-size:14px}
.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}
.eyebrow{margin-bottom:22px}
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-form input{flex:1;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}
.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 .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}
.press-head p{color:var(--ink-mut);font-size:14px;max-width:40ch}
.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}
.ft-grid{display:grid;grid-template-columns:repeat(4,1fr) 1.2fr;gap:32px;margin-bottom:44px}
.ft-grid h4{font:500 11px/1 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)}
.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}

.facts{display:grid;grid-template-columns:repeat(4,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)}
.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-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}

.areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,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}
.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{
  --gut:calc(var(--s-6) + max(0px,(100% - var(--wrap))/2));
  padding-left:var(--gut);
  padding-right:var(--gut);
}
/* ширину хиро держит сама мера строки, а не блок, прижатый к левому краю */
.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}
  .ft-grid{grid-template-columns:repeat(2,1fr)}
  .lhero{grid-template-columns:1fr;gap:40px}
  .facts{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}
  .hdr-search{display:none}
  .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}
  .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:1fr 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}
.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}
.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}
}
@media (max-width:700px){
  .dhdr{flex-wrap:wrap;height:auto;padding:10px 16px}
  .dhdr .din{margin-left:0}
  /* меню врачебной зоны у залогиненного (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}
  .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}
.dhdr .din-cab{color:var(--text);font-weight:600}
.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)}

/* ---- регистрация и онбординг ---- */
.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)}
.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}
.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)}
.regbtn{width:100%;margin-top:8px}
.regnote{font-size:12.5px;color:var(--ink-mut);margin-top:14px}
.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}
.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)}
.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 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)}

/* ---- настройки ---- */
.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}
  .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 .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}
.sitemsg{margin:0 0 8px;padding:12px 16px;border-radius:10px;
  background:var(--amber-dim);border:1px solid var(--amber-line);
  color:var(--ink);font-size:14px}
.sitemsg--success{background:rgba(46,160,110,.12);border-color:rgba(46,160,110,.35)}
.sitemsg--error{background:var(--down-dim);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)}
.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}}

/* ============ ЭКРАН-ВХОД: заглушка → сайт по листанию (Павел 26.07) ====== */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.intro-gate{position:relative;width:100%;height:100vh;height:100svh;
  background:#0b1017;z-index:1;overflow:hidden}
.intro-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* призыв листать — плавно покачивается, гаснет при reduced-motion */
.intro-enter{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);
  z-index:2;display:inline-flex;flex-direction:column;align-items:center;gap:4px;
  color:#8b93a0;font:500 11px/1.4 "JetBrains Mono",monospace;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;padding:8px 12px;
  transition:color .2s}
.intro-enter:hover{color:#f5b942}
.intro-enter svg{animation:intro-bob 1.8s ease-in-out infinite}
@keyframes intro-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media (prefers-reduced-motion:reduce){.intro-enter svg{animation:none}}
/* сайт под заглушкой поднимается над ней при листании */
#site{position:relative;z-index:2}
/* JS-режим: заглушка — фиксированный оверлей поверх сайта и уезжает вверх
   одним куском по первому жесту вниз. Без JS (нет .js) — обычный скролл выше. */
.js .intro-gate{position:fixed;inset:0;z-index:60;
  transition:transform .95s cubic-bezier(.7,0,.28,1);will-change:transform}
.js .intro-gate.intro-up{transform:translate3d(0,-100%,0)}
html.intro-locked,html.intro-locked body{overflow:hidden}
@media (prefers-reduced-motion:reduce){.js .intro-gate{transition:none}}

/* ============ РЯД СОЦСЕТЕЙ (общий: сайт, врачебная зона, кабинеты) ======
   Иконки-«чипы» без подписей, 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}
