/* Окно заявки (parts/req-form.php) и плашка cookie — на всех страницах. Токены темы (BRAND.md), светлая и тёмная тема. */
/* цвет ошибок: в тёмной теме светлее — контраст текста ≥ 4,5:1 на --surf (28.10.2026) */
:root{--err:#B3261E}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--err:#FF8A80}}
:root[data-theme="dark"]{--err:#FF8A80}
.rq-fe{display:block;font-style:normal;font-weight:400;font-size:13px;color:var(--err)}
.rq-fe:empty{display:none}
.rq-res{padding:14px 16px;border-radius:10px;font-size:15px;line-height:1.5;border:1px solid var(--line);background:var(--bg);color:var(--text)}
.rq-res.rq-ok{border-color:var(--ok,#2E7D32)}
.rq-res.rq-fail{border-color:var(--err)}
.rq-res a{color:var(--link);font-weight:700}
.rq-res:focus{outline:3px solid var(--link);outline-offset:2px}
.rq-prog{font-size:14px;color:var(--muted);margin:0}
.rq-off{padding:14px 16px;border:1px solid var(--err);border-radius:10px;margin:0;font-size:15px}
.rq-off a{color:var(--link);font-weight:700}
.rq-rm{border:0;background:none;color:var(--link);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px;padding:0 4px;min-height:32px}
.rq-list li{overflow-wrap:anywhere}
.rq [hidden]{display:none !important}
dialog.req.rq{width:min(1040px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;overflow:auto}
.rq-in{display:grid;grid-template-columns:minmax(0,1fr) 300px}
@media (max-width:860px){.rq-in{grid-template-columns:minmax(0,1fr)}}
.req.rq form{padding:28px 30px;gap:12px}
.rq-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.rq-head h2{font-size:26px}
.rq-x{border:0;background:none;color:var(--muted);font-size:30px;line-height:1;cursor:pointer;min-width:44px;min-height:44px;margin:-10px -12px 0 0}
.rq-x:hover{color:var(--ink)}
.rq-lead{color:var(--muted);font-size:15px;margin:-4px 0 4px}
.rq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
@media (max-width:560px){.rq-grid{grid-template-columns:minmax(0,1fr)}}
.rq-f,#q3-l{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:var(--ink)}
.rq-f > span i,.agree i{color:var(--err);font-style:normal}
.rq-f small{font-weight:400;color:var(--muted);margin-left:6px}
.rq input:not([type=checkbox]):not([type=file]),.rq select,.rq textarea{font:inherit;font-size:16px;font-weight:400;min-height:48px;padding:0 14px;border:1px solid var(--field);border-radius:8px;background:var(--surf);color:var(--ink);width:100%}
.rq select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
.rq textarea{padding:12px 14px;min-height:110px;resize:vertical;background:var(--surf)}
.rq input:focus,.rq select:focus,.rq textarea:focus{outline:3px solid var(--link);outline-offset:1px;border-color:var(--link)}
.rq .bad,.rq input.bad,.rq select.bad,.rq textarea.bad{border-color:var(--err) !important;box-shadow:0 0 0 2px rgba(192,57,43,.18)}
.rq-hint{font-size:13px;color:var(--muted);margin:-4px 0 2px}
.rq-hint a,.rq .agree a{color:var(--link)}
.rq-files{display:flex;flex-direction:column;gap:8px}
.rq-drop{position:relative;display:flex;gap:14px;align-items:center;padding:16px 18px;border:1.5px dashed var(--field);border-radius:10px;background:var(--bg);cursor:pointer;color:var(--text);font-size:15px}
.rq-drop:hover{border-color:var(--link)}
.rq-drop svg{width:28px;height:28px;flex:0 0 auto;color:var(--link)}
.rq-drop small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.rq-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.rq-drop:focus-within{outline:3px solid var(--link);outline-offset:2px}
.rq-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--text)}
.rq-list li.bad{color:var(--err)}
.rq-agree{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.rq .agree{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--text);cursor:pointer}
.rq .agree input{width:20px;height:20px;margin-top:1px;flex:0 0 auto;accent-color:var(--btn)}
.rq .agree input.bad{outline:2px solid var(--err);outline-offset:2px}
.rq-trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.rq-err{color:var(--err);font-size:14px;font-weight:700;margin:0}
.req.rq .acts{justify-content:flex-start;flex-direction:row-reverse;margin-top:4px}
.rq-side{background:var(--surf2);padding:28px 26px;display:flex;flex-direction:column;gap:14px;border-left:1px solid var(--line)}
@media (max-width:860px){.rq-side{border-left:0;border-top:1px solid var(--line)}}
.rq-kick{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bronze)}
.rq-side ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;counter-reset:rq}
.rq-side li{counter-increment:rq;display:grid;grid-template-columns:30px minmax(0,1fr);gap:2px 12px}
.rq-side li::before{content:counter(rq);grid-row:span 2;width:30px;height:30px;border-radius:50%;background:var(--btn);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.rq-side li b{color:var(--ink);font-size:15px}
.rq-side li span{color:var(--muted);font-size:14px}
.rq-note{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:auto}
.rq-tel{font-size:14px;color:var(--text);margin:0}
.rq-tel a{color:var(--link);font-weight:700;white-space:nowrap}
.req.rq .who{margin:0}

/* Проверка сертификата (niise_cert_form): ответ — зелёный / красный / жёлтый; окно на страницах (центр, реестр) — карточкой */
:root{--cert-ok:#1E7B3A;--cert-bad:#B3261E;--cert-warn:#8A5A00}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--cert-ok:#6FD58E;--cert-bad:#FF8A80;--cert-warn:#F2C14E}}
:root[data-theme="dark"]{--cert-ok:#6FD58E;--cert-bad:#FF8A80;--cert-warn:#F2C14E}
.cert-res{border:1px solid var(--line);border-left-width:5px;border-radius:10px;padding:12px 16px;background:var(--surf);color:var(--text);font-size:15px;line-height:1.5}
.cert-res b{display:block;font-size:17px;margin-bottom:2px}
.cert-out .cert-res p,.cert-res p{margin:4px 0 0;color:var(--text);font-size:15px;flex:none}
.cert-res a{color:var(--link)}
.cert-res .cert-who{font-weight:700;color:var(--ink)}
.cert-ok{border-color:var(--cert-ok)}.cert-ok b{color:var(--cert-ok)}
.cert-bad{border-color:var(--cert-bad)}.cert-bad b{color:var(--cert-bad)}
.cert-warn{border-color:var(--cert-warn)}.cert-warn b{color:var(--cert-warn)}
.cert-none b{color:var(--ink)}
.checks .res.cert-out,.checks .res.track-out{color:var(--text)}
/* Главная: два окна («Где моё дело», «Проверить сертификат») по одной сетке — заголовок, описание, строка полей, подсказка,
   ответ на одном уровне в обеих карточках (руководитель 28.10.2026: «поисковые поля на одном уровне, блоки одинаково ровные») */
.cert-row{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;flex:1 1 100%;min-width:0}
.cert-row .field{flex:1 1 180px;min-width:0}
.cert-row .btn{flex:0 0 auto;min-height:48px;padding-inline:22px;white-space:nowrap}
.checks .cert-form{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:12px}
/* без nowrap и flex:none столбец с переносом (flex-wrap из home.css) раскладывал строки вбок: на телефоне
   форма уходила на 1309 точек и страница уменьшалась (замер 30.10.2026) */
.checks .cert-form > *{flex:0 0 auto}
.checks .cert-form h2,.checks .cert-form > p{margin:0}
.checks .cert-form .cert-hint{margin:0}
@supports (grid-template-rows:subgrid){
  @media (min-width:901px){
    .checks .wrap{grid-template-rows:repeat(5,auto);row-gap:0}
    .checks .cert-form{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:12px;align-content:start}
    .checks .cert-form .cert-row{align-self:end}
  }
}
.cert-box .cert-form .cert-row .field{flex:1 1 260px}
.track-out[hidden]{display:none}
/* «Где моё дело»: дорожка шагов (как .steps в карточке-примере главной) */
.track-res .track-steps{list-style:none;margin:8px 0 4px;padding:0;display:flex;flex-direction:column}
.track-res .track-steps li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:center;padding:4px 0;color:var(--muted);font-size:15px}
.track-res .track-steps .mk{width:12px;height:12px;border-radius:6px;border:2px solid currentColor}
.track-res .track-steps li.done{color:var(--text)}
.track-res .track-steps li.done .mk{background:var(--cert-ok);border-color:var(--cert-ok)}
.track-res .track-steps li.now{color:var(--link);font-weight:700}
.track-res .track-steps li.now .mk{background:var(--link);border-color:var(--link)}
.track-res .track-now{font-weight:600;color:var(--ink)}
.track-res .track-upd{font-size:13px;color:var(--muted)}
.cert-res.track-res{border-left-color:var(--link)}
.cert-form .cert-hint{font-size:13px;color:var(--muted);flex:1 1 100%;margin:0}
.cert-out[hidden]{display:none}
.cert-box .cert-form{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:22px 24px;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;max-width:760px;margin:0 0 18px}
.cert-box .cert-form h2{flex:1 1 100%;font-size:21px;margin:0}
.cert-box .cert-form > p{flex:1 1 100%;font-size:15px;color:var(--muted);margin:-4px 0 0}
.cert-box .cert-form .field{flex:1 1 260px;display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:var(--ink)}
.cert-box .cert-form input{font:inherit;font-size:16px;font-weight:400;min-height:48px;padding:0 14px;border:1px solid var(--field,var(--line));border-radius:8px;background:var(--bg);color:var(--ink)}
.cert-box .cert-form .btn{min-height:48px}
.cert-box .cert-out{flex:1 1 100%}

/* плашка cookie */
.ck{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:760px;margin:0 auto;background:var(--surf);color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px -24px rgba(0,0,0,.55);padding:16px 18px;display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}
.ck p{margin:0;flex:1 1 360px;font-size:14px;line-height:1.5}
.ck a{color:var(--link)}
.ck-acts{display:flex;flex-wrap:wrap;gap:8px}
.ck .btn{min-height:44px;padding:0 16px;font-size:15px}

/* Текст по ширине с переносами (руководитель 24.10.2026: «тексты выровнены по обоим краям — эстетичней»).
   Основной текст страниц: абзацы, списки, пояснения к разделам. Узкие колонки (боковые и маленькие карточки) и телефон —
   по левому краю: в короткой строке выравнивание по ширине даёт дыры между словами. Заголовки, кнопки, метки — без изменений. */
@media (min-width:700px){
  main p, main li, main dd, main blockquote, .page-band .lead {
    text-align: justify;
    -webkit-hyphens: auto;
    hyphens: auto;
    hyphenate-limit-chars: 6 3 3;
  }
  main .side-card p, main .card-item span, main .acts, main .btn, main .chip, main .date, main .tag, main .meta,
  main .pr-count, main .ex .b span, main .crumbs, main .pp-status, main .ep-dl dd, main td, main th,
  main .dpo-dirs li, main .dpo-path span, main .dpo-steps span, main .tm-b span, main .rib span, main .cases .case span,
  main .peer span, main .pf span, main .hist-now span, main .team span {
    text-align: left;
    -webkit-hyphens: manual;
    hyphens: manual;
  }
}
/* Поиск по сайту: окно из шапки и страница результатов */
dialog.srch{border:0;padding:0;margin:72px auto auto;width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 110px);border-radius:16px;background:var(--surf);color:var(--text);box-shadow:0 40px 80px -30px rgba(0,0,0,.7);overflow:auto}
dialog.srch::backdrop{background:rgba(5,10,18,.6)}
.srch-f{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surf)}
.srch-f svg{width:22px;height:22px;color:var(--muted);flex:0 0 auto}
.srch-f input{flex:1;min-width:0;border:0;background:none;color:var(--ink);font:inherit;font-size:18px;min-height:44px;outline:none}
.srch-f input::-webkit-search-cancel-button{display:none}
.srch-x{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:6px;font-size:12px;padding:4px 8px;cursor:pointer;min-height:32px}
.srch-body{padding:10px 8px 14px}
.srch-res{list-style:none;margin:0;padding:0}
.srch-res a{display:grid;grid-template-columns:120px minmax(0,1fr);gap:2px 14px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}
.srch-res a:hover,.srch-res a:focus{background:var(--surf2);outline:none}
.srch-k{grid-row:span 2;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--bronze);padding-top:3px}
.srch-res b{font-weight:700;line-height:1.35}
.srch-res small{color:var(--muted);font-size:14px}
.srch-all a{display:block;color:var(--link);font-weight:700}
@media (max-width:560px){.srch-res a{grid-template-columns:minmax(0,1fr)}.srch-k{grid-row:auto}}
.srch-none{padding:14px 12px;color:var(--muted)}
.srch-none a,.srch-empty a{color:var(--link)}
.srch-quick{display:flex;flex-wrap:wrap;gap:8px;padding:6px 8px}
.srch-kick{width:100%;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:2px}
.srch-quick a{border:1px solid var(--line);border-radius:999px;padding:8px 14px;text-decoration:none;color:var(--ink);font-size:15px;background:var(--bg)}
.srch-quick a:hover,.srch-quick a:focus{border-color:var(--link);color:var(--link);outline:none}
.srch-page{display:flex;gap:10px;margin-top:20px;max-width:720px}
.srch-page input{flex:1;min-width:0;min-height:50px;padding:0 16px;border-radius:8px;border:1px solid var(--hero-line);background:rgba(255,255,255,.08);color:#fff;font:inherit;font-size:17px}
.srch-page input::placeholder{color:var(--hero-muted)}
.srch-page .btn-w{background:#fff;color:#0B1626}
.srch-count{color:var(--muted);margin:0 0 16px}
.srch-h{font-size:24px;margin:8px 0 14px}
.srch-ex{margin-bottom:28px}
.srch-empty{max-width:760px}
.srch-empty p + p{margin-top:12px}
.srch-quick[hidden],.srch-res[hidden],.srch-none[hidden]{display:none}
