/* Кабинет ученика — макеты v5 (docs/pokaz/kabinet_v5_2026-09-25/, приняты 25.09.2026)
   поверх гибрида v4 (штурм 22, реш. 8): цвета и шрифт сайта Академии
   (nk-content_fabrika/static/css/base.css) + линия маршрута.
   Синий — основной; оранжевый — ТОЛЬКО главное действие экрана (одно); золото и бирюза — декор.

   Шрифт свой, не Google Fonts: подгрузка с Google отдаёт IP ученика за границу
   (ПДн, LAUNCH-GATE). Файлы — копия из КФ static/fonts. */

@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(../fonts/manrope-400-cyrillic.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(../fonts/manrope-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+2190-21FF,U+2212}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(../fonts/manrope-600-cyrillic.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(../fonts/manrope-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+2190-21FF,U+2212}
@font-face{font-family:Manrope;font-weight:700 800;font-display:swap;src:url(../fonts/manrope-700-cyrillic.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:700 800;font-display:swap;src:url(../fonts/manrope-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+2190-21FF,U+2212}

:root{
  --navy:#156093; --navy-d:#0F4A73; --navy-l:#E8F1F8; --orange:#EE751C; --orange-h:#D4650F;
  --teal:#158E93; --teal-l:#E6F4F4; --gold:#D2B272; --gold-l:#F7F0E1; --gold-t:#7A5C22;
  --bg:#F7F8F9; --card:#FFFFFF; --ink:#161616; --muted:#5A6465; --line:#D4D8D9;
  --ok:#2D8A4E; --ok-l:#E4F3E9; --lock-l:#EEF0F1; --err:#B3261E;
  --top-h:80px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Manrope,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.55;min-height:100vh;display:flex;flex-direction:column}
/* подвал и панель урока — у низа экрана даже на короткой странице */
.wrap{flex:1 0 auto;width:100%}
a{color:var(--navy)}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:6px}
img,iframe,video{max-width:100%}
.ic{width:20px;height:20px;flex:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted);font-size:14px}
.empty{color:var(--muted)}
.lead{color:var(--muted);margin:-8px 0 24px}

/* --- шапка и меню ---------------------------------------------------------- */
.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:30}
.top__in{max-width:1180px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:28px;min-height:var(--top-h)}
.logo img{display:block;height:52px;width:auto}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;padding:9px 14px;border-radius:10px;font-weight:600;font-size:14px;opacity:.85}
.nav a:hover{opacity:1;background:rgba(255,255,255,.08)}
.nav a[aria-current]{background:rgba(255,255,255,.16);opacity:1;box-shadow:inset 0 -3px 0 var(--gold)}
.back-m{display:none}

.wrap{max-width:1180px;margin:0 auto;padding:28px 24px 48px}
.crumbs{font-size:13px;color:var(--muted);margin:0 0 10px;display:flex;flex-wrap:wrap;gap:4px 6px}
.crumbs a{color:var(--muted)}
h1{font-size:28px;font-weight:800;margin:0 0 20px;color:var(--navy);line-height:1.25}
h2{font-size:21px;line-height:1.3;margin:0 0 14px}
h3{font-size:17px;margin:0 0 12px}
.staff{font-size:13px;color:var(--muted);background:var(--navy-l);padding:8px 14px;border-radius:10px;margin:0 0 20px}

/* --- кнопки, карточки, статусы --------------------------------------------- */
/* .btn без модификатора — оранжевая: так её ждут экраны онбординга (R3) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;font:inherit;font-weight:700;font-size:15px;padding:12px 22px;border-radius:10px;border:0;cursor:pointer;white-space:nowrap;line-height:1.2;background:var(--orange);color:#fff}
.btn:hover{background:var(--orange-h)}
.btn--main{font-size:16px;padding:14px 26px}
.btn--navy{background:var(--navy);color:#fff}
.btn--navy:hover{background:var(--navy-d)}
.btn--ghost{background:#fff;color:var(--navy);border:1.5px solid var(--navy);padding:10.5px 20px}
.btn--ghost:hover{background:var(--navy-l)}
.btn--quiet{background:transparent;color:var(--navy);padding:8px 4px;text-decoration:underline;font-weight:600}
.btn--quiet:hover{background:transparent;color:var(--navy-d)}
.btn--off{background:var(--lock-l);color:var(--muted);cursor:not-allowed;border:1.5px dashed #B9C0C2;padding:10.5px 20px}
.btn--off:hover{background:var(--lock-l)}
.btn--sm{font-size:14px;padding:9px 16px}
.btn--ghost.btn--sm,.btn--off.btn--sm{padding:7.5px 14px}
.btn--link{background:none;border:0;color:var(--navy);text-decoration:underline;font:inherit;font-size:14px;padding:0;cursor:pointer}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.card h3{margin:0 0 14px}
.actions-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.flash{padding:10px 14px;border-radius:10px;background:var(--navy-l);margin:0 0 16px;font-size:15px}
.flash.error{background:#FBEAE9;color:var(--err)}
.flash.ok{background:var(--ok-l);color:var(--ok)}
.note{border-left:4px solid var(--teal);background:var(--teal-l);padding:12px 16px;border-radius:0 10px 10px 0;margin:12px 0}

.st{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;white-space:nowrap}
.st .ic{width:14px;height:14px}
.st--ok{background:var(--ok-l);color:#1F6B3A}
.st--work{background:var(--navy-l);color:var(--navy)}
.st--lock{background:var(--lock-l);color:var(--muted)}
.st--stop{background:var(--gold-l);color:var(--gold-t)}
.st--new{background:var(--teal-l);color:#0E6468}
.bar{height:6px;background:#E3E8EB;border-radius:6px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--gold);border-radius:6px}
/* полоса чек-листа онбординга (R3) */
.progress{height:6px;background:var(--navy-l);border-radius:6px;margin:0 0 6px}
.progress i{display:block;height:100%;background:var(--gold);border-radius:6px}

