/* ==========================================================================
   SubNews — стили публичной части
   «Главные новости коротко. И чем всё закончилось.»

   Порядок: шрифты → токены → база → раскладка → шапка → общие элементы →
   компоненты (по алфавиту смысла) → страницы → подвал → движение/печать.
   Классы — BEM: .block__element--modifier. Состояния — .is-* и aria-*.
   Описание дизайна — design/DESIGN.md
   ========================================================================== */

/* ---------- Шрифты: переменные woff2, кириллица + латиница ---------- */
@font-face{font-family:"Golos Text";font-style:normal;font-weight:400 800;font-display:swap;
  src:url("../fonts/golos-cyrillic.2b8fbbb33a14.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Golos Text";font-style:normal;font-weight:400 800;font-display:swap;
  src:url("../fonts/golos-latin.f57df9832ab8.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Oswald;font-style:normal;font-weight:400 700;font-display:swap;
  src:url("../fonts/oswald-cyrillic.e4645718d3b4.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Oswald;font-style:normal;font-weight:400 700;font-display:swap;
  src:url("../fonts/oswald-latin.5f49329007f1.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- Токены: светлая тема ---------- */
:root{
  color-scheme:light;

  --bg:#F3F5F8;
  --surface:#FFFFFF;
  --surface-2:#EAEEF3;
  --ink:#121A26;
  --ink-2:#465163;
  --ink-3:#5F6B7D;
  --line:#DCE1E8;
  --line-strong:#C3CBD6;
  --accent:#1D5BD6;
  --accent-strong:#1D5BD6;
  --accent-hover:#1749B0;
  --accent-soft:#E7EEFC;
  --on-accent:#FFFFFF;
  --nav-bg:#172131;
  --nav-ink:#C5CFDC;
  --nav-ink-hover:#FFFFFF;
  --breaking:#D42A2F;
  --memory:#FFE98A;
  --memory-soft:#FFF7D1;
  --memory-edge:#E0A100;
  --backdrop:rgba(10,16,25,.55);
  --shadow-pop:0 20px 60px -12px rgba(16,26,40,.35),0 2px 8px rgba(16,26,40,.08);
  --hatch:repeating-linear-gradient(-45deg,var(--line-strong) 0 1.5px,transparent 1.5px 6px);

  /* вердикты обещаний */
  --v-done:#18794A;   --v-done-bg:#E2F4E9;
  --v-failed:#C0262F; --v-failed-bg:#FCE6E7;
  --v-partial:#A15C00;--v-partial-bg:#FFF0D4;
  --v-postponed:#5B45B8;--v-postponed-bg:#EEEAFB;
  --v-nodata:#5F6B7D; --v-nodata-bg:#ECEFF3;
  --v-pending:#1D5BD6;

  /* статусы сюжетов */
  --st-developing:#1D5BD6;
  --st-awaiting:#A15C00;
  --st-closed:#18794A;
  --st-quiet:#5F6B7D;

  /* рубрики: насколько осветлять цвет рубрики для текста */
  --cat-lift:0%;
  --ph-shade:#0B1220;

  /* показ элементов по теме (иконки переключателя) */
  --only-light:inline-block;
  --only-dark:none;

  /* типографика */
  --font-text:"Golos Text",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-display:Oswald,"Arial Narrow","Roboto Condensed",sans-serif-condensed,Impact,sans-serif;
  --fs-xs:.78rem;
  --fs-sm:.875rem;
  --fs-base:1rem;
  --fs-md:1.125rem;
  --fs-lg:clamp(1.19rem,1.1rem + .4vw,1.375rem);
  --fs-xl:clamp(1.4rem,1.2rem + .9vw,1.875rem);
  --fs-2xl:clamp(1.65rem,1.3rem + 1.6vw,2.5rem);
  --fs-3xl:clamp(1.9rem,1.35rem + 2.6vw,3.25rem);

  /* отступы и радиусы */
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;
  --gutter:16px;
  --r-sm:6px;--r-md:10px;--r-lg:16px;--r-img:8px;--r-pill:999px;
  --wrap:1240px;
  --header-h:64px;
}

/* ---------- Токены: тёмная тема (выбор пользователя или системная) ---------- */
[data-theme=dark]{
  color-scheme:dark;
  --bg:#0F1622;--surface:#161F2D;--surface-2:#1E2938;
  --ink:#E7ECF3;--ink-2:#B0BAC8;--ink-3:#8E9AAB;
  --line:#2A3647;--line-strong:#3A4859;
  --accent:#6E9BF5;--accent-strong:#3468D8;--accent-hover:#4A7BE6;--accent-soft:#1B2B4A;--on-accent:#FFFFFF;
  --nav-bg:#0A1019;--nav-ink:#AEB9C8;--nav-ink-hover:#FFFFFF;
  --breaking:#C93A40;
  --memory:#5A4A12;--memory-soft:#2B2614;--memory-edge:#E8B730;
  --backdrop:rgba(0,0,0,.65);
  --shadow-pop:0 20px 60px -12px rgba(0,0,0,.7),0 0 0 1px var(--line);
  --v-done:#4CC38A;--v-done-bg:#14301F;
  --v-failed:#F2777D;--v-failed-bg:#3A1A1D;
  --v-partial:#F0B154;--v-partial-bg:#33260F;
  --v-postponed:#A99BF0;--v-postponed-bg:#251F42;
  --v-nodata:#9AA6B6;--v-nodata-bg:#222C3A;
  --v-pending:#6E9BF5;
  --st-developing:#6E9BF5;--st-awaiting:#F0B154;--st-closed:#4CC38A;--st-quiet:#9AA6B6;
  --cat-lift:52%;--ph-shade:#05080D;
  --only-light:none;--only-dark:inline-block;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]){
    color-scheme:dark;
    --bg:#0F1622;--surface:#161F2D;--surface-2:#1E2938;
    --ink:#E7ECF3;--ink-2:#B0BAC8;--ink-3:#8E9AAB;
    --line:#2A3647;--line-strong:#3A4859;
    --accent:#6E9BF5;--accent-strong:#3468D8;--accent-hover:#4A7BE6;--accent-soft:#1B2B4A;--on-accent:#FFFFFF;
    --nav-bg:#0A1019;--nav-ink:#AEB9C8;--nav-ink-hover:#FFFFFF;
    --breaking:#C93A40;
    --memory:#5A4A12;--memory-soft:#2B2614;--memory-edge:#E8B730;
    --backdrop:rgba(0,0,0,.65);
    --shadow-pop:0 20px 60px -12px rgba(0,0,0,.7),0 0 0 1px var(--line);
    --v-done:#4CC38A;--v-done-bg:#14301F;
    --v-failed:#F2777D;--v-failed-bg:#3A1A1D;
    --v-partial:#F0B154;--v-partial-bg:#33260F;
    --v-postponed:#A99BF0;--v-postponed-bg:#251F42;
    --v-nodata:#9AA6B6;--v-nodata-bg:#222C3A;
    --v-pending:#6E9BF5;
    --st-developing:#6E9BF5;--st-awaiting:#F0B154;--st-closed:#4CC38A;--st-quiet:#9AA6B6;
    --cat-lift:52%;--ph-shade:#05080D;
    --only-light:none;--only-dark:inline-block;
  }
}

/* ---------- Цвета рубрик (ставятся классом на любой блок) ---------- */
.cat-politics{--cat:#3B4FA8}
.cat-economy{--cat:#0A7864}
.cat-society{--cat:#B0446A}
.cat-culture{--cat:#7E4CC0}
.cat-science{--cat:#176FA3}
.cat-incidents{--cat:#C2362E}
.cat-world{--cat:#2E7650}
.cat-sport{--cat:#A84F0E}
.cat-other{--cat:#566275}

@media (min-width:768px){:root{--gutter:24px}}
@media (min-width:1280px){:root{--gutter:32px}}

/* ---------- База ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--sticky-h) + var(--s-4))}
:root{--sticky-h:64px}
@media (min-width:768px){:root{--sticky-h:104px}}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:400 var(--fs-base)/1.55 var(--font-text);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3,h4{font-weight:700;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}
p{text-wrap:pretty}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
::selection{background:var(--memory);color:var(--ink)}
[hidden]{display:none !important}
time{font-variant-numeric:tabular-nums}

.icon{width:20px;height:20px;flex:none;display:inline-block;vertical-align:middle}
.icon--sm{width:16px;height:16px}
.icon--lg{width:24px;height:24px}

.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:var(--s-4);top:-100px;z-index:200;padding:var(--s-3) var(--s-4);background:var(--accent-strong);color:var(--on-accent);border-radius:var(--r-md);font-weight:600}
.skip-link:focus{top:var(--s-3)}

/* ---------- Раскладка ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.page{padding-block:var(--s-5) var(--s-8)}
.layout{display:grid;gap:var(--s-7);grid-template-columns:minmax(0,1fr)}
.layout__main,.layout__aside{min-width:0;display:flex;flex-direction:column;gap:var(--s-7)}
@media (min-width:1024px){
  .layout{grid-template-columns:minmax(0,1fr) 320px;gap:var(--s-6) 40px}
  .layout__aside--sticky{position:sticky;top:calc(var(--sticky-h) + var(--s-4));align-self:start}
}
@media (min-width:1280px){.layout{gap:var(--s-6) 56px}}
.stack{display:flex;flex-direction:column;gap:var(--s-5)}
.grid-2{display:grid;gap:var(--s-6) var(--s-5);grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ==========================================================================
   Шапка
   ========================================================================== */
/* component: masthead */
.masthead{background:var(--surface);position:relative;z-index:30}
/* закреплённая шапка: логотип, разделы, поиск и рубрики остаются сверху; строка с датой (.masthead__top) уезжает */
.site-header{position:sticky;top:0;z-index:40;transition:box-shadow .2s}
.is-scrolled .site-header{box-shadow:0 2px 12px rgba(10,20,35,.12)}
.site-header .masthead__main,.site-header .brand__mark,.site-header .brand__name{transition:min-height .2s,width .2s,height .2s,font-size .2s}
.is-scrolled .site-header .masthead__main{min-height:56px}
.is-scrolled .site-header .brand__slogan{display:none}
.is-scrolled .site-header .brand__mark{width:34px;height:34px}
.is-scrolled .site-header .brand__name{font-size:1.6rem}
/* на телефоне рубрики при прокрутке прячутся (они есть в меню-«бургере»), чтобы шапка не занимала пол-экрана */
@media (max-width:767px){.is-scrolled .site-header .rubrics{display:none}}
@media (prefers-reduced-motion:reduce){.site-header,.site-header *{transition:none!important}}
.masthead__top{display:none;border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-3)}
.masthead__top-row{display:flex;align-items:center;gap:var(--s-5);min-height:40px}
.masthead__date{margin-right:auto;text-transform:none}
.masthead__top a{color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}
.masthead__top a:hover{color:var(--accent)}
.masthead__main{display:flex;align-items:center;gap:var(--s-3);min-height:var(--header-h)}
@media (min-width:768px){
  .masthead__top{display:block}
  .masthead__main{min-height:88px;gap:var(--s-5)}
  .masthead__main .theme-toggle{display:none}
}

/* логотип */
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);margin-right:auto;min-width:0}
.brand:hover{text-decoration:none}
.brand__mark{width:36px;height:36px;flex:none}
.brand__text{display:flex;flex-direction:column;min-width:0}
.brand__name{font:400 1.75rem/1 var(--font-display);letter-spacing:.005em;color:var(--ink)}
.brand__name b{font-weight:600}
.brand__slogan{display:none;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.3;margin-top:5px}
@media (min-width:600px){
  .brand__slogan{display:block}
}
@media (min-width:768px){
  .brand{gap:14px}
  .brand__mark{width:48px;height:48px}
  .brand__name{font-size:2.35rem}
}

/* разделы продукта в шапке (десктоп) */
.sections{display:none}
@media (min-width:1024px){
  .sections{display:flex;gap:var(--s-1)}
  .sections__link{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--r-md);font-weight:600;font-size:.95rem;color:var(--ink)}
  .sections__link .icon{color:var(--accent)}
  .sections__link:hover{background:var(--accent-soft);text-decoration:none}
  .sections__link[aria-current=page]{background:var(--accent-soft);color:var(--accent)}
}

/* кнопки-иконки */
.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border:0;border-radius:var(--r-md);background:transparent;color:var(--ink)}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn .icon{width:22px;height:22px}
.icon-btn--menu{margin-left:-10px}
@media (min-width:1024px){.icon-btn--menu{display:none}}
.theme-toggle .icon-moon{display:var(--only-light)}
.theme-toggle .icon-sun{display:var(--only-dark)}
.theme-toggle--text{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:0;color:var(--ink-2);font-size:var(--fs-sm)}
.theme-toggle--text:hover{color:var(--accent)}
.theme-toggle--text .label-dark{display:var(--only-light)}
.theme-toggle--text .label-light{display:var(--only-dark)}

/* поиск */
.search-panel{border-top:1px solid var(--line);background:var(--surface)}
.search-form{display:flex;gap:var(--s-2);padding-block:var(--s-3)}
.search-form__input{flex:1;min-width:0;height:48px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--bg);font-size:var(--fs-md)}
.search-form__input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}

/* component: rubrics — тёмная полоса рубрик (наследие Sahifa) */
.rubrics{background:var(--nav-bg);color:var(--nav-ink);position:relative}
.rubrics__list{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
.rubrics__list::-webkit-scrollbar{display:none}
.rubrics__link{display:flex;align-items:center;gap:8px;white-space:nowrap;scroll-snap-align:start;
  height:48px;padding:0 12px;font-size:.94rem;font-weight:500;color:var(--nav-ink);border-bottom:3px solid transparent;border-top:3px solid transparent}
.rubrics__link .icon{width:18px;height:18px;opacity:.8}
.rubrics__link:hover{color:var(--nav-ink-hover);text-decoration:none;background:rgba(255,255,255,.05)}
.rubrics__link[aria-current=page]{color:#fff;border-bottom-color:var(--accent-strong);background:rgba(255,255,255,.06)}
.rubrics__item:first-child .rubrics__link{padding-left:0}
@media (min-width:1024px){
  .rubrics__list{overflow:visible;-webkit-mask-image:none;mask-image:none;justify-content:space-between}
  .rubrics__item:first-child .rubrics__link{padding-left:12px;margin-left:-12px}
}

/* component: ticker — «Срочно» */
.ticker{background:var(--surface);border-bottom:1px solid var(--line)}
.ticker__row{display:flex;align-items:stretch;min-height:44px}
.ticker__label{flex:none;display:flex;align-items:center;gap:8px;padding:0 14px;margin-left:calc(var(--gutter) * -1);padding-left:var(--gutter);
  background:var(--breaking);color:#fff;font:600 .95rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.06em;
  clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%);padding-right:22px}
@media (min-width:1240px){.ticker__label{margin-left:0;padding-left:14px;clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%)}}
.ticker__viewport{flex:1;min-width:0;overflow:hidden;display:flex;align-items:center;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 32px),transparent)}
.ticker__track{display:flex;width:max-content;animation:ticker var(--ticker-duration,70s) linear infinite}
.ticker:hover .ticker__track,.ticker:focus-within .ticker__track{animation-play-state:paused}
.ticker__group{display:flex;flex:none}
.ticker__item{display:flex;align-items:baseline;gap:10px;padding:0 var(--s-6) 0 var(--s-4);white-space:nowrap;font-size:.94rem}
.ticker__time{font:500 .9rem/1 var(--font-display);color:var(--breaking);letter-spacing:.02em}
.ticker__item a{font-weight:500}
@keyframes ticker{to{transform:translateX(-50%)}}

/* component: drawer — мобильное меню */
.drawer{position:fixed;inset:0;z-index:100;display:flex;visibility:hidden}
.drawer.is-open{visibility:visible}
.drawer__backdrop{position:absolute;inset:0;background:var(--backdrop);opacity:0;transition:opacity .2s;border:0;padding:0;cursor:default}
.drawer__panel{position:relative;width:min(360px,88vw);height:100%;overflow-y:auto;background:var(--surface);box-shadow:var(--shadow-pop);
  transform:translateX(-102%);transition:transform .25s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;padding:var(--s-3) var(--s-4) var(--s-6)}
.drawer.is-open .drawer__backdrop{opacity:1}
.drawer.is-open .drawer__panel{transform:none}
.drawer__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-3)}
.drawer__title{font:600 1rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.drawer__group{padding-block:var(--s-3);border-top:1px solid var(--line)}
.drawer__group-title{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:var(--s-2)}
.drawer__link{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:500}
.drawer__link .icon{color:var(--accent)}
.drawer__link[aria-current=page]{color:var(--accent)}
.drawer__link.theme-toggle--text{font-size:1rem;font-weight:500;color:var(--ink);width:100%}
.drawer__grid{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--s-3)}
.drawer__grid .drawer__link .icon{color:var(--cat);color:color-mix(in srgb,var(--cat),#fff var(--cat-lift))}
body.has-overlay{overflow:hidden}

/* ==========================================================================
   Общие элементы
   ========================================================================== */
/* component: btn */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:var(--r-md);
  font-weight:600;font-size:.95rem;line-height:1.2;text-align:center;background:var(--surface-2);color:var(--ink);transition:background-color .15s,border-color .15s}
.btn:hover{text-decoration:none;background:var(--line)}
.btn:active{transform:translateY(1px)}
.btn[disabled],.btn[aria-busy=true]{opacity:.6;cursor:progress}
.btn--primary{background:var(--accent-strong);color:var(--on-accent)}
.btn--primary:hover{background:var(--accent-hover)}
.btn--ghost{background:transparent;border-color:var(--line-strong)}
.btn--ghost:hover{background:var(--surface-2)}
.btn--danger{background:transparent;border-color:var(--v-failed);color:var(--v-failed)}
.btn--danger:hover{background:var(--v-failed-bg)}
.btn--telegram{background:#229ED9;color:#fff}
.btn--telegram:hover{background:#1A8BC2}
.btn--on-dark{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:#fff}
.btn--on-dark:hover{background:rgba(255,255,255,.16)}
.btn--sm{min-height:36px;padding:0 12px;font-size:var(--fs-sm)}
.btn--block{width:100%}
.btn .icon{width:18px;height:18px}

/* component: follow-btn — «Следить за сюжетом» */
.follow-btn{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 6px 0 16px;border:0;border-radius:var(--r-pill);
  background:var(--accent-strong);color:var(--on-accent);font-weight:600;font-size:.95rem;white-space:nowrap}
.follow-btn:hover{background:var(--accent-hover);text-decoration:none}
/* браузер уже следит за сюжетом (push, localStorage subnews_follow) */
.follow-btn.is-following{background:var(--v-done-bg);color:var(--v-done);box-shadow:inset 0 0 0 1.5px var(--v-done)}
.follow-btn.is-following .follow-btn__count{background:color-mix(in srgb,var(--v-done) 14%,transparent)}
.follow-btn .icon{width:19px;height:19px}
.follow-btn__count{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border-radius:var(--r-pill);background:rgba(255,255,255,.18);font:500 .95rem/1 var(--font-display);letter-spacing:.02em}
.follow-btn--lg{min-height:56px;padding-left:22px;padding-right:8px;font-size:1.06rem}
.follow-btn--lg .follow-btn__count{min-height:40px;padding:0 14px}
.follow-btn--lg .icon{width:22px;height:22px}
.follow-btn--plain{padding-right:18px}

/* component: section-head — заголовок блока: Oswald капслоком + штриховка (наследие Sahifa) */
.section-head{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}
.section-head__title{display:flex;align-items:center;gap:10px;font:600 1.3rem/1.1 var(--font-display);text-transform:uppercase;letter-spacing:.03em;color:var(--ink)}
.section-head__title a:hover{text-decoration:none;color:var(--accent)}
.section-head__title .icon{width:22px;height:22px;color:var(--accent)}
.section-head::after{content:"";flex:1;order:1;height:8px;background:var(--hatch);opacity:.9;min-width:24px}
.section-head__more{order:2;flex:none;display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-sm);font-weight:600;color:var(--accent)}
.section-head__more .icon{width:16px;height:16px}
.section-head--cat .section-head__title{color:var(--cat);color:color-mix(in srgb,var(--cat),#fff var(--cat-lift))}
.section-head--cat .section-head__title .icon{color:inherit}
.section-head--lg .section-head__title{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.25rem)}
.section-note{color:var(--ink-2);margin:calc(var(--s-2) * -1) 0 var(--s-4);max-width:62ch}

/* component: media — картинка с фиксированным соотношением или заглушка рубрики */
.media{position:relative;display:block;margin:0;overflow:hidden;border-radius:var(--r-img);aspect-ratio:16/9;container-type:inline-size;
  background:var(--surface-2);background:linear-gradient(135deg,var(--cat,#566275),color-mix(in srgb,var(--cat,#566275) 45%,var(--ph-shade)))}
.media--4x3{aspect-ratio:4/3}
.media--3x2{aspect-ratio:3/2}
.media--1x1{aspect-ratio:1}
.media--21x9{aspect-ratio:21/9}
.media__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;color:transparent}
.media--ph::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.07) 0 2px,transparent 2px 10px)}
.media__ph-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(22px,22cqi,84px);height:clamp(22px,22cqi,84px);color:#fff;opacity:.92}
.media--ph::after{content:"";position:absolute;left:50%;top:50%;width:clamp(40px,40cqi,152px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:max(1.5px,.6cqi) solid rgba(255,255,255,.35)}
.media__credit{font-size:var(--fs-xs);color:var(--ink-3);margin-top:var(--s-2);line-height:1.4}

/* component: cat-label — метка рубрики */
.cat-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600;line-height:1.2;
  color:var(--cat,var(--ink-2));color:color-mix(in srgb,var(--cat,#566275),#fff var(--cat-lift))}
.cat-label::before{content:"";width:8px;height:8px;border-radius:2px;background:currentColor;flex:none}
a.cat-label:hover{text-decoration:underline}

/* мета-строка: элементы через отступ, без разделителей-точек */
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:var(--fs-sm);color:var(--ink-3);line-height:1.35}
.meta__item{display:inline-flex;align-items:center;gap:5px}
.meta__item .icon{width:16px;height:16px}
.meta a:hover{color:var(--accent)}
.meta__story{color:var(--accent);font-weight:500;position:relative;z-index:2}
.meta__story .icon{color:var(--accent)}

/* component: story-status — статус сюжета */
.story-status{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm);font-weight:600;line-height:1;color:var(--st);white-space:nowrap;--st:var(--st-developing)}
.story-status::before{content:"";width:10px;height:10px;border-radius:50%;flex:none;box-sizing:border-box}
.story-status--developing::before{background:var(--st);box-shadow:0 0 0 0 var(--st);animation:pulse 2.2s ease-out infinite}
.story-status--awaiting{--st:var(--st-awaiting)}
.story-status--awaiting::before{border:2.5px solid var(--st)}
.story-status--closed{--st:var(--st-closed)}
.story-status--closed::before{background:var(--st)}
.story-status--quiet{--st:var(--st-quiet)}
.story-status--quiet::before{border:2px dashed var(--st)}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--st) 55%,transparent)}70%,100%{box-shadow:0 0 0 7px transparent}}

/* component: verdict — вердикт обещания */
.verdict{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 8px;border-radius:var(--r-pill);font-size:.84rem;font-weight:600;line-height:1.1;white-space:nowrap;
  color:var(--vc);background:var(--vb);border:1.5px solid transparent}
.verdict .icon{width:16px;height:16px}
.verdict--done{--vc:var(--v-done);--vb:var(--v-done-bg)}
.verdict--failed{--vc:var(--v-failed);--vb:var(--v-failed-bg)}
.verdict--partial{--vc:var(--v-partial);--vb:var(--v-partial-bg)}
.verdict--postponed{--vc:var(--v-postponed);--vb:var(--v-postponed-bg)}
.verdict--nodata{--vc:var(--v-nodata);--vb:var(--v-nodata-bg)}
.verdict--pending{--vc:var(--v-pending);--vb:transparent;border:1.5px dashed currentColor}

/* бейджи */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:700;line-height:1.2;white-space:nowrap}
.badge--new{background:var(--memory);color:var(--ink)}
.badge--breaking{background:var(--breaking);color:#fff}
.badge--count{background:var(--surface-2);color:var(--ink-2)}

/* хлебные крошки */
.crumbs{display:flex;flex-wrap:wrap;gap:4px;font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:var(--s-4)}
.crumbs li{display:inline-flex;align-items:center;gap:4px}
.crumbs li+li::before{content:"/";color:var(--line-strong)}
.crumbs a:hover{color:var(--accent)}

/* component: filters — фильтры-ссылки */
.filters{display:flex;flex-direction:column;gap:var(--s-3);margin-bottom:var(--s-6)}
.filters__group{display:flex;align-items:center;gap:var(--s-2);overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);padding-block:2px}
.filters__group::-webkit-scrollbar{display:none}
.filters__label{flex:none;font-size:var(--fs-sm);color:var(--ink-3);min-width:64px}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line-strong);
  background:var(--surface);font-size:var(--fs-sm);font-weight:500;color:var(--ink);white-space:nowrap}
