/* ============================================================
   RESILAND CA+ Database — skin «portal» (17.09.2026): the look of the main
   portal resilandca.net, per ToR 7.1 — white header, cards with a thin border,
   light-green buttons, centered section titles with a green underline, dark footer.
   Loaded after resiland.css (functions.php); body carries .rd-skin-portal as the namespace
   of these rules. Since 18.09 (decision 64) this is the only look of the site.
   Tokens (--r-*) stay SCiO's; the few portal values that differ from them are
   derived here with a comment. Prefix: .rp-  (resiland portal)
   ============================================================ */

:root {
	--rp-font-head: "Outfit", "Inter", var(--r-font-body); /* the live portal's heading font (Elementor global); Outfit has no Cyrillic — Inter steps in for RU/KK/KY/TG */
	--rp-font-body: "Inter", var(--r-font-body);       /* the live portal's body font */
	--rp-ink: #0F172A;                                 /* portal heading colour (slate 900) */
	--rp-text: #2F3B40;                                /* portal body text */
	--rp-footer: #0F172A;                              /* portal footer background */
	--rp-btn: #367D5D;                                 /* button fill — --r-green-light and --r-green-dark 50/50: the portal's #54B991 under white text gives 2,4:1, this one 4,9:1 (Ойбек, 17.09: текст на зелёных кнопках белый) */
	--rp-btn-ink: #fff;                                /* button text — white, not the portal's dark green */
	--rp-line: #52B788;                                /* underline under section titles — --r-green-light */
	--rp-border: #E5E9EC;                              /* card hairline */
	--rp-tile: #EAF6EE;                                /* stat tile fill — a step lighter than --r-green-pale */
	--rp-tile-line: #CFE8D6;
	--rd-ring-1: var(--r-green-dark);                  /* «База в цифрах» (18.09): четыре ступени между --r-green-dark и --r-green-pale по шкале SCiO */
	--rd-ring-2: #40916C;
	--rd-ring-3: #74C69D;
	--rd-ring-4: #B7E4C7;
	--rd-ring-track: #EEF2F4;                          /* дорожка кольца — на тон светлее --rp-border */
	--rp-strategy: color-mix(in srgb, var(--r-accent) 55%, var(--r-earth)); /* цвет типа «Стратегия / программа» — охра из --r-accent и --r-earth (≈#AA5E1C, 4,9:1 под белым): чистый оранжевый #E9770A в скине portal не используется (Ойбек, 18.09) */
	--rp-warn: var(--r-earth);                          /* ошибки, обязательность, замечания модератора — земляной на песочном, не оранжевый (Ойбек, 18.09) */
	--rp-warn-bg: var(--r-sand);
}

/* ---------- base ---------- */
.rd-skin-portal .rd { font-family: var(--rp-font-body); color: var(--rp-text); font-size: 15px; }
.rd-skin-portal .rd-share-dlg { font-family: var(--rp-font-body); color: var(--rp-ink); } /* модалка «Поделиться» стоит вне .rd */
.rd-skin-portal .rd :is(p, li, td, th, input, textarea, select, button, label, a, span, small, address) { font-family: inherit; } /* style.css pins p/li/inputs to Source Sans — let them inherit Inter */
.rd-skin-portal .rd :where(h1, h2, h3, h4) { font-family: var(--rp-font-head); color: var(--rp-ink); font-weight: 600; }
.rd-skin-portal .rd a { color: var(--r-green-mid); }
/* what resiland.css still sets in Playfair (year in the fallback list, the 404 code) — Outfit here */
.rd-skin-portal .rd :is(.rd-row__year, .rd-404__code) { font-family: var(--rp-font-head); }
.rd-skin-portal html { scroll-padding-top: 20px; }

