/* Рамка разделов-приложений /bordgubernator/ и /top100/ (UI-SPEC §14.7; решение Шефа 27.09 — рамка «Б»; набросок 019).
   Полоса сайта над приложением и подвал сайта под ним — куски /ab-app/polosa-<код>/ и /ab-app/podval/, которые веб-сервер
   вставляет в страницы приложения. Стили приложению не грузятся: все правила — под приставкой
   :is(#ab-app-ramka,.ab-app-ramka) — у нее вес идентификатора, поэтому правила приложения по тегам и классам («footer{…}»,
   «.foot{…}», «h2{display:flex}», «*{margin:0}») в рамку не просачиваются (дизайн-аудит 28.09, Р-4); элементы рамки
   сначала сбрасываются, затем получают свои правила. Размеры в px (rem считается от корня страницы приложения).
   Цвета — токены сайта (src/styles/tokens.css); темное оформление — по настройке устройства, а если читатель выбрал
   оформление на сайте (localStorage «abireg-theme») — по его выбору: ramka.js ставит data-theme на обертки (Р-14).
   Источники правил: полоса и меню — paket3-razdely.css (019), меню телефона — global.css, подвал — принятый подвал
   пакета 1 (paket1.css, §12.1: строка знака, сетка 6/7 колонок, 3 на планшете, 2 на телефоне, цели 44 px, «↗»). */