.chip:hover{border-color:var(--accent);text-decoration:none}
.chip[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.chip__count{font:500 .85rem/1 var(--font-display);color:var(--ink-3)}
.chip[aria-current=page] .chip__count{color:inherit;opacity:.75}
.chip .story-status{font-size:inherit;font-weight:inherit;color:inherit}
@media (min-width:768px){.filters__group{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0}}

/* component: pager */
.pager{display:flex;align-items:center;justify-content:center;gap:var(--s-2);margin-top:var(--s-7);flex-wrap:wrap}
.pager__link{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);font:500 1rem/1 var(--font-display)}
.pager__link:hover{border-color:var(--accent);text-decoration:none}
.pager__link[aria-current=page]{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}
.pager__link--wide{gap:6px;display:inline-flex;font:600 var(--fs-sm)/1 var(--font-text)}
.pager__gap{color:var(--ink-3)}

/* аватар: фото или инициалы */
.avatar{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--surface-2);color:var(--ink-2);
  font:500 1rem/1 var(--font-display);letter-spacing:.02em;border:1px solid var(--line)}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar--sm{width:32px;height:32px;font-size:.8rem}
.avatar--lg{width:88px;height:88px;font-size:2rem}
.avatar--org{border-radius:var(--r-md)}

/* полоса точности */
.meter{display:flex;align-items:center;gap:10px}
.meter__bar{flex:1;height:8px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden;min-width:60px}
.meter__fill{display:block;height:100%;width:var(--value,0%);background:var(--v-done);border-radius:inherit}
.meter__value{font:500 1.05rem/1 var(--font-display);min-width:3.2ch;text-align:right}
.meter--low .meter__fill{background:var(--v-failed)}
.meter--mid .meter__fill{background:var(--v-partial)}