/* ---------- header: white, static ---------- */
.rd-skin-portal .rd-header.rp-header { position: static; background: #fff; color: var(--rp-text); box-shadow: none; border-bottom: 1px solid var(--rp-border); }
.rd-skin-portal .rp-header .rd-header__row { min-height: 70px; padding-block: 9px; } /* как у портала, 70 px (Ойбек, 18.10) */
.rd-skin-portal .rp-header .rd-brand__logo { height: 52px; }
.rd-skin-portal .rp-header .rd-nav { margin-left: auto; gap: 4px; }
.rd-skin-portal .rd .rp-header .rd-nav__link { color: var(--rp-text); font-size: 15px; font-weight: 500; }
.rd-skin-portal .rd .rp-header .rd-nav__link:hover, .rd-skin-portal .rd .rp-header .rd-nav__link:focus { background: transparent; color: var(--r-green-mid); }
.rd-skin-portal .rd .rp-header .rd-nav__link.is-current { background: transparent; color: var(--r-green-mid); font-weight: 600; }
/* Ссылка на портал ведёт на другой сайт (resilandca.net), а не внутри базы — рамка отличает её
   от обычных пунктов меню, чтобы это было видно до клика (Ойбек, 28.09). */
.rd-skin-portal .rd .rp-header .rd-nav__link--external {
	padding-block: 6px;
	border: 1px solid var(--rp-btn);
	border-radius: 999px;
	color: var(--rp-btn);
}
.rd-skin-portal .rd .rp-header .rd-nav__link--external:hover,
.rd-skin-portal .rd .rp-header .rd-nav__link--external:focus {
	background: var(--rp-tile);
	color: var(--rp-btn);
	border-color: var(--rp-btn);
}
.rd-skin-portal .rp-header .rd-header__tools { margin-left: 0; }
.rd-skin-portal .rp-header .rd-lang__current { color: var(--rp-text); font-weight: 500; }
.rd-skin-portal .rp-header .rd-lang__current:hover { background: var(--r-gray-bg); }
.rd-skin-portal .rp-header .rd-lang__code { color: var(--r-green-mid); }
.rd-skin-portal .rd .rp-login { color: var(--rp-text); font-size: 15px; font-weight: 500; padding: 8px 4px; }
.rd-skin-portal .rd .rp-login:hover { color: var(--r-green-mid); text-decoration: none; }
.rd-skin-portal .rd .rp-header .rd-user, .rd-skin-portal .rd .rp-header .rd-user__name { color: var(--rp-text); }
.rd-skin-portal .rp-header .rd-user__avatar { background: var(--r-green-pale); }
.rd-skin-portal .rd .rp-header .rd-header__signout { color: var(--r-text-muted); }
.rd-skin-portal .rp-header .rd-header__toggle { border-color: var(--rp-border); color: var(--rp-text); }
/* Длинные подписи (таджикский; у админа ещё пункт «Модератсия»): меню + «язык · пользователь» требовали 1280 px при доступных
   1264, и блок инструментов падал на вторую строку (19.09). От 1301 px шрифт и отступы плавно сжимаются, на 901–1300 px первая строка —
   логотип и «язык · пользователь», меню — второй строкой. До 900 px — бургер, как было. */
@media (min-width: 901px) {
	.rd-skin-portal .rp-header .rd-header__row { column-gap: clamp(10px, 1.5vw, 22px); }
	.rd-skin-portal .rp-header .rd-nav { gap: 2px; }
	.rd-skin-portal .rd .rp-header .rd-nav__link { font-size: clamp(12.5px, 1.1vw, 14.5px); padding-inline: clamp(4px, .7vw, 10px); }
	.rd-skin-portal .rp-header .rd-header__tools { column-gap: clamp(6px, 1vw, 12px); }
}
@media (min-width: 901px) and (max-width: 1300px) {
	.rd-skin-portal .rp-header .rd-header__tools { order: 2; margin-left: auto; }
	.rd-skin-portal .rp-header .rd-nav { order: 3; flex: 1 1 100%; margin-left: 0; justify-content: flex-start; }
}
@media (max-width: 900px) {
	.rd-skin-portal .rp-header .rd-nav { border-top-color: var(--rp-border); }
	.rd-skin-portal .rp-header .rd-brand__logo { height: 48px; } /* телефон: 62px десктопа делали шапку в 84px (Ойбек, 18.09); десктоп с 18.10 — 52px и 70px */
	.rd-skin-portal .rp-header .rd-header__row { min-height: 68px; }
	.rd-skin-portal .rp-header .rd-header__tools { margin-left: auto; } /* логотип слева, флаг · вход · ☰ справа: на десктопе вправо толкает .rd-nav, на телефоне она скрыта (Ойбек, 18.09) */
	.rd-skin-portal.rd-nav-open .rd-header.rp-header { background: #fff; }
}

/* ---------- buttons ---------- */
.rd-skin-portal .rd .rp-btn { display: inline-flex; align-items: center; gap: 8px; background: var(--rp-btn); color: var(--rp-btn-ink); font-family: var(--rp-font-body); font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; padding: 13px 22px; border-radius: 6px; border: 2px solid var(--rp-btn); line-height: 1.2; white-space: nowrap; transition: background .15s, color .15s, border-color .15s; }
.rd-skin-portal .rd .rp-btn:hover, .rd-skin-portal .rd .rp-btn:focus { background: var(--r-green-dark); border-color: var(--r-green-dark); color: #fff; text-decoration: none; }
.rd-skin-portal .rd .rp-btn--white { background: #fff; border-color: #fff; color: var(--rp-ink); }
.rd-skin-portal .rd .rp-btn--white:hover { background: var(--r-green-pale); border-color: var(--r-green-pale); color: var(--rp-ink); }
.rd-skin-portal .rd .rp-btn--outline { background: transparent; border-color: var(--r-green-dark); color: var(--r-green-dark); }
.rd-skin-portal .rd .rp-btn--outline:hover { background: var(--r-green-dark); color: #fff; }
.rd-skin-portal .rd .rp-btn--sm { font-size: 12px; padding: 9px 14px; }
.rp-btn__icon { width: 17px; height: 17px; flex: none; vertical-align: -3px; } /* иконка в кнопке вместо символа ✉ — тот в Inter/Outfit выходил крошечным */

/* ---------- hero (front page) ---------- */
.rp-hero { position: relative; min-height: 560px; display: flex; align-items: center; color: #fff; overflow: hidden; isolation: isolate; }
.rp-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.rp-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,30,22,.78) 0%, rgba(10,30,22,.55) 45%, rgba(10,30,22,.15) 100%); }
.rp-hero__in { padding-block: 72px; max-width: 1320px; width: 100%; } /* flex-элемент иначе ужимается по ширине самой длинной строки (чипы) и центрируется — при смене языка hero прыгал на ~150px влево-вправо (Ойбек, 17.09) */
.rd-skin-portal .rd .rp-hero__title { color: #fff; font-size: 48px; line-height: 1.15; font-weight: 600; max-width: 18ch; margin: 0 0 22px; }
.rp-hero__lead { font-size: 17px; line-height: 1.6; max-width: 60ch; margin: 0 0 34px; color: rgba(255,255,255,.92); }

/* ---------- sections and titles ---------- */
.rp-section { padding-block: 64px; }
.rp-band { background: var(--r-gray-bg); padding-block: 64px; }
.rd-skin-portal .rd .rp-title { font-size: 34px; text-align: center; margin: 0 0 44px; position: relative; padding-bottom: 14px; }
.rd-skin-portal .rd .rp-title::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 84px; height: 4px; border-radius: 2px; background: var(--rp-line); transform: translateX(-50%); }
.rd-skin-portal .rd .rp-title--left { text-align: left; margin-bottom: 22px; }
.rd-skin-portal .rd .rp-title--left::after { left: 0; transform: none; }
.rd-skin-portal .rd .rp-title__sub { text-align: center; max-width: 64ch; margin: -26px auto 36px; color: var(--r-text-muted); font-size: 15.5px; } /* специфичность выше .rd p { margin: 0 }, иначе подзаголовок прилипал и не центрировался (17.09) */

/* about + tiles */
.rp-about { display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; align-items: start; }
.rp-about__text p { margin: 0 0 16px; line-height: 1.7; font-size: 15.5px; }
.rp-about__text .rp-btn { margin-top: 10px; }
/* «О базе» справа — карточка «в цифрах» (17.09, вместо четырёх плиток и отдельной секции): кольцо по типам, столбики по годам, строка цифр */
/* «База в цифрах» — 18.09, вариант D (design/version2/glance-variants.html): тонкое кольцо, сетка чисел, линия по годам */
.rd-skin-portal .rd .rp-glance { padding: 22px 26px 20px; gap: 0; }
.rp-glance__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 0 16px; }
.rd-skin-portal .rd .rp-glance__title { font-size: 18px; margin: 0; }
.rd-skin-portal .rd .rp-glance__all { font-size: 13px; font-weight: 500; color: var(--rp-btn); white-space: nowrap; }
.rd-skin-portal .rd .rp-glance__sub { display: flex; justify-content: space-between; align-items: baseline; font-size: 11.5px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--r-text-muted); font-weight: 600; margin: 22px 0 6px; font-family: var(--rp-font-body); }
.rp-glance__range { letter-spacing: 0; text-transform: none; font-weight: 400; font-size: 12px; }
.rd-ring { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 24px; align-items: center; }
.rd-ring__svg { width: 140px; height: 140px; display: block; }
.rd-ring__total { font-family: var(--rp-font-head); font-size: 30px; font-weight: 600; fill: var(--r-green-dark); }
.rd-ring__caption { font-family: var(--rp-font-body); font-size: 7px; fill: var(--r-text-muted); text-transform: uppercase; letter-spacing: 1px; }
.rd-ring__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.rd-ring__cell { border-left: 2px solid var(--rp-tile-line); padding-left: 10px; min-width: 0; }
.rd-ring__n { display: block; font-family: var(--rp-font-head); font-size: 24px; line-height: 1; color: var(--r-green-dark); font-weight: 600; }
.rd .rd-ring__label { display: block; font-size: 12.5px; color: var(--r-text-muted); margin-top: 4px; line-height: 1.25; }
.rd a.rd-ring__label:hover { color: var(--r-green-dark); }
.rd-spark__plot { position: relative; height: 64px; }
.rd-spark__svg { display: block; width: 100%; height: 100%; }
.rd-spark__dot { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #fff; border: 2px solid var(--r-green-mid); box-sizing: border-box; }
.rd-spark__dot--max { background: var(--r-green-mid); }
.rd-spark__labels { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); text-align: center; font-size: 11.5px; color: var(--r-text-muted); }
.rd-spark__labels b { display: block; font-family: var(--rp-font-head); font-size: 13px; color: var(--rp-ink); font-weight: 600; }
.rd-spark__zero b { color: var(--r-text-muted); font-weight: 500; }
/* плотный ряд (больше десяти лет): точка и число только у наибольшего года, подписи — круглые годы.
   Остальные точки не рисуются (opacity, не display:none — иначе элемента для курсора не существует
   и подсказка при наведении тоже не сработает), но на hover показывают свою же зелёную подсказку
   вместо чёрного системного title — тот же стиль, что у постоянного числа пикового года. */
.rd-spark--dense .rd-spark__plot { margin-top: 16px; }
.rd-spark--dense .rd-spark__dot:not(.rd-spark__dot--max) { opacity: 0; cursor: default; }
.rd-spark--dense .rd-spark__dot:not(.rd-spark__dot--max):hover { opacity: 1; }
.rd-spark--dense .rd-spark__dot:not(.rd-spark__dot--max):hover::after {
	content: attr(data-tip); position: absolute; left: 50%; bottom: 15px; transform: translateX(-50%);
	background: var(--r-green-dark); color: #fff; font-family: var(--rp-font-body); font-size: 11.5px;
	font-weight: 600; line-height: 1; padding: 5px 9px; border-radius: 6px; white-space: nowrap;
	pointer-events: none; box-shadow: 0 4px 10px rgba(0,0,0,.18);
}
.rd-spark--dense .rd-spark__dot:not(.rd-spark__dot--max):hover::before {
	content: ""; position: absolute; left: 50%; bottom: 9px; transform: translateX(-50%);
	border: 4px solid transparent; border-top-color: var(--r-green-dark); pointer-events: none;
}
.rd-spark--dense .rd-spark__dot--max::after { content: attr(data-n); position: absolute; font-style: normal; left: 50%; bottom: 9px; transform: translateX(-50%); font-family: var(--rp-font-head); font-size: 13px; font-weight: 600; line-height: 1; color: var(--rp-ink); white-space: nowrap; }
.rp-glance__row { list-style: none; margin: 20px 0 0; padding: 14px 0 0; border-top: 1px solid var(--rp-border); display: flex; flex-wrap: wrap; gap: 8px 26px; font-size: 13.5px; color: var(--r-text-muted); }
.rp-glance__row b { font-family: var(--rp-font-head); font-size: 20px; color: var(--r-green-dark); margin-right: 4px; }

/* ---------- cards ---------- */
.rp-cards { display: grid; gap: 24px; }
.rd-skin-portal .rd .rp-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rp-border); border-radius: 10px; box-shadow: var(--r-shadow); color: var(--rp-text); overflow: hidden; transition: box-shadow .15s, transform .15s; }
.rd-skin-portal .rd a.rp-card:hover, .rd-skin-portal .rd a.rp-card:focus { text-decoration: none; box-shadow: 0 8px 24px rgba(0,0,0,.1); transform: translateY(-2px); color: var(--rp-text); }
.rp-card__img { display: block; aspect-ratio: 3 / 2; background: var(--r-gray-light); }
.rp-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rp-card__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 18px 20px; flex: 1; }
.rd-skin-portal .rd .rp-card__title { font-family: var(--rp-font-head); font-size: 16px; font-weight: 600; color: var(--rp-ink); line-height: 1.3; margin: 0; }
.rd-skin-portal .rd .rp-card__title a { color: inherit; }
.rd-skin-portal .rd .rp-card__title a:hover { color: var(--r-green-mid); text-decoration: none; }
.rp-status { font-size: 12.5px; color: var(--r-green-mid); font-weight: 600; }
.rp-status::before { content: "•"; margin-right: 6px; }
.rp-status--off { color: var(--r-text-muted); }
.rd-skin-portal .rd .rp-card__more { margin-top: auto; font-size: 13px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--rp-ink); }
.rd-skin-portal .rd .rp-card__more--dl { color: var(--r-green-mid); }
.rp-card__icon { width: 44px; height: 44px; color: var(--r-green-mid); }
.rp-card__n { font-size: 13px; color: var(--r-text-muted); }
/* Карусель (17.09): лента со scroll-snap, стрелки и точки — assets/js/resiland.js (data-rd-carousel); без библиотек */
.rp-carousel { position: relative; }
.rp-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 2px; scroll-behavior: smooth; scrollbar-width: none; padding: 6px 2px 14px; margin: -6px -2px -14px; } /* поля 2px — чтобы тень карточек не резалась; scroll-padding возвращает первую карточку в scrollLeft 0 */
.rp-track::-webkit-scrollbar { display: none; }
.rp-track > * { scroll-snap-align: start; flex: none; }
.rd-skin-portal .rd .rp-carousel__btn { position: absolute; top: 50%; z-index: 2; width: 40px; height: 40px; margin-top: -24px; border-radius: 50%; border: 1px solid var(--rp-border); background: #fff; color: var(--rp-ink); font-size: 24px; line-height: 1; cursor: pointer; display: grid; place-items: center; box-shadow: 0 6px 18px rgba(0,0,0,.12); transition: opacity .15s, background .15s; padding: 0 0 3px; }
.rd-skin-portal .rd .rp-carousel__btn:hover { background: var(--r-green-dark); color: #fff; border-color: var(--r-green-dark); }
.rd-skin-portal .rd .rp-carousel__btn[disabled] { opacity: 0; pointer-events: none; }
.rp-carousel__btn--prev { left: -20px; } .rp-carousel__btn--next { right: -20px; }
.rp-carousel__dots { list-style: none; margin: 14px 0 0; padding: 0; display: flex; justify-content: center; gap: 6px; }
.rp-carousel__dots:empty { display: none; }
.rp-carousel__dots li { width: 8px; height: 8px; border-radius: 50%; background: var(--rp-border); transition: background .15s, width .15s; }
.rp-carousel__dots li.is-active { background: var(--r-green-mid); width: 22px; border-radius: 4px; }
/* страны — «ровные карточки» (Ойбек, 18.09, вариант A; история: 17.09 после 14 макетов выбран флаг 16:9 + статистика,
   18.09 списки строк «Типы / Темы» тянули карточки под Узбекистан — четыре из пяти стояли наполовину пустыми):
   пять карточек в ряд, флаг без бейджа, название со стрелкой, число крупно, типы и темы пилюлями .rp-chip
   (три типа и главная тема, остальное «+N»); при наведении на флаг снизу въезжает полупрозрачная плитка фактов */
.rp-cards--countries { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.rd-skin-portal .rd .rp-cty { transition: transform .15s, box-shadow .15s; }
.rd-skin-portal .rd .rp-cty:hover, .rd-skin-portal .rd .rp-cty:focus-visible { text-decoration: none; color: var(--rp-text); transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,.14); }
.rp-cty__flag { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--r-gray-light); } /* 18.09: 3:2, как сами картинки flag-*.jpg — при 16:9 cover срезал ~8 % сверху и снизу: у Узбекистана полумесяц и верхний ряд звёзд, у Туркменистана гёль и венок, у Таджикистана ломалось 2:3:2 */
.rp-cty__flag img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.rd-skin-portal .rd .rp-cty:hover .rp-cty__flag img { transform: scale(1.04); }
.rp-cty__body { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px 16px; flex: 1; }
.rp-cty__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.rd-skin-portal .rd .rp-cty__name { font-family: var(--rp-font-head); font-size: 17px; font-weight: 600; color: var(--rp-ink); line-height: 1.2; }
.rp-cty__arrow { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--rp-tile); color: var(--r-green-dark); line-height: 0; transition: background .15s, color .15s; } /* стрелка — SVG: глиф «→» в круге сидел ниже центра (21.09) */
.rp-cty__arrow svg { display: block; }
.rd-skin-portal .rd .rp-cty:hover .rp-cty__arrow { background: var(--r-green-dark); color: #fff; }
.rp-cty__n { font-size: 12px; color: var(--r-text-muted); margin-top: -4px; }
.rp-cty__n b { font-family: var(--rp-font-head); font-size: 22px; color: var(--r-green-dark); margin-right: 3px; }
.rp-cty__chips { display: flex; flex-wrap: wrap; gap: 8px; } /* свободнее: 8 вместо 5 (письмо Николаенко 2.1, 06.11.2026) */
.rp-cty__chips--subj { padding-top: 10px; border-top: 1px solid var(--rp-border); }
.rd-skin-portal .rd .rp-cty .rp-chip { color: var(--rp-text); }
.rd-skin-portal .rd .rp-cty .rp-chip b { color: var(--r-green-dark); }
.rd-skin-portal .rd .rp-cty .rp-chip--soft { color: var(--r-text-muted); }
.rp-cty__empty { font-size: 12.5px; color: var(--r-text-muted); }
/* плитка фактов (Ойбек, 17.09: вариант «б», но «прозрачнее»): флаг остаётся на месте, снизу въезжает тёмно-зелёная плитка
   с размытием — языки, уровень, открытый доступ, последний год; на телефоне наведения нет — плитка не показывается */
.rp-cty__tile { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 8px; align-content: center; position: absolute; inset: 0; padding: 10px 12px; background: rgba(10,30,22,.62); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); color: #fff; font-size: 11px; font-weight: 500; text-shadow: 0 1px 2px rgba(0,0,0,.35); transform: translateY(100%); transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.rp-cty__tile span { min-width: 0; overflow-wrap: anywhere; } /* 18.09: без обрезания «Национальный 1…» — переносится */
.rp-cty__tile small { display: block; font-size: 8.5px; color: #B7E4C7; text-transform: uppercase; letter-spacing: .6px; margin-bottom: 1px; font-weight: 600; white-space: normal; line-height: 1.1; }
.rd-skin-portal .rd .rp-cty:hover .rp-cty__tile, .rd-skin-portal .rd .rp-cty:focus-visible .rp-cty__tile { transform: none; }
/* записи — карточки в ленте (17.09): цветная полоса типа сверху, тип, год · страна, название и аннотация по три строки, низ проявляется при наведении */
.rp-docs-track > * { width: calc((100% - 2 * 18px) / 3); }
.rd-skin-portal .rd .rp-doc { padding: 20px 22px 18px; gap: 12px; border-top: 4px solid var(--r-green-mid); transition: transform .15s, box-shadow .15s; }
.rd-skin-portal .rd .rp-doc:hover, .rd-skin-portal .rd .rp-doc:focus-within { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,.12); }
.rd-skin-portal .rd .rp-doc--legal { border-top-color: var(--r-earth); } .rd-skin-portal .rd .rp-doc--dataset { border-top-color: var(--r-sky); } .rd-skin-portal .rd .rp-doc--strategy { border-top-color: var(--rp-strategy); } .rd-skin-portal .rd .rp-doc--guideline { border-top-color: var(--r-green-light); } .rd-skin-portal .rd .rp-doc--research { border-top-color: var(--r-green-dark); } .rd-skin-portal .rd .rp-doc--other, .rd-skin-portal .rd .rp-doc--external { border-top-color: var(--r-gray-light); }
.rp-doc__head { display: flex; align-items: center; gap: 14px; }
.rp-doc__head > span:last-child { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rd-skin-portal .rd .rp-doc .rd-vis { width: 44px; height: 44px; flex: none; }
.rp-doc__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--rp-border); font-size: 12.5px; color: var(--r-text-muted); opacity: .55; transition: opacity .15s; }
.rd-skin-portal .rd .rp-doc:hover .rp-doc__foot, .rd-skin-portal .rd .rp-doc:focus-within .rp-doc__foot { opacity: 1; }
.rd-skin-portal .rd .rp-doc__open { font-size: 13px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--r-green-mid); white-space: nowrap; }
.rp-tabs { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--r-gray-bg); border: 1px solid var(--rp-border); }
.rd-skin-portal .rd .rp-tab { border: 0; background: transparent; border-radius: 999px; padding: 8px 16px; font-family: var(--rp-font-body); font-size: 13.5px; font-weight: 600; color: var(--rp-text); cursor: pointer; transition: background .15s, color .15s; }
.rd-skin-portal .rd .rp-tab.is-active { background: #fff; color: var(--r-green-dark); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.rd-skin-portal .rd .rp-tab:focus-visible { outline: 2px solid var(--r-green-mid); outline-offset: 1px; }
.rp-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
/* предметы на главной — плитки с иконкой в кружке и счётчиком в углу (17.09, вариант D по выбору Ойбека; до этого пилюли); пустые приглушены */
.rp-subjects { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; max-width: 1100px; margin: 0 auto; }
.rd-skin-portal .rd .rp-subject { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; width: 198px; padding: 22px 12px 18px; border-radius: 12px; background: #fff; border: 1px solid var(--rp-border); box-shadow: var(--r-shadow); color: var(--rp-ink); font-size: 14.5px; font-weight: 500; line-height: 1.3; transition: border-color .15s, box-shadow .15s, transform .15s; } /* название целиком, без обрезки, кегль 14,5 вместо 13,5 (письмо Николаенко 2.2, 2.4; 06.11.2026) */
.rd-skin-portal .rd .rp-subject:hover, .rd-skin-portal .rd .rp-subject:focus-visible { text-decoration: none; border-color: var(--r-green-mid); box-shadow: 0 8px 22px rgba(0,0,0,.1); transform: translateY(-2px); color: var(--rp-ink); }
.rp-subject__icon { width: 52px; height: 52px; padding: 13px; box-sizing: border-box; border-radius: 50%; background: var(--rp-tile); color: var(--r-green-dark); flex: none; }
.rp-subject__name { min-height: calc(3 * 1.3em); } /* место под три строки: ряды одной высоты, выше только ряд с четырёхстрочным названием */
.rp-subject__n { position: absolute; top: 10px; right: 10px; font-size: 12px; font-weight: 600; color: var(--r-green-dark); background: var(--rp-tile); border-radius: 999px; padding: 2px 8px; min-width: 14px; text-align: center; }
.rd-skin-portal .rd .rp-subject--empty { color: var(--r-text-muted); background: var(--r-gray-bg); box-shadow: none; }
.rp-subject--empty .rp-subject__icon { color: var(--r-text-muted); background: #fff; opacity: .8; }
.rp-subject--empty .rp-subject__n { color: var(--r-text-muted); background: #fff; }
@media (max-width: 640px) { .rp-subjects { gap: 10px; } .rd-skin-portal .rd .rp-subject { width: calc(50% - 5px); padding: 18px 10px 14px; } }
.rp-label { font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--r-green-mid); }
.rp-date { font-size: 13.5px; color: var(--r-text-muted); }
.rp-card__text { font-size: 14px; line-height: 1.6; color: var(--rp-text); margin: 0; }
/* «Популярные записи» — вариант B (17.09): слева крупная карточка активной записи, справа вертикальная лента строк,
   которая каждые 4 с сдвигается на строку вверх (JS); верхняя строка — активная */
.rp-feat { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 22px; align-items: stretch; } /* карточка слева тянется до низа ленты справа — низы ровные (21.09) */
.rp-feat__stage { display: grid; }
.rd-skin-portal .rd .rp-feat__card { grid-area: 1 / 1; padding: 26px 28px 20px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .25s ease, transform .25s ease, visibility 0s .25s; }
.rd-skin-portal .rd .rp-feat__card.is-active { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.rd-skin-portal .rd .rp-feat__card:hover { transform: none; box-shadow: var(--r-shadow); } /* карточка на сцене не «подпрыгивает» */
.rd-skin-portal .rd .rp-feat__title { font-size: 21px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.rp-feat__text { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; font-size: 14.5px; }
.rd-skin-portal .rd .rp-feat__card .rp-doc__foot { opacity: 1; }
/* «барабан»: окно на пять строк, активная — в центре, соседние наклонены и приглушены, края растворяются */
.rp-feat__win { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.5) 0, #000 20%, #000 80%, rgba(0,0,0,.5) 100%); mask-image: linear-gradient(to bottom, rgba(0,0,0,.5) 0, #000 20%, #000 80%, rgba(0,0,0,.5) 100%); overscroll-behavior: contain; } /* высоту ставит JS; без JS видны все строки */
.rp-feat__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; will-change: transform; }
.rp-feat__list > li { transform-origin: 50% 50%; will-change: transform, opacity; } /* прозрачность и размер по расстоянию от центра ставит JS, покадрово — плавно */
/* ручная прокрутка: колесо и стрелки ↑↓ на десктопе, на тач-устройствах — две кнопки у правого края */
.rd-skin-portal .rd .rp-feat__nav { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: none; flex-direction: column; gap: 6px; z-index: 2; }
.rd-skin-portal .rd .rp-feat__nav button { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--rp-border); background: rgba(255,255,255,.92); color: var(--r-green-dark); font-size: 16px; line-height: 1; cursor: pointer; padding: 0; display: grid; place-items: center; box-shadow: 0 2px 6px rgba(0,0,0,.08); }
@media (hover: none) { .rd-skin-portal .rd .rp-feat__nav { display: flex; } .rd-skin-portal .rd .rp-feat__row { padding-right: 48px; } } /* под кнопками ▴▾ строка не пишет текст — они накрывали название активной записи (Ойбек, 18.09) */
.rd-skin-portal .rd .rp-feat__row { display: flex; align-items: center; gap: 14px; padding: 11px 16px 11px 14px; background: #fff; border: 1px solid var(--rp-border); border-left: 3px solid transparent; border-radius: 10px; color: var(--rp-ink); text-decoration: none; transition: border-color .2s, background .2s, box-shadow .2s; }
.rd-skin-portal .rd .rp-feat__row:hover { border-color: var(--r-green-mid); text-decoration: none; color: var(--rp-ink); }
.rd-skin-portal .rd .rp-feat__row.is-active { border-color: var(--r-green-mid); border-left-color: var(--r-green-dark); background: var(--rp-tile); box-shadow: 0 3px 10px rgba(0,0,0,.06); }
.rd-skin-portal .rd .rp-feat__vis { width: 38px; height: 38px; flex: none; }
.rp-feat__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rp-feat__rtitle { font-size: 14px; font-weight: 600; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rp-feat__rmeta { font-size: 12.5px; color: var(--r-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (prefers-reduced-motion: reduce) { .rd-skin-portal .rd .rp-feat__card { transition: none; } }
.rp-viewall { text-align: right; margin-top: 22px; font-size: 14px; }
.rp-viewall a { font-weight: 600; }

/* «На главном портале» (17.09): светлая секция в стиле портала — новости и публикации с resilandca.net, ссылки на разделы, плашка с кнопкой */
.rp-bridge__sub a { font-weight: 600; }
.rp-bridge__badge { align-self: flex-start; background: var(--r-green-mid); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .2px; padding: 3px 9px; border-radius: 4px; }
.rp-bridge__cols { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.rp-bridge__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.rd-skin-portal .rd .rp-bridge__card--lead { grid-column: 1 / -1; flex-direction: row; }
.rp-bridge__card--lead .rp-bridge__img { width: 46%; flex: none; aspect-ratio: auto; }
.rd-skin-portal .rd .rp-bridge__card--lead .rp-card__title { font-size: 20px; }
.rp-bridge__img { aspect-ratio: 16 / 10; }
.rd-skin-portal .rd .rp-bridge__card .rp-card__title { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rd-skin-portal .rd .rp-bridge__side { padding: 22px 22px 20px; }
.rd-skin-portal .rd .rp-bridge__side-title { display: flex; justify-content: space-between; align-items: baseline; font-size: 17px; margin: 0 0 12px; }
.rd-skin-portal .rd .rp-bridge__side-title a { font-size: 13px; font-weight: 500; font-family: var(--rp-font-body); }
.rp-bridge__pubs { list-style: none; margin: 0 0 18px; padding: 0; }
.rp-bridge__pubs li { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid var(--rp-border); font-size: 14px; line-height: 1.35; }
.rd-skin-portal .rd .rp-bridge__pubs a { color: var(--rp-ink); }
.rd-skin-portal .rd .rp-bridge__pubs a:hover { color: var(--r-green-mid); text-decoration: none; }
.rp-bridge__pubs small { display: block; color: var(--r-text-muted); margin-top: 3px; font-size: 12.5px; }
.rp-bridge__pi { width: 20px; height: 20px; flex: none; color: var(--r-green-mid); margin-top: 1px; }
.rp-bridge__links { display: grid; gap: 8px; }
.rd-skin-portal .rd .rp-bridge__links a { display: flex; justify-content: space-between; padding: 10px 12px; border-radius: 6px; background: var(--r-green-pale); color: var(--r-green-dark); font-weight: 500; font-size: 14px; }
.rd-skin-portal .rd .rp-bridge__links a:hover { background: var(--r-green-mid); color: #fff; text-decoration: none; }
.rd-skin-portal .rd .rp-bridge__foot { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 24px; margin-top: 24px; padding: 18px 22px; }
.rp-bridge__foot span { font-size: 15px; } .rp-bridge__foot b { color: var(--rp-ink); }

/* call to action band */
.rp-cta { background: var(--r-green-pale); padding-block: 48px; }
.rp-cta__in { display: flex; flex-wrap: wrap; gap: 24px 48px; align-items: center; justify-content: space-between; }
.rd-skin-portal .rd .rp-cta__title { font-size: 26px; margin: 0 0 10px; }
.rp-cta__in p { max-width: 64ch; margin: 0; font-size: 15.5px; line-height: 1.6; }

/* ---------- page head (registry, term, search) ---------- */
/* Hero «Документов» — вариант B (Ойбек, 17.09): фото с тёмно-зелёной пеленой как на главной, слева текст и кнопка,
   справа стопка трёх последних документов (template-parts/registry-hero.php) */
.rp-pagehead { position: relative; min-height: 300px; display: flex; align-items: center; overflow: hidden; isolation: isolate; color: #fff; }
.rp-pagehead__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.rp-pagehead::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,30,22,.86) 0%, rgba(10,30,22,.72) 50%, rgba(10,30,22,.45) 100%); }
.rp-pagehead__in { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; padding-block: 44px; } /* width: 100% — иначе flex-элемент ужимается по содержимому и левый край не совпадает с колонками ниже */
.rp-pagehead__eyebrow { margin: 0 0 10px; font-size: 12px; letter-spacing: 1.6px; text-transform: uppercase; font-weight: 600; color: var(--r-green-light); }
.rd-skin-portal .rd .rp-pagehead__title { color: #fff; font-size: 44px; margin: 0 0 12px; }
.rd-skin-portal .rd .rp-pagehead__lead { max-width: 46ch; font-size: 16px; line-height: 1.55; margin: 0; color: rgba(255,255,255,.88); }
.rd-skin-portal .rd .rp-pagehead__lead a { color: #fff; text-decoration: underline; }
.rd-skin-portal .rd .rp-pagehead__cta { margin-top: 22px; }
/* справа в hero «Документов» — типы документов с числом (B3, 17.09): полупрозрачные строки в две колонки, без белых карточек и теней */
.rp-hfacts__tag { display: block; margin: 0 0 10px; font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase; font-weight: 600; color: var(--r-green-light); }
.rp-hfacts__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); } /* 18.09: цифры тонкими линиями, без плиток — выбор Ойбека из трёх макетов */
.rp-hfacts__list li { padding: 10px 14px 12px; border-left: 1px solid rgba(255,255,255,.22); }
.rp-hfacts__list li:nth-child(-n+3) { border-bottom: 1px solid rgba(255,255,255,.22); }
.rp-hfacts__list b { display: block; font-family: var(--rp-font-head); font-size: 30px; font-weight: 600; line-height: 1.1; color: #fff; letter-spacing: -.5px; }
.rp-hfacts__list span { display: block; margin-top: 4px; font-size: 12.5px; color: rgba(255,255,255,.8); line-height: 1.3; }

/* ---------- filters ---------- */
.rp-registry { padding-block: 32px 72px; }
.rp-filters { margin-bottom: 26px; }
.rp-filters__search { position: relative; }
.rd-skin-portal .rd .rp-input { width: 100%; box-sizing: border-box; font-family: var(--rp-font-body); font-size: 15px; padding: 12px 44px 12px 14px; border: 1px solid var(--rp-btn); border-radius: 10px; background: #fff; color: var(--rp-text); }
.rd-skin-portal .rd .rp-input:focus { outline: 2px solid var(--r-green-mid); outline-offset: 1px; }
.rd-skin-portal .rd .rp-filters__go { position: absolute; right: 0; top: 0; bottom: 0; height: 100%; width: 64px; border-radius: 0 10px 10px 0; background: var(--rp-btn); border: 0; color: var(--rp-btn-ink); padding: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background .15s, color .15s; } /* лупа — кнопка с заливкой, как «Найти» в hero (Ойбек, 17.09) */
.rd-skin-portal .rd .rp-filters__go:hover, .rd-skin-portal .rd .rp-filters__go:focus-visible { background: var(--r-green-dark); color: #fff; outline: none; }
.rp-filters__row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 16px; }
.rp-select select { font-family: var(--rp-font-body); font-size: 14px; line-height: 1.2; height: 44px; box-sizing: border-box; color: var(--rp-text); padding: 0 34px 0 12px; border: 2px solid var(--rp-btn); border-radius: 10px; background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%232F3B40' stroke-width='1.6'/></svg>") no-repeat right 12px center; appearance: none; -webkit-appearance: none; min-width: 170px; max-width: 260px; cursor: pointer; }
.rp-select--sort { margin-left: auto; }
.rp-select select:focus { outline: 2px solid var(--r-green-mid); outline-offset: 1px; }
.rp-filters__note { margin-top: 12px; font-size: 13px; color: var(--r-text-muted); }

/* ---------- list ---------- */
.rp-list { display: grid; gap: 18px; }
.rd-skin-portal .rd .rp-item { flex-direction: row; align-items: center; gap: 20px; padding: 22px 24px; }
.rp-item__icon { flex: none; display: flex; align-items: center; justify-content: center; width: 52px; height: 68px; border-radius: 6px; background: var(--r-gray-bg); border: 1px solid var(--rp-border); overflow: hidden; color: var(--r-sky); }
.rp-item__icon img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.rp-item__icon .rp-vis__icon { width: 26px; height: 26px; }
.rp-vis--legal .rp-vis__icon, .rp-vis--legal-act .rp-vis__icon { color: var(--r-earth); } .rp-vis--dataset .rp-vis__icon { color: var(--r-sky); } .rp-vis--report .rp-vis__icon { color: var(--r-green-mid); } .rp-vis--strategy .rp-vis__icon { color: var(--rp-strategy); }
.rp-item__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.rp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.rd-skin-portal .rd .rp-chip { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--r-gray-bg); color: var(--r-text-muted); } /* все чипы одинаково серые (Ойбек, 17.09); зелёный остаётся только у активных фильтров .rp-chip--x */
.rd-skin-portal .rd a.rp-chip:hover { background: var(--r-green-pale); color: var(--r-green-dark); text-decoration: none; }
.rd-skin-portal .rd .rp-chip--soft { background: var(--r-gray-bg); color: var(--r-text-muted); }
.rd-skin-portal .rd .rp-item__title { font-size: 17px; line-height: 1.35; margin: 0; }
.rp-item__text { font-size: 14px; line-height: 1.6; margin: 0; color: var(--rp-text); }
.rp-item__meta { font-size: 13px; color: var(--r-text-muted); margin: 0; }
.rp-item__act { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; align-self: stretch; }
.rp-item__file { font-size: 12px; color: var(--r-text-muted); }
/* низ правой колонки: просмотры · скачивания и «Поделиться» — в самом правом нижнем углу карточки */
.rp-item__foot { margin-top: auto; display: inline-flex; align-items: center; gap: 12px; padding-top: 10px; }
.rp-item__hits { display: inline-flex; align-items: center; gap: 5px; font-size: 13.5px; font-weight: 500; color: var(--r-text-muted); white-space: nowrap; }
.rp-item__hits svg { width: 19px; height: 19px; }
.rp-item__hits svg:not(:first-child) { margin-left: 10px; }
.rd-skin-portal .rd .rp-item__share { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 6px; background: transparent; color: var(--r-text-muted); cursor: pointer; padding: 0; box-shadow: none; }
.rd-skin-portal .rd .rp-item__share:hover { color: var(--r-green-dark); background: var(--rp-tile); }
.rp-item__share svg { width: 19px; height: 19px; }
.rp-pagination ul { justify-content: center; }
/* 404: «Популярные разделы» — белая карточка, как остальные блоки скина; с одной рамкой на сером фоне блок терялся (Ойбек, 17.09) */
.rd-skin-portal .rd .rd-404__aside { background: #fff; border: 1px solid var(--rp-border); border-radius: 10px; box-shadow: var(--r-shadow); padding: 20px 22px 8px; }
.rd-skin-portal .rd .rd-404__aside .rd-eyebrow { margin-bottom: 6px; }
.rd-skin-portal .rd .rd-404__aside .rd-axis-row { padding: 11px 0; border-top: 1px solid var(--rp-border); }
.rd-skin-portal .rd .rd-404__aside .rd-axis-row:first-of-type { border-top: 0; }
.rd-skin-portal .rd .rd-404__aside .rd-axis-row__aside { font-weight: 600; color: var(--r-green-dark); background: var(--rp-tile); border-radius: 999px; padding: 1px 9px; font-size: 12px; }
.rd-skin-portal .rd-pagination .page-numbers.current { background: var(--rp-btn); border-color: var(--rp-btn); color: var(--rp-btn-ink); }

/* ---------- footer: dark, four columns ---------- */
.rd-skin-portal .rd-footer { background: var(--rp-footer); }
.rd-skin-portal .rd-footer__title { font-family: var(--rp-font-head); font-size: 17px; letter-spacing: 0; text-transform: none; color: #fff; font-weight: 600; }
.rd-skin-portal .rd .rd-footer a { color: rgba(255,255,255,.85); }
.rd-skin-portal .rd .rd-footer a:hover { color: var(--rp-btn); }

/* ---------- inner pages: forms, account, 404, share and role dialogs — resiland.css markup restyled ---------- */
.rd-skin-portal :is(.rd, .rd-share-dlg) .rd-btn { background: var(--rp-btn); border-color: var(--rp-btn); color: var(--rp-btn-ink); text-transform: uppercase; font-size: 13px; letter-spacing: .6px; border-radius: 6px; }
.rd-skin-portal :is(.rd, .rd-share-dlg) .rd-btn:hover { background: var(--r-green-dark); border-color: var(--r-green-dark); color: #fff; }
.rd-skin-portal .rd .rd-btn--outline, .rd-skin-portal .rd .rd-btn--ghost { background: transparent; border-color: var(--r-green-dark); color: var(--r-green-dark); }
.rd-skin-portal .rd .rd-btn--outline:hover, .rd-skin-portal .rd .rd-btn--ghost:hover { background: var(--r-green-dark); color: #fff; }
.rd-skin-portal .rd .rd-btn--accent { background: var(--rp-btn); border-color: var(--rp-btn); color: #fff; } /* акцентная кнопка — зелёная, как все */
.rd-skin-portal .rd-eyebrow { color: var(--r-green-mid); }
.rd-skin-portal .rd-paper { background: var(--r-gray-bg); }

/* account (17.09, вариант B): карточка и список — как карточки скина; статусы — точка + текст, как на макете */
.rd-skin-portal .rd-acct__card, .rd-skin-portal .rd-acct__list { border-color: var(--rp-border); border-radius: 12px; }
.rd-skin-portal .rd-acct__row { border-top-color: var(--rp-border); }
.rd-skin-portal .rd-acct__tabs { border-bottom-color: var(--rp-border); }
.rd-skin-portal .rd .rd-acct__tab.is-current { color: var(--rp-ink); }
.rd-skin-portal .rd :is(.rd-acct__avatar, .rd-acct__tab b) { font-family: var(--rp-font-head); }
.rd-skin-portal .rd-acct__card-foot { border-top-color: var(--rp-border); }
/* «Изменить имя» под именем (19.10, page-account.php): ссылкой, как «Выйти», только зелёной; по нажатию — поле и «Сохранить»
   столбиком во всю ширину карточки (в строку поле в 252 px сжималось до 140). Поле — как в «Запросить роль»; на телефоне 16 px */
.rd-skin-portal .rd-acct__rename { width: 100%; margin: 0 0 8px; }
.rd-skin-portal .rd-acct__rename > summary { display: inline-block; list-style: none; cursor: pointer; font-size: 13.5px; font-weight: 600; color: var(--r-green-mid); }
.rd-skin-portal .rd-acct__rename > summary::-webkit-details-marker { display: none; }
.rd-skin-portal .rd-acct__rename > summary:hover { color: var(--r-green-dark); text-decoration: underline; }
.rd-skin-portal .rd-acct__rename-form { display: grid; gap: 8px; margin-top: 10px; }
.rd-skin-portal .rd .rd-acct__rename-input { width: 100%; box-sizing: border-box; font-family: inherit; font-size: 14.5px; color: var(--rp-ink); padding: 10px 12px; border: 1px solid #CBD5E1; border-radius: 8px; background: #fff; line-height: 1.45; box-shadow: none; text-align: left; }
.rd-skin-portal .rd .rd-acct__rename-input:focus { border-color: var(--r-green-mid); outline: 2px solid var(--r-green-pale); outline-offset: 0; }
.rd-skin-portal .rd-acct__saved { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: var(--r-green-mid); }
/* «Что может эта роль?» — ссылкой под ролью (№ 143, 06.11; 07.11 — «Что это значит?» было непонятно, к чему вопрос; рядом с ролью текст
   не помещается ни на одном языке, 257–391 px при 250 в карточке; значок «i» Ойбек сменил на текст). Как «Изменить имя».
   Окно — resiland_role_help_dialog(). Без JS открывается по якорю, как запрос роли */
.rd-skin-portal .rd-acct__role { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.rd-skin-portal .rd .rd-acct__rolehelp { font-size: 13.5px; font-weight: 600; color: var(--r-green-mid); text-decoration: none; }
.rd-skin-portal .rd .rd-acct__rolehelp:hover { color: var(--r-green-dark); text-decoration: underline; }
.rd-rolehelp p { margin: 0; font-size: 14.5px; line-height: 1.5; }
.rd-rolehelp .rd-rolehelp__next { padding-top: 14px; border-top: 1px solid var(--rp-border); font-weight: 600; }
.rd-rolehelp .rd-actions { margin: 2px 0 0; }
.rd-rolehelp:target:not([open]) { display: block; position: static; margin: 16px auto 0; box-shadow: none; border: 1px solid var(--rp-border); }
.rd-skin-portal .rd-acct__err { margin: -2px 0 0; font-size: 13px; font-weight: 600; color: var(--rp-warn); text-align: left; } /* «Укажите имя.» под полем (C-Н12) */
@media (max-width: 720px) { .rd-skin-portal .rd .rd-acct__rename-input { font-size: 16px; } }
.rd-skin-portal .rd .rd-acct__row-title { color: var(--rp-ink); }
.rd-skin-portal .rd-status { display: inline-flex; align-items: center; gap: 6px; border: 0; padding: 0; border-radius: 0; text-transform: none; letter-spacing: 0; font-size: 12.5px; font-weight: 600; }
.rd-skin-portal .rd-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.rd-skin-portal .rd-acct__empty { border-color: var(--rp-border); border-left: 3px solid var(--r-green-mid); border-radius: 0 10px 10px 0; } /* полоса «внимание» — зелёная (Ойбек, 18.09) */

/* submit (17.09): фото-полоса как .rp-pagehead, карточки скина, шаги Outfit */
.rd-skin-portal .rd-submit-hero::after { background: linear-gradient(90deg, rgba(10,30,22,.88) 0%, rgba(10,30,22,.72) 55%, rgba(10,30,22,.4) 100%); }
.rd-skin-portal .rd .rd-submit-hero__title { color: #fff; font-size: 40px; font-weight: 600; letter-spacing: 0; text-shadow: none; }
.rd-skin-portal .rd-submit-hero .rd-eyebrow--light { color: var(--r-green-light); text-shadow: none; letter-spacing: 1.6px; }
.rd-skin-portal .rd-flow, .rd-skin-portal .rd-gate, .rd-skin-portal .rd-submit__card { border-color: var(--rp-border); border-radius: 12px; }
.rd-skin-portal .rd-flow li { border-right-color: var(--rp-border); }
.rd-skin-portal .rd :is(.rd-flow b, .rd-stepper__item b) { font-family: var(--rp-font-head); }
.rd-skin-portal .rd-stepper__t, .rd-skin-portal .rd .rd-step__title { color: var(--rp-ink); }
.rd-skin-portal .rd-stepper__item.is-current { background: var(--rp-tile); }
.rd-skin-portal .rd-step__foot { border-top-color: var(--rp-border); }
.rd-skin-portal .rd .acf-form .rd-pill-list label { border-color: var(--rp-border); }
.rd-skin-portal .rd .acf-form .acf-input input[type="text"], .rd-skin-portal .rd .acf-form .acf-input input[type="url"], .rd-skin-portal .rd .acf-form .acf-input input[type="number"], .rd-skin-portal .rd .acf-form .acf-input textarea, .rd-skin-portal .rd .acf-form .acf-input select, .rd-skin-portal .rd .acf-form #acf-_post_title { border-color: #CBD5E1; border-radius: 8px; font-family: var(--rp-font-body); font-size: 14.5px; }
.rd-skin-portal .rd .acf-form .select2-container .select2-selection--single, .rd-skin-portal .rd .acf-form .select2-container .select2-selection--multiple { border-color: #CBD5E1; border-radius: 8px; font-family: var(--rp-font-body); }
.rd-skin-portal .rd .acf-form .select2-container--default .select2-selection--single .select2-selection__rendered { font-size: 14.5px; }
.rd-skin-portal .rd .acf-form .acf-taxonomy-field .acf-actions.-hover .acf-icon.-plus { border-radius: 0 8px 8px 0; border-left-color: #CBD5E1; }
.rd-skin-portal.resiland-data .select2-container--default .select2-dropdown { font-family: var(--rp-font-body); border-color: var(--rp-border); }
.rd-skin-portal.resiland-data #acf-popup .acf-popup-box, .rd-skin-portal.resiland-data #acf-popup .acf-popup-box .title h3 { font-family: var(--rp-font-body); }
.rd-skin-portal.resiland-data .select2-container--default .select2-search--dropdown .select2-search__field { border-color: #CBD5E1; }
.rd-skin-portal .rd .acf-form .acf-form-submit .acf-button, .rd-skin-portal .rd .acf-form .acf-form-submit input[type="submit"] { background: var(--rp-btn); border-color: var(--rp-btn); color: var(--rp-btn-ink); text-transform: uppercase; font-size: 13px; letter-spacing: .6px; border-radius: 6px; font-weight: 700; }
.rd-skin-portal .rd .acf-form .acf-form-submit .acf-button:hover { background: var(--r-green-dark); border-color: var(--r-green-dark); color: #fff; }
@media (max-width: 900px) { .rd-skin-portal .rd .rd-submit-hero__title { font-size: 30px; } }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
	.rp-cards--countries { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rp-docs-track > * { width: calc((100% - 18px) / 2); }
	.rp-carousel__btn--prev { left: -12px; } .rp-carousel__btn--next { right: -12px; }
	.rp-bridge__cols { grid-template-columns: 1fr; }
	.rp-about { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 720px) {
	.rp-hero { min-height: 440px; }
	.rd-skin-portal .rd .rp-hero__title { font-size: 32px; }
	.rp-hero__lead { font-size: 15.5px; }
	.rd-skin-portal .rd .rp-title { font-size: 26px; margin-bottom: 30px; }
	.rp-section, .rp-band { padding-block: 44px; }
	.rp-cards--countries { grid-template-columns: 1fr; gap: 10px; }
	/* телефон (Ойбек, 18.09: «огромные стали»): пять флагов во всю ширину — 1,8 тыс. px одних флагов; карточка ложится строкой —
	   флаг 112 px слева, название, число и пилюли справа; плитка фактов при наведении на телефоне не нужна */
	.rd-skin-portal .rd .rp-cty { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 12px; padding: 10px 12px 10px 10px; }
	.rd-skin-portal .rd .rp-cty:hover, .rd-skin-portal .rd .rp-cty:focus-visible { transform: none; }
	.rp-cty__flag { border-radius: 6px; }
	.rp-cty__tile { display: none; }
	.rp-cty__body { padding: 0; gap: 6px; }
	.rd-skin-portal .rd .rp-cty__name { font-size: 16px; }
	.rp-cty__n { margin-top: -2px; }
	.rp-cty__n b { font-size: 19px; }
	.rp-cty__chips--subj { padding-top: 6px; }
	.rp-docs-track > * { width: 86%; }
	.rp-doc__foot { opacity: 1; } /* на телефоне наведения нет */
	/* «Популярные записи» на телефоне — карусель карточек свайпом (Ойбек, 18.09, вариант A): барабан без колеса не работает, кнопки ▴▾ чужие,
	   большая карточка стояла с пустотой (сцена по самой высокой), блок занимал два экрана. Лента строк скрыта, карточки — в ленту
	   со scroll-snap (как .rp-track), точки снизу ведёт data-rd-carousel; барабан (data-rd-feat) на этой ширине не запускается */
	.rp-feat { grid-template-columns: 1fr; gap: 12px; }
	.rp-feat__stage { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 2px; scroll-behavior: smooth; scrollbar-width: none; padding: 6px 2px 14px; margin: -6px -2px -14px; }
	.rp-feat__stage::-webkit-scrollbar { display: none; }
	.rd-skin-portal .rd .rp-feat__card { grid-area: auto; flex: 0 0 86%; scroll-snap-align: start; opacity: 1; visibility: visible; transform: none; transition: none; padding: 20px 20px 16px; }
	.rd-skin-portal .rd .rp-feat__title { font-size: 18px; -webkit-line-clamp: 3; }
	.rp-feat__text { -webkit-line-clamp: 4; font-size: 14px; }
	.rp-feat__win { display: none; }
	.rp-feat .rp-carousel__dots { margin: 0; }
	.rd-ring { grid-template-columns: 1fr; justify-items: center; }
	.rd-ring__grid { width: 100%; }
	.rp-bridge__grid { grid-template-columns: 1fr; }
	.rd-skin-portal .rd .rp-bridge__card--lead { flex-direction: column; }
	.rp-bridge__card--lead .rp-bridge__img { width: auto; aspect-ratio: 16 / 10; }
	.rd-skin-portal .rd .rp-pagehead__title { font-size: 30px; }
	.rp-pagehead { min-height: 220px; }
	.rp-pagehead__in { grid-template-columns: 1fr; gap: 28px; }
	.rp-hfacts__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rp-hfacts__list b { font-size: 26px; white-space: nowrap; } /* «1993–2026» в 30px рвалось на две строки в половине экрана (Ойбек, 18.09) */
	.rp-hfacts__list li:nth-child(-n+4) { border-bottom: 1px solid rgba(255,255,255,.22); }
	.rp-select select { min-width: 0; width: 100%; max-width: none; }
	.rp-select { width: calc(50% - 6px); }
	.rp-select--sort { margin-left: 0; }
	.rd-skin-portal .rd .rp-item { flex-direction: column; align-items: stretch; gap: 14px; padding: 18px; }
	.rp-item__act { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
	.rp-item__foot { margin-top: 0; padding-top: 0; margin-left: auto; }
}

/* ============================================================
   Documents page (17.09): search with suggestions, filter panel, results
   ============================================================ */
.rp-docs { padding-block: 28px 72px; }
.rp-docs__search { position: relative; margin-bottom: 22px; }
.rd-skin-portal .rd .rp-docs__q { font-size: 16px; padding: 14px 48px 14px 16px; }
.rp-suggest { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 60; background: #fff; border: 1px solid var(--rp-border); border-radius: 10px; box-shadow: 0 12px 32px rgba(0,0,0,.12); padding: 6px; max-height: 420px; overflow: auto; }
.rp-suggest__group + .rp-suggest__group { border-top: 1px solid var(--rp-border); margin-top: 6px; padding-top: 6px; }
.rd-skin-portal .rd .rp-suggest__item { display: flex; align-items: baseline; gap: 10px; padding: 8px 10px; border-radius: 6px; color: var(--rp-ink); font-size: 14.5px; line-height: 1.35; }
.rd-skin-portal .rd .rp-suggest__item:hover, .rd-skin-portal .rd .rp-suggest__item:focus { background: var(--r-gray-bg); text-decoration: none; outline: none; }
.rp-suggest__kind { flex: none; font-size: 11px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--r-green-mid); min-width: 92px; }
.rp-suggest__n { margin-left: auto; font-size: 12px; color: var(--r-text-muted); }
.rp-docs__grid { display: grid; grid-template-columns: 272px minmax(0, 1fr); gap: 28px; align-items: start; }

/* panel — each kind of data in its own form (17.09, evening) */
.rp-panel { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow: auto; background: #fff; border: 1px solid var(--rp-border); border-radius: 12px; box-shadow: var(--r-shadow); scrollbar-width: thin; padding: 0 18px 18px; }
.admin-bar .rp-panel { top: 48px; max-height: calc(100vh - 64px); } /* под панелью администратора WordPress */
.rp-panel__head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 10px; margin: 0 -18px 6px; padding: 14px 18px; background: #fff; border-bottom: 1px solid var(--rp-border); }
.rp-panel__name { font-family: var(--rp-font-head); font-size: 17px; font-weight: 600; color: var(--rp-ink); display: inline-flex; align-items: center; }
.rp-panel__n { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; margin-left: 8px; border-radius: 999px; background: var(--rp-btn); color: var(--rp-btn-ink); font-size: 12px; font-family: var(--rp-font-body); }
.rp-panel__n.is-zero { display: none; }
.rd-skin-portal .rd .rp-panel__reset { margin-left: auto; font-size: 13px; font-weight: 600; color: var(--r-text-muted); }
.rd-skin-portal .rd .rp-panel__reset:hover { color: var(--r-green-dark); text-decoration: none; }
.rp-panel__reset.is-hidden { display: none; }
.rp-panel__close, .rp-mobilebar, .rp-panel__foot { display: none; }
.rp-f { padding: 14px 0 16px; border-bottom: 1px solid var(--rp-border); }
.rp-f:last-of-type { border-bottom: 0; }
.rd-skin-portal .rd .rp-f__title { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-family: var(--rp-font-body); font-size: 11.5px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--r-text-muted); }
.rp-f__on { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--r-green-pale); color: var(--r-green-dark); font-size: 11px; letter-spacing: 0; }
.rp-f__on.is-zero { display: none; }
.rp-panel input[type="checkbox"], .rp-panel input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.rp-f--sort { display: none; } /* сортировка в панели — только на телефоне (шторка), см. @media 960 */
[data-rd-opt] { position: relative; cursor: pointer; user-select: none; }
[data-rd-opt].is-zero { opacity: .45; pointer-events: none; cursor: default; } /* 0 документов — не нажимается (Ойбек, 16.10); выбранный остаётся кликабельным, is-zero с него снят */
[data-rd-opt]:has(input:checked) { opacity: 1; }
[data-rd-opt]:has(input:focus-visible) { outline: 2px solid var(--r-green-mid); outline-offset: 2px; }

/* country: compact rows — flag, name, count (tiles were too tall and long names touched the border; Ойбек, 17.09) */
.rp-flags { display: flex; flex-direction: column; gap: 3px; }
.rp-flag { display: flex; align-items: center; gap: 10px; padding: 5px 8px; border: 1.5px solid transparent; border-radius: 8px; transition: border-color .15s, background .15s; }
.rp-flag:hover { background: var(--r-gray-bg); }
.rp-flag:has(input:checked) { border-color: var(--r-green-dark); background: var(--r-green-pale); }
.rp-flag__img { display: block; flex: none; width: 30px; height: 20px; border-radius: 3px; overflow: hidden; box-shadow: 0 0 0 1px rgba(0,0,0,.1); background: var(--r-gray-light); }
.rp-flag__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rp-flag__name { flex: 1; min-width: 0; font-size: 13.5px; line-height: 1.25; color: var(--rp-ink); font-weight: 500; }
.rp-flag:has(input:checked) .rp-flag__name { font-weight: 600; }
.rp-flag__n { font-size: 11.5px; color: var(--r-text-muted); font-weight: 600; font-variant-numeric: tabular-nums; }
.rp-flag:has(input:checked) .rp-flag__n { color: var(--r-green-dark); }

/* pills: document type, language, format */
/* Пилюли панели фильтров — область .rp-panel: на главной те же классы .rp-pills/.rp-pill у предметов, у них свои правила (18.09) */
.rd-skin-portal .rd .rp-panel .rp-pills { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 6px; max-width: none; margin: 0; }
/* Пилюля — строчный поток, не flex: длинное название переносится на вторую строку, а счётчик остаётся
   сразу за последним словом, а не у правого края растянутой пилюли. */
.rd-skin-portal .rd .rp-panel .rp-pill { display: inline-block; max-width: 100%; padding: 6px 10px 6px 8px; border: 1.5px solid var(--rp-border); border-radius: 14px; font-size: 12.5px; font-weight: 500; color: var(--rp-ink); line-height: 1.25; transition: border-color .15s, background .15s; }
.rd-skin-portal .rd .rp-panel .rp-pill > span { vertical-align: middle; } /* счётчик — внутри span через &nbsp;, на свою строку не уезжает */
.rd-skin-portal .rd .rp-panel .rp-pill:hover { border-color: var(--rp-btn); box-shadow: none; }
.rd-skin-portal .rd .rp-panel .rp-pill:has(input:checked) { border-color: var(--r-green-dark); background: var(--r-green-pale); color: var(--r-green-dark); font-weight: 600; } /* выбранное — светло-зелёное с тёмной рамкой во всех группах, как страна (Ойбек, 16.10) */
.rd-skin-portal .rd .rp-panel .rp-pill b { margin-left: 2px; font-size: 11px; font-weight: 600; color: var(--r-text-muted); vertical-align: middle; }
.rd-skin-portal .rd .rp-panel .rp-pill:has(input:checked) b { color: var(--r-green-dark); }
.rd-skin-portal .rd .rp-panel .rp-pill__icon { width: 16px; height: 16px; margin-right: 2px; color: var(--r-green-mid); vertical-align: middle; }
.rd-skin-portal .rd .rp-panel .rp-pill--legal .rp-pill__icon { color: var(--r-earth); } .rd-skin-portal .rd .rp-panel .rp-pill--dataset .rp-pill__icon { color: var(--r-sky); } .rd-skin-portal .rd .rp-panel .rp-pill--strategy .rp-pill__icon { color: var(--rp-strategy); }
.rd-skin-portal .rd .rp-panel .rp-pill--lang { padding: 5px 10px; font-size: 12.5px; }
.rd-skin-portal .rd .rp-panel .rp-pill--fmt { padding: 5px 9px; font-size: 12px; }
.rd-skin-portal .rd .rp-panel .rp-pills--fmt { margin-top: 10px; }
.rd-skin-portal .rd .rp-panel .rp-f:not(.is-show-all) .rp-pill.is-extra:not(:has(input:checked)) { display: none; } /* «Тип документа»: первые шесть, остальные по «Показать все», как «Тема» (письмо Николаенко 2.5, 06.11.2026); выбранная не прячется */

/* subject: list with icons, find, show all, sub-subjects */
.rp-find { position: relative; margin-bottom: 8px; color: var(--r-text-muted); }
.rp-find svg { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); }
.rd-skin-portal .rd .rp-find__input { width: 100%; box-sizing: border-box; font-size: 13px; padding: 8px 10px 8px 30px; border: 1px solid var(--rp-border); border-radius: 8px; background: var(--r-gray-bg); color: var(--rp-text); }
.rd-skin-portal .rd .rp-find__input:focus { outline: 2px solid var(--r-green-mid); outline-offset: 1px; background: #fff; }
.rp-subj { display: flex; flex-direction: column; gap: 2px; }
.rp-subj__item.is-extra { display: none; }
.is-show-all .rp-subj__item.is-extra, .is-finding .rp-subj__item.is-extra { display: block; }
.is-finding .rp-subj__item.is-miss, .is-finding .rp-check.is-miss { display: none; }
.is-finding .rp-subj__sub { display: block; }
.rp-subj__row { display: flex; align-items: center; gap: 2px; }
.rp-subj__label { flex: 1; display: flex; align-items: center; gap: 9px; padding: 6px 8px; border-radius: 8px; font-size: 13.5px; color: var(--rp-ink); line-height: 1.25; min-width: 0; }
.rp-subj__label:hover { background: var(--r-gray-bg); }
.rp-subj__label:has(input:checked) { background: var(--r-green-pale); box-shadow: inset 0 0 0 1.5px var(--r-green-dark); font-weight: 600; } /* рамка тенью — без сдвига текста */
.rp-subj__icon { width: 20px; height: 20px; color: var(--r-green-mid); flex: none; }
.rp-subj__name { flex: 1; }
.rp-subj__n { font-size: 11.5px; color: var(--r-text-muted); font-weight: 600; font-variant-numeric: tabular-nums; }
.rp-subj__more { flex: none; width: 26px; height: 26px; border: 0; background: transparent; border-radius: 6px; cursor: pointer; position: relative; padding: 0; }
.rp-subj__more::after { content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; border-right: 1.5px solid var(--r-text-muted); border-bottom: 1.5px solid var(--r-text-muted); transform: translate(-50%, -70%) rotate(45deg); transition: transform .15s; }
.rp-subj__more:hover { background: var(--r-gray-bg); }
.is-open > .rp-subj__row .rp-subj__more::after { transform: translate(-50%, -30%) rotate(225deg); }
.rp-subj__sub { display: none; margin: 2px 0 6px 22px; padding-left: 8px; border-left: 2px solid var(--rp-border); }
.rp-subj__item.is-open > .rp-subj__sub { display: block; }
.rp-subj__label--child { font-size: 13px; padding: 5px 8px; }
.rd-skin-portal .rd .rp-showall { margin-top: 8px; padding: 6px 8px; border: 0; background: transparent; color: var(--r-green-mid); font-family: var(--rp-font-body); font-size: 13px; font-weight: 600; cursor: pointer; border-radius: 6px; }
.rd-skin-portal .rd .rp-showall:hover { background: var(--r-gray-bg); }
.is-finding .rp-showall { display: none; }

/* year: histogram + two-thumb range + numbers */
.rp-years { display: flex; align-items: flex-end; gap: 2px; height: 40px; padding: 0 2px; }
.rp-years i { flex: 1; display: block; height: max(3px, var(--h)); background: var(--r-green-light); border-radius: 2px 2px 0 0; transition: height .2s, background .15s; }
.rp-years i.is-out { background: var(--r-gray-light); }
.rp-range { position: relative; height: 22px; margin: 2px 0 6px; isolation: isolate; } /* z-index ползунков остаётся внутри: иначе при прокрутке панели ручки лет всплывали поверх липкого заголовка «Фильтры» (Ойбек, 17.09) */
.rp-range__track { position: absolute; left: 0; right: 0; top: 9px; height: 4px; border-radius: 2px; background: var(--r-gray-light); }
.rp-range__fill { position: absolute; top: 0; bottom: 0; background: var(--r-green-mid); border-radius: 2px; }
.rp-range input[type="range"] { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 22px; margin: 0; background: transparent; -webkit-appearance: none; appearance: none; pointer-events: none; z-index: 2; }
.rp-range input[type="range"], .rp-range input[type="range"]:focus, .rp-range input[type="range"]:focus-visible { outline: none !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; border-radius: 0; } /* Astra/Chrome рисуют пунктирную рамку и серую подложку у поля в фокусе — ползунок этого не должен показывать */
.rp-range input[type="range"]::-webkit-slider-runnable-track { background: transparent; height: 22px; }
.rp-range input[type="range"]::-moz-range-track { background: transparent; height: 22px; }
.rp-range input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 18px; height: 18px; margin-top: 2px; border-radius: 50%; background: #fff; border: 2px solid var(--r-green-dark); box-shadow: 0 1px 4px rgba(0,0,0,.2); cursor: grab; }
.rp-range input[type="range"]::-moz-range-thumb { pointer-events: auto; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid var(--r-green-dark); box-shadow: 0 1px 4px rgba(0,0,0,.2); cursor: grab; }
.rp-yearbox { display: flex; align-items: center; gap: 8px; }
.rp-yearbox label { flex: 1; display: flex; align-items: center; gap: 6px; border: 1px solid var(--rp-border); border-radius: 8px; padding: 0 8px; background: #fff; }
.rp-yearbox__lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--r-text-muted); }
.rd-skin-portal .rd .rp-yearbox__in { width: 100%; border: 0; padding: 7px 0; font-size: 14px; font-weight: 600; color: var(--rp-ink); background: transparent; -moz-appearance: textfield; }
.rp-yearbox__in::-webkit-outer-spin-button, .rp-yearbox__in::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rd-skin-portal .rd .rp-yearbox__in:focus { outline: none; }
.rp-yearbox label:focus-within { border-color: var(--r-green-mid); box-shadow: 0 0 0 2px var(--r-green-pale); }
.rp-yearbox__dash { color: var(--r-text-muted); }

/* availability: switches */
.rp-switches { display: flex; flex-direction: column; gap: 4px; }
.rp-switch { display: flex; align-items: center; gap: 10px; padding: 5px 4px; border-radius: 8px; font-size: 13.5px; color: var(--rp-ink); }
.rp-switch:hover { background: var(--r-gray-bg); }
.rp-switch__track { flex: none; width: 34px; height: 20px; border-radius: 999px; background: var(--r-gray-light); position: relative; transition: background .15s; }
.rp-switch__track::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .15s; }
.rp-switch:has(input:checked) .rp-switch__track { background: var(--r-green-mid); }
.rp-switch:has(input:checked) .rp-switch__track::after { transform: translateX(14px); }
.rp-switch__label { flex: 1; }
.rp-switch__n { font-size: 11.5px; color: var(--r-text-muted); font-weight: 600; }

/* more filters: plain checklists */
.rp-more { margin-top: 4px; }
.rp-more__summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 12px 0; font-size: 13.5px; font-weight: 700; color: var(--rp-ink); }
.rp-more__summary::-webkit-details-marker { display: none; }
.rp-more__summary::after { content: ""; margin-left: auto; width: 7px; height: 7px; border-right: 1.5px solid var(--r-text-muted); border-bottom: 1.5px solid var(--r-text-muted); transform: rotate(45deg) translateY(-2px); transition: transform .15s; }
.rp-more[open] > .rp-more__summary::after { transform: rotate(225deg) translateY(-2px); }
.rp-f--more { padding: 8px 0 12px; }
.rp-checks { display: flex; flex-direction: column; gap: 1px; }
.rp-checks--tags { max-height: 260px; overflow: auto; scrollbar-width: thin; }
.rp-check { display: flex; align-items: center; gap: 9px; padding: 5px 8px; border-radius: 7px; font-size: 13.5px; color: var(--rp-ink); line-height: 1.3; }
.rp-check::before { content: ""; flex: none; width: 15px; height: 15px; border: 1.5px solid #B8C0C6; border-radius: 4px; background: #fff; transition: background .12s, border-color .12s; }
.rp-check:has(input:checked)::before { background: var(--r-green-dark); border-color: var(--r-green-dark); box-shadow: inset 0 0 0 2.5px #fff; }
.rp-check:hover { background: var(--r-gray-bg); }
.rp-check.is-extra { display: none; }
.is-show-all .rp-check.is-extra, .is-finding .rp-check.is-extra { display: flex; }
.rp-check__label { flex: 1; }
.rp-check__n { font-size: 11.5px; color: var(--r-text-muted); font-weight: 600; font-variant-numeric: tabular-nums; }
.rp-panel__apply { margin: 12px 0 0; }

/* results */
.rp-docs__main { min-width: 0; transition: opacity .15s; }
.rp-docs__main.is-loading { pointer-events: none; } /* бледнеют дети, не сам блок — кольцо загрузки поверх яркое (LOADING-RING) */
.rp-chipsbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; }
.rd-skin-portal .rd .rp-chip--x { font-size: 12.5px; padding: 5px 11px; background: var(--r-green-pale); color: var(--r-green-dark); }
.rd-skin-portal .rd .rp-chip--x:hover { background: var(--r-green-dark); color: #fff; text-decoration: none; }
.rd-skin-portal .rd .rp-chipsbar__clear { font-size: 13px; color: var(--r-text-muted); margin-left: 4px; }
.rd-skin-portal .rd .rp-chipsbar__sum { font-size: 14px; color: var(--r-text); } /* больше пяти фильтров — строка вместо чипов (16.10) */
.rp-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; padding: 10px 0 12px; border-bottom: 1px solid var(--rp-border); margin-bottom: 4px; font-size: 13.5px; }
.rp-toolbar__count { margin: 0; color: var(--r-text-muted); margin-right: auto; }
.rp-toolbar__count b { color: var(--rp-ink); }
.rp-toolbar__group { display: flex; align-items: center; gap: 2px; }
.rp-toolbar__lbl { color: var(--r-text-muted); margin-right: 4px; }
.rd-skin-portal .rd .rp-toolbar__opt { padding: 4px 8px; border-radius: 6px; color: var(--rp-text); font-weight: 500; }
.rd-skin-portal .rd .rp-toolbar__opt:hover { background: var(--r-gray-bg); text-decoration: none; }
.rd-skin-portal .rd .rp-toolbar__opt.is-on { background: var(--r-green-pale); color: var(--r-green-dark); font-weight: 700; }

.rd-skin-portal .rd mark { background: #FFF3B0; color: inherit; padding: 0 1px; border-radius: 2px; }
.rp-empty { padding: 40px 24px; text-align: center; border: 1px dashed var(--rp-border); border-radius: 10px; margin-top: 16px; }
.rd-skin-portal .rd .rp-empty__title { font-family: var(--rp-font-head); font-size: 20px; color: var(--rp-ink); margin: 0 0 6px; }
.rp-empty p { margin: 0 0 16px; color: var(--r-text-muted); }
.rp-list { margin-top: 14px; }

@media (max-width: 960px) {
	.rp-docs__grid { grid-template-columns: 1fr; gap: 18px; }
	/* the panel becomes a drawer opened from the bottom bar */
	.rp-panel { position: fixed; inset: 0; z-index: 100000; max-height: none; border-radius: 0; border: 0; transform: translateX(-100%); transition: transform .2s; padding-bottom: 90px; }
	.admin-bar .rp-panel { top: 0; max-height: none; } /* шторка выше панели администратора (z-index 99999), иначе её шапка «Фильтры ×» под ней; десктопное «под панелью администратора» (top 48px, высота −64px) на телефоне оставляло сверху и снизу полосы страницы (Ойбек, 18.09) */
	.rp-drawer-open .rp-panel { transform: none; }
	.rp-drawer-open { overflow: hidden; }
	.rp-panel__close { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-left: auto; border: 1px solid var(--rp-border); border-radius: 8px; background: #fff; font-size: 20px; line-height: 1; color: var(--rp-ink); cursor: pointer; } /* × у правого края, не рядом с заголовком */
	.rp-panel__reset:not(.is-hidden) ~ .rp-panel__close { margin-left: 6px; }
	.rp-panel__foot { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 100001; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--rp-border); box-shadow: 0 -6px 20px rgba(0,0,0,.06); }
	.rd-skin-portal .rd .rp-panel__done { display: flex; justify-content: center; width: 100%; }
	.rp-mobilebar { display: flex; align-items: center; gap: 14px; position: sticky; bottom: 0; z-index: 900; margin: 16px -16px -16px; padding: 10px 16px; background: #fff; border-top: 1px solid var(--rp-border); box-shadow: 0 -6px 20px rgba(0,0,0,.08); }
	.rd-skin-portal .rd .rp-mobilebar__btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 8px; border: 0; background: var(--rp-ink); color: #fff; font-family: var(--rp-font-body); font-size: 14px; font-weight: 600; cursor: pointer; }
	.rp-mobilebar__btn b { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--rp-btn); color: var(--rp-btn-ink); font-size: 12px; }
	.rp-mobilebar__btn b.is-zero { display: none; }
	.rp-mobilebar__count { font-size: 14px; color: var(--r-text-muted); }
	.rp-mobilebar__count b { color: var(--rp-ink); }
	.rp-flags { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 10px; }
	.rp-f--sort { display: block; }
	.rp-toolbar__group--sort { display: none; } /* сортировка — в шторке (Ойбек, 18.09) */
	.rp-mobilebar { margin-bottom: -72px; } /* до подвала: под полосой оставался padding-bottom .rp-docs (Ойбек, 18.09) */
}
@media (max-width: 640px) {
	.rp-toolbar { gap: 6px 14px; }
	.rp-toolbar__count { margin-right: auto; } /* счёт и «Показывать» в одну строку — сортировки в тулбаре на телефоне нет */
	.rp-toolbar__group { flex-wrap: wrap; gap: 2px; }
	.rd-skin-portal .rd .rp-toolbar__opt { white-space: nowrap; }
	.rp-flags { grid-template-columns: 1fr; }
}

/* home hero: search + quick filters (ToR 6.8) */
/* Поле и кнопка «Найти» — одна форма со скруглением 10px (кнопка внутри поля, как на «Документах», Ойбек 17.09).
   Скругляет обёртка: слева белая, справа цвета кнопки. Поле без рамки и без своих правых углов, на 20px короче обёртки —
   его белый край целиком под прямой частью кнопки, а под скруглением кнопки лежит зелёный фон обёртки. Иначе две
   совпадающие скруглённые кромки (белая под зелёной) давали белую нитку по краю кнопки; вариант «кнопка на 1px
   шире поля» Ойбек отверг («некрасиво», 17.09). */
.rp-hero__search { position: relative; max-width: 720px; margin: 0 0 14px; border-radius: 10px; background: linear-gradient(90deg, #fff 60%, var(--rp-btn) 60%); box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.rp-hero__search:has(.rp-hero__go:hover), .rp-hero__search:has(.rp-hero__go:focus) { background: linear-gradient(90deg, #fff 60%, var(--r-green-mid) 60%); }
.rp-hero__search:focus-within { box-shadow: 0 0 0 2px var(--r-green-mid); }
.rd-skin-portal .rd .rp-hero__q { display: block; width: calc(100% - 20px); box-sizing: border-box; border: 0; border-radius: 10px 0 0 10px; box-shadow: none; font-size: 16px; padding: 15px 110px 15px 16px; }
.rd-skin-portal .rd .rp-hero__q:focus { outline: none; }
.rd-skin-portal .rd .rp-hero__go { position: absolute; right: 0; top: 0; bottom: 0; height: 100%; border-radius: 0 10px 10px 0; padding: 0 22px; }
.rp-hero__quick { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; } /* 17.09: hero заканчивается поиском и пятью чипами, кнопок нет; 18.09: ряд был «очень длинный» — чипы ужаты, подпись «Быстрые фильтры:» снята, иконка термина в цвете типа */
.rd-skin-portal .rd .rp-hero__chip { display: inline-flex; align-items: center; gap: 7px; padding: 4px 11px 4px 8px; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.35); color: #fff; font-size: 12.5px; font-weight: 500; backdrop-filter: blur(4px); }
.rd-skin-portal .rd .rp-hero__chip:hover { background: #fff; color: var(--rp-ink); text-decoration: none; }
.rp-hero__chip .rp-vis__icon { width: 16px; height: 16px; flex: none; color: #fff; } /* все белые: цвет типа (.rp-vis--*) на тёмном чипе тусклый — Ойбек, 18.09; только hero, в списках цвета типов остаются */
.rp-hero__chip:hover .rp-vis__icon { color: inherit; }
.rp-hero__chip small { font-size: 11px; opacity: .75; line-height: inherit; } /* цифра на одной базовой линии с текстом — центровка по блоку сажала её ниже (Ойбек, 17.09) */
@media (max-width: 720px) { .rd-skin-portal .rd .rp-hero__q { padding-right: 90px; } .rd-skin-portal .rd .rp-hero__go { padding: 0 14px; } }

/* ---------- search tips (17.09) ---------- */
.rp-tips { margin: -12px 0 18px; font-size: 13px; }
.rp-tips__summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; color: var(--r-green-mid); font-weight: 600; padding: 4px 0; }
.rp-tips__summary::-webkit-details-marker { display: none; }
.rp-tips__summary::before { content: "?"; display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid currentColor; font-size: 11px; font-weight: 700; }
.rp-tips__summary:hover { color: var(--r-green-dark); }
.rp-tips__body { margin-top: 8px; padding: 14px 16px; background: var(--r-gray-bg); border: 1px solid var(--rp-border); border-radius: 10px; }
.rd-skin-portal .rd .rp-tips__list { margin: 0 0 10px; padding-left: 18px; display: grid; gap: 4px; color: var(--rp-text); line-height: 1.5; list-style: disc; } /* resiland.css обнуляет padding у ul[role=list] — маркеры налезали на текст */
.rd-skin-portal .rd .rp-tips__list li { list-style: disc; }
.rp-tips__examples { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rp-tips__lbl { color: var(--r-text-muted); margin-right: 2px; }
.rd-skin-portal .rd .rp-tips__ex { font-family: var(--rp-font-body); font-size: 12.5px; padding: 4px 10px; border: 1px solid var(--rp-btn); border-radius: 999px; background: #fff; color: var(--r-green-dark); cursor: pointer; }
.rd-skin-portal .rd .rp-tips__ex:hover { background: var(--r-green-pale); }
.rp-empty .rp-tips { margin: 18px auto 0; max-width: 640px; text-align: left; }

/* «?» в конце строки поиска открывает памятку всплывающей панелью */
.rd-skin-portal .rd .rp-tipbtn { position: absolute; right: 76px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--rp-btn); background: #fff; color: var(--r-green-mid); font-family: var(--rp-font-body); font-size: 13px; font-weight: 700; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.rd-skin-portal .rd .rp-tipbtn:hover, .rd-skin-portal .rd .rp-tipbtn:focus-visible, .rd-skin-portal .rd .rp-tipbtn[aria-expanded="true"] { background: var(--r-green-dark); border-color: var(--r-green-dark); color: #fff; transform: translateY(-50%) scale(1.08); }
.rd-skin-portal .rd .rp-tipbtn { transition: background .15s, color .15s, transform .15s; }
/* подпись при наведении — над кнопкой */
.rp-tipbtn::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(4px); white-space: nowrap; padding: 5px 9px; border-radius: 6px; background: var(--rp-ink); color: #fff; font-size: 12px; font-weight: 500; line-height: 1.2; opacity: 0; pointer-events: none; transition: opacity .15s, transform .15s; }
.rp-tipbtn::before { content: ""; position: absolute; bottom: calc(100% + 3px); left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--rp-ink); opacity: 0; transition: opacity .15s; }
.rp-tipbtn:hover::after, .rp-tipbtn:focus-visible::after { opacity: 1; transform: translateX(-50%) translateY(0); }
.rp-tipbtn:hover::before, .rp-tipbtn:focus-visible::before { opacity: 1; }
.rp-tipbtn[aria-expanded="true"]::after, .rp-tipbtn[aria-expanded="true"]::before { opacity: 0; }
.rd-skin-portal .rd .rp-tipbtn:focus-visible { outline: 2px solid var(--r-green-mid); outline-offset: 1px; }
.rd-skin-portal .rd .rp-docs__q { padding-right: 116px; }
.rp-tips--pop { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 61; margin: 0; }
.rp-tips--pop .rp-tips__body { margin: 0; background: #fff; box-shadow: 0 12px 32px rgba(0,0,0,.12); }
.rp-tips--pop:not([open]) { display: none; }

/* флаги в переключателе языка (Polylang PNG 16×11) — вместо кодов EN/RU (Ойбек, 17.09) */
.rd-lang__flag { display: block; width: 20px; height: 14px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.12); flex: none; }
.rp-header .rd-lang__current .rd-lang__flag { margin-right: 2px; }
/* hero: абзац не должен прилипать к поиску (.rd p { margin: 0 } перебивал) */
.rd-skin-portal .rd .rp-hero__lead { margin: 0 0 22px; }

/* ---------- record: «обложка и паспорт» (вариант A, 17.09; template-parts/record.php) ---------- */
.rd-skin-portal .rp-rec .rd-crumbs { margin-bottom: 22px; }
.rp-rec__grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 48px; align-items: start; }
.rp-rec__cover { position: sticky; top: 20px; display: grid; align-content: start; gap: 12px; }
/* обложка — пропорция A4, тень как у книги на полке; без превью — иконка типа в цвете типа (.rp-vis--*) и подпись формата/домена */
.rd-skin-portal .rd .rp-rec__thumb { position: relative; aspect-ratio: 3 / 4; display: grid; place-content: center; justify-items: center; gap: 10px; border: 1px solid var(--rp-border); border-radius: 8px; overflow: hidden; background: var(--r-gray-bg); color: var(--r-green-mid); box-shadow: 0 14px 34px rgba(15, 23, 42, .10); } /* цвет — по умолчанию зелёный, тип перекрашивает через .rp-vis--* */
.rd-skin-portal .rd .rp-rec__thumb.has-img { background: #fff; display: block; }
.rp-rec__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
/* превью PDF — ссылка «Открыть в браузере» (16.10.2026): при наведении приподнимается, лист чуть темнеет, по центру зелёная плашка */
.rd-skin-portal .rd .rp-rec__thumb--link { color: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.rd-skin-portal .rd .rp-rec__thumb--link::after { content: ""; position: absolute; inset: 0; background: rgba(6, 47, 37, .35); opacity: 0; transition: opacity .2s ease; }
.rp-rec__thumb-open { position: absolute; left: 50%; top: 50%; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--rp-btn); color: #fff; font-size: 14px; font-weight: 600; white-space: nowrap; box-shadow: 0 8px 20px rgba(0, 0, 0, .2); opacity: 0; transform: translate(-50%, -40%); transition: opacity .2s ease, transform .2s ease; pointer-events: none; }
.rd-skin-portal .rd .rp-rec__thumb--link:hover, .rd-skin-portal .rd .rp-rec__thumb--link:focus-visible { transform: translateY(-3px); border-color: var(--r-green-mid); box-shadow: 0 20px 40px rgba(15, 23, 42, .18); }
.rd-skin-portal .rd .rp-rec__thumb--link:hover::after, .rd-skin-portal .rd .rp-rec__thumb--link:focus-visible::after { opacity: 1; }
.rd-skin-portal .rd .rp-rec__thumb--link:hover .rp-rec__thumb-open, .rd-skin-portal .rd .rp-rec__thumb--link:focus-visible .rp-rec__thumb-open { opacity: 1; transform: translate(-50%, -50%); }
.rp-rec__thumb--link .rp-rec__badge { z-index: 1; }
@media (prefers-reduced-motion: reduce) { .rd-skin-portal .rd .rp-rec__thumb--link, .rp-rec__thumb-open, .rd-skin-portal .rd .rp-rec__thumb--link::after { transition: none; } }
/* обложка без превью PDF — «книга»: градиент от фирменного тёмно-зелёного к цвету типа (--rc) с иконкой типа водяным знаком;
   тип, название, год и формат/домен. Цвета типов — как у квадратов в списке; производные с комментарием */
.rd-skin-portal .rd .rp-rec__thumb--gen { --rc: var(--r-green-mid); display: flex; flex-direction: column; justify-content: space-between; padding: 22px 20px 18px; color: #fff; text-align: left; border: 0; position: relative; overflow: hidden; background: linear-gradient(165deg, var(--r-green-dark) 0%, var(--r-green-dark) 30%, var(--rc) 100%); box-shadow: 0 14px 34px rgba(15, 23, 42, .18); }
.rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--legal { --rc: var(--r-earth); }
.rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--report, .rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--publication { --rc: var(--r-green-mid); }
.rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--dataset { --rc: var(--r-sky); }
.rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--strategy { --rc: var(--rp-strategy); }
.rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--guideline { --rc: color-mix(in srgb, var(--r-green-light) 65%, var(--r-green-dark)); } /* чистый --r-green-light под белым текстом даёт 2,5:1 — притемнён фирменным зелёным */
.rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--research { --rc: color-mix(in srgb, var(--r-green-dark) 55%, var(--r-sky)); } /* исследование: зелёно-синий, чтобы не сливаться с фоном градиента */
.rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--external, .rd-skin-portal .rd .rp-rec__thumb--gen.rp-vis--other { --rc: var(--rp-ink); }
.rp-rec__thumb--gen > * { position: relative; }
.rp-rec__cover-mark { position: absolute; right: -28px; bottom: -22px; width: 190px; height: 190px; opacity: .13; stroke-width: 1.2; pointer-events: none; }
.rp-rec__cover-type { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; opacity: .9; }
.rp-rec__cover-title { font-family: var(--rp-font-head); font-size: 16px; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; margin: 14px 0; }
.rp-rec__cover-foot { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: .4px; opacity: .9; }
.rp-rec__cover-foot b { font-family: var(--rp-font-head); font-size: 19px; font-weight: 600; letter-spacing: 0; }
.rp-rec__cover-foot span { margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* формат/домен всегда справа, и без года */
.rp-rec__badge { position: absolute; right: 8px; bottom: 8px; background: var(--r-green-dark); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .6px; padding: 3px 7px; border-radius: 5px; }
.rd-skin-portal .rd .rp-btn--block { display: flex; width: 100%; justify-content: center; }
.rp-rec__file { font-size: 12.5px; color: var(--r-text-muted); text-align: center; line-height: 1.45; }
.rp-rec__file b { display: block; color: var(--rp-ink); font-weight: 600; font-size: 13px; word-break: break-all; }
.rp-rec__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; font-size: 13px; font-weight: 600; padding-top: 4px; }
.rd-skin-portal .rd .rp-rec__links a, .rd-skin-portal .rd .rp-rec__share { display: inline-flex; align-items: center; gap: 5px; color: var(--r-green-mid); background: none; border: 0; padding: 0; font: inherit; font-weight: 600; cursor: pointer; box-shadow: none; }
.rd-skin-portal .rd .rp-rec__links a:hover, .rd-skin-portal .rd .rp-rec__share:hover { color: var(--r-green-dark); text-decoration: underline; }
.rp-rec__share svg, .rp-rec__ico { width: 18px; height: 18px; flex: none; }
/* заголовок */
.rd-skin-portal .rd .rp-rec__type { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; padding: 4px 11px; border-radius: 999px; background: var(--rp-btn); color: var(--rp-btn-ink); }
.rd-skin-portal .rd .rp-rec__type:hover { background: var(--r-green-mid); color: #fff; text-decoration: none; }
.rd-skin-portal .rd .rp-rec__title { font-size: 26px; line-height: 1.25; font-weight: 600; margin: 12px 0 8px; } /* без max-width: длинные названия актов складывались в 12 строк узкой колонкой при пустой правой половине; 32px → 26px — «почему такой большой шрифт» (Ойбек, 17.09) */
.rp-rec__by { font-size: 13.5px; color: var(--r-text-muted); margin: 0; }
/* не опубликованная запись у автора и модератора (C-Р13, 20.10): «На проверке · видно только вам» над заголовком */
.rp-rec__state { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0 0 4px; font-size: 13.5px; color: var(--r-text-muted); }
.rp-rec__by b { color: var(--rp-ink); font-weight: 600; }
.rd-skin-portal .rd .rp-rec__lead { font-size: 16px; line-height: 1.55; color: var(--rp-ink); margin: 18px 0 24px; } /* аннотация — обычным текстом, не заголовочным 19px; во всю ширину колонки, как заголовок: при 70ch справа оставался пустой блок (Ойбек, 18.10.2026, из двух вариантов выбран этот; паспорт справа от аннотации не взял) */
.rp-rec__content { margin: -8px 0 28px; }
/* паспорт: две колонки, иконка · подпись капителью · значение; линия сверху как у таблицы каталога */
.rp-rec__pass { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; margin: 0; border-top: 2px solid var(--rp-ink); }
.rp-rec__row { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--rp-border); align-items: start; }
.rp-rec__row > .rp-rec__ico { color: var(--r-green-mid); margin-top: 2px; }
.rp-rec__row dt { font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--r-text-muted); font-weight: 600; }
.rp-rec__row dd { margin: 2px 0 0; font-size: 14px; color: var(--rp-ink); font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; }
.rd-skin-portal .rd .rp-rec__row dd a { color: var(--rp-ink); }
.rd-skin-portal .rd .rp-rec__row dd a:hover { color: var(--r-green-mid); }
.rp-rec__row dd small { display: block; font-size: 13px; color: var(--r-text-muted); font-weight: 400; }
.rp-rec__countries { display: flex; flex-wrap: wrap; gap: 4px 16px; } /* страны в строку с переносом (Ойбек, 16.10) */
.rp-rec__countries a { white-space: nowrap; }
.rp-rec__flag { width: 22px; height: 15px; object-fit: cover; border-radius: 2px; vertical-align: -2px; margin-right: 6px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .12); }
/* секции ниже паспорта */
.rp-rec__sec { margin-top: 30px; }
.rd-skin-portal .rd .rp-rec__h2 { font-size: 16px; margin: 0 0 10px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.rd-skin-portal .rd .rp-rec__h2 a { font-family: var(--rp-font-body); font-size: 13px; font-weight: 600; white-space: nowrap; }
.rd-skin-portal .rd .rp-rec__h2--small { font-family: var(--rp-font-body); font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--r-text-muted); margin-bottom: 6px; }
.rp-rec__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.rd-skin-portal .rd .rp-rec__tags a { font-size: 12.5px; padding: 4px 11px; border-radius: 999px; background: var(--rp-tile); color: var(--r-green-dark); font-weight: 500; }
.rd-skin-portal .rd .rp-rec__tags a:hover { background: var(--r-green-pale); text-decoration: none; }
.rp-rec__cite { margin-top: 30px; background: var(--r-gray-bg); border-radius: 10px; padding: 16px 18px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; }
.rp-rec__cite p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--rp-text); overflow-wrap: anywhere; }
.rp-rec__export { font-size: 12.5px; white-space: nowrap; color: var(--r-text-muted); }
.rd-skin-portal .rd .rp-rec__export a { font-weight: 700; }
.rp-rec__export span { display: block; font-size: 11.5px; }
/* похожие — строки с квадратом типа и годом справа */
.rp-rec__rel { display: grid; }
.rd-skin-portal .rd .rp-rec__rel-item { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--rp-border); color: var(--rp-ink); }
.rd-skin-portal .rd .rp-rec__rel-item:hover { text-decoration: none; color: var(--r-green-mid); }
.rp-rec__sq { width: 40px; height: 40px; border-radius: 7px; display: grid; place-items: center; background: var(--r-gray-bg); border: 1px solid var(--rp-border); }
.rp-rec__sq .rp-vis__icon { width: 20px; height: 20px; }
.rp-rec__rel-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 600; font-size: 14px; line-height: 1.3; }
.rp-rec__rel-meta { display: block; font-size: 12.5px; color: var(--r-text-muted); margin-top: 2px; }
.rp-rec__rel-year { font-family: var(--rp-font-head); font-weight: 600; font-size: 15px; color: var(--r-text-muted); }
/* низ: дата публикации и «Сообщить о проблеме» в одну строку; форма раскрывается под ней */
.rp-rec__foot { margin-top: 34px; padding-top: 14px; border-top: 1px solid var(--rp-border); display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 13px; color: var(--r-text-muted); align-items: baseline; }
.rp-rec__hits { display: inline-flex; align-items: center; align-self: center; gap: 5px; white-space: nowrap; } /* align-self — у inline-flex базовая линия по SVG, текст всплывал на 2 px над датой */ /* просмотры · скачивания, иконки как .rp-item__hits в списке */
.rp-rec__hits svg { width: 17px; height: 17px; }
.rp-rec__hits svg:not(:first-child) { margin-left: 12px; }
.rd-skin-portal .rd .rp-rec__report { flex-basis: 100%; }
.rd-skin-portal .rd .rp-rec__report .rd-report__toggle { color: var(--r-green-mid); }
/* форма «Сообщить о проблеме» — карточка скина: причины пилюлями (radio), поля как в форме подачи, кнопка обычная */
.rd-skin-portal .rd .rp-rec__report[open] .rd-report__toggle { margin-bottom: 12px; }
.rd-skin-portal .rd .rp-report { background: #fff; border: 1px solid var(--rp-border); border-radius: 12px; padding: 20px 22px; display: grid; gap: 16px; max-width: 720px; color: var(--rp-text); }
.rd-skin-portal .rd .rp-report__reasons { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rd-skin-portal .rd .rp-report__reasons legend { display: block; width: 100%; padding: 0; margin: 0 0 8px; font-size: 12px; font-weight: 600; color: var(--r-text-muted); }
.rp-report__reason { position: relative; cursor: pointer; }
.rp-report__reason input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rd-skin-portal .rd .rp-report__reason span { display: inline-block; font-size: 13.5px; font-weight: 500; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--rp-border); background: #fff; color: var(--rp-ink); transition: background .15s, border-color .15s, color .15s; }
.rd-skin-portal .rd .rp-report__reason:hover span { border-color: var(--r-green-mid); color: var(--r-green-dark); }
.rd-skin-portal .rd .rp-report__reason input:checked + span { background: var(--r-green-dark); border-color: var(--r-green-dark); color: #fff; }
.rd-skin-portal .rd .rp-report__reason input:focus-visible + span { outline: 2px solid var(--r-green-mid); outline-offset: 2px; }
.rp-report__field { display: grid; gap: 6px; }
.rd-skin-portal .rd .rp-report__field > span { font-size: 12px; font-weight: 600; color: var(--r-text-muted); }
.rd-skin-portal .rd .rp-report__field :is(textarea, input) { width: 100%; box-sizing: border-box; font-family: var(--rp-font-body); font-size: 14.5px; color: var(--rp-ink); padding: 11px 14px; border: 1px solid #CBD5E1; border-radius: 8px; background: #fff; line-height: 1.45; } /* #CBD5E1 — рамка полей формы подачи в этом скине */
.rd-skin-portal .rd .rp-report__field textarea { min-height: 96px; resize: vertical; }
.rd-skin-portal .rd .rp-report__field :is(textarea, input):focus { border-color: var(--r-green-mid); outline: 2px solid var(--r-green-pale); outline-offset: 0; }
.rd-skin-portal .rd .rp-report__field input[readonly] { background: var(--r-gray-bg); color: var(--rp-text); }
.rp-report__row { display: flex; flex-wrap: wrap; gap: 14px 18px; align-items: end; }
.rp-report__field--email { flex: 1 1 260px; }
/* отправка идёт — кнопка приглушена, рядом кольцо, как .acf-spinner в «Подать материал» (Ойбек, 16.10) */
.rd-skin-portal .rd .rp-report .rp-btn[aria-busy="true"] { opacity: .6; cursor: wait; }
.rp-report__spin { display: none; width: 18px; height: 18px; box-sizing: border-box; border: 2px solid var(--r-gray-light); border-top-color: var(--r-green-mid); border-radius: 50%; animation: rd-spin .8s linear infinite; align-self: center; }
.rp-btn[aria-busy="true"] + .rp-report__spin { display: inline-block; }
.rd-skin-portal .rd .rp-report .rd-report__msg { font-size: 13.5px; }
@media (max-width: 720px) { .rd-skin-portal .rd .rp-report { padding: 16px; } .rp-report__row .rp-btn { width: 100%; justify-content: center; } }
/* модалка «спасибо» после отправки жалобы: галочка в зелёном круге, заголовок, текст ответа, кнопка */
.rp-report-dlg { width: min(92vw, 420px); font-family: var(--rp-font-body); }
.rp-report-dlg__box { justify-items: center; text-align: center; padding: 30px 28px 26px; gap: 10px; }
.rp-report-dlg__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--r-green-pale); color: var(--r-green-dark); margin-bottom: 6px; }
.rp-report-dlg__icon svg { width: 28px; height: 28px; }
.rp-report-dlg__title { margin: 0; font-family: var(--rp-font-head); font-size: 19px; font-weight: 600; color: var(--rp-ink); }
.rp-report-dlg__text { margin: 0 0 8px; font-size: 14.5px; line-height: 1.5; color: var(--rp-text); }
.rp-report-dlg .rp-btn { display: inline-flex; align-items: center; gap: 8px; background: var(--rp-btn); color: var(--rp-btn-ink); font-family: var(--rp-font-body); font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; padding: 12px 26px; border-radius: 6px; border: 2px solid var(--rp-btn); cursor: pointer; } /* модалка стоит вне .rd — кнопке нужен свой стиль */
.rp-report-dlg .rp-btn:hover { background: var(--r-green-mid); border-color: var(--r-green-mid); color: #fff; }
/* окно ошибки входа (inc/sign-in.php): вид окна жалобы, «Войти снова» и тихое «Закрыть» рядом; ошибка — земляной на песочном */
.rp-signin-dlg__icon--warn { background: var(--rp-warn-bg); color: var(--rp-warn); }
.rp-signin-dlg__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.rp-signin-dlg .rp-btn, dialog.rp-signin-dlg .rp-signin-dlg__close { line-height: 1.2; text-decoration: none; }
dialog.rp-signin-dlg .rp-signin-dlg__close { background: #fff; color: var(--rp-ink); border: 2px solid var(--rp-border); border-radius: 6px; padding: 12px 22px; font-family: var(--rp-font-body); font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; cursor: pointer; box-shadow: none; }
dialog.rp-signin-dlg .rp-signin-dlg__close:hover { background: #fff; color: var(--rp-btn); border-color: var(--rp-btn); }

/* модалка запроса роли (inc/role-request.php) — шрифты и рамки этого скина */
.rd-skin-portal .rd-rolereq { font-family: var(--rp-font-body); color: var(--rp-text); }
.rd-skin-portal .rd-rolereq .rd-share-dlg__title, .rd-skin-portal .rd-rolereq__done h2 { font-family: var(--rp-font-head); font-weight: 600; color: var(--rp-ink); }
.rd-skin-portal .rd-rolereq__field :is(input, textarea) { border-color: #CBD5E1; border-radius: 8px; color: var(--rp-ink); } /* #CBD5E1 — рамка полей формы подачи в этом скине */
.rd-skin-portal .rd-rolereq__country span { border-color: var(--rp-border); color: var(--rp-ink); font-weight: 500; }
.rd-skin-portal .rd-rolereq__country input:checked + span { color: #fff; }
.rd-skin-portal .rd-rolereq-sent__box { border-radius: 6px; }
@media (max-width: 900px) {
	.rp-rec__grid { grid-template-columns: 1fr; gap: 26px; }
	.rp-rec__cover { position: static; grid-template-columns: 120px minmax(0, 1fr); gap: 10px 16px; align-items: start; }
	.rp-rec__cover .rp-rec__thumb { grid-row: 1 / 5; }
	/* «книга» в 120 px: название и подпись типа не помещались — «НОРМАТИВН», «Постанов…», «le…» (Ойбек, 18.09, скриншот); остаются иконка типа, год и формат/домен */
	.rd-skin-portal .rd .rp-rec__thumb--gen { padding: 12px 12px 10px; justify-content: flex-end; }
	.rp-rec__thumb--gen .rp-rec__cover-type, .rp-rec__thumb--gen .rp-rec__cover-title { display: none; }
	.rp-rec__cover-mark { right: auto; bottom: auto; left: 50%; top: 30%; width: 84px; height: 84px; transform: translate(-50%, -50%); opacity: .28; }
	.rp-rec__cover-foot { flex-direction: column; align-items: flex-start; gap: 2px; }
	.rp-rec__cover-foot b { font-size: 22px; line-height: 1.1; }
	.rp-rec__cover-foot span { margin-left: 0; max-width: 100%; font-size: 11px; }
	.rd-skin-portal .rd .rp-rec__cover .rp-btn--block { white-space: normal; text-align: center; line-height: 1.25; padding: 11px 14px; } /* «Открыть внешний ресурс ↗» шире колонки на 375 px — переносится, не вылезает */
	.rp-rec__file, .rp-rec__links { text-align: left; justify-content: flex-start; }
	.rp-rec__pass { grid-template-columns: 1fr; }
	.rd-skin-portal .rd .rp-rec__title { font-size: 22px; }
	.rp-rec__cite { grid-template-columns: 1fr; }
}

/* iOS Safari при фокусе на поле мельче 16px масштабирует страницу — форма «уезжала вбок» с клавиатурой (Ойбек, 18.09) */
@media (max-width: 720px) {
	.rd-skin-portal :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="submit"]):not([type="button"]), textarea, select), .rd-skin-portal .rd .acf-form #acf-_post_title { font-size: 16px; } /* «Название» — селектор с id выше по специфичности, повторяем его */
	.rd-skin-portal .rd .acf-form .select2-container--default .select2-selection--single .select2-selection__rendered { font-size: 16px; } /* «Select» в списках — вровень с соседними полями, было 14,5 (18.10) */
}

/* Сменяющиеся подсказки в поле поиска на телефоне (Ойбек, 18.09, вариант 2): длинный плейсхолдер не помещался в поле.
   Скрипт (resiland.js, [data-rd-hints]) на ширине до 720px гасит нативный placeholder и кладёт поверх поля .rp-hint,
   меняя текст раз в 3 с с проявлением; при фокусе смена стоит, при вводе подсказка скрыта; «уменьшить движение» — смена
   без проявления. Положение и кегль — от самого поля (padding, font). */
.rd-skin-portal .rd .rp-hint { position: absolute; top: 0; height: 100%; display: flex; align-items: center; pointer-events: none; color: #6B7280; font-family: var(--rp-font-body); font-size: 16px; white-space: nowrap; overflow: hidden; z-index: 1; transition: opacity .25s ease, transform .25s ease; } /* цвет — как placeholder в Chrome/Safari */
.rd-skin-portal .rd .rp-hint.is-out { opacity: 0; transform: translateY(4px); }
.rd-skin-portal .rd .rp-hint.is-hidden { display: none; }
@media (prefers-reduced-motion: reduce) { .rd-skin-portal .rd .rp-hint { transition: none; } }

/* Клавиатурный фокус в скине portal — зелёный, не оранжевый --r-accent атласа: «такого цвета мы не используем» (Ойбек, 18.09, × в «Поделиться»);
   на тёмном (hero, шапка страницы, подвал) — белый. Перебивает !important-правило resiland.css специфичностью */
.rd-skin-portal.resiland-data :focus-visible { outline-color: var(--r-green-mid) !important; }
.rd-skin-portal.resiland-data :is(.rp-hero, .rp-pagehead, .rd-footer, .rd-submit-hero) :focus-visible { outline-color: #fff !important; }
.rd-skin-portal.resiland-data .rd-share-dlg__box:focus-visible { outline: none !important; } /* фокус при открытии — на окно, не на ×: Safari рисовал рамку на кнопке */

/* Оранжевый --r-accent на сайте не используется (Ойбек, 18.09: «такого цвета мы не используем»).
   Полосы «внимание» — зелёные; ошибки, обязательные поля и замечания модератора — --rp-warn на --rp-warn-bg; тип «стратегия» — --rp-strategy */
.rd-skin-portal .rd .rd-vis--strategy { background: var(--rp-strategy); } /* цветной квадрат типа в строках и карточках */
.rd-skin-portal .rd-empty-state, .rd-skin-portal .rd-state { border-left-color: var(--r-green-mid); }
.rd-skin-portal .rd-acct__reason { color: var(--rp-warn); background: var(--rp-warn-bg); border-left-color: var(--rp-warn); }
.rd-skin-portal .rd-rolereq__msg, .rd-skin-portal .rd .rd-report__msg.is-err, .rd-skin-portal .rd-status--warn { color: var(--rp-warn); }
.rd-skin-portal .rd-stepper__item.has-error b { border-color: var(--rp-warn); color: var(--rp-warn); }
.rd-skin-portal .rd-step__notice { border-left-color: var(--rp-warn); background: var(--rp-warn-bg); color: var(--rp-warn); }
.rd-skin-portal .rd .acf-form .acf-required { color: var(--rp-warn); }
.rd-skin-portal .rd .acf-form .acf-error-message, .rd-skin-portal .rd .acf-form .acf-notice.-error { border-left-color: var(--rp-warn); background: var(--rp-warn-bg); color: var(--rp-warn); }
.rd-skin-portal .rd .acf-form .acf-field.acf-error .acf-input :is(input, textarea, select) { border-color: var(--rp-warn); }

/* Значок «скачать» со счётчиком — ссылка на файл записи (inc/download.php, 21.09; меню форматов снято 15.10, № 85) */
.rd-dl { display: inline-flex; align-items: center; margin-left: 10px; }
.rd-dl__btn { display: inline-flex; align-items: center; gap: 5px; margin: -3px -6px; padding: 3px 6px; border: 0; border-radius: 8px; background: none; color: inherit; font: inherit; line-height: inherit; text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s; }
.rd-skin-portal .rd a.rd-dl__btn { color: inherit; text-decoration: none; }
a.rd-dl__btn:hover { background: var(--r-green-pale); color: var(--r-green-dark); }
.rd-dl__btn:focus-visible { outline: 2px solid var(--r-green-mid); outline-offset: 1px; }
/* отрывок из текста файла в выдаче поиска — когда слова нет в названии и аннотации (12.10, № 47; inc/search.php) */
.rp-item__found { margin: 0; padding-left: 10px; border-left: 2px solid var(--rp-border); font-size: 13px; line-height: 1.55; color: var(--r-text-muted); overflow-wrap: anywhere; }
.rp-item__found-lbl { display: block; margin-bottom: 2px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

/* Плашка ошибки ACF «Проверка не пройдена…»: кнопка «×» (notice-close 15.10) — у ACF она прибита к верху (top: 9px), обведена
   белым кружком (на песочном --rp-warn-bg его почти не видно) и залезает на текст: padding плашки 12px перебивает -dismiss у ACF.
   Теперь — по центру строки, без обводки, место под неё справа; при наведении — подложка из --rp-warn. */
.rd-skin-portal .rd .acf-form .acf-notice.-dismiss { padding-right: 48px; }
.rd-skin-portal .rd .acf-form .acf-notice .acf-notice-dismiss { top: 50%; right: 10px; width: 28px; height: 28px; margin-top: -14px; border-width: 0; border-radius: 50%; opacity: 1; display: grid; place-items: center; text-decoration: none; transition: background-color .15s; }
.rd-skin-portal .rd .acf-form .acf-notice .acf-notice-dismiss::before { position: static; width: auto; height: auto; font-size: 18px; line-height: 1; }
.rd-skin-portal .rd .acf-form .acf-notice .acf-notice-dismiss:hover { background: color-mix(in srgb, var(--rp-warn) 12%, transparent) !important; } /* !important — у ACF фон кнопки прозрачный с !important */
.rd-skin-portal .rd .acf-form .acf-notice .acf-notice-dismiss:focus-visible { outline: 2px solid var(--r-green-mid); outline-offset: 1px; }

/* Окно «Добавить тег»: кнопка и поле — как в самой форме (Ойбек, 15.10: «оба правь»). Окно стоит вне .rd, и правила формы
   до него не доходят: кнопка получала дефолт SCiO для button — светло-зелёная заливка с тёмным текстом (против «зелёные
   кнопки — белый текст», 17.09), поле — рамку Astra, при фокусе пунктирную. Кнопка — как «Отправить на проверку», поле —
   как поля формы, фокус — та же сплошная рамка; на телефоне поле 16 px (иначе iOS увеличивает страницу). tag-popup-style 15.10 */
.rd-skin-portal.resiland-data #acf-popup .acf-submit-button { background: var(--rp-btn); border: 1.5px solid var(--rp-btn); color: var(--rp-btn-ink); font-family: var(--rp-font-body); font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; line-height: 1.2; height: auto; padding: 10px 18px; border-radius: 6px; box-shadow: none; text-shadow: none; cursor: pointer; }
.rd-skin-portal.resiland-data #acf-popup .acf-submit-button:hover { background: var(--r-green-dark); border-color: var(--r-green-dark); color: #fff; }
.rd-skin-portal.resiland-data #acf-popup .acf-input input[type="text"] { width: 100%; box-sizing: border-box; min-height: 42px; padding: 10px 12px; border: 1px solid #CBD5E1; border-radius: 8px; background: #fff; color: var(--r-text); font-family: var(--rp-font-body); font-size: 14.5px; box-shadow: none; transition: border-color .15s; }
.rd-skin-portal.resiland-data #acf-popup .acf-input input[type="text"]:is(:focus, :focus-visible) { border-style: solid !important; border-color: var(--r-green-mid) !important; outline: 2px solid var(--r-green-pale) !important; outline-offset: 0 !important; box-shadow: none !important; }
@media (max-width: 720px) { .rd-skin-portal.resiland-data #acf-popup .acf-input input[type="text"] { font-size: 16px; } }

/* submit-field-errors 16.10 (Ойбек: «warning видно, но может ещё inputs подсветим?»): пустое обязательное поле видно глазами —
   рамка --rp-warn потолще и песочный фон, не красный (палитра: ошибки земляным на песочном). У списков select2 видимая рамка —
   .select2-selection, правило выше для <select> её не задевало */
/* field-errors-red 16.10 (Ойбек: песочная заливка «выглядит очень плохо» — «просто красным сам input линии»): только рамка красная,
   #C62828 — 5,6:1 на белом; фон и толщина рамки как у обычного поля; «Название» — отдельно по id: правило поля с #acf-_post_title сильнее :is() */
.rd-skin-portal .rd .acf-form .acf-field.acf-error .acf-input :is(input[type="text"], input[type="url"], input[type="number"], textarea, .select2-selection), .rd-skin-portal .rd .acf-form .acf-field.acf-error #acf-_post_title { border-color: #C62828; box-shadow: none; background-color: #fff; }

/* field-error-text 16.10 (Ойбек: «и так видно с красными линиями, error texts не нужны, ломают расположение inputs —
   убери везде, даже из шапки»): тексты ошибок формы скрыты визуально, ошибку показывает красная рамка поля
   (field-errors-red); для экранного диктора текст остаётся — clip, не display:none. Отметка шага в степпере остаётся */
.rd-skin-portal .rd .rd-step__head > .rd-step__notice,
.rd-skin-portal .rd .acf-form .acf-field .acf-notice.-error,
.rd-skin-portal .rd .acf-form .acf-error-message { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }

/* DOCS-FILTERS:BEGIN */
/* docs-filters 16.10.2026 (Ойбек): панель фильтров «Документов» — config/docs-filters в документах */
/* «Региональные документы» под флагами стран: отдельная строка за чертой, вместо флага — значок в плитке цвета панели */
.rp-flags__sep { display: block; height: 1px; background: var(--rp-border); margin: 4px 8px; }
.rp-flag__img--region { display: grid; place-items: center; background: var(--rp-tile); color: var(--r-green-mid); box-shadow: none; }
/* подтемы (вариант 3A): под названием темы, мельче и серее, без полосы; стрелка без заливки; числа тем и подтем — одной колонкой */
.rd-skin-portal .rd .rp-subj__more, .rd-skin-portal .rd .rp-subj__more:focus { width: 20px; background: transparent; box-shadow: none; } /* button:hover / :focus темы красили стрелку зелёной плашкой */
.rd-skin-portal .rd .rp-subj__more:hover { background: var(--r-gray-bg); }
.rd-skin-portal .rd .rp-subj__more:hover::after { border-color: var(--rp-ink); }
.rp-subj:has(.rp-subj__more) .rp-subj__row:not(:has(.rp-subj__more)) .rp-subj__label, .rp-subj:has(.rp-subj__more) .rp-subj__label--child { margin-right: 22px; } /* место стрелки: 20 + зазор 2 */
.rp-subj__sub { margin: 3px 0 6px; padding-left: 0; border-left: 0; } /* 3 px от темы — выбранные тема и подтема слиплись (Ойбек, 16.10) */
.rp-subj__sub > li + li { margin-top: 2px; }
.rp-subj__label--child { font-size: 12.5px; font-weight: 400; padding: 4px 8px 4px 37px; color: color-mix(in srgb, var(--rp-text) 85%, #fff); } /* 37 = отступ 8 + иконка 20 + зазор 9 — текст под названием темы; цвет — производный от --rp-text */
.rp-subj__label--child .rp-subj__n { font-weight: 500; }
.rp-subj__label--child:has(input:checked) { color: var(--r-green-dark); }
/* строка результата (вариант 6A): пилюля только у типа — белая с рамкой, нажимается; остальное — текстом */
.rp-chips--meta { align-items: center; column-gap: 10px; }
.rd-skin-portal .rd .rp-chips--meta a.rp-chip { background: #fff; box-shadow: inset 0 0 0 1px var(--rp-border); }
.rd-skin-portal .rd .rp-chips--meta a.rp-chip:hover { background: var(--r-green-pale); box-shadow: none; }
.rp-item__facts { font-size: 12.5px; color: var(--r-text-muted); }
.rp-item__facts i { font-style: normal; margin: 0 6px; opacity: .55; }
/* DOCS-FILTERS:END */

/* CARD-CLICK:START — вся карточка результата ведёт на документ, не только заголовок (Ойбек, 16.10).
   Ссылка заголовка растянута на карточку (::after); пилюля типа, кнопки и ссылки справа и в «найдено в файле»
   лежат поверх неё и остаются своими ссылками. Тень при наведении — как у карточек-ссылок a.rp-card. */
.rd-skin-portal .rd .rp-item { position: relative; }
.rd-skin-portal .rd .rp-item:hover { box-shadow: 0 8px 24px rgba(0,0,0,.1); }
.rd-skin-portal .rd .rp-item__title a::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.rd-skin-portal .rd .rp-item :is(.rp-chip, .rp-item__act a, .rp-item__act button, .rp-item__found a) { position: relative; z-index: 1; }
/* CARD-CLICK:END */

/* PODAT-NEXT:BEGIN */
/* Форма подачи (podat-next 16.10, Ойбек: поля краснели от «Далее», когда шаг ещё не начат): «Далее» серая и не нажимается,
   пока обязательные поля шага не заполнены (aria-disabled — resiland.js); шаги степпера дальше незаполненного — бледные */
.rd-skin-portal .rd .rd-step__foot .rd-btn[aria-disabled="true"],
.rd-skin-portal .rd .rd-step__foot .rd-btn[aria-disabled="true"]:hover { background: var(--r-gray-light); border-color: var(--r-gray-light); color: var(--r-text-muted); cursor: not-allowed; }
.rd-skin-portal .rd-stepper.is-live .rd-stepper__item[aria-disabled="true"] { opacity: .5; cursor: default; }
.rd-skin-portal .rd-stepper.is-live .rd-stepper__item[aria-disabled="true"]:hover { background: none; }
/* Ряд полей (Ойбек, 16.10: «не ровные места»): двухстрочная подпись сдвигала своё поле ниже соседей. Каждое поле — две строки
   сетки шага (subgrid): строка подписей по самой высокой, подпись прижата к своему полю, поля ввода и пояснения — на одной линии */
.rd-skin-portal .rd .rd-step__fields > .acf-field { display: grid; grid-template-rows: subgrid; grid-row: span 2; grid-template-columns: minmax(0, 1fr); } /* колонка auto росла под самое длинное значение: «Тип» с «Бюджеты и сведения об использовании средств» в 506 px при поле 287 залезал под «Язык» (Ойбек, 19.10) — теперь многоточие */
.rd-skin-portal .rd .rd-step__fields > .acf-field > .acf-label { align-self: end; }
/* PODAT-NEXT:END */
/* LOADING-RING:START — кольцо загрузки там, где его не было (Ойбек, 16.10): запрос роли, поиск, фильтры «Документов» */
/* запрос роли — рядом с кнопкой, как у «Сообщить о проблеме» и ACF в «Подать материал» */
.rd-rolereq__row .rd-btn[aria-busy="true"] { opacity: .6; cursor: wait; }
.rd-rolereq__spin { display: none; width: 18px; height: 18px; box-sizing: border-box; border: 2px solid var(--r-gray-light); border-top-color: var(--r-green-mid); border-radius: 50%; animation: rd-spin .8s linear infinite; align-self: center; }
.rd-btn[aria-busy="true"] + .rd-rolereq__spin { display: inline-block; }
/* поиск — в самой кнопке вместо слова: кнопка стоит внутри поля, рядом места нет; «Сохранить» имени в кабинете — так же
   (Ойбек, 19.10): кнопка во всю ширину карточки, рядом места тоже нет */
.rd .rd-search__btn[aria-busy="true"], .rd-skin-portal .rd .rd-acct__rename-form .rd-btn[aria-busy="true"] { position: relative; }
.rd-skin-portal .rd .rp-hero__go[aria-busy="true"], .rd .rd-search__btn[aria-busy="true"], .rd-skin-portal .rd .rd-acct__rename-form .rd-btn[aria-busy="true"] { color: transparent; cursor: wait; }
.rd .rp-hero__go[aria-busy="true"]::after, .rd .rd-search__btn[aria-busy="true"]::after, .rd .rd-acct__rename-form .rd-btn[aria-busy="true"]::after { content: ""; position: absolute; top: 50%; left: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; box-sizing: border-box; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: rd-spin .8s linear infinite; }
/* фильтры «Документов» — бледнеет содержимое, не кольцо; кольцо держится посреди экрана, пока список длинный; на белом круге с тенью —
   поверх текста карточек тонкое кольцо сливалось; через 0,3 с — быстрый ответ не мигает */
.rp-docs__main.is-loading > * { opacity: .5; }
.rp-docs__main.is-loading::before { content: ""; position: sticky; top: 45vh; z-index: 2; display: block; width: 32px; height: 32px; margin: 0 auto -32px; box-sizing: border-box; border: 3px solid var(--r-gray-light); border-top-color: var(--r-green-mid); border-radius: 50%; background: #fff; box-shadow: 0 0 0 10px #fff, 0 4px 18px 10px rgba(0,0,0,.08); animation: rd-ring-in .2s .3s both, rd-spin .8s linear infinite; }
@keyframes rd-ring-in { from { opacity: 0; } }
/* LOADING-RING:END */

/* Поля модалок «Запрос роли» и «Сообщить о проблеме» в фокусе — как в форме подачи (Ойбек, 17.10: «почему разный дизайн?»):
   Astra даёт полю в фокусе border: thin dotted, наше правило меняло только цвет рамки, а общее правило фокуса скина
   (:focus-visible с !important) красило бледное кольцо в --r-green-mid — выходили пунктир внутри и толстое тёмное кольцо.
   Теперь сплошная зелёная рамка и бледное кольцо, как у полей ACF и окна «Добавить тег». input-focus 17.10 */
.rd-skin-portal.resiland-data :is(.rd-rolereq__field, .rp-report__field) :is(input, textarea):is(:focus, :focus-visible) { border-style: solid !important; border-color: var(--r-green-mid) !important; outline: 2px solid var(--r-green-pale) !important; outline-offset: 0 !important; box-shadow: none !important; }

/* Типы документов классификатора CAREC (№ 80, 17.10) — цвет прежнего типа по своему блоку, как иконка (inc/icons.php,
   resiland_type_vis_map): законодательство — «акт» (земляной), международное сотрудничество — «исследование» (тёмно-зелёный),
   наука — «отчёт» (зелёный), стратегии — «стратегия» (охра), управление и общество — «руководство» (бледно-зелёный),
   экономика — «датасет» (синий). Цвет иконки в списках — через :where(), чтобы белые иконки чипов hero (.rp-hero__chip) не
   перекрашивались. Дописано в конец файла сценарием config/terms/apply.sh (docs), маркер — terms-80 */
.rd-skin-portal .rd :is(.rd-vis--laws-codes, .rd-vis--decrees, .rd-vis--orders-rules, .rd-vis--court-acts) { background: var(--r-earth); }
.rd-skin-portal .rd :is(.rd-vis--declarations, .rd-vis--conventions, .rd-vis--memoranda, .rd-vis--agreements) { background: var(--r-green-dark); }
.rd-skin-portal .rd :is(.rd-vis--maps-gis, .rd-vis--reports, .rd-vis--statistics, .rd-vis--assessments) { background: var(--r-green-mid); }
.rd-skin-portal .rd :is(.rd-vis--roadmaps, .rd-vis--concepts, .rd-vis--programmes, .rd-vis--presidential-addresses) { background: var(--rp-strategy); }
.rd-skin-portal .rd :is(.rd-vis--instructions, .rd-vis--guidelines, .rd-vis--appeals-hearings, .rd-vis--standards) { background: var(--r-green-pale); color: var(--r-green-dark); }
.rd-skin-portal .rd :is(.rd-vis--budgets, .rd-vis--grants, .rd-vis--procurement-plans, .rd-vis--terms-of-reference) { background: var(--r-sky); }
:where(.rp-vis--laws-codes, .rp-vis--decrees, .rp-vis--orders-rules, .rp-vis--court-acts) .rp-vis__icon { color: var(--r-earth); }
:where(.rp-vis--maps-gis, .rp-vis--reports, .rp-vis--statistics, .rp-vis--assessments) .rp-vis__icon { color: var(--r-green-mid); }
:where(.rp-vis--roadmaps, .rp-vis--concepts, .rp-vis--programmes, .rp-vis--presidential-addresses) .rp-vis__icon { color: var(--rp-strategy); }
:where(.rp-vis--budgets, .rp-vis--grants, .rp-vis--procurement-plans, .rp-vis--terms-of-reference) .rp-vis__icon { color: var(--r-sky); }
.rd-skin-portal .rd .rp-rec__thumb--gen:is(.rp-vis--laws-codes, .rp-vis--decrees, .rp-vis--orders-rules, .rp-vis--court-acts) { --rc: var(--r-earth); }
.rd-skin-portal .rd .rp-rec__thumb--gen:is(.rp-vis--declarations, .rp-vis--conventions, .rp-vis--memoranda, .rp-vis--agreements) { --rc: color-mix(in srgb, var(--r-green-dark) 55%, var(--r-sky)); }
.rd-skin-portal .rd .rp-rec__thumb--gen:is(.rp-vis--maps-gis, .rp-vis--reports, .rp-vis--statistics, .rp-vis--assessments) { --rc: var(--r-green-mid); }
.rd-skin-portal .rd .rp-rec__thumb--gen:is(.rp-vis--roadmaps, .rp-vis--concepts, .rp-vis--programmes, .rp-vis--presidential-addresses) { --rc: var(--rp-strategy); }
.rd-skin-portal .rd .rp-rec__thumb--gen:is(.rp-vis--instructions, .rp-vis--guidelines, .rp-vis--appeals-hearings, .rp-vis--standards) { --rc: color-mix(in srgb, var(--r-green-light) 65%, var(--r-green-dark)); }
.rd-skin-portal .rd .rp-rec__thumb--gen:is(.rp-vis--budgets, .rp-vis--grants, .rp-vis--procurement-plans, .rp-vis--terms-of-reference) { --rc: var(--r-sky); }

/* «По уровню» в «Базе в цифрах» (17.10, Ойбек: вариант A из design/version2/glance-level-variants.html): когда лет у записей
   нет (реестр CAREC), вместо линии по годам — одна тонкая полоса региональные / национальные в цветах кольца и числа
   под ней ссылками на список; тонкая доля не пропадает (min-width). Дописано config/glance-level/apply.sh (docs), маркер — glance-level */
.rd-skin-portal .rd .rd-split__bar { display: flex; gap: 3px; height: 8px; border-radius: 4px; overflow: hidden; }
.rd-skin-portal .rd .rd-split__bar i { display: block; min-width: 4px; }
.rd-skin-portal .rd .rd-split__legend { list-style: none; margin: 10px 0 0; padding: 0; display: flex; justify-content: space-between; gap: 12px; }
.rd-skin-portal .rd .rd-split__legend li { display: flex; align-items: baseline; gap: 8px; font-size: 12.5px; color: var(--r-text-muted); }
.rd-skin-portal .rd .rd-split__legend li:last-child { flex-direction: row-reverse; }
.rd-skin-portal .rd .rd-split__legend a { color: inherit; text-decoration: none; }
.rd-skin-portal .rd .rd-split__legend a:hover { color: var(--r-green-dark); }
.rd-skin-portal .rd .rd-split__legend b { font-family: var(--rp-font-head); font-size: 20px; line-height: 1; font-weight: 600; color: var(--r-green-dark); margin-right: 2px; }

/* REGIONAL-SWITCH:BEGIN */
/* «Только региональные» под флагами — тумблером, как «Доступность» (Ойбек, 17.10.2026; config/regional-switch в документах).
   Отступы как у плиток флагов (рамка 1,5 + 8 px), промежуток 6 px — подпись начинается там же, где названия стран (флаг 30 + 10 = тумблер 34 + 6),
   число — в одной колонке с числами стран; подпись на полкегля мельче — «Только региональные» (147 px) в панели 234 px иначе
   переносилась на вторую строку. В шторке, где флаги в две колонки, черта и тумблер — во всю ширину */
.rp-flags > .rp-switch { gap: 6px; padding: 5px 9.5px; }
.rp-flags > .rp-switch .rp-switch__label { font-size: 12.5px; }
.rp-flags > .rp-flags__sep, .rp-flags > .rp-switch { grid-column: 1 / -1; }
/* REGIONAL-SWITCH:END */

/* FILTERS-POLISH:BEGIN */
/* Панель фильтров и тулбар «Документов» (Ойбек, 18.10.2026; config/filters-polish в документах) */
/* 1 — выбранное не жирнее невыбранного: жирный текст шире, длинное название («Постановления и распоряжения») переносилось
   по-другому, пилюля меняла размер и соседи прыгали под курсором. Выбор видно по заливке и рамке */
.rp-flag:has(input:checked) .rp-flag__name { font-weight: 500; }
.rd-skin-portal .rd .rp-panel .rp-pill:has(input:checked) { font-weight: 500; }
.rp-subj__label:has(input:checked) { font-weight: inherit; }
/* 2 — зазор между строками тем и подтем: две выбранные рамки подряд стояли через 2 px и читались одной; под темой — 8 px,
   рамка темы отдельно от блока подтем (Ойбек, 18.10). Селектор сильнее .rd ul[role="list"] { margin: 0 } — тот обнулял отступ,
   прежние 3 px (16.10) и 4 px не действовали вовсе */
.rp-subj { gap: 4px; }
.rd .rp-subj .rp-subj__sub { margin-top: 8px; }
.rp-subj__sub > li + li { margin-top: 4px; }
/* 3 — тема выбрана: её подтемы уже в выдаче — бледная заливка без рамки (галочку снимает resiland.js, coverSubs); нажатие подтемы
   снимает тему и оставляет выбранной подтему (Ойбек, 18.10.2026: «нельзя нажать на подтему, потому что тема нажата») */
.rp-subj__item:has(> .rp-subj__row input:checked) .rp-subj__label--child { background: color-mix(in srgb, var(--r-green-pale) 55%, #fff); box-shadow: none; }
.rp-subj__item:has(> .rp-subj__row input:checked) .rp-subj__label--child:hover { background: var(--r-green-pale); }
/* 4 — «Блок» пилюлями, как тип документа; без иконки — поля поровну */
.rd-skin-portal .rd .rp-panel .rp-pill--block { padding: 6px 10px; }
/* 5 — тулбар в одну строку: сортировка слева, «Показывать» и «1–10 / N» справа. Шрифт уменьшается вместе с колонкой
   (cqi — доля ширины колонки результатов), не мельче 12 px; где и 12 px мало — «Показывать» со счётом уходят на вторую строку вправо.
   Коэффициент — 13,5 px / ширина строки при 13,5 px на этом языке (+3 %), замер 18.10 в Chrome; второй — с «По релевантности» (при запросе).
   На ≤ 960 px сортировки в тулбаре нет — она в шторке фильтров (Ойбек, 18.09), там тулбар как был */
@media (min-width: 961px) {
	.rp-docs__main { container-type: inline-size; }
	.rp-toolbar { --rp-tb-k: 1.748cqi; gap: 8px 22px; font-size: clamp(12px, var(--rp-tb-k), 13.5px); white-space: nowrap; }
	.rp-toolbar:has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-k: 1.568cqi; }
	.rp-toolbar:lang(ru) { --rp-tb-k: 1.266cqi; } .rp-toolbar:lang(ru):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-k: 1.113cqi; }
	.rp-toolbar:lang(kk) { --rp-tb-k: 1.266cqi; } .rp-toolbar:lang(kk):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-k: 1.105cqi; }
	.rp-toolbar:lang(ky) { --rp-tb-k: 1.216cqi; } .rp-toolbar:lang(ky):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-k: 1.044cqi; }
	.rp-toolbar:lang(tg) { --rp-tb-k: 1.231cqi; } .rp-toolbar:lang(tg):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-k: 1.085cqi; }
	.rp-toolbar:lang(tk) { --rp-tb-k: 1.476cqi; } .rp-toolbar:lang(tk):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-k: 1.268cqi; }
	.rp-toolbar:lang(uz) { --rp-tb-k: 1.396cqi; } .rp-toolbar:lang(uz):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-k: 1.231cqi; }
	.rp-toolbar__group--sort { order: 1; margin-right: auto; }
	.rp-toolbar__group:not(.rp-toolbar__group--sort) { order: 2; margin-left: auto; }
	.rp-toolbar__count { order: 3; margin-right: 0; }
}
/* где и 12 px мало (при запросе — шестой вариант «По релевантности»; узкое окно) — resiland.js fitToolbar ставит .is-compact:
   варианты сворачиваются в кнопку «Сначала новые ▾» с выпадающим списком */
.rp-toolbar__sortbtn { display: none; }
.rp-toolbar__opts { display: contents; }
.rp-toolbar.is-compact .rp-toolbar__group--sort { position: relative; }
.rd-skin-portal .rd .rp-toolbar.is-compact .rp-toolbar__sortbtn, .rd-skin-portal .rd .rp-toolbar.is-compact .rp-toolbar__sortbtn:hover, .rd-skin-portal .rd .rp-toolbar.is-compact .rp-toolbar__sortbtn:focus { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 4px 10px; border: 0; border-radius: 6px; background: var(--r-green-pale); color: var(--r-green-dark); box-shadow: none; font: inherit; font-weight: 700; line-height: inherit; text-transform: none; letter-spacing: normal; cursor: pointer; }
.rp-toolbar__sortbtn::after { content: ""; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .15s; }
.rp-toolbar__group--sort.is-open .rp-toolbar__sortbtn::after { transform: translateY(1px) rotate(225deg); }
.rp-toolbar.is-compact .rp-toolbar__opts { display: none; }
.rp-toolbar.is-compact .rp-toolbar__group--sort.is-open .rp-toolbar__opts { display: flex; flex-direction: column; gap: 2px; position: absolute; top: calc(100% + 6px); left: 0; z-index: 20; min-width: 100%; padding: 6px; background: #fff; border: 1px solid var(--rp-border); border-radius: 10px; box-shadow: 0 10px 28px rgba(0,0,0,.1); }
.rd-skin-portal .rd .rp-toolbar.is-compact .rp-toolbar__opts .rp-toolbar__opt { padding: 7px 10px; }
/* FILTERS-POLISH:END */

/* TOOLBAR-ROWS:BEGIN */
/* Над списком «Документов» две строки (Ойбек, 18.10.2026; config/toolbar-rows в документах): сверху выбранные фильтры слева и
   «1–10 / N» справа; под ними сортировка слева и «Показывать» справа. Раньше всё стояло одной строкой, и варианты сортировки
   уже на десктопе сворачивались в выпадающий список (RU с запросом, окно 1470) — список нужен только в узком окне.
   Сортировка с «Показывать» не помещается и при 12 px (окно 1470: KY и TG с запросом) — «Показывать» уходит наверх к счёту
   (.is-stacked, resiland.js fitToolbar); не помещается и одна сортировка — кнопка списком (.is-compact).
   Сетка вместо flex — перебивает order и margin auto из FILTERS-POLISH 5.
   ≤ 960 px сортировка в шторке (18.09): сверху чипы, под ними счёт слева и «Показывать» справа — как было */
.rp-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px 22px; padding-top: 0; }
.rp-toolbar:not(:has(> .rp-chipsbar)) { padding-top: 10px; }
.rp-toolbar > .rp-chipsbar { grid-column: 1 / -1; margin: 0; white-space: normal; }
.rp-toolbar > .rp-toolbar__group, .rp-toolbar > .rp-toolbar__count { order: 0; margin-left: 0; margin-right: 0; }
.rp-toolbar > .rp-toolbar__count { grid-column: 1; }
.rp-toolbar > .rp-toolbar__group:not(.rp-toolbar__group--sort) { grid-column: 2; }
@media (max-width: 640px) { .rp-toolbar { gap: 14px; } }
@media (min-width: 961px) {
	.rp-toolbar { align-items: baseline; gap: 12px 16px; font-size: clamp(12px, calc((100cqi - var(--rp-tb-a)) / var(--rp-tb-b)), 13.5px); }
	.rp-toolbar > .rp-chipsbar { grid-area: 1 / 1; }
	.rp-toolbar > .rp-toolbar__count { grid-area: 1 / 2; justify-self: end; }
	.rp-toolbar > .rp-toolbar__group--sort { grid-area: 2 / 1; flex-wrap: wrap; row-gap: 4px; min-width: 0; } /* без JS варианты переносятся */
	.rp-toolbar > .rp-toolbar__group:not(.rp-toolbar__group--sort) { grid-area: 2 / 2; }
	.rd-skin-portal .rd .rp-toolbar .rp-toolbar__opt { padding-inline: 6px; } /* 8 → 6 px: по-русски с запросом сортировка и «Показывать» помещаются в колонку 964 px */
	.rp-toolbar.is-stacked { grid-template-columns: minmax(0, 1fr) auto auto; }
	.rp-toolbar.is-stacked > .rp-toolbar__group:not(.rp-toolbar__group--sort) { grid-area: 1 / 2; }
	.rp-toolbar.is-stacked > .rp-toolbar__count { grid-area: 1 / 3; }
	.rp-toolbar.is-stacked > .rp-toolbar__group--sort { grid-area: 2 / 1 / 3 / -1; }
	.rp-toolbar.is-compact > .rp-toolbar__group--sort { justify-self: start; } /* список шириной с «Сортировка: … ▾», не во всю колонку */
	/* шрифт — сколько помещается: ширина строки w(f) = a + b·f линейна по кеглю; a и b — замер 18.10 на staging при 12 и 13,5 px на семи языках
	   (второе правило в строке — с «По релевантности», при запросе), в a — запас 8 px (жирный выбранный вариант). Строка — сортировка + «Показывать»;
	   .is-stacked — одна сортировка. Окно 1470 (колонка 964 px): RU с запросом — 12,3 px, KY и TG с запросом — «Показывать» наверху */
	.rp-toolbar { --rp-tb-a: 143.2px; --rp-tb-b: 35.33; } .rp-toolbar:has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 156.6px; --rp-tb-b: 40.27; }
	.rp-toolbar:lang(ru) { --rp-tb-a: 144.5px; --rp-tb-b: 56.33; } .rp-toolbar:lang(ru):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 158.3px; --rp-tb-b: 65.47; }
	.rp-toolbar:lang(kk) { --rp-tb-a: 144.2px; --rp-tb-b: 56.40; } .rp-toolbar:lang(kk):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 158.2px; --rp-tb-b: 65.87; }
	.rp-toolbar:lang(ky) { --rp-tb-a: 144.1px; --rp-tb-b: 59.60; } .rp-toolbar:lang(ky):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 159.1px; --rp-tb-b: 71.00; }
	.rp-toolbar:lang(tg) { --rp-tb-a: 144.2px; --rp-tb-b: 58.60; } .rp-toolbar:lang(tg):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 157.8px; --rp-tb-b: 67.67; }
	.rp-toolbar:lang(tk) { --rp-tb-a: 148.0px; --rp-tb-b: 45.20; } .rp-toolbar:lang(tk):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 162.3px; --rp-tb-b: 54.53; }
	.rp-toolbar:lang(uz) { --rp-tb-a: 144.2px; --rp-tb-b: 49.27; } .rp-toolbar:lang(uz):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 157.5px; --rp-tb-b: 57.07; }
	.rp-toolbar.is-stacked { --rp-tb-a: 81.7px; --rp-tb-b: 28.80; } .rp-toolbar.is-stacked:has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 95.1px; --rp-tb-b: 33.73; }
	.rp-toolbar.is-stacked:lang(ru) { --rp-tb-a: 82.0px; --rp-tb-b: 46.67; } .rp-toolbar.is-stacked:lang(ru):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 95.8px; --rp-tb-b: 55.80; }
	.rp-toolbar.is-stacked:lang(kk) { --rp-tb-a: 82.1px; --rp-tb-b: 48.47; } .rp-toolbar.is-stacked:lang(kk):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 96.1px; --rp-tb-b: 57.93; }
	.rp-toolbar.is-stacked:lang(ky) { --rp-tb-a: 81.6px; --rp-tb-b: 51.13; } .rp-toolbar.is-stacked:lang(ky):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 96.6px; --rp-tb-b: 62.53; }
	.rp-toolbar.is-stacked:lang(tg) { --rp-tb-a: 82.4px; --rp-tb-b: 48.13; } .rp-toolbar.is-stacked:lang(tg):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 96.0px; --rp-tb-b: 57.20; }
	.rp-toolbar.is-stacked:lang(tk) { --rp-tb-a: 85.3px; --rp-tb-b: 36.00; } .rp-toolbar.is-stacked:lang(tk):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 99.6px; --rp-tb-b: 45.33; }
	.rp-toolbar.is-stacked:lang(uz) { --rp-tb-a: 82.4px; --rp-tb-b: 40.73; } .rp-toolbar.is-stacked:lang(uz):has(.rp-toolbar__opt:nth-of-type(6)) { --rp-tb-a: 95.7px; --rp-tb-b: 48.53; }
}
/* TOOLBAR-ROWS:END */

/* SEARCH-MIN:BEGIN — поиск не короче 3 букв и цифр (Ойбек, 19.10.2026; resiland.js «Search boxes…», inc/search.php).
   Строка под полем лежит поверх того, что ниже, как список подсказок: поле, чипы и результаты не сдвигаются
   (field-error-text 16.10 — тексты ошибок не должны ломать расположение). Рамка поля — красная, как у ошибок формы подачи. */
.rd-qmin { position: absolute; left: 0; top: calc(100% + 6px); z-index: 61; margin: 0; padding: 7px 12px; max-width: 100%; box-sizing: border-box; background: #fff; border: 1px solid #F3C7C7; border-left: 3px solid #C62828; border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.12); color: #C62828; font-size: 13.5px; font-weight: 500; line-height: 1.35; text-align: left; }
.rd-qmin[hidden] { display: none; }
.rd-search { position: relative; } /* 404: строка — под рамкой поля, у .rd-search__box overflow: hidden */
.rd-skin-portal .rd .rp-docs__q[aria-invalid="true"] { border-color: #C62828; outline-color: #C62828; }
.rp-hero__search:has(.rp-hero__q[aria-invalid="true"]) { box-shadow: 0 0 0 2px #C62828; }
.rd-search__box:has(.rd-search__input[aria-invalid="true"]) { border-color: #C62828; }
/* SEARCH-MIN:END */

/* TOOLBAR-COUNT:BEGIN — счёт над «Показывать» (Ойбек, 19.10.2026; config/toolbar-count в документах). Правая колонка была шириной
   с «Показывать: 10 25 50» (≈165 px), а счёт ≈65 px: пустое место слева от счёта чипам не доставалось, и «очистить всё»
   падало на свою строку. Теперь три колонки: чипы — первые две, счёт — третья по своей ширине, «Показывать» — две правые.
   Счёт всегда справа прямо над «Показывать»: с чипами — в строке последнего чипа (last baseline), без чипов — своей строкой;
   на всех ширинах. .is-stacked (KY/TG с запросом — «Показывать» наверху рядом со счётом) не меняется */
.rp-toolbar { grid-template-columns: minmax(0, 1fr) auto min-content; }
.rp-toolbar > .rp-chipsbar { grid-area: 1 / 1 / 2 / 3; }
.rp-toolbar > .rp-toolbar__count { grid-area: 1 / 3; justify-self: end; align-self: end; align-self: last baseline; white-space: nowrap; }
.rp-toolbar > .rp-toolbar__group:not(.rp-toolbar__group--sort) { grid-area: 2 / 2 / 3 / 4; justify-self: end; }
@media (min-width: 961px) {
	.rp-toolbar > .rp-toolbar__group--sort { grid-area: 2 / 1; }
	.rp-toolbar.is-stacked > .rp-chipsbar { grid-area: 1 / 1; }
}
/* TOOLBAR-COUNT:END */

/* SEARCH-SUGGEST:BEGIN — «Ищем…» и пустой список подсказок «Документов» (Ойбек, 19.10; resiland.js, config/search-suggest
   в документах): пока ждём ответ — строка с кольцом, как LOADING-RING; открытые подсказки бледнеют, а не исчезают; ничего
   в названиях — «Возможно, вы имели в виду» и «Искать везде» с клавишей Enter */
.rp-suggest[aria-busy="true"] > .rp-suggest__group { opacity: .55; }
.rp-suggest__status { display: flex; align-items: center; gap: 10px; padding: 8px 10px; font-size: 14.5px; line-height: 1.35; color: var(--r-text-muted); }
.rp-suggest__spin { flex: none; width: 16px; height: 16px; box-sizing: border-box; border: 2px solid var(--r-gray-light); border-top-color: var(--r-green-mid); border-radius: 50%; animation: rd-spin .8s linear infinite; }
.rp-suggest__fix { margin: 0; padding: 8px 10px; font-size: 14.5px; line-height: 1.35; color: var(--rp-text); }
.rd-skin-portal .rd .rp-suggest__fixlink { font-weight: 600; }
.rd-skin-portal .rd .rp-suggest__item--all { align-items: center; }
.rp-suggest__icon { flex: none; color: var(--r-green-mid); }
.rp-suggest__key { flex: none; margin-left: auto; padding: 3px 7px; border: 1px solid var(--rp-border); border-radius: 5px; background: var(--r-gray-bg); font: 600 11px/1.2 var(--rp-font-body); color: var(--r-text-muted); }
@media (hover: none) { .rp-suggest__key { display: none; } } /* на телефоне Enter — кнопка «Найти» клавиатуры */
/* SEARCH-SUGGEST:END */

/* FORM-ERRORS:BEGIN — форма подачи, пакет 5, п. 7 (Ойбек 21.10: «не должно сломать места input»). Тексты ошибок у полей
   скрыты с экрана с 16.10 (field-error-text), ошибку показывает красная рамка — так и остаётся. Добавлено:
   1) рамка поля «Файл» (зона выбора .rd-drop) — красная, как у остальных полей (field-errors-red): меняется только цвет,
      толщина та же — ничего не сдвигается;
   2) ошибки без поля — «Страница открыта слишком давно…» (C-Н7), «Похоже на спам…» и другие сводные ошибки ACF, — которых
      не было видно совсем: плашкой под кнопками шага, поверх того, что ниже (как строка поиска SEARCH-MIN), — поля и кнопки
      не сдвигаются. Плашку ставит resiland.js (rd-form-alert), убирает следующая попытка отправить. */
.rd-skin-portal .rd .acf-form .acf-field.acf-error .rd-drop { border-color: #C62828; }
.rd-skin-portal .rd .rd-step__foot { position: relative; }
.rd-form-alert { position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 20; margin: 0; padding: 9px 14px; box-sizing: border-box; background: #fff; border: 1px solid #F3C7C7; border-left: 3px solid #C62828; border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.12); color: #C62828; font-size: 14px; font-weight: 500; line-height: 1.4; text-align: left; overflow-wrap: anywhere; }
.rd-form-alert[hidden] { display: none; }
/* FORM-ERRORS:END */