:is(#ab-app-ramka,.ab-app-ramka){
  --paper:#ffffff; --news:#f5f3f0; --ink:#17202a; --ink-2:#55606b; --hair:#e4e1db; --red:#c5001e; --red-deep:#9c0018;
  --maxw:1220px; --sans:-apple-system,"Segoe UI",system-ui,Roboto,Helvetica,Arial,sans-serif;
  display:block; margin:0; padding:0; border:0; float:none; width:auto; max-width:none; position:static;
  font-family:var(--sans); font-size:16px; font-weight:400; font-style:normal; line-height:1.45; color:var(--ink);
  text-align:left; text-transform:none; letter-spacing:normal; word-spacing:normal; background:none;
}
@media (prefers-color-scheme:dark){
  :is(#ab-app-ramka,.ab-app-ramka){--paper:#14181c; --news:#191e23; --ink:#ecebe6; --ink-2:#9aa0a6; --hair:#2a2f35; --red:#ff4d5e; --red-deep:#ff6b78;}
}
/* выбор читателя на сайте сильнее настройки устройства (вес атрибута выше, чем у правила выше) */
:is(#ab-app-ramka,.ab-app-ramka)[data-theme="light"]{--paper:#ffffff; --news:#f5f3f0; --ink:#17202a; --ink-2:#55606b; --hair:#e4e1db;
  --red:#c5001e; --red-deep:#9c0018;}
:is(#ab-app-ramka,.ab-app-ramka)[data-theme="dark"]{--paper:#14181c; --news:#191e23; --ink:#ecebe6; --ink-2:#9aa0a6; --hair:#2a2f35;
  --red:#ff4d5e; --red-deep:#ff6b78;}
/* сброс элементов рамки (свойства, которые задают приложения тегами и общими классами); свое — ниже, правилами точнее */
:is(#ab-app-ramka,.ab-app-ramka) :is(div,p,a,span,h2,nav,header,footer,button,ul,li,b){
  display:revert; margin:0; padding:0; border:0; background:none; float:none; width:auto; max-width:none; min-width:auto;
  height:auto; min-height:auto; box-shadow:none; text-shadow:none; position:static; inset:auto; transform:none; opacity:1;
  font:inherit; color:inherit; line-height:inherit; text-align:inherit; text-transform:none; letter-spacing:inherit;
  text-decoration:none; list-style:none; white-space:normal; visibility:inherit;
}
:is(#ab-app-ramka,.ab-app-ramka),:is(#ab-app-ramka,.ab-app-ramka) *,:is(#ab-app-ramka,.ab-app-ramka) *::before,
:is(#ab-app-ramka,.ab-app-ramka) *::after{box-sizing:border-box;}
:is(#ab-app-ramka,.ab-app-ramka) :focus-visible{outline:2px solid var(--red); outline-offset:3px; border-radius:2px;}
:is(#ab-app-ramka,.ab-app-ramka) .wrap{display:block; max-width:var(--maxw); margin:0 auto; padding:0 24px;}
/* ссылка, чьей страницы еще нет (документы до публикации): не выглядит рабочей — как на сайте (Р-6) */
:is(#ab-app-ramka,.ab-app-ramka) a:not([href]){color:var(--ink-2); cursor:default; text-decoration:none;}
:is(#ab-app-ramka,.ab-app-ramka) a:not([href]):hover{color:var(--ink-2);}
/* пропуск к содержанию приложения (с клавиатуры) */
:is(#ab-app-ramka,.ab-app-ramka) .ab-app-skip{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;}
:is(#ab-app-ramka,.ab-app-ramka) .ab-app-skip:focus{position:fixed; left:16px; top:16px; width:auto; height:auto; z-index:2147483002;
  padding:12px 16px; background:var(--paper); color:var(--ink); border:2px solid var(--ink); font-weight:700;}

/* знак сайта */
:is(#ab-app-ramka,.ab-app-ramka) .brand{display:inline-flex; align-items:center; color:var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .appbar .brand{min-height:44px; flex:none;}
:is(#ab-app-ramka,.ab-app-ramka) .logo-mark{display:block; height:28px; width:auto; color:var(--ink); overflow:visible;}

/* полоса над приложением (019): 56 px, фон --paper, нижняя линейка 2 px --ink, не липнет */
:is(#ab-app-ramka,.ab-app-ramka) .appbar{display:block; background:var(--paper); border-bottom:2px solid var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .appbar .wrap{display:flex; align-items:center; gap:16px; min-height:56px;}
:is(#ab-app-ramka,.ab-app-ramka) .apsep{display:block; width:1px; height:24px; background:var(--hair); flex:none;}
:is(#ab-app-ramka,.ab-app-ramka) .aptitle{flex:0 1 auto; font-size:16px; font-weight:700; color:var(--ink); white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; min-width:0; line-height:44px;}
:is(#ab-app-ramka,.ab-app-ramka) a.aptitle:hover{color:var(--red);}
:is(#ab-app-ramka,.ab-app-ramka) .aplinks{flex:0 1000 auto; display:flex; align-items:center; gap:0 16px; margin-left:8px; min-width:0;
  overflow-x:auto; scrollbar-width:none;}
:is(#ab-app-ramka,.ab-app-ramka) .aplinks a{display:inline-flex; align-items:center; min-height:44px; font-size:13.12px; font-weight:700;
  letter-spacing:.02em; text-transform:uppercase; color:var(--ink); white-space:nowrap;}
:is(#ab-app-ramka,.ab-app-ramka) .aplinks a:hover{color:var(--red);}
/* текущая страница приложения в ссылках полосы — красная линейка снизу (§5.3; Р-18) */
:is(#ab-app-ramka,.ab-app-ramka) .aplinks a[aria-current="page"]{color:var(--red); box-shadow:inset 0 -2px 0 var(--red);}
:is(#ab-app-ramka,.ab-app-ramka) .aplinks.m{display:none;}
@media (min-width:1001px){ :is(#ab-app-ramka,.ab-app-ramka) .aplinks:not(.m){overflow:visible;} }
:is(#ab-app-ramka,.ab-app-ramka) .aptools{flex:none; display:flex; align-items:center; gap:8px; margin-left:auto;}
:is(#ab-app-ramka,.ab-app-ramka) .iconbtn,:is(#ab-app-ramka,.ab-app-ramka) .navtoggle{display:inline-flex; align-items:center;
  justify-content:center; gap:8px; min-width:44px; height:44px; padding:0 8px; background:transparent; border:1px solid var(--hair);
  border-radius:2px; color:var(--ink); cursor:pointer; font-family:var(--sans); font-size:16px;}
:is(#ab-app-ramka,.ab-app-ramka) .iconbtn svg,:is(#ab-app-ramka,.ab-app-ramka) .navtoggle svg{width:18px; height:18px; display:block;}
:is(#ab-app-ramka,.ab-app-ramka) .navtoggle[aria-expanded="true"]{background:var(--news); border-color:var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .apmenu span{font-size:12.48px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;}
:is(#ab-app-ramka,.ab-app-ramka) .apsub{display:inline-flex; align-items:center; min-height:44px; padding:0 8px; font-size:12.48px;
  font-weight:700; letter-spacing:.02em; color:var(--red);}
:is(#ab-app-ramka,.ab-app-ramka) .apsub:hover{color:var(--red-deep);}
@media (max-width:1000px){
  :is(#ab-app-ramka,.ab-app-ramka) .aplinks:not(.m){display:none;}
  :is(#ab-app-ramka,.ab-app-ramka) .aplinks.m{display:flex; overflow-x:auto; scrollbar-width:none; gap:8px; padding:6px 24px 8px; margin:0;}
  :is(#ab-app-ramka,.ab-app-ramka) .aplinks.m a{flex:none; min-height:44px; padding:0 16px; border:1px solid var(--hair); border-radius:2px;
    font-size:11.84px;}
}
@media (max-width:620px){
  :is(#ab-app-ramka,.ab-app-ramka) .wrap{padding:0 16px;}
  :is(#ab-app-ramka,.ab-app-ramka) .appbar .wrap{gap:8px;}
  :is(#ab-app-ramka,.ab-app-ramka) .logo-mark{height:24px;}
  :is(#ab-app-ramka,.ab-app-ramka) .apsearch,:is(#ab-app-ramka,.ab-app-ramka) .apsub{display:none;}
  :is(#ab-app-ramka,.ab-app-ramka) .apmenu span{display:none;}
  :is(#ab-app-ramka,.ab-app-ramka) .aplinks.m{padding:6px 16px 8px;}
}

/* меню сайта из полосы (Drawer, §5.3): на любой ширине — выдвижная панель слева */
:is(#ab-app-ramka,.ab-app-ramka) .drawer-overlay{display:block; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:2147483000;
  opacity:0; visibility:hidden; transition:opacity .25s ease;}
:is(#ab-app-ramka,.ab-app-ramka) .drawer-overlay.open{opacity:1; visibility:visible;}
:is(#ab-app-ramka,.ab-app-ramka) .drawer{display:flex; flex-direction:column; position:fixed; top:0; left:0; width:86%; max-width:360px;
  height:100dvh; background:var(--paper); border-right:2px solid var(--ink); z-index:2147483001; transform:translateX(-100%);
  transition:transform .25s ease; visibility:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch;}
:is(#ab-app-ramka,.ab-app-ramka) .drawer.open{transform:none; visibility:visible;}
@media (prefers-reduced-motion:reduce){
  :is(#ab-app-ramka,.ab-app-ramka) .drawer,:is(#ab-app-ramka,.ab-app-ramka) .drawer-overlay{transition:none;}
}
:is(#ab-app-ramka,.ab-app-ramka) .drawer .dhead{display:flex; align-items:center; justify-content:space-between; padding:16px;
  border-bottom:2px solid var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .drawer .dclose{width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center;
  background:transparent; border:0; color:var(--ink); font-size:25.6px; line-height:1; cursor:pointer;}
:is(#ab-app-ramka,.ab-app-ramka) .drawer .dnow{display:none;}   /* дата, время и курсы ведут скрипты сайта — в приложении их нет */
:is(#ab-app-ramka,.ab-app-ramka) .drawer .themeswitch{display:none;}
:is(#ab-app-ramka,.ab-app-ramka) .drawer .dlabel{display:block; padding:16px 16px 4px; font-size:10.88px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-2);}
:is(#ab-app-ramka,.ab-app-ramka) .drawer>a,:is(#ab-app-ramka,.ab-app-ramka) .drawer :is(.dinst,.dchan,.dregs) a{display:flex;
  align-items:center; min-height:44px; padding:8px 16px; font-size:13.76px; font-weight:700; color:var(--ink); border-bottom:1px solid var(--hair);}
:is(#ab-app-ramka,.ab-app-ramka) .drawer :is(.dinst,.dchan) a{font-weight:600;}
:is(#ab-app-ramka,.ab-app-ramka) .drawer>a:hover,:is(#ab-app-ramka,.ab-app-ramka) .drawer :is(.dinst,.dchan,.dregs) a:hover{color:var(--red);
  background:var(--news);}
:is(#ab-app-ramka,.ab-app-ramka) .drawer .dregs{display:flex; flex-wrap:wrap; gap:8px; padding:4px 16px 12px;}
:is(#ab-app-ramka,.ab-app-ramka) .drawer .dregs a{padding:0 12px; border:1px solid var(--hair); border-radius:2px;}
:is(#ab-app-ramka,.ab-app-ramka) .drawer a.dsub{color:var(--red); border-bottom:0; margin-top:auto; border-top:2px solid var(--red);}

/* подвал сайта — принятый подвал пакета 1 (§12.1; paket1.css): строка знака с линейкой, сетка колонок, «↗» */
:is(#ab-app-ramka,.ab-app-ramka) footer.foot{display:block; margin:0; padding:0; border-top:2px solid var(--ink); background:var(--news);
  font-size:16px; line-height:1.6; color:var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .foot > .wrap{display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start;
  padding:34px 24px 40px;}
:is(#ab-app-ramka,.ab-app-ramka) .foot .sign{display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding-bottom:24px;
  border-bottom:1px solid var(--hair);}
:is(#ab-app-ramka,.ab-app-ramka) .foot .sign p{display:block; margin:0; max-width:none; font-size:13.12px; color:var(--ink-2);}
:is(#ab-app-ramka,.ab-app-ramka) .foot .logo-mark{height:24.48px;}
:is(#ab-app-ramka,.ab-app-ramka) .foot .sign .social{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 0 auto;}
:is(#ab-app-ramka,.ab-app-ramka) .foot .sign .social a{font-size:12.8px; font-weight:700; color:var(--ink); border:1px solid var(--hair);
  border-radius:2px; padding:8px 12px; min-height:36px; display:inline-flex; align-items:center;}
:is(#ab-app-ramka,.ab-app-ramka) .foot .sign .social a:hover{color:var(--red); border-color:var(--red);}
:is(#ab-app-ramka,.ab-app-ramka) .foot .cols{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:24px 28px;}
@media (min-width:1001px){
  :is(#ab-app-ramka,.ab-app-ramka) .foot .cols:has(>.col:nth-child(7)){grid-template-columns:repeat(7,minmax(0,1fr)); gap:24px 16px;}
}
:is(#ab-app-ramka,.ab-app-ramka) .foot .col{display:block;}
:is(#ab-app-ramka,.ab-app-ramka) .foot .col h2{display:block; font-size:11.52px; text-transform:uppercase; letter-spacing:.12em;
  color:var(--ink-2); margin:0 0 12px; font-weight:700;}
:is(#ab-app-ramka,.ab-app-ramka) .foot .col a{display:block; font-size:14.08px; padding:4px 0; color:var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .foot .col a:hover{color:var(--red);}
:is(#ab-app-ramka,.ab-app-ramka) .foot .col a.ext::after{content:"\00a0↗"; color:var(--ink-2);}
:is(#ab-app-ramka,.ab-app-ramka) .legal{display:block; border-top:1px solid var(--hair); background:var(--news);}
:is(#ab-app-ramka,.ab-app-ramka) .legal .wrap{display:flex; flex-direction:column; align-items:stretch; gap:12px; padding:16px 24px 24px;
  font-size:12.16px; color:var(--ink-2);}
:is(#ab-app-ramka,.ab-app-ramka) .legal .row1{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px;}
:is(#ab-app-ramka,.ab-app-ramka) .legal .lg{display:flex; align-items:center; gap:10px 16px; flex-wrap:wrap;}
:is(#ab-app-ramka,.ab-app-ramka) .legal .age{display:inline-flex; align-items:center; justify-content:center; min-width:30px; height:22px;
  padding:0 6px; border:1px solid var(--ink-2); border-radius:3px; font-weight:700; font-size:11.52px; color:var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .legal a{color:var(--ink-2); text-decoration:underline; text-underline-offset:2px;}
:is(#ab-app-ramka,.ab-app-ramka) .legal a:not([href]){text-decoration:none;}
:is(#ab-app-ramka,.ab-app-ramka) .legal a:hover{color:var(--red);}
:is(#ab-app-ramka,.ab-app-ramka) .legal .imprint{display:block; font-size:11.84px; line-height:1.55; color:var(--ink-2); margin:0; max-width:none;}
@media (max-width:1000px){
  :is(#ab-app-ramka,.ab-app-ramka) .foot .cols{grid-template-columns:repeat(3,minmax(0,1fr));}
}
/* поля подвала на телефоне — как у сайта (34 / 24 / 40 px, global.css): проба в браузере сравнивает (Р-3, Р-11) */
@media (max-width:620px){
  :is(#ab-app-ramka,.ab-app-ramka) .foot .sign .social{margin:0;}
  :is(#ab-app-ramka,.ab-app-ramka) .foot .sign .social a{min-height:44px;}
  :is(#ab-app-ramka,.ab-app-ramka) .foot .cols{grid-template-columns:1fr 1fr; gap:24px 20px;}
  :is(#ab-app-ramka,.ab-app-ramka) .foot .col a,:is(#ab-app-ramka,.ab-app-ramka) .legal a{min-height:44px; display:flex; align-items:center;
    padding:0;}
  :is(#ab-app-ramka,.ab-app-ramka) .legal .lg{flex-direction:column; align-items:flex-start; gap:0;}
  :is(#ab-app-ramka,.ab-app-ramka) .legal .row1{flex-direction:column; align-items:flex-start;}
}
/* Подвал схемы блоков 10.10 (UI-SPEC §17.16.7): две колонки, складные группы details — те же правила, что src/styles/podval.css */
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-kol{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-g{display:block; border-bottom:1px solid var(--hair); padding:0 0 8px; margin:0 0 8px;}
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-h{display:block; margin:12px 0 4px; font-size:11.52px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-2);}
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-skl summary{list-style:none; cursor:pointer; display:flex; flex-wrap:wrap; align-items:center;
  justify-content:space-between; min-height:44px; padding:6px 0;}
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-skl summary .pv-h{margin:0; color:var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-skl summary .pv-n{display:block; flex:1 0 100%; font-size:11.84px; color:var(--ink-2);}
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-l{display:flex; flex-direction:column; padding:0 0 8px;}
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-l a{display:flex; align-items:center; min-height:32px; font-size:14.4px; color:var(--ink);}
:is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-l a:hover{color:var(--red);}
@media (max-width:620px){
  :is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-kol{gap:16px;}
  :is(#ab-app-ramka,.ab-app-ramka) .foot16 .pv-l a{min-height:44px;}
}
/* подвал, вариант 3 (14.10.2026): группы — открытые details; в рамке приложения скрипта сайта нет, группы открыты всегда.
   Полный вид варианта 3 (подложка, панель) в рамку не перенесен — отдельной задачей, по договору рамки (только под приставкой). */
:is(#ab-app-ramka,.ab-app-ramka) .foot16.pv3 summary{display:block; list-style:none; cursor:default; pointer-events:none;}
:is(#ab-app-ramka,.ab-app-ramka) .foot16.pv3 summary::-webkit-details-marker{display:none;}
:is(#ab-app-ramka,.ab-app-ramka) .foot16.pv3 .pv-kol{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:620px){ :is(#ab-app-ramka,.ab-app-ramka) .foot16.pv3 .pv-kol{grid-template-columns:1fr 1fr;} }
