.rd a { color: var(--r-green-mid); text-decoration: none; }
.rd a:hover, .rd a:focus { color: var(--r-green-dark); text-decoration: underline; }
:where(.rd) :where(h1, h2, h3) { font-family: var(--r-font-display); color: var(--r-green-dark); font-weight: 700; margin: 0; line-height: 1.2; }
.rd p { margin: 0; }
.rd ul[role="list"] { list-style: none; margin: 0; padding: 0; }

html { scroll-padding-top: 90px; } /* якоря #subjects, #countries, #submit — под липкой шапкой */
html:has(body.admin-bar) { scroll-padding-top: 122px; }
@media (max-width: 900px) { html { scroll-padding-top: 76px; } html:has(body.admin-bar) { scroll-padding-top: 122px; } }
.rd-container { max-width: 1320px; margin: 0 auto; padding-inline: 28px; }
@media (max-width: 720px) { .rd-container { padding-inline: 16px; } }

/* Astra leftovers */
.resiland-data #content.rd-main { padding: 0; }
.resiland-data .ast-container { max-width: none; padding: 0; }
.resiland-data #ast-scroll-top { display: none !important; }

/* ---------- typography helpers ---------- */
.rd-eyebrow { font-family: var(--r-font-body); font-size: 12px; font-weight: 600; letter-spacing: 1.8px; text-transform: uppercase; color: var(--r-green-mid); margin: 0 0 6px; }
.rd-eyebrow--light { color: var(--r-green-pale); text-shadow: 0 1px 12px rgba(0,0,0,.35); }
.rd-h1 { font-size: 30px; font-weight: 700; line-height: 1.15; margin-bottom: 14px; }
.rd-h2 { font-size: 25px; font-weight: 700; line-height: 1.2; margin-bottom: 6px; }
.rd-muted { color: var(--r-text-muted); font-size: 14.5px; max-width: 60ch; }
.rd-empty { color: var(--r-text-muted); padding: 18px 0; }
.rd-prose { max-width: 76ch; }
.rd-prose p { margin: 0 0 1em; }

