/* ДНЖ · днж-практики.рф · base.css
   Базовые стили по классам сайта: вход, карточки, кнопки, формы, таблицы.
   Часть разделённого сайта (15.09.2026). Подключается из index.html. */

/* ============================================================
   ДНЖ · Библиотека практик — визуальный пак
   styles.css — стили по классам сайта. Требует tokens.css.
   Разметку и логику index.html менять не нужно.
   ============================================================ */

/* ── База ───────────────────────────────────────────────── */
*{box-sizing:border-box; margin:0; padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font); font-size:var(--fs-4); font-weight:400; line-height:1.55;
  color:var(--ink); background:var(--bg);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  text-wrap:pretty;
}
button{font:inherit; cursor:pointer; font-family:var(--font)}
input,select,textarea{font:inherit; font-family:var(--font); color:var(--ink)}
a{color:var(--violet); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px}
a:hover{color:var(--orange-d)}
.hidden{display:none !important}
::selection{background:rgba(255,93,0,.18)}
:focus-visible{outline:none; box-shadow:var(--ring); border-radius:var(--r-sm)}
h1,h2,h3,h4,h5{font-weight:700; letter-spacing:var(--tracking-tight); line-height:1.25}

/* ── 6.2 Шапка ──────────────────────────────────────────── */
#app>header{
  background:var(--grad-header); color:#fff; padding:11px 24px;
  display:flex; align-items:center; gap:20px;
  position:sticky; top:0; z-index:50;
  box-shadow:0 1px 0 rgba(255,255,255,.08), 0 6px 22px -12px rgba(20,2,30,.6);
}
header .logo{
  display:flex; align-items:center; gap:12px;
  font-weight:800; font-size:13px; line-height:1.15; letter-spacing:.08em;
  text-transform:uppercase; color:#fff; white-space:nowrap;
}
/* знак Добро.рф слева от названия сервиса */
header .logo::before{
  content:""; width:104px; height:26px; flex:none;
  background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjc5NyIgaGVpZ2h0PSI2MjkiIHZpZXdCb3g9IjAgMCAyNzk3IDYyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2My4yNDkgMzUzLjI0N1Y0OTIuNTQxSDI3NC42MDdWNDI5LjczMkg5Ni44MTY1VjQ5Mi41NDFIOC4xNzQ3MVYzNTMuMjQ3SDQwLjU5MjNDNTkuNTAyNSAzMjEuODQzIDcwLjQ3NzIgMjY5LjgzOSA3My41MTY0IDE5Ny4yMzhMNzQuNTI5NCAxNzEuNDA1SDMyMC4xOTRWMzUzLjI0N0gzNjMuMjQ5Wk0xMzQuODA2IDM1My4yNDdIMjIzLjk1NFYyNDcuODlIMTU5LjExOUMxNTkuMTE5IDI0OC45MDMgMTU4Ljk1IDI1MS40MzYgMTU4LjYxMyAyNTUuNDg4QzE1OC4yNzUgMjU5LjU0IDE1OC4xMDYgMjYxLjkwNCAxNTguMTA2IDI2Mi41NzlDMTU0LjcyOSAzMDEuMDc1IDE0Ni45NjIgMzMxLjI5OCAxMzQuODA2IDM1My4yNDdaTTU0OS4zMzMgMzYzLjg4NEM1NzAuNjA3IDM2My44ODQgNTg2LjMwOSAzNTguODE5IDU5Ni40NCAzNDguNjg4QzYwNi45MDggMzM4LjU1OCA2MTIuMTQyIDMyMi41MTggNjEyLjE0MiAzMDAuNTY5QzYxMi4xNDIgMjc4LjI4MiA2MDcuMDc3IDI2Mi4yNDIgNTk2Ljk0NiAyNTIuNDQ5QzU4Ni44MTYgMjQyLjMxOCA1NzAuOTQ1IDIzNy4yNTMgNTQ5LjMzMyAyMzcuMjUzQzUwNy40NiAyMzcuMjUzIDQ4Ni41MjQgMjU4LjM1OCA0ODYuNTI0IDMwMC41NjlDNDg2LjUyNCAzMjEuNTA1IDQ5MS45MjcgMzM3LjM3NiA1MDIuNzMzIDM0OC4xODJDNTEzLjg3NiAzNTguNjUgNTI5LjQxIDM2My44ODQgNTQ5LjMzMyAzNjMuODg0Wk01NDkuMzMzIDQzNi4zMTdDNDQwLjkzNyA0MzYuMzE3IDM4Ni43MzkgMzkxLjA2OCAzODYuNzM5IDMwMC41NjlDMzg2LjczOSAyNTUuOTk0IDQwMS4wOSAyMjIuMjI2IDQyOS43OTMgMTk5LjI2NEM0NTguNDk2IDE3Ni4zMDEgNDk4LjM0MyAxNjQuODIgNTQ5LjMzMyAxNjQuODJDNjAwLjk5OSAxNjQuODIgNjQxLjAxNCAxNzYuMzAxIDY2OS4zNzkgMTk5LjI2NEM2OTcuNzQ1IDIyMS44ODggNzExLjkyNyAyNTUuNjU3IDcxMS45MjcgMzAwLjU2OUM3MTEuOTI3IDM0NS44MTggNjk4LjA4MiAzNzkuNzU1IDY3MC4zOTIgNDAyLjM4QzY0Mi43MDIgNDI1LjAwNSA2MDIuMzQ5IDQzNi4zMTcgNTQ5LjMzMyA0MzYuMzE3Wk04MTMuMzMxIDIyNi42MTZIODE0LjM0NEM4MjMuMTI0IDIxMy4xMDkgODM3LjMwNyAyMDEuOTY1IDg1Ni44OTIgMTkzLjE4NUM4NzYuNDc4IDE4NC4wNjggOTAwLjc5MSAxNzkuNTA5IDkyOS44MzIgMTc5LjUwOUM5NzYuNzcgMTc5LjUwOSAxMDEyLjIzIDE5MC40ODQgMTAzNi4yIDIxMi40MzNDMTA2MC4xOCAyMzQuMDQ1IDEwNzIuMTcgMjY1LjI4MSAxMDcyLjE3IDMwNi4xNEMxMDcyLjE3IDM1MC4wMzkgMTA1Ny4zMSAzODIuNzk0IDEwMjcuNTkgNDA0LjQwNkM5OTcuODc1IDQyNS42OCA5NTkuMDQyIDQzNi4zMTcgOTExLjA5MSA0MzYuMzE3Qzc5OS42NTUgNDM2LjMxNyA3NDMuOTM3IDM4MC45MzcgNzQzLjkzNyAyNzAuMTc3Qzc0My45MzcgMjM4LjA5NyA3NDYuOTc3IDIxMC4yMzggNzUzLjA1NSAxODYuNjAxQzc1OS40NzEgMTYyLjk2MyA3NjcuOTEzIDE0My43MTUgNzc4LjM4MSAxMjguODU3Qzc4OC44NDkgMTEzLjk5OSA4MDIuNTI1IDEwMi4wMTEgODE5LjQxIDkyLjg5MzVDODM2LjYzMSA4My40Mzg0IDg1NC4wMjIgNzYuNjg0NyA4NzEuNTgyIDcyLjYzMjVDODg5LjQ3OSA2OC4yNDI2IDkxMC45MjIgNjUuMDM0NiA5MzUuOTEgNjMuMDA4NUM5ODkuMjY0IDU3Ljk0MzMgMTAyNC4zOCA1Mi41NDA0IDEwNDEuMjcgNDYuNzk5N1YxMjUuMzExQzEwMjQuMzggMTMzLjA3OCA5OTQuNjY3IDEzOC42NSA5NTIuMTE5IDE0Mi4wMjZDOTMzLjg4NCAxNDMuMzc3IDkxOC44NTcgMTQ1LjA2NiA5MDcuMDM4IDE0Ny4wOTJDODk1LjIxOSAxNDguNzggODgyLjg5NCAxNTEuNDgyIDg3MC4wNjIgMTU1LjE5NkM4NTcuNTY4IDE1OC45MTEgODQ3LjYwNiAxNjMuODA3IDg0MC4xNzcgMTY5Ljg4NUM4MzIuNzQ4IDE3NS42MjYgODI2LjUwMSAxODMuMjI0IDgyMS40MzYgMTkyLjY3OUM4MTYuMzcgMjAyLjEzNCA4MTMuNjY5IDIxMy40NDYgODEzLjMzMSAyMjYuNjE2Wk04NDYuNzYyIDMwNy4xNTNDODQ2Ljc2MiAzMjQuMDM4IDg1MS44MjcgMzM3LjcxNCA4NjEuOTU4IDM0OC4xODJDODcyLjQyNiAzNTguNjUgODg4LjgwMyAzNjMuODg0IDkxMS4wOTEgMzYzLjg4NEM5MzIuMDI3IDM2My44ODQgOTQ3LjM5MiAzNTguNjUgOTU3LjE4NCAzNDguMTgyQzk2Ny4zMTUgMzM3LjcxNCA5NzIuMzggMzI0LjAzOCA5NzIuMzggMzA3LjE1M0M5NzIuMzggMjkwLjYwNyA5NjcuMzE1IDI3Ny40MzcgOTU3LjE4NCAyNjcuNjQ1Qzk0Ny4wNTQgMjU3LjUxNCA5MzEuMzUyIDI1Mi40NDkgOTEwLjA3OCAyNTIuNDQ5Qzg4OC4xMjggMjUyLjQ0OSA4NzIuMDg4IDI1Ny41MTQgODYxLjk1OCAyNjcuNjQ1Qzg1MS44MjcgMjc3Ljc3NSA4NDYuNzYyIDI5MC45NDUgODQ2Ljc2MiAzMDcuMTUzWk0xMjA5LjQgMzk4LjgzNFY1MzYuMTAzSDExMTMuMTZWMTcxLjQwNUgxMjA2Ljg3VjIwOC4zODFIMTIwNy44OEMxMjI5LjE2IDE4MC4zNTMgMTI2Mi4wOCAxNjYuMzQgMTMwNi42NSAxNjYuMzRDMTM5MS4wOCAxNjYuMzQgMTQzMy4yOSAyMTAuNDA3IDE0MzMuMjkgMjk4LjU0M0MxNDMzLjI5IDM0MC4wNzggMTQyMi4xNCAzNzMuMTcgMTM5OS44NiAzOTcuODIxQzEzNzcuOTEgNDIyLjQ3MiAxMzQ1LjE1IDQzNC43OTggMTMwMS41OSA0MzQuNzk4QzEyODAuNjUgNDM0Ljc5OCAxMjYyLjI1IDQzMS40MjEgMTI0Ni4zOCA0MjQuNjY3QzEyMzAuODQgNDE3LjU3NiAxMjE4Ljg2IDQwOC45NjUgMTIxMC40MiAzOTguODM0SDEyMDkuNFpNMTI3Mi4yMSAzNjEuODU4QzEyOTMuMTUgMzYxLjg1OCAxMzA4LjM0IDM1Ni43OTMgMTMxNy44IDM0Ni42NjJDMTMyNy41OSAzMzYuNTMyIDEzMzIuNDkgMzIwLjMyMyAxMzMyLjQ5IDI5OC4wMzZDMTMzMi40OSAyNTguODY1IDEzMTEuODkgMjM5LjI3OSAxMjcwLjY5IDIzOS4yNzlDMTI1MC43NyAyMzkuMjc5IDEyMzUuNTcgMjQ0Ljg1MSAxMjI1LjEgMjU1Ljk5NEMxMjE0LjY0IDI2Ni44IDEyMDkuNCAyODIuNTAzIDEyMDkuNCAzMDMuMTAxQzEyMDkuNCAzMjIuMDEyIDEyMTQuOCAzMzYuNTMyIDEyMjUuNjEgMzQ2LjY2MkMxMjM2LjQyIDM1Ni43OTMgMTI1MS45NSAzNjEuODU4IDEyNzIuMjEgMzYxLjg1OFpNMTYyNS4yIDM2My44ODRDMTY0Ni40OCAzNjMuODg0IDE2NjIuMTggMzU4LjgxOSAxNjcyLjMxIDM0OC42ODhDMTY4Mi43OCAzMzguNTU4IDE2ODguMDEgMzIyLjUxOCAxNjg4LjAxIDMwMC41NjlDMTY4OC4wMSAyNzguMjgyIDE2ODIuOTUgMjYyLjI0MiAxNjcyLjgyIDI1Mi40NDlDMTY2Mi42OSAyNDIuMzE4IDE2NDYuODIgMjM3LjI1MyAxNjI1LjIgMjM3LjI1M0MxNTgzLjMzIDIzNy4yNTMgMTU2Mi4zOSAyNTguMzU4IDE1NjIuMzkgMzAwLjU2OUMxNTYyLjM5IDMyMS41MDUgMTU2Ny44IDMzNy4zNzYgMTU3OC42IDM0OC4xODJDMTU4OS43NSAzNTguNjUgMTYwNS4yOCAzNjMuODg0IDE2MjUuMiAzNjMuODg0Wk0xNjI1LjIgNDM2LjMxN0MxNTE2LjgxIDQzNi4zMTcgMTQ2Mi42MSAzOTEuMDY4IDE0NjIuNjEgMzAwLjU2OUMxNDYyLjYxIDI1NS45OTQgMTQ3Ni45NiAyMjIuMjI2IDE1MDUuNjYgMTk5LjI2NEMxNTM0LjM3IDE3Ni4zMDEgMTU3NC4yMSAxNjQuODIgMTYyNS4yIDE2NC44MkMxNjc2Ljg3IDE2NC44MiAxNzE2Ljg4IDE3Ni4zMDEgMTc0NS4yNSAxOTkuMjY0QzE3NzMuNjIgMjIxLjg4OCAxNzg3LjggMjU1LjY1NyAxNzg3LjggMzAwLjU2OUMxNzg3LjggMzQ1LjgxOCAxNzczLjk1IDM3OS43NTUgMTc0Ni4yNiA0MDIuMzhDMTcxOC41NyA0MjUuMDA1IDE2NzguMjIgNDM2LjMxNyAxNjI1LjIgNDM2LjMxN1pNMTk1Mi4wMSAzODQuMTQ1QzE5NTIuMDEgNDAwLjY5MiAxOTQ2LjQ0IDQxMy42OTIgMTkzNS4zIDQyMy4xNDhDMTkyNC40OSA0MzIuMjY1IDE5MDguOTYgNDM2LjgyNCAxODg4LjcgNDM2LjgyNEMxODcwLjEyIDQzNi44MjQgMTg1NS4yNiA0MzIuMDk2IDE4NDQuMTIgNDIyLjY0MUMxODMyLjk4IDQxMy4xODYgMTgyNy40MSA0MDAuMzU0IDE4MjcuNDEgMzg0LjE0NUMxODI3LjQxIDM2Ny41OTkgMTgzMi42NCAzNTQuNzY3IDE4NDMuMTEgMzQ1LjY0OUMxODUzLjU4IDMzNi4xOTQgMTg2OC43NyAzMzEuNDY3IDE4ODguNyAzMzEuNDY3QzE5MDcuOTQgMzMxLjQ2NyAxOTIzLjMxIDMzNi4zNjMgMTkzNC43OSAzNDYuMTU2QzE5NDYuMjcgMzU1LjYxMSAxOTUyLjAxIDM2OC4yNzQgMTk1Mi4wMSAzODQuMTQ1Wk0yMDk4Ljc5IDM5OC44MzRWNTM2LjEwM0gyMDAyLjU1VjE3MS40MDVIMjA5Ni4yNlYyMDguMzgxSDIwOTcuMjdDMjExOC41NCAxODAuMzUzIDIxNTEuNDcgMTY2LjM0IDIxOTYuMDQgMTY2LjM0QzIyODAuNDYgMTY2LjM0IDIzMjIuNjcgMjEwLjQwNyAyMzIyLjY3IDI5OC41NDNDMjMyMi42NyAzNDAuMDc4IDIzMTEuNTMgMzczLjE3IDIyODkuMjQgMzk3LjgyMUMyMjY3LjI5IDQyMi40NzIgMjIzNC41NCA0MzQuNzk4IDIxOTAuOTggNDM0Ljc5OEMyMTcwLjA0IDQzNC43OTggMjE1MS42NCA0MzEuNDIxIDIxMzUuNzYgNDI0LjY2N0MyMTIwLjIzIDQxNy41NzYgMjEwOC4yNCA0MDguOTY1IDIwOTkuOCAzOTguODM0SDIwOTguNzlaTTIxNjEuNiAzNjEuODU4QzIxODIuNTMgMzYxLjg1OCAyMTk3LjczIDM1Ni43OTMgMjIwNy4xOCAzNDYuNjYyQzIyMTYuOTggMzM2LjUzMiAyMjIxLjg3IDMyMC4zMjMgMjIyMS44NyAyOTguMDM2QzIyMjEuODcgMjU4Ljg2NSAyMjAxLjI3IDIzOS4yNzkgMjE2MC4wOCAyMzkuMjc5QzIxNDAuMTUgMjM5LjI3OSAyMTI0Ljk2IDI0NC44NTEgMjExNC40OSAyNTUuOTk0QzIxMDQuMDIgMjY2LjggMjA5OC43OSAyODIuNTAzIDIwOTguNzkgMzAzLjEwMUMyMDk4Ljc5IDMyMi4wMTIgMjEwNC4xOSAzMzYuNTMyIDIxMTUgMzQ2LjY2MkMyMTI1LjggMzU2Ljc5MyAyMTQxLjM0IDM2MS44NTggMjE2MS42IDM2MS44NThaTTI1MTguMTQgNTM2LjEwM1Y0MzIuNzcyQzI1MDkuMDIgNDM0LjEyMiAyNDk4Ljg5IDQzNC43OTggMjQ4Ny43NCA0MzQuNzk4QzI0NDUuODcgNDM0Ljc5OCAyNDEyLjc4IDQyNC44MzYgMjM4OC40NiA0MDQuOTEzQzIzNjQuMTUgMzg0LjY1MiAyMzUyIDM1MC4wMzkgMjM1MiAzMDEuMDc1QzIzNTIgMjc2LjA4NyAyMzU1LjU0IDI1NC42NDQgMjM2Mi42MyAyMzYuNzQ3QzIzNjkuNzIgMjE4LjUxMiAyMzc5LjY5IDIwNC40OTggMjM5Mi41MiAxOTQuNzA1QzI0MDUuNjkgMTg0LjkxMiAyNDIwLjA0IDE3Ny44MjEgMjQzNS41NyAxNzMuNDMxQzI0NTEuMTEgMTY4LjcwMyAyNDY4LjUgMTY2LjM0IDI0ODcuNzQgMTY2LjM0QzI0OTkuNTYgMTY2LjM0IDI1MDkuNjkgMTY3LjAxNSAyNTE4LjE0IDE2OC4zNjZWNDkuODM4OUgyNjE0LjM3VjE2OC4zNjZDMjYyMy44MyAxNjcuMDE1IDI2MzQuMyAxNjYuMzQgMjY0NS43OCAxNjYuMzRDMjY2NS43IDE2Ni4zNCAyNjgzLjQzIDE2OC41MzUgMjY5OC45NiAxNzIuOTI0QzI3MTQuNSAxNzYuOTc3IDI3MjguNTEgMTgzLjg5OSAyNzQxLjAxIDE5My42OTJDMjc1My44NCAyMDMuMTQ3IDI3NjMuNjMgMjE2LjgyMyAyNzcwLjM4IDIzNC43MkMyNzc3LjE0IDI1Mi42MTggMjc4MC41MiAyNzQuMDYgMjc4MC41MiAyOTkuMDQ5QzI3ODAuNTIgMzQ3IDI3NjcuODUgMzgxLjYxMyAyNzQyLjUzIDQwMi44ODdDMjcxNy4yIDQyNC4xNjEgMjY4NC4yOCA0MzQuNzk4IDI2NDMuNzUgNDM0Ljc5OEMyNjMxLjkzIDQzNC43OTggMjYyMi4xNCA0MzQuMTIyIDI2MTQuMzcgNDMyLjc3MlY1MzYuMTAzSDI1MTguMTRaTTI1MTguMTQgMzYxLjg1OFYyMzkuMjc5QzI1MTUuNzcgMjM4Ljk0MSAyNTExLjIxIDIzOC43NzMgMjUwNC40NiAyMzguNzczQzI0ODYuOSAyMzguNzczIDI0NzMuOSAyNDMuNSAyNDY1LjQ2IDI1Mi45NTVDMjQ1Ny4zNSAyNjIuMDczIDI0NTMuMyAyNzcuOTQ0IDI0NTMuMyAzMDAuNTY5QzI0NTMuMyAzMjQuMjA2IDI0NTcuMzUgMzQwLjQxNSAyNDY1LjQ2IDM0OS4xOTVDMjQ3My45IDM1Ny45NzUgMjQ4Ny41NyAzNjIuMzY1IDI1MDYuNDkgMzYyLjM2NUMyNTExLjg5IDM2Mi4zNjUgMjUxNS43NyAzNjIuMTk2IDI1MTguMTQgMzYxLjg1OFpNMjYxNC4zNyAyMzkuMjc5VjM2MS44NThDMjYxNi43NCAzNjIuMTk2IDI2MjEuMyAzNjIuMzY1IDI2MjguMDUgMzYyLjM2NUMyNjQ1LjYxIDM2Mi4zNjUgMjY1OC42MSAzNTcuNjM3IDI2NjcuMDUgMzQ4LjE4MkMyNjc1LjUgMzM4LjcyNyAyNjc5LjcyIDMyMi41MTggMjY3OS43MiAyOTkuNTU2QzI2NzkuNzIgMjc2LjI1NSAyNjc1LjUgMjYwLjM4NCAyNjY3LjA1IDI1MS45NDJDMjY1OC42MSAyNDMuMTYyIDI2NDQuOTQgMjM4Ljc3MyAyNjI2LjAzIDIzOC43NzNDMjYyNC42NyAyMzguNzczIDI2MjIuNjUgMjM4Ljk0MSAyNjE5Ljk1IDIzOS4yNzlDMjYxNy41OCAyMzkuMjc5IDI2MTUuNzMgMjM5LjI3OSAyNjE0LjM3IDIzOS4yNzlaIiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPgo8cGF0aCBkPSJNODU0LjQ3MSA0OTMuNTMxQzgzMS45MTcgNDY5LjY2OSA4MDIuNjE4IDQ3MC4xNzQgNzczLjk4NCA0OTcuMDE4Qzc3My45ODQgNDk3LjAxOCA3NzMuOTg0IDQ5Ni45OTUgNzczLjk2MSA0OTYuOTcyTDcyOS42OCA1NDEuMjU0TDY4NS4zOTkgNDk2Ljk3MkM2ODUuMzk5IDQ5Ni45NzIgNjg1LjM5OSA0OTYuOTk1IDY4NS4zNzYgNDk3LjAxOEM2NTYuNzQyIDQ3MC4xOTcgNjI3LjQ0MyA0NjkuNjY5IDYwNC44ODkgNDkzLjUzMUM1ODMuODczIDUxNS43NjMgNTg2LjE2NyA1NDUuODg4IDYwOS45ODMgNTcwLjczNkM2MDkuOTgzIDU3MC43NTkgNjIwLjM5OSA1ODEuMjkgNjIzLjkwOSA1ODQuNzc4QzY1My4wNzEgNjE0LjAzMSA2OTEuNDEgNjI4LjYgNzI5LjY4IDYyOC42Qzc2Ny45NzMgNjI4LjYgODA2LjI4OSA2MTQuMDMxIDgzNS40NSA1ODQuNzc4QzgzOC45MzggNTgxLjI2OCA4NDkuMzc3IDU3MC43NTkgODQ5LjM3NyA1NzAuNzM2Qzg3My4yMTYgNTQ1Ljg4OCA4NzUuNDg3IDUxNS43NjMgODU0LjQ3MSA0OTMuNTMxWiIgZmlsbD0iI0ZGNUQwMCI+PC9wYXRoPgo8L3N2Zz4=") no-repeat left center/contain;
  padding-right:14px; border-right:1px solid rgba(255,255,255,.28);
}
header .logo span{color:var(--orange); -webkit-text-fill-color:#FF8A3D}
header nav{display:flex; gap:2px; flex:1; flex-wrap:wrap}
header nav button{
  background:transparent; border:0; color:#E6D8F2; padding:8px 14px;
  border-radius:var(--r-md); font-weight:600; font-size:var(--fs-3);
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
header nav button:hover{background:rgba(255,255,255,.12); color:#fff}
header nav button.act{background:#fff; color:var(--violet); box-shadow:0 2px 8px rgba(20,2,30,.25)}
header .who{font-size:var(--fs-2); color:#DCCDEC; text-align:right; line-height:1.35}
header .who b{color:#fff; font-weight:700; display:block}
header .exit{
  background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.22);
  border-radius:var(--r-md); padding:7px 14px; font-size:var(--fs-2); font-weight:600;
}
header .exit:hover{background:rgba(255,255,255,.2)}
.badge-mode{
  font-size:var(--fs-1); font-weight:700; letter-spacing:var(--tracking-caps); text-transform:uppercase;
  background:rgba(255,255,255,.14); border-radius:var(--r-pill); padding:4px 11px; color:#FFC69C;
}

/* ── 6.1 Экран входа ────────────────────────────────────── */
.login-wrap{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:32px 24px; background:var(--grad-login); position:relative; overflow:hidden;
}
/* деликатный узор: точечная сетка + мягкое свечение */
.login-wrap::before{
  content:""; position:absolute; inset:-10%;
  background-image:radial-gradient(rgba(255,255,255,.14) 1.5px, transparent 1.6px);
  background-size:26px 26px; opacity:.5; pointer-events:none;
}
.login-wrap::after{
  content:""; position:absolute; width:900px; height:900px; right:-260px; top:-380px;
  background:radial-gradient(circle, rgba(255,93,0,.34) 0%, rgba(202,71,240,.16) 45%, transparent 70%);
  pointer-events:none;
}
.login{
  position:relative; z-index:1;
  background:#fff; border-radius:var(--r-xl); padding:40px 40px 36px; width:100%; max-width:560px;
  box-shadow:var(--shadow-modal);
}
.login h1{font-size:var(--fs-7); color:var(--violet); margin-bottom:6px; line-height:1.2}
.login h1::before{
  content:""; display:block; width:168px; height:38px; margin-bottom:22px;
  background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIyMiIgaGVpZ2h0PSI3MjUiIHZpZXdCb3g9IjAgMCAzMjIyIDcyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQxOC45MjggNDA3LjYxNFY1NjguMDk2SDMxNi44MDNWNDk1LjczM0gxMTEuOTdWNTY4LjA5Nkg5Ljg0NDU0VjQwNy42MTRINDcuMTkzMUM2OC45Nzk4IDM3MS40MzMgODEuNjIzOSAzMTEuNTE5IDg1LjEyNTMgMjI3Ljg3NEw4Ni4yOTI1IDE5OC4xMTJIMzY5LjMyNVY0MDcuNjE0SDQxOC45MjhaTTE1NS43MzggNDA3LjYxNEgyNTguNDQ2VjI4Ni4yMzFIMTgzLjc0OUMxODMuNzQ5IDI4Ny4zOTggMTgzLjU1NCAyOTAuMzE2IDE4My4xNjUgMjk0Ljk4NUMxODIuNzc2IDI5OS42NTMgMTgyLjU4MiAzMDIuMzc3IDE4Mi41ODIgMzAzLjE1NUMxNzguNjkxIDM0Ny41MDYgMTY5Ljc0MyAzODIuMzI2IDE1NS43MzggNDA3LjYxNFpNNjMzLjMxOCA0MTkuODY5QzY1Ny44MjggNDE5Ljg2OSA2NzUuOTE5IDQxNC4wMzMgNjg3LjU5IDQwMi4zNjJDNjk5LjY1MSAzOTAuNjkgNzA1LjY4MSAzNzIuMjExIDcwNS42ODEgMzQ2LjkyM0M3MDUuNjgxIDMyMS4yNDUgNjk5Ljg0NSAzMDIuNzY2IDY4OC4xNzQgMjkxLjQ4M0M2NzYuNTAzIDI3OS44MTIgNjU4LjIxNyAyNzMuOTc2IDYzMy4zMTggMjczLjk3NkM1ODUuMDc2IDI3My45NzYgNTYwLjk1NSAyOTguMjkyIDU2MC45NTUgMzQ2LjkyM0M1NjAuOTU1IDM3MS4wNDQgNTY3LjE4IDM4OS4zMjkgNTc5LjYzIDQwMS43NzhDNTkyLjQ2OCA0MTMuODM5IDYxMC4zNjQgNDE5Ljg2OSA2MzMuMzE4IDQxOS44NjlaTTYzMy4zMTggNTAzLjMyQzUwOC40MzQgNTAzLjMyIDQ0NS45OTIgNDUxLjE4NyA0NDUuOTkyIDM0Ni45MjNDNDQ1Ljk5MiAyOTUuNTY4IDQ2Mi41MjYgMjU2LjY2MyA0OTUuNTk1IDIzMC4yMDhDNTI4LjY2NCAyMDMuNzUzIDU3NC41NzIgMTkwLjUyNSA2MzMuMzE4IDE5MC41MjVDNjkyLjg0MyAxOTAuNTI1IDczOC45NDUgMjAzLjc1MyA3NzEuNjI1IDIzMC4yMDhDODA0LjMwNSAyNTYuMjc0IDgyMC42NDUgMjk1LjE3OSA4MjAuNjQ1IDM0Ni45MjNDODIwLjY0NSAzOTkuMDU1IDgwNC42OTQgNDM4LjE1NCA3NzIuNzkyIDQ2NC4yMjFDNzQwLjg5IDQ5MC4yODcgNjk0LjM5OSA1MDMuMzIgNjMzLjMxOCA1MDMuMzJaTTkzNy40NzMgMjYxLjcyMUg5MzguNjRDOTQ4Ljc1NiAyNDYuMTU5IDk2NS4wOTYgMjMzLjMyMSA5ODcuNjYgMjIzLjIwNUMxMDEwLjIzIDIxMi43MDEgMTAzOC4yNCAyMDcuNDQ5IDEwNzEuNjkgMjA3LjQ0OUMxMTI1Ljc3IDIwNy40NDkgMTE2Ni42MiAyMjAuMDkzIDExOTQuMjQgMjQ1LjM4MUMxMjIxLjg3IDI3MC4yOCAxMjM1LjY4IDMwNi4yNjcgMTIzNS42OCAzNTMuMzQyQzEyMzUuNjggNDAzLjkxOCAxMjE4LjU2IDQ0MS42NTYgMTE4NC4zMiA0NjYuNTU1QzExNTAuMDkgNDkxLjA2NSAxMTA1LjM1IDUwMy4zMiAxMDUwLjEgNTAzLjMyQzkyMS43MTcgNTAzLjMyIDg1Ny41MjQgNDM5LjUxNiA4NTcuNTI0IDMxMS45MDhDODU3LjUyNCAyNzQuOTQ5IDg2MS4wMjUgMjQyLjg1MiA4NjguMDI4IDIxNS42MTlDODc1LjQyIDE4OC4zODUgODg1LjE0NiAxNjYuMjEgODk3LjIwNyAxNDkuMDkyQzkwOS4yNjcgMTMxLjk3NCA5MjUuMDI0IDExOC4xNjIgOTQ0LjQ3NiAxMDcuNjU4Qzk2NC4zMTggOTYuNzY0NyA5ODQuMzU0IDg4Ljk4MzcgMTAwNC41OCA4NC4zMTUxQzEwMjUuMiA3OS4yNTc1IDEwNDkuOTEgNzUuNTYxNiAxMDc4LjcgNzMuMjI3M0MxMTQwLjE3IDY3LjM5MTYgMTE4MC42MyA2MS4xNjY4IDEyMDAuMDggNTQuNTUzVjE0NS4wMDdDMTE4MC42MyAxNTMuOTU1IDExNDYuMzkgMTYwLjM3NCAxMDk3LjM3IDE2NC4yNjVDMTA3Ni4zNiAxNjUuODIxIDEwNTkuMDUgMTY3Ljc2NiAxMDQ1LjQzIDE3MC4xQzEwMzEuODIgMTcyLjA0NSAxMDE3LjYyIDE3NS4xNTggMTAwMi44MyAxNzkuNDM3Qzk4OC40MzkgMTgzLjcxNyA5NzYuOTYyIDE4OS4zNTggOTY4LjQwMyAxOTYuMzYxQzk1OS44NDQgMjAyLjk3NSA5NTIuNjQ2IDIxMS43MjggOTQ2LjgxIDIyMi42MjJDOTQwLjk3NSAyMzMuNTE1IDkzNy44NjIgMjQ2LjU0OCA5MzcuNDczIDI2MS43MjFaTTk3NS45ODkgMzU0LjUwOUM5NzUuOTg5IDM3My45NjEgOTgxLjgyNSAzODkuNzE4IDk5My40OTYgNDAxLjc3OEMxMDA1LjU2IDQxMy44MzkgMTAyNC40MyA0MTkuODY5IDEwNTAuMSA0MTkuODY5QzEwNzQuMjIgNDE5Ljg2OSAxMDkxLjkzIDQxMy44MzkgMTEwMy4yMSA0MDEuNzc4QzExMTQuODggMzg5LjcxOCAxMTIwLjcxIDM3My45NjEgMTEyMC43MSAzNTQuNTA5QzExMjAuNzEgMzM1LjQ0NiAxMTE0Ljg4IDMyMC4yNzMgMTEwMy4yMSAzMDguOTlDMTA5MS41NCAyOTcuMzE5IDEwNzMuNDUgMjkxLjQ4MyAxMDQ4Ljk0IDI5MS40ODNDMTAyMy42NSAyOTEuNDgzIDEwMDUuMTcgMjk3LjMxOSA5OTMuNDk2IDMwOC45OUM5ODEuODI1IDMyMC42NjIgOTc1Ljk4OSAzMzUuODM1IDk3NS45ODkgMzU0LjUwOVpNMTM5My43OSA0NjAuMTM2VjYxOC4yODRIMTI4Mi45MVYxOTguMTEySDEzOTAuODdWMjQwLjcxMkgxMzkyLjA0QzE0MTYuNTUgMjA4LjQyMSAxNDU0LjQ4IDE5Mi4yNzYgMTUwNS44NCAxOTIuMjc2QzE2MDMuMSAxOTIuMjc2IDE2NTEuNzMgMjQzLjA0NyAxNjUxLjczIDM0NC41ODhDMTY1MS43MyAzOTIuNDQxIDE2MzguODkgNDMwLjU2OCAxNjEzLjIxIDQ1OC45NjhDMTU4Ny45MiA0ODcuMzY5IDE1NTAuMTkgNTAxLjU2OSAxNTAwIDUwMS41NjlDMTQ3NS44OCA1MDEuNTY5IDE0NTQuNjggNDk3LjY3OSAxNDM2LjM5IDQ4OS44OThDMTQxOC40OSA0ODEuNzI4IDE0MDQuNjggNDcxLjgwNyAxMzk0Ljk2IDQ2MC4xMzZIMTM5My43OVpNMTQ2Ni4xNSA0MTcuNTM1QzE0OTAuMjcgNDE3LjUzNSAxNTA3Ljc4IDQxMS42OTkgMTUxOC42NyA0MDAuMDI4QzE1MjkuOTYgMzg4LjM1NiAxNTM1LjYgMzY5LjY4MiAxNTM1LjYgMzQ0LjAwNUMxNTM1LjYgMjk4Ljg3NSAxNTExLjg3IDI3Ni4zMSAxNDY0LjQgMjc2LjMxQzE0NDEuNDUgMjc2LjMxIDE0MjMuOTQgMjgyLjczIDE0MTEuODggMjk1LjU2OEMxMzk5LjgyIDMwOC4wMTggMTM5My43OSAzMjYuMTA4IDEzOTMuNzkgMzQ5Ljg0QzEzOTMuNzkgMzcxLjYyNyAxNDAwLjAxIDM4OC4zNTYgMTQxMi40NiA0MDAuMDI4QzE0MjQuOTEgNDExLjY5OSAxNDQyLjgxIDQxNy41MzUgMTQ2Ni4xNSA0MTcuNTM1Wk0xODcyLjg0IDQxOS44NjlDMTg5Ny4zNSA0MTkuODY5IDE5MTUuNDQgNDE0LjAzMyAxOTI3LjExIDQwMi4zNjJDMTkzOS4xNyAzOTAuNjkgMTk0NS4yIDM3Mi4yMTEgMTk0NS4yIDM0Ni45MjNDMTk0NS4yIDMyMS4yNDUgMTkzOS4zNyAzMDIuNzY2IDE5MjcuNjkgMjkxLjQ4M0MxOTE2LjAyIDI3OS44MTIgMTg5Ny43NCAyNzMuOTc2IDE4NzIuODQgMjczLjk3NkMxODI0LjYgMjczLjk3NiAxODAwLjQ4IDI5OC4yOTIgMTgwMC40OCAzNDYuOTIzQzE4MDAuNDggMzcxLjA0NCAxODA2LjcgMzg5LjMyOSAxODE5LjE1IDQwMS43NzhDMTgzMS45OSA0MTMuODM5IDE4NDkuODggNDE5Ljg2OSAxODcyLjg0IDQxOS44NjlaTTE4NzIuODQgNTAzLjMyQzE3NDcuOTUgNTAzLjMyIDE2ODUuNTEgNDUxLjE4NyAxNjg1LjUxIDM0Ni45MjNDMTY4NS41MSAyOTUuNTY4IDE3MDIuMDUgMjU2LjY2MyAxNzM1LjEyIDIzMC4yMDhDMTc2OC4xOCAyMDMuNzUzIDE4MTQuMDkgMTkwLjUyNSAxODcyLjg0IDE5MC41MjVDMTkzMi4zNiAxOTAuNTI1IDE5NzguNDcgMjAzLjc1MyAyMDExLjE1IDIzMC4yMDhDMjA0My44MyAyNTYuMjc0IDIwNjAuMTcgMjk1LjE3OSAyMDYwLjE3IDM0Ni45MjNDMjA2MC4xNyAzOTkuMDU1IDIwNDQuMjEgNDM4LjE1NCAyMDEyLjMxIDQ2NC4yMjFDMTk4MC40MSA0OTAuMjg3IDE5MzMuOTIgNTAzLjMyIDE4NzIuODQgNTAzLjMyWk0yMjQ5LjM2IDQ0My4yMTJDMjI0OS4zNiA0NjIuMjc1IDIyNDIuOTQgNDc3LjI1NCAyMjMwLjEgNDg4LjE0N0MyMjE3LjY1IDQ5OC42NTEgMjE5OS43NSA1MDMuOTAzIDIxNzYuNDEgNTAzLjkwM0MyMTU1LjAxIDUwMy45MDMgMjEzNy44OSA0OTguNDU3IDIxMjUuMDYgNDg3LjU2M0MyMTEyLjIyIDQ3Ni42NyAyMTA1LjggNDYxLjg4NiAyMTA1LjggNDQzLjIxMkMyMTA1LjggNDI0LjE0OSAyMTExLjgzIDQwOS4zNjUgMjEyMy44OSAzOTguODZDMjEzNS45NSAzODcuOTY3IDIxNTMuNDYgMzgyLjUyIDIxNzYuNDEgMzgyLjUyQzIxOTguNTkgMzgyLjUyIDIyMTYuMjkgMzg4LjE2MiAyMjI5LjUyIDM5OS40NDRDMjI0Mi43NCA0MTAuMzM3IDIyNDkuMzYgNDI0LjkyNyAyMjQ5LjM2IDQ0My4yMTJaTTI0MTguNDYgNDYwLjEzNlY2MTguMjg0SDIzMDcuNThWMTk4LjExMkgyNDE1LjU0VjI0MC43MTJIMjQxNi43MUMyNDQxLjIyIDIwOC40MjEgMjQ3OS4xNSAxOTIuMjc2IDI1MzAuNTEgMTkyLjI3NkMyNjI3Ljc3IDE5Mi4yNzYgMjY3Ni40IDI0My4wNDcgMjY3Ni40IDM0NC41ODhDMjY3Ni40IDM5Mi40NDEgMjY2My41NiA0MzAuNTY4IDI2MzcuODggNDU4Ljk2OEMyNjEyLjYgNDg3LjM2OSAyNTc0Ljg2IDUwMS41NjkgMjUyNC42NyA1MDEuNTY5QzI1MDAuNTUgNTAxLjU2OSAyNDc5LjM1IDQ5Ny42NzkgMjQ2MS4wNiA0ODkuODk4QzI0NDMuMTYgNDgxLjcyOCAyNDI5LjM1IDQ3MS44MDcgMjQxOS42MyA0NjAuMTM2SDI0MTguNDZaTTI0OTAuODIgNDE3LjUzNUMyNTE0Ljk0IDQxNy41MzUgMjUzMi40NSA0MTEuNjk5IDI1NDMuMzQgNDAwLjAyOEMyNTU0LjYzIDM4OC4zNTYgMjU2MC4yNyAzNjkuNjgyIDI1NjAuMjcgMzQ0LjAwNUMyNTYwLjI3IDI5OC44NzUgMjUzNi41NCAyNzYuMzEgMjQ4OS4wNyAyNzYuMzFDMjQ2Ni4xMiAyNzYuMzEgMjQ0OC42MSAyODIuNzMgMjQzNi41NSAyOTUuNTY4QzI0MjQuNDkgMzA4LjAxOCAyNDE4LjQ2IDMyNi4xMDggMjQxOC40NiAzNDkuODRDMjQxOC40NiAzNzEuNjI3IDI0MjQuNjkgMzg4LjM1NiAyNDM3LjEzIDQwMC4wMjhDMjQ0OS41OCA0MTEuNjk5IDI0NjcuNDggNDE3LjUzNSAyNDkwLjgyIDQxNy41MzVaTTI5MDEuNTkgNjE4LjI4NFY0OTkuMjM1QzI4OTEuMDkgNTAwLjc5MSAyODc5LjQyIDUwMS41NjkgMjg2Ni41OCA1MDEuNTY5QzI4MTguMzQgNTAxLjU2OSAyNzgwLjIxIDQ5MC4wOTIgMjc1Mi4yIDQ2Ny4xMzhDMjcyNC4xOSA0NDMuNzk1IDI3MTAuMTggNDAzLjkxOCAyNzEwLjE4IDM0Ny41MDZDMjcxMC4xOCAzMTguNzE3IDI3MTQuMjcgMjk0LjAxMiAyNzIyLjQ0IDI3My4zOTJDMjczMC42MSAyNTIuMzg0IDI3NDIuMDggMjM2LjIzOCAyNzU2Ljg3IDIyNC45NTZDMjc3Mi4wNCAyMTMuNjc0IDI3ODguNTggMjA1LjUwNCAyODA2LjQ3IDIwMC40NDZDMjgyNC4zNyAxOTQuOTk5IDI4NDQuNCAxOTIuMjc2IDI4NjYuNTggMTkyLjI3NkMyODgwLjIgMTkyLjI3NiAyODkxLjg3IDE5My4wNTQgMjkwMS41OSAxOTQuNjFWNTguMDU0NEgzMDEyLjQ3VjE5NC42MUMzMDIzLjM3IDE5My4wNTQgMzAzNS40MyAxOTIuMjc2IDMwNDguNjUgMTkyLjI3NkMzMDcxLjYxIDE5Mi4yNzYgMzA5Mi4wMyAxOTQuODA1IDMxMDkuOTMgMTk5Ljg2MkMzMTI3LjgzIDIwNC41MzEgMzE0My45NyAyMTIuNTA2IDMxNTguMzcgMjIzLjc4OUMzMTczLjE1IDIzNC42ODIgMzE4NC40MyAyNTAuNDM5IDMxOTIuMjEgMjcxLjA1OEMzMTk5Ljk5IDI5MS42NzggMzIwMy44OCAzMTYuMzgyIDMyMDMuODggMzQ1LjE3MkMzMjAzLjg4IDQwMC40MTcgMzE4OS4zIDQ0MC4yOTQgMzE2MC4xMiA0NjQuODA0QzMxMzAuOTQgNDg5LjMxNCAzMDkzLjAxIDUwMS41NjkgMzA0Ni4zMiA1MDEuNTY5QzMwMzIuNyA1MDEuNTY5IDMwMjEuNDIgNTAwLjc5MSAzMDEyLjQ3IDQ5OS4yMzVWNjE4LjI4NEgyOTAxLjU5Wk0yOTAxLjU5IDQxNy41MzVWMjc2LjMxQzI4OTguODcgMjc1LjkyMSAyODkzLjYyIDI3NS43MjcgMjg4NS44NCAyNzUuNzI3QzI4NjUuNjEgMjc1LjcyNyAyODUwLjYzIDI4MS4xNzMgMjg0MC45IDI5Mi4wNjdDMjgzMS41NyAzMDIuNTcxIDI4MjYuOSAzMjAuODU2IDI4MjYuOSAzNDYuOTIzQzI4MjYuOSAzNzQuMTU2IDI4MzEuNTcgMzkyLjgzIDI4NDAuOSA0MDIuOTQ1QzI4NTAuNjMgNDEzLjA2MSAyODY2LjM5IDQxOC4xMTggMjg4OC4xNyA0MTguMTE4QzI4OTQuNCA0MTguMTE4IDI4OTguODcgNDE3LjkyNCAyOTAxLjU5IDQxNy41MzVaTTMwMTIuNDcgMjc2LjMxVjQxNy41MzVDMzAxNS4yIDQxNy45MjQgMzAyMC40NSA0MTguMTE4IDMwMjguMjMgNDE4LjExOEMzMDQ4LjQ2IDQxOC4xMTggMzA2My40NCA0MTIuNjcyIDMwNzMuMTYgNDAxLjc3OEMzMDgyLjg5IDM5MC44ODUgMzA4Ny43NSAzNzIuMjExIDMwODcuNzUgMzQ1Ljc1NUMzMDg3Ljc1IDMxOC45MTEgMzA4Mi44OSAzMDAuNjI2IDMwNzMuMTYgMjkwLjlDMzA2My40NCAyODAuNzg0IDMwNDcuNjggMjc1LjcyNyAzMDI1Ljg5IDI3NS43MjdDMzAyNC4zNCAyNzUuNzI3IDMwMjIgMjc1LjkyMSAzMDE4Ljg5IDI3Ni4zMUMzMDE2LjE3IDI3Ni4zMSAzMDE0LjAzIDI3Ni4zMSAzMDEyLjQ3IDI3Ni4zMVoiIGZpbGw9IiM1NTA1NzciPjwvcGF0aD4KPHBhdGggZD0iTTk4NC44MjcgNTY4LjQ5M0M5NTguODQzIDU0MS4wMDIgOTI1LjA4NyA1NDEuNTg0IDg5Mi4wOTggNTcyLjUxMUM4OTIuMDk4IDU3Mi41MTEgODkyLjA5OCA1NzIuNDg1IDg5Mi4wNzEgNTcyLjQ1OEw4NDEuMDU0IDYyMy40NzVMNzkwLjAzNyA1NzIuNDU4Qzc5MC4wMzcgNTcyLjQ1OCA3OTAuMDM3IDU3Mi40ODUgNzkwLjAxMSA1NzIuNTExQzc1Ny4wMjIgNTQxLjYxIDcyMy4yNjYgNTQxLjAwMiA2OTcuMjgyIDU2OC40OTNDNjczLjA2OCA1OTQuMTA4IDY3NS43MTIgNjI4LjgxNSA3MDMuMTUgNjU3LjQ0M0M3MDMuMTUgNjU3LjQ2OSA3MTUuMTUxIDY2OS42MDIgNzE5LjE5NSA2NzMuNjJDNzUyLjc5MiA3MDcuMzIzIDc5Ni45NjMgNzI0LjEwOCA4NDEuMDU0IDcyNC4xMDhDODg1LjE3MiA3MjQuMTA4IDkyOS4zMTYgNzA3LjMyMyA5NjIuOTE0IDY3My42MkM5NjYuOTMyIDY2OS41NzYgOTc4Ljk1OSA2NTcuNDY5IDk3OC45NTkgNjU3LjQ0M0MxMDA2LjQyIDYyOC44MTUgMTAwOS4wNCA1OTQuMTA4IDk4NC44MjcgNTY4LjQ5M1oiIGZpbGw9IiNGRjVEMDAiPjwvcGF0aD4KPC9zdmc+") no-repeat left center/contain;
}
.login .sub{color:var(--mut); font-size:var(--fs-3); margin-bottom:26px; max-width:44ch}
.prof-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:var(--sp-2)}
.prof{
  border:1.5px solid var(--line); border-radius:12px;
  padding:13px 15px; text-align:left; background:#fff;
  font-weight:600; font-size:var(--fs-3); color:var(--ink);
  transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.prof:hover{border-color:var(--lavender)}
.prof small{display:block; font-weight:400; color:var(--mut); font-size:var(--fs-2); margin-top:3px; line-height:1.35}
.prof.sel{border-color:var(--violet); background:var(--violet-l); box-shadow:var(--ring)}
.prof.sel small{color:var(--violet-m)}
.fld{margin:16px 0 0}
.fld label{display:block; font-size:var(--fs-2); font-weight:700; color:var(--violet); margin-bottom:6px; letter-spacing:.01em}
.fld input,.fld select{
  width:100%; border:1.5px solid var(--line); border-radius:var(--r-md); padding:11px 13px;
  background:#fff; font-size:var(--fs-3);
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.fld input:focus,.fld select:focus,textarea:focus,.filters input:focus,.filters select:focus{
  outline:none; border-color:var(--violet); box-shadow:var(--ring);
}
.note{font-size:var(--fs-2); color:var(--mut); margin-top:7px}
.chk{display:flex; gap:10px; margin-top:18px; font-size:var(--fs-2); align-items:flex-start; color:var(--ink-2); line-height:1.5}
.chk input{margin-top:3px; accent-color:var(--violet); width:16px; height:16px}
.login .btn{width:100%; margin-top:22px}
.err{color:var(--err); font-size:var(--fs-2); font-weight:600; margin-top:12px; display:none}

/* ── Кнопки ─────────────────────────────────────────────── */
.btn{
  background:var(--orange); color:#fff; border:0; border-radius:var(--r-md);
  padding:12px 22px; font-weight:700; font-size:var(--fs-3); letter-spacing:.01em;
  transition:background var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  box-shadow:0 2px 6px rgba(255,93,0,.24);
}
.btn:hover{background:var(--orange-d); box-shadow:0 4px 14px rgba(255,93,0,.3)}
.btn:active{transform:translateY(1px); box-shadow:none}
.btn:disabled{opacity:.4; cursor:default; box-shadow:none; background:var(--orange)}
.btn.sec{background:var(--violet-l); color:var(--violet); box-shadow:none}
.btn.sec:hover{background:#EADFF2}
.btn.ghost{background:#fff; border:1.5px solid var(--line); color:var(--violet); box-shadow:none; font-weight:600}
.btn.ghost:hover{border-color:var(--violet); background:var(--violet-l2)}

/* ── Раскладка ──────────────────────────────────────────── */
#app>main{max-width:1200px; margin:0 auto; padding:26px 24px 72px}
h2.page{
  font-size:var(--fs-7); color:var(--violet); margin-bottom:16px;
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
}

/* ── 6.3 Фильтры ────────────────────────────────────────── */
.filters{
  background:#fff; border-radius:var(--r); padding:14px; box-shadow:var(--shadow);
  display:flex; flex-wrap:wrap; gap:9px; margin-bottom:18px; align-items:center;
}
.filters select,.filters input[type=search]{
  border:1.5px solid var(--line); border-radius:var(--r-sm); padding:9px 11px;
  font-size:var(--fs-3); background:#fff; color:var(--ink);
}
.filters input[type=search]{
  flex:1; min-width:200px; padding-left:34px;
  background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM2RTY3ODAiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEwLjUiIGN5PSIxMC41IiByPSI2LjUiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xNS41IDE1LjUgMjEgMjEiPjwvcGF0aD48L3N2Zz4=") no-repeat 11px center/15px 15px #fff;
}
.filters select{
  appearance:none; padding-right:30px;
  background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM1NTA1NzciIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDlsNyA3IDctNyI+PC9wYXRoPjwvc3ZnPg==") no-repeat right 9px center/14px 14px #fff;
}
.fcount{font-size:var(--fs-2); color:var(--mut); margin-left:auto; white-space:nowrap; font-weight:600}

/* ── 6.3 Карточки библиотеки ────────────────────────────── */
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:16px}
.card{
  position:relative; background:#fff; border-radius:var(--r); padding:18px;
  box-shadow:var(--shadow); cursor:pointer; display:flex; flex-direction:column; gap:9px;
  border:1.5px solid transparent; overflow:hidden;
  transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.card::before{ /* фирменная акцентная полоса — проявляется на ховере */
  content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:var(--orange); transform:translateY(-4px); transition:transform var(--dur) var(--ease);
}
.card:hover{border-color:var(--line); box-shadow:var(--shadow-lift); transform:translateY(-2px)}
.card:hover::before{transform:none}
.card .id{
  font-size:var(--fs-1); color:var(--mut); display:flex; gap:8px; flex-wrap:wrap; align-items:center;
  font-weight:700; letter-spacing:var(--tracking-caps); text-transform:uppercase;
}
.card h3{font-size:var(--fs-6); line-height:1.3; color:var(--ink); font-weight:700}
.card .reg{font-size:var(--fs-2); color:var(--mut)}
.tags{display:flex; flex-wrap:wrap; gap:5px}
.tag{
  font-size:var(--fs-1); background:var(--violet-l); color:var(--violet);
  border-radius:var(--r-pill); padding:4px 10px; font-weight:600; line-height:1.3;
}
.tag.src{background:#EDF8E7; color:#2A6B33}
.plashki{display:flex; gap:8px; margin-top:auto; padding-top:10px; flex-wrap:wrap}
.pl{flex:1; min-width:92px; background:var(--bg-2); border:1px solid var(--line-2); border-radius:var(--r-md); padding:8px 9px; text-align:center}
.pl .t{font-size:10.5px; color:var(--mut); text-transform:uppercase; letter-spacing:var(--tracking-caps); font-weight:700}
.pl .s{font-size:14px; letter-spacing:2px; margin-top:2px}
.st-on{color:var(--orange)}
.st-off{color:#D8D1E2}
.status-line{font-size:var(--fs-1); font-weight:700; letter-spacing:.02em; text-transform:uppercase}
.status-line.assess{color:var(--violet-m)}
.status-line.nodopusk{color:var(--err)}
.status-line.external{color:#2A6B33}
.status-line.mine{color:var(--ok)}

/* ── Баннеры ────────────────────────────────────────────── */
.banner{
  border-radius:var(--r-md); padding:12px 16px; font-size:var(--fs-3); margin-bottom:16px;
  border:1px solid transparent; line-height:1.5;
}
.banner.warn{background:var(--err-bg); color:#8C2F2F; border-color:var(--err-b)}
.banner.info{background:var(--violet-l); color:var(--violet); border-color:var(--info-b)}
.banner.ok{background:var(--ok-bg); color:var(--ok); border-color:var(--ok-b)}

/* ── 6.4 Карточка практики ──────────────────────────────── */
.back{
  background:transparent; border:0; color:var(--violet); font-weight:700; font-size:var(--fs-3);
  margin-bottom:14px; padding:6px 10px 6px 0; border-radius:var(--r-sm);
}
.back:hover{color:var(--orange-d)}
.pv{
  position:relative; background:#fff; border-radius:var(--r); box-shadow:var(--shadow-panel);
  padding:30px 32px; overflow:hidden;
}
.pv::before{ /* акцентная полоса ДС */
  content:""; position:absolute; left:0; right:0; top:0; height:8px;
  background:linear-gradient(90deg,var(--orange) 0%,var(--orange) 34%,var(--violet) 34%,var(--violet) 100%);
}
.pv .top{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:6px; align-items:start}
/* Кнопки в шапке карточки практики: не вылезают за карточку и ужимаются до разумного минимума.
   Широкий экран — в одну строку справа; узкий — своей строкой, с уменьшенным шрифтом и полями. */
.pv .top>div:first-child{flex:1 1 300px; min-width:0}
.pv .top>div:last-child{flex:0 1 auto; min-width:0; justify-content:flex-end}
.pv .top .btn{min-width:0; max-width:100%; white-space:normal; text-align:center}
.pv a{overflow-wrap:anywhere}
@media (max-width:820px){
  .pv .top>div:last-child{flex:1 1 100%; justify-content:flex-start}
}
@media (max-width:560px){
  .pv{padding:22px 18px}
  .pv h2{min-width:0}
  .pv .top{gap:12px}
  .pv .top>div:last-child{gap:6px}
  .pv .top .btn{padding:10px 14px; font-size:var(--fs-2); border-radius:var(--r-sm)}
}
@media (max-width:400px){
  .pv .top>div:last-child{display:grid; grid-template-columns:1fr; gap:6px}
  .pv .top .btn{width:100%}
}
.pv h2{font-size:var(--fs-7); color:var(--violet); line-height:1.28; max-width:26ch; flex:1; min-width:280px}
.meta{font-size:var(--fs-2); color:var(--mut); margin:8px 0 14px; display:flex; flex-wrap:wrap; gap:6px 18px}
.author{
  font-size:var(--fs-3); background:var(--bg-2); border:1px solid var(--line-2);
  border-radius:var(--r-md); padding:11px 14px; margin:12px 0; color:var(--ink-2); line-height:1.5;
}
.author b{color:var(--violet); font-weight:700}
.pl-row{display:flex; gap:12px; flex-wrap:wrap; margin:18px 0}
.pl-big{
  flex:1; min-width:190px; background:var(--bg-2); border:1px solid var(--line-2);
  border-radius:var(--r-md); padding:13px 15px; position:relative; overflow:hidden;
}
.pl-big::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--orange); opacity:.75}
.pl-big .t{font-size:var(--fs-1); color:var(--mut); text-transform:uppercase; letter-spacing:var(--tracking-caps); font-weight:700}
.pl-big .s{font-size:19px; letter-spacing:3px; margin:3px 0}
.pl-big .d{font-size:var(--fs-2); color:var(--mut); line-height:1.45}
.impact-det{
  background:var(--grad-veil-orange); border:1px solid var(--orange-b);
  border-radius:var(--r-md); padding:14px 18px; margin:10px 0 18px; font-size:var(--fs-3); line-height:1.55;
}
.impact-det div{margin:4px 0}
.impact-det b{color:#9E3A00}
.sec-b{margin:22px 0}
.sec-b h4{
  font-size:var(--fs-2); text-transform:uppercase; letter-spacing:var(--tracking-caps);
  color:var(--violet); margin-bottom:7px; font-weight:700;
  padding-bottom:6px; border-bottom:1px solid var(--line-2);
}
.sec-b p{
  white-space:pre-wrap; font-size:var(--fs-5); line-height:var(--lh-read);
  max-width:var(--measure); color:var(--ink-2);
}
.flags{
  display:flex; gap:16px; align-items:center; font-size:var(--fs-3); background:var(--violet-l2);
  border:1px solid var(--line); border-radius:var(--r-md); padding:12px 16px; margin-top:20px; flex-wrap:wrap;
}
/* блок комментария Председателя/админа */
.sec-b.note-box{
  background:var(--grad-veil-purple); border:1px solid var(--info-b);
  border-radius:var(--r); padding:18px 20px;
}
.sec-b.note-box h4{border-bottom-color:#E2D5EC}
.sec-b.note-box textarea{
  width:100%; border:1.5px solid var(--line); border-radius:var(--r-md); padding:11px 13px;
  min-height:96px; resize:vertical; font-size:var(--fs-3); background:#fff; margin-bottom:10px;
}

/* ── 6.5 Экран оценки ───────────────────────────────────── */
.split{display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start}
.split .pv{max-height:calc(100vh - 130px); overflow:auto}
.form-pane{
  background:#fff; border-radius:var(--r); box-shadow:var(--shadow-panel); padding:26px 28px;
  max-height:calc(100vh - 130px); overflow:auto;
}
.split .pv,.form-pane{scrollbar-color:var(--lavender) transparent; scrollbar-width:thin}
.form-pane h3{color:var(--violet); font-size:var(--fs-6); margin-bottom:5px}
.qs{font-size:var(--fs-2); color:var(--mut); margin-bottom:16px}
.intro-box{
  background:var(--grad-veil-purple); border:1px solid var(--info-b); border-radius:var(--r-md);
  padding:13px 16px; font-size:var(--fs-2); color:var(--violet); margin-bottom:14px; line-height:1.55;
}
.blk{margin:22px 0 8px; padding-top:16px; border-top:1px solid var(--line)}
.blk h5{
  font-size:var(--fs-2); text-transform:uppercase; letter-spacing:var(--tracking-caps);
  color:var(--orange); margin-bottom:10px; font-weight:700;
}
.q{margin:0 0 20px; padding-left:12px; border-left:2px solid var(--line-2)}
.q .ql{font-weight:600; font-size:var(--fs-4); margin-bottom:8px; line-height:1.45; color:var(--ink)}
.q .ql .req{color:var(--err); font-weight:700}
.q .hint{
  font-size:var(--fs-2); color:var(--mut); margin:-2px 0 9px; line-height:1.5;
  padding-left:20px; background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM2RTY3ODAiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjguNSI+PC9jaXJjbGU+PHBhdGggZD0iTTEyIDExdjUuNSI+PC9wYXRoPjxwYXRoIGQ9Ik0xMiA3LjhoLjAxIj48L3BhdGg+PC9zdmc+") no-repeat 0 2px/14px 14px;
}
.opt{
  display:flex; gap:10px; align-items:flex-start; padding:8px 10px; border-radius:var(--r-sm);
  font-size:var(--fs-3); line-height:1.45; cursor:pointer;
  transition:background var(--dur) var(--ease);
}
.opt:hover{background:var(--violet-l2)}
.opt input{margin-top:3px; accent-color:var(--violet); width:16px; height:16px; flex:none}
.q textarea{
  width:100%; border:1.5px solid var(--line); border-radius:var(--r-md); padding:10px 12px;
  min-height:72px; resize:vertical; font-size:var(--fs-3); background:#fff; line-height:1.5;
}
.q .sub-t{margin:8px 0 0 26px}
.q.qerr{border-left-color:var(--err); background:var(--err-bg); border-radius:0 var(--r-sm) var(--r-sm) 0; padding:8px 10px 8px 12px}
.q.qerr .ql{color:var(--err)}
.form-actions{display:flex; gap:10px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); align-items:center; flex-wrap:wrap}
.savemsg{font-size:var(--fs-2); color:var(--mut)}

/* ── 6.6 Мои оценки · комментарии · тост ────────────────── */
.myrow{
  background:#fff; border-radius:var(--r-md); box-shadow:var(--shadow); padding:14px 18px;
  display:flex; gap:16px; align-items:center; margin-bottom:10px; flex-wrap:wrap;
  border:1px solid transparent; transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.myrow:hover{border-color:var(--line); box-shadow:var(--shadow-lift)}
.myrow .st{
  font-size:var(--fs-1); font-weight:700; border-radius:var(--r-pill); padding:4px 12px;
  text-transform:uppercase; letter-spacing:var(--tracking-caps); border:1px solid transparent;
}
.st.draft{background:var(--warn-bg); color:var(--warn); border-color:var(--warn-b)}
.st.sent{background:var(--ok-bg); color:var(--ok); border-color:var(--ok-b)}
.myrow .nm{flex:1; min-width:220px; font-size:var(--fs-3); font-weight:600}
.empty{
  background:#fff; border-radius:var(--r); box-shadow:var(--shadow);
  padding:56px 40px; text-align:center; color:var(--mut); font-size:var(--fs-3);
}
.empty::before{
  content:""; display:block; width:88px; height:88px; margin:0 auto 18px;
  background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCIgd2lkdGg9Ijg4IiBoZWlnaHQ9Ijg4IiBmaWxsPSJub25lIj4KICA8cmVjdCB4PSIxNCIgeT0iMTgiIHdpZHRoPSI0NiIgaGVpZ2h0PSI1OCIgcng9IjYiIGZpbGw9IiNGOEY2RkIiIHN0cm9rZT0iI0Q4RDFFMiIgc3Ryb2tlLXdpZHRoPSIyIj48L3JlY3Q+CiAgPHJlY3QgeD0iMjgiIHk9IjEwIiB3aWR0aD0iNDYiIGhlaWdodD0iNTgiIHJ4PSI2IiBmaWxsPSIjZmZmIiBzdHJva2U9IiM1NTA1NzciIHN0cm9rZS13aWR0aD0iMiI+PC9yZWN0PgogIDxwYXRoIGQ9Ik0zOCAyNmgyNk0zOCAzNmgyNk0zOCA0NmgxNiIgc3Ryb2tlPSIjQzlCRkQ4IiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+CiAgPGNpcmNsZSBjeD0iNjIiIGN5PSI1NiIgcj0iOSIgZmlsbD0iI0ZGNUQwMCIgb3BhY2l0eT0iLjE0Ij48L2NpcmNsZT4KICA8cGF0aCBkPSJNNTggNTZoOCIgc3Ryb2tlPSIjRkY1RDAwIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PC9zdmc+") no-repeat center/contain; opacity:.9;
}
.toast{
  position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(10px);
  background:var(--violet-d); color:#fff; border-radius:var(--r-md); padding:13px 22px;
  font-size:var(--fs-3); font-weight:600; box-shadow:0 16px 40px rgba(20,2,30,.45); z-index:99;
  opacity:0; transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease); pointer-events:none;
}
.toast.show{opacity:1; transform:translateX(-50%)}

/* ── 6.7 Инфостраницы ───────────────────────────────────── */
.info-hero{
  background:var(--grad-hero); color:#fff; border-radius:var(--r);
  padding:36px 40px; margin-bottom:26px; position:relative; overflow:hidden; isolation:isolate;
  box-shadow:var(--shadow-panel);
}
.info-hero::after{
  content:""; position:absolute; right:-120px; top:-160px; width:520px; height:520px;
  background:radial-gradient(circle, rgba(255,93,0,.4) 0%, transparent 68%); pointer-events:none; z-index:-1;
}
/* Shared hero typography: wrap to the available space without resizing titles. */
.info-hero h2{font-size:var(--fs-8); font-weight:700; line-height:1.15; margin-bottom:12px; max-width:none; position:relative}
.info-hero p{font-size:var(--fs-5); line-height:1.55; color:#EDDCF6; max-width:none; position:relative}
.info-hero .kicker{
  display:inline-block; font-size:var(--fs-1); font-weight:700; text-transform:uppercase;
  letter-spacing:var(--tracking-caps); background:rgba(255,255,255,.16); color:#FFD2B4;
  border-radius:var(--r-pill); padding:5px 12px; margin-bottom:16px; position:relative;
}
.info-sec{
  background:#fff; border-radius:var(--r); box-shadow:var(--shadow);
  padding:28px 32px; margin-bottom:16px;
}
.info-sec h3{font-size:var(--fs-6); color:var(--violet); margin-bottom:12px}
.info-sec h3+p{margin-top:0}
.info-sec p{font-size:var(--fs-5); line-height:var(--lh-read); color:var(--ink-2); max-width:var(--measure); margin-bottom:12px}
.info-sec p:last-child{margin-bottom:0}
.info-sec ul{margin:0 0 12px 0; padding:0; list-style:none; max-width:var(--measure)}
.info-sec li{
  font-size:var(--fs-5); line-height:var(--lh-read); color:var(--ink-2);
  padding-left:20px; margin-bottom:8px; position:relative;
}
.info-sec li::before{content:""; position:absolute; left:2px; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--orange)}
.info-sec b{color:var(--ink); font-weight:700}
.info-sec .lead{font-size:17.5px; color:var(--ink); font-weight:500}

/* блок-схема: плашки со стрелками */
.schema{display:flex; flex-wrap:wrap; align-items:stretch; gap:26px; margin:20px 0 8px}
.schema .step{
  flex:1; min-width:150px; position:relative;
  background:var(--violet-l2); border:1.5px solid var(--info-b); border-radius:var(--r-md);
  padding:14px 16px; font-size:var(--fs-3); line-height:1.4; color:var(--ink);
}
.schema .step b{display:block; color:var(--violet); font-size:var(--fs-1); text-transform:uppercase; letter-spacing:var(--tracking-caps); margin-bottom:5px}
.schema .step:not(:last-child)::after{
  content:""; position:absolute; right:-22px; top:50%; width:18px; height:2px;
  background:var(--orange); transform:translateY(-50%);
}
.schema .step:not(:last-child)::before{
  content:""; position:absolute; right:-22px; top:50%; width:7px; height:7px;
  border-top:2px solid var(--orange); border-right:2px solid var(--orange);
  transform:translateY(-50%) rotate(45deg); margin-right:-2px;
}
.schema .step.accent{background:var(--grad-veil-orange); border-color:var(--orange-b)}
.schema .step.accent b{color:#9E3A00}
.schema.cycle{display:grid; grid-template-columns:repeat(4,1fr); gap:14px 26px}
.schema.cycle .step{min-width:0}
.schema.cycle .step:nth-child(4)::after,.schema.cycle .step:nth-child(4)::before{display:none}
.schema.cycle .step .n{
  display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px;
  border-radius:50%; background:var(--orange); color:#fff; font-size:11px; font-weight:700; margin-right:7px;
}

/* карточки показателей П1–П7 */
.pi-card{
  display:grid; grid-template-columns:auto 1fr; gap:4px 14px;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
  padding:16px 18px; align-content:start;
}
.pi-card .code{
  grid-row:span 2; align-self:start;
  background:var(--orange); color:#fff; font-weight:800; font-size:var(--fs-2);
  border-radius:var(--r-sm); padding:6px 10px; letter-spacing:.02em;
}
.pi-card .nm{font-weight:700; font-size:var(--fs-4); color:var(--ink); line-height:1.35}
.pi-card .ds{font-size:var(--fs-3); color:var(--mut); line-height:1.55}
.pi-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px}

/* субиндексы */
.subidx{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:18px 0 4px}
.subidx .s{
  position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:20px 20px 18px; overflow:hidden; box-shadow:var(--shadow);
}
.subidx .s::before{content:""; position:absolute; left:0; right:0; top:0; height:8px; background:var(--violet)}
.subidx .s:nth-child(2)::before{background:var(--lavender)}
.subidx .s:nth-child(3)::before{background:var(--orange)}
.subidx .pct{font-size:38px; font-weight:800; color:var(--violet); letter-spacing:var(--tracking-tight); line-height:1}
.subidx .nm{font-size:var(--fs-6); font-weight:700; margin:6px 0 6px; color:var(--ink)}
.subidx .ds{font-size:var(--fs-2); color:var(--mut); line-height:1.5}

/* аккордеон кластера */
.cluster-acc{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
  margin-bottom:10px; overflow:hidden; transition:box-shadow var(--dur) var(--ease);
}
.cluster-acc:hover{box-shadow:var(--shadow)}
.cluster-acc.open{box-shadow:var(--shadow-lift); border-color:var(--info-b)}
.cluster-acc>.hd{
  width:100%; display:flex; align-items:center; gap:14px; text-align:left;
  background:transparent; border:0; padding:16px 18px; font-size:var(--fs-4); font-weight:600; color:var(--ink);
}
.cluster-acc>.hd .k{
  flex:none; font-size:var(--fs-2); font-weight:800; color:var(--violet);
  background:var(--violet-l); border-radius:var(--r-xs); padding:5px 9px; letter-spacing:.02em;
}
.cluster-acc>.hd .ar{
  flex:none; width:18px; height:18px; margin-left:auto;
  background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM1NTA1NzciIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDlsNyA3IDctNyI+PC9wYXRoPjwvc3ZnPg==") no-repeat center/contain;
  transition:transform var(--dur) var(--ease);
}
.cluster-acc.open>.hd{background:var(--violet-l2)}
.cluster-acc.open>.hd .ar{transform:rotate(180deg)}
.cluster-acc>.bd{padding:4px 18px 20px; border-top:1px solid var(--line-2)}
.cluster-acc:not(.open)>.bd{display:none}
.cluster-acc>.bd h5{
  font-size:var(--fs-1); text-transform:uppercase; letter-spacing:var(--tracking-caps);
  color:var(--violet); margin:18px 0 8px; font-weight:700;
}
.cluster-acc>.bd p{font-size:var(--fs-5); line-height:var(--lh-read); color:var(--ink-2); max-width:var(--measure)}

/* чипы влияния */
.impact-chip{
  display:inline-flex; align-items:center; gap:7px; font-size:var(--fs-2); font-weight:600;
  border-radius:var(--r-pill); padding:5px 12px 5px 9px; border:1px solid var(--line);
  background:#fff; color:var(--ink-2); margin:0 6px 6px 0;
}
.impact-chip::before{content:""; width:9px; height:9px; border-radius:50%; flex:none}
.impact-chip.direct{border-color:var(--orange-b); background:var(--orange-l); color:#9E3A00}
.impact-chip.direct::before{background:var(--orange)}
.impact-chip.indirect::before{border:2px solid var(--orange); background:transparent}
.chips{display:flex; flex-wrap:wrap; margin:-0 0 4px}

/* мероприятия кластера */
.event-li{
  display:flex; gap:12px; align-items:baseline; padding:10px 0;
  border-bottom:1px solid var(--line-2); font-size:var(--fs-3); line-height:1.5;
}
.event-li:last-child{border-bottom:0}
.event-li .n{flex:none; font-weight:800; color:var(--orange); font-size:var(--fs-2); min-width:22px}
.event-li .tx{flex:1; color:var(--ink)}
.event-li .tbd{
  display:block; width:fit-content; margin-top:6px; font-size:var(--fs-2); color:var(--mut);
  background:var(--bg-2); border:1px dashed var(--line); border-radius:var(--r-xs); padding:3px 9px;
}

/* карточки документов */
.doc-card{
  display:flex; align-items:center; gap:14px; background:#fff;
  border:1px solid var(--line); border-radius:var(--r-md); padding:14px 16px;
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.doc-card:hover{border-color:var(--info-b); box-shadow:var(--shadow)}
.doc-card::before{
  content:""; flex:none; width:34px; height:34px;
  background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNCAzNCIgd2lkdGg9IjM0IiBoZWlnaHQ9IjM0IiBmaWxsPSJub25lIj4KICA8cmVjdCB4PSI2LjUiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIyOCIgcng9IjMiIGZpbGw9IiNGM0VDRjciIHN0cm9rZT0iIzU1MDU3NyIgc3Ryb2tlLXdpZHRoPSIxLjYiPjwvcmVjdD4KICA8cGF0aCBkPSJNMTEgMTFoOU0xMSAxNmg5TTExIDIxaDYiIHN0cm9rZT0iIzU1MDU3NyIgc3Ryb2tlLXdpZHRoPSIxLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgb3BhY2l0eT0iLjU1Ij48L3BhdGg+CiAgPGNpcmNsZSBjeD0iMjUiIGN5PSIyNC41IiByPSI2LjUiIGZpbGw9IiNGRjVEMDAiPjwvY2lyY2xlPgogIDxwYXRoIGQ9Ik0yNSAyMS4zdjYuMk0yMi42IDI1LjEgMjUgMjcuNWwyLjQtMi40IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS43IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjwvcGF0aD48L3N2Zz4=") no-repeat center/contain;
}
.doc-card .nm{flex:1; font-size:var(--fs-3); font-weight:600; color:var(--ink); line-height:1.4}
.doc-card .mt{display:block; font-size:var(--fs-2); font-weight:400; color:var(--mut); margin-top:2px}
.doc-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px}

/* компактная форма внутри аккордеона */
.form-inline{
  display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap;
  background:var(--violet-l2); border:1px solid var(--line); border-radius:var(--r-md);
  padding:14px 16px; margin-top:16px;
}
.form-inline label{
  display:block; width:100%; font-size:var(--fs-2); font-weight:700;
  color:var(--violet); margin-bottom:6px;
}
.form-inline textarea{
  flex:1; min-width:240px; border:1.5px solid var(--line); border-radius:var(--r-md);
  padding:10px 12px; min-height:64px; resize:vertical; font-size:var(--fs-3); background:#fff;
}

/* ── Адаптив ────────────────────────────────────────────── */
@media (max-width:1440px){
  #app>header{gap:14px; padding:10px 18px}
  header nav button{padding:7px 12px; font-size:var(--fs-3); white-space:nowrap}
  header .logo{font-size:12px}
  header .who{max-width:210px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.25}
  header .who b{display:block}
}
@media (max-width:1440px){
  #app>header{flex-wrap:wrap; row-gap:8px}
  header nav{order:3; flex:1 0 100%; flex-wrap:wrap; gap:2px}
  header .who{margin-left:auto}
}
@media (max-width:1200px){
  header .who{font-size:var(--fs-1); max-width:150px}
  header .logo::before{padding-right:10px}
}
@media (max-width:1100px){
  .schema.cycle{grid-template-columns:repeat(2,1fr)}
  .schema.cycle .step:nth-child(2n)::after,.schema.cycle .step:nth-child(2n)::before{display:none}
  .schema.cycle .step:nth-child(4)::after,.schema.cycle .step:nth-child(4)::before{display:none}
}
@media (max-width:900px){
  .split{grid-template-columns:1fr}
  .split .pv,.form-pane{max-height:none}
  .prof-grid,.pi-grid,.doc-grid,.subidx{grid-template-columns:1fr}
  .schema{flex-direction:column; gap:22px}
  .schema .step:not(:last-child)::after{right:auto; left:50%; top:auto; bottom:-16px; width:2px; height:14px; transform:translateX(-50%)}
  .schema .step:not(:last-child)::before{right:auto; left:50%; top:auto; bottom:-16px; transform:translateX(-50%) rotate(135deg); margin:0}
  .info-hero{padding:26px 22px}
  .pv,.form-pane,.info-sec{padding:22px 20px}
  #app>header{padding:10px 16px; gap:12px}
  header .logo::before{width:88px}
  #app>main{padding:20px 16px 56px}
}
@media (max-width:620px){
  #app>header{flex-wrap:wrap}
  header .who{text-align:left}
  .login{padding:28px 22px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important; animation:none !important}
}