.num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;font-weight:700;font-size:13px;flex:none}
.num .ic{width:15px;height:15px}
.num--ok{background:var(--ok)}
.num--lock{background:#C9CFD1;color:#fff}
.order{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;background:var(--navy-l);border-radius:12px;padding:12px 16px;font-size:14px;color:var(--navy-d);margin:22px 0}
.order b{font-weight:700}
.order .num{width:22px;height:22px;font-size:12px}
.order .arr{color:#7C98AC}
.order .step{display:inline-flex;align-items:center;gap:8px}

/* формы */
textarea,input[type=text],input[type=url],input[type=email],input[type=password],input[type=file]{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.uchetka{margin:0 0 14px}.uchetka b{overflow-wrap:anywhere}   /* «Учётка: почта» на задании пароля — длинная почта переносится, а не режется (06.10) */
input[hidden]{display:none}   /* правило полей выше (display:block) перебивало атрибут hidden — скрытый логин для менеджера паролей был виден */
textarea{min-height:92px;resize:vertical}
textarea:focus,input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-l)}

/* --- подвал «Нужна помощь?» и таббар ------------------------------------- */
.helpfoot{max-width:1180px;margin:0 auto;padding:0 24px 40px;display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;font-size:14px;color:var(--muted)}
.helpfoot a{display:inline-flex;align-items:center;gap:6px;color:var(--navy);font-weight:600;text-decoration:none}
.helpfoot a:hover{text-decoration:underline}
.helpfoot .ic{width:18px;height:18px}
/* sticky, а не fixed: в браузере то же, а на скриншоте всей страницы панель встаёт в конец */
.tabbar{display:none;position:sticky;bottom:0;z-index:30;background:#fff;border-top:1px solid var(--line);justify-content:space-around;padding:8px 4px 12px}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;font-size:11px;font-weight:600;color:var(--muted);padding:2px 0}
.tabbar .ic{width:24px;height:24px}
.tabbar a[aria-current]{color:var(--navy)}
.tabbar a[aria-current] .ic{stroke-width:2.3}
.tabbar a[aria-current]::after{content:"";width:18px;height:3px;border-radius:3px;background:var(--gold)}

/* --- обложка курса --------------------------------------------------------- */
.cover{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--navy)}
.cover>img:not(.cover__logo){width:100%;height:100%;object-fit:cover;display:block}
.cover--neuro{background:radial-gradient(circle at 78% 22%,rgba(210,178,114,.35),transparent 42%),linear-gradient(135deg,#156093 0%,#0F4A73 55%,#158E93 100%)}
.cover--lib{background:radial-gradient(circle at 80% 80%,rgba(210,178,114,.3),transparent 45%),linear-gradient(135deg,#158E93 0%,#117176 60%,#0F4A73 100%)}
.cover--neuro::before,.cover--neuro::after,.cover--lib::before{content:"";position:absolute;border-radius:50%;border:1.5px solid var(--gold);opacity:.55}
.cover--neuro::before,.cover--lib::before{width:62%;aspect-ratio:1;right:-14%;top:-40%}
.cover--neuro::after{width:40%;aspect-ratio:1;right:-2%;top:-18%;opacity:.35}
.cover__orb{position:absolute;width:46%;aspect-ratio:1;left:-12%;bottom:-38%;border-radius:50%;border:1px solid rgba(255,255,255,.25)}
.cover__logo{position:relative;width:52%;max-width:220px;height:auto}
.cover__ic{position:relative;width:34%;max-width:120px;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center}
.cover__ic .ic{width:56%;height:56%;stroke-width:1.4}

/* --- главная ----------------------------------------------------------------- */
.continue{position:relative;overflow:hidden;background:var(--navy);color:#fff;border-radius:18px;padding:30px 32px 26px}
.continue::after{content:"";position:absolute;right:-90px;top:-90px;width:300px;height:300px;border:1.5px solid var(--gold);border-radius:50%;opacity:.5}
.continue::before{content:"";position:absolute;right:-40px;top:-40px;width:200px;height:200px;border:1px solid var(--gold);border-radius:50%;opacity:.3}
.continue .head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;position:relative;z-index:1}
.continue .eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.8;color:#fff;display:block;margin:0}
.continue h2{font-size:27px;line-height:1.25;margin:8px 0 6px;color:#fff}
.continue p{margin:0;opacity:.88}
.route{position:relative;z-index:1;margin-top:30px}
/* станции — сетка по числу уроков (--n); золотая заливка до «вы здесь» (--fill 0..1) */
.stations{display:grid;grid-template-columns:repeat(var(--n),1fr);position:relative}
.stations::before,.stations::after{content:"";position:absolute;left:calc(50% / var(--n));top:13px;height:5px;border-radius:5px}
.stations::before{right:calc(50% / var(--n));background:rgba(255,255,255,.2)}
.stations::after{width:calc((100% - 100% / var(--n)) * var(--fill));background:var(--gold)}
.stn{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;min-width:0;text-decoration:none;color:#fff}
.stn i{width:14px;height:14px;margin-top:8.5px;border-radius:50%;background:var(--navy);border:2.5px solid rgba(255,255,255,.5)}
.stn.xfer i{width:18px;height:18px;margin-top:6.5px;border-width:3px}
.stn.done i{background:var(--gold);border-color:var(--gold)}
.stn.here i{width:30px;height:30px;margin-top:0;border:6px solid #fff;background:var(--navy);box-shadow:0 0 0 5px rgba(210,178,114,.45)}
.stn.lock i{border-style:dashed;border-color:#fff}
.stn span{font-size:12px;font-weight:600;opacity:.8;line-height:1.3;padding:0 4px;overflow-wrap:anywhere}
.stn.here span{opacity:1;font-weight:700}
.stn.here span::before{content:"вы здесь · ";color:var(--gold)}
.stations--dense .stn:not(.here) span{visibility:hidden}
.routenote{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;font-size:13px;opacity:.9;position:relative;z-index:1}
.lockdot{display:inline-block;width:11px;height:11px;border-radius:50%;border:2px dashed #fff;margin-right:8px;vertical-align:-1px}

.sect-t{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:32px 0 12px}
.dirs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.dir{position:relative;display:flex;flex-direction:column;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:20px;text-decoration:none;color:var(--ink);transition:border-color .12s,box-shadow .12s}
a.dir:hover{border-color:var(--navy);box-shadow:0 6px 18px rgba(21,96,147,.12)}
.dir__ic{width:48px;height:48px;border-radius:14px;background:var(--navy-l);color:var(--navy);display:flex;align-items:center;justify-content:center}
.dir__ic .ic{width:26px;height:26px}
.dir b{font-size:17px}
.dir small{font-size:13px;color:var(--muted);line-height:1.4}
.dir .go{position:absolute;right:18px;top:22px;color:var(--navy)}
.dir--soon{background:#FBFBFC;border-style:dashed}
.dir--soon .dir__ic{background:var(--lock-l);color:var(--muted)}
.dir--soon .st{position:absolute;right:16px;top:20px}

.row2{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin-top:32px}
.soon ul{margin:0;padding:0;list-style:none}
.soon li{border-top:1px solid var(--line)}
.soon li:first-child{border-top:0}
.soon a{display:flex;gap:14px;align-items:center;padding:14px 0;text-decoration:none;color:var(--ink)}
.soon li:first-child a{padding-top:0}
.soon .sic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none}
.sic--due{background:var(--gold-l);color:var(--gold-t)}
.sic--late{background:#FBEAE9;color:var(--err)}
.sic--ok{background:var(--ok-l);color:var(--ok)}
.soon b{display:block;font-size:15px}
.soon span.t{font-size:13px;color:var(--muted)}
.soon .go{margin-left:auto;color:var(--navy)}
.ach-nums{display:flex;gap:28px;margin-bottom:14px}
.ach-nums strong{display:block;font-size:30px;font-weight:800;color:var(--navy);line-height:1.1}
.ach-nums small{font-size:13px;color:var(--muted)}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;border:1px solid var(--gold);color:var(--gold-t);background:var(--gold-l);padding:4px 10px;border-radius:99px}
.badge .ic{width:14px;height:14px}
.more{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;text-decoration:none}

/* --- мои курсы ----------------------------------------------------------------- */
.courses{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ccard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.ccard .cover{border-radius:0}
.ccard__b{display:flex;flex-direction:column;gap:10px;padding:18px 20px 20px;flex:1}
.ccard h2{font-size:19px;margin:0}
.ccard .st{align-self:flex-start}
.ccard p{margin:0;font-size:14px;color:var(--muted)}
.prog{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:6px}
.prog span{font-size:13px;color:var(--muted)}
.prog b{color:var(--ink)}
.ccard .btn{margin-top:8px;align-self:flex-start}
/* срок доступа и «Продлить на сайте» (АД3 §6, макеты u5a–u5c) */
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips .st{white-space:normal;max-width:100%}
.ccard .chips .st{align-self:auto}
.khead .acts2{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.khead .acts2 .btn{margin-top:0}
.ccard .acts2{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:8px}
.ccard .acts2 .btn{margin-top:0;width:100%;justify-content:center;align-self:stretch}
.ccard--paused .cover{filter:grayscale(1);opacity:.6}
/* АД5-2 «Что ещё изучить» (макет docs/pokaz/chto_eshche_2026-09-28/) */
.cover--soon{background:radial-gradient(circle at 80% 20%,rgba(210,178,114,.28),transparent 45%),linear-gradient(135deg,#4F6F86 0%,#3B5A70 60%,#2E6E72 100%)}
.ccard p.two{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ccard .ext{font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:4px}
.ccard--mine{border-color:#A9D4BA}
.ccard form{margin-top:auto}
.wantdone{display:flex;flex-direction:column;gap:4px;padding-top:8px;font-size:13px;color:var(--muted)}
.wantdone .btn--link{font-size:13px;align-self:flex-start}
.grp-note{margin:-6px 0 16px;color:var(--muted);font-size:14px}
.strip-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.strip-h .more{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--navy)}
.strip-h .more .ic{width:16px;height:16px}
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mini{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;min-width:0}
.mini .cover{border-radius:0;aspect-ratio:16/7}
.mini .cover__logo{width:40%}
.mini__b{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;flex:1;min-width:0}
.mini__b b{font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.mini__b small{color:var(--muted);font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mini__go{margin-top:auto;padding-top:4px;display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--navy)}
.mini__go .ic{width:16px;height:16px}
.mini .st{align-self:flex-start}
/* доступ приостановлен (макет u6): блок на главной и экран вместо курса */
.susp{border-left:4px solid var(--gold);margin-bottom:26px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.susp .eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-t)}
.susp .eyebrow .ic{width:16px;height:16px}
.susp h2,.susp h3{margin:0;font-size:21px}
.susp p{margin:0}
.susp .why2{background:var(--gold-l);color:var(--gold-t);border-radius:10px;padding:10px 14px;width:100%;overflow-wrap:anywhere}
.susp .muted{color:var(--muted);font-size:14px}
.susp__acts{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:860px){ .susp h2,.susp h3{font-size:18px} .susp{padding:18px} }

/* --- курс ------------------------------------------------------------------------ */
.khead{display:grid;grid-template-columns:340px 1fr;gap:28px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}
.khead h1{margin:6px 0 6px}
.khead p{margin:0 0 14px;color:var(--muted)}
.khead .prog{flex-direction:row;align-items:center;gap:12px;margin-bottom:18px;max-width:420px}
.khead .bar{flex:1}
.khead .prog span{font-size:14px;white-space:nowrap}
.khead .btn--main{white-space:normal;text-align:left}
.klay,.llay{display:grid;grid-template-columns:280px 1fr;gap:28px;align-items:start}
.llay{gap:32px}
.klay>*,.llay>*{min-width:0}
.mods{position:sticky;top:calc(var(--top-h) + 16px);display:flex;flex-direction:column;gap:8px}
.mods__t{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
.mod{display:grid;grid-template-columns:34px minmax(0,1fr);gap:4px 12px;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--ink)}
.mod b{min-width:0;overflow-wrap:break-word;hyphens:auto}   /* длинное слово в названии модуля не выталкивает плитку за край (проверка 05.10) */
.mod:hover{border-color:var(--navy)}
.mod .n{grid-row:span 2;width:34px;height:34px;border-radius:10px;background:var(--navy-l);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800}
.mod b{font-size:14px;line-height:1.3}
.mod .st{justify-self:start;white-space:normal;max-width:100%}   /* «после модуля 0» не вылезает за плитку в полширины на телефоне (репетиция 06.10) */
.mod[aria-current]{border-color:var(--navy);background:var(--navy-l);box-shadow:inset 4px 0 0 var(--navy)}
.mod[aria-current] .n{background:var(--navy);color:#fff}
.mod.is-ok .n{background:var(--ok-l);color:var(--ok)}
.mod.is-lock{background:#FBFBFC}
.mod.is-lock .n{background:var(--lock-l);color:var(--muted)}
.mod.is-lock b{color:var(--muted)}
/* выбранный модуль и его уроки — одно поле, как вкладка с содержимым; остальные модули
   спокойнее (отзыв 02.10, макет docs/pokaz/ad3_moduli_2026-10-02/, вариант А) */
.mod:not([aria-current]){background:transparent;border-color:transparent}
.mod:not([aria-current]) .n{background:var(--lock-l);color:var(--muted)}
.mod:not([aria-current]):hover{border-color:var(--line);background:#fff}
/* выбранный закрытый модуль («можно открыть», «после модуля N») — тоже вкладка поля */
.mod.is-lock[aria-current]{background:var(--navy-l)}
.mod.is-lock[aria-current] .n{background:var(--navy);color:#fff}
/* плашка закрытого модуля и его уроки — не вплотную (найдено на снимке 02.10) */
.klay .empty-state + .lessons{margin-top:12px}
.klay>section{background:var(--navy-l);border:1.5px solid var(--navy);border-radius:16px;padding:20px 22px 22px}
@media (min-width:861px){
  .klay{column-gap:0}
  .mods{padding-right:20px}
  /* поле уходит под край вкладки на толщину рамки — шва нет, вкладка своей колонки не покидает */
  .klay>section{margin-left:-1.5px}
  .mod[aria-current]{margin-right:-20px;border-right-color:transparent;border-radius:12px 0 0 12px;position:relative;z-index:1}
}
.mhead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.mhead h2{margin:0}
.lessons{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}
.les{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px 18px}
.les .num{width:40px;height:40px;font-size:16px}
.les h3{margin:0 0 6px;font-size:16px}
.les .meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:var(--muted)}
.les .meta .tp{display:inline-flex;align-items:center;gap:5px}
.les .meta .ic{width:16px;height:16px}
.les.is-cur{border-color:var(--navy);box-shadow:inset 4px 0 0 var(--navy)}
.les.is-stop{border-color:var(--gold);background:#FFFDF8}
.les.is-lock{background:#FBFBFC}
.les.is-lock h3{color:var(--muted)}
.why{font-size:12px;color:var(--muted);text-align:right;max-width:190px;margin-top:4px}
.les__act{display:flex;flex-direction:column;align-items:flex-end}
.sect-h{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:10px 0 0}
.lt-sect{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:8px 0 0}
.empty-state{display:flex;gap:14px;align-items:center;color:var(--muted)}
.empty-state p{margin:0}
/* список уроков чек-листа онбординга (R3) */
.lessons li{display:flex;gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid var(--line)}
.lessons li:first-child{border-top:0}
.lessons .mark{flex:none;width:18px;text-align:center;color:var(--muted)}
.lessons .mark--ok{color:var(--gold);font-weight:800}

/* --- урок --------------------------------------------------------------------------- */
.side{position:sticky;top:calc(var(--top-h) + 16px);max-height:calc(100vh - var(--top-h) - 110px);overflow:auto;display:flex;flex-direction:column;gap:8px;padding:2px}
.side__back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;text-decoration:none;margin-bottom:4px}
.side__mod{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:4px}
.side__mod b{display:block;font-size:14px}
.side__mod .muted{font-size:13px;display:block;margin:2px 0 8px}
.lt{display:grid;grid-template-columns:30px 1fr;gap:3px 10px;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--ink)}
a.lt:hover{border-color:var(--navy)}
.lt .num{grid-row:span 2;width:30px;height:30px;font-size:13px}
.lt .num .ic{width:16px;height:16px}
.lt>*{min-width:0}
.lt b{font-size:13.5px;line-height:1.3;font-weight:600;overflow-wrap:anywhere}
.lt .st{justify-self:start;font-size:11px;padding:2px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.lt[aria-current]{border-color:var(--navy);background:var(--navy-l);box-shadow:inset 4px 0 0 var(--navy)}
.lt[aria-current] b{font-weight:800}
.lt.is-lock{background:#FBFBFC}
.lt.is-lock b{color:var(--muted)}
.lt.is-stop{border-color:var(--gold)}
.lt.is-stop[aria-current]{background:var(--gold-l);box-shadow:inset 4px 0 0 var(--gold)}
.modnav{display:none}

.eyebrow{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:6px}
.eyebrow>span{display:inline-flex;align-items:center;gap:5px}
.eyebrow .ic{width:16px;height:16px}
.lbody h1{margin-bottom:16px}
.parts{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:10px;margin:0 0 12px;position:sticky;top:var(--top-h);z-index:5;background:var(--bg);padding:10px 0}
.pt{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--ink);min-width:0;position:relative}
.pt:hover{border-color:var(--navy)}
.pt .num{width:28px;height:28px}
.pt>span:last-child{min-width:0}
.pt b{display:block;font-size:14px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt small{display:block;font-size:12px;color:var(--muted);white-space:nowrap}
.pt[aria-current]{border-color:var(--navy);background:var(--navy-l)}
.pt[aria-current]::after{content:"";position:absolute;left:10px;right:10px;bottom:-1.5px;height:4px;border-radius:4px 4px 0 0;background:var(--navy)}
.part{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:20px;scroll-margin-top:calc(var(--top-h) + 80px)}
.part__h{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.part__h h2{margin:0;font-size:20px}
.part__h .st{margin-left:auto}
/* АД2: куратор изменил решение — пометка рядом со статусом и у попытки */
.part__h:has(.changed){flex-wrap:wrap;row-gap:4px}
.changed{font-size:13px;color:var(--muted);font-style:italic}
.part p{margin:0 0 12px}
.part__next{display:flex;justify-content:flex-end;border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
.part__next-in{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.part__next small{font-size:13px;color:var(--muted)}
.block__text{overflow-wrap:anywhere}
/* цитата («Цитата» в редакторе, «>» в пакете импорта) — у ученика стиля не было вовсе, работали
   отступы браузера; в уроке мастера 0.3 так стоит блок про безопасность («см. рамку ниже», проверка RC3) */
.block__text blockquote{margin:0 0 12px;padding:10px 14px;border-left:3px solid var(--navy);background:var(--navy-l);border-radius:0 10px 10px 0}
.block__text blockquote>:last-child{margin-bottom:0}
/* RC3: таблица в тексте урока (импорт мастера цеха) — рамки как в админке; слова в ячейке не рвём
   посреди («anywhere» сжимал колонку до «знач|ит»), широкая таблица прокручивается вбок внутри себя */
.block__text table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:0 0 12px}
.block__text td,.block__text th{border:1px solid var(--line);padding:6px 10px;vertical-align:top;text-align:left;overflow-wrap:break-word}
/* видимая полоса прокрутки под широкой таблицей — как у таблиц админки на телефоне: иначе не понять,
   что за краем есть ещё колонка */
.block__text table{padding-bottom:6px}
.block__text table::-webkit-scrollbar{height:6px}
.block__text table::-webkit-scrollbar-track{background:var(--line);border-radius:6px}
.block__text table::-webkit-scrollbar-thumb{background:var(--navy);border-radius:6px}
/* на телефоне таблица из трёх колонок и шире не помещается: третья колонка уходила за край, и
   прокрутку вбок никто не замечал (проверка показа RC3) — строки встают карточками, ячейки друг под
   другом. Две колонки остаются таблицей: они влезают */
@media (max-width:640px){
  .block__text table:has(tr > :nth-child(3)){display:block;overflow:visible;padding:0;border:1px solid var(--line);border-radius:10px}
  .block__text table:has(tr > :nth-child(3)) :is(thead,tbody,tr,th,td){display:block}
  .block__text table:has(tr > :nth-child(3)) :is(th,td){border:0;padding:3px 12px}
  .block__text table:has(tr > :nth-child(3)) tr{border-top:1px solid var(--line);padding:8px 0}
  .block__text table:has(tr > :nth-child(3)) tr:first-child{border-top:0}
  .block__text table:has(tr > :nth-child(3)) thead tr{background:var(--navy-l);border-radius:10px 10px 0 0}
  .block__text table:has(tr > :nth-child(3)) tbody tr{border-top:1px solid var(--line)}
  .block__text table:has(tr > :nth-child(3)) :is(th,td):empty{display:none}
}
.part iframe{width:100%;max-width:760px;aspect-ratio:16/9;height:auto;border:0;border-radius:12px;display:block}
.filelink{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.quiz details{margin-top:10px}
.quiz summary{cursor:pointer;font-weight:700;color:var(--navy)}
.quiz .muted{margin-top:10px}
.due{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--gold-t);background:var(--gold-l);padding:4px 12px;border-radius:99px;margin-bottom:12px}
.due .ic{width:16px;height:16px}
.task{margin:14px 0}
.task label{display:block;font-weight:600;font-size:14px;margin-bottom:14px}
.task .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.task .muted{margin:10px 0 0}
.homework h3{margin-top:22px}
.attempts{list-style:none;padding:0;margin:0}
.attempts li{padding:12px 0;border-top:1px solid var(--line)}
.attempts form{display:inline;margin:0 0 0 8px}
.status{display:inline-block;font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px;background:var(--navy-l);color:var(--navy)}
.status--approved{background:var(--ok-l);color:var(--ok)}
.status--rework{background:#FDF0E6;color:var(--orange-h)}
.endnote{display:flex;gap:12px;align-items:center;background:var(--navy-l);border-radius:12px;padding:14px 16px;font-size:14px;color:var(--navy-d);margin-bottom:12px}
.stopbox{display:flex;gap:14px;align-items:flex-start;background:var(--gold-l);border:1.5px solid var(--gold);border-radius:14px;padding:16px 18px;margin:0 0 16px}
.stopbox>.ic{width:28px;height:28px;color:var(--gold-t);margin-top:2px}
.stopbox b{display:block;font-size:16px;color:#5E4618}
.stopbox span{font-size:14px;color:#5E4618}
.preview-note{background:#FFFBE6;border:1px solid #E6D9A0;padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:14px}

/* закреплённая панель урока */
.lpanel{position:sticky;bottom:0;z-index:25;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(22,22,22,.06)}
.lpanel__in{max-width:1180px;margin:0 auto;padding:12px 24px;display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center}
.lpanel .prev,.lpanel .next{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);min-width:0}
.lpanel .next{justify-content:flex-end;text-align:right}
.lpanel .prev small,.lpanel .next small{display:block;font-size:12px;color:var(--muted);font-weight:600}
.lpanel .prev b,.lpanel .next b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lpanel .next.is-lock{color:var(--muted);cursor:not-allowed}
.lpanel .arrow{width:40px;height:40px;border-radius:50%;border:1.5px solid currentColor;display:flex;align-items:center;justify-content:center;flex:none}
.lpanel .next.is-lock .arrow{border-style:dashed}
.lpanel form{margin:0}
.done-cell{display:flex;align-items:center;gap:14px;justify-content:center}
.done-cell .passed{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--ok)}
.lpanel .btn--main .lbl-s{display:none}
.totop{position:absolute;right:24px;bottom:calc(100% + 16px);z-index:26;display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;text-decoration:none;font-weight:700;font-size:14px;padding:10px 16px;border-radius:99px;box-shadow:0 6px 16px rgba(21,96,147,.3)}
.totop:hover{background:var(--navy-d)}
.page-lesson .wrap{padding-bottom:24px}

/* --- достижения, настройки, инструкция ------------------------------------ */
.ach-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px}
.stat{display:flex;flex-direction:column;gap:6px}
.stat strong{font-size:34px;font-weight:800;color:var(--navy);line-height:1.1}
.stat small{color:var(--muted);font-size:14px}
.badge-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.badge-list li{display:flex;gap:12px;align-items:center;border:1px solid var(--gold);background:var(--gold-l);border-radius:12px;padding:12px 14px}
.badge-list b{display:block;color:var(--gold-t)}
.badge-list small{display:block;font-size:13px;color:var(--muted)}
.badge-ic{width:40px;height:40px;border-radius:50%;background:#fff;color:var(--gold-t);display:flex;align-items:center;justify-content:center;flex:none}
.set-grid,.help-doc{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.set-grid>.set-tg{align-self:start}  /* Telegram в одну строку не тянуть по высоте «Смены пароля» (06.10); остальные — как были */
.set-grid h2,.help-doc h2{display:flex;align-items:center;gap:10px;font-size:18px}
.set-grid h2 .ic,.help-doc h2 .ic{color:var(--navy)}
.set-grid p,.help-doc p{margin:0 0 10px}
.help-doc ol{margin:0;padding-left:20px}
.help-doc li{margin-bottom:6px}
/* шаг В: достижения (макет v5_6) и формы настроек (v5_7) */
.sect{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:28px 0 12px}
.sect h2{margin:0;font-size:20px}
.ach-grid--4{grid-template-columns:repeat(4,1fr)}
.stat strong small{font-size:15px;color:var(--muted);font-weight:600}
.stat--star strong{color:var(--gold-t)}
.card + .card,.card + .sect,.ach-grid + .card{margin-top:16px}
.consent{border:1.5px solid var(--navy);margin-bottom:8px}
.consent h2{font-size:19px;margin:0 0 6px}
.opts{border:0;padding:0;margin:14px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.opt{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}
.opt:has(input[type=radio]:checked){border-color:var(--navy);background:var(--navy-l)}
.opt small{font-size:13px;color:var(--muted)}
.opt input[type=text]{margin-top:4px;padding:8px 10px}
.consent__f{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.journal{list-style:none;margin:0;padding:0}
.journal li{display:flex;gap:12px;align-items:baseline;padding:7px 0;border-top:1px solid var(--line)}
.journal li:first-child{border-top:0}
.amt{flex:none;min-width:48px;font-weight:800;color:var(--gold-t)}
.amt--minus{color:var(--muted)}
.badge-list li.is-off{border-color:var(--line);background:var(--lock-l)}
.badge-list li.is-off b{color:var(--muted)}
.badge-list li.is-off .badge-ic{color:var(--muted)}
.flow{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}
.flow .card + .card,.ach-grid .card + .card,.set-grid .card + .card{margin-top:0}
.myplace .big{font-size:40px;font-weight:800;color:var(--navy);line-height:1.1;margin-bottom:8px}
.myplace .big small{font-size:17px;color:var(--muted);font-weight:600}
.myplace p{margin:0 0 8px}
.demo{background:var(--gold-l);color:var(--gold-t);border-radius:10px;padding:8px 12px;font-size:14px;margin:0 0 12px}
.top10{width:100%;border-collapse:collapse;font-size:15px}
.top10 th{text-align:left;font-size:13px;color:var(--muted);font-weight:600;padding:6px 8px}
.top10 td{padding:8px;border-top:1px solid var(--line)}
.top10 .n{text-align:right}
.top10 .pl span{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:var(--lock-l);font-weight:700}
.top10 tr.me td{background:var(--navy-l);font-weight:700}
.form label{display:block;font-weight:600;font-size:14px;margin-bottom:14px}
.form select{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.form label.check{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-weight:600}
.form label.check small{flex-basis:100%;font-weight:400}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0 0 12px}
.kv dt{color:var(--muted);font-size:14px}
.kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}

/* переспрос «Вы уверены?» */
dialog.confirm{border:0;border-radius:16px;padding:24px;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
dialog.confirm::backdrop{background:rgba(22,22,22,.45)}
dialog.confirm p{margin:0 0 18px;font-size:16px}
dialog.confirm .actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}

/* --- вход ------------------------------------------------------------------------ */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}
.art{background:var(--navy);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;position:relative;overflow:hidden}
.art::after{content:"";position:absolute;width:520px;height:520px;right:-160px;bottom:-160px;border:1.5px solid var(--gold);border-radius:50%;opacity:.5}
.art::before{content:"";position:absolute;width:340px;height:340px;right:-70px;bottom:-70px;border:1px solid var(--gold);border-radius:50%;opacity:.35}
.art img{display:block;height:64px;width:auto;align-self:flex-start;position:relative;z-index:1}
.art h1{font-size:40px;line-height:1.15;margin:0;color:#fff;position:relative;z-index:1}
.artroute{display:flex;align-items:center;max-width:420px;position:relative;z-index:1}
.artroute::before{content:"";position:absolute;left:0;right:0;top:50%;height:4px;margin-top:-2px;background:rgba(255,255,255,.2);border-radius:4px}
.artroute::after{content:"";position:absolute;left:0;width:40%;top:50%;height:4px;margin-top:-2px;background:var(--gold);border-radius:4px}
.artroute i{position:relative;z-index:1;flex:1;display:flex;justify-content:center}
.artroute i::before{content:"";width:11px;height:11px;border-radius:50%;border:2.5px solid rgba(255,255,255,.45);background:var(--navy)}
.artroute i.d::before{border-color:var(--gold);background:var(--gold)}
.artroute i.h::before{width:20px;height:20px;border:4px solid #fff;box-shadow:0 0 0 4px rgba(210,178,114,.45)}
.arttext{margin-top:14px;opacity:.85;font-size:14px;position:relative;z-index:1}
.sidebox{display:flex;align-items:center;justify-content:center;padding:40px 24px}
.box{width:100%;max-width:420px}
.box h2{font-size:26px;margin:0 0 6px;color:var(--navy)}
.box .lead{margin:0 0 24px}
.box label{display:block;font-weight:600;font-size:14px;margin-bottom:14px}
.box .btn{width:100%;margin-top:6px;font-size:16px;padding:14px 26px}
.cant{margin-top:28px;border-top:1px solid var(--line);padding-top:20px}
.cant h3{font-size:16px;margin:0 0 4px}
.cant p{margin:0 0 12px;font-size:14px;color:var(--muted)}
.cl{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);margin-bottom:8px;background:#fff}
.cl:hover{border-color:var(--navy)}
.cl .ci{width:38px;height:38px;border-radius:10px;background:var(--navy-l);color:var(--navy);display:flex;align-items:center;justify-content:center;flex:none}
.cl b{display:block;font-size:14px}
.cl small{display:block;font-size:13px;color:var(--muted);word-break:break-word}
.clrow{display:flex;gap:8px;align-items:stretch;margin-bottom:8px}
.clrow .cl{flex:1;min-width:0;margin-bottom:0}
.copy{font:inherit;font-size:13px;font-weight:700;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:0 12px;cursor:pointer;flex:none}
.copy:hover{border-color:var(--navy)}
.copy.is-done{color:var(--ok);border-color:var(--ok)}
.cl .go{margin-left:auto;color:var(--navy)}

/* --- планшет и телефон ------------------------------------------------------ */
@media (max-width:1100px){.parts{--n:2 !important}}
@media (max-width:1000px){.courses{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
  :root{--top-h:60px}
  .top__in{padding:10px 16px;gap:12px}
  .logo img{height:36px}
  .nav{display:none}
  .wrap{padding:18px 16px 32px}
  .tabbar{display:flex}
  h1{font-size:23px;margin-bottom:16px}
  .helpfoot{padding:0 16px 24px}
  .order{flex-direction:column;align-items:flex-start}
  .order .arr{display:none}

  .continue{padding:22px 18px 20px}
  .continue::before,.continue::after{display:none}
  .continue h2{font-size:21px}
  .continue .btn--main{width:100%}
  .stn span{display:none}
  .stn i{width:10px;height:10px;margin-top:10.5px;border-width:2px}
  .stn.xfer i{width:13px;height:13px;margin-top:9px}
  .stn.here i{width:24px;height:24px;margin-top:3px;border-width:5px;box-shadow:0 0 0 4px rgba(210,178,114,.45)}
  .dirs{grid-template-columns:1fr 1fr;gap:12px}
  .dir{padding:16px}
  .dir .go{display:none}
  .dir--soon .st{right:12px;top:14px}
  .row2{grid-template-columns:1fr}

  .courses{grid-template-columns:1fr;gap:16px}
  .strip{grid-template-columns:1fr;gap:10px}
  .mini{flex-direction:row;align-items:stretch}
  .mini .cover{aspect-ratio:auto;width:92px;flex:none}
  .mini .cover__logo{width:76%}
  .mini__b{padding:12px 14px}
  .ccard .btn{align-self:stretch}
  .ccard form .btn{width:100%;justify-content:center}

  .khead{grid-template-columns:1fr;padding:14px;gap:14px}
  .khead .btn--main{width:100%}
  .klay{grid-template-columns:1fr;gap:0}
  /* модули — плитки в две колонки с переносом строк, а не лента с прокруткой: вторая плитка
     обрезалась правым краем (проверка 05.10). Вкладка с «хвостом» к полю на телефоне не
     держится — при двух рядах плиток он оторвался бы от выбранной, поэтому поле отдельной рамкой */
  .mods{position:static;flex-direction:row;flex-wrap:wrap;padding-bottom:0;gap:8px;margin-bottom:12px}
  .mods__t{display:none}
  .mod{flex:1 1 calc(50% - 4px);min-width:0;border-radius:12px}
  .mod:not([aria-current]){background:#fff;border-color:var(--line)}
  .klay>section{padding:16px 14px 18px}
  .les{grid-template-columns:36px 1fr;padding:14px}
  .les .num{width:34px;height:34px;font-size:14px}
  .les__act{grid-column:1/-1;align-items:stretch}
  .les__act .btn{width:100%}
  .why{text-align:left;max-width:none}
  .actions-row .btn{white-space:normal;text-align:center;width:100%}   /* длинное «К уроку «…»» на закрытом уроке уходило за экран (репетиция 06.10) */

  .page-lesson .tabbar{display:none}
  .back-m{display:flex;align-items:center;gap:6px;margin-left:auto;color:#fff;text-decoration:none;font-weight:700;font-size:14px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.12);max-width:55%}
  .back-m span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .llay{grid-template-columns:1fr;gap:0}
  .side{display:none}
  .modnav{display:block;margin:0 0 14px}
  .modnav summary{list-style:none;display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--navy);color:var(--navy);border-radius:12px;padding:12px 14px;font-weight:700;cursor:pointer}
  .modnav summary::-webkit-details-marker{display:none}
  .modnav summary .ic:last-child{margin-left:auto;transition:transform .15s}
  .modnav[open] summary .ic:last-child{transform:rotate(180deg)}
  .modnav .list{display:flex;flex-direction:column;gap:8px;padding-top:10px}
  .parts{display:flex;overflow-x:auto;gap:8px;margin:0 0 10px;padding:8px 0;scrollbar-width:none}
  .parts::-webkit-scrollbar{display:none}
  .pt{flex:0 0 auto;padding:8px 12px 8px 8px;border-radius:99px}
  .pt[aria-current]::after{display:none}
  .pt small{display:none}
  .part{padding:18px 16px}
  .part__next .btn{width:100%;white-space:normal}
  .part__next-in{align-items:stretch;width:100%;text-align:center}
  .lpanel__in{padding:8px 12px 12px;grid-template-columns:auto 1fr auto;gap:10px}
  .lpanel .prev small,.lpanel .prev b,.lpanel .next small,.lpanel .next b{display:none}
  .lpanel .arrow{width:48px;height:48px}
  .lpanel .btn--main{padding:13px 12px;width:100%}
  .lpanel .btn--main .lbl-l{display:none}
  .lpanel .btn--main .lbl-s{display:inline}
  .done-cell{flex-direction:column;gap:2px}
  .totop{right:12px;bottom:calc(100% + 12px);padding:12px;border-radius:50%}
  .totop span{display:none}
  .stopbox{padding:14px}

  .ach-grid,.set-grid,.help-doc{grid-template-columns:1fr}
  .ach-grid--4{grid-template-columns:1fr 1fr}
  .opts,.flow{grid-template-columns:1fr}

  .split{grid-template-columns:1fr;min-height:0}
  .art{padding:24px 16px 26px;gap:18px}
  .art::after,.art::before{display:none}
  .art img{height:42px}
  .art h1{font-size:26px}
  .sidebox{padding:24px 16px 40px}
}
.out form+form{margin-top:12px}
.out .btn--quiet{padding-left:0;padding-right:0}

/* выход в шапке — кружок с буквой имени и меню (27.09) */
.me{position:relative;flex:none}
.me>summary{list-style:none}
.me>summary::-webkit-details-marker{display:none}
.me__ava{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;cursor:pointer;border:1.5px solid rgba(255,255,255,.35)}
.me[open] .me__ava,.me__ava:hover{background:rgba(255,255,255,.28)}
.me__menu{position:absolute;right:0;top:48px;z-index:40;min-width:240px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(15,74,115,.2);padding:8px}
.me__who{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;flex-direction:column;gap:2px;overflow-wrap:anywhere}
.me__who span{font-size:13px;color:var(--muted)}
.me__menu a,.me__menu button{display:flex;gap:8px;align-items:center;width:100%;padding:9px 10px;border-radius:8px;background:none;border:0;font:inherit;font-weight:600;font-size:14px;color:var(--navy);text-decoration:none;cursor:pointer;text-align:left}
.me__menu a:hover,.me__menu button:hover{background:var(--navy-l)}
.me__menu form{margin:0}
@media (max-width:860px){.me{margin-left:auto}}
.out{align-self:start}

/* ─── четыре выделения урока (АД4, решение 27.09): закрытый список классов санитайзера ───
   Строчные — на span, абзацные — на p. «Совет наставника»: значок и подпись рисует CSS,
   в разметке только класс — иначе их пришлось бы пропускать через санитайзер. */
.hl-vazhno{background:#FCE3CF;border-radius:4px;padding:0 3px}
.hl-akcent{color:var(--navy);font-weight:700}
p.hl-primer{background:var(--teal-l);border:1.5px solid #9ccfd1;border-radius:12px;padding:12px 16px;margin:0 0 10px}
p.hl-sovet{position:relative;background:var(--gold-l);border:1.5px solid var(--gold);border-radius:12px;padding:12px 16px 12px 62px;margin:16px 0 10px;min-height:60px}
p.hl-sovet::before{content:"";position:absolute;left:14px;top:12px;width:34px;height:34px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 22h4'/%3E%3Cpath d='M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.3 1 2.1V17h6v-.2c0-.8.4-1.6 1-2.1A7 7 0 0 0 12 2z'/%3E%3C/svg%3E") center/20px no-repeat}
p.hl-sovet::after{content:"Совет наставника";position:absolute;left:62px;top:-11px;background:var(--gold-l);border:1px solid var(--gold);border-radius:99px;padding:0 8px;font-size:12px;font-weight:700;color:var(--gold-t);line-height:20px}
p.hl-primer+p.hl-primer,p.hl-sovet+p.hl-sovet{margin-top:-10px;border-top:0;border-top-left-radius:0;border-top-right-radius:0}
p.hl-sovet+p.hl-sovet::before,p.hl-sovet+p.hl-sovet::after{display:none}

/* ─── кусок «Файл» с подписью и картинка ─── */
.fileblk{display:flex;gap:14px;align-items:flex-start}
.fileblk__ic{width:48px;height:56px;border-radius:8px;background:#FBE9E7;color:#B3261E;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;flex:none}
.fileblk__body{flex:1;min-width:0}
.fileblk__body>b{display:block;font-size:16px;overflow-wrap:anywhere}
.fileblk__body .block__text{margin:6px 0 10px}
.block__img{max-width:100%;height:auto;border-radius:12px;display:block}
.block__cap{font-size:14px;color:var(--muted);margin-top:8px}
@media (max-width:640px){.fileblk{flex-direction:column}}

/* АД3 §4: курс «по порядку» — следующий модуль открывает ученик (макет ad3 u1/u2) */
.nextmod{display:flex;flex-direction:column;gap:12px;align-items:flex-start;margin-bottom:18px}
.nextmod h3{margin:0;font-size:18px}
.nextmod p{margin:0}
.nextmod form{margin:0;max-width:100%}
.nextmod .btn{max-width:100%;white-space:normal;text-align:left}
.after{margin-top:16px}

/* ─── «Библиотека» и закончившийся курс (макет docs/pokaz/biblioteka_2026-09-29/, перенос из _gen.py) ─── */
.shelf-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:28px}
.shelf-h .sect-t{margin-bottom:4px}
.shelf-note{margin:0 0 14px;color:var(--muted);font-size:14px}
.lrows{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.lrow{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;text-decoration:none;color:var(--ink);min-width:0}
.lrow:hover{border-color:var(--navy)}
.lrow__ic{flex:none;width:40px;height:40px;border-radius:50%;background:var(--teal-l);color:#0E6468;display:flex;align-items:center;justify-content:center}
.lrow__ic .ic{width:20px;height:20px}
.lrow__t{min-width:0}
.lrow b{display:block;font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.lrow small{display:block;color:var(--muted);font-size:13px}
.lrow .go{margin-left:auto;color:var(--navy);flex:none}
.cover--lib .cover__ic .ic{width:50%;height:50%}
.ccard--lib h2{overflow-wrap:anywhere}
.ccard .kind{font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:2px}
.chips .st{white-space:normal;max-width:100%}
/* материал библиотеки */
.libitem .eyebrow{font-size:13px;color:var(--muted);margin-bottom:4px}
.until{display:flex;gap:10px;align-items:flex-start}
.until .ic{flex:none;width:20px;height:20px;margin-top:2px;color:#0E6468}
.libpart{margin:0 0 22px;max-width:860px}
.libpart h2{font-size:19px;margin:0 0 10px}
.libpart iframe{width:100%;max-width:860px;height:auto;aspect-ratio:16/9;border-radius:14px;display:block}
.libitem__back{margin-top:8px}
/* главная у бывшего ученика */
.ended{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 24px;margin-bottom:26px}
.ended .eyebrow{font-size:13px;color:var(--muted)}
.ended h2{margin:4px 0 8px;font-size:22px}
.ended p{margin:0 0 14px;color:var(--muted)}
.ended .acts{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.mini--lib .cover__ic{width:22%}
.mini--lib .chips{display:flex;gap:6px;flex-wrap:wrap}
/* курс, доступ к которому закончился (b5, b6): обложка серая, уроки закрыты */
/* серая обложка с замком — и поверх фото (макет b5, b6) */
.cover--ended{background:radial-gradient(circle at 78% 22%,rgba(255,255,255,.18),transparent 42%),linear-gradient(135deg,#8C9597 0%,#727C7E 55%,#5E6769 100%)}
.cover--ended::before{content:"";position:absolute;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);width:62%;aspect-ratio:1;right:-14%;top:-40%}
.cover>img.cover__bg{position:absolute;inset:0;filter:grayscale(1);opacity:.28}
.cover--ended .cover__ic{background:rgba(255,255,255,.14)}
.row2>.card{margin-top:0}   /* «Ближайшее» и «Мои достижения» — верх на одной линии */
.khead--ended{margin-bottom:24px}
.ccard .prog{margin-top:0}
.ccard .renew-t{font-size:12.5px;color:var(--muted);margin:0}
.les.is-closed .les__act .st{white-space:nowrap;align-self:flex-start;flex:none;width:auto}
.les.is-closed h3{color:var(--ink)}
@media (max-width:860px){
  .lrows{grid-template-columns:1fr;gap:8px}
  .mini--lib{flex-direction:row;align-items:stretch}
  .mini--lib .cover{aspect-ratio:auto;width:92px;flex:none}
  .mini--lib .cover__ic{width:56%}
  .mini--lib .mini__b{padding:12px 14px}
  .ended{padding:18px}
  .ended h2{font-size:19px}
  .ended .acts .btn{width:100%;justify-content:center}
  .ended .acts .btn--quiet{width:auto}
}
/* «Где вы вошли» и вопрос при входе с лишнего места (лимит мест, 05.10) */
.mesta{list-style:none;margin:0 0 12px;padding:0}
.mesta__it{display:flex;gap:10px 14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.mesta__it:first-child{border-top:0;padding-top:0}
.mesta__t{flex:1 1 0;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-width:0;overflow-wrap:anywhere}
.mesta__t small{flex-basis:100%;font-size:13px;color:var(--muted)}
.mesta__it form{margin:0;flex:none}
.mesta-q .opts--col{grid-template-columns:1fr;margin:0 0 14px}
.mesta-q .opt{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;align-items:center;margin:0;font-weight:400}
.mesta-q .opt input{grid-row:span 2;width:18px;height:18px;margin:0;accent-color:var(--navy)}
.mesta-q .opt b,.mesta-q .opt small{grid-column:2;overflow-wrap:anywhere}
.mesta-q .btn--quiet{width:auto;display:block;margin:10px auto 0}
.mesta-q .muted{margin:14px 0 0}
/* Установка на телефон (PWA, 05.10): карточка в Настройках и заглушка «Нет связи» */
.ust__steps{margin:0 0 4px;padding-left:22px}
.ust__steps li{margin:0 0 6px}
.offline{max-width:560px;margin:24px auto 0;text-align:center;overflow-wrap:anywhere}
.offline__ic{display:block;width:56px;height:56px;margin:0 auto 14px;color:var(--navy)}
.offline h1{font-size:24px;margin:0 0 12px}
.offline p{margin:0 0 12px}
.offline .btn{margin-top:8px}
@media (max-width:860px){ .offline{margin-top:8px;padding:20px} .offline .btn{width:100%} }

/* Просмотр PDF без скачивания (защита ур. 1, 05.10): страницы — холсты pdf.js во всю ширину
   колонки, не шире; поверх каждой — прозрачный слой (`__shield`), чтобы правая кнопка и долгое
   нажатие не предлагали «Сохранить картинку». Печать страницы показывает только пометку. */
.pdfv__h{overflow-wrap:anywhere}
.pdfv{max-width:900px;margin:0 0 16px}
.pdfv__state{margin:0 0 12px;font-size:14px;color:var(--muted)}
.pdfv__state--err{color:var(--err);font-weight:600}
.pdfv__pages{display:flex;flex-direction:column;gap:18px;overflow-x:auto;overflow-y:hidden;--z:1;overscroll-behavior-x:contain;padding-bottom:2px}
.pdfv__pages.is-zoomed{cursor:grab}
.pdfv__pages.is-grab{cursor:grabbing;user-select:none}
.pdfv__tools{position:sticky;top:var(--top-h);z-index:6;display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 0;background:var(--bg)}
.pdfv__tools[hidden]{display:none}
.pdfv__btn{min-height:44px;min-width:44px;padding:0 14px;font-size:15px;white-space:nowrap}
.pdfv__btn[disabled]{opacity:.45;cursor:default}
.pdfv__zoom{min-width:52px;text-align:center;font-weight:700;font-size:15px;color:var(--navy)}
.pdfv__fit{margin-left:auto}
@media (max-width:420px){.pdfv__tools{gap:6px}.pdfv__btn{padding:0 10px}.pdfv__zoom{min-width:44px}}
.pdfv__page{position:relative;flex:none;margin:0;width:calc(100% * var(--z,1));background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 2px 10px rgba(22,22,22,.06)}
.pdfv__page canvas{display:block;width:100%;height:auto}
.pdfv__shield{position:absolute;inset:0;z-index:1}
.pdfv__num{position:absolute;right:8px;bottom:8px;z-index:2;margin:0;font-size:12px;color:var(--muted);background:rgba(255,255,255,.9);border-radius:6px;padding:2px 8px}
.pdfv__note{max-width:900px}
.pdfv__print{display:none}
@media print{
  .pdfv,.pdfv__tools,.pdfv__note,.pdfv__back{display:none !important}
  .pdfv__print{display:block}
}
.fileblk__only{display:inline-block;margin:6px 0 0 10px;font-size:13px}
.pdfv__file{margin:-12px 0 14px;overflow-wrap:anywhere}
@media (max-width:640px){.fileblk__only{display:block;margin:8px 0 0}}

/* «С чего начать» (реш. 06.10.2026, макет g1–g3 docs/pokaz/start_2026-10-06/) — карточка на главной
   нового ученика вместо «Первых шагов» R3. Золотая рамка выделяет её среди белых карточек, не делая
   второй главной; колонок столько, сколько пунктов видно (Telegram и «значок» бывают скрыты). */
.start{margin:0 0 4px;padding:22px 24px 18px;border:1.5px solid var(--gold)}
.continue + .start{margin-top:20px}
.start__h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.start__h h2{margin:0;font-size:21px;color:var(--navy)}
.start__h p{margin:4px 0 0}
.start__x{margin:0}
.start__x button{flex:none;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.start__x button:hover{border-color:var(--navy);color:var(--navy)}
.start__x .ic{width:18px;height:18px}
.start__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.start__it[hidden]{display:none}
.start__it a{display:flex;gap:12px;align-items:flex-start;height:100%;box-sizing:border-box;padding:14px;border:1.5px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink);background:#fff}
.start__it a:hover{border-color:var(--navy)}
.start__it .sic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none;background:var(--navy-l);color:var(--navy)}
.start__it .sic .ic{width:22px;height:22px}
.start__it .tx{min-width:0}
.start__it b{display:block;font-size:15px;line-height:1.35}
.start__it .t{display:block;font-size:13px;line-height:1.4;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}
.start__it .go{margin-left:auto;align-self:center;color:var(--navy);flex:none}
.start__it--ok a{background:#FBFBFC}
.start__it--ok .sic{background:var(--ok-l);color:var(--ok)}
.start__foot{margin:12px 0 0;font-size:13px}
/* «Курсов пока нет» (макет m1) — в пустом «Моём обучении» и на главной после крестика */
.nocourse h2{margin:0 0 6px;font-size:20px}
.nocourse p{margin:0 0 16px}
.nocourse .acts{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
/* телефон — компактно: подзаголовок карточки убран (заголовок говорит сам), строки ниже, значки меньше */
@media (max-width:860px){
  .continue + .start{margin-top:14px}
  .start{padding:12px 12px 10px}
  .start__h{margin-bottom:8px;align-items:center}
  .start__h h2{font-size:18px}
  .start__h p{display:none}
  .start__x button{width:34px;height:34px}
  .start__list{grid-template-columns:minmax(0,1fr);gap:6px}
  .start__it a{padding:8px 10px;gap:10px;align-items:center;border-radius:12px}
  .start__it .sic{width:34px;height:34px;border-radius:10px}
  .start__it .sic .ic{width:19px;height:19px}
  .start__it b{font-size:14.5px;line-height:1.3}
  .start__it .t{font-size:12.5px;line-height:1.35;margin-top:1px}
  .start__foot{margin-top:8px;font-size:12.5px}
  .nocourse .btn--ghost{width:100%}
}

/* Форма первого входа в виде v5 (реш. 06.10, макет w1/w2) — на раскладке страницы входа */
.welc h2{margin-bottom:6px}
.welc textarea{min-height:148px;max-height:360px;field-sizing:content}  /* растёт с текстом (Chrome, Edge); где не умеет — 5 строк и прокрутка */
.welc .hint{display:block;font-weight:400;font-size:13px;color:var(--muted);margin-top:6px}
.welc fieldset{border:0;padding:0;margin:4px 0 18px;min-width:0}
.welc legend{font-weight:600;font-size:14px;padding:0;margin-bottom:8px}
.welc .opts{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;gap:8px}
.welc .opt{position:relative;display:flex;flex-direction:column;align-items:center;background:#fff;text-align:center;gap:0;margin:0;padding:10px 8px;font-weight:400;border-width:1.5px}
.welc .opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.welc .opt b{font-size:15px}
.welc .opt:has(input:focus-visible){outline:3px solid var(--navy-l);outline-offset:1px}
.welc .opt:hover{border-color:var(--navy)}
/* галочка выбранной — в строке «минут», а не в углу: в углу на телефоне она ложилась на «больше 30» */
.welc .opt small{display:flex;align-items:center;gap:4px}
.welc .opt__ok{display:none;width:16px;height:16px;border-radius:50%;background:var(--navy);color:#fff;align-items:center;justify-content:center;flex:none}
.welc .opt__ok .ic{width:11px;height:11px;stroke-width:3}
.welc .opt:has(input:checked) small{color:var(--navy);font-weight:700}
.welc .opt:has(input:checked){border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:var(--navy-l)}
.welc .opt:has(input:checked) b{color:var(--navy)}
.welc .opt:has(input:checked) .opt__ok{display:flex}
.welc .btn{margin-top:4px}
/* ошибка — у своего поля, поле подсвечено (доработка 06.10) */
.welc .ferr{display:block;margin:6px 0 0;font-size:13.5px;font-weight:600;color:var(--err);overflow-wrap:anywhere}
.welc fieldset .ferr{margin:0 0 8px}
.welc .has-err input[type=text],.welc .has-err textarea{border-color:var(--err);box-shadow:0 0 0 3px #FBEAE9}
.welc fieldset.has-err .opt{border-color:var(--err);background:#FFF8F7}
.welc fieldset.has-err .opt:has(input:focus-visible){outline-color:#FBEAE9}
.welc__after{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.welc .whelp{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:0 0 10px;font-size:13px;color:var(--muted)}
.welc .whelp a{display:inline-flex;align-items:center;gap:6px;color:var(--navy);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.welc .whelp .ic{width:16px;height:16px;flex:none}
.welc__after form p{margin:0;font-size:13px}
.welc__after .btn--link{font-size:13px}

/* «О себе» в «Настройках» (реш. 07.10, штурм «Интересы при входе») — плитки по образцу минут первого входа:
   выбранная — рамка, фон и галочка. Карточка на всю ширину сетки «Настроек». Слова не ломаются посреди:
   колонок столько, сколько влезает по самому длинному слову (140 px), перенос — только по пробелам. */
.set-grid>.about{grid-column:1/-1;scroll-margin-top:calc(var(--top-h) + 16px)}
.about fieldset{border:0;padding:0;margin:4px 0 18px;min-width:0}
.about legend{font-weight:600;font-size:14px;padding:0;margin-bottom:4px}
.about .about__hint{display:block;font-weight:400;font-size:13px;color:var(--muted);margin:0 0 10px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.tile{position:relative;display:flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:10px 10px;cursor:pointer;font-weight:600;font-size:13.5px;line-height:1.3;margin:0;min-width:0}
.tile input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.tile>span:last-child{min-width:0}
/* место под галочку занято всегда: выбранная плитка не меняет ни ширину, ни высоту, а вес текста один */
.tile__ok{width:16px;height:16px;border-radius:50%;background:transparent;color:transparent;display:flex;align-items:center;justify-content:center;flex:none;border:1.5px solid var(--line)}
.tile__ok .ic{width:11px;height:11px;stroke-width:3}
.tile:hover{border-color:var(--navy)}
.tile:has(input:focus-visible){outline:3px solid var(--navy-l);outline-offset:1px}
.tile:has(input:checked){border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:var(--navy-l);color:var(--navy)}
.tile:has(input:checked) .tile__ok{background:var(--navy);color:#fff;border-color:var(--navy)}
@media (max-width:480px){.tiles{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.tile{font-size:13px;padding:9px 8px;gap:5px}}
@media (min-width:900px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr));font-size:14.5px}.tile{font-size:14.5px}}
.about__act{scroll-margin-top:calc(var(--top-h) + 120px);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.about__msg{display:flex;align-items:center;gap:6px;margin:0;font-weight:600;color:#1F6B3A}
.about__msg .ic{width:18px;height:18px;flex:none}