/* ---------- buttons, chips, badges ---------- */
:is(.rd, .rd-share-dlg) .rd-btn { display: inline-flex; align-items: center; gap: 8px; background: var(--r-green-dark); color: #fff; font-family: var(--r-font-body); font-size: 15px; font-weight: 700; padding: 12px 18px; border-radius: 7px; border: 1.5px solid var(--r-green-dark); line-height: 1.2; cursor: pointer; white-space: nowrap; transition: background .15s, color .15s, border-color .15s; }
:is(.rd, .rd-share-dlg) .rd-btn:hover, :is(.rd, .rd-share-dlg) .rd-btn:focus { background: var(--r-green-mid); border-color: var(--r-green-mid); color: #fff; text-decoration: none; }
.rd-btn__icon { width: 17px; height: 17px; flex: none; } /* иконка в кнопке вместо символа (✉ в шрифте кнопки выходил крошечным — Ойбек, 18.09) */
.rd .rd-btn--outline { background: #fff; color: var(--r-green-dark); border-color: var(--r-gray-light); }
.rd .rd-btn--outline:hover { background: var(--r-gray-bg); color: var(--r-green-dark); border-color: var(--r-green-dark); }
.rd .rd-btn--sm { font-size: 14px; padding: 9px 14px; }
.rd-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 24px; }
.rd .rd-chip { display: inline-block; font-size: 13.5px; font-weight: 500; border: 1px solid var(--r-gray-light); border-radius: 4px; padding: 5px 10px; color: var(--r-text); }

/* ---------- header: base (sticky, dark green); the white portal header lives in portal.css ---------- */
.rd-header { position: sticky; top: 0; z-index: 1100; color: #fff; background: var(--r-green-dark); }
.admin-bar .rd-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rd-header { top: 46px; } }
.rd-header__row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; min-height: 78px; padding-block: 10px; }
.rd-brand { display: flex; align-items: center; text-decoration: none !important; }
.rd-brand__logo { display: block; width: auto; height: 54px; }
.rd-nav { display: flex; flex-wrap: wrap; gap: 2px; margin-left: 8px; }
.rd .rd-nav__link { color: #fff; font-size: 14.5px; font-weight: 500; padding: 8px 11px; border-radius: 7px; white-space: nowrap; }
.rd .rd-nav__link:hover, .rd .rd-nav__link:focus { background: rgba(255,255,255,.12); color: #fff; text-decoration: none; }
.rd-nav__link--mobile { display: none; }
.rd .rd-nav__link.is-current { background: rgba(255,255,255,.16); font-weight: 600; color: #fff; }
.rd-header__tools { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.rd .rd-header__signout { color: rgba(255,255,255,.7); font-size: 13px; }
.rd .rd-header__signout:hover, .rd .rd-header__signout:focus, .rd .rd-user:focus { color: #fff; }
.rd-header__toggle { display: none; margin-left: auto; background: transparent; border: 1px solid rgba(255,255,255,.4); color: #fff; border-radius: 7px; font-size: 20px; line-height: 1; padding: 8px 11px; cursor: pointer; }
.rd-header__toggle:hover { background: rgba(255,255,255,.1); color: #fff; }

/* language switcher */
.rd-lang { position: relative; }
.rd-lang__current { display: flex; align-items: center; gap: 8px; list-style: none; cursor: pointer; color: #fff; font-size: 14px; font-weight: 600; border: 1px solid rgba(255,255,255,.35); border-radius: 7px; padding: 8px 12px; white-space: nowrap; }
.rd-lang__current::-webkit-details-marker { display: none; }
.rd-lang__current:hover { background: rgba(255,255,255,.1); }
.rd-lang__code { font-size: 11px; letter-spacing: 1px; color: var(--r-green-light); width: 24px; font-weight: 600; }
/* стрелка — SVG-шеврон 14px, а не символ ▾ 9px: «очень маленький» (17.09) */
.rd-lang__caret { flex: none; width: 14px; height: 14px; opacity: .8; }
.rd-lang__list { position: absolute; top: calc(100% + 6px); right: 0; z-index: 40; width: 212px; background: #fff; border: 1px solid var(--r-gray-light); border-radius: 7px; box-shadow: 0 10px 26px rgba(27,67,50,.18); overflow: hidden; padding: 4px 0; }
.rd .rd-lang__item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; font-size: 14px; color: var(--r-text); }
.rd .rd-lang__item:hover { background: var(--r-gray-bg); text-decoration: none; }
.rd .rd-lang__item.is-current { background: var(--r-green-pale); color: var(--r-green-dark); font-weight: 600; }
.rd-lang__item .rd-lang__code { color: var(--r-text-muted); }
.rd-lang__item.is-current .rd-lang__code { color: var(--r-green-mid); }
.rd-lang__name { flex: 1; }
.rd-lang__check { font-size: 12px; color: var(--r-green-mid); }

/* signed-in user */
.rd .rd-user { display: flex; align-items: center; gap: 8px; color: #fff; font-size: 13.5px; }
.rd .rd-user:hover, .rd .rd-user:focus { text-decoration: none; color: #fff; }
.rd-user__avatar { width: 26px; height: 26px; border-radius: 50%; background: #fff; color: var(--r-green-dark); font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.rd-user__name { color: #fff; font-weight: 600; max-width: 18ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* длинное имя — многоточием, место в шапке как у прежней роли */

/* телефон и планшет: одна строка — логотип, код языка, вход/аватар, ☰; меню и ссылка на портал раскрываются под ней */
@media (max-width: 900px) {
	.rd-header__row { min-height: 64px; gap: 8px 10px; }
	.rd-header__toggle { display: inline-block; order: 3; margin-left: 0; }
	.rd-header__tools { order: 2; margin-left: auto; gap: 8px; position: relative; } /* список языков позиционируется от блока инструментов, не от кнопки флага: от кнопки он уходил за левый край экрана (Ойбек, 18.09) */
	.rd-lang { position: static; }
	.rd-nav { order: 4; display: none; width: 100%; flex-direction: column; gap: 0; border-top: 1px solid rgba(255,255,255,.16); padding: 6px 0 8px; margin: 0; }
	.rd-nav-open .rd-nav { display: flex; }
	.rd-nav-open .rd-header { background: var(--r-green-dark); }
	.rd-nav__link--mobile { display: block; }
	.rd-header__signout, .rd-user__name, .rd-lang__label { display: none; }
	.rd-lang__current { padding: 8px 9px; gap: 5px; }
	.rd-lang__code { width: auto; }
	.rd-brand__logo { height: 44px; }
}

/* ---------- footer ---------- */
.rd-footer { background: var(--r-green-dark); color: rgba(255,255,255,.82); margin-top: 0; }
.rd-footer__cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 32px; padding-block: 52px 40px; font-size: 14.5px; }
.rd-footer__brand img { display: block; height: 60px; width: auto; margin-bottom: 16px; }
.rd-footer__brand p { max-width: 34ch; line-height: 1.6; color: rgba(255,255,255,.7); }
.rd-footer__title { font-family: var(--r-font-body); font-size: 11.5px; font-weight: 600; letter-spacing: 1.6px; text-transform: uppercase; color: var(--r-green-light); margin: 0 0 14px; }
.rd-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.rd .rd-footer a { color: #fff; }
.rd .rd-footer a:hover { color: var(--r-green-light); }
.rd-footer__address { font-style: normal; line-height: 1.7; }
.rd-footer__bar { border-top: 1px solid rgba(255,255,255,.16); }
.rd-footer__dev { display: block; margin-top: 4px; } /* разработчик — второй строкой под © */
.rd-footer__bar-row { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; align-items: flex-start; padding-block: 16px; font-size: 12px; color: rgba(255,255,255,.6); }
.rd-credits { margin-left: auto; text-align: right; max-width: 100%; }
.rd-credits summary { cursor: pointer; list-style: none; color: rgba(255,255,255,.75); }
.rd-credits summary::-webkit-details-marker { display: none; }
.rd-credits summary::after { content: " ▾"; }
.rd-credits[open] summary::after { content: " ▴"; }
.rd-credits ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 16px; }
.rd-credits li { color: rgba(255,255,255,.6); }
.rd .rd-credits a { color: rgba(255,255,255,.85); }
@media (max-width: 720px) { .rd-credits { margin-left: 0; text-align: left; } .rd-credits ul { justify-content: flex-start; } }
@media (max-width: 1100px) { .rd-footer__cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rd-footer__cols { grid-template-columns: 1fr; } }

/* ---------- sections ---------- */
.rd-section { padding-block: 40px 0; }
.rd-section--last { padding-bottom: 72px; }
.rd-callout { margin-top: 22px; background: var(--r-green-pale); border-left: 3px solid var(--r-green-mid); padding: 13px 16px; font-size: 14.5px; color: var(--r-green-dark); max-width: 88ch; }

/* ---------- search ---------- */
.rd-search__box { position: relative; display: flex; border: 1.5px solid var(--r-green-light); border-radius: 7px; overflow: hidden; background: #fff; }
.rd .rd-search__input { flex: 1; min-width: 0; border: 0; padding: 14px 16px; font-family: var(--r-font-body); font-size: 16px; outline: none; color: var(--r-text); background: #fff; box-shadow: none; border-radius: 0; }
.rd .rd-search__btn { border: 0; background: var(--r-green-dark); color: #fff; font-family: var(--r-font-body); font-size: 15px; font-weight: 700; padding: 0 22px; cursor: pointer; border-radius: 0; }
.rd .rd-search__btn:hover { background: var(--r-green-mid); color: #fff; }
@media (prefers-reduced-motion: reduce) {
	.rd-header { transition: none; }
}

/* ---------- subjects on paper ---------- */
.rd-paper { background: var(--r-sand); position: relative; margin-top: 64px; padding-bottom: 64px; }
.rd-paper::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: linear-gradient(90deg, var(--r-green-dark), var(--r-green-light)); }

/* ---------- 404: the two axes as plain lists ---------- */
.rd .rd-axis-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 8px 0; border-top: 1px solid var(--r-gray-light); font-size: 14.5px; color: var(--r-text); }
.rd .rd-axis-row:hover { color: var(--r-green-dark); text-decoration: none; }
.rd-axis-row__aside { font-size: 12.5px; color: var(--r-text-muted); }
.rd-row { display: grid; grid-template-columns: 120px minmax(0, 1fr) 220px; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--r-gray-light); align-items: start; }
.rd-row__year { font-family: var(--r-font-display); font-size: 32px; line-height: 1; color: var(--r-green-dark); padding-top: 6px; font-variant-numeric: tabular-nums; }
.rd-row__year small { display: block; font-family: var(--r-font-body); font-size: 12px; color: var(--r-text-muted); margin-top: 8px; letter-spacing: .3px; }
.rd-row__body { min-width: 0; }
.rd .rd-row__type { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--r-earth); background: var(--r-sand); padding: 4px 9px; border-radius: 4px; margin-bottom: 10px; }
.rd .rd-row__type:hover { text-decoration: none; background: #efe1c4; }
.rd-row__type-icon { width: 14px; height: 14px; }
.rd-row__title { font-size: 24px; line-height: 1.2; font-weight: 700; }
.rd .rd-row__title a { color: var(--r-green-dark); }
.rd-row__summary { margin-top: 8px; color: var(--r-text-muted); max-width: 64ch; font-size: 15.5px; }
.rd-row__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.rd .rd-row__tags a { font-size: 13px; color: var(--r-green-mid); background: var(--r-green-pale); padding: 3px 9px; border-radius: 4px; }
.rd .rd-row__tags a:hover { background: #c5ebcf; text-decoration: none; }
.rd-row__side { font-size: 14px; color: var(--r-text-muted); display: grid; gap: 8px; padding-top: 6px; }
.rd-row__side b { color: var(--r-text); font-weight: 600; }
.rd .rd-row__file { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--r-green-dark); }
.rd-row__file i { font-style: normal; font-size: 10.5px; font-weight: 700; letter-spacing: 1px; border: 1.5px solid currentColor; border-radius: 3px; padding: 2px 5px; text-transform: uppercase; }
.rd-result-line { font-size: 13.5px; color: var(--r-text-muted); padding: 14px 0 4px; }
@media (max-width: 900px) {
	.rd-row { grid-template-columns: 72px minmax(0, 1fr); gap: 16px; }
	.rd-row__year { font-size: 24px; }
	.rd-row__side { grid-column: 2; display: flex; flex-wrap: wrap; gap: 6px 18px; padding-top: 0; }
	.rd-row__title { font-size: 20px; }
}

/* ---------- pagination ---------- */
.rd-pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 22px 0 0; padding: 0; justify-content: flex-end; }
.rd-pagination ul.page-numbers { display: flex; border: 0; padding: 0; min-width: 0; } /* paginate_links вешает .page-numbers и на <ul> — иначе список становился рамкой-столбиком */
.rd-pagination a.page-numbers, .rd-pagination span.page-numbers { display: inline-block; min-width: 34px; text-align: center; padding: 7px 10px; border: 1px solid var(--r-gray-light); border-radius: 3px; font-size: 13.5px; color: var(--r-text); }
.rd-pagination .page-numbers.current { background: var(--r-green-dark); color: #fff; border-color: var(--r-green-dark); }
.rd-pagination a.page-numbers:hover { border-color: var(--r-green-dark); text-decoration: none; }

/* ---------- empty state, 404 ---------- */
.rd-empty-state { border-left: 3px solid var(--r-accent); background: var(--r-gray-bg); padding: 26px 28px; margin-top: 18px; }
.rd-empty-state .rd-muted { margin-top: 8px; }
.rd-404 { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; }
.rd-404__code { font-family: var(--r-font-display); font-size: 76px; font-weight: 700; color: var(--r-green-dark); line-height: .9; }
.rd-404 .rd-h2 { margin: 14px 0 10px; max-width: 34ch; }
.rd-404 .rd-search { max-width: 520px; }
.rd-404__aside { border: 1px solid var(--r-gray-light); border-radius: 4px; padding: 16px 18px; align-self: start; }
@media (max-width: 900px) { .rd-404 { grid-template-columns: 1fr; } }

/* ---------- accessibility ---------- */
.rd .skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 1200; background: #fff; color: var(--r-green-dark); padding: 8px 12px; border-radius: 4px; }
.rd :focus-visible { outline: 2px solid var(--r-accent); outline-offset: 2px; }

/* ---------- record ---------- */
.rd-crumbs { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12.5px; color: var(--r-text-muted); margin-bottom: 18px; }
.rd-crumbs a + a::before, .rd-crumbs a + span::before { content: "›"; margin-right: 6px; color: var(--r-text-muted); }
.rd .rd-btn--block { display: block; text-align: center; width: 100%; box-sizing: border-box; }

/* Модалка «Поделиться» (inc/share.php): скопировать ссылку + приложения */
.rd-share-dlg { border: 0; border-radius: 12px; padding: 0; width: min(92vw, 460px); box-shadow: 0 24px 60px rgba(0,0,0,.25); color: var(--r-text); font-family: var(--r-font-body); }
.rd-share-dlg::backdrop { background: rgba(10, 30, 20, .55); }
.rd-share-dlg__box { margin: 0; padding: 22px 24px 24px; display: grid; gap: 14px; }
.rd-share-dlg__head { display: flex; align-items: center; justify-content: space-between; }
.rd-share-dlg__title { margin: 0; font-size: 20px; font-weight: 700; font-family: inherit; color: inherit; }
dialog.rd-share-dlg .rd-share-dlg__close { border: 0; background: transparent; font-size: 26px; line-height: 1; color: var(--r-text-muted); cursor: pointer; padding: 2px 8px; border-radius: 6px; box-shadow: none; } /* не кнопка Astra */
dialog.rd-share-dlg .rd-share-dlg__close:hover { background: var(--r-gray-bg); color: var(--r-text); }
.rd-share-dlg__doc { margin: -6px 0 0; font-size: 13px; color: var(--r-text-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rd-share-dlg__copy { display: flex; gap: 8px; }
.rd-share-dlg__copy input { flex: 1; min-width: 0; border: 1px solid var(--r-gray-light); border-radius: 6px; padding: 9px 12px; font-size: 13px; color: var(--r-text); background: var(--r-gray-bg); font-family: inherit; }
.rd-share-dlg__copy .rd-btn { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; padding-inline: 14px; }
.rd-share-dlg__copy .rd-btn svg { width: 16px; height: 16px; }
/* Ширина кнопки держится на время «Скопировано» (resiland.js) — надпись по центру; подтверждение — заливка темнее. share-copy-width 16.10 */
.rd-share-dlg__copy .rd-btn { justify-content: center; }
.rd-skin-portal .rd-share-dlg .rd-btn.is-done { background: var(--r-green-dark); border-color: var(--r-green-dark); }
.rd-share-dlg__copy .rd-btn span { position: relative; top: .5px; } /* оптическая центровка: заглавные без выносных сидят выше середины строки, на 1x-экране текст был на пиксель выше иконки (Ойбек, 21.09) */
.rd-share-dlg__apps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 4px; }
.rd-share-app { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 12px 6px 10px; border: 1px solid var(--r-gray-light); border-radius: 10px; background: #fff; color: var(--r-text); text-decoration: none; font: inherit; font-size: 12.5px; cursor: pointer; }
.rd-share-app:hover { border-color: var(--r-green-mid); background: var(--r-gray-bg); color: var(--r-text); text-decoration: none; }
.rd-share-app__icon { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--r-green-dark); }
.rd-share-app__icon svg { width: 22px; height: 22px; }
/* фирменные цвета приложений — не токены темы */
.rd-share-app--telegram .rd-share-app__icon { background: #229ed9; }
.rd-share-app--whatsapp .rd-share-app__icon { background: #25d366; }
.rd-share-app--linkedin .rd-share-app__icon { background: #0a66c2; }
.rd-share-app--facebook .rd-share-app__icon { background: #1877f2; }
.rd-share-app--email .rd-share-app__icon { background: var(--r-earth); }
.rd-share-app--more .rd-share-app__icon { background: var(--r-text-muted); }
@media (max-width: 480px) { .rd-share-dlg__apps { grid-template-columns: repeat(3, 1fr); gap: 8px; } .rd-share-dlg__copy { flex-direction: column; } }

/* Запрос роли «Участник» — модалка с формой (inc/role-request.php, Ойбек 18.09: заявка внутри сайта, не mailto); стоит внутри .rd */
.rd-rolereq { width: min(94vw, 560px); }
.rd-rolereq__box { padding: 0; gap: 0; }
.rd-rolereq__form { display: grid; gap: 16px; padding: 22px 24px 24px; }
.rd-rolereq__lead { margin: -4px 0 0; font-size: 14px; line-height: 1.5; color: var(--r-text-muted); }
.rd-rolereq__from { margin: 0; font-size: 13.5px; padding: 9px 12px; border-radius: 6px; background: var(--r-gray-bg); color: var(--r-text); overflow-wrap: anywhere; }
.rd-rolereq__from span { color: var(--r-text-muted); margin-right: 8px; }
.rd-rolereq__field { display: grid; gap: 6px; }
.rd-rolereq__field > span, .rd-rolereq__countries legend { font-size: 12px; font-weight: 600; color: var(--r-text-muted); }
.rd-rolereq__field :is(input, textarea) { width: 100%; box-sizing: border-box; font-family: inherit; font-size: 14.5px; color: var(--r-text); padding: 10px 12px; border: 1px solid var(--r-gray-light); border-radius: 6px; background: #fff; line-height: 1.45; box-shadow: none; }
.rd-rolereq__field textarea { min-height: 84px; resize: vertical; }
.rd-rolereq__field :is(input, textarea):focus { border-color: var(--r-green-mid); outline: 2px solid var(--r-green-pale); outline-offset: 0; }
.rd-rolereq__countries { border: 0; padding: 0; margin: 0; min-width: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rd-rolereq__countries legend { display: block; width: 100%; padding: 0; margin: 0 0 8px; }
.rd-rolereq__country { position: relative; cursor: pointer; }
.rd-rolereq__country input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.rd-rolereq__country span { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; padding: 7px 12px; border-radius: 999px; border: 1px solid var(--r-gray-light); background: #fff; color: var(--r-text); line-height: 1.2; transition: background .15s, border-color .15s, color .15s; }
.rd-rolereq__country:hover span { border-color: var(--r-green-mid); }
.rd-rolereq__country input:checked + span { background: var(--r-green-dark); border-color: var(--r-green-dark); color: #fff; }
.rd-rolereq__country input:focus-visible + span { outline: 2px solid var(--r-green-mid); outline-offset: 2px; }
.rd-rolereq__msg { margin: -6px 0 0; font-size: 13.5px; color: var(--r-accent); }
.rd-rolereq__msg:empty { display: none; }
.rd-rolereq__row { display: flex; flex-wrap: wrap; gap: 10px; }
.rd-rolereq__done { margin: 0; padding: 30px 28px 26px; display: grid; justify-items: center; text-align: center; gap: 10px; }
.rd-rolereq__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; }
.rd-rolereq__icon svg { width: 28px; height: 28px; }
.rd-rolereq__done p { margin: 0 0 8px; font-size: 14.5px; line-height: 1.5; overflow-wrap: anywhere; }
.rd-rolereq:target:not([open]) { display: block; position: static; margin: 16px 0 0; width: 100%; max-width: 560px; box-shadow: none; border: 1px solid var(--r-gray-light); } /* без JS: форма раскрывается на странице по якорю */
.rd-rolereq-sent { display: flex; flex-basis: 100%; margin: 0; } /* на всю строку: кнопка «Смотреть документы» — под плашкой, не рядом (Ойбек, 18.09) */
.rd-rolereq-sent__box { display: inline-flex; align-items: center; gap: 9px; padding: 10px 14px; border-radius: 7px; background: var(--r-green-pale); color: var(--r-green-dark); font-size: 14px; font-weight: 600; line-height: 1.3; }
.rd-rolereq-sent svg { width: 18px; height: 18px; flex: none; }
.rd-rolereq__form[hidden], .rd-rolereq__done[hidden], .rd-rolereq-sent[hidden], [data-rd-rolereq-open][hidden] { display: none; } /* display: grid/inline-flex сильнее атрибута hidden */
@media (max-width: 480px) { .rd-rolereq__form { padding: 18px 16px 20px; } .rd-rolereq__row .rd-btn { width: 100%; justify-content: center; } }

/* Сообщить о проблеме — <details> с формой (inc/report.php) */
.rd .rd-report { display: block; }
.rd .rd-report__toggle { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--r-green-dark); list-style: none; }
.rd .rd-report__toggle::-webkit-details-marker { display: none; }
.rd .rd-report__toggle::before { content: '⚑ '; }
.rd .rd-report[open] .rd-report__toggle { margin-bottom: 8px; }
.rd .rd-report__msg { margin: 0; font-size: 13px; }
.rd .rd-report__msg:empty { display: none; }
.rd .rd-report__msg.is-ok { color: var(--r-green-dark); }
.rd .rd-report__msg.is-err { color: var(--r-accent); }
.rd-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- states (401 / 403 / pending) ---------- */
.rd-state { border-left: 3px solid var(--r-accent); background: var(--r-gray-bg); padding: 22px 26px; margin-top: 6px; max-width: 720px; }
.rd-state .rd-h2 { margin-top: 4px; }
.rd-state .rd-actions { margin-bottom: 4px; }

/* ---------- submit form (17.09: шапка варианта A + тело варианта B из submit-variants.html) ---------- */
.rd-submit-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--r-green-dark); color: #fff; min-height: 220px; display: flex; align-items: center; }
.rd-submit-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; z-index: -2; }
.rd-submit-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(27,67,50,.92) 0%, rgba(27,67,50,.72) 55%, rgba(27,67,50,.35) 100%); }
.rd-submit-hero__in { position: relative; width: 100%; padding-block: 40px 60px; }
.rd .rd-submit-hero__title { color: #fff; font-size: clamp(30px, 3.4vw, 42px); font-weight: 800; letter-spacing: -.4px; line-height: 1.1; margin: 8px 0 10px; text-shadow: 0 2px 18px rgba(0,0,0,.25); }
.rd-submit-hero__lead { font-size: 16px; color: rgba(255,255,255,.88); max-width: 60ch; }
.rd-submit-page { padding-bottom: 72px; }
/* четыре шага процесса — карточка, наезжающая на фото */
.rd-flow { list-style: none; margin: -30px 0 36px; padding: 0; position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border: 1px solid var(--r-gray-light); border-radius: var(--r-radius); box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.rd-flow li { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; border-right: 1px solid var(--r-gray-light); font-size: 13.5px; line-height: 1.45; }
.rd-flow li:last-child { border-right: 0; }
.rd-flow b { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--r-green-pale); color: var(--r-green-dark); display: grid; place-items: center; font-family: var(--r-font-display); font-size: 13px; }
/* «не вошли» / «нет роли» — одна карточка вместо кода ошибки */
.rd-gate { max-width: 720px; background: #fff; border: 1px solid var(--r-gray-light); border-radius: var(--r-radius); box-shadow: var(--r-shadow); padding: 26px 28px; }
.rd .rd-gate__title { font-size: 22px; margin: 6px 0 8px; }
.rd-gate .rd-actions { margin: 18px 0 0; }
/* степпер слева, карточка шага справа */
.rd-submit { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 28px; align-items: start; }
.rd-submit__side { position: sticky; top: 20px; }
.rd-stepper { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.rd-stepper__item { display: grid; grid-template-columns: 30px 1fr; gap: 2px 12px; align-items: start; padding: 12px; border-radius: var(--r-radius-sm); }
.rd-stepper__item b { grid-row: span 2; width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--r-gray-light); display: grid; place-items: center; font-family: var(--r-font-display); font-size: 13px; color: var(--r-text-muted); }
.rd-stepper__t { font-weight: 600; color: var(--r-text); font-size: 14.5px; line-height: 1.3; }
.rd-stepper__s { font-size: 12.5px; color: var(--r-text-muted); line-height: 1.35; }
.rd-stepper.is-live .rd-stepper__item { cursor: pointer; }
.rd-stepper.is-live .rd-stepper__item:hover { background: var(--r-gray-bg); }
.rd-stepper__item.is-current { background: var(--r-green-pale); }
.rd-stepper__item.is-current b { border-color: var(--r-green-mid); color: var(--r-green-dark); background: #fff; }
.rd-stepper__item.is-done b { background: var(--r-green-dark); border-color: var(--r-green-dark); color: #fff; }
.rd-stepper__item.has-error b { border-color: var(--r-accent); color: var(--r-accent); }
.rd-submit__card { background: #fff; border: 1px solid var(--r-gray-light); border-radius: var(--r-radius); box-shadow: var(--r-shadow); padding: 28px 30px; }
.rd-step { display: none; }
.rd-step.is-current { display: block; }
.rd-step__head { margin-bottom: 22px; }
.rd .rd-step__title { font-size: 22px; margin: 0 0 4px; }
.rd-step__desc { font-size: 14px; color: var(--r-text-muted); }
.rd-step__notice { border-left: 3px solid var(--r-accent); background: #fff4e5; color: #8A4B00; padding: 8px 12px; font-size: 13.5px; margin-bottom: 18px; border-radius: 0 4px 4px 0; }
.rd-step__fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 16px; }
.rd-step__fields > .acf-field { grid-column: span 12; float: none !important; width: auto !important; min-height: 0 !important; border-left: 0 !important; padding-left: 0 !important; } /* ACF рисует линию между полями в ряду — не нужна; min-height ACF ставит inline по своей раскладке, а не по сетке шага — оставлял пустую полосу под рядом (podat-form 15.10) */
.rd-step__fields > .acf-field[data-width="50"] { grid-column: span 6; }
.rd-step__fields > .acf-field[data-width="34"], .rd-step__fields > .acf-field[data-width="33"] { grid-column: span 4; }
.rd-step__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--r-gray-light); padding-top: 18px; margin-top: 6px; }
.rd-step__req { font-size: 12.5px; color: var(--r-text-muted); flex: 1; min-width: 0; }
.rd-step__foot .acf-form-submit, .rd .acf-form .rd-step__foot .acf-form-submit { border: 0; padding: 0; } /* второй селектор сильнее .rd .acf-form .acf-form-submit — без него над кнопкой оставалась своя линия (podat-form 15.10) */
.rd-step__foot .rd-btn--outline { color: var(--r-text-muted); border-color: var(--r-gray-light); }
/* страны и темы — пилюли вместо списка галочек; файл — зона «перетащите» */
.rd .acf-form .acf-field-taxonomy[data-name="tax_country"] .categorychecklist-holder, .rd .acf-form .acf-field-taxonomy[data-name="tax_subject"] .categorychecklist-holder { border: 0; max-height: none; overflow: visible; padding: 0; }
.rd .acf-form [data-name="tax_country"] .acf-checkbox-list, .rd .acf-form [data-name="tax_subject"] .acf-checkbox-list { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; border: 0; } /* ACF даёт ul padding 10px и рамку — лента сдвигалась от подписи (Ойбек, 18.09) */
.rd .acf-form [data-name="tax_country"] .acf-checkbox-list::before, .rd .acf-form [data-name="tax_subject"] .acf-checkbox-list::before, .rd .acf-form [data-name="tax_country"] .acf-checkbox-list::after, .rd .acf-form [data-name="tax_subject"] .acf-checkbox-list::after { display: none; } /* clearfix ACF (.acf-bl:before) во flex — пустой элемент, а с ним и gap 8px перед первой пилюлей */
.rd .acf-form [data-name="tax_country"] .acf-checkbox-list ul, .rd .acf-form [data-name="tax_subject"] .acf-checkbox-list ul { display: contents; margin: 0; }
.rd .acf-form .rd-pill-list li { display: contents; } /* подтемы (вложенный ul) текут в ту же ленту пилюль */
.rd .acf-form .rd-pill-list label { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; padding: 7px 12px; border: 1px solid var(--r-gray-light); border-radius: 999px; background: #fff; cursor: pointer; line-height: 1.2; color: var(--r-text); }
.rd .acf-form .rd-pill-list label:hover { border-color: var(--r-green-mid); }
.rd .acf-form .rd-pill-list label:has(input:checked) { background: var(--r-green-pale); border-color: var(--r-green-mid); color: var(--r-green-dark); font-weight: 600; }
.rd .acf-form .rd-pill-list label:has(input:focus-visible) { outline: 2px solid var(--r-green-mid); outline-offset: 1px; }
.rd .acf-form .rd-pill-list input[type="checkbox"], .rd .acf-form .rd-pill-list input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }
/* подтемы (ul.children) — такие же пилюли, без стрелки «↳» («почему такой icon как ENTER», Ойбек 17.09) */
.rd-pill__flag { width: 20px; height: 14px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.rd .acf-form .rd-drop { display: block; box-sizing: border-box; width: 100%; cursor: pointer; border: 1.5px dashed var(--r-text-muted); border-radius: var(--r-radius-sm); padding: 20px; text-align: center; background: var(--r-gray-bg); }
.rd .acf-form .rd-drop.is-over { border-color: var(--r-green-mid); background: var(--r-green-pale); }
.rd .acf-form .rd-drop__hint { display: block; font-weight: 600; color: var(--r-text); margin-bottom: 8px; }
.rd .acf-form .rd-drop input[type="file"] { max-width: 100%; }
/* своя кнопка выбора файла (I18N-19): штатный input прозрачный поверх кнопки и имени файла — клик и Tab попадают в него */
.rd .acf-form .rd-drop__pick { position: relative; display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 12px; max-width: 100%; cursor: pointer; } /* имя длиннее строки — под кнопку */
.rd .acf-form .rd-drop__pick input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
.rd .acf-form .rd-drop__btn { flex: none; pointer-events: none; }
.rd .acf-form .rd-drop__name { max-width: 100%; font-size: 14px; color: var(--r-text-muted); overflow-wrap: anywhere; }
.rd .acf-form .rd-drop__pick:hover .rd-drop__btn { background: var(--r-gray-bg); color: var(--r-green-dark); border-color: var(--r-green-dark); }
.rd .acf-form .rd-drop__pick:has(input[type="file"]:focus-visible) .rd-drop__btn { outline: 2px solid var(--r-green-mid); outline-offset: 2px; }
@media (max-width: 900px) {
	.rd-flow { grid-template-columns: 1fr 1fr; }
	.rd-flow li:nth-child(2) { border-right: 0; } .rd-flow li:nth-child(-n+2) { border-bottom: 1px solid var(--r-gray-light); }
	.rd-submit { grid-template-columns: minmax(0, 1fr); } /* не `1fr`: min-width:auto колонки брала min-content степпера (три шага в ряд, ~400px) — вся страница уезжала вбок на телефоне (Ойбек, 18.09) */
	.rd-submit__side { position: static; }
	.rd-stepper { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; } /* три шага в один ряд, номер над названием — в строку они не помещались (Ойбек, 18.09: «не в одной строке номер и текст») */
	.rd-stepper__item { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 6px; padding: 10px 6px 8px; }
	.rd-stepper__item b { width: 26px; height: 26px; grid-row: auto; }
	.rd-stepper__t { font-size: 13px; line-height: 1.25; }
	.rd-stepper__s { display: none; }
	.rd-submit__card { padding: 20px 18px; }
	.rd-step__fields > .acf-field[data-width] { grid-column: span 12; }
}
@media (max-width: 640px) { .rd-flow { grid-template-columns: 1fr; } .rd-flow li { border-right: 0; border-bottom: 1px solid var(--r-gray-light); } .rd-flow li:last-child { border-bottom: 0; } }

/* ACF form — переопределение стилей плагина под макет */
.rd .acf-form { max-width: none; }
.rd .acf-form .acf-fields { border: 0; background: transparent; }
.rd .acf-form .acf-field { border: 0; padding: 0 0 18px; margin: 0; }
.rd .acf-form .acf-fields > .acf-field[data-width] + .acf-field[data-width] { padding-left: 16px; } /* два поля в ряд (автор · год) — зазор, который ACF давал рамкой */
@media (max-width: 640px) { .rd .acf-form .acf-fields > .acf-field[data-width] { float: none !important; width: 100% !important; padding-left: 0 !important; } }
.rd .acf-form .acf-label label { font-size: 14px; font-weight: 600; color: var(--r-text); margin-bottom: 6px; }
.rd .acf-form .acf-required { color: var(--r-accent); }
.rd .acf-form p.description, .rd .acf-form .acf-notice { font-size: 12.5px; color: var(--r-text-muted); margin-top: 6px; }
.rd .acf-form .acf-input input[type="text"], .rd .acf-form .acf-input input[type="url"], .rd .acf-form .acf-input input[type="number"],
.rd .acf-form .acf-input textarea, .rd .acf-form .acf-input select, .rd .acf-form #acf-_post_title {
	width: 100%; box-sizing: border-box; border: 1px solid var(--r-gray-light); border-radius: 4px; padding: 10px 12px;
	font-family: var(--r-font-body); font-size: 15px; color: var(--r-text); background: #fff; box-shadow: none; min-height: 42px;
}
.rd .acf-form .acf-input textarea { min-height: 96px; }
/* фокус: Astra рисует толстую серую рамку outline с transition .2s — при клике по краям поля мелькали «символы» (Ойбек, 17.09);
   здесь своя рамка без анимации и для :focus, и для :focus-visible */
.rd .acf-form .acf-input :is(input, textarea, select):focus, .rd .acf-form .acf-input :is(input, textarea, select):focus-visible, .rd .acf-form #acf-_post_title:focus, .rd .acf-form #acf-_post_title:focus-visible { border-color: var(--r-green-mid) !important; outline: 2px solid var(--r-green-pale) !important; outline-offset: 0 !important; box-shadow: none !important; }
.rd .acf-form .acf-input :is(input, textarea, select), .rd .acf-form #acf-_post_title { transition: border-color .15s; }
.rd .acf-form .acf-checkbox-list, .rd .acf-form .acf-radio-list { display: grid; gap: 4px; }
.rd .acf-form .acf-checkbox-list li, .rd .acf-form .acf-radio-list li { font-size: 14px; }
.rd .acf-form .acf-checkbox-list ul { margin-left: 22px; }
.rd .acf-form .acf-field-taxonomy .categorychecklist-holder { border: 1px solid var(--r-gray-light); border-radius: 4px; max-height: 240px; overflow: auto; padding: 8px 10px; }
.rd .acf-form .acf-file-uploader .acf-basic-uploader input[type="file"] { font-family: var(--r-font-body); font-size: 14px; }
.rd .acf-form .acf-true-false label { font-size: 14px; }
.rd .acf-form .acf-form-submit { padding-top: 10px; border-top: 1px solid var(--r-gray-light); display: flex; gap: 10px; align-items: center; }
.rd .acf-form .acf-form-submit .acf-button, .rd .acf-form .acf-form-submit input[type="submit"] {
	background: var(--r-green-dark); color: #fff; border: 1.5px solid var(--r-green-dark); border-radius: 4px; font-family: var(--r-font-body);
	font-size: 14px; font-weight: 700; padding: 10px 18px; cursor: pointer; box-shadow: none; text-shadow: none; line-height: 1.2; height: auto;
}
.rd .acf-form .acf-form-submit .acf-button:hover { background: var(--r-green-mid); border-color: var(--r-green-mid); }
.rd .acf-form .acf-error-message, .rd .acf-form .acf-notice.-error { border-left: 3px solid var(--r-accent); background: #fff4e5; color: #8A4B00; padding: 8px 12px; font-size: 13px; }
.rd .acf-form .acf-field.acf-error .acf-input input, .rd .acf-form .acf-field.acf-error .acf-input textarea, .rd .acf-form .acf-field.acf-error .acf-input select { border-color: var(--r-accent); }
.rd .acf-form .select2-container.-acf { z-index: 1; } /* ACF ставит 1001 — вылезало поверх шапки */
.rd .acf-form .select2-container .select2-selection--multiple, .rd .acf-form .select2-container .select2-selection--single { border: 1px solid var(--r-gray-light); border-radius: 4px; min-height: 42px; font-family: var(--r-font-body); }
/* select2 в один рост и вид с обычными полями (Ойбек, 17.09: «Select» ниже и другой рамкой, чем «Год») */
.rd .acf-form .select2-container--default .select2-selection--single { height: 42px; display: flex; align-items: center; padding: 0 12px; box-sizing: border-box; }
.rd .acf-form .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.3; padding: 0; color: var(--r-text); font-size: 15px; }
.rd .acf-form .select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--r-text-muted); }
.rd .acf-form .select2-container--default .select2-selection--single .select2-selection__arrow { height: 40px; right: 8px; }
.rd .acf-form .select2-container--default.select2-container--focus .select2-selection--single, .rd .acf-form .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--r-green-mid); }
/* мультивыбор (теги): та же высота 42px, чипы-пилюли, кнопка «+» (новый тег) — квадрат у правого края всегда, а не по наведению (Ойбек, 17.09) */
.rd .acf-form .select2-container--default .select2-selection--multiple { min-height: 42px; box-sizing: border-box; padding: 3px 48px 3px 8px; display: flex; align-items: center; }
.rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__rendered { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; padding: 0; margin: 0; width: 100%; }
.rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__choice { margin: 0; padding: 3px 10px 3px 8px; border-radius: 999px; font-size: 13px; line-height: 1.3; display: inline-flex; align-items: center; gap: 5px; }
.rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { margin: 0; color: var(--r-green-mid); font-size: 15px; line-height: 1; display: inline-grid; place-items: center; width: 14px; height: 14px; padding: 0; border: 0; background: transparent; }
.rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__clear { margin: 0 6px 0 0; font-size: 15px; line-height: 1; align-self: center; }
.rd .acf-form .select2-container--default .select2-search--inline { margin: 0; }
.rd .acf-form .select2-container--default .select2-search--inline .select2-search__field { margin: 0; height: 32px; font-family: inherit; font-size: 15px; color: var(--r-text); }
.rd .acf-form .acf-taxonomy-field { position: relative; }
.rd .acf-form .acf-taxonomy-field .acf-actions.-hover { display: block !important; position: absolute; top: 0; right: 0; margin: 0; padding: 0; z-index: 2; }
.rd .acf-form .acf-taxonomy-field .acf-actions.-hover .acf-icon.-plus { width: 40px; height: 40px; margin: 1px 1px 0 0; border: 0; border-left: 1px solid var(--r-gray-light); border-radius: 0 4px 4px 0; background: var(--r-gray-bg); color: var(--r-green-dark); display: grid; place-items: center; box-shadow: none; }
.rd .acf-form .acf-taxonomy-field .acf-actions.-hover .acf-icon.-plus:hover { background: var(--r-green-pale); color: var(--r-green-dark); text-decoration: none; }
.rd .acf-form .acf-taxonomy-field .acf-actions.-hover .acf-icon.-plus, .rd .acf-form .acf-taxonomy-field .acf-actions.-hover .acf-icon.-plus:focus { text-decoration: none; }
.rd .acf-form .select2-container--default .select2-selection--single .select2-selection__arrow b { display: none; }
/* выпадающий список select2 живёт под <body>, вне .rd — область по классу body (Ойбек, 17.09: «select option как-то очень простой»):
   скруглённая карточка с тенью, поиск как обычное поле, пункты с отступом и скруглением, подсветка зелёная, выбранный — жирный с галочкой */
.resiland-data .select2-container--default .select2-dropdown { border: 1px solid var(--r-gray-light); border-radius: 8px; box-shadow: 0 12px 32px rgba(0,0,0,.14); overflow: hidden; margin-top: 4px; font-family: var(--r-font-body); background: #fff; }
.resiland-data .select2-container--default .select2-dropdown--above { margin-top: 0; margin-bottom: 4px; }
.resiland-data .select2-container--default .select2-search--dropdown { padding: 8px 8px 4px; }
.resiland-data .select2-container--default .select2-search--dropdown .select2-search__field { border: 1px solid var(--r-gray-light); border-radius: 6px; padding: 8px 10px 8px 32px; font-family: inherit; font-size: 14px; color: var(--r-text); outline: none; box-shadow: none; background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236C757D' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='M20 20l-4-4'/></svg>") no-repeat 10px center; }
.resiland-data .select2-container--default .select2-search--dropdown .select2-search__field:focus { border-color: var(--r-green-mid); }
.resiland-data .select2-container--default .select2-results { padding: 4px; }
.resiland-data .select2-container--default .select2-results > .select2-results__options { max-height: 280px; }
.resiland-data .select2-container--default .select2-results__option { padding: 9px 36px 9px 12px; border-radius: 6px; font-size: 14.5px; line-height: 1.3; color: var(--r-text); position: relative; }
.resiland-data .select2-container--default .select2-results__option--highlighted[aria-selected], .resiland-data .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--r-green-pale); color: var(--r-green-dark); }
.resiland-data .select2-container--default .select2-results__option[aria-selected="true"], .resiland-data .select2-container--default .select2-results__option--selected { background: transparent; color: var(--r-green-dark); font-weight: 600; }
.resiland-data .select2-container--default .select2-results__option[aria-selected="true"]::after, .resiland-data .select2-container--default .select2-results__option--selected::after { content: "✓"; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--r-green-mid); font-weight: 700; }
.resiland-data .select2-container--default .select2-results__option--highlighted[aria-selected="true"], .resiland-data .select2-container--default .select2-results__option--highlighted.select2-results__option--selected { background: var(--r-green-pale); }
.resiland-data .select2-container--default .select2-results__option[role="group"] { padding: 0; }
.resiland-data .select2-container--default .select2-results__group { font-size: 11.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--r-text-muted); padding: 8px 12px 4px; font-weight: 600; }
.resiland-data .select2-container--default .select2-results__option .select2-results__option { padding-left: 24px; } /* вложенные термины */
.resiland-data .select2-container--default .select2-results__message { color: var(--r-text-muted); font-size: 13.5px; }
/* модалка ACF «Добавить тег» (вне .rd): крестик по центру кружка, заголовок и кнопка в стиле темы */
.resiland-data #acf-popup .acf-popup-box { border-radius: 10px; overflow: hidden; }
.resiland-data #acf-popup .acf-popup-box .title, .resiland-data #acf-popup .acf-popup-box .title h3 { font-family: var(--r-font-body); font-weight: 600; color: var(--r-text); }
.resiland-data #acf-popup .acf-icon.-cancel { display: inline-grid; place-items: center; width: 28px; height: 28px; line-height: 1; text-decoration: none; }
.resiland-data #acf-popup .acf-icon.-cancel::before { position: static; line-height: 1; }
/* «Searching…» при AJAX-загрузке списка → кольцо-индикатор (Ойбек, 17.09) */
.resiland-data .select2-container--default .select2-results__option.loading-results, .resiland-data .select2-container--default .select2-results__option--load-more { font-size: 0; color: transparent; padding: 14px 12px; text-align: center; }
.resiland-data .select2-container--default .select2-results__option.loading-results::before, .resiland-data .select2-container--default .select2-results__option--load-more::before { content: ""; display: inline-block; width: 18px; height: 18px; border: 2px solid var(--r-gray-light); border-top-color: var(--r-green-mid); border-radius: 50%; animation: rd-spin .8s linear infinite; }
@keyframes rd-spin { to { transform: rotate(360deg); } }
/* короткие списки без строки поиска: язык, уровень, блок (id результатов = select2-<ключ поля>-results; ACF грузит их AJAX-ом, поэтому minimumResultsForSearch не работает). «Тип документа» (24 значения) — со строкой поиска (C-П2, Ойбек 20.10) */
.resiland-data .select2-dropdown:has(#select2-acf-field_4278bb91221e1-results, #select2-acf-field_eb0ec2ac0fe11-results, #select2-acf-field_a0b47490168d9-results) .select2-search--dropdown { display: none; }
/* число без стрелок-спиннера (год) */
.rd .acf-form .acf-input input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
.rd .acf-form .acf-input input[type="number"]::-webkit-outer-spin-button, .rd .acf-form .acf-input input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__choice { background: var(--r-green-pale); border-color: var(--r-green-pale); color: var(--r-green-dark); }

/* ---------- account (17.09: вариант B макета account-variants.html — карточка профиля слева, заявки справа,
   статусы вкладками над списком; KPI-плитки, «язык интерфейса» и справка про Auth0 сняты) ---------- */
.rd .rd-chip--role { display: inline-flex; align-items: center; gap: 6px; background: var(--r-green-pale); border-color: var(--r-green-pale); color: var(--r-green-dark); font-size: 11.5px; letter-spacing: .6px; text-transform: uppercase; font-weight: 600; border-radius: 999px; padding: 4px 11px; }
.rd .rd-chip--role::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--r-green-mid); }
.rd-acct { margin-top: 0; padding-block: 36px 72px; }
.rd-acct::before { display: none; }
.rd-acct__grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; align-items: start; }
.rd-acct__card { position: sticky; top: 20px; background: #fff; border: 1px solid var(--r-gray-light); border-radius: var(--r-radius); box-shadow: var(--r-shadow); padding: 26px 24px 20px; text-align: center; display: grid; justify-items: center; gap: 4px; }
.rd-acct__avatar { display: grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; background: var(--r-green-pale); color: var(--r-green-dark); font-family: var(--r-font-display); font-size: 28px; font-weight: 700; margin-bottom: 10px; }
.rd .rd-acct__name { font-size: 22px; line-height: 1.2; margin: 0; overflow-wrap: anywhere; }
.rd .rd-acct__name:not(.rd-acct__name--mail) { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; } /* длинное имя — две строки и «…», полностью — в title (Ойбек, 19.10) */
.rd .rd-acct__name--mail { font-size: 16px; font-weight: 600; margin-bottom: 8px; } /* имени из Auth0 нет — показываем email, кеглем меньше, чтобы не рвался; отступ до роли — как у .rd-acct__mail (Ойбек, 18.09) */
.rd-page-account #content.rd-main { display: flex; flex-direction: column; } /* серая подложка кабинета до самого подвала, а не белый зазор под ней */
.rd-acct { flex: 1; }
.rd-acct__mail { font-size: 13.5px; color: var(--r-text-muted); overflow-wrap: anywhere; margin-bottom: 8px; }
.rd-acct__since { font-size: 13px; color: var(--r-text-muted); margin-top: 8px; }
.rd-acct__card-foot { width: 100%; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--r-gray-light); display: grid; gap: 12px; justify-items: center; }
.rd .rd-acct__out { font-size: 13.5px; color: var(--r-text-muted); }
.rd .rd-acct__title { font-size: 26px; margin: 4px 0 16px; }
.rd-acct__callout { margin: 0 0 18px; }
.rd-acct__tabs { display: flex; flex-wrap: wrap; gap: 0 26px; border-bottom: 1px solid var(--r-gray-light); margin-bottom: 16px; }
.rd .rd-acct__tab { padding: 10px 2px; font-size: 14.5px; font-weight: 500; color: var(--r-text-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.rd .rd-acct__tab b { font-family: var(--r-font-display); margin-left: 6px; font-weight: 700; }
.rd .rd-acct__tab:hover { color: var(--r-green-dark); text-decoration: none; }
.rd .rd-acct__tab.is-current { color: var(--r-text); border-bottom-color: var(--r-green-mid); font-weight: 600; }
.rd-acct__list { background: #fff; border: 1px solid var(--r-gray-light); border-radius: var(--r-radius); box-shadow: var(--r-shadow); }
.rd-acct__row { display: flex; gap: 16px; align-items: center; padding: 16px 20px; border-top: 1px solid var(--r-gray-light); }
.rd-acct__row:first-child { border-top: 0; }
.rd-acct__row .rd-vis { width: 44px; height: 44px; flex: none; }
.rd-acct__row .rd-vis__icon { width: 20px; height: 20px; }
.rd-acct__body { flex: 1; min-width: 0; display: grid; gap: 3px; justify-items: start; }
.rd .rd-acct__row-title { font-size: 16px; font-weight: 600; line-height: 1.35; margin: 0; }
.rd-acct__meta { font-size: 13px; color: var(--r-text-muted); }
.rd-acct__reason { margin-top: 6px; font-size: 13.5px; color: #8A4B00; background: #FFF6EC; border-left: 3px solid var(--r-accent); padding: 8px 12px; border-radius: 0 6px 6px 0; } /* #FFF6EC — оранжевый акцент, разбавленный до подложки */
.rd-acct__act { flex: none; }
.rd-acct__act:empty { display: none; }
.rd-acct__empty { margin-top: 0; background: #fff; border-radius: 0 var(--r-radius-sm) var(--r-radius-sm) 0; }
.rd .rd-acct__empty-title { font-size: 18px; margin: 0 0 6px; }
.rd-acct__empty .rd-actions { margin: 16px 0 0; }
.rd-status { display: inline-block; font-size: 10.5px; letter-spacing: .8px; text-transform: uppercase; font-weight: 700; padding: 2px 7px; border-radius: 2px; border: 1px solid currentColor; }
.rd-status--ok { color: var(--r-green-mid); }
.rd-status--wait { color: #8A4B00; }
.rd-status--warn { color: var(--r-accent); }
.rd-status--off { color: var(--r-text-muted); }
@media (max-width: 900px) { .rd-acct__grid { grid-template-columns: 1fr; } .rd-acct__card { position: static; } }
@media (max-width: 640px) { .rd-acct__row { flex-wrap: wrap; } .rd-acct__act { width: 100%; padding-left: 60px; } .rd-acct__act:empty { display: none; } }
.rd .rd-vis { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 7px; background: var(--r-green-mid); color: #fff; position: relative; overflow: hidden; }
.rd-vis__icon { width: 26px; height: 26px; }
.rd .rd-vis--legal { background: var(--r-earth); }
.rd .rd-vis--report, .rd .rd-vis--publication { background: var(--r-green-mid); }
.rd .rd-vis--dataset { background: var(--r-sky); }
.rd .rd-vis--guideline { background: var(--r-green-pale); color: var(--r-green-dark); }
.rd .rd-vis--strategy { background: var(--r-accent); }
.rd .rd-vis--research { background: var(--r-green-dark); }
.rd .rd-vis--external, .rd .rd-vis--other { background: var(--r-gray-light); color: var(--r-text-muted); }

/* телефон: иконка типа документа меньше */
@media (max-width: 640px) {
	.rd .rd-vis { width: 44px; height: 44px; }
	.rd-vis__icon { width: 20px; height: 20px; }
}

/* ---------- charts (inc/charts.php): colours --rd-ring-* live in portal.css ---------- */
.rd-chart__empty { color: var(--r-text-muted); font-size: 14px; margin: 14px 0 0; }

/* ---------- фокус — одно правило на весь сайт (17.09, Ойбек: «везде убери, если есть») ----------
   Astra рисует свои рамки (dotted thin на ссылках, solid 2,5px на полях) с transition .2s — по краям элементов мелькали
   «символы». Клавиатурный фокус — рамка 2px, мышью — без рамки; поля — зелёная граница и бледное кольцо без отступа;
   outline никогда не анимируется. Поля внутри своих боксов (поиск в hero, годы, select2) рамку не рисуют — её показывает бокс. */
.resiland-data :is(a, button, input, textarea, select, summary, [tabindex]) { transition-property: color, background-color, border-color, box-shadow, transform, opacity; }
.resiland-data :focus:not(:focus-visible) { outline: none !important; }
.resiland-data :focus-visible { outline: 2px solid var(--r-accent) !important; outline-offset: 2px !important; }
.resiland-data :is(input, textarea, select):focus, .resiland-data :is(input, textarea, select):focus-visible { outline: 2px solid var(--r-green-pale) !important; outline-offset: 0 !important; border-color: var(--r-green-mid); }
.resiland-data :is(.rd-search__input, .rp-hero__q, .rp-yearbox__in, .select2-search__field, .rd-pill-list input, [data-rd-opt] input):focus, .resiland-data :is(.rd-search__input, .rp-hero__q, .rp-yearbox__in, .select2-search__field, .rd-pill-list input, [data-rd-opt] input):focus-visible { outline: none !important; }

/* Поле ввода тега (select2) и поле файла — без своей рамки и обводки фокуса, рамку показывает бокс вокруг: поле тегов
   или пунктирная зона «перетащите» (Ойбек, 15.10: «нужно убирать» — пустые «скобки» после чипов и прямоугольник вокруг
   «Choose File»). Фокус файла с клавиатуры виден по зелёной границе зоны. form-field-frames 15.10 */
.rd .acf-form .select2-container--default .select2-search--inline .select2-search__field, .rd .acf-form .select2-container--default .select2-search--inline .select2-search__field:is(:focus, :focus-visible) { border: 0 !important; border-radius: 0 !important; outline: none !important; box-shadow: none !important; background: transparent !important; padding: 0 !important; }
.rd .acf-form .acf-input input[type="file"]:is(:focus, :focus-visible) { border: 0 !important; outline: none !important; box-shadow: none !important; } /* Astra при фокусе даёт полям border: thin dotted, наше правило фокуса красило её в зелёный */
.rd .acf-form .rd-drop:has(input[type="file"]:focus-visible) { border-color: var(--r-green-mid); }

/* Кольцо загрузки select2 и ACF — один вид на сайте (Ойбек, 15.10: «место не нравится», «почему везде loading разные»).
   1. select2 при повторном открытии и при поиске вставляет «Поиск…» первой строкой над прежними пунктами — список
      съезжал вниз и прыгал обратно. Пока пункты есть, строки нет, кольцо — в правом краю строки поиска; у коротких
      списков без поиска кольца нет (пункты те же). Пустой список (первое открытие) — кольцо по центру.
   2. ACF у кнопки «Отправить на проверку» и в окне «Добавить тег» показывал свою GIF (серый круг с точкой) — теперь то же
      кольцо. Везде 18 px: зелёная дуга на светло-сером, оборот 0,8 с. select2-loading 15.10 */
.resiland-data .select2-container--default .select2-results__option.loading-results:not(:only-child) { display: none; }
.resiland-data .select2-container--default .select2-search--dropdown { position: relative; }
.resiland-data .select2-container--default .select2-search--dropdown .select2-search__field { padding-right: 38px; }
.resiland-data .select2-dropdown:has(.loading-results:not(:only-child)) .select2-search--dropdown::after { content: ""; position: absolute; right: 18px; top: calc(50% + 2px); margin-top: -9px; }
.resiland-data .select2-container--default .select2-results__option.loading-results::before, .resiland-data .select2-container--default .select2-results__option--load-more::before, .resiland-data .select2-dropdown:has(.loading-results:not(:only-child)) .select2-search--dropdown::after, .resiland-data .acf-spinner, .resiland-data #acf-popup .acf-loading { 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%; background: none; animation: rd-spin .8s linear infinite; }
.resiland-data .acf-spinner { vertical-align: middle; }
.resiland-data #acf-popup .acf-popup-box .loading i { top: calc(50% - 9px); left: calc(50% - 9px); transform: none; } /* у ACF по центру через translate — вращение его затирало */

/* Окно «Добавить тег» не стоит пустым, пока грузится форма (Ойбек, 15.10: «при первом открытии вот так выглядит»).
   ACF включает слой загрузки .show() до того, как окно вставлено в страницу: jQuery оставляет display пустым, и правило
   ACF display: none прячет слой — 0,5–1,5 с окно белое, без индикатора. Пока .inner пуст, слой виден, без серой пелены;
   с ответом сервера ACF прячет его инлайном (loading(false) → .hide()). Вид кольца — общее правило select2-loading 15.10.
   tag-popup-loading 15.10 */
.resiland-data #acf-popup .acf-popup-box .inner:empty + .loading { display: block; background: none; }

/* Крестики чипов тегов и «очистить всё» — нарисованный крестик вместо символа «×» (15.10.2026, Ойбек: «крестики как-то
   не в центре»). Глиф «×» шрифта сидит ниже середины строки, и в пилюле крестик выглядел опущенным; SVG-маска цвета
   currentColor стоит ровно по центру квадрата 14 px. tag-x-center 15.10 */
.rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__choice__remove, .rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__clear { font-size: 0; line-height: 0; width: 14px; height: 14px; display: inline-grid; place-items: center; align-self: center; cursor: pointer; }
.rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__choice__remove::before, .rd .acf-form .select2-container--default .select2-selection--multiple .select2-selection__clear::before { content: ""; width: 9px; height: 9px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1.5 1.5l7 7M8.5 1.5l-7 7' stroke='%23000' stroke-width='1.9' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1.5 1.5l7 7M8.5 1.5l-7 7' stroke='%23000' stroke-width='1.9' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat; }