/* ==========================================================================
   Компоненты контента
   ========================================================================== */

/* component: news-card — новость. Модификаторы: --lead, --row, --text */
.news-card{position:relative;display:grid;gap:var(--s-3);align-content:start}
.news-card__media{display:block;position:relative;z-index:0}
.news-card__body{display:flex;flex-direction:column;gap:6px;min-width:0}
.news-card__title{font-size:var(--fs-md);line-height:1.3;font-weight:650;letter-spacing:-.005em}
.news-card__title a::after{content:"";position:absolute;inset:0;z-index:1}
.news-card__title a:hover{text-decoration:none}
.news-card:hover .news-card__title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.news-card .cat-label,.news-card .meta a{position:relative;z-index:2}
.news-card__lead{color:var(--ink-2);font-size:var(--fs-base);line-height:1.5}
.news-card--lead .news-card__title{font-size:var(--fs-xl);line-height:1.2;font-weight:700}
.news-card--row{grid-template-columns:104px minmax(0,1fr);gap:var(--s-3) var(--s-4);align-items:start}
.news-card--row .news-card__title{font-size:1rem;line-height:1.35;font-weight:600}
@media (min-width:600px){.news-card--row{grid-template-columns:148px minmax(0,1fr)}.news-card--row .news-card__title{font-size:var(--fs-md)}}
.news-card--row-sm{grid-template-columns:88px minmax(0,1fr)}
@media (min-width:600px){.news-card--row-sm{grid-template-columns:104px minmax(0,1fr)}.news-card--row-sm .news-card__title{font-size:1rem}}
.news-card--text .news-card__title{font-size:var(--fs-md)}

