/* ==========================================================================
   ИЗДАТЕЛЬ — дизайн-система «Полоса и данные»
   Газетная полоса, ставшая базой данных: видимая модульная сетка,
   волосяные линейки, кикер и фолио, табличные цифры.
   Тёмная тема по умолчанию. Ноль внешних запросов.
   ========================================================================== */

/* ---------- Шрифты (self-hosted, сабсет кириллица+латиница) ---------- */
@font-face{font-family:Inter;src:url(/fonts/inter-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Golos;src:url(/fonts/golos-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Golos;src:url(/fonts/golos-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:JBMono;src:url(/fonts/jbmono-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:JBMono;src:url(/fonts/jbmono-500.woff2) format("woff2");font-weight:500;font-display:swap}

/* ---------- Токены ---------- */
:root{
  --bg:#0E1116; --surf:#151A21; --surf2:#1C222B;
  --tx:#E8ECF1; --tx2:#9AA6B2; --tx3:#6B7683;
  --rule:rgba(232,236,241,.10); --rule2:rgba(232,236,241,.16);
  --brand:#C8553D; --accent:#C8553D;
  --ok:#3F9E8F; --warn:#C9822E;

  --f-disp:Golos,"Segoe UI",system-ui,sans-serif;
  --f-body:Inter,"Segoe UI",system-ui,sans-serif;
  --f-mono:JBMono,ui-monospace,"Cascadia Mono",Consolas,monospace;

  --w:1180px; --w-read:66ch;
  --r:10px; --r-s:6px;

  /* Тени «растекания краски»: широкие, мягкие, с тёплым отсветом акцента */
  --sh:0 1px 2px rgba(8,10,14,.40), 0 8px 24px -8px rgba(8,10,14,.55), 0 24px 64px -24px rgba(200,85,61,.14);
  --sh-s:0 1px 2px rgba(8,10,14,.35), 0 4px 12px -4px rgba(8,10,14,.45);

  /* Полутоновый растр — имитация печати */
  --halftone:radial-gradient(circle at 1px 1px, rgba(232,236,241,.055) 1px, transparent 0);
}
:root[data-theme=light]{
  --bg:#F7F5F1; --surf:#FFFFFF; --surf2:#F0EDE7;
  --tx:#14181D; --tx2:#5A646E; --tx3:#7C868F;
  --rule:rgba(20,24,29,.12); --rule2:rgba(20,24,29,.20);
  --brand:#B4472F;
  --sh:0 1px 2px rgba(20,24,29,.06), 0 8px 24px -8px rgba(20,24,29,.10), 0 24px 64px -24px rgba(180,71,47,.10);
  --sh-s:0 1px 2px rgba(20,24,29,.06), 0 4px 12px -4px rgba(20,24,29,.08);
  --halftone:radial-gradient(circle at 1px 1px, rgba(20,24,29,.05) 1px, transparent 0);
}

/* ---------- База ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{
  margin:0;background:var(--bg);color:var(--tx);
  font:400 17px/1.55 var(--f-body);
  font-variant-numeric:tabular-nums slashed-zero;
  -webkit-font-smoothing:antialiased;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:.6rem 1rem;z-index:99}
.skip:focus{left:0}
.wrap{max-width:var(--w);margin:0 auto;padding:0 20px}
[hidden]{display:none!important}

/* ---------- Типографика ---------- */
h1,h2,h3,h4{font-family:var(--f-disp);font-weight:700;letter-spacing:-.02em;line-height:1.18;margin:0}
h1{font-size:clamp(1.9rem,1.2rem + 2.4vw,3rem)}
h2{font-size:clamp(1.4rem,1.05rem + 1.2vw,2rem);margin:2.4em 0 .6em}
h3{font-size:clamp(1.13rem,1rem + .5vw,1.35rem);margin:1.9em 0 .5em}
p{margin:0 0 1.05em}
.lede{font-size:1.15rem;color:var(--tx2);line-height:1.55}

/* Кикер — рубрика капителью в моно. Опознавательный знак издания. */
.kicker{
  font:500 11.5px/1 var(--f-mono);letter-spacing:.10em;text-transform:uppercase;
  color:var(--tx3);display:flex;flex-wrap:wrap;gap:.5em;align-items:center;margin-bottom:1rem;
}
.kicker__dot{color:var(--accent)}
.kicker b{color:var(--accent);font-weight:500}

/* Фолио — маркер раздела на полях */
.folio{position:absolute;left:-52px;top:2px;font:400 11px/1 var(--f-mono);color:var(--tx3);
  writing-mode:vertical-rl;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:1100px){.folio{display:none}}

/* ---------- Шапка ---------- */
.hdr{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px)}
.hdr__in{display:flex;align-items:center;gap:22px;height:62px}
.hdr__rule{height:1px;background:linear-gradient(90deg,transparent,var(--rule2) 12%,var(--rule2) 88%,transparent)}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;flex:none}
.brand__mark{color:var(--accent);display:flex}
.brand__txt{font:700 19px/1 var(--f-disp);letter-spacing:-.02em}
.nav{display:flex;gap:2px;margin-left:6px;flex:1;min-width:0;overflow:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav__a{padding:7px 11px;border-radius:var(--r-s);text-decoration:none;color:var(--tx2);font-size:14.5px;white-space:nowrap;transition:color .15s,background .15s}
.nav__a:hover{color:var(--tx);background:var(--surf)}
.nav__a.is-on{color:var(--tx);background:var(--surf);box-shadow:inset 0 -2px 0 var(--accent)}
.hdr__act{display:flex;gap:4px;flex:none}
.ico{width:36px;height:36px;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:var(--r-s);color:var(--tx2);cursor:pointer;transition:.15s}
.ico:hover{color:var(--tx);background:var(--surf);border-color:var(--rule)}
.ico__moon{display:none}
:root[data-theme=light] .ico__sun{display:none}
:root[data-theme=light] .ico__moon{display:block}
.ico--menu{display:none}
@media(max-width:860px){
  .nav{position:fixed;inset:62px 0 auto;flex-direction:column;background:var(--bg);border-bottom:1px solid var(--rule);padding:10px;gap:2px;display:none}
  .nav.is-open{display:flex}
  .ico--menu{display:grid}
}

/* ---------- Поиск ---------- */
.veil{position:fixed;inset:0;z-index:60;background:rgba(8,10,14,.72);backdrop-filter:blur(4px);padding:12vh 20px 20px;display:flex;justify-content:center}
.veil__box{width:min(660px,100%);background:var(--surf);border:1px solid var(--rule2);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;height:fit-content}
.veil__in{width:100%;border:0;background:none;color:var(--tx);font:400 18px/1 var(--f-body);padding:20px 22px;border-bottom:1px solid var(--rule)}
.veil__in:focus{outline:none}
.veil__res{max-height:52vh;overflow:auto}
.veil__res a{display:block;padding:11px 22px;text-decoration:none;border-bottom:1px solid var(--rule)}
.veil__res a:hover,.veil__res a.is-sel{background:var(--surf2)}
.veil__res b{display:block;font-weight:500;font-size:15px}
.veil__res span{font-size:12.5px;color:var(--tx3);font-family:var(--f-mono)}
.veil__hint{margin:0;padding:9px 22px;font:400 11.5px/1 var(--f-mono);color:var(--tx3)}

/* ---------- Сетка и линейки — видимые, это идентичность ---------- */
.main{min-height:60vh;padding:34px 0 72px}
.rule{height:1px;background:var(--rule);border:0;margin:2.4rem 0}
.rule--strong{background:var(--rule2)}

/* ---------- Хлебные крошки ---------- */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.45em;margin:0 0 1.2rem;padding:0;font:400 12.5px/1.5 var(--f-mono);color:var(--tx3)}
.crumbs li+li::before{content:"›";margin-right:.45em;color:var(--tx3)}
.crumbs a{text-decoration:none;color:var(--tx2)}
.crumbs a:hover{color:var(--accent)}

/* ---------- Hero главной ---------- */
.hero{position:relative;padding:44px 0 30px;background-image:var(--halftone);background-size:4px 4px;border-bottom:1px solid var(--rule)}
.hero__in{max-width:820px}
.hero h1{margin-bottom:.5em}
.hero__sub{font-size:1.18rem;color:var(--tx2);max-width:62ch}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:36px;align-items:center}
.hero__art img{width:100%;height:auto;border-radius:var(--r);box-shadow:var(--sh);border:1px solid var(--rule)}
@media(max-width:900px){.hero__grid{grid-template-columns:1fr}.hero__art{display:none}}
.hero__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--r);margin-top:28px;overflow:hidden}
.stat{background:var(--bg);padding:16px 18px}
.stat__v{font:500 26px/1 var(--f-mono);color:var(--tx);display:block;letter-spacing:-.02em}
.stat__l{font-size:13px;color:var(--tx3);margin-top:6px;display:block}
.stat__s{font:400 11px/1.3 var(--f-mono);color:var(--tx3);margin-top:4px;display:block}

/* ---------- Карточки ---------- */
.grid{display:grid;gap:16px}
.grid--3{grid-template-columns:repeat(auto-fill,minmax(268px,1fr))}
.grid--2{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.card{background:var(--surf);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s,border-color .18s;text-decoration:none}
.card:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:var(--rule2)}
.card__img{aspect-ratio:16/9;background:var(--surf2);position:relative;overflow:hidden}
.card__img img,.card__img svg{width:100%;height:100%;object-fit:cover}
.card__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,10,14,.35) 100%)}
.card__b{padding:14px 16px 16px;display:flex;flex-direction:column;gap:7px;flex:1}
.card__t{font:600 16.5px/1.32 var(--f-disp);letter-spacing:-.01em}
.card__d{font-size:14px;color:var(--tx2);line-height:1.5}
.card__m{margin-top:auto;font:400 11.5px/1 var(--f-mono);color:var(--tx3);display:flex;gap:.6em;flex-wrap:wrap;align-items:center;letter-spacing:.04em}
.tag{display:inline-block;padding:3px 8px;border:1px solid var(--rule2);border-radius:99px;font:400 11px/1.4 var(--f-mono);color:var(--tx2);text-transform:uppercase;letter-spacing:.06em}
.tag--acc{border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}

/* ---------- Статья ---------- */
.art{max-width:var(--w-read);margin:0 auto;position:relative}
.art h1{margin-bottom:.45em}
.art__meta{font:400 12.5px/1.6 var(--f-mono);color:var(--tx3);display:flex;flex-wrap:wrap;gap:.9em;padding-bottom:1.2rem;border-bottom:1px solid var(--rule);margin-bottom:1.6rem}
.art__body>*:first-child{margin-top:0}
.art__body ul,.art__body ol{padding-left:1.3em;margin:0 0 1.1em}
.art__body li{margin-bottom:.4em}
.art__body a{color:var(--accent);text-underline-offset:3px}
.art__body figure{margin:1.8em 0}
.art__body figcaption{font:400 12.5px/1.5 var(--f-mono);color:var(--tx3);margin-top:.6em}
blockquote{margin:1.6em 0;padding:.2em 0 .2em 1.2em;border-left:2px solid var(--accent);color:var(--tx2)}