.news-list{display:flex;flex-direction:column}
/* «Главное за сутки» на главной: на телефоне картинка над заголовком во всю ширину, на планшете — по две в ряд,
   на компьютере — обычный список с миниатюрой слева */
.news-list--grid .news-card--row{grid-template-columns:minmax(0,1fr);gap:var(--s-3)}
.news-list--grid .news-card--row .media{aspect-ratio:16/9}
.news-list--grid .news-card--row .news-card__title{font-size:var(--fs-lg)}
@media (min-width:600px) and (max-width:1023px){
  .news-list--grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-6) var(--s-5)}
  .news-list--grid>li,.news-list--grid>li:first-child{padding:0;border-top:0}
  .news-list--grid .news-card--row .news-card__title{font-size:var(--fs-md)}
}
@media (min-width:1024px){
  .news-list--grid .news-card--row{grid-template-columns:148px minmax(0,1fr);gap:var(--s-3) var(--s-4)}
  .news-list--grid .news-card--row .media{aspect-ratio:4/3}
  .news-list--grid .news-card--row .news-card__title{font-size:var(--fs-md)}
}
.news-list>li{padding-block:var(--s-4);border-top:1px solid var(--line)}
.news-list>li:first-child{border-top:0;padding-top:0}

/* лента новостей на странице рубрики: дата слева на десктопе */
.feed{display:flex;flex-direction:column}
.feed__item{padding-block:var(--s-5);border-top:1px solid var(--line)}
.feed__item:first-child{border-top:0;padding-top:0}
.feed__day{font:600 1rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);padding:var(--s-5) 0 var(--s-3);border-top:1px solid var(--line)}
.feed__day:first-child{border-top:0;padding-top:0}
@media (max-width:599px){.feed .news-card__lead{display:none}}

/* component: story-hero — главный сюжет дня */
.story-hero{display:grid;gap:var(--s-5);padding-block:var(--s-5) var(--s-6)}
.story-hero__media{display:block}
.story-hero__media .media{border-radius:var(--r-lg)}
.story-hero__body{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}
.story-hero__top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:var(--fs-sm);color:var(--ink-3)}
.story-hero__title{font-size:var(--fs-2xl);line-height:1.12;letter-spacing:-.02em}
.story-hero__title a:hover{color:var(--accent);text-decoration:none}
.story-hero__summary{color:var(--ink-2);font-size:var(--fs-md);line-height:1.5;max-width:60ch}
.story-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-5);margin-top:var(--s-1)}
@media (min-width:1024px){
  .story-hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s-6);align-items:start;padding-block:var(--s-6) var(--s-7)}
  .story-hero__media .media{aspect-ratio:4/3}
}
@media (min-width:1280px){.story-hero{gap:40px}}

/* component: thread — мини-нить событий (главная, плашка в новости) */
.thread{position:relative;display:flex;flex-direction:column;gap:var(--s-3);padding-left:26px}
.thread::before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:var(--line-strong);border-radius:2px}
.thread__item{position:relative;display:flex;flex-direction:column;gap:2px}
.thread__item::before{content:"";position:absolute;left:-26px;top:5px;width:16px;height:16px;border-radius:50%;background:var(--surface);border:2.5px solid var(--line-strong);box-sizing:border-box}
.thread:not(:has([aria-current])) .thread__item:first-child::before{border-color:var(--accent);background:var(--accent)}
.thread__item[aria-current=step]::before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.thread__item--outcome::before{border-color:var(--v-done);background:var(--v-done)}
.thread__time{font:500 .85rem/1.2 var(--font-display);letter-spacing:.03em;color:var(--ink-3);text-transform:uppercase}
.thread__text{font-size:var(--fs-base);line-height:1.4;font-weight:500}
.thread__item[aria-current=step] .thread__text{font-weight:700}
.thread__item a.thread__text:hover{color:var(--accent)}
.thread__more{font-size:var(--fs-sm);font-weight:600;color:var(--accent)}
.thread--quiet .thread__item:first-child::before{border-color:var(--line-strong);background:var(--surface)}