/* TL;DR — извлекаемый ответ в первых 1000 знаках (GEO слой 3) */
.tldr{background:var(--surf);border:1px solid var(--rule2);border-left:3px solid var(--accent);border-radius:var(--r-s);padding:16px 18px;margin:0 0 1.8rem}
.tldr__h{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.7em}
.tldr p:last-child{margin-bottom:0}

/* ---------- Таблицы: табличные цифры, скролл на мобайле ---------- */
.tw{overflow-x:auto;margin:1.6em 0;border:1px solid var(--rule);border-radius:var(--r)}
table{width:100%;border-collapse:collapse;font-size:14.5px}
th,td{padding:10px 13px;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
th{font:500 11.5px/1.4 var(--f-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--tx3);white-space:nowrap;background:var(--surf)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--surf)}
td.num,th.num{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums}

/* ---------- Карточка СМИ — свёрстана как выходные данные ---------- */
.imprint{background:var(--surf);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;margin:0 0 2rem}
.imprint__row{display:grid;grid-template-columns:180px 1fr;gap:0;border-bottom:1px solid var(--rule)}
.imprint__row:last-child{border-bottom:0}
.imprint__k{padding:11px 16px;font:500 11.5px/1.5 var(--f-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--tx3);background:var(--surf2);border-right:1px solid var(--rule)}
.imprint__v{padding:11px 16px;font-size:15px}
.imprint__v a{color:var(--accent)}
@media(max-width:620px){.imprint__row{grid-template-columns:1fr}.imprint__k{border-right:0;border-bottom:1px solid var(--rule)}}