/* component: outcome — развязка «вопрос → ответ», нить от кольца к точке */
.outcome{--og:var(--s-4);--ox:-26px;position:relative;display:flex;flex-direction:column;gap:var(--og);padding:var(--s-5) var(--s-5) var(--s-5) 56px;background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--line)}
.outcome__q::after,.outcome__a::after{content:"";position:absolute;left:var(--ox);width:2px}
.outcome__q::after{top:22px;bottom:calc(var(--og) * -1);background:var(--line-strong)}
.outcome__a::after{top:calc(var(--og) * -1);height:calc(var(--og) + 4px);background:var(--vc,var(--v-done))}
.outcome__q,.outcome__a{position:relative;display:flex;flex-direction:column;gap:4px}
.outcome__q::before,.outcome__a::before{z-index:1}
.outcome__q::before,.outcome__a::before{content:"";position:absolute;left:-34px;top:2px;width:18px;height:18px;border-radius:50%;box-sizing:border-box}
.outcome__q::before{border:2.5px solid var(--ink-3);background:var(--surface)}
.outcome__a::before{background:var(--vc,var(--v-done));box-shadow:0 0 0 4px var(--vb,var(--v-done-bg))}
.outcome__when{font-size:var(--fs-sm);color:var(--ink-3)}
.outcome__question{font-size:var(--fs-md);font-weight:500;line-height:1.35;color:var(--ink-2)}
.outcome__answer{font-size:var(--fs-lg);font-weight:700;line-height:1.3}
.outcome__answer a:hover{color:var(--accent);text-decoration:none}
.outcome__detail{color:var(--ink-2);line-height:1.5}
.outcome__wait{align-self:flex-start;display:inline-flex;align-items:baseline;gap:6px;margin-left:-28px;padding:3px 10px 3px 8px;border-radius:var(--r-pill);background:var(--surface-2);font-size:var(--fs-sm);color:var(--ink-2);position:relative}
.outcome__wait b{font:500 1.05rem/1 var(--font-display);color:var(--ink)}
.outcome__foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--line);font-size:var(--fs-sm)}
.outcome__story{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:600}
.outcome--compact{--og:var(--s-3);--ox:-24px;padding:var(--s-4) var(--s-4) var(--s-4) 48px}
.outcome--compact .outcome__q::before,.outcome--compact .outcome__a::before{left:-31px;width:16px;height:16px}
.outcome--compact .outcome__question{font-size:var(--fs-base)}
.outcome--compact .outcome__answer{font-size:var(--fs-md)}
.outcome--compact .outcome__wait{margin-left:-22px}
.outcome--failed{--vc:var(--v-failed);--vb:var(--v-failed-bg)}
.outcome--partial{--vc:var(--v-partial);--vb:var(--v-partial-bg)}
.outcomes-grid{display:grid;gap:var(--s-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.outcomes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.outcomes-feed{display:flex;flex-direction:column;gap:var(--s-5)}

/* component: deadline — открытый вопрос со сроком («Скоро развязка», «Ждём») */
.deadlines{display:grid;gap:var(--s-3);grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){.deadlines--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.deadlines--strip{grid-auto-flow:column;grid-auto-columns:min(82%,300px);grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;
  margin-inline:calc(var(--gutter) * -1);padding:2px var(--gutter) var(--s-3)}
.deadlines--strip>*{scroll-snap-align:start}
@media (min-width:768px){
  .deadlines--strip{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;margin-inline:0;padding-inline:0}
}
@media (min-width:1280px){.deadlines--strip.deadlines--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.deadline{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-3) var(--s-4);align-items:start;padding:var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.deadline__date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:58px;height:62px;border-radius:var(--r-md);border:2px dashed var(--line-strong);text-align:center;line-height:1}
.deadline__day{font:600 1.65rem/1 var(--font-display)}
.deadline__month{font:500 .82rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-top:4px}
.deadline__date--month .deadline__day{font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em}
.deadline__body{display:flex;flex-direction:column;gap:6px;min-width:0}
.deadline__q{font-weight:600;line-height:1.35}
.deadline__q a::after{content:"";position:absolute;inset:0}
.deadline__q a:hover{text-decoration:none;color:var(--accent)}
.deadline__left{font-size:var(--fs-sm);font-weight:600;color:var(--accent)}
.deadline__story{font-size:var(--fs-sm);color:var(--ink-3)}
.deadline--soon .deadline__date{border-color:var(--accent);border-style:solid}
.deadline--soon .deadline__day{color:var(--accent)}
.deadline--today .deadline__date{border-style:solid;border-color:var(--accent-strong);background:var(--accent-strong);color:var(--on-accent)}
.deadline--today .deadline__month{color:inherit;opacity:.85}
.deadline--overdue{border-color:color-mix(in srgb,var(--v-failed) 45%,var(--line))}
.deadline--overdue .deadline__date{border-color:var(--v-failed);border-style:solid}
.deadline--overdue .deadline__day{color:var(--v-failed)}
.deadline--overdue .deadline__left{color:var(--v-failed)}
.deadline--flat{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:var(--s-4) 0}
.deadline--flat:first-child{border-top:0;padding-top:0}

/* component: promise — обещание / прогноз */
.promise{position:relative;display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.promise__head{display:flex;align-items:flex-start;gap:var(--s-3)}
.promise__who{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.promise__name{font-weight:700;line-height:1.25}
.promise__name:hover{color:var(--accent)}
.promise__role{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.35}
.promise__head .verdict{flex:none}
.promise__quote{position:relative;font-size:var(--fs-lg);line-height:1.38;font-weight:500;padding-left:var(--s-5);border-left:3px solid var(--vc,var(--line-strong))}
.layout__aside .promise__quote{font-size:var(--fs-md);padding-left:var(--s-4)}
.promise__quote p::before{content:"«"}
.promise__quote p::after{content:"»"}
.promise__kind{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:-8px}
.promise__head .promise__kind{margin:0;flex:1}
/* срок обещания — та же нить: кольцо «сказано» → точка «срок» */
.promise__span{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;font-size:var(--fs-sm)}
.promise__said,.promise__due{display:flex;flex-direction:column;line-height:1.25}
.promise__due{text-align:right}
.promise__span-label{color:var(--ink-3);font-size:var(--fs-xs)}
.promise__span-date{font:500 .98rem/1.2 var(--font-display);letter-spacing:.02em}
.promise__line{position:relative;height:2px;background:var(--line-strong);border-radius:2px}
.promise__line::before,.promise__line::after{content:"";position:absolute;top:50%;width:14px;height:14px;border-radius:50%;transform:translateY(-50%);box-sizing:border-box}
.promise__line::before{left:-2px;border:2.5px solid var(--ink-3);background:var(--surface)}
.promise__line::after{right:-2px;background:var(--vc,var(--line-strong))}
.promise__progress{position:absolute;left:0;top:0;bottom:0;width:var(--progress,0%);background:var(--v-pending);border-radius:2px}
.promise--pending .promise__line::after{background:var(--surface);border:2.5px dashed var(--v-pending)}
.promise__verdict-note{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--vb,var(--surface-2));line-height:1.5}
.promise__verdict-note b{color:var(--vc)}
.promise__foot{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);font-size:var(--fs-sm)}
.promise__foot a{display:inline-flex;align-items:center;gap:5px;color:var(--accent);font-weight:600}
.promise__foot .icon{width:16px;height:16px}
.promise--done{--vc:var(--v-done);--vb:var(--v-done-bg)}
.promise--failed{--vc:var(--v-failed);--vb:var(--v-failed-bg)}
.promise--partial{--vc:var(--v-partial);--vb:var(--v-partial-bg)}
.promise--postponed{--vc:var(--v-postponed);--vb:var(--v-postponed-bg)}
.promise--nodata{--vc:var(--v-nodata);--vb:var(--v-nodata-bg)}
.promise--pending{--vc:var(--v-pending);--vb:var(--accent-soft)}
.promises{display:grid;gap:var(--s-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.promises--2{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* компактный вердикт (главная, сайдбар) */
.verdict-list{display:flex;flex-direction:column}
.verdict-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-2);padding-block:var(--s-4);border-top:1px solid var(--line)}
.verdict-item:first-child{border-top:0;padding-top:0}
.verdict-item__who{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--ink-2)}
.verdict-item__who b{color:var(--ink);font-weight:600}
.verdict-item__quote{font-weight:600;line-height:1.35;font-size:1.03rem}
.verdict-item__quote a::after{content:"";position:absolute;inset:0}
.verdict-item__quote a:hover{color:var(--accent);text-decoration:none}
.verdict-item__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);font-size:var(--fs-sm);color:var(--ink-3)}
@media (min-width:600px){
  .verdict-item{grid-template-columns:minmax(0,1fr) auto;column-gap:var(--s-5)}
  .verdict-item .verdict{grid-column:2;grid-row:1 / span 3;align-self:start}
}

/* component: story-card — карточка сюжета */
.story-grid,.card-grid{display:grid;gap:var(--s-6) var(--s-5);grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){.story-grid,.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.story-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:768px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.story-card{position:relative;display:flex;flex-direction:column;gap:var(--s-3)}
.story-card__media{position:relative;display:block}
.story-card__new{position:absolute;left:10px;top:10px;z-index:2;font-size:.82rem;padding:5px 10px;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.story-card__top{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:var(--fs-sm);color:var(--ink-3)}
.story-card__title{font-size:var(--fs-lg);line-height:1.22}
.story-card__title a::after{content:"";position:absolute;inset:0;z-index:1}
.story-card__title a:hover{text-decoration:none}
.story-card:hover .story-card__title{color:var(--accent)}
.story-card__last{display:flex;gap:10px;font-size:.95rem;line-height:1.45;color:var(--ink-2)}
.story-card__last::before{content:"";flex:none;width:10px;height:10px;margin-top:6px;border-radius:50%;background:var(--accent)}
.story-card__last time{color:var(--ink-3);white-space:nowrap}
.story-card__counts{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--fs-sm);color:var(--ink-3)}
.story-card__counts span{display:inline-flex;align-items:center;gap:5px}
.story-card__counts .icon{width:16px;height:16px}
.story-card.has-new .story-card__last::before{background:var(--memory-edge);box-shadow:0 0 0 3px var(--memory)}

@media (min-width:1024px){.layout__aside .story-grid,.layout__aside .promises{grid-template-columns:minmax(0,1fr)}}
.method-notes{margin-top:var(--s-6)}

/* component: hot-story — «Горячие сюжеты» в сайдбаре (нумерация = место по активности) */
.hot-list{counter-reset:hot;display:flex;flex-direction:column}
.hot-story{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:var(--s-3);padding-block:var(--s-4);border-top:1px solid var(--line)}
.hot-story:first-child{border-top:0;padding-top:0}
.hot-story::before{counter-increment:hot;content:counter(hot);font:600 1.9rem/1 var(--font-display);color:var(--line-strong)}
.hot-story:nth-child(-n+3)::before{color:var(--accent)}
.hot-story__body{display:flex;flex-direction:column;gap:6px;min-width:0}
.hot-story__title{font-size:1rem;font-weight:650;line-height:1.3}
.hot-story__title a::after{content:"";position:absolute;inset:0}
.hot-story__title a:hover{color:var(--accent);text-decoration:none}
.hot-story__meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:var(--fs-sm);color:var(--ink-3)}
.hot-story__meta span{display:inline-flex;align-items:center;gap:4px}
.hot-story__meta .icon{width:15px;height:15px}
.hot-story__pulse{color:var(--breaking);font-weight:600}

/* мини-рейтинг прогнозистов */
.mini-rating{display:flex;flex-direction:column;gap:var(--s-3)}
.mini-rating__row{position:relative;display:grid;grid-template-columns:20px 32px minmax(0,1fr);gap:var(--s-3);align-items:center}
.mini-rating__place{font:600 1.05rem/1 var(--font-display);color:var(--ink-3);text-align:center}
.mini-rating__name{font-weight:600;font-size:.95rem;line-height:1.25;display:block}
.mini-rating__name::after{content:"";position:absolute;inset:0}
.mini-rating__name:hover{color:var(--accent);text-decoration:none}
.mini-rating__sub{font-size:var(--fs-xs);color:var(--ink-3)}
.mini-rating .meter{margin-top:4px}
.mini-rating .meter__bar{height:6px}
.mini-rating .meter__value{font-size:.95rem}
/* список карточками на всю ширину (страница рейтинга: «Пока мало проверок», «Ждут срока») */
.mini-rating--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-3) var(--s-5)}
.mini-rating--grid .mini-rating__row{padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.forecasters-more{margin-top:var(--s-7)}

/* боковые блоки */
.aside-block{display:flex;flex-direction:column}
.aside-block .section-head{margin-bottom:var(--s-4)}
.aside-cta{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5);border-radius:var(--r-lg);background:var(--nav-bg);color:#E7ECF3}
.aside-cta__title{font:600 1.25rem/1.2 var(--font-display);text-transform:uppercase;letter-spacing:.03em;color:#fff}
.aside-cta p{color:#B7C2D1;font-size:.95rem}

/* component: rubric-block — блок рубрики на главной: 1 крупная + список (как в Sahifa) */
.rubric-grid{display:grid;gap:var(--s-7) var(--s-6);grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.rubric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rubric-block{display:flex;flex-direction:column;min-width:0}
.rubric-block .news-card--lead{margin-bottom:var(--s-4);padding-bottom:var(--s-4);border-bottom:1px solid var(--line)}
.rubric-block .news-card--lead .news-card__title{font-size:var(--fs-lg)}

/* ==========================================================================
   Новость (post.html)
   ========================================================================== */
.post{max-width:760px}
.post__head{display:flex;flex-direction:column;gap:var(--s-4);margin-bottom:var(--s-5)}
.post__title{font-size:var(--fs-2xl);line-height:1.13;letter-spacing:-.02em}
.post__lead{font-size:clamp(1.12rem,1.05rem + .35vw,1.3rem);line-height:1.5;color:var(--ink-2);font-weight:450}
.post__cover{margin:0 0 var(--s-6)}
.post__cover .media{border-radius:var(--r-lg)}
@media (max-width:599px){.post__cover .media{border-radius:0;margin-inline:calc(var(--gutter) * -1)}.post__cover .media__credit{margin-top:var(--s-2)}}

/* component: prose — текст статьи */
.prose{font-size:clamp(1.06rem,1rem + .25vw,1.125rem);line-height:1.68;max-width:68ch}
.prose>*+*{margin-top:1.05em}
.prose h2{font-size:var(--fs-lg);margin-top:1.8em}
.prose a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.prose blockquote{padding:var(--s-1) 0 var(--s-1) var(--s-5);border-left:3px solid var(--accent);color:var(--ink-2);font-style:italic}
.prose ul{padding-left:1.2em;list-style:disc}
.prose ul li+li{margin-top:.4em}

/* component: sources — «Источники: …» */
.sources{margin-top:var(--s-6);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.sources__summary{display:flex;align-items:center;gap:var(--s-3);min-height:52px;padding:var(--s-3) var(--s-4);cursor:pointer;list-style:none;font-size:.95rem}
.sources__summary::-webkit-details-marker{display:none}
.sources__summary .icon{color:var(--ink-3)}
.sources__summary b{font-weight:600}
.sources__chev{margin-left:auto;transition:transform .2s}
.sources[open] .sources__chev{transform:rotate(180deg)}
.sources__list{padding:0 var(--s-4) var(--s-3) 48px}
.sources__list li{border-top:1px solid var(--line)}
.sources__list a{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:44px;font-size:.95rem}
.sources__list a:hover{color:var(--accent)}
.sources__list .icon{width:16px;height:16px;color:var(--ink-3)}
.sources__list time{margin-left:auto;font-size:var(--fs-sm);color:var(--ink-3)}

/* component: story-plaque — «Эта новость — часть сюжета» */
.story-plaque{margin-top:var(--s-7);padding:var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--accent);display:flex;flex-direction:column;gap:var(--s-4)}
.story-plaque__kicker{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--ink-3)}
.story-plaque__kicker .icon{color:var(--accent)}
.story-plaque__kicker .story-status{margin-left:auto}
.story-plaque__title{font-size:var(--fs-xl);line-height:1.18}
.story-plaque__title a:hover{color:var(--accent);text-decoration:none}
.story-plaque__foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line)}
.story-plaque__all{font-weight:600;color:var(--accent);font-size:.95rem}

/* блок обещаний в новости */
.post-promises{margin-top:var(--s-7)}
.tags{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-6)}
.tag{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--fs-sm);color:var(--ink-2)}
.tag::before{content:"#";color:var(--ink-3);margin-right:2px}
.tag:hover{color:var(--accent);text-decoration:none}
.share{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;margin-top:var(--s-5);font-size:var(--fs-sm);color:var(--ink-3)}

/* ==========================================================================
   Сюжет (story.html) — главная страница продукта
   ========================================================================== */
/* component: story-head */
.story-head{background:var(--surface);border-bottom:1px solid var(--line)}
.story-head__inner{display:grid;gap:var(--s-5);padding-block:var(--s-5) var(--s-6)}
.story-head__main{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}
.story-head .crumbs{margin-bottom:0}
.story-head__top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:var(--fs-sm);color:var(--ink-3)}
.story-head__title{font-size:var(--fs-3xl);line-height:1.06;letter-spacing:-.025em;max-width:20ch}
.story-head__about{font-size:var(--fs-md);line-height:1.55;color:var(--ink-2);max-width:62ch}
.story-head__cover{display:none}
.story-head__cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4)}
.story-head__cta-note{font-size:var(--fs-sm);color:var(--ink-3);max-width:28ch;line-height:1.4}
@media (min-width:1024px){
  .story-head__inner{grid-template-columns:minmax(0,1fr) 380px;gap:var(--s-6) 56px;padding-block:var(--s-6) var(--s-7)}
  .story-head__cover{display:block;align-self:start;grid-row:1 / span 2;grid-column:2}
  .story-head__cover .media{border-radius:var(--r-lg)}
}

/* component: story-stats — счётчики */
.story-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.story-stats__item{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:2px;padding:var(--s-3) var(--s-4);background:var(--surface)}
.story-stats dt{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.3}
.story-stats dd{font:500 1.75rem/1.05 var(--font-display);letter-spacing:.01em}
@media (min-width:600px){.story-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* component: story-span — весь сюжет на одной линии: начало, события-засечки, сегодня */
.story-span{position:relative;padding:28px 0 22px}
.story-span__line{position:relative;height:2px;background:var(--line-strong);margin-inline:8px}
.story-span__tick{position:absolute;left:var(--x);top:50%;width:2px;height:14px;transform:translate(-50%,-50%);background:var(--ink-3);border-radius:2px}
.story-span__tick--big{height:22px;width:3px;background:var(--accent)}
.story-span__tick--outcome{width:12px;height:12px;border-radius:50%;background:var(--v-done)}
.story-span__start,.story-span__end{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;transform:translateY(-50%);box-sizing:border-box}
.story-span__start{left:-8px;border:2.5px solid var(--ink-2);background:var(--surface)}
.story-span__end{right:-8px;background:var(--surface);border:2.5px dashed var(--accent)}
.story-span--closed .story-span__end{background:var(--v-done);border:0}
.story-span__labels{display:flex;justify-content:space-between;gap:var(--s-3);margin-top:12px;font-size:var(--fs-xs);color:var(--ink-3)}
.story-span__labels b{font:500 .9rem/1.2 var(--font-display);color:var(--ink-2);letter-spacing:.02em;display:block}
.story-span__labels span:last-child{text-align:right}
.story-span__caption{position:absolute;top:0;left:0;font-size:var(--fs-xs);color:var(--ink-3)}

/* component: visit-banner — «Что нового с вашего визита» */
.visit-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4);padding:var(--s-4) var(--s-5);border-radius:var(--r-lg);
  background:var(--memory-soft);border:1px solid color-mix(in srgb,var(--memory-edge) 45%,transparent);border-left:5px solid var(--memory-edge)}
.visit-banner .icon{color:var(--memory-edge);width:24px;height:24px}
.visit-banner__text{flex:1;min-width:200px;line-height:1.4}
.visit-banner__text b{font-weight:700}
.visit-banner__count{display:inline-block;padding:0 6px;border-radius:4px;background:var(--memory);font:600 1.1rem/1.35 var(--font-display)}

/* блок «Ждём» на странице сюжета */
.waiting{display:flex;flex-direction:column;gap:var(--s-3)}