/* Источник поля — пер-полевая атрибуция */
.src{font:400 11px/1.4 var(--f-mono);color:var(--tx3);margin-left:.5em;white-space:nowrap}
.src a{color:var(--tx3);text-decoration:underline;text-underline-offset:2px}
.src a:hover{color:var(--accent)}

/* Дисклеймер актуальности */
.stale{display:flex;gap:.7em;align-items:flex-start;background:color-mix(in srgb,var(--warn) 9%,transparent);border:1px solid color-mix(in srgb,var(--warn) 32%,transparent);border-radius:var(--r-s);padding:12px 15px;font-size:13.5px;color:var(--tx2);margin:1.4rem 0}
.stale b{color:var(--tx)}

/* ---------- Инструменты ---------- */
.tool{background:var(--surf);border:1px solid var(--rule2);border-radius:var(--r);padding:22px;margin:1.6rem 0;box-shadow:var(--sh-s)}
.tool__row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--rule)}
.tool__row:last-of-type{border-bottom:0}
.tool label{font-size:14.5px;color:var(--tx2)}
.tool input,.tool select{background:var(--bg);border:1px solid var(--rule2);border-radius:var(--r-s);color:var(--tx);padding:9px 12px;font:400 15px/1 var(--f-mono);width:170px;text-align:right}
.tool input:focus,.tool select:focus{outline:none;border-color:var(--accent)}
.tool__out{margin-top:18px;padding-top:16px;border-top:2px solid var(--accent);display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.tool__out b{font:500 30px/1 var(--f-mono);color:var(--accent);letter-spacing:-.02em}
.tool__f{font:400 12.5px/1.6 var(--f-mono);color:var(--tx3);margin-top:14px;padding-top:12px;border-top:1px dashed var(--rule2)}

/* ---------- Глоссарий ---------- */
.terms{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden}
.term{background:var(--bg);padding:14px 16px;text-decoration:none;transition:background .15s}
.term:hover{background:var(--surf)}
.term b{display:block;font:600 15.5px/1.3 var(--f-disp);margin-bottom:4px}
.term span{font-size:13px;color:var(--tx2);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- Скриншот в мокапе браузера ---------- */
.shot{margin:1.8em 0}
.shot__frame{border:1px solid var(--rule2);border-radius:8px;overflow:hidden;box-shadow:var(--sh);background:var(--surf2)}
.shot__bar{display:flex;gap:6px;padding:9px 12px;border-bottom:1px solid var(--rule);background:var(--surf)}
.shot__bar i{width:9px;height:9px;border-radius:99px;background:var(--rule2);display:block}
.shot figcaption{font:400 12px/1.5 var(--f-mono);color:var(--tx3);margin-top:.7em}

/* ---------- Реестр: фильтры и таблица-база ---------- */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:26px 0 14px;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.filters__q{flex:1 1 240px;min-width:0;background:var(--surf);border:1px solid var(--rule2);border-radius:var(--r-s);color:var(--tx);padding:10px 14px;font:400 15px/1 var(--f-body)}
.filters__q:focus{outline:none;border-color:var(--accent)}
.filters__chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{background:none;border:1px solid var(--rule2);border-radius:99px;color:var(--tx2);padding:6px 13px;font:400 12.5px/1.3 var(--f-mono);cursor:pointer;transition:.15s;white-space:nowrap}
.chip:hover{color:var(--tx);border-color:var(--tx3)}
.chip.is-on{background:var(--accent);border-color:var(--accent);color:#fff}
.filters__count{font:500 13px/1 var(--f-mono);color:var(--tx3);margin-left:auto;white-space:nowrap}
.filters__count::after{content:" изданий"}

.tw--reg{max-height:78vh;overflow:auto;position:relative}
.tw--reg thead th{position:sticky;top:0;z-index:3;cursor:pointer;user-select:none}
.tw--reg thead th::after{content:"↕";opacity:.28;margin-left:.4em;font-size:.85em}
.tw--reg thead th.asc::after{content:"↑";opacity:.9;color:var(--accent)}
.tw--reg thead th.desc::after{content:"↓";opacity:.9;color:var(--accent)}
.tw--reg td.sticky,.tw--reg th.sticky{position:sticky;left:0;background:var(--bg);z-index:2;min-width:190px;box-shadow:1px 0 0 var(--rule)}
.tw--reg thead th.sticky{z-index:4;background:var(--surf)}
.tw--reg tbody tr:hover td.sticky{background:var(--surf)}
.tw--reg td a{color:var(--tx);text-decoration:none;font-weight:500}
.tw--reg td a:hover{color:var(--accent)}
.nd{color:var(--tx3);font-size:13px}
.tag--off{border-color:color-mix(in srgb,var(--warn) 50%,transparent);color:var(--warn)}

/* Полнота карточки — визуальный индикатор раскрытия данных */
.meter{display:inline-block;width:56px;height:6px;border-radius:99px;background:var(--rule2);overflow:hidden;vertical-align:middle}
.meter i{display:block;height:100%;background:var(--accent);border-radius:99px}

/* ---------- Магниты: живая лента ---------- */
.feed{border:1px solid var(--rule2);border-radius:var(--r);overflow:hidden;background:var(--surf);margin:1.6em 0;box-shadow:var(--sh-s)}
.feed__bar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--rule);font:400 12.5px/1 var(--f-mono);color:var(--tx3)}
.feed__live{display:flex;align-items:center;gap:7px;color:var(--accent)}
.feed__live i{width:7px;height:7px;border-radius:99px;background:var(--accent);display:block;animation:pulse 2.2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.feed__live i{animation:none}}
.feed__on{color:var(--tx2)}
.feed__n{margin-left:auto}
.feed__list{list-style:none;margin:0;padding:0;max-height:640px;overflow:auto}
.feed__i{display:flex;gap:12px;padding:11px 16px;border-bottom:1px solid var(--rule)}
.feed__i:last-child{border-bottom:0}
.feed__i:hover{background:var(--surf2)}
.feed__rank{font:500 13px/1.5 var(--f-mono);color:var(--tx3);min-width:22px;text-align:right;flex:none}
.feed__body{min-width:0}
.feed__body a{display:block;font-size:15px;line-height:1.4;text-decoration:none;color:var(--tx)}
.feed__body a:hover{color:var(--accent)}
.feed__meta{display:block;font:400 11.5px/1.5 var(--f-mono);color:var(--tx3);margin-top:3px}
.feed__note{margin:0;padding:12px 16px;border-top:1px solid var(--rule);font-size:13px;color:var(--tx2);background:var(--bg)}

/* ---------- Магниты: машина времени ---------- */
.tm-out{margin-top:18px}
.tm-years{display:flex;gap:5px;align-items:flex-end;overflow-x:auto;padding:8px 0 0;min-height:110px}
.tm-y{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;flex:none;min-width:26px}
.tm-y i{display:block;width:20px;background:var(--accent);border-radius:3px 3px 0 0;opacity:.65;transition:opacity .15s}
.tm-y:hover i{opacity:1}
.tm-y span{font:400 10.5px/1 var(--f-mono);color:var(--tx3)}

/* ---------- Утилиты ---------- */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 1.2rem;flex-wrap:wrap}
.sec-head h2{margin:0}
.more{font:400 13px/1 var(--f-mono);color:var(--accent);text-decoration:none;letter-spacing:.03em}
.more:hover{text-decoration:underline}
.muted{color:var(--tx2)}
.center{text-align:center}
.mt0{margin-top:0}