/* component: timeline — хронология сюжета */
.timeline-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4);font-size:var(--fs-sm);color:var(--ink-3)}
.timeline-tools a{color:var(--accent);font-weight:600;display:inline-flex;align-items:center;gap:4px}
.timeline{position:relative;display:flex;flex-direction:column;--rail:22px}
.timeline::before{content:"";position:absolute;left:calc(var(--rail) / 2 - 1px);top:12px;bottom:24px;width:2px;background:var(--line-strong)}
.tl-event{position:relative;display:grid;grid-template-columns:var(--rail) minmax(0,1fr);column-gap:var(--s-4);padding-bottom:var(--s-5)}
.tl-event__node{grid-column:1;grid-row:1 / span 3;justify-self:center;margin-top:4px;width:16px;height:16px;border-radius:50%;box-sizing:border-box;background:var(--surface);border:2.5px solid var(--ink-3);position:relative;z-index:1}
.tl-event__card{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-2) var(--s-4);padding:var(--s-3) var(--s-4);margin:-8px 0 0 -12px;border-radius:var(--r-md);border:1px solid transparent;transition:background-color .3s}
.tl-event__head{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.tl-event__date{font:500 .98rem/1.2 var(--font-display);letter-spacing:.02em;color:var(--ink-2)}
.tl-event__date span{color:var(--ink-3)}
.tl-type{font-size:var(--fs-xs);font-weight:700;letter-spacing:.01em;padding:2px 8px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2)}
.tl-event__text{grid-column:1;font-size:var(--fs-md);line-height:1.4;font-weight:550}
.tl-event__text a:hover{color:var(--accent)}
.tl-event__src{grid-column:1;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--fs-sm);color:var(--ink-3)}
.tl-event__src a{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:500}
.tl-event__src .icon{width:15px;height:15px}
.tl-event__thumb{grid-column:2;grid-row:2 / span 2;width:96px}
.tl-event__thumb .media{border-radius:var(--r-sm)}
@media (min-width:600px){.tl-event__thumb{width:136px}}
@media (min-width:768px){
  .timeline{--rail:120px}
  .timeline::before{left:119px}
  .tl-event{grid-template-columns:96px 24px minmax(0,1fr);column-gap:0}
  .tl-event__node{grid-column:2}
  .tl-event__card{grid-column:3;margin-left:12px}
  .tl-event__date{position:absolute;left:0;top:0;width:84px;text-align:right;display:flex;flex-direction:column;font-size:1.02rem}
  .tl-event__date span{font-size:.88rem}
}
/* типы событий */
.tl-event--start .tl-event__node{width:22px;height:22px;margin-top:1px;border-width:3px;border-color:var(--ink)}
.tl-event--start .tl-type{background:var(--ink);color:var(--bg)}
.tl-event--fact .tl-event__node{background:var(--ink-3);border-color:var(--ink-3);width:12px;height:12px;margin-top:6px}
.tl-event--statement .tl-event__node{border-color:var(--accent)}
.tl-event--statement .tl-type{background:var(--accent-soft);color:var(--accent)}
.tl-event--denial .tl-event__node{border-color:var(--v-failed);border-style:dashed}
.tl-event--denial .tl-type{background:var(--v-failed-bg);color:var(--v-failed)}
.tl-event--outcome .tl-event__node{width:24px;height:24px;margin-top:0;background:var(--v-done);border:0;box-shadow:0 0 0 5px var(--v-done-bg)}
.tl-event--outcome .tl-type{background:var(--v-done-bg);color:var(--v-done)}
.tl-event--outcome .tl-event__text{font-weight:700}
/* новое с прошлого визита (класс ставит JS) */
.tl-event.is-new .tl-event__card{background:var(--memory-soft);border-color:color-mix(in srgb,var(--memory-edge) 40%,transparent);box-shadow:inset 4px 0 0 var(--memory-edge)}
.tl-event.is-new .tl-event__head::after{content:"Новое";order:3;font-size:var(--fs-xs);font-weight:700;padding:2px 8px;border-radius:var(--r-pill);background:var(--memory);color:var(--ink)}
/* отсечка «Здесь вы остановились» (вставляет JS) */
.tl-marker{position:relative;display:flex;align-items:center;gap:var(--s-3);margin:0 0 var(--s-5);padding-left:calc(var(--rail) + var(--s-2));font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}
.tl-marker::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px dashed var(--memory-edge)}
.tl-marker span{position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--r-pill);background:var(--bg);border:1.5px solid var(--memory-edge)}
.tl-marker .icon{width:16px;height:16px;color:var(--memory-edge)}
.timeline__end{padding-left:calc(var(--rail) + var(--s-4));font-size:var(--fs-sm);color:var(--ink-3)}

/* ==========================================================================
   Обещания, рейтинг
   ========================================================================== */
/* component: stats — сводка */
.stats{display:grid;gap:var(--s-5);padding:var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);margin-bottom:var(--s-6)}
.stats__total{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-2) var(--s-3)}
.stats__total b{font:600 clamp(2.4rem,2rem + 2vw,3.5rem)/1 var(--font-display)}
.stats__total span{color:var(--ink-2);max-width:40ch}
.stackbar{display:flex;height:14px;border-radius:var(--r-pill);overflow:hidden;gap:2px;background:var(--surface)}
.stackbar__seg{flex:var(--n) 1 0;background:var(--vc);min-width:4px}
.stats__legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3) var(--s-4)}
@media (min-width:768px){.stats__legend{grid-template-columns:repeat(6,minmax(0,1fr))}}
.stats__legend a{display:flex;flex-direction:column;gap:2px;padding-left:var(--s-3);border-left:3px solid var(--vc);border-radius:2px}
.stats__legend a:hover{text-decoration:none}
.stats__legend a:hover .stats__name{color:var(--accent)}
.stats__num{font:500 1.6rem/1.1 var(--font-display)}
.stats__name{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.3}
.stats__pct{color:var(--ink-3);font-size:var(--fs-xs)}
.v-done{--vc:var(--v-done)}.v-failed{--vc:var(--v-failed)}.v-partial{--vc:var(--v-partial)}.v-postponed{--vc:var(--v-postponed)}.v-nodata{--vc:var(--v-nodata)}.v-pending{--vc:var(--v-pending)}
.method-note{display:flex;gap:var(--s-3);font-size:var(--fs-sm);color:var(--ink-2);line-height:1.5;max-width:72ch}
.method-note .icon{color:var(--accent);margin-top:2px}

/* component: speaker-table — рейтинг; на мобильном строки становятся карточками */
.rating{width:100%;border-collapse:collapse;font-size:.95rem}
.rating caption{text-align:left;font-size:var(--fs-sm);color:var(--ink-3);padding-bottom:var(--s-3)}
.rating th{font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);text-align:right;padding:var(--s-3) var(--s-3);border-bottom:2px solid var(--line-strong);white-space:nowrap}
.rating td{padding:var(--s-4) var(--s-3);border-bottom:1px solid var(--line);text-align:right;vertical-align:middle}
.rating th:first-child,.rating td:first-child{text-align:center;width:52px}
.rating th.rating__who,.rating td.rating__who{text-align:left}
.rating__place{font:600 1.4rem/1 var(--font-display);color:var(--ink-3)}
.rating tr:nth-child(-n+3) .rating__place{color:var(--accent)}
.rating__person{position:relative;display:flex;align-items:center;gap:var(--s-3)}
.rating__name{font-weight:650;line-height:1.25}
.rating__name::after{content:"";position:absolute;inset:0}
.rating__name:hover{color:var(--accent);text-decoration:none}
.rating__role{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.3}
.rating__n{font:500 1.15rem/1 var(--font-display)}
.rating__n--done{color:var(--v-done)}.rating__n--failed{color:var(--v-failed)}.rating__n--partial{color:var(--v-partial)}
.rating td.rating__acc{width:200px}
.rating tbody tr:hover td{background:var(--surface)}
@media (max-width:767px){
  .rating thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .rating,.rating tbody,.rating caption{display:block}
  .rating tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3);padding:var(--s-4);margin-bottom:var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
  .rating td{display:block;padding:0;border:0;text-align:left}
  .rating td:first-child{width:auto;grid-column:1;grid-row:1;align-self:center;text-align:left}
  .rating td.rating__who{grid-column:1 / -1;grid-row:1;padding-left:40px}
  .rating td[data-label]::before{content:attr(data-label);display:block;font-size:var(--fs-xs);color:var(--ink-3);margin-bottom:2px}
  .rating td.rating__acc{grid-column:1 / -1;width:auto;padding-top:var(--s-2);border-top:1px solid var(--line)}
  .rating tbody tr:hover td{background:none}
}

/* component: speaker-head — страница прогнозиста */
.speaker-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-4) var(--s-5);align-items:center;margin-bottom:var(--s-6)}
.speaker-head__name{font-size:var(--fs-2xl);line-height:1.1}
.speaker-head__role{color:var(--ink-2);margin-top:6px}
.speaker-head__score{grid-column:1 / -1;display:grid;gap:var(--s-4);padding:var(--s-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.speaker-head__acc{display:flex;align-items:baseline;gap:var(--s-3)}
.speaker-head__acc b{font:600 3.2rem/1 var(--font-display)}
.speaker-head__acc span{color:var(--ink-2)}
.speaker-head__score .meter__bar{height:12px}
.speaker-head__counts{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);font-size:var(--fs-sm);color:var(--ink-2)}
.speaker-head__counts b{font:500 1.2rem/1 var(--font-display);margin-right:4px}
.speaker-head__counts [class^="v-"] b{color:var(--vc)}
@media (min-width:900px){
  .speaker-head{grid-template-columns:auto minmax(0,1fr) 380px}
  .speaker-head__score{grid-column:3;grid-row:1}
}

/* ==========================================================================
   Модалка подписки
   ========================================================================== */
/* component: modal */
.modal{padding:0;border:0;background:transparent;color:var(--ink);max-width:min(520px,calc(100vw - 24px));width:100%;max-height:calc(100dvh - 24px);overflow:visible}
.modal::backdrop{background:var(--backdrop)}
.modal[open]{animation:modal-in .22s cubic-bezier(.2,.8,.2,1)}
@keyframes modal-in{from{opacity:0;transform:translateY(16px) scale(.98)}}
.modal__box{position:relative;display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-5);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);max-height:calc(100dvh - 24px);overflow-y:auto}
@media (max-width:599px){
  .modal{margin:auto 0 0;max-width:100vw;max-height:94dvh}
  .modal__box{border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:calc(var(--s-5) + env(safe-area-inset-bottom))}
  .modal[open]{animation-name:sheet-in}
  @keyframes sheet-in{from{transform:translateY(40px);opacity:0}}
}
.modal__head{display:flex;align-items:flex-start;gap:var(--s-3)}
.modal__title{flex:1;font:600 1.45rem/1.15 var(--font-display);text-transform:uppercase;letter-spacing:.03em;padding-top:8px}
.modal__close{margin:-4px -10px 0 0}
.modal__story{display:flex;gap:10px;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-2);font-weight:600;line-height:1.35}
.modal__story .icon{color:var(--accent);margin-top:1px}
.modal__intro{color:var(--ink-2);font-size:.95rem}

/* component: subscribe — выбор канала */
.subscribe__channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}
.channel{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--s-3) var(--s-2);min-height:84px;border-radius:var(--r-md);border:1.5px solid var(--line-strong);background:var(--surface);font-size:var(--fs-sm);font-weight:600;text-align:center;line-height:1.2}
.channel .icon{width:26px;height:26px;color:var(--ink-2)}
.channel:hover{border-color:var(--accent)}
.channel[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.channel[aria-selected=true] .icon{color:var(--accent)}
.subscribe__panel{display:flex;flex-direction:column;gap:var(--s-4)}
.subscribe__panel>p{color:var(--ink-2);font-size:.95rem;line-height:1.5}
.subscribe__fine{font-size:var(--fs-xs) !important;color:var(--ink-3) !important}

/* формы */
.field{display:flex;flex-direction:column;gap:6px}
.field__label{font-size:var(--fs-sm);font-weight:600}
.field__input{height:48px;padding:0 var(--s-4);border-radius:var(--r-md);border:1.5px solid var(--line-strong);background:var(--bg);font-size:1rem;width:100%}
.field__input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.field__input[aria-invalid=true]{border-color:var(--v-failed)}
.field__error{font-size:var(--fs-sm);color:var(--v-failed);display:flex;gap:6px;align-items:flex-start}
.field__error .icon{width:16px;height:16px;margin-top:2px}
.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1.5px solid var(--line-strong);border-radius:var(--r-md);overflow:hidden;padding:0;margin:0;min-width:0}
.segmented__opt{position:relative}
.segmented__opt+.segmented__opt{border-left:1.5px solid var(--line-strong)}
.segmented__opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.segmented__opt span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:4px 6px;font-size:var(--fs-sm);font-weight:500;text-align:center;line-height:1.2}
.segmented__opt input:checked+span{background:var(--accent-strong);color:var(--on-accent);font-weight:600}
.segmented__opt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-4px;border-radius:6px}
.fieldset-plain{border:0;padding:0;margin:0;min-width:0}
.fieldset-plain legend{padding:0;margin-bottom:6px;font-size:var(--fs-sm);font-weight:600}
.check{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2);cursor:pointer}
.check input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent-strong)}
.check a{color:var(--accent);text-decoration:underline;text-underline-offset:.15em}

/* сообщения */
.notice{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-4);border-radius:var(--r-md);line-height:1.45;font-size:.95rem}
.notice .icon{width:22px;height:22px;flex:none}
.notice b{display:block;margin-bottom:2px}
.notice--success{background:var(--v-done-bg);color:var(--ink)}
.notice--success .icon{color:var(--v-done)}
.notice--error{background:var(--v-failed-bg);color:var(--ink)}
.notice--error .icon{color:var(--v-failed)}
.notice--info{background:var(--accent-soft)}
.notice--info .icon{color:var(--accent)}

/* ==========================================================================
   Подписки, подтверждение, 404
   ========================================================================== */
.narrow{max-width:760px}
.page-title{font-size:var(--fs-2xl);line-height:1.12;letter-spacing:-.02em}
.page-lead{color:var(--ink-2);font-size:var(--fs-md);margin-top:var(--s-3);max-width:62ch}
.page-head{margin-bottom:var(--s-6)}
.panel{padding:var(--s-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.panel__title{font-size:var(--fs-lg);margin-bottom:var(--s-4)}

/* component: sub-row — подписка на сюжет */
.sub-list{display:flex;flex-direction:column}
.sub-row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-3);padding-block:var(--s-4);border-top:1px solid var(--line)}
.sub-row:first-child{border-top:0;padding-top:0}
.sub-row__title{font-weight:650;line-height:1.3}
.sub-row__title a:hover{color:var(--accent)}
.sub-row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:var(--fs-sm);color:var(--ink-3);margin-top:4px}
.sub-row__channels{display:inline-flex;gap:6px}
.sub-row__channels .icon{width:16px;height:16px}
.sub-row.is-removed .sub-row__title,.sub-row.is-removed .sub-row__meta{opacity:.5;text-decoration:line-through}
.sub-row .btn{justify-self:start}
@media (min-width:600px){.sub-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}}

/* component: empty-state — 404, «Email подтверждён» */
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-4);padding-block:var(--s-7) var(--s-8);max-width:560px;margin-inline:auto}
.empty-state__art{width:min(280px,70vw);height:auto;color:var(--accent)}
.empty-state__code{font:600 clamp(4rem,3rem + 6vw,7rem)/.9 var(--font-display);letter-spacing:.02em;color:var(--ink)}
.empty-state__title{font-size:var(--fs-2xl);line-height:1.15}
.empty-state>p:not([class]),.empty-state__text{color:var(--ink-2);font-size:var(--fs-md)}
.empty-state__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-3);margin-top:var(--s-2)}
.empty-state .search-form{width:100%}

/* ==========================================================================
   Подвал
   ========================================================================== */
/* component: site-footer */
.site-footer{background:var(--nav-bg);color:#AEB9C8;padding-block:var(--s-7) var(--s-5);font-size:.95rem}
.site-footer a{color:#D5DDE8}
.site-footer a:hover{color:#fff}
.site-footer__grid{display:grid;gap:var(--s-6);grid-template-columns:repeat(2,minmax(0,1fr))}
.site-footer__brand{grid-column:1 / -1;display:flex;flex-direction:column;gap:var(--s-3)}
.site-footer__brand .brand{color:#fff}
.site-footer__brand .brand__name{color:#fff}
.site-footer__brand p{max-width:36ch;line-height:1.5}
.site-footer__title{font:600 1rem/1.2 var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:#fff;margin-bottom:var(--s-3)}
.site-footer__list{display:flex;flex-direction:column;gap:2px}
.site-footer__list a{display:inline-flex;align-items:center;gap:8px;min-height:32px}
.site-footer__list .icon{width:18px;height:18px;opacity:.8}
.site-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid rgba(255,255,255,.1);font-size:var(--fs-sm);color:#97A3B4}
.site-footer__bottom p{max-width:70ch}
@media (min-width:768px){.site-footer__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1024px){.site-footer__grid{grid-template-columns:1.4fr repeat(4,minmax(0,1fr))}.site-footer__brand{grid-column:auto}}

/* ---------- Отступы секций главной ---------- */
.home-section{scroll-margin-top:calc(var(--sticky-h) + var(--s-4))}
.home-top{border-bottom:1px solid var(--line);margin-bottom:var(--s-6)}
.home-wide{margin-top:var(--s-7)}

/* ==========================================================================
   Движение и печать
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  .ticker__track{animation:none !important;transform:none}
  .ticker__viewport{overflow-x:auto;scrollbar-width:none}
  .ticker__group[aria-hidden=true]{display:none}
}
@media print{
  .masthead__top,.rubrics,.ticker,.drawer,.icon-btn,.follow-btn,.site-footer,.modal,.visit-banner{display:none !important}
  body{background:#fff;color:#000}
  .prose a::after{content:" (" attr(href) ")";font-size:.8em}
}
