:root{
  /* Объявляем поддержку обеих тем. Это не только про системные элементы
     браузера (списки, выбор даты, полосы прокрутки): Chrome на Android умеет
     сам перекрашивать светлые сайты в тёмные, и делает это грубо — цвета
     получаются не наши. Он отступает только тогда, когда страница заявляет,
     что справляется с тёмной темой сама. Конкретная тема ниже задаётся
     атрибутом, поэтому подмена не срабатывает ни в одну сторону. */
  color-scheme:light dark;
  /* Каналы цвета отдельно от готовых цветов: из них собираются все
     полупрозрачные заливки, линии и тени. Меняется канал — меняется вся
     семья оттенков разом, и тема переключается целиком. */
  --ink-rgb:34 31 27;        /* чернила: линии и плёнки поверх поверхности */
  --shadow-rgb:34 31 27;     /* тень всегда темнее фона, в обеих темах */
  --paper-rgb:239 231 214;   /* бумага: плёнки поверх фона */
  --card-rgb:247 241 228;
  --blue-rgb:46 74 107;      /* второй акцент */
  --accent-rgb:179 50 25;    /* главный акцент */
  --green-rgb:42 114 80;--amber-rgb:150 99 26;--danger-rgb:179 38 30;
  /* Сила свечения под акцентными элементами: на бумаге оно должно быть
     вдвое слабее, чем на тёмном, иначе выглядит грязным пятном. */
  --glow:.35;
  /* Ступени заголовков. Одна роль — одна ступень, чтобы «заголовок страницы»
     не оказывался пяти разных размеров на пяти разных страницах. */
  --h-hero:clamp(34px,3.5vw,50px);     /* первый экран главной */
  --h-section:clamp(26px,2.7vw,37px);  /* заголовок раздела */
  --h-page:clamp(22px,2.4vw,31px);     /* заголовок внутренней страницы */
  --h-card:22px;                        /* заголовок карточки */
  /* Иконки: служебная, обычная, крупная. Было девять размеров. */
  --ic-s:14px;--ic-m:17px;--ic-l:24px;
  /* Дымка на фоне: оттенок и сила зависят от темы. На бумаге тёплая и почти
     незаметная, на тёмном — холодная и ощутимая, иначе страница плоская. */
  --haze-rgb:179 50 25;
  --haze-strong:.055;--haze-mid:.035;--haze-soft:.02;

  --bg:#efe7d6;--bg-2:#eae1cd;--card:#f7f1e4;--card-2:#f3ecdd;--card-hi:#e5dcc7;
  --line:rgb(var(--ink-rgb) / .10);--line-2:rgb(var(--ink-rgb) / .22);
  --tq:#2e4a6b;--tq-2:#3a5b80;--tq-deep:#27405c;--grad:linear-gradient(105deg,#b33219,#992b15);
  --text:#221f1b;--muted:#6b645a;--muted-2:#6b6357;--amber:#8b5b16;--green:#276849;
  --danger:#b3261e;--copper:#b33219;--copper-deep:#992b15;--on-accent:#fff8f2;
  --radius:16px;--radius-lg:22px;--shadow:0 30px 70px -30px rgb(var(--shadow-rgb) / .22);
  /* Шрифты свои, лежат на этом же домене (см. fonts.css). Системные стеки
     оставлены запасными — на время загрузки и на случай, если файл не дошёл. */
  --font-sans:'Source Serif 4',Georgia,'Times New Roman',serif;
  --font-serif:'Playfair Display',Georgia,'Times New Roman',serif;
  /* Основной вес текста. Spectral в четырёхсотом на бумаге выглядит жидко,
     поэтому по умолчанию идёт пятисотый — заметно плотнее, но ещё не жирный. */
  --text-weight:420;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,'Roboto Mono','Noto Sans Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

/* ===== Полировка: общие мелочи ===== */
::selection{background:rgb(var(--accent-rgb) / .20);color:var(--text)}
[id]{scroll-margin-top:84px}
a:focus-visible,button:focus-visible,.opt:focus-visible,summary:focus-visible,.btn:focus-visible{
  outline:2px solid var(--tq);outline-offset:2px;border-radius:8px}
/* тонкий тематический скроллбар */
html{scrollbar-width:thin;scrollbar-color:rgb(var(--ink-rgb) / .28) transparent}
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:rgb(var(--ink-rgb) / .18);border-radius:10px;border:3px solid var(--bg)}
*::-webkit-scrollbar-thumb:hover{background:rgb(var(--ink-rgb) / .34)}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
body{font-family:var(--font-sans);font-weight:var(--text-weight);
  background:var(--bg);color:var(--text);
  line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
a{color:inherit;text-decoration:none}
.wrap{max-width:1080px;margin:0 auto;padding:0 26px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border-radius:11px;
  font-weight:600;font-size:14.5px;transition:.18s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-grad{background:var(--grad);color:var(--on-accent);box-shadow:0 10px 22px -12px rgb(var(--accent-rgb) / var(--glow))}
.btn-grad:hover{box-shadow:0 14px 28px -12px rgb(var(--accent-rgb) / calc(var(--glow) + .12))}
.btn-ghost{background:rgb(var(--ink-rgb) / .03);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}
.btn-ghost:hover{background:rgb(var(--ink-rgb) / .08)}
.btn-block{width:100%}
.btn-sm{padding:9px 16px;font-size:13px;border-radius:9px}

.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:16px}
.brand .mk{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:14px;font-weight:800;
  background:var(--grad);color:var(--on-accent)}

.topbar{position:sticky;top:0;z-index:60;backdrop-filter:blur(14px);
  background:linear-gradient(180deg,rgb(var(--paper-rgb) / .94),rgb(var(--paper-rgb) / .62));border-bottom:1px solid var(--line)}
.topbar-in{display:flex;align-items:center;gap:8px;height:64px;max-width:1180px;margin:0 auto;padding:0 26px}
.topbar .links{display:flex;gap:4px;margin-left:18px}
.topbar .links a{padding:8px 14px;border-radius:9px;color:var(--muted);font-size:14px;font-weight:500;cursor:pointer}
.topbar .links a:hover{color:var(--text);background:rgb(var(--ink-rgb) / .06)}
.topbar .right{margin-left:auto;display:flex;gap:10px;align-items:center}

.pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:30px}
.pill-solid{background:rgb(var(--blue-rgb) / .13);color:var(--tq);box-shadow:inset 0 0 0 1px rgb(var(--blue-rgb) / .3)}
.pill-out{background:rgb(var(--blue-rgb) / .07);color:var(--tq);box-shadow:inset 0 0 0 1px rgb(var(--blue-rgb) / .28)}
.sec-head{text-align:center;margin-bottom:40px}
.sec-head h1,.sec-head h2{font-size:38px;font-weight:800;letter-spacing:-.6px}
.sec-head p{color:var(--muted);margin:14px auto 0;font-size:15.5px;max-width:520px}
.hidden{display:none!important}

/* ===== Панель управления ===== */
.mwrap{max-width:840px;margin:0 auto;padding:34px 36px 60px}
.mh1{font-size:26px;font-weight:800}
.mh2{font-size:18px;font-weight:700}
.msub{color:var(--muted);font-size:15px;margin-top:6px}
.mback{display:inline-block;color:var(--tq);font-size:14.5px;margin-bottom:16px}
.mhead-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.mdim{color:var(--muted-2);font-size:13.5px}

.mstats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}
.mstat{background:var(--card);border-radius:var(--radius);padding:18px;box-shadow:inset 0 0 0 1px var(--line);text-align:center}
.mstat .n{font-size:28px;font-weight:800;color:var(--tq)}
.mstat .l{color:var(--muted);font-size:13.5px;margin-top:2px}

.mtiles{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:10px}
.mtile{display:block;background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:inset 0 0 0 1px var(--line);transition:.16s}
.mtile:hover{box-shadow:inset 0 0 0 1px var(--line-2);transform:translateY(-2px)}
.mtile b{font-size:16px;display:block}
.mtile span{color:var(--muted);font-size:14px;display:block;margin-top:6px}

/* формы управления */
.mform{margin-top:14px}
.mform .field{margin-bottom:18px}
.mform .field>label{display:block;font-size:14px;color:var(--muted);margin-bottom:7px;font-weight:500}
.mform input[type=text],.mform input[type=number],.mform input[type=url],.mform input[type=email],
.mform input[type=password],.mform textarea,.mform select{
  width:100%;padding:12px 14px;border-radius:11px;background:rgb(var(--ink-rgb) / .03);color:var(--text);
  font-size:15.5px;font-family:inherit;box-shadow:inset 0 0 0 1px var(--line);border:none;transition:.15s}
.mform textarea{min-height:150px;resize:vertical;line-height:1.6}
.mform input:focus,.mform textarea:focus,.mform select:focus{outline:none;box-shadow:inset 0 0 0 1.5px var(--tq-2)}
.mform select option{background:var(--card)}
.mform .field-check{display:flex;align-items:center;gap:10px}
.mform .field-check>label{margin:0;order:2;color:var(--text)}
.mform .field-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--tq)}
.mform input[type=file]{font-size:14px;color:var(--muted)}
.mhelp{display:block;color:var(--muted-2);font-size:13px;margin-top:6px}
.merr{color:var(--danger);font-size:13.5px;margin-top:6px}
.mactions{display:flex;gap:12px;margin-top:24px}

/* список модулей/уроков */
.mmod{background:var(--card);border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line);margin-bottom:14px;overflow:hidden}
.mmod-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.mmod-head b{font-size:16px}
.mlesson{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line);font-size:15px;flex-wrap:wrap}
.mlesson:last-child{border-bottom:none}
.mlesson .ltitle{font-weight:500}
.mrow-actions{margin-left:auto;display:flex;gap:14px;align-items:center}
.mlink{color:var(--tq);font-size:14px;cursor:pointer}
.mlink.danger{color:var(--danger)}
.mlink:hover{text-decoration:underline}
.mbadge.free{font-size:12px;font-weight:700;color:var(--green);background:rgb(var(--green-rgb) / .12);padding:3px 8px;border-radius:7px}
.mempty{text-align:center;padding:40px;background:var(--card);border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line);color:var(--muted)}
.mempty .btn{margin-top:14px}

/* управление коммерческим доступом */
.access-card{margin:22px 0;padding:20px;background:var(--card);border-radius:var(--radius);
  box-shadow:inset 0 0 0 1px var(--line)}
.access-card .mhead-row{margin-bottom:4px}
.access-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.access-form .field:last-of-type{grid-column:1/-1}
.access-form .btn{justify-self:start}
.access-history{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.access-history h3{font-size:15px;margin-bottom:10px}
.access-event{padding:10px 0;border-bottom:1px solid var(--line);display:grid;gap:2px}
.access-event:last-child{border-bottom:none}
.access-event b{font-size:14px}
.access-event span,.access-event p{font-size:13px;color:var(--muted)}

/* варианты ответа */
.mopts{display:grid;gap:10px;margin-top:12px}
.mopt{display:flex;align-items:center;gap:12px;background:rgb(var(--ink-rgb) / .03);border-radius:11px;padding:10px 12px;box-shadow:inset 0 0 0 1px var(--line);flex-wrap:wrap}
.mopt .mopt-text{flex:1;min-width:200px}
.mopt .mopt-text input{width:100%;padding:9px 12px;border-radius:9px;background:rgb(var(--ink-rgb) / .03);color:var(--text);box-shadow:inset 0 0 0 1px var(--line);border:none}
.mopt-correct{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--green);white-space:nowrap}
.mopt-correct input{accent-color:var(--green);width:17px;height:17px}
.mopt-order input{width:56px;padding:9px;border-radius:9px;background:rgb(var(--ink-rgb) / .03);color:var(--text);box-shadow:inset 0 0 0 1px var(--line);border:none}
.mopt-del{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--danger);white-space:nowrap}

.hero-wrap{position:relative;padding:36px 0 40px;
  background:radial-gradient(900px 520px at 86% 6%, rgb(var(--haze-rgb) / var(--haze-strong)), transparent 62%),
    radial-gradient(700px 500px at 10% 30%, rgb(var(--haze-rgb) / var(--haze-soft)), transparent 60%),var(--bg)}
.hero-top{display:flex;align-items:center;gap:12px;margin-bottom:30px}
.hero-top .lbl{font-size:11px;letter-spacing:1.5px;font-weight:700;color:var(--muted-2)}
.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:48px;align-items:center}
.hero h1{font-size:60px;line-height:1.02;font-weight:800;letter-spacing:-1.5px}
.hero h1 .ac{color:var(--tq)}
.hero .lead{color:var(--muted);font-size:16px;margin:26px 0 30px;max-width:430px;line-height:1.6}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap}
.hero-note{margin-top:18px;color:var(--muted-2);font-size:13px}
.hero-photo{position:relative;border-radius:var(--radius-lg);min-height:380px;
  background:radial-gradient(360px 260px at 50% 42%, rgb(var(--haze-rgb) / var(--haze-mid)), transparent 70%),linear-gradient(160deg,var(--card-2),var(--card-2));
  box-shadow:inset 0 0 0 1.5px var(--line-2), 0 26px 50px -34px rgb(var(--shadow-rgb) / .28);
  display:grid;place-items:center;transition:transform .25s ease}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;border-radius:var(--radius-lg)}
.hero-photo.empty img{display:none}
.hero-photo.empty::before{content:"";position:absolute;inset:14px;border-radius:18px;border:1.5px dashed rgb(var(--ink-rgb) / .22)}
.ph-fallback{display:none}
.hero-photo.empty .ph-fallback{display:grid;place-items:center;gap:12px;color:var(--muted-2);z-index:1;text-align:center}
.ph-fallback svg{width:66px;height:66px;color:rgb(var(--ink-rgb) / .4)}
.ph-fallback b{font-size:13px;font-weight:500;color:var(--muted)}
.ph-fallback span{max-width:210px;font-size:12px;color:var(--muted-2)}
.float{position:absolute;background:var(--card-hi);box-shadow:var(--shadow),inset 0 0 0 1px var(--line-2);
  border-radius:14px;padding:11px 14px;display:flex;align-items:center;gap:11px;z-index:2}
.float .sq{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:14px;
  background:rgb(var(--blue-rgb) / .14);color:var(--tq)}
.float b{display:block;font-size:13.5px}
.float span{color:var(--muted-2);font-size:11.5px}
.float.f1{top:34px;left:-16px}
.float.f2{bottom:40px;right:-14px}
.float{transition:transform .25s ease}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:46px}
.hstat{background:var(--card);border-radius:var(--radius);padding:22px 24px;box-shadow:inset 0 0 0 1px var(--line)}
.hstat .n{font-size:40px;font-weight:800;letter-spacing:-1px;
  background:linear-gradient(160deg,var(--text),var(--tq-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hstat .l{color:var(--muted);font-size:13px;margin-top:2px}
.hero.v2 .hero-grid{grid-template-columns:1fr;text-align:center;justify-items:center}
.hero.v2 .hero-actions{justify-content:center}
.hero.v2 .lead{margin-left:auto;margin-right:auto}
.hero.v2 .hero-photo{display:none}
.hero.v2 .v2-chips{display:flex}
.v2-chips{display:none;gap:12px;margin-top:34px;flex-wrap:wrap;justify-content:center}
.v2-chips .c{display:flex;align-items:center;gap:8px;padding:11px 17px;border-radius:11px;font-size:13.5px;
  background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.v2-chips .c i{color:var(--tq);font-style:normal}

.sec{padding-top:74px;padding-bottom:74px}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feat{background:var(--card);border-radius:var(--radius-lg);padding:26px;box-shadow:inset 0 0 0 1px var(--line);transition:.18s}
.feat:hover{box-shadow:inset 0 0 0 1px var(--line-2);transform:translateY(-3px)}
.feat .fi{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:21px;margin-bottom:18px;
  background:rgb(var(--blue-rgb) / .1);color:var(--tq)}
.feat h3{font-size:18px;font-weight:700}
.feat p{color:var(--muted);font-size:13.5px;margin-top:9px;line-height:1.55}
.feat .meta{margin-top:18px;display:flex;gap:16px;color:var(--muted-2);font-size:12.5px}
.feat .meta i{color:var(--tq);font-style:normal;margin-right:5px}
.price-banner{margin-top:22px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;
  background:linear-gradient(110deg,rgb(var(--card-rgb) / .9),rgb(var(--paper-rgb) / .7));border-radius:var(--radius-lg);
  padding:26px 30px;box-shadow:inset 0 0 0 1px var(--line-2)}
.price-banner h3{font-size:21px;font-weight:800}
.price-banner p{color:var(--muted);font-size:13.5px;margin-top:6px}
.price-banner .price{margin-left:auto;text-align:right}
.price-banner .price .old{color:var(--muted-2);text-decoration:line-through;font-size:16px}
.price-banner .price .now{font-size:34px;font-weight:800;color:var(--tq)}
.price-banner .price .now small{font-size:15px;color:var(--muted);font-weight:500}

.rev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.review{background:var(--card);border-radius:var(--radius-lg);padding:24px;box-shadow:inset 0 0 0 1px var(--line)}
.review .top{display:flex;align-items:center;gap:13px}
.avatar{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-weight:800;font-size:17px;color:var(--on-accent);background:var(--grad)}
.review .who b{font-size:15px}
.review .who span{color:var(--muted-2);font-size:12px;display:block}
.review .rate{margin-left:auto}
.review .rate .badge{font-size:11.5px;font-weight:700;color:var(--tq);background:rgb(var(--blue-rgb) / .12);padding:4px 10px;border-radius:8px;box-shadow:inset 0 0 0 1px rgb(var(--blue-rgb) / .25)}
.review .stars{color:var(--amber);font-size:13px;letter-spacing:2px;margin-top:14px}
.review p{color:var(--muted);font-size:14px;margin-top:10px;line-height:1.6}
.review .result{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;font-weight:600;color:var(--green);
  background:rgb(var(--green-rgb) / .1);padding:5px 12px;border-radius:20px}
.review .proof{margin-top:12px;border-radius:12px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}
.review .proof img{width:100%}

.cta-final{text-align:center;padding:30px 0 10px}
.cta-final h2{font-size:34px;font-weight:800;letter-spacing:-.5px}
.cta-final p{color:var(--muted);margin:12px auto 24px;max-width:440px;font-size:15px}
.landing-foot{border-top:1px solid var(--line);padding:30px 0;margin-top:30px}
.lf-in{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;color:var(--muted-2);font-size:13px}
.lf-in .brand{font-size:15px}

/* AUTH */
.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.auth-left{position:relative;padding:60px;display:flex;flex-direction:column;justify-content:center;
  background:radial-gradient(600px 400px at 20% 50%, rgb(var(--haze-rgb) / var(--haze-soft)), transparent 60%)}
.auth-back{position:absolute;top:28px;left:60px;color:var(--muted);font-size:13.5px;display:flex;align-items:center;gap:7px}
.auth-back:hover{color:var(--text)}
.auth-box{max-width:340px;width:100%}
.auth-box .brand{margin-bottom:26px}
.auth-box h1{font-size:30px;font-weight:800}
.auth-box .sub{color:var(--muted);font-size:14px;margin:8px 0 22px}
.auth-tabs{display:inline-flex;gap:4px;background:rgb(var(--ink-rgb) / .03);padding:4px;border-radius:11px;margin-bottom:24px;box-shadow:inset 0 0 0 1px var(--line)}
.auth-tabs a{padding:9px 22px;border-radius:8px;font-weight:600;font-size:13.5px;color:var(--muted)}
.auth-tabs a.active{background:var(--tq);color:var(--on-accent)}
.field{margin-bottom:16px}
.field label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:8px}
.input,.field input{width:100%;padding:13px 15px;border-radius:11px;background:rgb(var(--ink-rgb) / .025);color:var(--text);font-size:14px;box-shadow:inset 0 0 0 1px var(--line);transition:.15s;border:none}
.input::placeholder,.field input::placeholder{color:var(--muted-2)}
.input:focus,.field input:focus{outline:none;box-shadow:inset 0 0 0 1.5px var(--tq-2)}
.auth-box .demo-link,.auth-box .alt-link{display:block;text-align:center;color:var(--tq);font-size:13px;margin-top:16px}
.divider{display:flex;align-items:center;gap:12px;color:var(--muted-2);font-size:12px;margin:20px 0}
.divider::before,.divider::after{content:"";height:1px;flex:1;background:var(--line)}
.btn-vk{background:#0a2540;color:#cfe6ff;box-shadow:inset 0 0 0 1px rgba(120,180,255,.25)}
.btn-vk:hover{background:#0d2e4f}
.errorlist{list-style:none;color:var(--danger);font-size:12.5px;margin:0 0 10px}
.msg{padding:11px 15px;border-radius:10px;font-size:14px;margin-bottom:14px;background:rgb(var(--blue-rgb) / .08);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--text)}
.auth-right{position:relative;padding:60px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;
  background:radial-gradient(600px 460px at 88% 42%, rgb(var(--haze-rgb) / var(--haze-strong)), transparent 60%),linear-gradient(120deg,var(--bg),var(--card-2))}
.auth-promo{max-width:330px}
.auth-promo h2{font-size:28px;font-weight:800;line-height:1.2;text-align:right}
.auth-promo h2 .ac{color:var(--tq)}
.auth-promo .plist{margin-top:26px;display:grid;gap:12px}
.auth-promo .pl{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:12px;font-size:13.5px;font-weight:500;background:rgb(var(--paper-rgb) / .7);box-shadow:inset 0 0 0 1px var(--line-2);width:300px}
.auth-promo .pl .pi{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:13px;background:rgb(var(--blue-rgb) / .14);color:var(--tq);flex-shrink:0}

/* APP */
.app{display:grid;grid-template-columns:210px 1fr;min-height:100vh}
.aside{background:linear-gradient(180deg,var(--bg-2),var(--bg));border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:4px}
.aside .brand{margin:4px 6px 22px}
.nav-i{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:11px;color:var(--muted);font-size:15px;font-weight:500;text-align:left;width:100%}
.nav-i .ic{width:var(--ic-m);text-align:center}
.nav-i:hover{background:rgb(var(--ink-rgb) / .06);color:var(--text)}
.nav-i.active{background:rgb(var(--blue-rgb) / .12);color:var(--tq)}
.aside .grow{flex:1}
.aside .me{display:flex;align-items:center;gap:10px;padding:10px 8px;border-top:1px solid var(--line);margin-top:8px}
.aside .me .ava{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:var(--on-accent);background:var(--grad)}
.aside .me b{font-size:13px;display:block}
.aside .me span{font-size:11px;color:var(--muted-2)}
.app-main{overflow:auto}
.dash{padding:30px 40px}
.dash-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}
.dash-head h1{font-size:26px;font-weight:800}
.dash-head p{color:var(--muted);font-size:15px;margin-top:5px}
.dash-head .ava{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:var(--on-accent);background:var(--grad)}
img.ava{object-fit:cover}
.aside .me{text-decoration:none}
.dash-top{display:grid;grid-template-columns:1fr 1.4fr;gap:18px;margin-bottom:26px}
.panel{background:var(--card);border-radius:var(--radius-lg);padding:22px 24px;box-shadow:inset 0 0 0 1px var(--line)}
.panel .pt{font-size:16px;font-weight:700;margin-bottom:18px}
.prog-card{display:flex;align-items:center;gap:22px}
.ring{
  width:96px;height:96px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;
  /* Заливка по проценту жила только в кабинетной теме — в остальных кольцо
     оставалось пустым кругом с числом. Теперь она в базовом правиле. */
  background:conic-gradient(var(--copper) 0 var(--pct,0%), rgb(var(--ink-rgb) / .12) var(--pct,0%) 100%);
  /* Значение процента анимируется — само по себе оно не переходное. */
  transition:none;
}
.ring .inner{width:74px;height:74px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-size:22px;font-weight:800;color:var(--tq)}
.prog-card .pc-body .small{color:var(--muted);font-size:12.5px}
.prog-card .pc-body b{font-size:20px;font-weight:800;display:block;margin:2px 0 14px}
.ach-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ach{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:rgb(var(--ink-rgb) / .02);box-shadow:inset 0 0 0 1px var(--line)}
.ach .ai{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:17px;background:rgb(var(--blue-rgb) / .1)}
.ach b{font-size:15px;display:block}
.ach span{color:var(--muted-2);font-size:12.5px}
.modules h2{font-size:18px;font-weight:800;margin-bottom:18px}
.mod{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.mod:last-child{border-bottom:none}
.mod .mtop{display:flex;align-items:center;gap:11px;grid-column:1}
.mod .mtop b{font-size:15.5px}
.mod .mcount{grid-column:2;grid-row:1;color:var(--muted);font-size:14px;white-space:nowrap}
.mbadge{font-size:12px;font-weight:700;padding:3px 9px;border-radius:7px}
.mbadge.done{color:var(--green);background:rgb(var(--green-rgb) / .12)}
.mbadge.prog{color:var(--tq);background:rgb(var(--blue-rgb) / .12)}
.mbadge.start{color:var(--amber);background:rgb(var(--amber-rgb) / .12)}
.mbadge.lock{color:var(--muted-2);background:rgb(var(--ink-rgb) / .06)}
.mod .bar{grid-column:1 / -1;height:7px;border-radius:30px;background:rgb(var(--ink-rgb) / .08);overflow:hidden;margin-top:4px}
.mod .bar i{display:block;height:100%;border-radius:30px;background:var(--grad)}

.lesson-bar{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 40px;border-bottom:1px solid var(--line)}
.lesson-bar .crumb{font-size:12px;letter-spacing:.6px;color:var(--tq);font-weight:700;text-transform:uppercase}
.lesson-bar h1{font-size:22px;font-weight:800;margin-top:6px}
.lesson-body{display:grid;grid-template-columns:1fr 300px}
.lesson-main{padding:18px 24px 30px;border-right:1px solid var(--line)}
.player{position:relative;border-radius:14px;aspect-ratio:16/9;overflow:hidden;
  background:radial-gradient(420px 240px at 50% 46%, rgb(var(--haze-rgb) / var(--haze-mid)), transparent 68%),linear-gradient(160deg,var(--card-2),var(--bg));
  box-shadow:inset 0 0 0 1px var(--line);display:grid;place-items:center}
.player iframe,.player video{position:absolute;inset:0;width:100%;height:100%;border:none}
.player .tag{position:absolute;top:14px;left:14px;font-size:12px;color:var(--tq);background:rgb(var(--ink-rgb) / .35);padding:5px 12px;border-radius:20px;backdrop-filter:blur(6px);z-index:2}
.note{margin-top:24px;background:var(--card);border-radius:var(--radius-lg);padding:24px;box-shadow:inset 0 0 0 1px var(--line)}
.note h3{font-size:16px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.note p{color:var(--muted);font-size:14px;margin-bottom:10px;line-height:1.6}
.note mark{background:rgb(var(--blue-rgb) / .22);color:var(--tq);padding:1px 5px;border-radius:5px}
.note .remember{background:rgb(var(--blue-rgb) / .06);border-left:3px solid var(--tq);border-radius:0 12px 12px 0;padding:14px 18px;margin:14px 0;font-size:13.5px}
.note .remember b{color:var(--tq);display:block;margin-bottom:5px}
.note ul{margin:8px 0 0 18px;color:var(--muted);font-size:14px}
.note li{margin-bottom:6px}
.lesson-side{padding:18px 20px}
.lesson-side .sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.lesson-side .sh b{font-size:16px;font-weight:700}
.lesson-side .sh .pct{color:var(--tq);font-size:14px;font-weight:600}
.ll{display:flex;align-items:center;gap:12px;padding:11px;border-radius:11px;margin-bottom:6px;transition:.15s}
.ll:hover{background:rgb(var(--ink-rgb) / .05)}
.ll.active{background:rgb(var(--blue-rgb) / .1)}
.ll .st{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:13px;flex-shrink:0;background:rgb(var(--ink-rgb) / .08);color:var(--muted-2)}
.ll.done .st{background:rgb(var(--green-rgb) / .15);color:var(--green)}
.ll.active .st{background:var(--tq);color:var(--on-accent)}
.ll .lb{flex:1}
.ll .lb b{font-size:14.5px;font-weight:600;display:block}
.ll .lb span{color:var(--muted-2);font-size:12.5px}
.ll.active .lb b{color:var(--tq)}

/* письменные работы ученика и очередь преподавателя */
.lesson-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.written-page{max-width:760px;margin:0 auto;padding:36px 24px 64px}
.written-heading{margin-bottom:22px}
.written-heading .crumb{font-size:12px;letter-spacing:.6px;color:var(--tq);font-weight:700;text-transform:uppercase}
.written-heading h1{font-size:30px;margin:7px 0 5px}
.written-heading .sub{color:var(--muted);font-size:15px}
.written-card{background:var(--card);border-radius:var(--radius-lg);padding:22px;margin:14px 0;
  box-shadow:inset 0 0 0 1px var(--line)}
.written-card h2,.written-history h2{font-size:18px;margin-bottom:14px}
.written-prompt{border-left:3px solid var(--tq)}
.written-prompt p{color:var(--muted);line-height:1.7;margin-top:8px}
.written-kicker{display:block;color:var(--tq);font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}
.written-wait{margin:14px 0;padding:14px 16px;border-radius:12px;color:var(--muted);
  background:rgb(var(--blue-rgb) / .05);box-shadow:inset 0 0 0 1px var(--line)}
.written-history{margin-top:30px}
.written-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px;margin-bottom:15px;flex-wrap:wrap}
.written-status{display:inline-flex;padding:4px 9px;border-radius:8px;font-size:12px;font-weight:700;color:var(--tq);background:rgb(var(--blue-rgb) / .12)}
.written-status.status-needs_revision{color:var(--amber);background:rgb(var(--amber-rgb) / .12)}
.written-status.status-accepted{color:var(--green);background:rgb(var(--green-rgb) / .12)}
.written-text{color:var(--muted);line-height:1.72;overflow-wrap:anywhere}
.written-text p{margin-bottom:10px}
.written-file{display:inline-flex;margin-top:12px;color:var(--tq);font-size:14px;font-weight:600}
.written-file:hover{text-decoration:underline}
.written-feedback{margin-top:18px;padding:16px;border-radius:12px;background:rgb(var(--blue-rgb) / .06);border-left:3px solid var(--tq)}
.written-feedback b{display:block;font-size:14px;color:var(--tq);margin-bottom:7px}
.written-feedback p{font-size:14.5px;color:var(--muted);line-height:1.65}
.written-filters{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}
.written-filters a{padding:7px 11px;border-radius:9px;color:var(--muted);font-size:13px;background:rgb(var(--ink-rgb) / .03)}
.written-filters a.active{color:var(--tq);background:rgb(var(--blue-rgb) / .12)}
.written-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;margin-bottom:8px;
  border-radius:13px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);transition:.15s}
.written-row:hover{box-shadow:inset 0 0 0 1px var(--line-2);transform:translateY(-1px)}
.written-row-main,.written-row-side{display:flex;flex-direction:column;gap:3px}
.written-row-main b{font-size:15px}.written-row-main span,.written-row-side time{color:var(--muted);font-size:13px}
.written-row-side{align-items:flex-end;flex-shrink:0}
.written-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;color:var(--muted);font-size:13px}
.written-pagination a{color:var(--tq)}
.written-review-source{margin-top:22px}.written-review-form{margin-top:24px}
.reviews-context{max-width:520px;margin:-18px auto 34px;text-align:center;color:var(--muted);font-size:13px}

/* оформление покупки */
.checkout-wrap{max-width:960px;margin:0 auto;padding:54px 26px 76px}
.checkout-head{text-align:center;max-width:620px;margin:0 auto 28px}
.checkout-head h1{font-size:38px;line-height:1.15;margin:16px 0 9px}
.checkout-head p{color:var(--muted)}
.checkout-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:18px;align-items:start}
.checkout-card,.checkout-summary{background:var(--card);border-radius:var(--radius-lg);padding:24px;box-shadow:inset 0 0 0 1px var(--line)}
.checkout-card h2{font-size:20px;margin:13px 0 8px}.checkout-card>p{color:var(--muted);font-size:14px;line-height:1.65;margin-bottom:10px}
.checkout-card>p b{color:var(--text);overflow-wrap:anywhere}.checkout-card>.btn{margin-top:16px}
.checkout-form{margin-top:22px}.checkout-consent{display:flex;align-items:flex-start;gap:11px;padding:14px;border-radius:12px;background:rgb(var(--ink-rgb) / .025);font-size:13px;color:var(--muted);line-height:1.55;cursor:pointer}
.checkout-consent input{margin-top:3px;width:17px;height:17px;accent-color:var(--tq);flex-shrink:0}.checkout-consent a{color:var(--tq);text-decoration:underline}
.checkout-form .btn{margin-top:18px}.checkout-summary{display:grid;gap:0}
.checkout-summary>div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.checkout-summary>div:last-child{border-bottom:none}.checkout-summary span{color:var(--muted)}.checkout-summary b{text-align:right;font-weight:600}
.checkout-summary .checkout-total{padding-top:18px;font-size:15px}.checkout-summary .checkout-total b{color:var(--tq);font-size:21px}

/* заказы в панели */
.commerce-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:0 0 20px}
.commerce-strip a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-radius:var(--radius);background:linear-gradient(135deg,rgb(var(--blue-rgb) / .08),rgb(var(--blue-rgb) / .03));box-shadow:inset 0 0 0 1px var(--line)}
.commerce-strip span{color:var(--muted);font-size:13px}.commerce-strip b{color:var(--tq);font-size:18px}
.order-card,.order-confirm{padding:20px;background:var(--card);border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line);margin:18px 0}
.order-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.order-facts div{min-width:0}.order-facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);margin-bottom:4px}.order-facts dd{font-size:15px;overflow-wrap:anywhere}
.order-confirm{border-left:3px solid var(--amber)}.order-confirm h2,.order-history h2{font-size:17px;margin-bottom:7px}.order-confirm p{font-size:14px;color:var(--muted);line-height:1.6}
.order-confirm form{display:grid;gap:14px;margin-top:15px}.order-confirm label{font-size:14px;display:flex;gap:9px;align-items:flex-start}.order-confirm input{margin-top:2px;accent-color:var(--tq)}.order-confirm .btn{justify-self:start}
.order-success{padding:15px 18px;border-radius:12px;color:var(--green);background:rgb(var(--green-rgb) / .1);box-shadow:inset 0 0 0 1px rgb(var(--green-rgb) / .2)}
.order-history{margin-top:24px}

/* профиль ученика */
.profile-page{max-width:980px;margin:0 auto;padding:38px 36px 64px}
.profile-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}
.profile-kicker{font-size:12px;color:var(--tq);font-weight:800;letter-spacing:.8px;text-transform:uppercase}
.profile-heading h1{font-size:30px;margin:5px 0}.profile-heading p{color:var(--muted);font-size:15px}
.profile-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}
.profile-preview,.profile-card{background:var(--card);border-radius:var(--radius-lg);padding:24px;box-shadow:inset 0 0 0 1px var(--line)}
.profile-preview{text-align:center}.profile-avatar{width:108px;height:108px;border-radius:32px;object-fit:cover;margin:0 auto 17px;box-shadow:0 14px 28px -20px rgb(var(--shadow-rgb) / .22),inset 0 0 0 1px var(--line-2)}
.profile-avatar-fallback{display:grid;place-items:center;background:var(--grad);color:var(--on-accent);font-size:36px;font-weight:850}
.profile-preview h2{font-size:18px}.profile-preview>p{color:var(--muted);font-size:13.5px;margin:4px 0;overflow-wrap:anywhere}.profile-preview>span{display:inline-flex;margin-top:8px;padding:5px 10px;border-radius:8px;color:var(--tq);background:rgb(var(--blue-rgb) / .1);font-size:12px}
.profile-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.profile-mini-stats div{display:grid}.profile-mini-stats b{font-size:19px;color:var(--tq)}.profile-mini-stats span{font-size:12px;color:var(--muted)}
.profile-card h2{font-size:18px}.profile-card .mform{margin-top:20px}.profile-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.profile-field-grade,.profile-field-avatar{grid-column:1/-1}.profile-email{display:grid;gap:3px;padding:13px 15px;border-radius:11px;background:rgb(var(--ink-rgb) / .025);box-shadow:inset 0 0 0 1px var(--line)}
.profile-email span{font-size:12px;color:var(--muted)}.profile-email b{font-size:14px;overflow-wrap:anywhere}
.auth-steps{display:flex;align-items:center;gap:7px;margin:18px 0;color:var(--muted-2);font-size:10.5px}
.auth-steps span{display:flex;align-items:center;gap:5px;white-space:nowrap}.auth-steps b{width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:rgb(var(--ink-rgb) / .08);font-size:10px}
.auth-steps span.active{color:var(--tq)}.auth-steps span.active b{color:var(--on-accent);background:var(--tq)}.auth-steps i{height:1px;flex:1;background:var(--line)}

/* редактор курса */
.lesson-editor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.lesson-editor-head .mh1{margin-top:5px}
.editor-progress{display:flex;align-items:center;gap:9px;padding:14px 16px;margin:18px 0;border-radius:13px;background:rgb(var(--ink-rgb) / .02);box-shadow:inset 0 0 0 1px var(--line);color:var(--muted-2);font-size:12px}
.editor-progress span{display:flex;align-items:center;gap:6px;white-space:nowrap}.editor-progress b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgb(var(--ink-rgb) / .08)}
.editor-progress span.done{color:var(--green)}.editor-progress span.done b{background:rgb(var(--green-rgb) / .14)}.editor-progress i{height:1px;flex:1;background:var(--line)}
.lesson-editor-form{display:grid;gap:14px}.editor-card{padding:20px;background:var(--card);border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line)}
.editor-card-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px}.editor-card-title>span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;color:var(--tq);background:rgb(var(--blue-rgb) / .1);font-size:12px;font-weight:800}
.editor-card-title h2{font-size:16px}.editor-card-title p{color:var(--muted);font-size:13.5px;margin-top:2px}.editor-card .field{margin-bottom:16px}.editor-card .field:last-child{margin-bottom:0}
.editor-grid{display:grid;gap:0 14px}.editor-grid.compact{grid-template-columns:minmax(0,1fr) 120px}.editor-grid.video-grid{grid-template-columns:minmax(0,1fr) 130px}
.editor-checks{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor-checks .field{padding:13px;border-radius:11px;background:rgb(var(--ink-rgb) / .025);margin:0;flex-wrap:wrap}.editor-checks .mhelp{flex-basis:100%;margin-left:28px}
.editor-savebar{position:sticky;bottom:14px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border-radius:14px;background:rgb(var(--paper-rgb) / .92);backdrop-filter:blur(14px);box-shadow:0 16px 50px rgb(var(--shadow-rgb) / .35),inset 0 0 0 1px var(--line-2)}
.editor-savebar>span{color:var(--muted);font-size:13px}.editor-savebar>div{display:flex;gap:9px}
.homework-editor{margin-top:34px}.homework-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);margin-bottom:8px}
.homework-number{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:rgb(var(--blue-rgb) / .1);color:var(--tq);font-size:11px;font-weight:800}.homework-copy{display:grid;gap:2px;min-width:0}.homework-copy b{font-size:13.5px}.homework-copy span{font-size:11.5px;color:var(--muted)}
.editor-empty{display:grid;gap:5px;padding:24px;text-align:center;border:1px dashed var(--line-2);border-radius:var(--radius);color:var(--muted)}.editor-empty b{color:var(--text);font-size:15px}.editor-empty span{font-size:13px}
.formset-error{padding:11px 13px;border-radius:10px;background:rgb(var(--danger-rgb) / .08);margin-top:12px}.mopt-errors{flex-basis:100%}

.hw{max-width:680px;margin:0 auto;padding:40px 24px 60px}
.hw .crumb{font-size:12px;letter-spacing:.6px;color:var(--tq);font-weight:700;text-transform:uppercase}
.hw h1{font-size:30px;font-weight:800;margin:8px 0 8px}
.hw .sub{color:var(--muted);font-size:15px;margin-bottom:28px}
.q{background:var(--card);border-radius:var(--radius-lg);padding:22px;margin-bottom:16px;box-shadow:inset 0 0 0 1px var(--line)}
.q .qh{display:flex;gap:13px;align-items:center;margin-bottom:18px}
.q .qn{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:14px;flex-shrink:0;background:var(--grad);color:var(--on-accent)}
.q .qt{font-size:16px;font-weight:600}
.opts{display:grid;gap:9px}
.opt{display:flex;align-items:center;gap:13px;padding:13px 16px;border-radius:11px;cursor:pointer;font-size:15px;background:rgb(var(--ink-rgb) / .02);box-shadow:inset 0 0 0 1px var(--line);transition:.14s}
.opt:hover{box-shadow:inset 0 0 0 1px var(--line-2)}
.opt input{display:none}
.opt .mk{width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--muted-2);flex-shrink:0;transition:.14s}
.opt.sel{box-shadow:inset 0 0 0 1.5px var(--tq);background:rgb(var(--blue-rgb) / .05)}
.opt.sel .mk{box-shadow:inset 0 0 0 6px var(--tq)}
.opt.correct{box-shadow:inset 0 0 0 1.5px var(--green);background:rgb(var(--green-rgb) / .08)}
.opt.correct .mk{box-shadow:none;background:var(--green)}
.opt.wrong{box-shadow:inset 0 0 0 1.5px var(--danger);background:rgb(var(--danger-rgb) / .08)}
.opt.wrong .mk{box-shadow:none;background:var(--danger)}
.hw-foot{display:flex;align-items:center;justify-content:space-between;margin-top:22px}
.hw-foot .cnt{color:var(--muted);font-size:15px}
.hw-result{text-align:center;padding:36px;border-radius:var(--radius-lg);margin-bottom:20px;
  background:linear-gradient(135deg,rgb(var(--blue-rgb) / .14),rgb(var(--accent-rgb) / .05));box-shadow:inset 0 0 0 1px var(--line-2)}
.hw-result .score{font-size:48px;font-weight:800;color:var(--tq)}
.hw-result h2{font-size:22px;margin:6px 0}
.hw-result p{color:var(--muted)}
.hw-result .reward{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:9px 18px;border-radius:30px;background:rgb(var(--amber-rgb) / .12);color:var(--amber);font-weight:600;font-size:15px}

/* about teacher */
.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:center}
.about-photo{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;
  background:radial-gradient(300px 220px at 50% 40%, rgb(var(--haze-rgb) / var(--haze-mid)), transparent 70%),linear-gradient(160deg,var(--card-2),var(--card-2));
  box-shadow:inset 0 0 0 1.5px var(--line-2)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-photo.empty img{display:none}
.about-photo.empty::after{content:"Фото преподавателя";position:absolute;inset:0;display:grid;place-items:center;color:var(--muted-2);font-size:13px}
.about-badge{position:absolute;bottom:16px;left:16px;background:var(--card-hi);box-shadow:var(--shadow),inset 0 0 0 1px var(--line-2);
  border-radius:12px;padding:10px 16px}
.about-badge b{display:block;font-size:20px;font-weight:800;color:var(--tq)}
.about-badge span{color:var(--muted);font-size:12px}
.about-body h2{font-size:32px;font-weight:800;letter-spacing:-.5px;margin:16px 0 16px}
.about-body p{color:var(--muted);font-size:15px;line-height:1.7;margin-bottom:14px}
.about-points{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.about-points .ap{display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:11px;font-size:13.5px;
  background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.about-points .ap .ai{font-size:16px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.step{background:var(--card);border-radius:var(--radius-lg);padding:26px;box-shadow:inset 0 0 0 1px var(--line);position:relative}
.step .sn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:17px;
  background:var(--grad);color:var(--on-accent);margin-bottom:16px}
.step h3{font-size:16.5px;font-weight:700}
.step p{color:var(--muted);font-size:13.5px;margin-top:8px;line-height:1.55}

/* teaser */
.teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.teaser{display:block;background:linear-gradient(120deg,rgb(var(--card-rgb) / .9),rgb(var(--paper-rgb) / .6));border-radius:var(--radius-lg);
  padding:30px;box-shadow:inset 0 0 0 1px var(--line-2);transition:.18s}
.teaser:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--tq)}
.teaser .ti{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;font-size:24px;margin-bottom:16px;
  background:rgb(var(--blue-rgb) / .12)}
.teaser h3{font-size:20px;font-weight:800}
.teaser p{color:var(--muted);font-size:14px;margin:8px 0 16px;line-height:1.55}
.teaser .tlink{color:var(--tq);font-weight:600;font-size:14px}

/* faq */
.faq{max-width:760px;margin:0 auto;display:grid;gap:12px}
.faq details{background:var(--card);border-radius:14px;box-shadow:inset 0 0 0 1px var(--line);padding:0 20px}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 0;font-size:15.5px;font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary .fq{color:var(--tq);font-size:20px;font-weight:400;transition:.2s}
.faq details[open] summary .fq{transform:rotate(135deg)}
.faq details p{color:var(--muted);font-size:14px;line-height:1.6;padding:0 0 18px}
.faq details[open] p{animation:faqReveal .32s ease}
.faq details[open]{box-shadow:inset 0 0 0 1px var(--line-2)}
@keyframes faqReveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* program page */
.prog-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:36px}
.prog-stats .ps{background:var(--card);border-radius:var(--radius);padding:22px 24px;box-shadow:inset 0 0 0 1px var(--line);text-align:center}
.prog-stats .n{font-size:30px;font-weight:800;color:var(--tq)}
.prog-stats .l{color:var(--muted);font-size:13px;margin-top:4px}
.prog-modules{display:grid;gap:16px}
.prog-mod{background:var(--card);border-radius:var(--radius-lg);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.pm-head{display:flex;align-items:center;gap:18px;padding:22px 24px}
.pm-num{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-weight:800;font-size:18px;flex-shrink:0;
  background:rgb(var(--blue-rgb) / .12);color:var(--tq)}
.pm-title{flex:1}
.pm-title h3{font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px}
.pm-title p{color:var(--muted);font-size:13.5px;margin-top:4px}
.pm-count{color:var(--muted);font-size:13px;white-space:nowrap}
.pm-lessons{border-top:1px solid var(--line);padding:8px 24px 16px}
.pm-lesson{display:flex;align-items:center;gap:12px;padding:11px 0;font-size:14px;border-bottom:1px solid var(--line)}
.pm-lesson:last-child{border-bottom:none}
.pm-lesson .st{color:var(--tq);width:18px;text-align:center}
.pm-lesson .lt{flex:1}
.pm-lesson .ld{color:var(--muted-2);font-size:12.5px}
.pm-lesson .free{font-size:11px;font-weight:700;color:var(--green);background:rgb(var(--green-rgb) / .12);padding:3px 9px;border-radius:7px}

/* cookie bar */
.cookie-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:80;max-width:760px;margin:0 auto;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;
  background:var(--card-hi);box-shadow:var(--shadow),inset 0 0 0 1px var(--line-2);
  border-radius:14px;padding:14px 18px;font-size:13px;color:var(--muted)}
.cookie-bar[hidden]{display:none}   /* перебиваем display:flex, иначе атрибут hidden не работает */
.cookie-bar a{color:var(--tq)}
.cookie-bar .btn{flex-shrink:0}

/* consent checkboxes */
.check{display:flex;align-items:flex-start;gap:10px;margin-bottom:13px;font-size:12.5px;color:var(--muted);cursor:pointer;line-height:1.45}
.check input{width:17px;height:17px;margin-top:1px;accent-color:var(--tq);flex-shrink:0}
.check a{color:var(--tq)}

/* footer requisites */
.lf-legal{display:flex;gap:18px;flex-wrap:wrap}
.lf-legal a{color:var(--muted);font-size:13px}
.lf-legal a:hover{color:var(--tq)}
.lf-req{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted-2);font-size:12.5px;line-height:1.7}

/* legal document page */
.legal-doc{max-width:820px}
.legal-doc h1{font-size:30px;font-weight:800;letter-spacing:-.5px}
.legal-doc .upd{color:var(--muted-2);font-size:13px;margin:8px 0 26px}
.legal-body{color:var(--muted);font-size:14.5px;line-height:1.7}
.legal-body h2{color:var(--text);font-size:19px;font-weight:700;margin:26px 0 12px}
.legal-body h3{color:var(--text);font-size:16px;font-weight:700;margin:20px 0 10px}
.legal-body p{margin-bottom:12px}
.legal-body ul,.legal-body ol{margin:0 0 14px 22px}
.legal-body li{margin-bottom:6px}
.legal-body a{color:var(--tq)}

/* icons */
.ic{width:var(--ic-m);height:var(--ic-m);display:block;flex-shrink:0}
.feat .fi .ic{width:var(--ic-l);height:var(--ic-l)}
.teaser .ti .ic{width:var(--ic-l);height:var(--ic-l)}
.about-points .ap .ic{width:var(--ic-s);height:var(--ic-s)}


/* hover polish */
.step{transition:transform .18s, box-shadow .18s}
.step:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--line-2)}
.hstat{transition:transform .18s, box-shadow .18s}
.hstat:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--line-2)}
.review{transition:transform .18s, box-shadow .18s}
.review:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--line-2)}
.prog-mod{transition:box-shadow .18s}
.prog-mod:hover{box-shadow:inset 0 0 0 1px var(--line-2)}

/* burger */
.burger{display:none;flex-direction:column;gap:5px;padding:8px;border-radius:9px;margin-left:auto}
.burger span{width:22px;height:2px;background:var(--text);border-radius:2px;transition:.2s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none}

@media(max-width:920px){
  .topbar .links,.topbar .right{display:none}
  .burger{display:flex}
  .mobile-menu{display:flex;position:fixed;top:64px;left:0;right:0;bottom:0;z-index:55;
    background:rgb(var(--paper-rgb) / .98);backdrop-filter:blur(12px);padding:24px;flex-direction:column;gap:10px;
    opacity:0;pointer-events:none;transform:translateY(-12px);transition:.22s ease}
  .mobile-menu.open{opacity:1;pointer-events:auto;transform:none}
  .mobile-menu a:not(.btn){padding:15px 6px;font-size:17px;font-weight:600;color:var(--text);border-bottom:1px solid var(--line)}
  .mobile-menu .btn{margin-top:8px}
  .about{grid-template-columns:1fr;gap:24px}
  .steps{grid-template-columns:1fr 1fr}
  .teaser-grid{grid-template-columns:1fr}
  .prog-stats{grid-template-columns:repeat(2,1fr)}
  .pm-head{flex-wrap:wrap}
  .hero-grid{grid-template-columns:1fr;gap:30px}
  .hero h1{font-size:42px}
  .hero-photo{min-height:260px}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .feat-grid,.rev-grid{grid-template-columns:1fr}
  .auth{grid-template-columns:1fr}
  .auth-right{display:none}
  .app{grid-template-columns:1fr}
  .aside{flex-direction:row;flex-wrap:wrap;overflow:auto}
  .aside .grow,.aside .me{display:none}
  .dash-top{grid-template-columns:1fr}
  .lesson-body{grid-template-columns:1fr}
  .lesson-side{border-top:1px solid var(--line)}
  .ach-grid{grid-template-columns:1fr}
  .checkout-grid{grid-template-columns:1fr}
  .profile-layout{grid-template-columns:1fr}
  .public-editorial .profile-preview,.auth-editorial .profile-preview{display:grid;grid-template-columns:auto 1fr;text-align:left;gap:0 16px;align-items:center}
  .public-editorial .profile-avatar,.auth-editorial .profile-avatar{grid-row:1/5;margin:0;width:88px;height:88px;border-radius:26px}
  .profile-mini-stats{width:100%}
  .editor-savebar{position:static;align-items:flex-start;flex-direction:column}.editor-savebar>div{width:100%}.editor-savebar .btn{flex:1}
}

/* ===== Телефоны (основной сценарий использования) ===== */
@media(max-width:560px){
  .auth-left{padding:74px 20px 40px;justify-content:flex-start}
  .auth-back{top:22px;left:20px}
  .auth-box{max-width:none}
  .auth-tabs{display:flex;width:100%}
  .auth-tabs a{flex:1;text-align:center;padding-left:10px;padding-right:10px}
  .access-form{grid-template-columns:1fr}
  .access-form .field{grid-column:1}
  .lesson-bar{padding:18px;gap:14px;flex-direction:column}
  .lesson-actions{width:100%;justify-content:flex-start}
  .lesson-actions .btn{flex:1}
  .written-page{padding:26px 18px 50px}
  .written-card{padding:18px}
  .written-row{align-items:flex-start}
  .written-row-side{align-items:flex-end}
  .checkout-wrap{padding:36px 18px 54px}.checkout-head h1{font-size:30px}.checkout-card,.checkout-summary{padding:19px}
  .commerce-strip,.order-facts{grid-template-columns:1fr}
  .profile-page{padding:28px 18px 52px}.profile-name-grid{grid-template-columns:1fr}.profile-field-grade,.profile-field-avatar{grid-column:1}.profile-card,.profile-preview{padding:19px}.profile-card .mactions{flex-direction:column}.profile-card .mactions .btn{width:100%}
  .editor-progress{overflow-x:auto}.editor-progress i{min-width:18px}.editor-grid.compact,.editor-grid.video-grid,.editor-checks{grid-template-columns:1fr}.lesson-editor-head{align-items:flex-start;flex-direction:column}.homework-row{align-items:flex-start;flex-wrap:wrap}.homework-row .mrow-actions{width:100%;margin-left:39px}
  .wrap{padding:0 18px}
  .sec{padding-top:48px;padding-bottom:48px}
  .sec-head{margin-bottom:28px}
  .sec-head h1,.sec-head h2{font-size:25px;line-height:1.15}
  .sec-head p{font-size:14px}

  /* hero */
  .hero-wrap{padding:24px 0 32px}
  .hero h1{font-size:34px;letter-spacing:-.5px}
  .hero .lead{font-size:15px;margin:18px 0 22px}
  .hero-actions{gap:10px}
  .hero-actions .btn{width:100%}
  .hero-photo{min-height:230px}
  .hero-stats{gap:12px;margin-top:32px}
  .hstat{padding:16px 18px}
  .hstat .n{font-size:30px}
  .hstat .l{font-size:12px}

  /* о преподавателе — аккуратно */
  .about{gap:20px}
  .about-body h2{font-size:23px;line-height:1.2;margin:14px 0 10px}
  .about-body p{font-size:14px;line-height:1.65;margin-bottom:12px}
  .about-points{gap:8px;margin-top:16px}
  .about-points .ap{width:100%;padding:11px 14px;font-size:13px}
  .about-photo{aspect-ratio:3/2}
  .about-badge{padding:8px 13px}
  .about-badge b{font-size:17px}

  /* секции-карточки */
  .feat{padding:20px}
  .feat h3{font-size:16px}
  .step{padding:20px}
  .teaser{padding:22px}
  .teaser h3{font-size:18px}

  /* цена */
  .price-banner{padding:22px;gap:16px}
  .price-banner h3{font-size:18px}
  .price-banner .price{margin-left:0}
  .price-banner .now{font-size:30px}
  .price-banner .btn{width:100%}

  /* отзывы */
  .review{padding:20px}

  /* FAQ — крупнее тапы */
  .faq details{padding:0 16px}
  .faq summary{font-size:15px;padding:16px 0;gap:12px}

  /* финальный CTA */
  .cta-final h2{font-size:24px}
  .cta-final p{font-size:14px}
  .cta-final .btn{width:100%}

  /* подвал */
  .lf-legal{gap:12px}
  .legal-doc h1{font-size:24px}
}

/* ========================================================================== */
/* Главная «Дарэль»: редакторская тетрадь вместо универсальной сетки карточек */
/* ========================================================================== */
.landing-editorial{
  --bg:#efe7d6;
  --bg-2:#eae1cd;
  --card:#f7f1e4;
  --card-2:#f3ecdd;
  --card-hi:#e5dcc7;
  --line:rgb(var(--ink-rgb) / .11);
  --line-2:rgb(var(--ink-rgb) / .24);
  --tq:#2e4a6b;
  --tq-2:#3a5b80;
  --tq-deep:#27405c;
  --text:#221f1b;
  --muted:#6b645a;
  --muted-2:#6b6357;
  --copper:#b33219;
  background:
    radial-gradient(900px 520px at 88% 3%,rgb(var(--haze-rgb) / var(--haze-soft)),transparent 68%),
    var(--bg);
}
.landing-editorial main{overflow:hidden}
.landing-editorial .wrap{max-width:1160px;padding-left:34px;padding-right:34px}
.landing-editorial .topbar{
  background:rgb(var(--paper-rgb) / .88);
  border-bottom:1px solid rgb(var(--ink-rgb) / .1);
  backdrop-filter:blur(18px)
}
.landing-editorial .topbar-in{max-width:1240px;height:70px;padding:0 34px}
.landing-editorial .brand{font-weight:650;letter-spacing:.01em}
.landing-editorial .brand .mk{
  border-radius:2px;background:var(--copper);color:var(--card-hi);box-shadow:none
}
.landing-editorial .topbar .links{gap:20px;margin-left:34px}
.landing-editorial .topbar .links a{
  position:relative;padding:10px 0;border-radius:0;font-family:var(--font-mono);
  font-size:10.5px;letter-spacing:.12em;text-transform:uppercase
}
.landing-editorial .topbar .links a:hover{background:none;color:var(--text)}
.landing-editorial .topbar .links a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--copper)
}
.landing-editorial .btn{border-radius:3px;font-weight:650}
.landing-editorial .btn-grad{
  background:var(--copper);color:var(--on-accent);box-shadow:none
}
.landing-editorial .btn-grad:hover{background:var(--copper-deep);box-shadow:0 10px 22px -16px rgb(var(--accent-rgb) / var(--glow))}
.landing-editorial .btn-ghost{
  background:transparent;box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .25)
}
.landing-editorial .btn-ghost:hover{background:rgb(var(--ink-rgb) / .05)}

.landing-editorial .pill{
  position:relative;border-radius:0;padding:0 0 0 38px;background:none;box-shadow:none;
  font-family:var(--font-mono);font-size:10.5px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tq)
}
.landing-editorial .pill::before{
  content:"";position:absolute;left:0;top:50%;width:26px;height:1px;background:var(--copper)
}
.landing-editorial .hero-wrap{
  padding:72px 0 48px;background:
    linear-gradient(90deg,transparent calc(50% - 1px),rgb(var(--ink-rgb) / .025) 50%,transparent calc(50% + 1px)),
    radial-gradient(720px 480px at 84% 24%,rgb(var(--haze-rgb) / var(--haze-mid)),transparent 70%)
}
.landing-editorial .hero-grid{grid-template-columns:1.08fr .92fr;gap:76px}
.landing-editorial .hero h1{
  /* Заголовок набирается антиквой, а не гротеском. Golos — текстовый шрифт:
     на 74 пикселях жирным он выглядит как любой шаблонный лендинг. PT Serif
     в том же размере даёт то, ради чего его и ставили. */
  max-width:700px;font-family:var(--font-serif);
  font-size:var(--h-hero);line-height:1.14;font-weight:400;
  letter-spacing:-.005em;text-wrap:balance
}
.landing-editorial .hero h1 .ac{
  position:relative;display:inline-block;color:var(--copper);font-family:var(--font-serif);
  font-weight:400;font-style:italic;letter-spacing:-.012em
}
.landing-editorial .hero h1 .ac::after{
  content:"";position:absolute;left:3px;right:-5px;bottom:-3px;height:7px;
  border-top:1px solid var(--copper);border-radius:50%;transform:rotate(-1.5deg)
}
.landing-editorial .hero .lead{max-width:555px;margin:30px 0 34px;color:var(--muted);font-size:16px;line-height:1.75}
.landing-editorial .hero-actions{gap:10px}
.landing-editorial .hero-note{
  margin-top:20px;font-family:var(--font-mono);font-size:10.5px;
  letter-spacing:.02em;color:var(--muted-2)
}
.landing-editorial .hero-photo{
  min-height:420px;border-radius:2px;overflow:visible;background:
    linear-gradient(90deg,transparent 0 48px,rgb(var(--accent-rgb) / .34) 48px 49px,transparent 49px),
    repeating-linear-gradient(180deg,transparent 0 39px,rgb(var(--ink-rgb) / .07) 39px 40px),
    linear-gradient(145deg,var(--card-2),var(--bg-2));
  box-shadow:0 26px 54px -40px rgb(var(--shadow-rgb) / .30),inset 0 0 0 1px rgb(var(--ink-rgb) / .17)
}
.landing-editorial .hero-photo::after{
  content:"РУССКИЙ ЯЗЫК  /  ОГЭ";position:absolute;top:18px;right:20px;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.17em;color:var(--muted-2)
}
.landing-editorial .hero-photo.empty::before{
  content:"";position:absolute;inset:0;border:0;border-radius:0;background:
    linear-gradient(135deg,transparent 0 78%,rgb(var(--accent-rgb) / .06) 78% 100%)
}
.landing-editorial .hero-photo img{border-radius:2px;filter:saturate(.8) contrast(1.03)}
.landing-editorial .hero-photo .ph-fallback{align-content:center;justify-items:start;text-align:left;padding:68px 64px;gap:7px}
.landing-editorial .ph-fallback svg{display:none}
.landing-editorial .ph-fallback b{
  max-width:250px;font-family:var(--font-serif);font-size:31px;line-height:1.08;
  font-weight:400;color:var(--text)
}
.landing-editorial .ph-fallback span{max-width:230px;font-size:13px;line-height:1.6;color:var(--muted)}
.landing-editorial .float{
  border-radius:0;padding:11px 0;background:rgb(var(--paper-rgb) / .9);box-shadow:none;
  border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)
}
.landing-editorial .float .sq{
  width:36px;height:auto;border-radius:0;background:none;color:var(--copper);
  font-family:var(--font-mono);font-size:12px
}
.landing-editorial .float b{font-weight:600}
.landing-editorial .float.f1{top:76px;left:-26px;padding-right:18px}
.landing-editorial .float.f2{right:-18px;bottom:52px;padding-left:12px;padding-right:4px}
.landing-editorial .hero-stats{
  gap:0;margin-top:64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.landing-editorial .hstat{
  min-height:112px;border-radius:0;padding:23px 26px;background:none;box-shadow:none;border-right:1px solid var(--line)
}
.landing-editorial .hstat:last-child{border-right:0}
.landing-editorial .hstat:hover{transform:none;box-shadow:none;background:rgb(var(--ink-rgb) / .018)}
.landing-editorial .hstat .n{
  font-family:var(--font-serif);font-size:37px;font-weight:400;letter-spacing:-.005em;
  background:none;color:var(--text)
}
.landing-editorial .hstat .l{
  margin-top:4px;font-family:var(--font-mono);font-size:9.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)
}

.landing-editorial .sec{padding-top:92px;padding-bottom:92px}
.landing-editorial .section-folio{
  display:flex;align-items:center;gap:14px;margin-bottom:42px;font-family:var(--font-mono);
  font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)
}
.landing-editorial .section-folio span{color:var(--copper)}
.landing-editorial .section-folio i{height:1px;flex:1;background:var(--line)}
.landing-editorial .section-folio b{font-weight:500}
.landing-editorial .sec-head h1,.landing-editorial .sec-head h2{
  font-family:var(--font-serif);font-size:var(--h-section);
  line-height:1.18;font-weight:400;letter-spacing:-.005em
}
.landing-editorial .sec-head h2 em{
  font-family:var(--font-serif);font-weight:400;color:var(--tq);letter-spacing:-.005em
}
.landing-editorial .sec-head-split{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px 70px;
  align-items:end;text-align:left;margin-bottom:48px
}
.landing-editorial .sec-head-split .pill{grid-column:1/-1;justify-self:start}
.landing-editorial .sec-head-split p{margin:0 0 5px;max-width:390px;font-size:14px;line-height:1.75}

.landing-editorial .learning-path{
  position:relative;display:grid;grid-template-columns:1fr;gap:0;list-style:none;border-top:1px solid var(--line)
}
.landing-editorial .learning-path::before{
  content:"";position:absolute;left:42px;top:32px;bottom:32px;width:1px;background:rgb(var(--accent-rgb) / .30)
}
.landing-editorial .step{
  display:grid;grid-template-columns:84px minmax(0,1fr) 170px;align-items:center;gap:28px;
  min-height:132px;padding:25px 0;border-radius:0;border-bottom:1px solid var(--line);
  background:transparent;box-shadow:none
}
.landing-editorial .step:hover{transform:none;box-shadow:none;background:linear-gradient(90deg,rgb(var(--ink-rgb) / .025),transparent 70%)}
.landing-editorial .step .sn{
  position:relative;z-index:1;width:44px;height:28px;margin:0 0 0 20px;border-radius:0;
  background:var(--bg);color:var(--copper);font-family:var(--font-mono);
  font-size:11px;font-weight:500;letter-spacing:.08em
}
.landing-editorial .step h3{font-size:21px;font-weight:580;letter-spacing:-.02em}
.landing-editorial .step p{max-width:620px;margin-top:7px;font-size:14px;line-height:1.65}
.landing-editorial .step-note{
  justify-self:end;font-family:var(--font-mono);font-size:9.5px;
  letter-spacing:.1em;text-align:right;text-transform:uppercase;color:var(--muted-2)
}

.landing-editorial .proof-section{
  display:grid;grid-template-columns:minmax(270px,.7fr) minmax(0,1.45fr);gap:0 78px
}
.landing-editorial .proof-section .section-folio{grid-column:1/-1}
.landing-editorial .proof-head{text-align:left;margin:0;align-self:start}
.landing-editorial .proof-head .pill{margin-bottom:26px}
.landing-editorial .proof-head p{margin:24px 0 0;max-width:310px;font-size:14px;line-height:1.75}
.landing-editorial .proof-list{
  display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)
}
.landing-editorial .feat{
  position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 170px;align-items:start;gap:20px;
  min-height:154px;padding:32px 0;border-radius:0;border-bottom:1px solid var(--line);background:none;box-shadow:none
}
.landing-editorial .feat::before{
  content:attr(data-index);position:static;padding-top:3px;font-family:var(--font-mono);
  font-size:9px;letter-spacing:.12em;color:var(--copper)
}
.landing-editorial .feat:hover{transform:none;box-shadow:none;background:rgb(var(--ink-rgb) / .018)}
.landing-editorial .feat .fi{display:none}
.landing-editorial .feat h3{font-size:19px;font-weight:590;letter-spacing:-.02em}
.landing-editorial .feat p{max-width:520px;margin-top:9px;font-size:13.5px;line-height:1.68}
.landing-editorial .feat-proof{
  justify-self:end;padding-top:4px;font-family:var(--font-mono);font-size:9px;
  line-height:1.55;letter-spacing:.09em;text-align:right;text-transform:uppercase;color:var(--muted-2)
}

.landing-editorial .explore-section{padding-top:58px}
.landing-editorial .teaser-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.landing-editorial .teaser{
  position:relative;display:grid;grid-template-columns:58px minmax(200px,.65fr) minmax(240px,1fr) auto;
  align-items:center;gap:20px;min-height:128px;padding:28px 8px;border-radius:0;background:none;box-shadow:none
}
.landing-editorial .teaser+ .teaser{border-top:1px solid var(--line)}
.landing-editorial .teaser:hover{transform:none;box-shadow:none;background:rgb(var(--ink-rgb) / .025)}
.landing-editorial .teaser-index{
  font-family:var(--font-serif);font-size:28px;font-style:italic;color:var(--copper)
}
.landing-editorial .teaser .ti{display:none}
.landing-editorial .teaser h3{font-size:25px;font-weight:540;letter-spacing:-.025em}
.landing-editorial .teaser p{max-width:430px;margin:0;font-size:13.5px;line-height:1.7}
.landing-editorial .teaser .tlink{
  font-family:var(--font-mono);font-size:10px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--tq)
}

.landing-editorial .faq-section{
  display:grid;grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);gap:0 78px
}
.landing-editorial .faq-section .section-folio{grid-column:1/-1}
.landing-editorial .faq-section .sec-head{text-align:left;margin:0}
.landing-editorial .faq-section .sec-head .pill{margin-bottom:26px}
.landing-editorial .faq{max-width:none;width:100%;gap:0;border-top:1px solid var(--line)}
.landing-editorial .faq details{
  padding:0;border-radius:0;border-bottom:1px solid var(--line);background:none;box-shadow:none
}
.landing-editorial .faq details[open]{box-shadow:none}
.landing-editorial .faq summary{padding:22px 0;font-size:15px;font-weight:550}
.landing-editorial .faq details p{max-width:640px;padding:0 54px 22px 0;font-size:13.5px;line-height:1.75}
.landing-editorial .faq summary .fq{
  font-family:var(--font-serif);font-size:25px;font-weight:400;color:var(--copper)
}
.landing-editorial .final-section{padding-top:62px}
.landing-editorial .cta-final{
  display:grid;grid-template-columns:1fr auto;align-items:end;gap:18px 40px;text-align:left;
  padding:58px 0 14px;border-top:1px solid var(--line)
}
.landing-editorial .cta-final h2{
  font-family:var(--font-serif);font-size:var(--h-section);font-weight:400;
  font-style:italic;letter-spacing:-.045em
}
.landing-editorial .cta-final p{grid-column:1;margin:0;max-width:520px;font-size:14px;line-height:1.7}
.landing-editorial .cta-final .btn{grid-column:2;grid-row:1/3;align-self:center}
.landing-editorial .landing-foot{margin-top:58px;padding:34px 0 40px;border-top:1px solid var(--line)}
.landing-editorial .lf-req{font-family:var(--font-mono);font-size:9.5px;line-height:1.8;letter-spacing:.02em}

@media(max-width:920px){
  .landing-editorial .wrap{padding-left:26px;padding-right:26px}
  .landing-editorial .hero-wrap{padding-top:50px}
  .landing-editorial .hero-grid{grid-template-columns:1fr;gap:54px}
  .landing-editorial .hero h1{max-width:760px}
  .landing-editorial .hero-photo{min-height:340px}
  .landing-editorial .sec-head-split{grid-template-columns:1fr;gap:22px}
  .landing-editorial .sec-head-split .pill{grid-column:1}
  .landing-editorial .sec-head-split p{max-width:520px}
  .landing-editorial .proof-section,.landing-editorial .faq-section{grid-template-columns:1fr;gap:42px}
  .landing-editorial .proof-head p{max-width:560px}
  .landing-editorial .feat-grid{grid-template-columns:1fr}
  .landing-editorial .steps{grid-template-columns:1fr}
}

@media(max-width:560px){
  .landing-editorial .wrap{padding-left:20px;padding-right:20px}
  .landing-editorial .topbar-in{height:64px;padding:0 20px}
  .landing-editorial .hero-wrap{padding:36px 0 28px}
  .landing-editorial .hero-grid{gap:40px}
  .landing-editorial .hero h1{font-size:30px;line-height:1.16;letter-spacing:-.005em}
  .landing-editorial .hero .lead{margin:24px 0 28px;font-size:14.5px;line-height:1.7}
  .landing-editorial .hero-photo{min-height:280px}
  .landing-editorial .hero-photo .ph-fallback{padding:96px 32px 92px}
  .landing-editorial .ph-fallback b{font-size:25px}
  .landing-editorial .float{padding:9px 0;max-width:62vw}
  .landing-editorial .float.f1{left:14px;top:16px}
  .landing-editorial .float.f2{right:14px;bottom:16px}
  .landing-editorial .hero-stats{grid-template-columns:1fr 1fr;margin-top:44px}
  .landing-editorial .hstat{min-height:96px;padding:18px;border-bottom:1px solid var(--line)}
  .landing-editorial .hstat:nth-child(2){border-right:0}
  .landing-editorial .hstat:nth-child(n+3){border-bottom:0}
  .landing-editorial .hstat .n{font-size:31px}
  .landing-editorial .sec{padding-top:66px;padding-bottom:66px}
  .landing-editorial .section-folio{margin-bottom:30px}
  .landing-editorial .sec-head h1,.landing-editorial .sec-head h2{font-size:26px}
  .landing-editorial .sec-head-split{margin-bottom:34px}
  .landing-editorial .learning-path::before{left:27px}
  .landing-editorial .step{grid-template-columns:54px 1fr;gap:16px;min-height:0;padding:24px 0}
  .landing-editorial .step .sn{width:32px;margin-left:11px;font-size:10px}
  .landing-editorial .step h3{font-size:18px}
  .landing-editorial .step p{font-size:13px}
  .landing-editorial .step-note{grid-column:2;justify-self:start;margin-top:-10px;text-align:left}
  .landing-editorial .proof-list{grid-template-columns:1fr}
  .landing-editorial .feat{grid-template-columns:36px 1fr;min-height:0;padding:26px 0}
  .landing-editorial .feat-proof{grid-column:2;justify-self:start;padding:0;text-align:left}
  .landing-editorial .teaser-grid{grid-template-columns:1fr}
  .landing-editorial .teaser{min-height:0;padding:28px 0;grid-template-columns:36px 1fr;gap:10px 14px}
  .landing-editorial .teaser p,.landing-editorial .teaser .tlink{grid-column:2}
  .landing-editorial .faq-section{gap:34px}
  .landing-editorial .faq summary{font-size:14px}
  .landing-editorial .cta-final{grid-template-columns:1fr;padding-top:44px}
  .landing-editorial .cta-final h2{font-size:38px}
  .landing-editorial .cta-final p{grid-column:1}
  .landing-editorial .cta-final .btn{grid-column:1;grid-row:auto;width:100%;margin-top:8px}
}

/* Публичные внутренние страницы продолжают редакторский язык главной. */
.public-editorial{
  --bg:#efe7d6;--bg-2:#eae1cd;--card:#f7f1e4;--card-2:#f3ecdd;--card-hi:#e5dcc7;
  --line:rgb(var(--ink-rgb) / .11);--line-2:rgb(var(--ink-rgb) / .24);
  --tq:#2e4a6b;--tq-2:#3a5b80;--tq-deep:#27405c;--text:#221f1b;
  --muted:#6b645a;--muted-2:#6b6357;--copper:#b33219;
  background:radial-gradient(900px 500px at 90% 0,rgb(var(--haze-rgb) / var(--haze-soft)),transparent 70%),var(--bg)
}
.public-editorial:not(.landing-editorial) .wrap{max-width:1160px;padding-left:34px;padding-right:34px}
.public-editorial:not(.landing-editorial) .topbar{
  height:auto;background:rgb(var(--paper-rgb) / .88);border-bottom:1px solid rgb(var(--ink-rgb) / .1);backdrop-filter:blur(18px)
}
.public-editorial:not(.landing-editorial) .topbar-in{max-width:1240px;height:70px;padding:0 34px}
.public-editorial:not(.landing-editorial) .brand{font-weight:650;letter-spacing:.01em}
.public-editorial:not(.landing-editorial) .brand .mk{border-radius:2px;background:var(--copper);color:var(--card-hi);box-shadow:none}
.public-editorial:not(.landing-editorial) .topbar .links{gap:20px;margin-left:34px}
.public-editorial:not(.landing-editorial) .topbar .links a{
  position:relative;padding:10px 0;border-radius:0;font-family:var(--font-mono);
  font-size:10.5px;letter-spacing:.12em;text-transform:uppercase
}
.public-editorial:not(.landing-editorial) .topbar .links a:hover{background:none;color:var(--text)}
.public-editorial:not(.landing-editorial) .topbar .links a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--copper)
}
.public-editorial:not(.landing-editorial) .btn{border-radius:3px;font-weight:650}
.public-editorial:not(.landing-editorial) .btn-grad{background:var(--copper);color:var(--on-accent);box-shadow:none}
.public-editorial:not(.landing-editorial) .btn-grad:hover{background:var(--copper-deep);box-shadow:0 10px 22px -16px rgb(var(--accent-rgb) / var(--glow))}
.public-editorial:not(.landing-editorial) .btn-ghost{background:transparent;box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .25)}
.public-editorial:not(.landing-editorial) .pill{
  position:relative;border-radius:0;padding:0 0 0 38px;background:none;box-shadow:none;
  font-family:var(--font-mono);font-size:10.5px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--tq)
}
.public-editorial:not(.landing-editorial) .pill::before{
  content:"";position:absolute;left:0;top:50%;width:26px;height:1px;background:var(--copper)
}
.public-editorial:not(.landing-editorial) .sec{padding-top:86px;padding-bottom:100px}
.public-editorial:not(.landing-editorial) .sec-head{text-align:left;max-width:790px;margin-bottom:62px}
.public-editorial:not(.landing-editorial) .sec-head h1{
  margin-top:26px!important;font-size:var(--h-section);line-height:1.02;font-weight:520;letter-spacing:-.052em
}
.public-editorial:not(.landing-editorial) .sec-head p{max-width:600px;margin:23px 0 0;font-size:15px;line-height:1.75}

/* Программа: единый учебный реестр, а не стопка карточек. */
.public-editorial .prog-stats{
  grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:62px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.public-editorial .prog-stats .ps{
  min-height:108px;padding:22px 25px;border-radius:0;border-right:1px solid var(--line);background:none;box-shadow:none;text-align:left
}
.public-editorial .prog-stats .ps:last-child{border-right:0}
.public-editorial .prog-stats .n{font-family:var(--font-serif);font-size:34px;font-weight:400;color:var(--text)}
.public-editorial .prog-stats .l{
  margin-top:5px;font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase
}
.public-editorial .prog-modules{gap:0;border-top:1px solid var(--line)}
.public-editorial .prog-mod{
  border-radius:0;border-bottom:1px solid var(--line);overflow:visible;background:none;box-shadow:none
}
.public-editorial .prog-mod:hover{box-shadow:none;background:rgb(var(--ink-rgb) / .018)}
.public-editorial .pm-head{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:20px;padding:30px 4px}
.public-editorial .pm-num{
  width:auto;height:auto;border-radius:0;background:none;color:var(--copper);
  font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.08em
}
.public-editorial .pm-title h3{font-size:20px;font-weight:580;letter-spacing:-.02em}
.public-editorial .pm-title p{max-width:680px;margin-top:7px;font-size:13.5px;line-height:1.65}
.public-editorial .pm-count{
  font-family:var(--font-mono);font-size:9px;letter-spacing:.09em;text-transform:uppercase
}
.public-editorial .pm-lessons{padding:8px 0 16px 76px;border-top:1px solid var(--line)}
.public-editorial .pm-lesson{padding:13px 4px;border-bottom:1px solid rgb(var(--ink-rgb) / .07)}
.public-editorial .pm-lesson .st{color:var(--copper)}
.public-editorial .price-banner{
  padding:30px 4px!important;border-radius:0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);
  background:none;box-shadow:none
}
.public-editorial .price-banner h3{font-size:22px;font-weight:580}
.public-editorial .price-banner .price .now{font-family:var(--font-serif);font-size:36px;font-weight:400;color:var(--text)}

/* Отзывы: типографические свидетельства с общей сеткой. */
.public-editorial .reviews-context{max-width:none;margin:-36px 0 36px;text-align:left;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase}
.public-editorial .rev-grid{grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.public-editorial .review{
  min-height:280px;padding:36px;border-radius:0;border-bottom:1px solid var(--line);background:none;box-shadow:none
}
.public-editorial .review:nth-child(odd){border-right:1px solid var(--line)}
.public-editorial .review:hover{transform:none;box-shadow:none;background:rgb(var(--ink-rgb) / .018)}
.public-editorial .avatar{
  width:38px;height:38px;border-radius:0;background:none;color:var(--copper);
  font-family:var(--font-serif);font-size:25px;font-weight:400;font-style:italic
}
.public-editorial .review .who b{font-size:16px;font-weight:600}
.public-editorial .review .rate .badge{
  padding:0;border-radius:0;background:none;box-shadow:none;font-family:var(--font-mono);
  font-size:9px;letter-spacing:.08em;color:var(--muted-2)
}
.public-editorial .review .stars{margin-top:24px;color:var(--copper)}
.public-editorial .review p{font-size:14px;line-height:1.75}
.public-editorial .review .result{
  display:block;margin-top:18px;padding:0 0 0 13px;border-left:1px solid var(--copper);border-radius:0;
  background:none;color:var(--tq);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase
}
.public-editorial:not(.landing-editorial) .cta-final{
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px 40px;text-align:left;
  margin-top:58px!important;padding:50px 0 0;border-top:1px solid var(--line)
}
.public-editorial:not(.landing-editorial) .cta-final h2{
  font-family:var(--font-serif);font-size:var(--h-section);font-weight:400;font-style:italic;letter-spacing:-.005em
}
.public-editorial:not(.landing-editorial) .cta-final p{grid-column:1;margin:0;max-width:540px}
.public-editorial:not(.landing-editorial) .cta-final .btn{grid-column:2;grid-row:1/3}

/* Оформление: спокойная форма и спецификация заказа вместо двух панелей. */
.public-editorial .checkout-wrap{max-width:1040px;padding:84px 34px 110px}
.public-editorial .checkout-head{max-width:760px;margin:0 0 52px;text-align:left}
.public-editorial .checkout-head h1{font-size:var(--h-section);font-weight:520;letter-spacing:-.05em}
.public-editorial .checkout-head p{max-width:580px;margin-top:16px;line-height:1.7}
.public-editorial .checkout-grid{grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.public-editorial .checkout-card,.public-editorial .checkout-summary{padding:34px 36px;border-radius:0;background:none;box-shadow:none}
.public-editorial .checkout-summary{border-left:1px solid var(--line)}
.public-editorial .checkout-card h2{font-size:22px;font-weight:580}
.public-editorial .checkout-consent{border-radius:2px;background:rgb(var(--ink-rgb) / .035);box-shadow:inset 0 0 0 1px var(--line)}
.public-editorial .checkout-summary>div{padding:16px 0}
.public-editorial .checkout-summary .checkout-total b{font-family:var(--font-serif);font-weight:400;color:var(--text)}

/* Правовые документы остаются предельно спокойными и читаемыми. */
.public-editorial .legal-doc{max-width:900px}
.public-editorial .legal-doc h1{max-width:780px;font-size:var(--h-section);line-height:1.06;font-weight:520;letter-spacing:-.045em}
.public-editorial .legal-doc .upd{margin:18px 0 42px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase}
.public-editorial .legal-body{max-width:760px;font-size:15px;line-height:1.8}
.public-editorial .legal-body h2{margin:38px 0 15px;font-size:22px;font-weight:580}
.public-editorial:not(.landing-editorial) .landing-foot{margin-top:0;padding:34px 0 40px;border-top:1px solid var(--line)}
.public-editorial:not(.landing-editorial) .lf-req{font-family:var(--font-mono);font-size:9.5px;line-height:1.8}

@media(max-width:920px){
  .public-editorial:not(.landing-editorial) .wrap{padding-left:26px;padding-right:26px}
  .public-editorial .rev-grid{grid-template-columns:1fr}
  .public-editorial .review:nth-child(odd){border-right:0}
  .public-editorial .checkout-grid{grid-template-columns:1fr}
  .public-editorial .checkout-summary{border-left:0;border-top:1px solid var(--line)}
}

@media(max-width:560px){
  .public-editorial:not(.landing-editorial) .wrap{padding-left:20px;padding-right:20px}
  .public-editorial:not(.landing-editorial) .topbar-in{height:64px;padding:0 20px}
  .public-editorial:not(.landing-editorial) .sec{padding-top:58px;padding-bottom:72px}
  .public-editorial:not(.landing-editorial) .sec-head{margin-bottom:40px}
  .public-editorial:not(.landing-editorial) .sec-head h1{font-size:40px}
  .public-editorial .prog-stats{grid-template-columns:1fr 1fr;margin-bottom:42px}
  .public-editorial .prog-stats .ps{min-height:92px;padding:18px;border-bottom:1px solid var(--line)}
  .public-editorial .prog-stats .ps:nth-child(2){border-right:0}
  .public-editorial .pm-head{grid-template-columns:34px 1fr;gap:12px;padding:24px 0}
  .public-editorial .pm-count{grid-column:2}
  .public-editorial .pm-lessons{padding-left:46px}
  .public-editorial .review{min-height:0;padding:28px 0}
  .public-editorial:not(.landing-editorial) .cta-final{grid-template-columns:1fr;padding-top:40px}
  .public-editorial:not(.landing-editorial) .cta-final .btn{grid-column:1;grid-row:auto;width:100%}
  .public-editorial .checkout-wrap{padding:52px 20px 72px}
  .public-editorial .checkout-head{margin-bottom:36px}
  .public-editorial .checkout-head h1{font-size:38px}
  .public-editorial .checkout-card,.public-editorial .checkout-summary{padding:26px 0}
  .public-editorial .legal-doc h1{font-size:36px}
}

/* Вход и регистрация: тот же язык, но без маркетинговой сетки. */
.auth-editorial{
  --bg:#efe7d6;--bg-2:#eae1cd;--card:#f7f1e4;--card-hi:#e5dcc7;
  --line:rgb(var(--ink-rgb) / .11);--line-2:rgb(var(--ink-rgb) / .24);
  --tq:#2e4a6b;--tq-2:#3a5b80;--text:#221f1b;--muted:#6b645a;--muted-2:#6b6357;--copper:#b33219;
  background:var(--bg)
}
.auth-editorial .auth{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)}
.auth-editorial .auth-left{
  padding:78px;background:
    linear-gradient(90deg,transparent calc(100% - 1px),var(--line) calc(100% - 1px)),
    radial-gradient(600px 440px at 10% 42%,rgb(var(--haze-rgb) / var(--haze-soft)),transparent 70%)
}
.auth-editorial .auth-back{
  top:32px;left:78px;font-family:var(--font-mono);font-size:10px;
  letter-spacing:.09em;text-transform:uppercase
}
.auth-editorial .auth-box{max-width:420px}
.auth-editorial .brand{font-weight:650}
.auth-editorial .brand .mk{border-radius:2px;background:var(--copper);color:var(--card-hi);box-shadow:none}
.auth-editorial .auth-box .brand{margin-bottom:38px}
.auth-editorial .auth-box h1{font-size:var(--h-section);line-height:1.04;font-weight:520;letter-spacing:-.045em}
.auth-editorial .auth-box .sub{max-width:390px;margin:14px 0 30px;font-size:14px;line-height:1.65}
.auth-editorial .auth-tabs{
  display:flex;width:100%;gap:24px;margin-bottom:28px;padding:0;border-radius:0;border-bottom:1px solid var(--line);
  background:none;box-shadow:none
}
.auth-editorial .auth-tabs a{
  position:relative;padding:11px 0 12px;border-radius:0;background:none;color:var(--muted);
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase
}
.auth-editorial .auth-tabs a.active{background:none;color:var(--text)}
.auth-editorial .auth-tabs a.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--copper)}
.auth-editorial .field{margin-bottom:20px}
.auth-editorial .field label{
  margin-bottom:7px;font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase
}
.auth-editorial .input,.auth-editorial .field input{
  padding:13px 0;border-radius:0;border:0;border-bottom:1px solid var(--line-2);background:none;box-shadow:none;font-size:15px
}
.auth-editorial .input:focus,.auth-editorial .field input:focus{border-bottom-color:var(--copper);box-shadow:none}
.auth-editorial .btn{border-radius:3px;font-weight:650}
.auth-editorial .btn-grad{background:var(--copper);color:var(--on-accent);box-shadow:none}
.auth-editorial .auth-box .alt-link{text-align:left;color:var(--tq);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase}
.auth-editorial .check{padding:3px 0;font-size:12px;line-height:1.55}
.auth-editorial .check input{accent-color:var(--copper)}
.auth-editorial .auth-right{
  align-items:center;padding:72px;background:
    linear-gradient(90deg,transparent 0 52px,rgb(var(--accent-rgb) / .30) 52px 53px,transparent 53px),
    repeating-linear-gradient(180deg,transparent 0 43px,rgb(var(--ink-rgb) / .06) 43px 44px),
    linear-gradient(145deg,var(--card-2),var(--bg-2))
}
.auth-editorial .auth-promo{max-width:390px}
.auth-editorial .auth-promo h2{
  max-width:360px;text-align:left;font-size:44px;line-height:1.08;font-weight:500;letter-spacing:-.04em
}
.auth-editorial .auth-promo h2 .ac{font-family:var(--font-serif);font-weight:400;font-style:italic;color:var(--tq)}
.auth-editorial .auth-promo .plist{margin-top:42px;gap:0;border-top:1px solid var(--line)}
.auth-editorial .auth-promo .pl{
  width:100%;padding:16px 0;border-radius:0;border-bottom:1px solid var(--line);background:none;box-shadow:none;font-size:13px
}
.auth-editorial .auth-promo .pl .pi{
  width:34px;height:auto;border-radius:0;background:none;color:var(--copper);
  font-family:var(--font-mono);font-size:11px
}

@media(max-width:920px){
  .auth-editorial .auth{grid-template-columns:1fr}
  .auth-editorial .auth-left{padding:80px 42px 56px}
  .auth-editorial .auth-back{left:42px}
  .auth-editorial .auth-box{max-width:480px;margin:0 auto}
}

@media(max-width:560px){
  .auth-editorial .auth-left{padding:74px 20px 42px}
  .auth-editorial .auth-back{top:22px;left:20px}
  .auth-editorial .auth-box h1{font-size:38px}
  .auth-editorial .auth-tabs{gap:18px}
  .auth-editorial .auth-tabs a{flex:0 1 auto;padding-left:0;padding-right:0;text-align:left}
}

/* ========================================================================== */
/* Кабинет ученика и панель управления: тот же редакторский язык, что и сайт.  */
/* Раньше это была отдельная бирюзовая тема — два разных продукта в одном.     */
/* ========================================================================== */

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;padding:12px 18px;border-radius:0 0 3px 0;
  background:var(--copper,var(--copper));color:var(--on-accent);font-weight:650;font-size:13px
}
.skip-link:focus{left:0}

.console-editorial{
  --bg:#efe7d6;--bg-2:#eae1cd;--card:#f7f1e4;--card-2:#f3ecdd;--card-hi:#e5dcc7;
  --line:rgb(var(--ink-rgb) / .11);--line-2:rgb(var(--ink-rgb) / .24);
  --tq:#2e4a6b;--tq-2:#3a5b80;--tq-deep:#27405c;--text:#221f1b;
  --muted:#6b645a;--muted-2:#6b6357;--copper:#b33219;
  --green:#276849;--amber:#8b5b16;--danger:#b3261e;
  background:var(--bg);color:var(--text)
}

/* --- Общие типографические примитивы консоли --- */
.console-editorial .kicker{
  position:relative;display:inline-block;padding-left:38px;color:var(--tq);
  font-family:var(--font-mono);font-size:11.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase
}
.console-editorial .kicker::before{content:"";position:absolute;left:0;top:50%;width:26px;height:1px;background:var(--copper)}
.console-editorial .kicker-danger{color:var(--danger)}
.console-editorial .kicker-danger::before{background:var(--danger)}
.console-editorial .mono-note{
  display:inline-block;color:var(--muted-2);font-family:var(--font-mono);
  font-size:11px;letter-spacing:.1em;text-transform:uppercase
}
.console-editorial .empty-note{color:var(--muted);font-size:15px;line-height:1.7}
.console-editorial .crumb{
  color:var(--copper);font-family:var(--font-mono);font-size:11px;
  font-weight:500;letter-spacing:.13em;text-transform:uppercase
}

.console-editorial .btn{border-radius:3px;font-weight:650}
.console-editorial .btn-grad{background:var(--copper);color:var(--on-accent);box-shadow:none}
.console-editorial .btn-grad:hover{background:var(--copper-deep);box-shadow:0 10px 22px -16px rgb(var(--accent-rgb) / var(--glow))}
.console-editorial .btn-ghost{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2)}
.console-editorial .btn-ghost:hover{background:rgb(var(--ink-rgb) / .05)}
.console-editorial .btn-done{background:rgb(var(--green-rgb) / .12);color:var(--green);box-shadow:inset 0 0 0 1px rgb(var(--green-rgb) / .4)}
.console-editorial .btn-danger{background:var(--danger);color:var(--on-accent)}
.console-editorial .btn-danger:hover{background:var(--danger)}
.console-editorial .btn .ic{width:var(--ic-m);height:var(--ic-m)}
.console-editorial .pill{
  position:relative;border-radius:0;padding:0 0 0 38px;background:none;box-shadow:none;
  font-family:var(--font-mono);font-size:11.5px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--tq)
}
.console-editorial .pill::before{content:"";position:absolute;left:0;top:50%;width:26px;height:1px;background:var(--copper)}

/* --- Каркас: боковая колонка + рабочая область --- */
.console-editorial .app{grid-template-columns:246px minmax(0,1fr)}
.console-editorial .aside{
  position:sticky;top:0;height:100vh;gap:2px;padding:30px 20px 24px;
  background:linear-gradient(180deg,var(--bg-2),var(--bg));border-right:1px solid var(--line);overflow-y:auto
}
.console-editorial .console-brand{margin:0 0 30px;font-weight:650;letter-spacing:.01em}
.console-editorial .brand .mk{border-radius:2px;background:var(--copper);color:var(--card-hi);box-shadow:none}
.console-editorial .nav-group{
  margin:22px 0 8px;padding:0 2px;color:var(--muted-2);font-family:var(--font-mono);
  font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase
}
.console-editorial .nav-group:first-of-type{margin-top:4px}
.console-editorial .nav-i{
  position:relative;gap:11px;padding:9px 10px 9px 12px;border-radius:2px;color:var(--muted);
  font-size:14.5px;font-weight:500;transition:.14s
}
.console-editorial .nav-i .ic{width:var(--ic-m);height:var(--ic-m);color:var(--muted-2);transition:.14s}
.console-editorial .nav-i:hover{background:rgb(var(--ink-rgb) / .05);color:var(--text)}
.console-editorial .nav-i:hover .ic{color:var(--tq)}
.console-editorial .nav-i.active{background:rgb(var(--accent-rgb) / .07);color:var(--text)}
.console-editorial .nav-i.active .ic{color:var(--copper)}
.console-editorial .nav-i.active::before{
  content:"";position:absolute;left:0;top:7px;bottom:7px;width:2px;background:var(--copper)
}
.console-editorial .nav-i-accent{color:var(--tq)}
.console-editorial .nav-i-accent .ic{color:var(--tq)}
.console-editorial .nav-i-quiet{font-size:14px;color:var(--muted-2)}
.console-editorial .aside .me{
  gap:11px;margin-top:14px;padding:14px 4px 12px;border-top:1px solid var(--line);border-radius:0
}
.console-editorial .aside .me .ava{
  width:34px;height:34px;border-radius:2px;background:var(--copper);color:var(--card-hi);
  font-family:var(--font-serif);font-size:16px;font-weight:400
}
.console-editorial .aside .me-text{min-width:0}
.console-editorial .aside .me b{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.console-editorial .aside .me span{font-size:12px;color:var(--muted-2)}

.console-editorial .app-main{background:var(--bg)}
.console-editorial .console-brand-bar{display:none}
.console-editorial .console-messages{display:grid;gap:8px;margin:0 0 6px}
.console-editorial .msg{
  border-radius:2px;background:rgb(var(--ink-rgb) / .05);box-shadow:inset 0 0 0 1px var(--line-2);
  color:var(--text);font-size:14px
}
.console-editorial .msg.success{color:var(--green);box-shadow:inset 0 0 0 1px rgb(var(--green-rgb) / .35)}
.console-editorial .msg.error{color:var(--danger);box-shadow:inset 0 0 0 1px rgb(var(--danger-rgb) / .35)}

/* --- Обзор ученика --- */
.console-editorial .dash{max-width:1000px;padding:44px 44px 72px}
.console-editorial .dash-head{align-items:center;margin-bottom:36px}
.console-editorial .dash-head h1{
  margin-top:16px;font-family:var(--font-serif);font-size:var(--h-page);
  font-weight:400;letter-spacing:-.035em;line-height:1.06
}
.console-editorial .dash-head p{margin-top:12px;max-width:520px;font-size:15px;line-height:1.7;color:var(--muted)}
.console-editorial .dash-head .ava{
  width:52px;height:52px;border-radius:2px;background:var(--card-hi);color:var(--copper);
  box-shadow:inset 0 0 0 1px var(--line-2);font-family:var(--font-serif);font-size:22px;font-weight:400;flex-shrink:0
}

.console-editorial .access-notice{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;
  margin-bottom:30px;padding:20px 22px;border-radius:2px;
  background:rgb(var(--amber-rgb) / .05);box-shadow:inset 0 0 0 1px rgb(var(--amber-rgb) / .3)
}
.console-editorial .access-notice .ic{width:var(--ic-l);height:var(--ic-l);color:var(--amber)}
.console-editorial .access-notice b{font-size:16px}
.console-editorial .access-notice p{margin-top:4px;font-size:14px;color:var(--muted);line-height:1.6}

.console-editorial .dash-top{
  grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:0;margin-bottom:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.console-editorial .panel{
  border-radius:0;padding:30px 32px 32px;background:none;box-shadow:none;border-right:1px solid var(--line)
}
.console-editorial .panel:last-child{border-right:0}
.console-editorial .panel .kicker{margin-bottom:26px}
.console-editorial .prog-card{gap:26px}
.console-editorial .ring{
  width:104px;height:104px;
  background:conic-gradient(var(--copper) 0 var(--pct,0%), rgb(var(--ink-rgb) / .12) var(--pct,0%) 100%)
}
.console-editorial .ring .inner{
  width:84px;height:84px;display:flex;align-items:baseline;justify-content:center;gap:1px;
  background:var(--bg);color:var(--text);font-family:var(--font-serif);font-size:28px;font-weight:400
}
.console-editorial .ring .inner b{font-weight:400}
.console-editorial .ring .inner i{font-size:14px;font-style:normal;color:var(--muted-2)}
.console-editorial .prog-card .pc-body b{
  margin:0 0 8px;font-family:var(--font-serif);font-size:23px;font-weight:400;letter-spacing:-.005em
}
.console-editorial .prog-card .pc-body .small{display:block;max-width:250px;font-size:13.5px;line-height:1.6;color:var(--muted-2)}
.console-editorial .prog-card .pc-body .btn,.console-editorial .prog-card .pc-body .pill{margin-top:16px}

.console-editorial .ach-grid{gap:0;border-top:1px solid var(--line)}
.console-editorial .ach{
  padding:15px 2px;border-radius:0;border-bottom:1px solid var(--line);background:none;box-shadow:none
}
.console-editorial .ach:nth-child(odd){border-right:1px solid var(--line);padding-right:18px}
.console-editorial .ach:nth-child(even){padding-left:18px}
.console-editorial .ach .ai{
  width:30px;height:30px;border-radius:0;background:none;color:var(--copper);font-size:17px
}
.console-editorial .ach .ai .ic{width:var(--ic-m);height:var(--ic-m)}
/* Эмодзи-значки задаются в админке; приглушаем, чтобы они не спорили
   с монохромными иконками интерфейса. */
.console-editorial .ach .ai-emoji{font-size:16px;filter:saturate(.6) contrast(.95)}
.console-editorial .ach b{font-size:14.5px;font-weight:600}
.console-editorial .ach span{font-size:12px;color:var(--muted-2)}
.console-editorial .ach-muted{opacity:.5}

.console-editorial .modules{margin-top:52px}
.console-editorial .modules-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:6px}
.console-editorial .modules h2{
  margin:0;font-family:var(--font-serif);font-size:26px;font-weight:400;letter-spacing:-.005em
}
.console-editorial .mod{
  grid-template-columns:minmax(0,1fr) auto;gap:10px 20px;padding:22px 2px;
  border-bottom:1px solid var(--line);align-items:center
}
.console-editorial .modules .mod:first-of-type{border-top:1px solid var(--line)}
.console-editorial .mod .mtop{gap:14px;min-width:0}
.console-editorial .mod-num{
  color:var(--copper);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;flex-shrink:0
}
.console-editorial .mod .mtop b{font-size:16px;font-weight:580;letter-spacing:-.015em}
.console-editorial .mod .mcount{color:var(--muted-2);font-family:var(--font-mono);font-size:12px;letter-spacing:.06em}
.console-editorial .mbadge{
  position:relative;padding:0 0 0 13px;border-radius:0;background:none!important;
  font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase
}
.console-editorial .mbadge::before{content:"";position:absolute;left:0;top:50%;width:7px;height:1px;background:currentColor}
.console-editorial .mbadge.done{color:var(--green)}
.console-editorial .mbadge.prog{color:var(--copper)}
.console-editorial .mbadge.start{color:var(--amber)}
.console-editorial .mbadge.lock{color:var(--muted-2)}
.console-editorial .mbadge.free{color:var(--green)}
.console-editorial .mod .bar{height:2px;border-radius:0;background:rgb(var(--ink-rgb) / .12);margin-top:2px}
.console-editorial .mod .bar i{border-radius:0;background:var(--copper)}

/* --- Урок --- */
.console-editorial .lesson-bar{
  align-items:flex-end;gap:24px;padding:34px 44px 26px;border-bottom:1px solid var(--line);flex-wrap:wrap
}
.console-editorial .lesson-bar h1{
  margin-top:10px;font-family:var(--font-serif);font-size:var(--h-page);
  font-weight:400;letter-spacing:-.035em;line-height:1.08
}
.console-editorial .lesson-bar .mono-note{margin-top:10px}
.console-editorial .lesson-actions{gap:10px;align-items:center}
.console-editorial .lesson-body{grid-template-columns:minmax(0,1fr) 316px}
.console-editorial .lesson-main{padding:32px 44px 60px;border-right:1px solid var(--line)}
.console-editorial .player{
  border-radius:2px;background:linear-gradient(160deg,var(--bg-2),var(--bg-2));box-shadow:inset 0 0 0 1px var(--line)
}
.console-editorial .player-empty{
  display:grid;place-items:center;align-content:center;gap:10px;padding:40px;text-align:center
}
.console-editorial .player-empty .ic{width:var(--ic-l);height:var(--ic-l);color:var(--muted-2)}
.console-editorial .player-empty b{font-size:16px;font-weight:560;color:var(--text)}
.console-editorial .player-empty span{max-width:340px;font-size:14px;line-height:1.65;color:var(--muted-2)}
.console-editorial .note{
  margin-top:34px;padding:28px 0 0;border-radius:0;background:none;box-shadow:none;
  border-top:1px solid var(--line)
}
.console-editorial .note h3{
  gap:10px;margin-bottom:20px;font-family:var(--font-mono);font-size:11px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;color:var(--tq)
}
.console-editorial .note h3 .ic{width:var(--ic-s);height:var(--ic-s);color:var(--copper)}
.console-editorial .note p{margin-bottom:14px;font-size:16px;line-height:1.8;color:var(--muted)}
.console-editorial .note ul{margin:10px 0 14px 20px;font-size:16px;line-height:1.8;color:var(--muted)}
.console-editorial .note mark{background:rgb(var(--accent-rgb) / .2);color:var(--text);border-radius:2px}
.console-editorial .note .remember{
  margin:24px 0;padding:20px 24px;border-radius:0;border-left:1px solid var(--copper);
  background:rgb(var(--accent-rgb) / .05);font-size:15.5px;line-height:1.75
}
.console-editorial .note .remember b{
  margin-bottom:8px;color:var(--copper);font-family:var(--font-mono);font-size:10.5px;
  letter-spacing:.13em;text-transform:uppercase
}

.console-editorial .lesson-side{padding:32px 26px 60px}
.console-editorial .lesson-side .sh{margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.console-editorial .lesson-side .sh b{
  font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--tq)
}
.console-editorial .lesson-side .sh .pct{color:var(--copper);font-family:var(--font-mono);font-size:12px}
.console-editorial .ll{gap:14px;margin-bottom:0;padding:13px 10px 13px 2px;border-radius:2px}
.console-editorial .ll:hover{background:rgb(var(--ink-rgb) / .04)}
.console-editorial .ll.active{background:rgb(var(--accent-rgb) / .07)}
.console-editorial .ll.locked{opacity:.45;cursor:default}
.console-editorial .ll .st{
  width:22px;height:22px;border-radius:0;background:none;color:var(--muted-2);
  font-family:var(--font-mono);font-size:11.5px
}
.console-editorial .ll .st .ic{width:var(--ic-s);height:var(--ic-s)}
.console-editorial .ll.done .st{color:var(--green)}
.console-editorial .ll.active .st{background:none;color:var(--copper)}
.console-editorial .ll .lb b{font-size:14.5px;font-weight:550;line-height:1.4}
.console-editorial .ll .lb span{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted-2)}
.console-editorial .ll.active .lb b{color:var(--text)}

/* --- Домашка --- */
.console-editorial .hw{max-width:780px;padding:40px 44px 72px}
.console-editorial .hw h1{
  margin:12px 0 10px;font-family:var(--font-serif);font-size:var(--h-page);
  font-weight:400;letter-spacing:-.035em
}
.console-editorial .hw .sub{max-width:520px;font-size:15px;line-height:1.7;color:var(--muted)}
.console-editorial .hw-best{
  margin:24px 0 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-size:14px;color:var(--muted)
}
.console-editorial .hw-best b{color:var(--text)}
.console-editorial .hw-result{
  margin:30px 0 34px;padding:32px 0;border-radius:0;background:none;box-shadow:none;text-align:left;
  border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)
}
.console-editorial .hw-result .score{
  font-family:var(--font-serif);font-size:60px;font-weight:400;line-height:1;letter-spacing:-.005em;color:var(--copper)
}
.console-editorial .hw-result .score span{font-size:28px;color:var(--muted-2)}
.console-editorial .hw-result.is-perfect .score{color:var(--green)}
.console-editorial .hw-result.is-failed .score{color:var(--amber)}
.console-editorial .hw-result h2{margin-top:18px;font-size:21px;font-weight:580}
.console-editorial .hw-result p{margin-top:8px;max-width:460px;font-size:15px;line-height:1.7;color:var(--muted)}
.console-editorial .reward{
  display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:0 0 0 14px;border-radius:0;
  background:none;border-left:1px solid var(--copper);color:var(--copper);font-weight:500;
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase
}
.console-editorial .reward .ic{width:var(--ic-s);height:var(--ic-s)}
.console-editorial .reward-quiet{border-left-color:var(--line-2);color:var(--muted-2)}
.console-editorial .q{
  margin-bottom:0;padding:28px 0;border-radius:0;background:none;box-shadow:none;
  border-bottom:1px solid var(--line)
}
.console-editorial .qh{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.console-editorial .q .qn{
  width:auto;height:auto;border-radius:0;background:none;color:var(--copper);
  font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.08em;flex-shrink:0
}
.console-editorial .q .qt{flex:1;min-width:200px;font-size:16px;font-weight:550;line-height:1.5}
.console-editorial .q .qh{align-items:baseline;margin-bottom:0}
.console-editorial .qmark{font-family:var(--font-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase}
.console-editorial .qmark.ok{color:var(--green)}
.console-editorial .qmark.no{color:var(--danger)}
.console-editorial .opts{display:grid;gap:0;margin-top:16px;padding-left:26px}
.console-editorial .opt{
  position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:2px;
  background:none;box-shadow:inset 0 0 0 1px transparent;font-size:15.5px;cursor:pointer;transition:.14s
}
.console-editorial .opt:hover{background:rgb(var(--ink-rgb) / .04)}
.console-editorial .opt input{position:absolute;width:0;height:0;opacity:0}
.console-editorial .opt .mk{
  width:15px;height:15px;border-radius:50%;background:none;
  box-shadow:inset 0 0 0 1px var(--line-2);flex-shrink:0;transition:.14s
}
.console-editorial .opt.sel{background:rgb(var(--accent-rgb) / .06)}
.console-editorial .opt.sel .mk{box-shadow:inset 0 0 0 5px var(--copper)}
.console-editorial .opt.correct{background:rgb(var(--green-rgb) / .07);box-shadow:inset 0 0 0 1px rgb(var(--green-rgb) / .3)}
.console-editorial .opt.correct .mk{background:none;box-shadow:inset 0 0 0 5px var(--green)}
.console-editorial .opt.wrong{background:rgb(var(--danger-rgb) / .07);box-shadow:inset 0 0 0 1px rgb(var(--danger-rgb) / .3)}
.console-editorial .opt.wrong .mk{background:none;box-shadow:inset 0 0 0 5px var(--danger)}
.console-editorial .opt-tag{
  margin-left:auto;color:var(--muted-2);font-family:var(--font-mono);
  font-size:10px;letter-spacing:.1em;text-transform:uppercase
}
.console-editorial .qexpl{
  margin:16px 0 0 26px;padding-left:14px;border-left:1px solid var(--line-2);
  font-size:14px;line-height:1.7;color:var(--muted)
}
.console-editorial .hw-foot{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin-top:34px;flex-wrap:wrap}
.console-editorial .hw-foot .cnt{
  color:var(--muted-2);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase
}

/* --- Письменные работы и профиль в кабинете --- */
.console-editorial .mback{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:24px;color:var(--tq);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase
}
.console-editorial .mback .ic{width:var(--ic-s);height:var(--ic-s)}
.console-editorial .mback:hover{color:var(--text)}
.console-editorial .written-page{max-width:820px;margin:0;padding:40px 44px 72px}
.console-editorial .written-heading{margin-bottom:34px}
.console-editorial .written-heading h1{
  margin:12px 0 10px;font-family:var(--font-serif);font-size:var(--h-page);
  font-weight:400;letter-spacing:-.035em
}
.console-editorial .written-heading .sub{max-width:540px;font-size:15px;line-height:1.7;color:var(--muted)}
.console-editorial .written-card{
  margin:0 0 22px;padding:26px 0;border-radius:0;background:none;box-shadow:none;border-top:1px solid var(--line)
}
.console-editorial .written-card h2,.console-editorial .written-history h2{
  margin-bottom:18px;font-family:var(--font-serif);font-size:23px;font-weight:400;letter-spacing:-.005em
}
.console-editorial .written-prompt{padding-top:2px;padding-left:16px;border-left:1px solid var(--copper)}
.console-editorial .written-prompt p{color:var(--muted);font-size:16px;line-height:1.8}
.console-editorial .written-kicker{
  color:var(--copper);font-family:var(--font-mono);font-size:10.5px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase
}
.console-editorial .written-wait{
  display:flex;align-items:center;gap:12px;margin:22px 0;padding:16px 18px;border-radius:2px;
  background:rgb(var(--ink-rgb) / .04);box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);font-size:14.5px
}
.console-editorial .written-wait .ic{width:var(--ic-m);height:var(--ic-m);color:var(--amber)}
.console-editorial .written-status{
  position:relative;padding:0 0 0 13px;border-radius:0;background:none!important;
  font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase
}
.console-editorial .written-status::before{content:"";position:absolute;left:0;top:50%;width:7px;height:1px;background:currentColor}
.console-editorial .written-status.status-needs_revision{color:var(--amber)}
.console-editorial .written-status.status-accepted{color:var(--green)}
.console-editorial .written-meta time{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em}
.console-editorial .written-file{gap:8px;align-items:center;color:var(--copper)}
.console-editorial .written-file .ic{width:var(--ic-s);height:var(--ic-s)}
.console-editorial .written-feedback{
  margin-top:20px;padding:18px 0 0 16px;border-radius:0;background:none;border-left:1px solid var(--copper)
}
.console-editorial .written-feedback b{
  color:var(--copper);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase
}

.console-editorial .profile-page{max-width:940px;padding:44px 44px 72px}
.console-editorial .profile-heading{display:block;margin-bottom:34px}
.console-editorial .profile-heading h1{
  margin:16px 0 10px;font-family:var(--font-serif);font-size:var(--h-page);
  font-weight:400;letter-spacing:-.035em
}
.console-editorial .profile-heading p{max-width:520px;font-size:15px;line-height:1.7;color:var(--muted)}
.console-editorial .profile-layout{
  display:grid;grid-template-columns:264px minmax(0,1fr);gap:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.console-editorial .profile-preview,.console-editorial .profile-card{
  padding:32px;border-radius:0;background:none;box-shadow:none
}
.console-editorial .profile-preview{padding-left:0;border-right:1px solid var(--line);text-align:left}
.console-editorial .profile-card{padding-right:0}
.console-editorial .profile-card h2{
  margin-bottom:10px;font-family:var(--font-serif);font-size:var(--h-card);font-weight:400;letter-spacing:-.005em
}
.console-editorial .profile-avatar{
  width:88px;height:88px;margin:0 0 18px;display:grid;place-items:center;border-radius:2px;object-fit:cover
}
.console-editorial .profile-avatar-fallback{
  background:var(--card-hi);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--copper);
  font-family:var(--font-serif);font-size:36px
}
.console-editorial .profile-preview h2{font-size:18px;font-weight:580}
.console-editorial .profile-preview>p{margin-top:5px;font-size:14px;color:var(--muted);overflow-wrap:anywhere}
.console-editorial .profile-preview>span{
  display:inline-block;margin-top:10px;padding:0;border-radius:0;background:none;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)
}
.console-editorial .profile-mini-stats{
  display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:26px;border-top:1px solid var(--line)
}
.console-editorial .profile-mini-stats div{padding:16px 0}
.console-editorial .profile-mini-stats div:first-child{padding-right:14px;border-right:1px solid var(--line)}
.console-editorial .profile-mini-stats div:last-child{padding-left:16px}
.console-editorial .profile-mini-stats b{
  display:block;font-family:var(--font-serif);font-size:26px;font-weight:400;color:var(--text)
}
.console-editorial .profile-mini-stats span{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)
}
.console-editorial .profile-email{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin:22px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.console-editorial .profile-email span{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)
}
.console-editorial .profile-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.console-editorial .profile-field-grade,.console-editorial .profile-field-avatar{grid-column:1/-1}

/* --- Формы консоли --- */
.console-editorial .mform .field>label{
  margin-bottom:8px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)
}
.console-editorial .mform input[type=text],.console-editorial .mform input[type=number],
.console-editorial .mform input[type=url],.console-editorial .mform input[type=email],
.console-editorial .mform input[type=password],.console-editorial .mform input[type=search],
.console-editorial .mform input[type=datetime-local],
.console-editorial .mform textarea,.console-editorial .mform select,
.console-editorial .input,.console-editorial .field input{
  border-radius:2px;background:rgb(var(--ink-rgb) / .035);box-shadow:inset 0 0 0 1px var(--line);font-size:15.5px
}
.console-editorial .mform input:focus,.console-editorial .mform textarea:focus,
.console-editorial .mform select:focus,.console-editorial .input:focus,.console-editorial .field input:focus{
  box-shadow:inset 0 0 0 1px var(--copper)
}
.console-editorial .mform select option{background:var(--card)}
.console-editorial .mform input[type=checkbox]{accent-color:var(--copper)}
.console-editorial .mhelp{color:var(--muted-2);font-size:12.5px}
.console-editorial .merr{color:var(--danger)}

/* --- Панель управления --- */
.console-editorial .mwrap{max-width:980px;margin:0;padding:44px 44px 76px}
.console-editorial .mhead{margin-bottom:34px}
.console-editorial .mhead-row{align-items:flex-end;margin-bottom:28px}
.console-editorial .mh1{
  margin:16px 0 0;font-family:var(--font-serif);font-size:var(--h-page);
  font-weight:400;letter-spacing:-.038em;line-height:1.06
}
.console-editorial .mh2{font-family:var(--font-serif);font-size:var(--h-card);font-weight:400;letter-spacing:-.005em}
.console-editorial .msub{margin-top:12px;max-width:560px;font-size:15px;line-height:1.7;color:var(--muted)}
.console-editorial .mdim{color:var(--muted-2);font-family:var(--font-mono);font-size:11px;letter-spacing:.06em}
.console-editorial .mlink{color:var(--copper);font-size:13.5px}
.console-editorial .mlink.danger{color:var(--danger)}

.console-editorial .setup-list{
  margin:0 0 36px;border-top:1px solid rgb(var(--amber-rgb) / .3);border-bottom:1px solid rgb(var(--amber-rgb) / .3)
}
.console-editorial .setup-item{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;
  padding:18px 2px;border-bottom:1px solid var(--line);transition:.14s
}
.console-editorial .setup-item:last-child{border-bottom:0}
.console-editorial .setup-item:hover{background:rgb(var(--amber-rgb) / .04)}
.console-editorial .setup-item .ic{width:var(--ic-m);height:var(--ic-m);color:var(--amber)}
.console-editorial .setup-copy b{display:block;font-size:15.5px;font-weight:580}
.console-editorial .setup-copy span{display:block;margin-top:4px;font-size:13.5px;line-height:1.6;color:var(--muted)}
.console-editorial .setup-action{
  color:var(--copper);font-family:var(--font-mono);font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;white-space:nowrap
}

.console-editorial .mstats{
  grid-template-columns:repeat(4,1fr);gap:0;margin:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.console-editorial .mstat{
  min-height:104px;padding:22px 24px 22px 0;border-radius:0;background:none;box-shadow:none;
  text-align:left;border-right:1px solid var(--line)
}
.console-editorial .mstat:last-child{border-right:0}
.console-editorial .mstat:not(:first-child){padding-left:24px}
.console-editorial .mstat .n{font-family:var(--font-serif);font-size:34px;font-weight:400;color:var(--text)}
.console-editorial .mstat .l{
  margin-top:5px;font-family:var(--font-mono);font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted-2)
}

.console-editorial .commerce-strip{
  grid-template-columns:repeat(3,1fr);gap:0;margin:0 0 46px;border-bottom:1px solid var(--line)
}
.console-editorial .commerce-strip a{
  flex-direction:column;align-items:flex-start;gap:8px;padding:20px 24px 20px 0;border-radius:0;
  background:none;box-shadow:none;border-right:1px solid var(--line);transition:.14s
}
.console-editorial .commerce-strip a:last-child{border-right:0}
.console-editorial .commerce-strip a:not(:first-child){padding-left:24px}
.console-editorial .commerce-strip a:hover{background:rgb(var(--ink-rgb) / .02)}
.console-editorial .commerce-strip span{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-2)
}
.console-editorial .commerce-strip b{font-family:var(--font-serif);font-size:26px;font-weight:400;color:var(--copper)}

.console-editorial .mtiles{grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.console-editorial .mtile{
  display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:start;
  padding:24px 24px 24px 0;border-radius:0;border-bottom:1px solid var(--line);background:none;box-shadow:none
}
.console-editorial .mtile:nth-child(odd){border-right:1px solid var(--line)}
.console-editorial .mtile:nth-child(even){padding-left:24px}
.console-editorial .mtile:hover{transform:none;box-shadow:none;background:rgb(var(--ink-rgb) / .02)}
.console-editorial .mtile .ic{width:var(--ic-m);height:var(--ic-m);margin-top:3px;color:var(--copper)}
.console-editorial .mtile b{font-size:16px;font-weight:580}
.console-editorial .mtile span{grid-column:2;margin-top:2px;font-size:13.5px;line-height:1.6;color:var(--muted)}

.console-editorial .mmod{
  margin-bottom:0;border-radius:0;background:none;box-shadow:none;border-bottom:1px solid var(--line)
}
.console-editorial .mmod:first-of-type{border-top:1px solid var(--line)}
.console-editorial .mmod-head{padding:20px 2px;border-bottom:1px solid var(--line)}
.console-editorial .mmod-head b{font-size:16px;font-weight:580;letter-spacing:-.015em}
.console-editorial .mlesson{padding:13px 2px 13px 22px;border-bottom:1px solid rgb(var(--ink-rgb) / .06);font-size:15px}
.console-editorial .mlist{border-top:1px solid var(--line)}
.console-editorial .mlist .mlesson{padding-left:2px;border-bottom-color:var(--line)}
.console-editorial .mempty{
  padding:52px 20px;border-radius:0;background:none;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted)
}
.console-editorial .mfilter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.console-editorial .mfilter input[type=search]{
  flex:1;min-width:220px;max-width:380px;padding:11px 14px;border:0;border-radius:2px;
  background:rgb(var(--ink-rgb) / .035);box-shadow:inset 0 0 0 1px var(--line);color:var(--text);
  font-family:inherit;font-size:15px
}
.console-editorial .mfilter input[type=search]:focus{outline:none;box-shadow:inset 0 0 0 1px var(--copper)}
.console-editorial .written-filters{gap:22px;margin:0 0 26px;border-bottom:1px solid var(--line)}
.console-editorial .written-filters a{
  position:relative;padding:10px 0 12px;border-radius:0;background:none;color:var(--muted);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase
}
.console-editorial .written-filters a.active{background:none;color:var(--text)}
.console-editorial .written-filters a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--copper)
}

.console-editorial .student-list{border-top:1px solid var(--line)}
.console-editorial .student-row{
  display:grid;grid-template-columns:auto minmax(0,1.5fr) auto minmax(0,1.4fr) auto;
  align-items:center;gap:16px;padding:15px 2px;border-bottom:1px solid var(--line);transition:.14s
}
.console-editorial .student-row:hover{background:rgb(var(--ink-rgb) / .025)}
.console-editorial .student-ava{
  width:32px;height:32px;display:grid;place-items:center;border-radius:2px;
  background:var(--card-hi);box-shadow:inset 0 0 0 1px var(--line);color:var(--copper);
  font-family:var(--font-serif);font-size:16px
}
.console-editorial .student-id{min-width:0}
.console-editorial .student-id b{display:block;font-size:15px;font-weight:560}
.console-editorial .student-id>span{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--muted-2)
}
.console-editorial .student-metrics{
  display:flex;gap:18px;justify-content:flex-end;white-space:nowrap;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted-2)
}
.console-editorial .written-pagination{
  padding-top:18px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase
}
.console-editorial .written-pagination a{color:var(--copper)}
.console-editorial .written-row{
  margin-bottom:0;padding:16px 2px;border-radius:0;background:none;box-shadow:none;
  border-bottom:1px solid var(--line)
}
.console-editorial .written-row:hover{transform:none;box-shadow:none;background:rgb(var(--ink-rgb) / .025)}
.console-editorial .access-card,.console-editorial .order-card,.console-editorial .order-confirm{
  padding:26px 0;border-radius:0;background:none;box-shadow:none;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.console-editorial .order-confirm{border-left:0;border-top:1px solid rgb(var(--amber-rgb) / .35)}
.console-editorial .order-facts dt{font-family:var(--font-mono);font-size:10px;letter-spacing:.11em;color:var(--muted-2)}
.console-editorial .order-success{
  border-radius:2px;background:rgb(var(--green-rgb) / .07);box-shadow:inset 0 0 0 1px rgb(var(--green-rgb) / .28);color:var(--green)
}

/* --- Страница подтверждения 2FA --- */
.verify-editorial .verify-page{
  min-height:100vh;display:grid;place-items:center;padding:40px 24px;
  background:radial-gradient(600px 440px at 50% 30%,rgb(var(--haze-rgb) / var(--haze-soft)),transparent 70%)
}
.verify-editorial .auth-box{max-width:430px;width:100%}
.verify-editorial .auth-box h1{margin-top:26px;font-size:34px;line-height:1.08;font-weight:520;letter-spacing:-.04em}
.verify-editorial .verify-code{
  margin:16px 0;padding:14px 16px;border-radius:2px;background:rgb(var(--ink-rgb) / .05);
  box-shadow:inset 0 0 0 1px var(--line);color:var(--tq);font-family:var(--font-mono);
  font-size:12px;overflow-x:auto;white-space:pre
}
.verify-editorial .mform{margin-top:22px}
.verify-editorial .btn-block{margin-top:10px}

/* --- Правовые реквизиты внутри документа --- */
.legal-requisites{display:grid;gap:0;margin:18px 0 0;border-top:1px solid var(--line)}
.legal-requisites>div{
  display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;
  padding:12px 0;border-bottom:1px solid var(--line)
}
.legal-requisites dt{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)
}
.legal-requisites dd{margin:0;font-size:14.5px;overflow-wrap:anywhere}
.legal-missing{
  margin-top:14px;padding:14px 16px;border-radius:2px;font-size:13.5px;
  background:rgb(var(--amber-rgb) / .06);box-shadow:inset 0 0 0 1px rgb(var(--amber-rgb) / .28)
}
.lf-setup{display:inline-flex;align-items:center;gap:9px;color:var(--amber)}
.lf-setup .ic{width:var(--ic-s);height:var(--ic-s)}
.lf-copy{margin-top:10px}
.cookie-actions{display:flex;gap:10px;flex-shrink:0}

/* --- Редактор урока и домашки: переводим на редакторский язык --- */
.console-editorial .lesson-editor-head{align-items:flex-end;margin-bottom:26px}
.console-editorial .lesson-editor-head .mh1{margin-top:16px}
.console-editorial .editor-progress{
  gap:12px;margin:0 0 30px;padding:16px 0;border-radius:0;background:none;box-shadow:none;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase
}
.console-editorial .editor-progress span{gap:9px}
.console-editorial .editor-progress b{
  width:auto;height:auto;border-radius:0;background:none;color:var(--muted-2);
  font-family:var(--font-mono);font-size:10.5px;font-weight:500
}
.console-editorial .editor-progress span.done{color:var(--green)}
.console-editorial .editor-progress span.done b{background:none;color:var(--green)}
.console-editorial .editor-progress i{background:var(--line)}

.console-editorial .lesson-editor-form{gap:0}
.console-editorial .editor-card{
  padding:30px 0;border-radius:0;background:none;box-shadow:none;border-top:1px solid var(--line)
}
.console-editorial .editor-card-title{gap:16px;margin-bottom:22px}
.console-editorial .editor-card-title>span{
  width:auto;height:auto;border-radius:0;background:none;color:var(--copper);
  font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.08em
}
.console-editorial .editor-card-title h2{
  font-family:var(--font-serif);font-size:var(--h-card);font-weight:400;letter-spacing:-.005em
}
.console-editorial .editor-card-title p{margin-top:5px;font-size:14px;line-height:1.6;color:var(--muted)}
.console-editorial .editor-checks .field{
  padding:14px 16px;border-radius:2px;background:rgb(var(--ink-rgb) / .035);box-shadow:inset 0 0 0 1px var(--line)
}
.console-editorial .editor-savebar{
  bottom:0;padding:16px 0;border-radius:0;box-shadow:none;
  background:linear-gradient(180deg,rgb(var(--paper-rgb) / 0),rgb(var(--paper-rgb) / .96) 26%);
  border-top:1px solid var(--line-2)
}
.console-editorial .editor-savebar>span{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)
}
.console-editorial .editor-empty{
  padding:30px 20px;border-radius:0;border:1px dashed var(--line-2);color:var(--muted)
}

.console-editorial .homework-editor{margin-top:40px}
.console-editorial .homework-row{
  margin-bottom:0;padding:15px 2px;border-radius:0;background:none;box-shadow:none;
  border-bottom:1px solid var(--line)
}
.console-editorial .homework-editor .mhead-row+.homework-row,
.console-editorial .homework-row:first-of-type{border-top:1px solid var(--line)}

/* Варианты ответа в редакторе вопроса */
.console-editorial .mopt{
  border-radius:2px;background:rgb(var(--ink-rgb) / .03);box-shadow:inset 0 0 0 1px var(--line)
}
.console-editorial .mopt .mopt-text input,.console-editorial .mopt-order input{
  border-radius:2px;background:rgb(var(--ink-rgb) / .04);box-shadow:inset 0 0 0 1px var(--line)
}
.console-editorial .mopt-correct{color:var(--green)}
.console-editorial .mopt-correct input{accent-color:var(--green)}
.console-editorial .mopt-del{color:var(--danger)}
.console-editorial .mopt-del input{accent-color:var(--danger)}

/* --- Последняя правка консоли: остатки системного и бирюзового вида --- */

/* Нативная кнопка «Выберите файл» выпадала из оформления на всех формах
   с загрузкой (аватар, обложка, фото преподавателя, файл работы). */
.console-editorial .mform input[type=file]{
  width:100%;padding:11px 14px;border-radius:2px;background:rgb(var(--ink-rgb) / .035);
  box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);font-family:inherit;font-size:14px
}
.console-editorial .mform input[type=file]::file-selector-button{
  margin-right:14px;padding:7px 14px;border:0;border-radius:2px;background:rgb(var(--accent-rgb) / .14);
  color:var(--copper);font-family:var(--font-mono);font-size:11px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;cursor:pointer;transition:.14s
}
.console-editorial .mform input[type=file]::file-selector-button:hover{background:rgb(var(--accent-rgb) / .24)}
.console-editorial .mform input[type=file]:focus{outline:none;box-shadow:inset 0 0 0 1px var(--copper)}

/* Стрелка у select рисовалась системой и не совпадала с палитрой. */
.console-editorial .mform select{
  appearance:none;-webkit-appearance:none;padding-right:38px;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),
                   linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 19px) calc(50% + 1px),calc(100% - 14px) calc(50% + 1px);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat
}
/* Иконка календаря у datetime-local в тёмной теме была белым квадратом. */
.console-editorial .mform input[type=datetime-local]::-webkit-calendar-picker-indicator{
  filter:invert(.62) sepia(.2) saturate(.4);cursor:pointer
}

/* Заголовки блоков заказа остались рублеными, хотя везде уже антиква. */
.console-editorial .order-confirm h2,.console-editorial .order-history h2,
.console-editorial .access-card h2,.console-editorial .access-history h3{
  font-family:var(--font-serif);font-size:21px;font-weight:400;letter-spacing:-.005em;margin-bottom:10px
}
.console-editorial .access-history h3{font-size:17px}
.console-editorial .order-confirm input{accent-color:var(--copper)}
.console-editorial .order-confirm label{gap:11px;font-size:14.5px}
.console-editorial .order-facts dd{font-size:15.5px}

/* ========================= Планшет ========================= */
@media(max-width:1080px){
  .console-editorial .app{grid-template-columns:210px minmax(0,1fr)}
  .console-editorial .dash,.console-editorial .mwrap,.console-editorial .hw,
  .console-editorial .written-page,.console-editorial .profile-page{padding-left:30px;padding-right:30px}
  .console-editorial .lesson-bar{padding-left:30px;padding-right:30px}
  .console-editorial .lesson-main{padding-left:30px;padding-right:30px}
  .console-editorial .lesson-body{grid-template-columns:minmax(0,1fr) 268px}
  .console-editorial .dash-top{grid-template-columns:1fr}
  .console-editorial .panel{padding-left:0;padding-right:0;border-right:0;border-bottom:1px solid var(--line)}
  .console-editorial .panel:last-child{border-bottom:0}
  .console-editorial .mtiles{grid-template-columns:1fr}
  .console-editorial .mtile:nth-child(odd){border-right:0}
  .console-editorial .mtile:nth-child(even){padding-left:0}
  .console-editorial .profile-layout{grid-template-columns:1fr}
  .console-editorial .profile-preview{padding:26px 0;border-right:0;border-bottom:1px solid var(--line)}
  .console-editorial .profile-card{padding:26px 0}
}

/* ================== Телефон: колонка прячется в меню ================== */
@media(max-width:860px){
  .console-editorial .app{display:block;min-height:100vh}

  .console-editorial .console-brand-bar{
    position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:space-between;
    gap:12px;height:60px;padding:0 20px;background:rgb(var(--paper-rgb) / .94);backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line)
  }
  .console-editorial .console-brand-bar .brand{font-weight:650}
  .console-editorial .console-burger{
    display:flex;flex-direction:column;gap:5px;padding:9px;margin-right:-9px;border-radius:2px
  }
  .console-editorial .console-burger span{
    width:20px;height:1.5px;background:var(--text);border-radius:2px;transition:.2s
  }
  .console-editorial .console-burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .console-editorial .console-burger.open span:nth-child(2){opacity:0}
  .console-editorial .console-burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

  /* Раньше боковая колонка просто вставала в столбец и занимала первый экран. */
  .console-editorial .aside{
    position:fixed;top:60px;left:0;right:0;bottom:0;z-index:65;height:auto;
    flex-direction:column;padding:22px 20px 30px;border-right:0;overflow-y:auto;
    background:rgb(var(--paper-rgb) / .985);backdrop-filter:blur(14px);
    opacity:0;pointer-events:none;transform:translateY(-10px);transition:.2s ease
  }
  .console-editorial .aside.open{opacity:1;pointer-events:auto;transform:none}
  .console-editorial .console-brand{display:none}
  /* Старое правило .aside .grow,.aside .me{display:none} пряталo карточку
     пользователя на узких экранах — в выдвижном меню она как раз нужна. */
  .console-editorial .aside .grow{display:block;flex:1}
  .console-editorial .aside .me{display:flex}
  .console-editorial .nav-i{padding:13px 12px;font-size:16px}
  .console-editorial .nav-i .ic{width:var(--ic-m);height:var(--ic-m)}
  .console-editorial .aside .me{margin-top:18px}
  body.console-nav-open{overflow:hidden}

  .console-editorial .dash,.console-editorial .mwrap,.console-editorial .hw,
  .console-editorial .written-page,.console-editorial .profile-page{padding:28px 20px 56px}
  .console-editorial .dash-head{flex-direction:row;align-items:flex-start;gap:16px}
  .console-editorial .dash-head .ava{width:44px;height:44px;font-size:19px}
  .console-editorial .access-notice{grid-template-columns:auto minmax(0,1fr);gap:12px 14px}
  .console-editorial .access-notice .btn{grid-column:1/-1;width:100%;margin-top:4px}

  .console-editorial .lesson-bar{flex-direction:column;align-items:stretch;gap:18px;padding:26px 20px 22px}
  .console-editorial .lesson-actions{justify-content:flex-start;flex-wrap:wrap}
  .console-editorial .lesson-actions .btn,.console-editorial .lesson-actions form{flex:1 1 46%}
  .console-editorial .lesson-actions form .btn{width:100%}
  .console-editorial .lesson-body{grid-template-columns:1fr}
  .console-editorial .lesson-main{padding:24px 20px 40px;border-right:0}
  .console-editorial .lesson-side{padding:24px 20px 50px;border-top:1px solid var(--line)}

  .console-editorial .mstats{grid-template-columns:1fr 1fr}
  .console-editorial .mstat{min-height:88px;padding:18px 18px 18px 0;border-bottom:1px solid var(--line)}
  .console-editorial .mstat:nth-child(2n){padding-left:18px;border-right:0}
  .console-editorial .mstat:nth-child(n+3){border-bottom:0}
  .console-editorial .commerce-strip{grid-template-columns:1fr}
  .console-editorial .commerce-strip a{
    flex-direction:row;align-items:baseline;justify-content:space-between;
    padding:16px 0;border-right:0;border-bottom:1px solid var(--line)
  }
  .console-editorial .commerce-strip a:last-child{border-bottom:0}

  .console-editorial .ach-grid{grid-template-columns:1fr}
  .console-editorial .ach:nth-child(odd){padding-right:0;border-right:0}
  .console-editorial .ach:nth-child(even){padding-left:0}
  .console-editorial .mod{grid-template-columns:minmax(0,1fr) auto}
  .console-editorial .mod .mtop{flex-wrap:wrap;gap:8px 12px}

  .console-editorial .opts{padding-left:0}
  .console-editorial .qexpl{margin-left:0}
  .console-editorial .hw-result .score{font-size:48px}
  .console-editorial .hw-foot{flex-direction:column;align-items:stretch}
  .console-editorial .hw-foot .btn{width:100%}
  .console-editorial .hw-foot .cnt{text-align:center}

  .console-editorial .profile-name-grid{grid-template-columns:1fr}
  .console-editorial .mactions{flex-direction:column}
  .console-editorial .mactions .btn{width:100%}
  .console-editorial .setup-item{grid-template-columns:auto minmax(0,1fr);gap:10px 14px}
  .console-editorial .setup-action{grid-column:2}
  .console-editorial .student-row{grid-template-columns:auto minmax(0,1fr);gap:6px 14px}
  .console-editorial .student-metrics{grid-column:2;justify-content:flex-start;gap:14px}
  .console-editorial .student-row .mlink,.console-editorial .student-row .mbadge{grid-column:2}
  .legal-requisites>div{grid-template-columns:1fr;gap:4px}
}

/* ========================================================================== */
/* Телефон: редакторская микротипографика рассчитана на большой экран.        */
/* На 430px подписи в 9px нечитаемы, а ссылки в 20px высотой не попадаются    */
/* пальцем (Apple HIG — 44pt, Material — 48dp).                               */
/* ========================================================================== */
@media(max-width:560px){
  /* --- Подписи и служебные метки крупнее --- */
  .public-editorial:not(.landing-editorial) .pill,
  .landing-editorial .pill{font-size:11.5px;letter-spacing:.09em;padding-left:34px}
  .public-editorial:not(.landing-editorial) .pill::before,
  .landing-editorial .pill::before{width:22px}

  .landing-editorial .hero-note{font-size:12px;letter-spacing:.04em}
  .landing-editorial .hstat .l,
  .public-editorial .prog-stats .l{font-size:11px;letter-spacing:.07em;line-height:1.4}
  .landing-editorial .step-note,
  .landing-editorial .feat-proof,
  .landing-editorial .teaser-index{font-size:11px;letter-spacing:.07em}
  .landing-editorial .step .sn,
  .landing-editorial .feat::before,
  .public-editorial .pm-num{font-size:11px}
  .public-editorial .pm-count,
  .public-editorial .review .rate .badge,
  .public-editorial .review .result,
  .public-editorial .reviews-context{font-size:11px;letter-spacing:.06em}
  .public-editorial .legal-doc .upd,
  .public-editorial .checkout-summary>div{font-size:11.5px}
  .lf-req,.lf-copy{font-size:11.5px;line-height:1.7}
  .public-editorial:not(.landing-editorial) .lf-req{font-size:11.5px}
  .cookie-bar{font-size:12.5px}

  /* Колонтитул секции не должен упираться в края экрана. */
  .landing-editorial .section-folio{padding-left:20px;padding-right:20px}
  .landing-editorial .section-folio span,
  .landing-editorial .section-folio b{font-size:11.5px;letter-spacing:.09em}
  .landing-editorial .section-folio span{min-width:24px}

  /* --- Пальцем попасть: минимум 44px по высоте --- */
  .lf-legal{gap:0}
  .lf-legal a{
    display:flex;align-items:center;min-height:44px;
    font-size:14px;border-bottom:1px solid var(--line);width:100%
  }
  .lf-legal a:last-child{border-bottom:0}
  .landing-editorial .teaser .tlink,
  .public-editorial .teaser .tlink,
  .landing-editorial .tlink,
  .public-editorial .tlink{
    display:inline-flex;align-items:center;min-height:44px;font-size:12px;letter-spacing:.08em
  }
  .topbar .burger{min-width:44px;min-height:44px;justify-content:center;align-items:center}
  .brand{min-height:44px}
  .faq summary{min-height:52px}
  .mobile-menu a:not(.btn){min-height:52px;display:flex;align-items:center}

  /* --- Вертикальные пустоты: на телефоне 66–100px между блоками — это экран впустую --- */
  .landing-editorial .sec{padding-top:48px;padding-bottom:48px}
  .public-editorial:not(.landing-editorial) .sec{padding-top:40px;padding-bottom:52px}
  .landing-editorial .section-folio{margin-bottom:22px}
  .landing-editorial .sec-head,
  .landing-editorial .sec-head-split{margin-bottom:26px}
  .public-editorial:not(.landing-editorial) .sec-head{margin-bottom:30px}
  .landing-editorial .cta-final{padding-top:36px}

  /* --- Заголовки: 46px «Всё для ОГЭ по русскому» переполняло строку --- */
  .public-editorial:not(.landing-editorial) .sec-head h1{font-size:34px;letter-spacing:-.04em}
  .public-editorial .legal-doc h1{font-size:31px}
  .public-editorial .checkout-head h1{font-size:32px}
  .landing-editorial .hero h1{font-size:28px}

  /* Длинные слова в узкой колонке не должны вылезать за экран. */
  .public-editorial h1,.public-editorial h2,.public-editorial h3,
  .landing-editorial h1,.landing-editorial h2,.landing-editorial h3{overflow-wrap:break-word}
}

/* Кабинет и панель: длинные e-mail и ссылки не должны распирать экран. */
@media(max-width:860px){
  .console-editorial h1,.console-editorial h2,
  .console-editorial .dash-head h1,
  .console-editorial .student-id b,
  .console-editorial .profile-preview>p,
  .console-editorial .order-facts dd{overflow-wrap:anywhere}
}

/* Совсем узкие экраны (iPhone SE, 320–375px). */
@media(max-width:380px){
  .landing-editorial .hero h1{font-size:25px}
  .public-editorial:not(.landing-editorial) .sec-head h1{font-size:23px}
  .public-editorial .prog-stats{grid-template-columns:1fr}
  .public-editorial .prog-stats .ps{border-right:0}
  .landing-editorial .hero-stats{grid-template-columns:1fr}
  .landing-editorial .hstat{border-right:0}
}

/* Кабинет и панель на телефоне: подписи в 8.5-10px читаются только с лупой. */
@media(max-width:860px){
  .console-editorial .kicker{font-size:12.5px;letter-spacing:.1em;padding-left:34px}
  .console-editorial .kicker::before{width:22px}
  .console-editorial .nav-group{font-size:12px;letter-spacing:.13em}
  .console-editorial .mono-note,
  .console-editorial .crumb,
  .console-editorial .mdim,
  .console-editorial .mback,
  .console-editorial .hw-foot .cnt,
  .console-editorial .written-meta time,
  .console-editorial .lesson-side .sh b,
  .console-editorial .note h3{font-size:12.5px;letter-spacing:.08em}
  .console-editorial .mbadge,
  .console-editorial .written-status,
  .console-editorial .qmark,
  .console-editorial .opt-tag,
  .console-editorial .setup-action,
  .console-editorial .student-metrics,
  .console-editorial .written-pagination{font-size:12px;letter-spacing:.07em}
  .console-editorial .mod-num,
  .console-editorial .qn,
  .console-editorial .editor-card-title>span{font-size:12.5px}
  .console-editorial .mstat .l,
  .console-editorial .commerce-strip span,
  .console-editorial .profile-mini-stats span,
  .console-editorial .mform .field>label,
  .console-editorial .profile-email span,
  .console-editorial .written-kicker,
  .console-editorial .ll .lb span,
  .console-editorial .reward{font-size:12px;letter-spacing:.08em}
  .console-editorial .ach span{font-size:13px}
  .console-editorial .mhelp{font-size:13px}

  /* Пальцем попасть по пунктам меню и ссылкам списков. */
  .console-editorial .mback,
  .console-editorial .written-filters a,
  .console-editorial .mlink{display:inline-flex;align-items:center;min-height:44px}
  .console-editorial .student-row,
  .console-editorial .written-row,
  .console-editorial .mtile,
  .console-editorial .setup-item{min-height:56px}
  .console-editorial .ll{min-height:52px}
  .console-editorial .nav-group{font-size:12px}
  .console-editorial .ll .st{font-size:12px}
  .console-editorial .console-burger{min-width:44px;min-height:44px;justify-content:center;align-items:center}
  .console-editorial .btn-sm{min-height:44px;padding-top:0;padding-bottom:0}
}

/* ===== Тёмная тема ==========================================================
   Прежнее оформление сайта целиком: те же цвета, что были до перехода на
   светлую. Меняются только переменные — вёрстка, шрифты, отступы и скругления
   общие, поэтому при переключении страница не перестраивается, а перекрашивается.

   Тема ставится атрибутом data-theme на <html>. Если человек не выбирал сам,
   берётся системная настройка устройства.
   ========================================================================= */

[data-theme="light"]{color-scheme:light}

[data-theme="dark"]{
  color-scheme:dark;
  --ink-rgb:190 210 211;     /* на тёмном «чернилами» служит светлый холодный */
  --shadow-rgb:0 0 0;        /* …но тень остаётся чёрной, иначе это не тень */
  --paper-rgb:8 17 22;
  --card-rgb:14 25 31;
  --blue-rgb:47 227 212;
  --accent-rgb:199 135 95;
  --green-rgb:47 227 160;--amber-rgb:245 183 62;--danger-rgb:255 107 125;
  --glow:.6;                 /* на тёмном свечение работает и может быть сильнее */
  --haze-rgb:47 227 212;
  --haze-strong:.16;--haze-mid:.10;--haze-soft:.06;

  --bg:#070d12;--bg-2:#0a131a;--card:#0e1820;--card-2:#0c1620;--card-hi:#10202a;
  --tq:#2fe3d4;--tq-2:#16b8c9;--tq-deep:#0e8fa6;
  --grad:linear-gradient(105deg,#3ce6c8,#16b6d6);
  --text:#eaf4f6;--muted:#8497a1;--muted-2:#5d7079;--amber:#f5b73e;--green:#2fe3a0;
  --danger:#ff8a98;--copper:#c7875f;--copper-deep:#d89a70;--on-accent:#04201f;
  --shadow:0 30px 70px -30px rgb(0 0 0 / .85);
}

/* Публичные страницы и кабинет живут в своей, приглушённой версии тёмной темы:
   вместо неоновой бирюзы — пыльный сине-серый, вместо киновари — медь. */
[data-theme="dark"] .landing-editorial,
[data-theme="dark"] .public-editorial,
[data-theme="dark"] .auth-editorial,
[data-theme="dark"] .console-editorial{
  --bg:#081116;--bg-2:#0b151a;--card:#0e191f;--card-2:#101c22;--card-hi:#132128;
  --blue-rgb:169 200 206;
  --haze-rgb:111 153 166;
  --haze-strong:.14;--haze-mid:.09;--haze-soft:.05;
  --tq:#a9c8ce;--tq-2:#8fb2bd;--tq-deep:#6f99a6;
  --text:#e6ece9;--muted:#91a3a8;--muted-2:#61747a;
  --copper:#c7875f;--copper-deep:#d89a70;--on-accent:#151b1c;
}
[data-theme="dark"] .console-editorial{
  --green:#7fb69a;--amber:#d8ad6a;--danger:#d98a8a;
}

/* --- Переключатель оформления ------------------------------------------- */
.theme-toggle{
  display:inline-grid;place-items:center;width:34px;height:34px;flex:none;
  background:transparent;border:0;cursor:pointer;color:var(--muted);
  border-radius:9px;box-shadow:inset 0 0 0 1px var(--line);transition:.16s;
}
.theme-toggle:hover{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}
.theme-toggle svg{display:block}
/* Показываем то, во что переключимся: днём — луну, ночью — солнце. */
.theme-toggle .theme-sun{display:none}
[data-theme="dark"] .theme-toggle .theme-sun{display:block}
[data-theme="dark"] .theme-toggle .theme-moon{display:none}
@media (max-width:860px){ .theme-toggle{display:none} }
/* Вариант для мобильного меню: там кнопки идут списком во всю ширину. */
.theme-toggle-wide .theme-label-light{display:none}
[data-theme="dark"] .theme-toggle-wide .theme-label-light{display:inline}
[data-theme="dark"] .theme-toggle-wide .theme-label-dark{display:none}

/* --- Появление секций при прокрутке ---------------------------------------
   Класс .reveal был расставлен по всему сайту (26 мест), но кода под него не
   существовало — эффекта не было вовсе. Движение короткое и в одну сторону:
   секция всплывает на десяток пикселей, без масштабирования и поворотов.

   Важное: начальное состояние ставится скриптом (класс .reveal-armed). Если
   скрипт не выполнился, содержимое остаётся видимым, а не пропадает навсегда.
   ------------------------------------------------------------------------ */
.reveal-armed .reveal{
  opacity:0;transform:translateY(14px);
  transition:opacity .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1);
}
.reveal-armed .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal-armed .reveal{opacity:1;transform:none;transition:none}
}

/* --- Смена оформления ------------------------------------------------------
   Плавность только на цвете: если разрешить переход всему подряд, при
   переключении поедут тени и рамки, и страница будет «дышать».
   ------------------------------------------------------------------------ */
.theme-shift,.theme-shift *{
  transition:background-color .28s ease,color .28s ease,border-color .28s ease !important;
}
@media (prefers-reduced-motion:reduce){
  .theme-shift,.theme-shift *{transition:none !important}
}

/* --- Появление первого экрана ----------------------------------------------
   Элементы въезжают по очереди, а не все разом: сначала подпись, потом
   заголовок, затем текст и кнопки. Один короткий проход при загрузке — этого
   достаточно, чтобы страница ощущалась собранной, а не выпадала целиком.
   ------------------------------------------------------------------------ */
@keyframes heroIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.hero-armed .hero .pill,
.hero-armed .hero h1,
.hero-armed .hero .lead,
.hero-armed .hero .hero-actions,
.hero-armed .hero .hero-note{
  animation:heroIn .55s cubic-bezier(.22,.61,.36,1) both;
}
.hero-armed .hero .pill{animation-delay:.02s}
.hero-armed .hero h1{animation-delay:.10s}
.hero-armed .hero .lead{animation-delay:.18s}
.hero-armed .hero .hero-actions{animation-delay:.26s}
.hero-armed .hero .hero-note{animation-delay:.32s}

@media (prefers-reduced-motion:reduce){
  .hero-armed .hero *{animation:none !important}
}

/* --- Заголовочная антиква --------------------------------------------------
   У Yeseva One одно начертание. Если где-то останется font-weight больше
   четырёхсот, браузер нарисует синтетический жирный — буквы «поплывут».
   Здесь это пресекается разом для всех заголовков.
   ------------------------------------------------------------------------ */
h1,h2,h3,h4,
[style*="--font-serif"],
.dash-head h1,.mh1,.mh2,.lesson-bar h1,.hw h1,.written-heading h1,.profile-heading h1{
  font-synthesis-weight:none;
}
h1,h2,h3{font-weight:400}

/* --- Разбор ошибки на первом экране ----------------------------------------
   Неверное написание зачёркивается киноварью, рядом проступает верное. Один
   короткий проход при загрузке, дальше строка стоит неподвижно.

   Без скрипта (нет класса hero-armed) строка видна целиком и статична: сначала
   зачёркнутый вариант, следом верный. Смысл читается и так.
   ------------------------------------------------------------------------ */
.fix{
  margin:26px 0 0;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
}
.fix-was{
  position:relative;color:var(--muted-2);font-size:15px;
  text-decoration:line-through;text-decoration-color:var(--copper);
  text-decoration-thickness:1.5px;
}
.fix-now{
  position:relative;color:var(--text);font-size:16px;font-weight:600;
}
.fix-why{
  flex-basis:100%;margin-top:7px;font-family:var(--font-mono);
  font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);
}

/* Со скриптом строка разыгрывается: сначала «ошибка», потом правка. */
.hero-armed .fix-was{
  text-decoration:none;
  animation:fixStrike .01s linear 1.15s forwards;
}
.hero-armed .fix-was::after{
  /* Черта рисуется отдельным слоем: так её можно провести слева направо,
     а не показать целиком. Анимируется масштаб, а не ширина. */
  content:"";position:absolute;left:0;right:0;top:52%;height:1.5px;
  background:var(--copper);transform:scaleX(0);transform-origin:left center;
  animation:fixDraw .42s cubic-bezier(.4,0,.2,1) .75s forwards;
}
@keyframes fixDraw{to{transform:scaleX(1)}}
@keyframes fixStrike{to{color:var(--muted-2)}}

.hero-armed .fix-now,
.hero-armed .fix-why{opacity:0;animation:fixIn .5s cubic-bezier(.22,.61,.36,1) forwards}
.hero-armed .fix-now{animation-delay:1.2s}
.hero-armed .fix-why{animation-delay:1.42s}
@keyframes fixIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .hero-armed .fix-was{animation:none;text-decoration:line-through}
  .hero-armed .fix-was::after{display:none}
  .hero-armed .fix-now,.hero-armed .fix-why{opacity:1;animation:none}
}
@media (max-width:900px){ .fix{margin-top:20px} }

/* --- Разлиновка дышит при прокрутке ----------------------------------------
   Тетрадный лист на первом экране слегка смещается, пока страница едет вниз.
   Сделано новой возможностью браузера — анимацией по прокрутке: без скрипта,
   без обработчиков и без рывков, потому что смещается только слой, а не текст.

   Кто её не поддерживает, увидит обычный неподвижный лист — это нормально,
   эффект здесь украшение, а не смысл.
   ------------------------------------------------------------------------ */
@supports (animation-timeline: scroll()){
  @media (prefers-reduced-motion:no-preference){
    .landing-editorial .hero-photo{
      /* Слой линовки живёт отдельно от карточки, иначе поехало бы содержимое. */
      background-attachment:local;
      animation:paperDrift linear both;
      animation-timeline:scroll(root);
      animation-range:0 60vh;
    }
    @keyframes paperDrift{
      from{background-position:0 0,0 0,0 0}
      to{background-position:0 0,0 -14px,0 0}
    }
  }
}

/* --- Просмотр скриншота во весь экран --------------------------------------
   Затемнение берётся из теневого канала: в обеих темах подложка обязана быть
   темнее содержимого, иначе картинка потеряется на светлом.
   ------------------------------------------------------------------------ */
.proof img{cursor:zoom-in;transition:opacity .16s}
.proof img:hover{opacity:.9}
.proof img:focus-visible{outline:2px solid var(--copper);outline-offset:3px}

.shot-view{
  position:fixed;inset:0;z-index:120;display:none;place-items:center;padding:28px;
  background:rgb(var(--shadow-rgb) / .82);backdrop-filter:blur(3px);
}
.shot-view.is-open{display:grid;animation:shotIn .18s ease both}
@keyframes shotIn{from{opacity:0}to{opacity:1}}
.shot-view img{
  max-width:min(1100px,94vw);max-height:88vh;width:auto;border-radius:4px;
  box-shadow:0 30px 70px -30px rgb(var(--shadow-rgb) / .8);
}
.shot-close{
  position:absolute;top:18px;right:20px;width:40px;height:40px;border-radius:3px;
  display:grid;place-items:center;font-size:17px;line-height:1;
  color:var(--on-accent);background:rgb(var(--ink-rgb) / .16);
}
.shot-close:hover{background:rgb(var(--ink-rgb) / .28)}
.shot-close:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
@media (prefers-reduced-motion:reduce){ .shot-view.is-open{animation:none} }

/* --- Заполнение прогресса при появлении ------------------------------------
   Кольцо и полосы дорисовываются от нуля, когда доезжают до экрана. Проценту
   как таковому переход не назначить, поэтому анимируется зарегистрированное
   свойство: браузер умеет плавно менять его сам.

   Полосы двигаются масштабом, а не шириной: ширина заставляет браузер
   пересчитывать раскладку на каждом кадре, масштаб — нет.
   ------------------------------------------------------------------------ */
@property --pct{ syntax:'<percentage>'; inherits:false; initial-value:0%; }

@media (prefers-reduced-motion:no-preference){
  .js .ring{transition:--pct 1s cubic-bezier(.22,.61,.36,1)}
  .js .ring:not(.is-drawn){--pct:0% !important}

  .js .bar > i{transform-origin:left center;transform:scaleX(var(--fill,1));
    transition:transform .85s cubic-bezier(.22,.61,.36,1)}
  .js .bar:not(.is-drawn) > i{transform:scaleX(0)}
}

/* ===== Переходы между страницами ===========================================
   Сайт серверный: каждый клик по меню — новая страница и белая вспышка между
   ними. Одна строка ниже превращает это в перетекание, средствами самого
   браузера, без единой строки скрипта.

   Где не поддерживается — переход остаётся обычным. Ломаться нечему.
   ========================================================================= */
@view-transition{ navigation:auto; }

/* Шапка и подвал при переходе не должны мигать: они одинаковые на всех
   страницах, поэтому получают собственные имена и остаются на месте, пока
   меняется только содержимое. */
.topbar{ view-transition-name:site-header }
.landing-foot{ view-transition-name:site-footer }
main{ view-transition-name:page-body }

::view-transition-old(page-body){
  animation:pageOut .22s cubic-bezier(.4,0,1,1) both;
}
::view-transition-new(page-body){
  animation:pageIn .3s cubic-bezier(0,0,.2,1) both;
}
@keyframes pageOut{to{opacity:0;transform:translateY(-6px)}}
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}}

/* Человеку с включённой настройкой «уменьшить анимацию» перетекание может быть
   физически неприятно, поэтому от него остаётся только мгновенная смена. */
@media (prefers-reduced-motion:reduce){
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*){ animation:none !important }
}

/* --- Цифры одинаковой ширины -----------------------------------------------
   По умолчанию единица уже семёрки, поэтому при счёте чисел строка дёргается,
   а в таблицах разряды не выстраиваются в колонку. Здесь это выключено везде,
   где цифры несут смысл: цены, статистика, проценты, счёт, номера, даты.
   ------------------------------------------------------------------------ */
.hstat .n,.hero-stats .n,.prog-stats .n,.mstat .n,
.price-banner .price .now,.price-banner .price .old,
.ring .inner,.hw-result .score,.mod-num,.qn,.qmark,
.commerce-strip b,.profile-mini-stats b,.order-facts dd,
.written-meta time,.checkout-total b,.pagination,.mdim,
.fix,.reward b{
  font-variant-numeric:tabular-nums;
}

/* --- Полоса чтения ---------------------------------------------------------
   Тонкая линия вверху показывает, сколько страницы прочитано. Растёт по
   прокрутке средствами браузера: ни обработчиков, ни пересчётов на каждый
   кадр. Двигается масштаб, а не ширина, поэтому раскладка не пересчитывается.

   Появляется только на длинных страницах — их помечает класс на body.
   ------------------------------------------------------------------------ */
@supports (animation-timeline: scroll()){
  @media (prefers-reduced-motion:no-preference){
    .has-reading-bar::before{
      content:"";position:fixed;top:0;left:0;right:0;height:2px;z-index:90;
      background:var(--copper);transform-origin:left center;transform:scaleX(0);
      animation:readProgress linear both;
      animation-timeline:scroll(root);
    }
    @keyframes readProgress{to{transform:scaleX(1)}}
  }
}

/* --- Сколько осталось до экзамена ------------------------------------------
   Спокойная строка фактом, без нагнетания: ни красного фона, ни тикающих
   секунд. Число выделено, остальное — обычный служебный текст.
   ------------------------------------------------------------------------ */
.countdown{
  margin-top:14px;font-family:var(--font-mono);font-size:10.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);
  font-variant-numeric:tabular-nums;
}
.countdown b{
  font-family:var(--font-serif);font-size:17px;font-weight:400;
  color:var(--copper);letter-spacing:0;margin-right:3px;
}

/* --- Оглавление программы --------------------------------------------------
   Список модулей сбоку, липкий: остаётся на виду, пока читаешь программу.
   Текущий пункт подсвечивается по мере прокрутки.

   Плавная прокрутка к якорю отключается для тех, кто просил уменьшить
   анимацию: длинный проезд по странице им особенно неприятен.
   ------------------------------------------------------------------------ */
.prog-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:48px;align-items:start}
.prog-layout > .prog-modules{min-width:0}

.prog-toc{position:sticky;top:96px}
.prog-toc-title{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted-2);margin-bottom:14px;
}
.prog-toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.prog-toc li{counter-increment:toc;margin-bottom:2px}
.prog-toc a{
  display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:baseline;
  padding:8px 10px 8px 0;font-size:13.5px;line-height:1.35;
  color:var(--muted);border-left:2px solid transparent;padding-left:12px;
  transition:color .16s,border-color .16s;
}
.prog-toc a::before{
  content:counter(toc,decimal-leading-zero);
  font-family:var(--font-mono);font-size:9.5px;color:var(--muted-2);
  font-variant-numeric:tabular-nums;
}
.prog-toc a:hover{color:var(--text)}
.prog-toc a.is-current{color:var(--text);border-left-color:var(--copper)}
.prog-toc a.is-current::before{color:var(--copper)}

@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
}
/* Липкая шапка перекрывала бы заголовок модуля, к которому переходим. */
.prog-mod{scroll-margin-top:96px}

@media (max-width:1000px){
  .prog-layout{grid-template-columns:1fr;gap:26px}
  .prog-toc{position:static}
  .prog-toc ol{display:flex;flex-wrap:wrap;gap:6px}
  .prog-toc li{margin:0}
  .prog-toc a{
    padding:7px 12px;border-left:0;border:1px solid var(--line);border-radius:2px;
    grid-template-columns:auto auto;
  }
  .prog-toc a.is-current{border-color:var(--copper)}
}

/* ===== Состояния ===========================================================
   Во всём файле не было ни одного правила для отключённых элементов, для
   отправляемой формы и для поля с ошибкой. Пользователь нажимал кнопку и не
   понимал, приняли ли нажатие.
   ========================================================================= */

/* Отключено. Цвет не подбираем на глаз, а смешиваем с фоном: так приглушение
   одинаково работает в обеих темах и не рассыпается при смене палитры. */
.btn:disabled,.btn[aria-disabled="true"],
button:disabled,input:disabled,textarea:disabled,select:disabled{
  cursor:not-allowed;
  color:color-mix(in oklab, var(--text) 45%, var(--bg));
  background:color-mix(in oklab, var(--card) 70%, var(--bg));
  box-shadow:inset 0 0 0 1px var(--line);
  opacity:1;                      /* приглушаем цветом, а не прозрачностью */
}
.btn-grad:disabled,.btn-grad[aria-disabled="true"]{
  background:color-mix(in oklab, var(--copper) 40%, var(--bg));
  color:color-mix(in oklab, var(--on-accent) 70%, var(--bg));
}

/* Форма отправляется. Кнопка перестаёт принимать нажатия и говорит об этом. */
.is-sending{cursor:progress}
.is-sending .btn[type="submit"],.btn.is-busy{
  pointer-events:none;
  color:color-mix(in oklab, var(--on-accent) 75%, transparent);
}

/* Поле с ошибкой подсвечивается само, а не только строкой под ним.
   `:has()` позволяет обойтись без класса на обёртке и без скрипта. */
.field:has(.errorlist) input,
.field:has(.errorlist) textarea,
.field:has(.errorlist) select,
input[aria-invalid="true"],textarea[aria-invalid="true"]{
  box-shadow:inset 0 0 0 1.5px var(--danger);
}
.field:has(.errorlist) label{color:var(--danger)}

/* Поле письменной работы растёт по мере ввода — не нужно тянуть уголок. */
.written-form textarea,.mform textarea{field-sizing:content;min-height:8lh;max-height:26lh}

/* Плавное появление вместо мгновенного показа: раньше просмотрщик и меню
   возникали рывком, потому что переход с display не работает без этого. */
@media (prefers-reduced-motion:no-preference){
  .shot-view{transition:opacity .18s, display .18s allow-discrete}
  @starting-style{ .shot-view.is-open{opacity:0} }
}

/* ===== Статусы заказов и работ =============================================
   Цвет был задан двум значениям из одиннадцати. В списке заказов «новая»,
   «ожидает оплату» и «отменена» выглядели одинаково — по цвету их различить
   было нельзя, только вчитываясь в текст. Для рабочего инструмента это
   лишняя секунда на каждую строку.

   Смысл цвета один на весь сайт: зелёный — завершено хорошо, янтарный —
   ждёт вашего действия, красный — плохо кончилось, приглушённый — покой.
   ========================================================================= */
.written-status.status-new,
.written-status.status-submitted{color:var(--tq);background:rgb(var(--blue-rgb) / .12)}

.written-status.status-awaiting_payment,
.written-status.status-in_review,
.written-status.status-needs_revision,
.written-status.status-paused{color:var(--amber);background:rgb(var(--amber-rgb) / .12)}

.written-status.status-paid,
.written-status.status-accepted,
.written-status.status-active{color:var(--green);background:rgb(var(--green-rgb) / .12)}

.written-status.status-cancelled,
.written-status.status-refunded,
.written-status.status-revoked{color:var(--danger);background:rgb(var(--danger-rgb) / .12)}

/* В кабинетной теме статусы плоские, с точкой-меткой вместо заливки. */
.console-editorial .written-status.status-new,
.console-editorial .written-status.status-submitted{color:var(--tq);background:none}
.console-editorial .written-status.status-awaiting_payment,
.console-editorial .written-status.status-in_review,
.console-editorial .written-status.status-paused{color:var(--amber);background:none}
.console-editorial .written-status.status-paid,
.console-editorial .written-status.status-active{color:var(--green);background:none}
.console-editorial .written-status.status-cancelled,
.console-editorial .written-status.status-refunded,
.console-editorial .written-status.status-revoked{color:var(--danger);background:none}
.console-editorial .written-status::before{background:currentColor}

/* --- Длинные таблицы панели ------------------------------------------------
   Шапка остаётся на виду при прокрутке: иначе на сотне заказов забываешь,
   какая колонка что означает. Строка под курсором и с клавиатуры
   подсвечивается одинаково.
   ------------------------------------------------------------------------ */
.mtable thead th,.written-list-head{
  position:sticky;top:0;z-index:2;background:var(--bg);
  box-shadow:0 1px 0 var(--line);
}
.written-row:focus-within,.student-row:focus-within{
  background:rgb(var(--ink-rgb) / .05);outline:none;
}
.written-row:focus-visible,.student-row:focus-visible{
  outline:2px solid var(--copper);outline-offset:-2px;
}

/* ===== Проба: найди ошибку =================================================
   Ошибочное слово — настоящая кнопка, а не раскрашенный текст: работает с
   клавиатуры, читается голосовыми программами, видно фокус. Разбор появляется
   рядом, а не всплывающим окном: на телефоне окно перекрыло бы предложение.
   ========================================================================= */
.try-list{list-style:none;margin:0;padding:0;display:grid;gap:2px;counter-reset:try}
.try-item{
  counter-increment:try;padding:22px 0 22px 46px;position:relative;
  border-top:1px solid var(--line);
}
.try-item:last-child{border-bottom:1px solid var(--line)}
.try-item::before{
  content:counter(try,decimal-leading-zero);position:absolute;left:0;top:25px;
  font-family:var(--font-mono);font-size:10px;color:var(--muted-2);
  font-variant-numeric:tabular-nums;
}
.try-sentence{margin:0;font-size:18px;line-height:1.6}

.try-word{
  font:inherit;color:var(--text);padding:1px 3px;border-radius:2px;
  border-bottom:2px dotted var(--copper);cursor:pointer;
  transition:background .16s,color .16s;
}
.try-word:hover{background:rgb(var(--accent-rgb) / .10)}
.try-word:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
/* Разобранное слово зачёркивается той же киноварью, что и правка на первом
   экране: приём один на весь сайт. */
.try-word.is-done{
  color:var(--muted-2);border-bottom:0;cursor:default;
  text-decoration:line-through;text-decoration-color:var(--copper);
  text-decoration-thickness:1.5px;
}

.try-answer{
  margin:10px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;
}
.try-answer b{font-size:18px;font-weight:600;color:var(--text)}
.try-answer span{
  flex-basis:100%;font-size:14px;line-height:1.55;color:var(--muted);max-width:62ch;
}
@media (prefers-reduced-motion:no-preference){
  .try-answer{animation:tryIn .32s cubic-bezier(.22,.61,.36,1) both}
  @keyframes tryIn{from{opacity:0;transform:translateY(4px)}}
}

.try-note{
  margin-top:26px;font-family:var(--font-mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);
}
@media (max-width:700px){
  .try-item{padding-left:32px}
  .try-sentence{font-size:16.5px}
}

/* ===== Светлая тема: доводка ==============================================
   Палитра прежняя — бумага, киноварь, чернильно-синий. Здесь только отделка:
   фактура листа, тетрадная карточка на первом экране, «учительские» пометки
   и аккуратные состояния наведения. Всё под :not([data-theme="dark"]), чтобы
   тёмная тема не менялась; блок можно удалить целиком без последствий.
   ========================================================================= */
:root:not([data-theme="dark"]){
  --muted-2:#5f584d;               /* служебные подписи были на грани читаемости */
  --ink-mark:rgb(var(--accent-rgb) / .16);   /* след маркера под словом */
}

/* --- Фактура бумаги: едва заметное зерно поверх фона --------------------- */
:root:not([data-theme="dark"]) body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .13 0 0 0 0 .12 0 0 0 0 .1 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Выделение текста — как след текстовыделителя */
:root:not([data-theme="dark"]) ::selection{background:rgb(var(--accent-rgb) / .18);color:var(--text)}

/* --- Мелкие подписи: чуть крупнее и темнее ------------------------------- */
:root:not([data-theme="dark"]) .landing-editorial .hstat .l,
:root:not([data-theme="dark"]) .public-editorial .pm-count,
:root:not([data-theme="dark"]) .landing-editorial .hero-note{font-size:11px}
:root:not([data-theme="dark"]) .landing-editorial .topbar .links a{font-size:11px;color:#4f493f}
:root:not([data-theme="dark"]) .landing-editorial .topbar .links a::after{
  content:"";position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--copper);
  transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.22,.61,.36,1)
}
:root:not([data-theme="dark"]) .landing-editorial .topbar .links a:hover::after,
:root:not([data-theme="dark"]) .landing-editorial .topbar .links a.active::after{transform:scaleX(1)}

/* --- Кнопки: чернильный отлив и живая стрелка ---------------------------- */
:root:not([data-theme="dark"]) .btn-grad{position:relative;overflow:hidden;isolation:isolate}
:root:not([data-theme="dark"]) .btn-grad::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(110deg,transparent 30%,rgb(255 248 242 / .22) 48%,transparent 66%);
  transform:translateX(-120%);transition:transform .7s cubic-bezier(.22,.61,.36,1)
}
:root:not([data-theme="dark"]) .btn-grad:hover::after{transform:translateX(120%)}
:root:not([data-theme="dark"]) .landing-editorial .btn-grad{box-shadow:0 1px 0 rgb(0 0 0 / .08),0 12px 22px -16px rgb(var(--accent-rgb) / .55)}
:root:not([data-theme="dark"]) .landing-editorial .btn-ghost{background:rgb(255 252 245 / .45)}
:root:not([data-theme="dark"]) .landing-editorial .btn-ghost:hover{background:var(--card);box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .4)}

/* --- Первый экран: настоящий тетрадный лист ------------------------------ */
:root:not([data-theme="dark"]) .landing-editorial .hero-photo{
  background:
    linear-gradient(90deg,transparent 0 56px,rgb(var(--accent-rgb) / .38) 56px 57px,transparent 57px 60px,rgb(var(--accent-rgb) / .18) 60px 61px,transparent 61px),
    repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .13) 31px 32px),
    linear-gradient(160deg,#fbf7ee,#f4ecdc);
  box-shadow:
    0 1px 0 rgb(var(--ink-rgb) / .06),
    6px 6px 0 -1px #f1e9d8, 6px 6px 0 0 rgb(var(--ink-rgb) / .12),
    12px 12px 0 -1px #ede4d1, 12px 12px 0 0 rgb(var(--ink-rgb) / .09),
    0 40px 60px -40px rgb(var(--shadow-rgb) / .38),
    inset 0 0 0 1px rgb(var(--ink-rgb) / .14);
  transform:rotate(.6deg)
}
/* дырочки под кольца */
:root:not([data-theme="dark"]) .landing-editorial .hero-photo.empty::before{
  inset:24px auto 24px 18px;width:14px;background:
    radial-gradient(circle at 7px 7px,var(--bg) 0 5px,rgb(var(--ink-rgb) / .16) 5px 6px,transparent 6.5px) 0 0/14px 64px repeat-y
}
:root:not([data-theme="dark"]) .landing-editorial .hero-photo::after{top:10px;right:22px;line-height:22px;font-size:10px}
:root:not([data-theme="dark"]) .landing-editorial .hero-photo .ph-fallback{padding:96px 48px 64px 84px;gap:0}
:root:not([data-theme="dark"]) .landing-editorial .ph-fallback b{font-size:36px;line-height:40px;max-width:320px;margin-bottom:14px}
:root:not([data-theme="dark"]) .landing-editorial .ph-fallback span{font-size:14px;line-height:24px;max-width:240px}
/* учительская оценка на полях */
:root:not([data-theme="dark"]) .landing-editorial .hero-photo .ph-fallback::after{
  content:"5";position:absolute;right:52px;bottom:112px;width:66px;height:66px;display:grid;place-items:center;
  font-family:var(--font-serif);font-size:40px;font-style:italic;color:var(--copper);
  border:2px solid rgb(var(--accent-rgb) / .75);border-radius:52% 48% 55% 45%/48% 55% 45% 52%;
  transform:rotate(-12deg)
}
/* закладки-стикеры вместо обрезанных полос */
:root:not([data-theme="dark"]) .landing-editorial .float{
  padding:10px 16px 10px 8px;background:#fffaf0;border:0;border-radius:2px;
  box-shadow:inset 3px 0 0 var(--copper),0 1px 0 rgb(var(--ink-rgb) / .08),0 14px 24px -16px rgb(var(--shadow-rgb) / .35)
}
:root:not([data-theme="dark"]) .landing-editorial .float.f1{top:52px;left:-30px;transform:rotate(-2.5deg)}
:root:not([data-theme="dark"]) .landing-editorial .float.f2{right:-24px;bottom:34px;transform:rotate(2deg)}
:root:not([data-theme="dark"]) .landing-editorial .float span span{color:var(--muted)}
@media (prefers-reduced-motion:no-preference){
  :root:not([data-theme="dark"]) .landing-editorial .hero-photo .ph-fallback::after{animation:gradeStamp .5s 1.8s cubic-bezier(.3,1.6,.5,1) both}
  @keyframes gradeStamp{from{opacity:0;transform:rotate(-30deg) scale(1.8)}to{opacity:1;transform:rotate(-12deg) scale(1)}}
  :root:not([data-theme="dark"]) .landing-editorial .float.f1{animation:bob 6s ease-in-out infinite}
  :root:not([data-theme="dark"]) .landing-editorial .float.f2{animation:bob2 7s ease-in-out infinite}
  @keyframes bob{50%{transform:rotate(-1.5deg) translateY(-5px)}}
  @keyframes bob2{0%,100%{transform:rotate(2deg)}50%{transform:rotate(1deg) translateY(-6px)}}
}
/* рукописное подчёркивание «уверенно» — волной, как ручкой */
:root:not([data-theme="dark"]) .landing-editorial .hero h1 .ac::after{
  left:0;right:-4px;bottom:-10px;height:12px;border:0;border-radius:0;transform:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C 40 2, 70 11, 110 6 S 170 3, 198 7' fill='none' stroke='%23b33219' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat
}
@media (prefers-reduced-motion:no-preference){
  :root:not([data-theme="dark"]) .landing-editorial .hero h1 .ac::after{clip-path:inset(0 100% 0 0);animation:penDraw .9s .6s cubic-bezier(.65,0,.35,1) forwards}
  @keyframes penDraw{to{clip-path:inset(0 0 0 0)}}
}
:root:not([data-theme="dark"]) .landing-editorial .countdown b{
  background:linear-gradient(transparent 58%,var(--ink-mark) 58% 92%,transparent 92%);padding:0 3px
}

/* --- Цифры под первым экраном ------------------------------------------- */
:root:not([data-theme="dark"]) .landing-editorial .hstat{transition:background .2s}
:root:not([data-theme="dark"]) .landing-editorial .hstat .n{transition:color .2s}
:root:not([data-theme="dark"]) .landing-editorial .hstat:hover{background:rgb(255 252 245 / .55)}
:root:not([data-theme="dark"]) .landing-editorial .hstat:hover .n{color:var(--copper)}

/* --- Шаги обучения: строка «оживает» под курсором ----------------------- */
:root:not([data-theme="dark"]) .landing-editorial .step{transition:background .2s}
:root:not([data-theme="dark"]) .landing-editorial .step:hover{background:linear-gradient(90deg,rgb(255 252 245 / .7),transparent 80%)}
:root:not([data-theme="dark"]) .landing-editorial .step h3{transition:color .2s}
:root:not([data-theme="dark"]) .landing-editorial .step:hover h3{color:var(--copper)}

/* --- Найди ошибку: волнистое подчёркивание, как у проверки орфографии ---- */
:root:not([data-theme="dark"]) .try-word{
  border-bottom:0;text-decoration:underline wavy rgb(var(--accent-rgb) / .75);
  text-decoration-thickness:1.3px;text-underline-offset:5px
}
:root:not([data-theme="dark"]) .try-word:hover{background:var(--ink-mark)}
:root:not([data-theme="dark"]) .try-word.is-done{text-decoration:line-through var(--copper) 1.5px}
:root:not([data-theme="dark"]) .try-answer b{
  background:linear-gradient(transparent 60%,rgb(var(--green-rgb) / .18) 60% 94%,transparent 94%);padding:0 2px
}
:root:not([data-theme="dark"]) .try-answer b::before{content:"✓ ";color:var(--green);font-weight:700}

/* --- Вопросы -------------------------------------------------------------- */
:root:not([data-theme="dark"]) .landing-editorial .faq summary{transition:color .2s,padding .2s}
:root:not([data-theme="dark"]) .landing-editorial .faq summary:hover{color:var(--copper);padding-left:6px}
:root:not([data-theme="dark"]) .landing-editorial .faq details[open] summary{color:var(--copper)}

/* --- Финальный призыв: лист на столе ------------------------------------- */
:root:not([data-theme="dark"]) .public-editorial .cta-final{
  position:relative;padding:48px 48px 48px 88px!important;border:0!important;
  background:
    linear-gradient(90deg,transparent 0 58px,rgb(var(--accent-rgb) / .35) 58px 59px,transparent 59px),
    repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .09) 31px 32px),
    #fbf7ee;
  box-shadow:0 1px 0 rgb(var(--ink-rgb) / .06),0 30px 50px -36px rgb(var(--shadow-rgb) / .4),inset 0 0 0 1px rgb(var(--ink-rgb) / .12)
}
:root:not([data-theme="dark"]) .public-editorial .cta-final::before{
  content:"";position:absolute;top:-12px;left:50%;width:120px;height:26px;margin-left:-60px;transform:rotate(-2deg);
  background:rgb(236 222 190 / .75);box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .06)
}
@media (max-width:700px){
  :root:not([data-theme="dark"]) .public-editorial .cta-final{padding:36px 20px 32px 44px!important;background-position:-28px 0,0 0,0 0}
}

/* --- Отзывы: кавычка на полях и оценка-печать ---------------------------- */
:root:not([data-theme="dark"]) .public-editorial .review{position:relative;transition:background .2s}
:root:not([data-theme="dark"]) .public-editorial .review::after{
  content:"“";position:absolute;right:28px;bottom:-8px;font-family:var(--font-serif);font-size:120px;line-height:1;
  color:rgb(var(--accent-rgb) / .08);pointer-events:none
}
:root:not([data-theme="dark"]) .public-editorial .review:hover{background:rgb(255 252 245 / .6)}

/* --- Программа ------------------------------------------------------------ */
:root:not([data-theme="dark"]) .public-editorial .pm-num{font-size:12px}
:root:not([data-theme="dark"]) .public-editorial .pm-lesson{transition:background .15s,padding .15s}
:root:not([data-theme="dark"]) .public-editorial .pm-lesson:hover{background:rgb(255 252 245 / .7);padding-left:10px}

/* --- Плашка про cookie: компактная записка в углу ------------------------ */
:root:not([data-theme="dark"]) .cookie-bar{
  background:#fbf7ee;border-radius:3px;
  box-shadow:inset 3px 0 0 var(--copper),inset 0 0 0 1px rgb(var(--ink-rgb) / .14),0 24px 44px -24px rgb(var(--shadow-rgb) / .45)
}
@media (min-width:901px){
  :root:not([data-theme="dark"]) .cookie-bar{left:24px;right:auto;bottom:24px;max-width:430px;margin:0;justify-content:flex-start;padding:16px 18px 16px 22px}
  :root:not([data-theme="dark"]) .cookie-bar .btn{padding:9px 14px;font-size:13px}
}
@media (max-width:900px){
  :root:not([data-theme="dark"]) .cookie-bar{left:10px;right:10px;bottom:10px;padding:12px 14px 12px 18px;font-size:12px;gap:10px}
  :root:not([data-theme="dark"]) .cookie-bar .cookie-actions{width:100%}
  :root:not([data-theme="dark"]) .cookie-bar .btn{flex:1;padding:9px 10px;font-size:12.5px}
}

/* --- Телефон: карточка первого экрана ----------------------------------- */
@media (max-width:700px){
  :root:not([data-theme="dark"]) .landing-editorial .hero-photo{transform:none;margin-right:12px}
  :root:not([data-theme="dark"]) .landing-editorial .hero-photo .ph-fallback{padding:88px 24px 84px 72px}
  :root:not([data-theme="dark"]) .landing-editorial .ph-fallback b{font-size:26px;line-height:30px;margin-bottom:8px;max-width:200px}
  :root:not([data-theme="dark"]) .landing-editorial .hero-photo .ph-fallback::after{right:18px;bottom:auto;top:44px;width:50px;height:50px;font-size:30px}
  :root:not([data-theme="dark"]) .landing-editorial .float.f1{left:10px;top:14px}
  :root:not([data-theme="dark"]) .landing-editorial .float.f2{right:-6px;bottom:14px}
}

/* ===== Типографика: отделка =================================================
   Шрифты переменные — любой вес от 300/400 до 700/900 настоящий, курсив
   настоящий. Здесь — оптические размеры, кернинг, лигатуры, висячая
   пунктуация и аккуратные переносы строк.
   ========================================================================= */
html{text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{
  font-optical-sizing:auto;text-rendering:optimizeLegibility;
  font-kerning:normal;font-feature-settings:"kern","liga","calt";
  font-synthesis:none;              /* никаких поддельных жирных и курсивов */
  -webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto
}
[data-theme="dark"] body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
p,li,.lead,figcaption{text-wrap:pretty;hanging-punctuation:first}
h1,h2,h3,.sec-head h2{text-wrap:balance}

/* Заголовки Playfair: плотнее, чуть сжатый трекинг, без волосяного «звона» */
.landing-editorial .hero h1{font-weight:600;letter-spacing:-.018em;line-height:1.06;font-feature-settings:"kern","liga","lnum"}
.landing-editorial .hero h1 .ac{font-weight:500;letter-spacing:-.01em;padding-right:.06em}
:is(.landing-editorial,.public-editorial) :is(h1,h2){font-weight:600;letter-spacing:-.015em;font-feature-settings:"kern","liga","lnum"}
:is(.landing-editorial,.public-editorial) h3{letter-spacing:-.005em}
.landing-editorial .hstat .n,.public-editorial .prog-stats .n{font-weight:600;font-feature-settings:"lnum","tnum"}
.landing-editorial .ph-fallback b{font-weight:600;letter-spacing:-.01em}

/* Текст: Source Serif на 16–18px с оптическим кеглем «text» */
.landing-editorial .hero .lead{font-size:17.5px;line-height:1.7;font-weight:400;color:#57504a}
:root:not([data-theme="dark"]) :is(.landing-editorial,.public-editorial){--muted:#5c554c}
[data-theme="dark"] .landing-editorial .hero .lead{color:var(--muted)}

/* Моноширинные подписи: IBM Plex Mono, ровный трекинг вместо растянутого */
:is(.landing-editorial,.public-editorial) :is(.pill,.hero-note,.hstat .l,.try-note,.pm-count,.pm-num,.topbar .links a,.section-folio,.step-note){
  font-family:var(--font-mono);font-weight:500;letter-spacing:.09em
}
.landing-editorial .topbar .links a{font-size:11.5px;letter-spacing:.1em}

/* Кнопки: полужирный текстовый, без «жирности 650» из прошлых шрифтов */
.btn{font-weight:600;letter-spacing:.005em}
.landing-editorial .btn,.public-editorial .btn{font-weight:600;font-size:15px}
.brand{font-family:var(--font-serif);font-weight:600;font-size:18px;letter-spacing:-.005em}
.brand .mk{font-family:var(--font-serif);font-weight:700;font-size:15px}

/* Цифры: одинаковой ширины и «прописные» там, где их сравнивают */
.countdown b,.float .sq,.pm-lesson .ld{font-variant-numeric:lining-nums tabular-nums}
:root{--h-hero:clamp(38px,4.1vw,60px);--h-section:clamp(28px,3vw,42px)}
.landing-editorial .countdown b{font-family:var(--font-serif);font-weight:700;font-size:1.25em}
.landing-editorial .hero-photo .ph-fallback::after{font-weight:600}
.landing-editorial .fix-now{font-weight:600}
.landing-editorial .float b{font-family:var(--font-serif);font-weight:600;font-size:14.5px}
:root{--h-hero:clamp(38px,3.7vw,54px)}
:is(.landing-editorial,.public-editorial) main :is(h1,h2){font-weight:600!important}
.landing-editorial .hero .countdown b{font-family:var(--font-serif)!important;font-weight:700!important;font-size:22px!important;letter-spacing:0}
.landing-editorial .hero-photo .ph-fallback::after{font-weight:700!important}
input,textarea,select,button{font-family:inherit;font-feature-settings:inherit}
input::placeholder,textarea::placeholder{font-family:var(--font-sans);font-style:italic;opacity:.7}
.auth-editorial :is(h1,h2),.console-editorial :is(h1,h2,.mh1){font-weight:600!important;letter-spacing:-.015em}

/* ===== Шрифты: Cormorant Garamond + Literata ===============================
   У гарамона маленький очко строчных — поэтому кегли заголовков крупнее,
   а веса плотнее (600–700), чтобы волосяные штрихи не мерцали.
   ========================================================================= */
:root{
  --font-serif:'Cormorant Garamond','Playfair Display',Georgia,serif;
  --font-sans:'Literata','Source Serif 4',Georgia,serif;
  --text-weight:400;
  --h-hero:clamp(44px,4.5vw,68px);
  --h-section:clamp(34px,3.4vw,50px);
  --h-page:clamp(30px,3vw,42px);
}
.landing-editorial .hero h1{font-weight:600!important;line-height:1!important;letter-spacing:-.012em}
.landing-editorial .hero h1 .ac{font-weight:600!important;font-size:1.08em;letter-spacing:-.005em}
:is(.landing-editorial,.public-editorial,.auth-editorial,.console-editorial) :is(h1,h2){font-weight:600!important;letter-spacing:-.01em;line-height:1.02}
:is(.landing-editorial,.public-editorial) h3{font-family:var(--font-serif);font-weight:700;font-size:1.3em;letter-spacing:0;line-height:1.15}
.landing-editorial .ph-fallback b{font-weight:700!important;font-size:44px!important;line-height:42px!important}
.landing-editorial .hstat .n,.public-editorial .prog-stats .n{font-weight:600;font-size:48px}
.landing-editorial .float b{font-weight:700;font-size:17px}
.landing-editorial .hero .countdown b{font-weight:700!important;font-size:28px!important}
.landing-editorial .hero-photo .ph-fallback::after{font-size:48px;font-weight:600!important}
.landing-editorial .hero .lead{font-size:17px;line-height:1.75;font-weight:400}
.brand{font-size:22px;font-weight:700}
.brand .mk{font-size:18px;font-weight:700}
.btn,.landing-editorial .btn,.public-editorial .btn{font-weight:550;letter-spacing:0}
.faq summary,.landing-editorial .faq summary{font-weight:500}
@media (max-width:700px){
  .landing-editorial .ph-fallback b{font-size:34px!important;line-height:34px!important}
}
:is(.landing-editorial,.public-editorial) main h3{font-family:var(--font-serif)!important;font-weight:700!important;font-size:25px!important;line-height:1.15!important;letter-spacing:0!important}
.landing-editorial .hero-photo .ph-fallback::after{font-weight:700!important;-webkit-text-stroke:.4px currentColor}
.landing-editorial .ph-fallback b{font-weight:700!important}
@media (max-width:700px){
  .landing-editorial .hero h1{font-size:42px!important;line-height:1.02!important}
  :is(.landing-editorial,.public-editorial) main h2{font-size:36px!important}
  :is(.landing-editorial,.public-editorial) main h3{font-size:22px!important}
}

/* ===== Плотность и контраст ================================================
   Гарамон в 600 на экране выглядит как обычный — берём 700. Текстовый вес
   поднят, серые оттенки темнее: на бумажном фоне всё читалось тускло.
   ========================================================================= */
:root:not([data-theme="dark"]){
  --text:#1b1815;
  --muted:#433d35;
  --muted-2:#50493f;
  --tq:#223d5c;
}
:root:not([data-theme="dark"]) :is(.landing-editorial,.public-editorial,.auth-editorial,.console-editorial){
  --text:#1b1815;--muted:#433d35;--muted-2:#50493f;--tq:#223d5c
}
:root{--text-weight:470}
body{font-weight:var(--text-weight)}

/* заголовки */
:is(.landing-editorial,.public-editorial,.auth-editorial,.console-editorial) main :is(h1,h2),
.landing-editorial .hero h1,
:is(.auth-editorial,.console-editorial) :is(h1,h2){font-weight:700!important}
:is(.landing-editorial,.public-editorial,.auth-editorial,.console-editorial) :is(h1,h2) :is(em,i,span),
.landing-editorial .hero h1 .ac{font-weight:700!important}
:is(.landing-editorial,.public-editorial) main h3{font-weight:700!important}

/* основной и вспомогательный текст */
:is(.landing-editorial,.public-editorial) :is(p,li,.lead,.step-copy p,.sec-sub){font-weight:450}
.landing-editorial .hero .lead{color:var(--muted)!important;font-weight:450}
.try-sentence{font-size:20px;font-weight:500;color:var(--text)}
.try-word{font-weight:600}
:root:not([data-theme="dark"]) .try-word{text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:var(--copper)}
.try-item::before{font-size:11px;font-weight:500;color:var(--copper)}

/* моноширинные подписи: вес 500, тёмнее */
:is(.landing-editorial,.public-editorial,.auth-editorial) :is(.pill,.hero-note,.hstat .l,.try-note,.pm-count,.pm-num,.section-folio,.step-note,.topbar .links a){font-weight:500!important}
:root:not([data-theme="dark"]) :is(.landing-editorial,.public-editorial) :is(.hero-note,.hstat .l,.try-note,.pm-count,.step-note,.section-folio){color:var(--muted-2)}
:root:not([data-theme="dark"]) :is(.landing-editorial,.public-editorial) .topbar .links a{color:#3d372f}

/* разделительные линии чуть заметнее */
:root:not([data-theme="dark"]) :is(.landing-editorial,.public-editorial){--line:rgb(var(--ink-rgb) / .16);--line-2:rgb(var(--ink-rgb) / .3)}

/* ===== Фишки «русский язык» (см. static/js/russian.js) ======================
   Разбор по составу, синтаксический разбор, буквицы, пометки красной ручкой,
   ударение дня, цитаты классиков, пасхалки. Цвета — из переменных темы.
   ========================================================================= */

/* --- Разбор слова по составу ------------------------------------------- */
.ru-morph{position:relative;cursor:help;outline:none;white-space:nowrap}
.ru-m{position:relative;display:inline-block}
.ru-m::before{
  content:"";position:absolute;pointer-events:none;opacity:0;
  transition:opacity .25s ease,transform .35s cubic-bezier(.22,.61,.36,1);transform:translateY(4px);
  --mk:var(--copper)
}
.ru-m-pre::before{left:.02em;right:.02em;top:.02em;height:.2em;border-top:2px solid var(--mk);border-right:2px solid var(--mk)}
.ru-m-root::before{left:0;right:0;top:-.04em;height:.3em;border-top:2px solid var(--mk);border-radius:50% 50% 0 0/100% 100% 0 0}
.ru-m-suf::before{left:0;right:0;top:-.06em;height:.26em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10' preserveAspectRatio='none'%3E%3Cpolyline points='1,9.5 10,1 19,9.5' fill='none' stroke='%23b33219' stroke-width='1.6' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat}
[data-theme="dark"] .ru-m-suf::before{filter:hue-rotate(10deg) brightness(1.6)}
.ru-m-end::before{inset:.12em -.03em .02em -.03em;border:2px solid var(--mk)}
.ru-m-end0{width:0;height:.62em;vertical-align:-.02em;transition:width .3s,margin .3s}
.ru-m-end0::before{inset:0;border:2px solid var(--mk)}
.ru-m-post::before{left:0;right:0;top:.02em;height:.2em;border:2px solid var(--mk);border-bottom:0}
.ru-morph-hint{
  position:absolute;left:0;bottom:calc(100% + .1em);white-space:nowrap;pointer-events:none;
  font:500 10px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-style:normal;
  color:var(--copper);opacity:0;transform:translateY(4px);transition:.25s
}
.ru-morph:is(:hover,:focus-visible,.is-open) .ru-m::before,
.ru-morph:is(:hover,:focus-visible,.is-open) .ru-morph-hint{opacity:1;transform:none}
.ru-morph:is(:hover,:focus-visible,.is-open) .ru-m-end0{width:.42em;margin-left:.08em}
.ru-morph .ru-m-pre::before{transition-delay:0s}
.ru-morph .ru-m-root::before{transition-delay:.08s}
.ru-morph .ru-m-suf::before{transition-delay:.16s}
.ru-morph .ru-m-end::before,.ru-morph .ru-m-end0::before,.ru-morph .ru-m-post::before{transition-delay:.24s}
/* подсказка, что слово «живое»: тонкий пунктир-точка над первой буквой */
.ru-morph::before{
  content:"";position:absolute;right:-.3em;top:.1em;width:.16em;height:.16em;border-radius:50%;
  background:var(--copper);opacity:.55
}
@media (prefers-reduced-motion:no-preference){
  .ru-morph::before{animation:ruPulse 2.4s ease-in-out infinite}
  @keyframes ruPulse{50%{transform:scale(1.8);opacity:.2}}
}
.ru-morph:is(:hover,.is-open)::before{opacity:0;animation:none}
.try-sentence .ru-morph .ru-morph-hint{bottom:calc(100% + .35em)}

/* --- Синтаксический разбор абзаца -------------------------------------- */
.ru-syntax{position:relative}
.ru-syn{text-decoration-line:underline;text-decoration-color:transparent;text-decoration-thickness:1.5px;
  text-underline-offset:.28em;transition:text-decoration-color .3s ease}
.ru-syn-subj{text-decoration-style:solid}
.ru-syn-pred{text-decoration-style:double;text-decoration-thickness:1.5px}
.ru-syn-obj{text-decoration-style:dashed}
.ru-syn-attr{text-decoration-style:wavy;text-decoration-thickness:1.2px}
.ru-syntax:hover .ru-syn{text-decoration-color:var(--copper)}
.ru-syntax:hover .ru-syn-pred{transition-delay:.08s}
.ru-syntax:hover .ru-syn-obj{transition-delay:.16s;text-decoration-color:var(--tq)}
.ru-syntax:hover .ru-syn-attr{transition-delay:.24s;text-decoration-color:var(--tq)}
.ru-syn-legend{
  position:absolute;left:0;top:calc(100% + 6px);display:flex;flex-wrap:wrap;gap:4px 16px;pointer-events:none;
  font:500 10px/1.6 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);
  opacity:0;transform:translateY(-3px);transition:.3s
}
.ru-syn-legend i{font-style:normal;text-decoration-line:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}
.ru-syn-legend .s{text-decoration-color:var(--copper)}
.ru-syn-legend .p{text-decoration-style:double;text-decoration-color:var(--copper)}
.ru-syn-legend .o{text-decoration-style:dashed;text-decoration-color:var(--tq)}
.ru-syn-legend .a{text-decoration-style:wavy;text-decoration-color:var(--tq)}
.ru-syntax:hover .ru-syn-legend{opacity:1;transform:none}
@media (hover:none){.ru-syn-legend{display:none}}

/* --- Числительные прописью --------------------------------------------- */
.ru-words{display:block;margin-top:6px;font-family:var(--font-serif);font-style:italic;font-weight:600;
  font-size:17px;line-height:1.1;color:var(--copper);opacity:.85}

/* --- Буквица ------------------------------------------------------------- */
.ru-dropcap::first-letter{
  float:left;font-family:var(--font-serif);font-weight:700;font-size:3.5em;line-height:.78;
  margin:.07em .1em 0 0;color:var(--copper)
}

/* --- Галочки красной ручкой -------------------------------------------- */
.learning-path .step{position:relative}
.ru-tick{position:absolute;left:14px;top:50%;width:44px;height:34px;margin-top:-22px;pointer-events:none}
.ru-tick svg{width:100%;height:100%;overflow:visible}
.ru-tick path{fill:none;stroke:var(--copper);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
@media (prefers-reduced-motion:no-preference){
  .reveal-armed .ru-tick path{stroke-dasharray:60;stroke-dashoffset:60;transition:stroke-dashoffset .7s cubic-bezier(.65,0,.35,1) .5s}
  .reveal-armed .step.is-in .ru-tick path{stroke-dashoffset:0}
}
@media (max-width:700px){.ru-tick{left:2px;width:34px;height:26px;margin-top:-16px}}

/* --- Оценка в отзывах ---------------------------------------------------- */
.review .rate .badge.ru-grade{
  display:inline-flex;align-items:center;gap:8px;background:none!important;box-shadow:none!important;padding:0!important
}
.ru-grade .g{
  width:44px;height:44px;display:grid;place-items:center;font-family:var(--font-serif);font-style:italic;
  font-weight:700;font-size:28px;line-height:1;color:var(--copper);letter-spacing:0;
  border:2px solid rgb(var(--accent-rgb) / .7);border-radius:52% 48% 55% 45%/48% 55% 45% 52%;transform:rotate(-9deg)
}
.ru-grade .gw{font-family:var(--font-serif);font-style:italic;font-weight:600;font-size:17px;color:var(--copper);
  text-transform:none;letter-spacing:0}

/* --- Подвал: ударение дня и цитата ------------------------------------- */
.ru-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;margin:8px 0 34px}
.ru-stress,.ru-quote{position:relative;margin:0;padding:24px 26px;background:var(--card);
  box-shadow:inset 0 0 0 1px var(--line),0 20px 40px -34px rgb(var(--shadow-rgb) / .5)}
.ru-stress{box-shadow:inset 3px 0 0 var(--copper),inset 0 0 0 1px var(--line),0 20px 40px -34px rgb(var(--shadow-rgb) / .5)}
.ru-cap{display:flex;justify-content:space-between;gap:10px;font:500 11px/1.4 var(--font-mono);letter-spacing:.1em;
  text-transform:uppercase;color:var(--tq)}
.ru-cap span{color:var(--muted-2)}
.ru-word{margin:14px 0 6px;font-family:var(--font-serif);font-weight:700;font-size:44px;line-height:1.1;color:var(--text);letter-spacing:.01em}
.ru-v{font:inherit;color:inherit;padding:0 .03em;border-radius:3px;position:relative;transition:background .15s,color .15s;cursor:pointer}
.ru-v::after{content:"";position:absolute;left:50%;top:-.08em;width:.09em;height:.22em;background:currentColor;
  transform:translateX(-50%) rotate(25deg) scaleY(0);transform-origin:bottom;transition:transform .2s}
.ru-word:not(.done) .ru-v:hover{background:rgb(var(--accent-rgb) / .12);color:var(--copper)}
.ru-word:not(.done) .ru-v:hover::after{transform:translateX(-50%) rotate(25deg) scaleY(.7)}
.ru-v.ok{color:var(--green)}
.ru-v.ok::after{transform:translateX(-50%) rotate(25deg) scaleY(1)}
.ru-v.bad{color:var(--copper);text-decoration:line-through 2px}
.ru-word.done .ru-v{cursor:default}
.ru-note{font-size:14.5px;line-height:1.55;color:var(--muted);min-height:2.6em}
.ru-note.is-ok{color:var(--green)}
.ru-note.is-bad{color:var(--copper)}
.ru-next{margin-top:10px;font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tq);
  padding:8px 0;border-bottom:1px solid currentColor}
.ru-next:hover{color:var(--copper)}
.ru-quote{display:flex;flex-direction:column;justify-content:center;padding-left:72px}
.ru-quote::before{content:"«";position:absolute;left:18px;top:6px;font-family:var(--font-serif);font-weight:700;
  font-size:92px;line-height:1;color:rgb(var(--accent-rgb) / .35)}
.ru-quote blockquote{margin:0;font-family:var(--font-serif);font-style:italic;font-weight:600;font-size:23px;line-height:1.3;color:var(--text);text-wrap:pretty}
.ru-quote figcaption{margin-top:12px;font:500 11px/1.4 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
@media (max-width:800px){
  .ru-foot{grid-template-columns:1fr;gap:16px}
  .ru-word{font-size:36px}
  .ru-quote{padding-left:54px}.ru-quote::before{left:12px;font-size:70px}
  .ru-quote blockquote{font-size:19px}
}

/* --- Кнопка «к началу» ------------------------------------------------- */
.ru-up{
  position:fixed;right:22px;bottom:22px;z-index:70;display:flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;
  background:var(--card);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2),0 14px 30px -20px rgb(var(--shadow-rgb) / .6);
  border-radius:40px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.3s
}
.ru-up.is-on{opacity:1;transform:none;pointer-events:auto}
.ru-up .p{font-family:var(--font-serif);font-weight:700;font-size:24px;line-height:1;color:var(--copper);transition:transform .3s}
.ru-up .t{font:500 10.5px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
.ru-up:hover .p{transform:translateY(-3px) rotate(-8deg)}
@media (max-width:700px){.ru-up .t{display:none}.ru-up{padding:8px 12px;right:14px;bottom:14px}}

/* --- Записка-пасхалка -------------------------------------------------- */
.ru-toast{
  position:fixed;left:50%;top:84px;z-index:95;max-width:min(460px,calc(100vw - 32px));padding:14px 18px 14px 20px;
  background:var(--card);color:var(--text);font-size:15px;line-height:1.5;
  box-shadow:inset 3px 0 0 var(--copper),inset 0 0 0 1px var(--line-2),0 24px 50px -24px rgb(var(--shadow-rgb) / .6);
  transform:translate(-50%,-16px) rotate(-.6deg);opacity:0;pointer-events:none;transition:.35s cubic-bezier(.22,.61,.36,1)
}
.ru-toast.is-on{opacity:1;transform:translate(-50%,0) rotate(-.6deg)}
.ru-toast b{font-family:var(--font-serif);font-weight:700;font-size:30px;line-height:1;color:var(--copper);margin-right:6px;vertical-align:-4px}
.ru-yo{position:fixed;top:-60px;z-index:94;pointer-events:none;font-family:var(--font-serif);font-weight:700;color:var(--copper);
  animation:ruFall linear forwards}
.ru-yo:nth-child(odd){color:var(--tq)}
@keyframes ruFall{to{transform:translateY(calc(100vh + 120px)) rotate(540deg);opacity:.2}}
.brand .mk.ru-flip{animation:ruFlip .5s ease}
@keyframes ruFlip{50%{transform:rotateY(90deg)}}

/* --- Курсор-перо над словами с ошибкой --------------------------------- */
.try-word:not(.is-done){
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M3 25l2.5-7.5L19 4l5 5L10.5 22.5z' fill='%23fbf7ee' stroke='%23b33219' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M3 25l2.5-7.5 5 5z' fill='%23b33219'/%3E%3C/svg%3E") 3 25,pointer
}

/* --- Пометки на полях (только широкие экраны) -------------------------- */
@media (min-width:1100px){
  .landing-editorial .proof-head h2,.landing-editorial .try-section .sec-head h2{position:relative;display:inline-block}
  .landing-editorial .proof-head h2::after,.landing-editorial .try-section .sec-head h2::after{
    position:absolute;left:calc(100% + 26px);top:.2em;white-space:nowrap;pointer-events:none;
    font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:24px;line-height:1.1;color:var(--copper);
    transform:rotate(-7deg);opacity:.9
  }
  .landing-editorial .proof-head h2::after{content:"NB!"}
  .landing-editorial .try-section .sec-head h2::after{content:"проверь себя ↓";top:1.6em}
}

/* --- Корректура: ссылки в тексте подчёркиваются волной ---------------- */
.landing-foot .lf-legal a{text-decoration:underline wavy transparent 1px;text-underline-offset:5px;transition:text-decoration-color .2s,color .2s}
.landing-foot .lf-legal a:hover{color:var(--copper);text-decoration-color:var(--copper)}
/* морфемы ближе к буквам, подпись — справа от слова */
.ru-m-pre::before{top:.16em;height:.18em}
.ru-m-root::before{top:.1em;height:.26em}
.ru-m-suf::before{top:.08em;height:.24em}
.ru-m-post::before{top:.16em;height:.18em}
.ru-m-end::before{inset:.3em -.03em .08em -.03em}
.ru-m-end0{height:.5em}
.ru-morph-hint{left:calc(100% + 16px);bottom:auto;top:50%;transform:translate(-4px,-50%)}
.ru-morph:is(:hover,:focus-visible,.is-open) .ru-morph-hint{transform:translate(0,-50%)}
.try-sentence .ru-morph .ru-morph-hint{bottom:auto}
.ru-m-pre::before{top:.3em;height:.16em}
.ru-m-root::before{top:.24em;height:.24em}
.ru-m-suf::before{top:.22em;height:.22em}
.ru-m-post::before{top:.3em;height:.16em}
.ru-m-end::before{inset:.42em -.03em .1em -.03em}
.ru-morph-hint,.try-sentence .ru-morph .ru-morph-hint{left:0;top:calc(100% + 6px);bottom:auto;transform:translateY(-4px)}
.ru-morph:is(:hover,:focus-visible,.is-open) .ru-morph-hint{transform:none}
.hero h1 .ru-morph .ru-morph-hint{top:calc(100% + 20px)}
.ru-morph::before{right:-.18em;top:.38em;width:.12em;height:.12em}
.ru-tick{left:22px;z-index:2}
.ru-word,.ru-word .ru-v{font-weight:700!important}
@media (min-width:1100px){
  .landing-editorial .proof-head h2,.landing-editorial .try-section .sec-head h2{display:block;width:fit-content}
}
.ru-m-pre::before{top:.13em;height:.17em}
.ru-m-root::before{top:.06em;height:.26em}
.ru-m-suf::before{top:.04em;height:.24em}
.ru-m-post::before{top:.13em;height:.17em}
.ru-m-end::before{inset:.34em -.03em .1em -.03em}

/* ===== Кабинет, домашка, панель: доводка ====================================
   ========================================================================= */

/* Cormorant по умолчанию рисует «старинные» цифры: 0 похож на «о», 1 — на «I».
   Везде включаем прописные цифры одной высоты. */
body{font-feature-settings:"kern","liga","calt","lnum";font-variant-numeric:lining-nums}
:is(h1,h2,h3,b,strong,.n,.score,.ring,.mcount,.pct,.qn,.mod-num){font-variant-numeric:lining-nums tabular-nums}

/* --- Ширина рабочей области: по центру, без пустоты справа ---------------- */
.console-editorial .dash{max-width:1120px;margin:0 auto}
.console-editorial .mwrap{max-width:1080px;margin:0 auto}
.console-editorial .profile-page{max-width:1040px;margin:0 auto}
.console-editorial .hw{max-width:820px;margin:0 auto}
.console-editorial .written-page{margin-left:auto;margin-right:auto}

/* --- Поле загрузки файла -------------------------------------------------- */
.filebox{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px 16px;align-items:stretch}
.filebox-preview{grid-row:span 2;width:76px;height:76px;display:grid;place-items:center;overflow:hidden;
  background:var(--card);box-shadow:inset 0 0 0 1px var(--line-2);border-radius:4px;color:var(--muted-2)}
.filebox-preview img{width:100%;height:100%;object-fit:cover}
.filebox-preview .ic{width:26px;height:26px}
.filebox-drop{position:relative;display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:76px;
  padding:12px 18px;cursor:pointer;background:rgb(255 252 245 / .5);border:1.5px dashed rgb(var(--ink-rgb) / .28);border-radius:4px;
  transition:border-color .2s,background .2s;margin:0!important}
[data-theme="dark"] .filebox-drop{background:rgb(var(--ink-rgb) / .03)}
.filebox-drop:hover,.filebox.is-drag .filebox-drop{border-color:var(--copper);background:rgb(var(--accent-rgb) / .05)}
.filebox-input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.filebox-input:focus-visible+.filebox-title{outline:2px solid var(--copper);outline-offset:3px}
.filebox-title{font-family:var(--font-serif);font-weight:700;font-size:19px;line-height:1.2;color:var(--text)}
.filebox-title::before{content:"↑ ";color:var(--copper)}
.filebox-hint{font-size:13px;color:var(--muted);text-transform:none;letter-spacing:0;font-family:var(--font-sans)}
.filebox-name{font:500 11px/1.5 var(--font-mono);letter-spacing:.04em;color:var(--tq);word-break:break-all}
.filebox-name:empty{display:none}
.filebox.is-new .filebox-drop{border-style:solid;border-color:rgb(var(--green-rgb) / .6)}
.filebox.is-new .filebox-title::before{content:"✓ ";color:var(--green)}
.filebox-clear{grid-column:2;display:inline-flex!important;align-items:center;gap:8px;margin:0!important;cursor:pointer;
  font-size:13px!important;color:var(--muted)!important;text-transform:none!important;letter-spacing:0!important;font-family:var(--font-sans)!important;width:fit-content}
.filebox-clear input{width:16px;height:16px;accent-color:var(--copper)}
.filebox.is-cleared .filebox-preview img{opacity:.25;filter:grayscale(1)}
.filebox.is-cleared .filebox-clear{color:var(--copper)!important}
@media (max-width:520px){.filebox{grid-template-columns:60px minmax(0,1fr)}.filebox-preview{width:60px;height:60px}}

/* --- Профиль -------------------------------------------------------------- */
.console-editorial .profile-email{
  display:flex!important;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:14px 0!important;margin-top:6px;background:none!important;border-radius:0!important;box-shadow:none!important;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.console-editorial .profile-email span{font:500 11px/1.4 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.console-editorial .profile-email b{font-weight:600;font-size:15px;word-break:break-all}
.console-editorial .profile-mini-stats b{font-family:var(--font-serif);font-weight:700;font-size:40px;line-height:1;color:var(--text)}
.console-editorial .profile-avatar{border-radius:50%!important;object-fit:cover;box-shadow:0 0 0 4px var(--bg),0 0 0 5px var(--line-2)}
.console-editorial .profile-field-avatar>label{margin-bottom:10px}

/* --- Обзор ---------------------------------------------------------------- */
.console-editorial .dash-head h1{font-weight:700}
.console-editorial .dash-head .ava{border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px var(--bg),0 0 0 5px var(--line-2)}
.console-editorial .ring{
  background:conic-gradient(var(--copper) var(--pct),rgb(var(--ink-rgb) / .1) 0)!important;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));
  position:relative
}
.console-editorial .prog-card{position:relative}
.console-editorial .ring .inner{position:absolute;inset:0;display:grid;place-items:center;background:none!important}
.console-editorial .ring{-webkit-mask:none;mask:none;box-shadow:inset 0 0 0 0 transparent}
.console-editorial .ring::before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--bg)}
.console-editorial .ring .inner{z-index:1;display:flex;align-items:baseline;justify-content:center;gap:1px}
.console-editorial .ring .inner b{font-family:var(--font-serif);font-weight:700;font-size:34px;line-height:1;color:var(--text)}
.console-editorial .ring .inner i{font-style:normal;font-family:var(--font-serif);font-weight:700;font-size:18px;color:var(--copper)}
.console-editorial .pc-body>b{font-family:var(--font-serif);font-weight:700;font-size:26px}
.console-editorial .ach .ai{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;
  background:rgb(var(--accent-rgb) / .08);color:var(--copper);box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / .2)}
.console-editorial .ach .ai-emoji{font-size:19px;filter:saturate(.7)}
.console-editorial .ach b{font-weight:650}
.console-editorial .ach-muted{opacity:.55}
.console-editorial .mod{transition:background .2s,padding .2s}
.console-editorial .mod:hover{background:rgb(255 252 245 / .55);padding-left:10px!important}
[data-theme="dark"] .console-editorial .mod:hover{background:rgb(var(--ink-rgb) / .03)}
.console-editorial .mod .bar{height:3px!important;background:rgb(var(--ink-rgb) / .09)!important;border-radius:3px;overflow:hidden}
.console-editorial .mod .bar i{display:block;height:100%;min-width:0;background:var(--copper)!important;border-radius:3px;transition:width .8s cubic-bezier(.22,.61,.36,1)}
.console-editorial .mod-num{font-weight:500}
.console-editorial .modules-head h2{font-weight:700}

/* --- Урок ------------------------------------------------------------------ */
.console-editorial .lesson-bar h1{font-weight:700}
.console-editorial .player-empty{
  background:
    repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .08) 31px 32px),
    linear-gradient(90deg,transparent 0 58px,rgb(var(--accent-rgb) / .25) 58px 59px,transparent 59px),var(--card)!important;
  box-shadow:inset 0 0 0 1px var(--line)!important;max-height:62vh
}
.console-editorial .player-empty .ic{width:44px;height:44px;padding:12px;border-radius:50%;color:var(--copper);
  box-shadow:inset 0 0 0 1.5px rgb(var(--accent-rgb) / .5);box-sizing:content-box}
.console-editorial .player-empty b{font-family:var(--font-serif);font-weight:700;font-size:24px}
.console-editorial .ll .st{font-family:var(--font-mono);font-size:11px}
.console-editorial .note .remember{position:relative}
.console-editorial .note .remember b{font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:22px;color:var(--copper)}

/* --- Домашка -------------------------------------------------------------- */
.console-editorial .hw h1{font-weight:700}
.console-editorial .hw form .q,.console-editorial .hw .q-checked{
  position:relative;padding:26px 28px!important;margin-bottom:14px!important;background:var(--card)!important;border-radius:4px!important;
  box-shadow:inset 0 0 0 1px var(--line),0 18px 36px -32px rgb(var(--shadow-rgb) / .45)!important;transition:box-shadow .25s
}
.console-editorial .hw form .q::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background .25s}
.console-editorial .hw form .q.is-answered::before{background:var(--copper)}
.console-editorial .hw form .q.is-missing{box-shadow:inset 0 0 0 1.5px var(--copper),0 18px 36px -32px rgb(var(--shadow-rgb) / .45)!important}
.console-editorial .hw form .q.is-missing .qt::after{content:" — нет ответа";font-style:italic;color:var(--copper);font-weight:500}
.console-editorial .q .qn{font-family:var(--font-serif)!important;font-weight:700!important;font-size:26px!important;color:var(--copper)!important;
  background:none!important;width:auto!important;height:auto!important;min-width:34px}
.console-editorial .q .qt{font-weight:600!important;font-size:17px!important}
.console-editorial .hw .opts{display:grid;gap:8px;margin-top:16px}
.console-editorial .hw .opt{padding:12px 14px!important;border-radius:4px!important;background:rgb(255 252 245 / .55)!important;
  box-shadow:inset 0 0 0 1px var(--line)!important;transition:background .15s,box-shadow .15s,transform .15s}
[data-theme="dark"] .console-editorial .hw .opt{background:rgb(var(--ink-rgb) / .03)!important}
.console-editorial .hw label.opt:hover{box-shadow:inset 0 0 0 1px var(--line-2)!important;transform:translateX(3px)}
.console-editorial .hw .opt .mk{
  width:28px!important;height:28px!important;border-radius:50%!important;display:grid;place-items:center;flex-shrink:0;
  font:700 15px/1 var(--font-serif);color:var(--muted);background:none!important;box-shadow:inset 0 0 0 1.5px var(--line-2)!important;transition:.15s
}
.console-editorial .hw .opt.sel{box-shadow:inset 0 0 0 1.5px var(--copper)!important;background:rgb(var(--accent-rgb) / .06)!important}
.console-editorial .hw .opt.sel .mk{background:var(--copper)!important;color:var(--on-accent);box-shadow:none!important}
.console-editorial .hw .opt.correct{box-shadow:inset 0 0 0 1.5px rgb(var(--green-rgb) / .6)!important;background:rgb(var(--green-rgb) / .08)!important}
.console-editorial .hw .opt.correct .mk{background:var(--green)!important;color:#fff;box-shadow:none!important}
.console-editorial .hw .opt.wrong{box-shadow:inset 0 0 0 1.5px rgb(var(--danger-rgb) / .55)!important;background:rgb(var(--danger-rgb) / .07)!important}
.console-editorial .hw .opt.wrong .mk{background:var(--danger)!important;color:#fff;box-shadow:none!important}
.console-editorial .hw .opt.wrong{text-decoration:line-through;text-decoration-color:rgb(var(--danger-rgb) / .6)}
.console-editorial .hw .opt-tag{margin-left:auto;font:500 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);text-decoration:none}
.console-editorial .hw .qexpl{margin-top:14px;padding:12px 16px;border-left:3px solid var(--tq);background:rgb(var(--blue-rgb) / .06);
  font-size:15px;line-height:1.6;color:var(--text)}
.console-editorial .hw .qexpl::before{content:"Почему так: ";font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:17px;color:var(--tq)}
.console-editorial .hw .qmark{font:500 10px/1 var(--font-mono)!important;letter-spacing:.09em;text-transform:uppercase;padding:5px 9px;border-radius:20px}
.console-editorial .hw .qmark.ok{color:var(--green);background:rgb(var(--green-rgb) / .1)}
.console-editorial .hw .qmark.no{color:var(--danger);background:rgb(var(--danger-rgb) / .1)}
.console-editorial .hw-foot{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:20px;padding:14px 0;background:linear-gradient(transparent,var(--bg) 30%)}
.hw-meter{flex:1;min-width:120px;height:4px;border-radius:4px;background:rgb(var(--ink-rgb) / .1);overflow:hidden;order:2}
.hw-meter i{display:block;height:100%;width:0;background:var(--copper);border-radius:4px;transition:width .35s cubic-bezier(.22,.61,.36,1)}
#hwform.is-complete .hw-meter i{background:var(--green)}
.console-editorial .hw-foot .cnt{order:3;font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.console-editorial .hw-best{font-family:var(--font-serif);font-style:italic;font-size:18px;color:var(--muted);margin-bottom:16px}
.console-editorial .hw-best b{font-style:normal;color:var(--copper)}
/* результат — отметка красной ручкой */
.console-editorial .hw-result{position:relative;padding:30px 150px 30px 32px!important;margin-bottom:24px!important;border-radius:4px!important;
  background:var(--card)!important;box-shadow:inset 0 0 0 1px var(--line),0 24px 44px -34px rgb(var(--shadow-rgb) / .5)!important}
.console-editorial .hw-result .score{
  position:absolute;right:30px;top:50%;width:96px;height:96px;margin-top:-48px;display:grid;place-items:center;align-content:center;
  font-family:var(--font-serif);font-weight:700;font-style:italic;font-size:44px;line-height:1;color:var(--copper)!important;
  border:2.5px solid rgb(var(--accent-rgb) / .75);border-radius:52% 48% 55% 45%/48% 55% 45% 52%;transform:rotate(-10deg);background:none!important
}
.console-editorial .hw-result .score span{font-size:18px;opacity:.8}
.console-editorial .hw-result.is-perfect .score{color:var(--green)!important;border-color:rgb(var(--green-rgb) / .7)}
.console-editorial .hw-result h2{font-family:var(--font-serif);font-weight:700;font-size:32px;margin:0 0 6px}
.console-editorial .hw-result.is-perfect h2::after{content:" ✓";color:var(--green)}
@media (prefers-reduced-motion:no-preference){
  .console-editorial .hw-result .score{animation:gradeStamp .5s .2s cubic-bezier(.3,1.6,.5,1) both}
}
@media (max-width:600px){
  .console-editorial .hw-result{padding:24px 20px 120px!important}
  .console-editorial .hw-result .score{top:auto;bottom:18px;margin-top:0;right:20px;width:80px;height:80px;font-size:36px}
  .console-editorial .hw form .q,.console-editorial .hw .q-checked{padding:20px 16px!important}
}

/* --- Письменная работа ----------------------------------------------------- */
.console-editorial .written-page h1{font-weight:700}
.console-editorial .written-prompt{position:relative;
  background:repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .08) 31px 32px),var(--card)!important}
.console-editorial .written-kicker{font-family:var(--font-serif)!important;font-style:italic;font-weight:700!important;font-size:22px!important;
  letter-spacing:0!important;text-transform:none!important;color:var(--copper)!important}
.console-editorial .written-feedback{border-left:3px solid var(--copper)!important}
.console-editorial .written-feedback b{font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:19px;color:var(--copper)}
.console-editorial .written-page textarea{min-height:240px;font-size:16px;line-height:1.75;
  background:repeating-linear-gradient(180deg,transparent 0 27px,rgb(var(--blue-rgb) / .1) 27px 28px) local,rgb(255 252 245 / .6)!important;
  line-height:28px!important;padding-top:6px!important}

/* --- Панель управления ----------------------------------------------------- */
.console-editorial .mh1{font-weight:700!important}
.console-editorial .mstat .n{font-weight:700!important;font-size:42px!important;line-height:1}
.console-editorial .mstat{transition:background .2s}
.console-editorial .mstat:hover{background:rgb(255 252 245 / .5)}
.console-editorial .mtile b{font-family:var(--font-serif);font-weight:700!important;font-size:20px!important}
.console-editorial .mtile{transition:background .2s,padding .2s}
.console-editorial .mform :is(input[type=text],input[type=number],input[type=url],input[type=email],input[type=password],input[type=date],input[type=datetime-local],textarea,select){
  border-radius:4px!important;background:rgb(255 252 245 / .55)!important;box-shadow:inset 0 0 0 1px var(--line-2)!important;
  transition:box-shadow .15s,background .15s
}
[data-theme="dark"] .console-editorial .mform :is(input,textarea,select){background:rgb(var(--ink-rgb) / .04)!important}
.console-editorial .mform :is(input,textarea,select):focus{box-shadow:inset 0 0 0 1.5px var(--copper),0 0 0 4px rgb(var(--accent-rgb) / .1)!important;background:var(--card)!important}
.console-editorial .mform .field>label{font:500 11px/1.4 var(--font-mono)!important;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)!important}
.console-editorial .mform .field-check>label{font:inherit!important;text-transform:none;letter-spacing:0;color:var(--text)!important}
.console-editorial .mform .field-check input[type=checkbox]{accent-color:var(--copper)!important}
.console-editorial .mform select{appearance:none;-webkit-appearance:none;padding-right:40px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23b33219' stroke-width='1.6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 14px center!important}
.console-editorial .merr{padding:8px 12px;border-left:3px solid var(--danger);background:rgb(var(--danger-rgb) / .07);font-size:14px}
.console-editorial .mactions{position:sticky;bottom:0;z-index:5;padding:14px 0;margin-bottom:-14px;background:linear-gradient(transparent,var(--bg) 35%)}
.console-editorial .msg{border-radius:4px}
.console-editorial table{font-variant-numeric:lining-nums tabular-nums}
.console-editorial .hw .opt.wrong{text-decoration:none}
.console-editorial .ring .inner{align-items:center!important}
.console-editorial .ring .inner b{line-height:1}
.console-editorial .hw-result .score{display:flex!important;align-items:baseline;justify-content:center;gap:1px}
.console-editorial .mform .filebox-drop,.filebox-drop{display:flex!important;flex-direction:column!important;align-items:flex-start}
.filebox-drop>*{display:block}
.console-editorial .hw-result .score{align-items:center!important;padding-top:4px}

/* ===== Знак школы ==========================================================
   Лучи разбора из одной точки: символ #darel-mark в _icons.html, крупная
   версия со свечением — static/img/darel-burst.svg.
   ========================================================================= */
:root{--mark-ink:var(--text);--mark-acc:var(--copper)}
.brand .mk,.landing-editorial .brand .mk,.console-editorial .brand .mk{
  position:relative;width:38px!important;height:38px!important;padding:0!important;display:grid;place-items:center;
  background:none!important;box-shadow:none!important;border-radius:0!important;color:var(--text);flex-shrink:0
}
.brand .mk svg{width:100%;height:100%;overflow:visible;transition:transform .9s cubic-bezier(.22,.61,.36,1)}
.brand:hover .mk svg{transform:rotate(45deg)}
.brand{gap:10px!important}
.brand .mk.is-letter svg{opacity:.12}
.brand .mk.is-letter::after{content:attr(data-letter);position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--font-serif);font-weight:700;font-size:28px;line-height:1;color:var(--copper)}
@media (prefers-reduced-motion:no-preference){
  .landing-editorial .topbar .brand .mk svg{animation:markIn 1.1s cubic-bezier(.22,.61,.36,1) both}
  @keyframes markIn{from{transform:rotate(-90deg) scale(.6);opacity:0}}
}

/* Крупный знак: декоративные места */
.landing-editorial .final-section .cta-final{position:relative;overflow:hidden}
.landing-editorial .final-section .cta-final::after{
  content:"";position:absolute;right:-90px;top:50%;width:420px;height:420px;margin-top:-210px;pointer-events:none;
  background:url("../img/darel-burst.723488456b49.svg") center/contain no-repeat;opacity:.22
}
.landing-editorial .final-section .cta-final>*{position:relative;z-index:1}
.ru-404-sheet::after{
  content:"";position:absolute;right:-70px;bottom:-70px;width:300px;height:300px;pointer-events:none;
  background:url("../img/darel-burst.723488456b49.svg") center/contain no-repeat;opacity:.18
}
.landing-foot .lf-in .brand .mk{width:44px!important;height:44px!important}
@media (prefers-reduced-motion:no-preference){
  .landing-editorial .final-section .cta-final::after{animation:burstSpin 90s linear infinite}
  @keyframes burstSpin{to{transform:rotate(360deg)}}
}
[data-theme="dark"] :is(.cta-final,.ru-404-sheet)::after{filter:invert(.85) hue-rotate(180deg) saturate(1.4)}
.auth-right{position:relative;overflow:hidden}
.auth-right::after{
  content:"";position:absolute;right:-120px;bottom:-120px;width:520px;height:520px;pointer-events:none;z-index:0;
  background:url("../img/darel-burst.723488456b49.svg") center/contain no-repeat;opacity:.2
}
.auth-right>*{position:relative;z-index:1}
@media (prefers-reduced-motion:no-preference){.auth-right::after{animation:burstSpin 120s linear infinite}}
[data-theme="dark"] .auth-right::after{filter:invert(.85) hue-rotate(180deg) saturate(1.4)}
.ru-404-sheet{overflow:hidden}

/* ===== Логотип: знак + название капителью ================================== */
.brand{display:inline-flex!important;align-items:center!important;gap:14px!important;text-decoration:none}
.brand .mk,.landing-editorial .brand .mk,.console-editorial .brand .mk{width:42px!important;height:42px!important}
.brand .mk svg{transition:transform 1.4s cubic-bezier(.22,.61,.36,1)}
.brand:hover .mk svg{transform:rotate(90deg)}
.brand-word{display:flex;flex-direction:column;justify-content:center;gap:6px;padding-left:14px;
  border-left:1px solid rgb(var(--ink-rgb) / .22);line-height:1;white-space:nowrap}
.brand-word b{
  font-family:var(--font-serif)!important;font-weight:600!important;font-size:19px!important;line-height:1;
  letter-spacing:.3em;margin-right:-.3em;text-transform:uppercase;color:var(--text);
  font-feature-settings:"kern","liga","lnum"
}
.brand-word small{
  font:500 8px/1 var(--font-mono);letter-spacing:.24em;margin-right:-.24em;text-transform:uppercase;color:var(--copper)
}
.brand:hover .brand-word b{color:var(--copper);transition:color .3s}
/* в подвале и на широких страницах — крупнее */
.landing-foot .brand .mk{width:50px!important;height:50px!important}
.landing-foot .brand-word b{font-size:22px!important}
.landing-foot .brand-word small{font-size:9px}
/* узкие места: боковая колонка кабинета и телефон */
.console-editorial .aside .brand-word b{font-size:17px!important;letter-spacing:.26em}
.console-editorial .aside .brand-word small{font-size:7.5px;letter-spacing:.2em}
@media (max-width:700px){
  .brand .mk,.landing-editorial .brand .mk,.console-editorial .brand .mk{width:34px!important;height:34px!important}
  .brand{gap:11px!important}
  .brand-word{padding-left:11px;gap:5px}
  .brand-word b{font-size:16px!important;letter-spacing:.24em;margin-right:-.24em}
  .brand-word small{font-size:7px;letter-spacing:.18em}
}
.brand .mk.is-letter::after{font-size:30px}
.brand-word{align-items:stretch}
.brand-word b{margin-right:-.3em;padding-right:0}
.brand-word small,.landing-foot .brand-word small,.console-editorial .aside .brand-word small{
  font-weight:400;font-size:7.5px;letter-spacing:.06em;margin-right:0;
  text-align:justify;text-align-last:justify;text-justify:inter-character;opacity:.95
}
.brand-word small{width:calc(100% - .3em * 19 / 7.5 * 0)}
.landing-foot .brand-word small{font-size:8.5px}
@media (max-width:700px){.brand-word small{font-size:6.5px!important;letter-spacing:.04em}}

/* ===== Полировка: заголовки страниц, мелочи ================================ */
:is(.public-editorial,.auth-editorial) :is(.sec-head h1,.legal-doc h1,.auth-box h1,main > .wrap h1){
  font-family:var(--font-serif)!important;font-weight:700!important;letter-spacing:-.01em!important;line-height:1.02!important;
  font-size:clamp(40px,4.4vw,60px)!important
}
.legal-doc h2{font-family:var(--font-serif);font-weight:700;font-size:26px;letter-spacing:0}
.reviews-context{margin-top:14px!important;display:block}
.sec-head p+.reviews-context{margin-top:14px}
.pm-soon{display:inline-block;padding:4px 9px;border-radius:20px;font:500 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--copper);box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / .35)}
.prog-stats .ps .ru-words:empty{display:none}

/* Аббревиатуры: пунктир и подсказка с расшифровкой */
abbr.ru-abbr{text-decoration:none;border-bottom:1px dotted rgb(var(--accent-rgb) / .55);cursor:help;position:relative}
abbr.ru-abbr::after{
  content:attr(data-full);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,4px);z-index:30;
  white-space:nowrap;padding:6px 10px;border-radius:3px;pointer-events:none;opacity:0;transition:.2s;
  font:italic 600 15px/1.2 var(--font-serif);letter-spacing:0;text-transform:none;color:var(--card);background:var(--text)
}
abbr.ru-abbr:hover::after,abbr.ru-abbr:focus-visible::after{opacity:1;transform:translate(-50%,0)}
@media (hover:none){abbr.ru-abbr::after{display:none}}

/* Кнопки: мягкое нажатие */
.btn{transition:transform .12s ease,box-shadow .2s,background .2s,color .2s}
.btn:active{transform:translateY(1px) scale(.985)}

/* Фокус с клавиатуры — «красная ручка» */
:where(a,button,input,textarea,select,summary):focus-visible{outline:2px solid var(--copper)!important;outline-offset:3px!important}
@media (min-width:701px){.rev-grid>.review:last-child:nth-child(odd){grid-column:1/-1}}
.auth-right :is(h1,h2){font-family:var(--font-serif)!important;font-weight:700!important;letter-spacing:-.01em!important;line-height:1.05!important}
.auth-right :is(h1,h2) :is(em,i,span){font-weight:700!important}

/* ===== Карта экзамена ====================================================== */
.exam-map{margin:0 0 44px;padding:22px 24px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line),0 20px 40px -36px rgb(var(--shadow-rgb) / .5)}
.exam-map-title{display:flex;justify-content:space-between;gap:12px;margin:0 0 16px;font-family:var(--font-serif);font-weight:700;font-size:24px;color:var(--text)}
.exam-map-title span{font:500 10.5px/2.2 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.exam-map-row{display:grid;grid-template-columns:1fr 11fr 1fr;gap:14px}
.exam-part{display:grid;gap:8px}
.exam-cells{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px}
.exam-cell{display:grid;place-items:center;aspect-ratio:1;min-width:0;font-family:var(--font-serif);font-weight:700;font-size:20px;line-height:1;
  color:var(--text);text-decoration:none;background:rgb(255 252 245 / .6);box-shadow:inset 0 0 0 1px var(--line-2);transition:background .2s,color .2s,transform .2s}
[data-theme="dark"] .exam-cell{background:rgb(var(--ink-rgb) / .04)}
.exam-part-1 .exam-cell,.exam-part-3 .exam-cell{color:var(--copper);box-shadow:inset 0 0 0 1.5px rgb(var(--accent-rgb) / .5)}
a.exam-cell:hover,.exam-cell.is-lit{background:var(--copper);color:var(--on-accent);transform:translateY(-3px)}
.exam-part-label{font:500 10px/1.3 var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted-2);border-top:1px solid var(--line-2);padding-top:6px}
.public-editorial .prog-mod{transition:background .25s,box-shadow .25s}
.public-editorial .prog-mod.is-lit{background:rgb(var(--accent-rgb) / .06);box-shadow:inset 3px 0 0 var(--copper)}
@media (max-width:700px){
  .exam-map{padding:16px}
  .exam-map-row{grid-template-columns:1fr;gap:12px}
  .exam-cells{grid-auto-flow:row;grid-template-columns:repeat(11,1fr)}
  .exam-part-1 .exam-cells,.exam-part-3 .exam-cells{grid-template-columns:repeat(11,1fr)}
  .exam-cell{font-size:15px}
  .exam-map-title span{display:none}
}

/* ===== «Найди ошибку»: счёт ================================================ */
.try-tally{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px;font-family:var(--font-serif);font-weight:700;font-size:20px;color:var(--text)}
.try-dots{display:inline-flex;gap:6px}
.try-dots i{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line-2);transition:.3s}
.try-dots i.on{background:var(--copper);box-shadow:none;transform:scale(1.1)}
.try-grade{font-style:italic;color:var(--copper);transform:rotate(-4deg);display:inline-block}
@media (prefers-reduced-motion:no-preference){.try-tally.is-won .try-grade{animation:gradeStamp .5s cubic-bezier(.3,1.6,.5,1) both}}
.ru-score{margin-top:10px;font:500 10.5px/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.ru-score:empty{display:none}

/* ===== Печать документов =================================================== */
@media print{
  .topbar,.landing-foot,.ru-up,.cookie-bar,.ru-toast,.theme-toggle,.mobile-menu,.reading-bar{display:none!important}
  body{background:#fff!important;color:#000}
  body::before{display:none!important}
  a{color:#000;text-decoration:underline}
}
.exam-map-title,.try-tally,.exam-cell{font-weight:700!important}
/* тёмная тема: без «истончающего» сглаживания — шрифты плотнее */
[data-theme="dark"] body{-webkit-font-smoothing:auto!important;-moz-osx-font-smoothing:auto!important}
/* мобильное меню — как оглавление книги */
@media (max-width:900px){
  .mobile-menu a:not(.btn){display:flex;align-items:baseline;gap:14px;font-family:var(--font-serif)!important;font-weight:700!important;font-size:30px!important;padding:14px 6px!important}
  .mobile-menu a:not(.btn)::before{content:counter(mm,decimal-leading-zero);counter-increment:mm;font:500 11px/1 var(--font-mono);letter-spacing:.08em;color:var(--copper)}
  .mobile-menu{counter-reset:mm}
}

/* ===== Кабинет v2 ========================================================== */
.console-editorial .dash-v2{max-width:1180px;margin:0 auto;padding:44px 44px 80px}
.dx-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}
.dx-hello .kicker{text-transform:capitalize}
.dx-hello h1{margin:10px 0 10px;font-family:var(--font-serif);font-weight:700;font-size:clamp(38px,4vw,56px);line-height:1;letter-spacing:-.01em}
.dx-hello h1 em{color:var(--copper);font-style:italic}
.dx-hello p{max-width:560px;color:var(--muted);font-size:16px;line-height:1.6}
.dx-exam{flex-shrink:0;display:grid;justify-items:center;padding:16px 22px;min-width:150px;text-align:center;
  background:var(--card);box-shadow:inset 0 0 0 1px var(--line),inset 0 3px 0 var(--copper),0 20px 40px -34px rgb(var(--shadow-rgb) / .5)}
.dx-exam b{font-family:var(--font-serif);font-weight:700;font-size:54px;line-height:1;color:var(--copper)}
.dx-exam span{font:500 10.5px/1.4 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text);margin-top:4px}
.dx-exam small{font-family:var(--font-serif);font-style:italic;font-size:15px;color:var(--muted)}

.dx-continue{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:34px;align-items:center;padding:30px 34px;margin-bottom:22px;overflow:hidden;
  background:
    repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .06) 31px 32px),
    linear-gradient(90deg,transparent 0 22px,rgb(var(--accent-rgb) / .22) 22px 23px,transparent 23px),var(--card);
  box-shadow:inset 0 0 0 1px var(--line),0 30px 60px -44px rgb(var(--shadow-rgb) / .55)}
.dx-continue::after{content:"";position:absolute;right:-110px;top:-110px;width:320px;height:320px;pointer-events:none;
  background:url("../img/darel-burst.723488456b49.svg") center/contain no-repeat;opacity:.12}
[data-theme="dark"] .dx-continue::after{filter:invert(.85) hue-rotate(180deg) saturate(1.4)}
.dx-ring{position:relative;width:150px;height:150px}
.dx-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.dx-ring circle{fill:none;stroke-width:9}
.dx-ring .bg{stroke:rgb(var(--ink-rgb) / .09)}
.dx-ring .fg{stroke:var(--copper);stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1.2s cubic-bezier(.22,.61,.36,1)}
.dx-ring .fg[style*="dasharray"]{}
.dx-ring-in{position:absolute;inset:0;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;column-gap:1px}
.dx-ring-in b{font-family:var(--font-serif);font-weight:700;font-size:48px;line-height:1;color:var(--text)}
.dx-ring-in i{font-style:normal;font-family:var(--font-serif);font-weight:700;font-size:22px;color:var(--copper);align-self:flex-start;margin-top:4px}
.dx-ring-in small{flex-basis:100%;text-align:center;font:500 10px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);margin-top:4px}
.dx-continue-body{position:relative;z-index:1}
.dx-module{margin-top:10px;font-family:var(--font-serif);font-style:italic;font-size:17px;color:var(--copper)}
.dx-continue-body h2{margin:4px 0 12px;font-family:var(--font-serif);font-weight:700;font-size:clamp(28px,2.6vw,38px);line-height:1.08}
.dx-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:18px;font:500 11px/1 var(--font-mono);letter-spacing:.06em;color:var(--muted-2)}
.dx-sub{color:var(--muted)}
.dx-kpis{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;min-width:300px;border-left:1px solid var(--line)}
.dx-kpis div{padding:12px 0 12px 22px;border-bottom:1px solid var(--line)}
.dx-kpis div:nth-child(n+3){border-bottom:0}
.dx-kpis dt{font:500 9.5px/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.dx-kpis dd{margin:4px 0 0;font-family:var(--font-serif);font-weight:700;font-size:34px;line-height:1;color:var(--text)}
.dx-kpis dd small{font-size:17px;color:var(--muted)}

.dx-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:14px 20px;margin-bottom:22px;color:var(--text);text-decoration:none;
  background:rgb(var(--blue-rgb) / .07);box-shadow:inset 3px 0 0 var(--tq)}
.dx-banner b{font-family:var(--font-serif);font-size:19px}
.dx-banner span{color:var(--muted);font-size:14px}

.dx-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;margin-bottom:22px}
.dx-side{display:grid;gap:22px;align-content:start}
.dx-card{padding:24px 26px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line),0 20px 40px -38px rgb(var(--shadow-rgb) / .5)}
.dx-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.dx-card-head h3{font-family:var(--font-serif);font-weight:700;font-size:25px;line-height:1.1}

.dx-mod-list{list-style:none;margin:0;padding:0}
.dx-mod{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--line);transition:background .2s,padding .2s}
.dx-mod:hover{background:rgb(var(--accent-rgb) / .04);padding-left:8px;padding-right:8px}
.dx-mod-num{font:500 11px/1 var(--font-mono);color:var(--copper)}
.dx-mod-body b{display:block;font-weight:600;font-size:15.5px;line-height:1.3;margin-bottom:7px}
.dx-bar{height:3px;border-radius:3px;background:rgb(var(--ink-rgb) / .09);overflow:hidden}
.dx-bar i{display:block;height:100%;border-radius:3px;background:var(--copper)}
.dx-mod.done .dx-bar i{background:var(--green)}
.dx-mod-state{font:500 10.5px/1 var(--font-mono);letter-spacing:.06em;color:var(--muted-2);white-space:nowrap}
.dx-mod.lock .dx-mod-body b{color:var(--muted)}

.dx-heat{display:flex;gap:4px}
.dx-heat-days{display:grid;grid-template-rows:repeat(7,1fr);gap:4px;margin-right:4px;font:500 9px/1 var(--font-mono);color:var(--muted-2)}
.dx-heat-days span{display:flex;align-items:center;height:16px}
.dx-heat-col{display:grid;grid-template-rows:repeat(7,16px);gap:4px;flex:1}
.dx-heat i,.dx-heat-legend i{display:block;min-width:10px;height:16px;border-radius:3px;background:rgb(var(--ink-rgb) / .07)}
.dx-heat i.l1,.dx-heat-legend i.l1{background:rgb(var(--accent-rgb) / .3)}
.dx-heat i.l2,.dx-heat-legend i.l2{background:rgb(var(--accent-rgb) / .6)}
.dx-heat i.l3,.dx-heat-legend i.l3{background:var(--copper)}
.dx-heat i.fut{background:transparent;box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .06)}
.dx-heat i.today{box-shadow:0 0 0 1.5px var(--text)}
.dx-heat-legend{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:10px;font:500 9.5px/1 var(--font-mono);color:var(--muted-2)}
.dx-heat-legend i{width:12px;min-width:12px;height:12px}

.dx-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dx-badge{display:grid;justify-items:center;gap:6px;padding:14px 8px;text-align:center;box-shadow:inset 0 0 0 1px var(--line);opacity:.45;filter:grayscale(1)}
.dx-badge.on{opacity:1;filter:none;box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / .35);background:rgb(var(--accent-rgb) / .04)}
.dx-badge span{font-size:26px;line-height:1}
.dx-badge b{font-size:12.5px;font-weight:600;line-height:1.25}

.dx-feed ul{list-style:none;margin:0;padding:0}
.dx-ev{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;gap:14px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line)}
.dx-ev-mark{font-family:var(--font-serif);font-weight:700;font-size:18px;color:var(--copper)}
.dx-ev.perfect .dx-ev-mark,.dx-ev.done .dx-ev-mark{color:var(--green)}
.dx-ev a{color:var(--text);font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dx-ev a:hover{color:var(--copper)}
.dx-ev-note{font-family:var(--font-serif);font-style:italic;font-size:16px;color:var(--muted)}
.dx-ev time{font:500 10px/1 var(--font-mono);letter-spacing:.05em;color:var(--muted-2);white-space:nowrap}

@media (max-width:1100px){
  .dx-continue{grid-template-columns:auto minmax(0,1fr)}
  .dx-kpis{grid-column:1/-1;grid-template-columns:repeat(4,1fr);border-left:0;border-top:1px solid var(--line);min-width:0}
  .dx-kpis div{border-bottom:0;padding-left:0}
  .dx-grid{grid-template-columns:1fr}
}
@media (max-width:700px){
  .console-editorial .dash-v2{padding:26px 18px 60px}
  .dx-head{flex-direction:column;align-items:stretch}
  .dx-exam{flex-direction:row;display:flex;align-items:baseline;gap:10px;justify-content:flex-start;padding:12px 16px}
  .dx-exam b{font-size:38px}
  .dx-continue{grid-template-columns:1fr;gap:18px;padding:24px 20px 20px 34px;background-position:0 0,-4px 0,0 0}
  .dx-ring{width:120px;height:120px}
  .dx-ring-in b{font-size:38px}
  .dx-kpis{grid-template-columns:1fr 1fr}
  .dx-kpis div{padding:10px 0}
  .dx-card{padding:20px 16px}
  .dx-heat i{min-width:0;height:13px}
  .dx-heat-col{grid-template-rows:repeat(7,13px);gap:3px}
  .dx-heat-days span{height:13px}
  .dx-ev{grid-template-columns:24px minmax(0,1fr);row-gap:2px}
  .dx-ev-note,.dx-ev time{grid-column:2}
}

/* ===== Урок v2 ============================================================= */
.lx-facts{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font:500 10.5px/1 var(--font-mono);letter-spacing:.06em;color:var(--muted-2)}
.lx-steps{display:flex;flex-wrap:wrap;gap:0;list-style:none;margin:0;padding:14px 44px;border-bottom:1px solid var(--line);counter-reset:none}
.lx-steps li{display:flex;align-items:center;position:relative;padding-right:34px}
.lx-steps li:not(:last-child)::after{content:"";position:absolute;right:8px;top:50%;width:18px;height:1px;background:var(--line-2)}
.lx-steps li>a,.lx-steps li{gap:9px;color:var(--text);text-decoration:none}
.lx-steps li>a{display:flex;align-items:center}
.lx-steps i{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;font:700 13px/1 var(--font-serif);font-style:normal;
  box-shadow:inset 0 0 0 1.5px var(--line-2);color:var(--muted)}
.lx-steps span{font-size:14px;font-weight:550}
.lx-steps li.has i{box-shadow:inset 0 0 0 1.5px var(--copper);color:var(--copper)}
.lx-steps li.done i{background:var(--green);color:#fff;box-shadow:none}
.lx-steps li.none{opacity:.45}
.lx-steps li>a:hover span{color:var(--copper)}

.lx-notes{margin-top:30px;padding:22px 24px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.lx-notes-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.lx-notes-head h3{font-family:var(--font-serif);font-weight:700;font-size:23px}
.lx-notes-state{font:500 10px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}
.lx-notes textarea{width:100%;min-height:130px;resize:vertical;border:0;padding:4px 0;font:450 16px/28px var(--font-sans);color:var(--text);
  background:repeating-linear-gradient(180deg,transparent 0 27px,rgb(var(--blue-rgb) / .12) 27px 28px) local;outline:none}

.lx-pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.lx-pager a{display:grid;gap:4px;padding:16px 20px;color:var(--text);text-decoration:none;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .2s,background .2s}
.lx-pager a:hover{box-shadow:inset 0 0 0 1px var(--copper);background:rgb(var(--accent-rgb) / .04)}
.lx-pager small{font:500 10px/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--copper)}
.lx-pager b{font-family:var(--font-serif);font-weight:700;font-size:19px;line-height:1.2}
.lx-next{text-align:right;grid-column:2}

.lx-focus{width:100%;margin-bottom:16px;padding:9px 12px;font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);box-shadow:inset 0 0 0 1px var(--line-2);border-radius:3px;background:none;cursor:pointer}
.lx-focus:hover{color:var(--copper);box-shadow:inset 0 0 0 1px var(--copper)}
html.lx-focus-on .console-editorial .aside,html.lx-focus-on .console-editorial .console-brand-bar{display:none!important}
html.lx-focus-on .console-editorial .app{grid-template-columns:1fr!important}
html.lx-focus-on .lesson-side>*:not(.lx-focus){display:none}
html.lx-focus-on .lesson-body{grid-template-columns:minmax(0,860px) 190px!important;justify-content:center}
@media (max-width:700px){
  .lx-steps{padding:12px 18px;gap:8px 0}
  .lx-steps li{padding-right:18px}
  .lx-steps li:not(:last-child)::after{display:none}
  .lx-pager{grid-template-columns:1fr}
  .lx-next{grid-column:1}
}
.dx-hello .kicker{text-transform:none}
.dx-hello .kicker::first-letter{text-transform:uppercase}
.dx-ev.ev-done .dx-ev-mark{color:var(--green)}
.lx-notes-head{flex-wrap:wrap}
.lx-notes-head h3{white-space:nowrap}
html.lx-focus-on .lesson-body{grid-template-columns:minmax(0,900px) 200px!important}

/* ===== Панель управления v2 ================================================ */
.mx-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.mx-head .kicker{text-transform:none}.mx-head .kicker::first-letter{text-transform:uppercase}
.mx-quick{display:flex;gap:8px}
kbd{display:inline-block;padding:1px 6px;border-radius:3px;font:500 11px/1.5 var(--font-mono);color:var(--text);background:var(--card);box-shadow:inset 0 -1px 0 var(--line-2),inset 0 0 0 1px var(--line)}
.mx-inbox{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin:18px 0;padding:14px 18px;background:rgb(var(--accent-rgb) / .07);box-shadow:inset 3px 0 0 var(--copper)}
.mx-inbox-title{font:500 10.5px/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--copper)}
.mx-inbox a{color:var(--text);text-decoration:none;font-size:15px}
.mx-inbox a b{font-family:var(--font-serif);font-size:22px;color:var(--copper)}
.mx-inbox a:hover{text-decoration:underline}
.mx-charts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}
.mx-chart{padding:18px 18px 14px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.mx-chart header{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:12px}
.mx-chart header span{flex-basis:100%;font:500 10.5px/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.mx-chart header b{font-family:var(--font-serif);font-weight:700;font-size:36px;line-height:1}
.mx-chart header small{font-family:var(--font-serif);font-style:italic;color:var(--muted)}
.mx-bars{display:flex;align-items:flex-end;gap:2px;height:64px;border-bottom:1px solid var(--line-2)}
.mx-bars i{flex:1;height:calc(var(--h) * 1%);min-height:2px;background:var(--copper);opacity:.85;border-radius:2px 2px 0 0;transition:opacity .15s}
.mx-bars i[style="--h:0"]{background:rgb(var(--ink-rgb) / .1)}
.mx-bars.green i{background:var(--green)}
.mx-bars i:hover{opacity:1;outline:1px solid var(--text)}
.mx-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:26px}
.mx-card{padding:20px 22px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.mx-card-title{font-family:var(--font-serif);font-weight:700;font-size:23px;margin-bottom:12px}
.mx-funnel{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mx-funnel li{display:grid;grid-template-columns:150px 1fr 40px;gap:12px;align-items:center;font-size:14px}
.mx-funnel b{font-family:var(--font-serif);font-size:22px;text-align:right}
.mx-f-bar{display:block;height:6px;border-radius:6px;background:rgb(var(--ink-rgb) / .08);overflow:hidden}
.mx-f-bar i{display:block;height:100%;background:var(--copper);border-radius:6px}
.mx-ready,.mx-list{list-style:none;margin:0;padding:0}
.mx-ready li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:9px 0;border-top:1px solid var(--line)}
.mx-ready a,.mx-list a{color:var(--text);font-weight:600;text-decoration:none}
.mx-ready a:hover,.mx-list a:hover{color:var(--copper)}
.mx-ready-meta{font:500 10px/1.6 var(--font-mono);color:var(--muted-2);text-align:right}
.mx-ready .mx-f-bar{grid-column:1/-1;height:4px}
.mx-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:baseline;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px}
.mx-list li>span:first-child,.mx-list a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mx-list time{font:500 10px/1 var(--font-mono);color:var(--muted-2);white-space:nowrap}
.mx-score{font-family:var(--font-serif);font-weight:700;font-size:18px;color:var(--green)}
.mx-score.bad{color:var(--copper)}
.mx-empty{display:block!important;color:var(--muted);font-style:italic;border-top:0!important}
.mx-section{font-family:var(--font-serif);font-weight:700;font-size:26px;margin:8px 0 12px}
.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:20px;display:inline-grid;place-items:center;font:600 11px/1 var(--font-mono);color:var(--on-accent);background:var(--copper)}
.mx-pal{position:fixed;inset:0;z-index:200;display:grid;place-items:start center;padding-top:14vh;background:rgb(var(--shadow-rgb) / .35);backdrop-filter:blur(3px)}
.mx-pal[hidden]{display:none}
.mx-pal-box{width:min(560px,calc(100vw - 32px));background:var(--card);box-shadow:0 40px 80px -30px rgb(var(--shadow-rgb) / .6),inset 0 0 0 1px var(--line-2)}
.mx-pal input{width:100%;padding:18px 20px;border:0;border-bottom:1px solid var(--line-2);background:none;font:600 19px/1.2 var(--font-sans);color:var(--text);outline:none!important}
.mx-pal ul{list-style:none;margin:0;padding:6px;max-height:50vh;overflow:auto}
.mx-pal li{padding:10px 14px;cursor:pointer;font-size:15px}
.mx-pal li.on{background:rgb(var(--accent-rgb) / .1);box-shadow:inset 3px 0 0 var(--copper)}
.mx-pal li.none{color:var(--muted);cursor:default}
.mx-pal p{padding:10px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
@media (max-width:900px){.mx-charts,.mx-grid{grid-template-columns:1fr}.mx-funnel li{grid-template-columns:120px 1fr 34px}}
.mx-pal input::-webkit-search-cancel-button{display:none}

/* ===== Профиль v2 ========================================================== */
.console-editorial .px{max-width:1180px;margin:0 auto;padding:44px 44px 80px}
.px-cover{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:34px;align-items:center;padding:34px 36px;margin-bottom:18px;overflow:hidden;
  background:repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .06) 31px 32px),var(--card);
  box-shadow:inset 0 0 0 1px var(--line),0 30px 60px -44px rgb(var(--shadow-rgb) / .55)}
.px-cover::after{content:"";position:absolute;right:-120px;bottom:-140px;width:380px;height:380px;pointer-events:none;
  background:url("../img/darel-burst.723488456b49.svg") center/contain no-repeat;opacity:.13}
[data-theme="dark"] .px-cover::after{filter:invert(.85) hue-rotate(180deg) saturate(1.4)}
.px-ava-wrap{position:relative;width:148px;height:148px;border-radius:50%;padding:7px;
  background:conic-gradient(var(--copper) calc(var(--lvl) * 1%),rgb(var(--ink-rgb) / .1) 0)}
.px-ava{width:100%;height:100%;border-radius:50%;object-fit:cover;display:grid;place-items:center;box-shadow:0 0 0 5px var(--card)}
.px-ava-fallback{background:var(--bg);font-family:var(--font-serif);font-weight:700;font-size:64px;color:var(--copper)}
.px-lvl-num{position:absolute;right:4px;bottom:6px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-serif);font-weight:700;font-size:22px;color:var(--on-accent);background:var(--copper);box-shadow:0 0 0 4px var(--card)}
.px-id{position:relative;z-index:1}
.px-id h1{margin:8px 0 6px;font-family:var(--font-serif);font-weight:700;font-size:clamp(34px,3.6vw,52px);line-height:1}
.px-meta{font-family:var(--font-serif);font-style:italic;font-size:17px;color:var(--muted)}
.px-level{margin-top:18px;max-width:620px}
.px-level-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:8px}
.px-level-top b{font-family:var(--font-serif);font-weight:700;font-size:26px;color:var(--copper)}
.px-level-top span{font-family:var(--font-serif);font-style:italic;color:var(--muted)}
.px-level-top em{margin-left:auto;font:normal 500 10.5px/1 var(--font-mono);letter-spacing:.06em;color:var(--muted-2)}
.px-level-bar{height:8px;border-radius:8px;background:rgb(var(--ink-rgb) / .09);overflow:hidden}
.px-level-bar i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,var(--copper),var(--copper-deep));transition:width 1s cubic-bezier(.22,.61,.36,1)}
.px-ladder{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;list-style:none;margin:10px 0 0;padding:0}
.px-ladder li{position:relative;padding-top:10px;font:500 9.5px/1.2 var(--font-mono);letter-spacing:.03em;color:var(--muted-2);text-align:center}
.px-ladder li::before{content:"";position:absolute;left:50%;top:0;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:rgb(var(--ink-rgb) / .15)}
.px-ladder li.on{color:var(--text)}
.px-ladder li.on::before{background:var(--copper)}
.px-ladder li.now span{color:var(--copper);font-weight:700}
.px-ladder li.now::before{box-shadow:0 0 0 4px rgb(var(--accent-rgb) / .2)}

.px-stats{display:grid;grid-template-columns:repeat(5,1fr);margin:0 0 18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.px-stats div{padding:18px 20px;border-right:1px solid var(--line)}
.px-stats div:last-child{border-right:0}
.px-stats dt{font:500 9.5px/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.px-stats dd{margin:6px 0 0;font-family:var(--font-serif);font-weight:700;font-size:38px;line-height:1}
.px-stats dd small{font-size:17px;color:var(--muted)}
.px-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.px-col{display:grid;gap:18px}
.px-ach{list-style:none;margin:0;padding:0}
.px-ach li{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.px-ach-ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:24px;box-shadow:inset 0 0 0 1px var(--line-2);filter:grayscale(1);opacity:.5}
.px-ach li.on .px-ach-ic{filter:none;opacity:1;background:rgb(var(--accent-rgb) / .08);box-shadow:inset 0 0 0 1.5px rgb(var(--accent-rgb) / .45)}
.px-ach-copy b{display:block;font-weight:650}
.px-ach-copy small{color:var(--muted);font-size:13.5px}
.px-ach li:not(.on) .px-ach-copy{opacity:.6}
.px-ach-state{font:500 10.5px/1 var(--font-mono);color:var(--muted-2)}
.px-ach li.on .px-ach-state{color:var(--green)}
.px .dx-heat i{min-width:0;height:14px}.px .dx-heat-col{grid-template-rows:repeat(7,14px);gap:3px}.px .dx-heat{gap:3px}.px .dx-heat-days span{height:14px}
.px-notes ul{list-style:none;margin:0;padding:0}
.px-notes li{padding:10px 0;border-top:1px solid var(--line)}
.px-notes a{font-family:var(--font-serif);font-weight:700;font-size:17px;color:var(--copper);text-decoration:none}
.px-notes p{margin-top:4px;white-space:pre-line;font-size:14px;color:var(--muted)}
.px .profile-card{padding:24px 26px!important;border:0!important}
.px .profile-name-grid{grid-template-columns:1fr 1fr}
.px .profile-field-grade,.px .profile-field-avatar{grid-column:1/-1}
.px-row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 0;border-top:1px solid var(--line);color:var(--text);text-decoration:none;background:none;font:inherit;cursor:pointer;text-align:left}
.px-row b{font-weight:600}
.px-row span{color:var(--copper);font-size:18px}
.px-row:hover b{color:var(--copper)}
.px-row-quiet b{color:var(--muted)}
@media (max-width:1000px){.px-grid{grid-template-columns:1fr}.px-stats{grid-template-columns:repeat(3,1fr)}.px-stats div:nth-child(3){border-right:0}.px-stats div:nth-child(-n+3){border-bottom:1px solid var(--line)}}
@media (max-width:700px){
  .console-editorial .px{padding:24px 16px 60px}
  .px-cover{grid-template-columns:1fr;justify-items:start;padding:24px 20px;gap:18px}
  .px-ava-wrap{width:116px;height:116px}
  .px-level-top em{margin-left:0;flex-basis:100%}
  .px-ladder li span{display:none}
  .px-stats{grid-template-columns:1fr 1fr}
  .px-stats div{border-bottom:1px solid var(--line);border-right:0}
  .px-stats dd{font-size:30px}
  .px .profile-name-grid{grid-template-columns:1fr}
}

/* ===== Обзор: уровень, цель, правило ======================================= */
.dx-level h3 em{color:var(--copper)}
.dx-level a.mono-note{text-decoration:none}
.dx-level-note{margin-top:8px;font-family:var(--font-serif);font-style:italic;color:var(--muted)}
.dx-goal-pick{display:inline-flex;gap:2px}
.dx-goal-pick button{min-width:28px;height:26px;border-radius:3px;font:600 12px/1 var(--font-mono);color:var(--muted);background:none;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer}
.dx-goal-pick button.on{color:var(--on-accent);background:var(--copper);box-shadow:none}
.dx-goal-dots{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dx-goal-dots i{width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--line-2);display:grid;place-items:center;transition:.3s}
.dx-goal-dots i.on{background:var(--copper);box-shadow:none}
.dx-goal-dots i.on::after{content:"✓";color:var(--on-accent);font-weight:700;font-size:14px}
.dx-goal-dots b{margin-left:6px;font-family:var(--font-serif);font-style:italic;font-size:18px;color:var(--muted)}
.dx-goal.is-won .dx-goal-dots i.on{background:var(--green)}
.dx-goal.is-won .dx-goal-dots b{color:var(--green)}
.dx-goal-note{margin-top:10px;font:500 10.5px/1.5 var(--font-mono);letter-spacing:.04em;color:var(--muted-2)}
.dx-rule{background:repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .07) 31px 32px),var(--card)!important}
.dx-rule-next{background:none;border:0;cursor:pointer;color:var(--copper)!important}
.dx-rule-text{font-family:var(--font-serif);font-weight:700;font-size:21px;line-height:1.3}
.dx-rule-ex{margin-top:8px;font-family:var(--font-serif);font-style:italic;font-size:17px;color:var(--copper)}

/* ===== Урок: размер текста и выделение ===================================== */
.console-editorial .lesson-main .note{font-size:var(--note-fs,17px)}
.console-editorial .lesson-main .note :is(p,li){font-size:inherit;line-height:1.7}
.lesson-main .note h3{display:flex;align-items:center;gap:8px}
.lx-font{margin-left:auto;display:inline-flex;gap:2px}
.lx-font button{padding:4px 8px;border-radius:3px;font:600 12px/1 var(--font-serif);color:var(--muted);background:none;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;text-transform:none;letter-spacing:0}
.lx-font button:hover{color:var(--copper);box-shadow:inset 0 0 0 1px var(--copper)}
.lx-chip{position:absolute;z-index:90;transform:translateX(-50%);padding:7px 12px;border-radius:20px;border:0;cursor:pointer;
  font:600 13px/1 var(--font-sans);color:var(--card);background:var(--text);box-shadow:0 10px 24px -10px rgb(0 0 0 / .5)}
.lx-chip[hidden]{display:none}
.lesson-main .note ::selection{background:rgb(var(--accent-rgb) / .22)}
.px-ach-empty{display:block!important;padding:14px 0!important;font-family:var(--font-serif);font-style:italic;font-size:17px;color:var(--muted)}
.dx-badges-empty{grid-column:1/-1;font-family:var(--font-serif);font-style:italic;font-size:16px;color:var(--muted)}

/* ===== Слабые темы, поздравления, урок пройден ============================= */
.dx-weak{margin-bottom:22px;box-shadow:inset 0 0 0 1px var(--line),inset 3px 0 0 var(--copper),0 20px 40px -38px rgb(var(--shadow-rgb) / .5)!important}
.dx-weak ul{list-style:none;margin:0;padding:0}
.dx-weak li{display:grid;grid-template-columns:62px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.dx-weak-pct{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;align-content:center;grid-auto-flow:column;
  font-family:var(--font-serif);font-weight:700;font-size:20px;color:var(--copper);
  background:radial-gradient(closest-side,var(--card) 78%,transparent 80% 100%),conic-gradient(var(--copper) calc(var(--w) * 1%),rgb(var(--ink-rgb) / .1) 0)}
.dx-weak-pct small{font-size:11px}
.dx-weak-copy b{display:block;font-weight:650}
.dx-weak-copy small{font-family:var(--font-serif);font-style:italic;color:var(--muted);font-size:15px}
@media (max-width:700px){.dx-weak li{grid-template-columns:54px minmax(0,1fr)}.dx-weak .btn{grid-column:span 1}.dx-weak li .btn-ghost{grid-column:2;justify-self:start}.dx-weak li .btn-grad{grid-column:2;justify-self:start}}

.cel{position:fixed;inset:0;z-index:205;display:grid;place-items:center;padding:16px;background:rgb(var(--shadow-rgb) / .45);backdrop-filter:blur(4px);animation:celIn .25s ease both}
.cel.out{opacity:0;transition:opacity .25s}
@keyframes celIn{from{opacity:0}}
.cel-card{width:min(440px,100%);padding:30px 30px 26px;text-align:center;background:
  repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .07) 31px 32px),var(--card);
  box-shadow:0 40px 90px -30px rgb(0 0 0 / .55),inset 0 0 0 1px var(--line-2);animation:celPop .45s cubic-bezier(.3,1.5,.5,1) both}
@keyframes celPop{from{transform:scale(.85) rotate(-2deg);opacity:0}}
.cel-level{display:grid;justify-items:center;gap:2px;margin:10px 0 6px}
.cel-level span{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-serif);font-weight:700;font-size:54px;color:var(--on-accent);background:var(--copper);box-shadow:0 0 0 8px rgb(var(--accent-rgb) / .15)}
.cel-level b{margin-top:10px;font-family:var(--font-serif);font-size:28px}
.cel-level em{font-family:var(--font-serif);font-size:22px;color:var(--copper)}
.cel-sub{margin-top:14px;font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
.cel-list{list-style:none;margin:10px 0 18px;padding:0;display:grid;gap:8px}
.cel-list li{display:flex;align-items:center;gap:12px;padding:10px 14px;text-align:left;background:rgb(var(--accent-rgb) / .06);box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / .25)}
.cel-list span{font-size:28px}
.cel-list b{font-family:var(--font-serif);font-size:20px}
.cel .btn{min-width:140px;margin-top:6px}

.lx-done{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:18px 44px 0;padding:18px 22px;background:rgb(var(--green-rgb) / .08);box-shadow:inset 3px 0 0 var(--green),inset 0 0 0 1px rgb(var(--green-rgb) / .25)}
.lx-done-mark{width:60px;height:60px;display:grid;place-items:center;font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:38px;color:var(--copper);
  border:2.5px solid rgb(var(--accent-rgb) / .75);border-radius:52% 48% 55% 45%/48% 55% 45% 52%;transform:rotate(-10deg)}
@media (prefers-reduced-motion:no-preference){.lx-done-mark{animation:gradeStamp .5s .15s cubic-bezier(.3,1.6,.5,1) both}}
.lx-done-copy{flex:1;min-width:200px}
.lx-done-copy b{display:block;font-family:var(--font-serif);font-weight:700;font-size:26px;color:var(--green)}
.lx-done-copy span{color:var(--muted)}
@media (max-width:700px){.lx-done{margin:14px 18px 0}}

/* ===== Домашка v3 ========================================================= */
.q-input{margin-top:16px;display:grid;gap:6px}
.q-input input{width:100%;max-width:440px;padding:12px 14px;font:600 19px/1.3 var(--font-sans);letter-spacing:.04em;color:var(--text);
  background:rgb(255 252 245 / .75);border:0;border-radius:4px;box-shadow:inset 0 -2px 0 var(--line-2),inset 0 0 0 1px var(--line);transition:box-shadow .2s}
[data-theme="dark"] .q-input input{background:rgb(var(--ink-rgb) / .04)}
.q-input input:focus{outline:none;box-shadow:inset 0 -2px 0 var(--copper),inset 0 0 0 1px var(--line-2)}
.q.is-answered .q-input input{box-shadow:inset 0 -2px 0 var(--copper),inset 0 0 0 1px var(--line)}
.q-input small,.q-hint{font-size:13.5px;color:var(--muted)}
.q-hint{margin-top:10px;font-style:italic}
.console-editorial .hw .opt-multi .mk{border-radius:6px!important}
.console-editorial .hw .qt{white-space:normal}
.hw-keys{margin-top:8px;font-size:12.5px;color:var(--muted-2)}
.hw-stats{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;margin-bottom:18px;padding:14px 18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.hw-stats span{font:500 10.5px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.hw-stats b{margin-left:6px;font:700 22px/1 var(--font-serif);letter-spacing:0;text-transform:none;color:var(--text)}
.hw-history{display:flex;align-items:flex-end;gap:5px;height:34px;margin:0 0 0 auto;padding:0;list-style:none}
.hw-history li{width:12px;height:100%;display:flex;align-items:flex-end;background:rgb(var(--ink-rgb) / .07);border-radius:3px;overflow:hidden}
.hw-history i{display:block;width:100%;height:calc(var(--p) * 1%);min-height:2px;background:var(--copper)}
.hw-history li.perfect i{background:var(--green)}
.hw-only-wrong{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:14px;cursor:pointer;color:var(--text)}
.hw-only-wrong input{width:16px;height:16px;accent-color:var(--copper)}
html.hw-only-wrong-on .q-checked.is-right{display:none}
.console-editorial .hw .q-checked.is-wrong{box-shadow:inset 3px 0 0 var(--danger),inset 0 0 0 1px var(--line),0 18px 36px -32px rgb(var(--shadow-rgb) / .45)!important}

/* ===== Редактор вопроса ==================================================== */
.qf-kind-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.qf-kind{position:relative;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:12px 14px!important;margin:0!important;cursor:pointer;
  font:500 14px/1.3 var(--font-sans)!important;letter-spacing:0!important;text-transform:none!important;color:var(--text)!important;
  background:rgb(255 252 245 / .5);box-shadow:inset 0 0 0 1px var(--line-2);border-radius:4px;transition:.15s}
.qf-kind input{position:absolute;opacity:0;pointer-events:none}
.qf-kind-ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font:700 14px/1 var(--font-serif);color:var(--copper);box-shadow:inset 0 0 0 1.5px rgb(var(--accent-rgb) / .4)}
.qf-kind.on{background:rgb(var(--accent-rgb) / .08);box-shadow:inset 0 0 0 1.5px var(--copper)}
.qf-kind.on .qf-kind-ic{background:var(--copper);color:var(--on-accent)}
.qf-kind:has(input:focus-visible){outline:2px solid var(--copper);outline-offset:2px}
form.qf[data-kind="single"] .qf-input-only,form.qf[data-kind="multi"] .qf-input-only{display:none}
form.qf[data-kind="text"] .qf-options-only,form.qf[data-kind="digits"] .qf-options-only,form.qf[data-kind="sequence"] .qf-options-only{display:none}
form.qf textarea[name$=text]{min-height:160px}
.qf-tester{margin:-4px 0 18px;padding:12px 14px;background:rgb(var(--blue-rgb) / .06);border-left:3px solid var(--tq)}
.qf-tester label{display:block;margin-bottom:6px;font:500 11px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--tq)}
.qf-tester-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.qf-tester-row input{flex:1;min-width:200px}
.qf-verdict{font-family:var(--font-serif);font-weight:700;font-size:18px}
.qf-verdict.ok{color:var(--green)}.qf-verdict.no{color:var(--danger)}
.mopt-letter{font-family:var(--font-serif);font-weight:700;font-size:20px;color:var(--copper);min-width:18px}
.hw-only-wrong{display:flex!important;width:fit-content}
.console-editorial .hw .opt.correct.missed{background:transparent!important;box-shadow:inset 0 0 0 1.5px rgb(var(--green-rgb) / .6)!important;border:0;outline:1.5px dashed rgb(var(--green-rgb) / .55);outline-offset:-5px}
.console-editorial .hw .opt.correct.missed .mk{background:transparent!important;color:var(--green)!important;box-shadow:inset 0 0 0 1.5px var(--green)!important}

/* ===== Логотип: финальная версия ===========================================
   Название — капитель гарамона с ровной разрядкой; подпись — курсив той же
   антиквы строчными, без растягивания по ширине (короткое «управление»
   раньше разъезжалось на всю строку). Между знаком и текстом — волосяная
   линия с ромбом-засечкой по центру.
   ========================================================================= */
.brand{gap:0!important;align-items:center!important}
.brand .mk,.landing-editorial .brand .mk,.console-editorial .brand .mk{width:40px!important;height:40px!important;margin-right:14px}
.brand-word{position:relative;display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:center;gap:3px!important;
  padding-left:15px!important;border-left:0!important;white-space:nowrap}
.brand-word::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:1px;
  background:linear-gradient(transparent,rgb(var(--ink-rgb) / .28) 22%,rgb(var(--ink-rgb) / .28) 78%,transparent)}
.brand-word::after{content:"";position:absolute;left:-2.5px;top:50%;width:6px;height:6px;margin-top:-3px;transform:rotate(45deg);
  background:var(--bg,#efe7d6);box-shadow:inset 0 0 0 1px var(--copper)}
.brand-word b{font-family:var(--font-serif)!important;font-weight:600!important;font-size:21px!important;line-height:1!important;
  letter-spacing:.2em!important;margin-right:-.2em!important;text-transform:uppercase;color:var(--text)}
.brand-word small,.landing-foot .brand-word small,.console-editorial .aside .brand-word small{
  width:auto!important;text-align:left!important;text-align-last:auto!important;
  font:italic 500 13.5px/1 var(--font-serif)!important;letter-spacing:.02em!important;margin-right:0!important;
  text-transform:none!important;color:var(--copper)!important;opacity:1!important}
.console-editorial .aside .brand-word b{font-size:19px!important;letter-spacing:.18em!important}
.console-editorial .aside .brand-word small{font-size:13px!important}
.console-editorial .aside .brand-word::after{background:var(--bg-2,#eae1cd)}
.landing-foot .brand-word b{font-size:23px!important}
.landing-foot .brand-word small{font-size:14.5px!important}
.brand:hover .brand-word::after{background:var(--copper)}
@media (max-width:700px){
  .brand .mk,.landing-editorial .brand .mk,.console-editorial .brand .mk{width:34px!important;height:34px!important;margin-right:11px}
  .brand-word{padding-left:12px!important}
  .brand-word b{font-size:17px!important;letter-spacing:.16em!important;margin-right:-.16em!important}
  .brand-word small{font-size:12px!important}
}
.brand-word small,.landing-foot .brand-word small,.console-editorial .aside .brand-word small{font-size:12.5px!important}
.landing-foot .brand-word small{font-size:13.5px!important}
@media (max-width:700px){.brand-word small{font-size:11px!important}}

/* ===== Живой логотип ======================================================= */
.dm{overflow:visible}
.dm .dm-orbit,.dm .dm-halo,.dm .dm-rays,.dm .dm-axes{transform-box:view-box;transform-origin:32px 32px}
.dm .dm-ray{transform-box:view-box;transform-origin:32px 32px;transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.dm .dm-star{transition:transform .5s cubic-bezier(.3,1.6,.5,1)}
.dm .dm-seed{transform-box:fill-box;transform-origin:center}

@media (prefers-reduced-motion:no-preference){
  /* дыхание: орбита медленно вращается, красные точки мерцают */
  .dm .dm-orbit{animation:dmSpin 40s linear infinite}
  .dm .dm-halo{animation:dmSpin 90s linear infinite reverse}
  .dm .dm-dot-red{animation:dmBlink 4s ease-in-out infinite}
  .dm .dm-ray:nth-child(3n) .dm-dot-red{animation-delay:1.3s}
  .dm .dm-ray:nth-child(3n+1) .dm-dot-red{animation-delay:2.6s}
  .dm .dm-seed{animation:dmSeed 3.2s ease-in-out infinite}
  @keyframes dmSpin{to{transform:rotate(360deg)}}
  @keyframes dmBlink{50%{opacity:.35}}
  @keyframes dmSeed{50%{transform:scale(1.8)}}

  /* наведение: лучи раскрываются веером, звёзды вспыхивают */
  .brand:hover .dm .dm-ray{transform:rotate(calc(var(--i) * 1.2deg)) scale(1.12)}
  .brand:hover .dm .dm-star{transform:scale(1.35) rotate(45deg)}
  .brand:hover .mk svg.dm{transform:none!important}

  /* вступление — один раз за сеанс */
  .brand.is-intro .dm .dm-ray{animation:dmRayIn .9s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(var(--i) * 28ms + .1s)}
  .brand.is-intro .dm .dm-axis{stroke-dasharray:1;stroke-dashoffset:1;animation:dmDraw .7s ease-out forwards .15s}
  .brand.is-intro .dm .dm-star{animation:dmStarIn .6s cubic-bezier(.3,1.6,.5,1) both}
  .brand.is-intro .dm .dm-star0{animation-delay:.55s}.brand.is-intro .dm .dm-star1{animation-delay:.65s}
  .brand.is-intro .dm .dm-star2{animation-delay:.75s}.brand.is-intro .dm .dm-star3{animation-delay:.85s}
  .brand.is-intro .dm .dm-orbit{animation:dmOrbitIn 1.2s cubic-bezier(.22,.61,.36,1) both,dmSpin 40s linear 1.2s infinite}
  .brand.is-intro .bw-l{animation:bwIn .7s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(var(--i) * 70ms + .35s)}
  .brand.is-intro .brand-word small{animation:bwWrite 1s cubic-bezier(.65,0,.35,1) both .95s}
  .brand.is-intro .brand-word::before{animation:bwLine .8s ease-out both .2s}
  .brand.is-intro .brand-word::after{animation:bwDiamond .7s cubic-bezier(.3,1.6,.5,1) both .6s}
  @keyframes dmRayIn{from{transform:scale(0) rotate(-40deg);opacity:0}}
  @keyframes dmDraw{to{stroke-dashoffset:0}}
  @keyframes dmStarIn{from{transform:scale(0) rotate(-90deg);opacity:0}}
  @keyframes dmOrbitIn{from{transform:rotate(-180deg) scale(.4);opacity:0}}
  @keyframes bwIn{from{opacity:0;transform:translateY(.45em);filter:blur(3px)}}
  @keyframes bwWrite{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
  @keyframes bwLine{from{transform:scaleY(0)}}
  @keyframes bwDiamond{from{transform:rotate(-135deg) scale(0)}}
}

/* название: буквы и блик при наведении */
.brand-word b{display:inline-flex}
.bw-l{display:inline-block;position:relative}
.brand-word b .bw-l{background:linear-gradient(100deg,var(--text) 0 40%,var(--copper) 50%,var(--text) 60% 100%);background-size:300% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transition:background-position .9s cubic-bezier(.22,.61,.36,1)}
.brand:hover .brand-word b .bw-l{background-position:0 0;transition-delay:calc(var(--i) * 45ms)}
.brand:hover .brand-word b{color:inherit}
@media (prefers-reduced-motion:reduce){.brand-word b .bw-l{background:none;-webkit-text-fill-color:currentColor}}
@media (prefers-reduced-motion:no-preference){.brand:hover .dm .dm-star{transform:scale(1.3)}}

/* ===== Шрифты: Noto Serif Display + Literata ==============================
   Контрастная журнальная антиква для заголовков в плотных весах, текст —
   Literata потяжелее. Размеры чуть меньше, чем у гарамона: у Noto Serif
   Display крупнее строчные.
   ========================================================================= */
:root{
  --font-serif:'Noto Serif Display','Cormorant Garamond',Georgia,serif;
  --text-weight:500;
  --h-hero:clamp(40px,4vw,62px);
  --h-section:clamp(30px,3vw,46px);
}
body{font-weight:500}
:is(.landing-editorial,.public-editorial,.auth-editorial,.console-editorial) :is(h1,h2),
.landing-editorial .hero h1,.dx-hello h1,.px-id h1,.mh1{font-weight:750!important;letter-spacing:-.022em!important;line-height:1.02!important}
:is(.landing-editorial,.public-editorial,.auth-editorial,.console-editorial) :is(h1,h2) :is(em,i,span),.landing-editorial .hero h1 .ac,.dx-hello h1 em{font-weight:650!important;letter-spacing:-.015em!important}
:is(.landing-editorial,.public-editorial) main h3,.dx-card-head h3,.mx-card-title,.lx-notes-head h3{font-weight:700!important;letter-spacing:-.01em!important}
:is(.landing-editorial,.public-editorial) main h3{font-size:22px!important}
.landing-editorial .hero h1{font-size:var(--h-hero)!important}
:is(.landing-editorial,.public-editorial) main h2{font-size:var(--h-section)}
.hstat .n,.prog-stats .n,.mstat .n,.dx-kpis dd,.px-stats dd,.dx-exam b,.dx-ring-in b,.mx-chart header b{font-weight:700!important;letter-spacing:-.02em}
.brand-word b{font-weight:700!important;font-size:19px!important;letter-spacing:.16em!important;margin-right:-.16em!important}
.console-editorial .aside .brand-word b{font-size:17px!important}
.landing-foot .brand-word b{font-size:21px!important}
.brand-word small{font-weight:500!important;font-size:12px!important}
@media (max-width:700px){.brand-word b{font-size:15.5px!important;letter-spacing:.12em!important}.brand-word small{font-size:10.5px!important}}
.btn,.landing-editorial .btn,.public-editorial .btn{font-weight:650!important}
.console-editorial .nav-i{font-weight:550}
.ru-words,.dx-module,.px-meta,.dx-rule-ex,.dx-level-note{font-weight:500!important}
:root{--h-hero:clamp(36px,3.5vw,54px)}
.landing-editorial .hero h1{font-size:var(--h-hero)!important}
:is(.dx-kpis dd,.px-stats dd,.hstat .n) small{margin-left:.12em;letter-spacing:0}
.dx-ring-in i{margin-left:2px}
.brand .mk,.landing-editorial .brand .mk,.console-editorial .brand .mk{margin-right:16px}
.brand-word{padding-left:17px!important}
@media (max-width:700px){.landing-editorial .hero h1{font-size:38px!important}}

/* ===== Меню в шапке: вместо тонкой моноширинной капители ================== */
.landing-editorial .topbar .links,.public-editorial .topbar .links{gap:30px!important;margin-left:40px!important}
:is(.landing-editorial,.public-editorial) .topbar .links a{
  font-family:var(--font-serif)!important;font-weight:650!important;font-size:17px!important;
  letter-spacing:.005em!important;text-transform:none!important;color:var(--text)!important;padding:8px 0!important
}
:is(.landing-editorial,.public-editorial) .topbar .links a::after{bottom:2px!important;height:2px!important;border-radius:2px}
:is(.landing-editorial,.public-editorial) .topbar .links a:not(.active){color:rgb(var(--ink-rgb) / .72)!important}
:is(.landing-editorial,.public-editorial) .topbar .links a:hover{color:var(--copper)!important}

/* ===== Первый экран: живой разбор ========================================== */
.hx{--rx:0deg;--ry:0deg;--gx:50%;--gy:30%;position:relative;perspective:1400px;padding:34px 40px 34px 10px;align-self:center}
.hx-sheet{
  position:relative;z-index:1;min-height:430px;padding:38px 44px 34px 96px;transform-style:preserve-3d;
  transform:rotateX(var(--rx)) rotateY(var(--ry)) rotate(-1.2deg);transition:transform .5s cubic-bezier(.22,.61,.36,1);
  background:
    radial-gradient(600px 400px at var(--gx) var(--gy),rgb(255 255 255 / .55),transparent 60%),
    linear-gradient(90deg,transparent 0 70px,rgb(var(--accent-rgb) / .45) 70px 71px,transparent 71px 74px,rgb(var(--accent-rgb) / .22) 74px 75px,transparent 75px),
    repeating-linear-gradient(180deg,transparent 0 35px,rgb(var(--blue-rgb) / .16) 35px 36px),
    linear-gradient(170deg,#fffdf7,#f5ecda);
  box-shadow:
    0 1px 0 rgb(var(--ink-rgb) / .05),
    7px 8px 0 -1px #f3ead8,7px 8px 0 0 rgb(var(--ink-rgb) / .1),
    14px 16px 0 -1px #eee4d0,14px 16px 0 0 rgb(var(--ink-rgb) / .08),
    0 60px 90px -50px rgb(var(--shadow-rgb) / .55),0 20px 40px -30px rgb(var(--shadow-rgb) / .35),
    inset 0 0 0 1px rgb(var(--ink-rgb) / .1);
}
[data-theme="dark"] .hx-sheet{
  background:
    radial-gradient(600px 400px at var(--gx) var(--gy),rgb(255 255 255 / .05),transparent 60%),
    linear-gradient(90deg,transparent 0 70px,rgb(var(--accent-rgb) / .45) 70px 71px,transparent 71px),
    repeating-linear-gradient(180deg,transparent 0 35px,rgb(var(--ink-rgb) / .08) 35px 36px),#101b22;
  box-shadow:7px 8px 0 -1px #0c161c,7px 8px 0 0 rgb(var(--ink-rgb) / .1),14px 16px 0 -1px #0a1318,14px 16px 0 0 rgb(var(--ink-rgb) / .08),0 60px 90px -50px #000,inset 0 0 0 1px rgb(var(--ink-rgb) / .12)}
.hx-holes{position:absolute;left:22px;top:40px;bottom:40px;width:16px;
  background:radial-gradient(circle at 8px 8px,var(--bg) 0 5.5px,rgb(var(--ink-rgb) / .18) 6px 6.8px,transparent 7.2px) 0 0/16px 72px repeat-y}
.hx-top{display:flex;justify-content:space-between;align-items:center;gap:12px;height:36px}
.hx-task{font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
.hx-task b{color:var(--copper);font-weight:600}
.hx-live{display:inline-flex;align-items:center;gap:7px;font:500 10.5px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--tq)}
.hx-live i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgb(var(--green-rgb) / .5);animation:hxPing 2s infinite}
@keyframes hxPing{70%{box-shadow:0 0 0 7px rgb(var(--green-rgb) / 0)}100%{box-shadow:0 0 0 0 rgb(var(--green-rgb) / 0)}}

.hx-sentence{position:relative;margin:34px 0 0;font-family:var(--font-serif);font-weight:650;font-size:clamp(28px,2.4vw,36px);line-height:72px;letter-spacing:-.01em;color:var(--text);
  transition:opacity .45s,transform .45s}
.hx-err{position:relative;display:inline-block;white-space:nowrap}
.hx-strike{position:absolute;left:-4%;top:40%;width:108%;height:.5em;overflow:visible;pointer-events:none}
.hx-strike path{fill:none;stroke:var(--copper);stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:140;stroke-dashoffset:140;transition:stroke-dashoffset .5s cubic-bezier(.65,0,.35,1)}
.hx-fix{position:absolute;left:50%;bottom:62%;transform:translate(-50%,0) rotate(-4deg);white-space:nowrap;
  font:400 clamp(30px,2.6vw,40px)/1 'Marck Script',var(--font-serif);color:var(--copper);letter-spacing:0;
  clip-path:inset(0 100% 0 0);transition:clip-path .8s cubic-bezier(.65,0,.35,1)}
.hx-rule{position:relative;margin:4px 0 0;padding-left:30px;max-width:420px;font:400 22px/36px 'Marck Script',var(--font-serif);color:var(--tq);
  opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}
.hx-rule::before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-family:var(--font-sans);font-weight:700;font-size:18px}

.hx-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:34px}
.hx-progress{flex:1;max-width:260px}
.hx-progress-top{display:block;margin-bottom:8px;font:500 11px/1 var(--font-mono);letter-spacing:.06em;color:var(--muted-2)}
.hx-progress-top b{font-family:var(--font-serif);font-size:22px;color:var(--text);letter-spacing:0}
.hx-bar{display:block;height:6px;border-radius:6px;background:rgb(var(--ink-rgb) / .1);overflow:hidden}
.hx-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--copper),#d9572f);transition:width .8s cubic-bezier(.22,.61,.36,1)}
.hx-chip{padding:7px 12px;border-radius:30px;font:600 13px/1 var(--font-sans);color:var(--green);background:rgb(var(--green-rgb) / .1);box-shadow:inset 0 0 0 1px rgb(var(--green-rgb) / .3)}
.hx-chip.pop{animation:hxPop .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes hxPop{0%{transform:scale(.6);opacity:0}100%{transform:none;opacity:1}}

.hx-grade{position:absolute;right:46px;top:88px;width:92px;height:92px;display:grid;place-items:center;
  font:400 64px/1 'Marck Script',var(--font-serif);color:var(--copper);
  border:3px solid rgb(var(--accent-rgb) / .8);border-radius:52% 48% 55% 45%/48% 55% 45% 52%;
  transform:rotate(-12deg) scale(1.8);opacity:0;transition:transform .45s cubic-bezier(.3,1.6,.5,1),opacity .2s}
.hx-margin-note{position:absolute;right:30px;top:190px;font:400 24px/1 'Marck Script',serif;color:var(--copper);transform:rotate(-8deg);opacity:0;transition:opacity .4s .3s}
.hx-sheet[data-grade="4"] .hx-margin-note{display:none}

/* фазы */
.hx-sheet.is-struck .hx-strike path{stroke-dashoffset:0}
.hx-sheet.is-struck .hx-err{color:var(--muted-2)}
.hx-sheet.is-fixed .hx-fix{clip-path:inset(-20% -10% -20% -10%)}
.hx-sheet.is-ruled .hx-rule{opacity:1;transform:none}
.hx-sheet.is-graded .hx-grade{opacity:1;transform:rotate(-12deg) scale(1)}
.hx-sheet.is-graded .hx-margin-note{opacity:1}
.hx-sheet.is-out .hx-sentence,.hx-sheet.is-out .hx-rule,.hx-sheet.is-out .hx-grade,.hx-sheet.is-out .hx-margin-note{opacity:0;transform:translateY(-8px)}
.hx-sheet.is-out .hx-grade{transform:rotate(-12deg) scale(.8)}
.hx-err,.hx-sentence{transition:color .4s,opacity .45s,transform .45s}

/* закладки-вкладки справа */
.hx-tab{position:absolute;right:-6px;z-index:2;display:flex;align-items:center;gap:12px;padding:10px 18px 10px 12px;min-width:176px;text-decoration:none;color:var(--text);
  background:#fffaf0;box-shadow:inset 4px 0 0 var(--copper),0 1px 0 rgb(var(--ink-rgb) / .08),0 18px 30px -18px rgb(var(--shadow-rgb) / .45);
  transform:rotate(var(--r,0deg));transition:transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .35s}
[data-theme="dark"] .hx-tab{background:#15232b}
.hx-tab b{min-width:42px;font:700 20px/1 var(--font-serif);color:var(--copper);text-align:center}
.hx-tab span{display:grid;font:650 16px/1.15 var(--font-serif)}
.hx-tab small{font:500 12px/1.3 var(--font-sans);color:var(--muted)}
.hx-tab-1{top:4px;--r:2.5deg}
.hx-tab-2{top:50%;margin-top:-26px;right:-26px;--r:-1.5deg}
.hx-tab-3{bottom:10px;--r:2deg}
.hx-tab:hover{transform:rotate(0deg) translateX(-8px);box-shadow:inset 4px 0 0 var(--copper),0 26px 40px -18px rgb(var(--shadow-rgb) / .55)}
@media (prefers-reduced-motion:no-preference){
  .hx-tab{animation:hxFloat 7s ease-in-out infinite}
  .hx-tab-2{animation-delay:-2.3s}.hx-tab-3{animation-delay:-4.6s}
  @keyframes hxFloat{50%{translate:0 -6px}}
  .hx-sheet{animation:hxEnter 1s cubic-bezier(.22,.61,.36,1) both .15s}
  @keyframes hxEnter{from{opacity:0;transform:translateY(30px) rotate(-5deg)}}
}
@media (max-width:1100px){.hx{padding-right:30px}.hx-tab{min-width:150px}.hx-tab-2{right:-10px}}
@media (max-width:900px){
  .hx{padding:20px 0 90px;margin-top:10px}
  .hx-sheet{min-height:0;padding:28px 22px 26px 62px;transform:rotate(-.8deg)}
  .hx-sheet{background-size:auto,auto,auto,auto;background-position:0 0,-26px 0,0 0,0 0}
  .hx-holes{left:10px;background-size:16px 64px}
  .hx-sentence{font-size:25px;line-height:58px;margin-top:22px}
  .hx-rule{font-size:19px;line-height:30px}
  .hx-grade{right:16px;top:58px;width:66px;height:66px;font-size:46px}
  .hx-margin-note{display:none}
  .hx-tab{position:absolute;min-width:0;padding:8px 12px 8px 8px}
  .hx-tab small{display:none}
  .hx-tab-1{top:auto;bottom:22px;left:0;right:auto}
  .hx-tab-2{top:auto;bottom:28px;left:34%;right:auto;margin:0}
  .hx-tab-3{top:auto;bottom:18px;right:0}
  .hx-tab b{min-width:0;font-size:16px}.hx-tab span{font-size:14px}
}
/* правки раскладки живого листа */
.hx{padding:10px 8px 70px 0}
.hx-sheet{min-height:420px;padding:30px 30px 30px 84px}
.hx-top{height:auto;gap:8px;padding-right:96px}
.hx-task,.hx-live{white-space:nowrap}
.hx-live{display:none}
.hx-sentence{margin-top:40px;font-size:clamp(24px,2vw,30px);line-height:64px}
.hx-strike path{stroke-dasharray:400;stroke-dashoffset:400}
.hx-sheet.is-struck .hx-strike path{stroke-dashoffset:0}
.hx-fix{font-size:clamp(26px,2.2vw,34px)}
.hx-rule{font-size:21px;line-height:32px;margin-top:6px}
.hx-grade{top:20px;right:22px;width:74px;height:74px;font-size:50px}
.hx-margin-note{top:98px;right:18px;font-size:21px}
.hx-bottom{margin-top:26px}
/* ярлыки — рядом внизу листа */
.hx-tabs{display:flex}
.hx-tab{top:auto!important;bottom:6px;right:auto!important;left:auto;margin:0!important;min-width:0;padding:9px 14px 9px 10px;gap:9px}
.hx-tab b{min-width:0;font-size:18px}
.hx-tab span{font-size:15px}
.hx-tab-1{left:40px;--r:-2.5deg}
.hx-tab-2{left:calc(40px + 33%);--r:1.5deg}
.hx-tab-3{left:auto;right:4px!important;--r:-1.5deg}
.hx-tab:hover{transform:rotate(0deg) translateY(-6px)}
@media (max-width:1180px){.hx-tab small{display:none}}
@media (max-width:900px){
  .hx{padding:10px 0 74px}
  .hx-sheet{padding:24px 18px 22px 56px}
  .hx-top{padding-right:70px}
  .hx-sentence{font-size:22px;line-height:54px;margin-top:26px}
  .hx-grade{top:14px;right:14px;width:58px;height:58px;font-size:40px}
  .hx-tab-1{left:0}.hx-tab-2{left:34%}.hx-tab-3{right:0!important}
}
.hx-top{padding-right:0}
.hx-grade{top:auto;bottom:86px;right:26px;width:80px;height:80px;font-size:54px}
.hx-margin-note{top:auto;bottom:112px;right:116px;font-size:22px}
.hx-sentence{margin-top:46px}
.hx-tab small{display:none!important}
.hx-tab{padding:9px 14px 9px 10px}
.hx-tab-1{left:34px}
.hx-tab-2{left:50%;transform:translateX(-50%) rotate(var(--r))}
.hx-tab-2:hover{transform:translateX(-50%) translateY(-6px)}
.hx-tab-3{right:10px!important}
@media (max-width:900px){
  .hx-grade{bottom:74px;right:14px;width:60px;height:60px;font-size:40px}
  .hx-margin-note{display:none}
  .hx-tab{padding:7px 10px 7px 8px;gap:6px}
  .hx-tab b{font-size:14px}.hx-tab span{font-size:13px}
  .hx-tab-1{left:2px}.hx-tab-3{right:2px!important}
}
.hx-sheet{min-height:380px}
.hx-sheet.is-out .hx-margin-note{transition-delay:0s}
.hx-tab-1{left:14px}
.hx-tab-2{left:51%}
@media (max-width:900px){
  .hx-grade{top:10px;bottom:auto;right:12px;width:50px;height:50px;font-size:34px}
  .hx-top{padding-right:60px}
  .hx-tab-2{left:50%}
}
.hx-margin-note{top:26px!important;bottom:auto!important;right:34px!important;transform:rotate(-6deg)}

/* ===== Телефон: доводка ====================================================
   Цели нажатия не меньше ~44px, неразрывные цены, чуть плотнее ритм секций.
   ========================================================================= */
@media (max-width:700px){
  /* цена не должна переноситься по «₽» */
  .prog-stats .ps .n,.hstat .n,.mstat .n,.dx-exam b{white-space:nowrap}

  /* вертикальный ритм: экран телефона короче, отступы меньше */
  .public-editorial .sec,.landing-editorial .sec{padding-top:56px!important;padding-bottom:56px!important}
  .landing-editorial .hero-wrap{padding-top:34px!important}
  .landing-editorial .hero-stats{margin-top:40px!important}

  /* пальцем попадать легко */
  .hx-tab{min-height:44px;padding:10px 12px!important}
  .exam-cell{min-height:40px;aspect-ratio:auto;padding:8px 0}
  .auth-back,.alt-link,.dx-rule-next,.mono-note[href]{display:inline-flex;align-items:center;min-height:44px;padding:4px 0}
  .dx-goal-pick button{min-width:40px;height:40px}
  .lx-focus{min-height:44px}
  .dx-mod,.px-ach li,.dx-ev,.mx-list li,.pm-lesson,.ll{min-height:48px}
  .faq summary{min-height:52px}
  .topbar .right .btn,.mobile-menu .btn{min-height:44px}
  .theme-toggle{width:44px;height:44px}
  .filebox-clear,.check{min-height:44px;align-items:center}
  .hw-only-wrong{min-height:44px;align-items:center}
  .lx-font button,.qf-kind{min-height:44px}
  .ru-v{padding:0 .06em}
  .ru-next{min-height:44px;display:inline-flex;align-items:center}

  /* поля ввода: 16px, чтобы iOS не увеличивал страницу при фокусе */
  input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],input[type=number],textarea,select{font-size:16px!important}
}
@media (max-width:700px){
  /* ссылки в списках кабинета и панели: вся строка — цель нажатия */
  .dx-ev a,.mx-list a,.mx-ready a,.mx-inbox a,.px-notes a{display:inline-flex;align-items:center;min-height:44px}
  .dx-ev{align-items:center}
  .lx-steps li>a{min-height:44px}
  .mx-list li,.mx-ready li{padding:6px 0}
}
.mx-inbox a b{margin-right:.3em}
.dx-banner b,.mx-list .mx-score{margin-right:.15em}
:root{--font-serif:'Noto Serif Display',Georgia,'Times New Roman',serif}
/* декоративный знак не должен расширять страницу ни в одной теме */
.landing-editorial .final-section,.public-editorial .final-section,.auth-right,.ru-404-sheet,.dx-continue,.px-cover{overflow:clip}
.landing-editorial .final-section .cta-final::after{right:-40px}
/* В тёмной теме фильтр на декоративном знаке ломал обрезку в Chrome:
   заменяем инверсию режимом наложения. */
[data-theme="dark"] :is(.cta-final,.ru-404-sheet,.auth-right,.dx-continue,.px-cover)::after{
  filter:none!important;mix-blend-mode:screen;opacity:.2
}
.landing-editorial .final-section .cta-final::after{right:0;top:50%;width:360px;height:360px;margin-top:-180px}
/* Финальный блок в тёмной теме: тот же лист, только ночной */
[data-theme="dark"] .public-editorial .cta-final{
  padding:48px 48px 48px 88px!important;border:0!important;
  background:
    linear-gradient(90deg,transparent 0 58px,rgb(var(--accent-rgb) / .45) 58px 59px,transparent 59px),
    repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--ink-rgb) / .07) 31px 32px),
    var(--card);
  box-shadow:inset 0 0 0 1px var(--line),0 30px 50px -36px #000
}
[data-theme="dark"] .public-editorial .cta-final::before{background:rgb(var(--ink-rgb) / .12);box-shadow:none}
[data-theme="dark"] .cta-final::after{opacity:.3}
@media (max-width:700px){[data-theme="dark"] .public-editorial .cta-final{padding:36px 20px 32px 44px!important;background-position:-28px 0,0 0,0 0}}

/* ===== Блок о преподавателе ===============================================
   Фотокарточка на тетрадном листе: держится уголками, рядом факты, текст
   и рукописная подпись. Пока фото не загружено — аккуратная рамка-место.
   ========================================================================= */
.tx{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:56px;align-items:start}
.tx-photo{position:relative;margin:0;padding:16px 16px 74px;transform:rotate(-1.6deg);transition:transform .5s cubic-bezier(.22,.61,.36,1);
  background:linear-gradient(170deg,#fffdf7,#f3ead8);
  box-shadow:0 1px 0 rgb(var(--ink-rgb) / .06),0 40px 70px -44px rgb(var(--shadow-rgb) / .55),inset 0 0 0 1px rgb(var(--ink-rgb) / .1)}
[data-theme="dark"] .tx-photo{background:linear-gradient(170deg,#16222a,#0f1a20);box-shadow:0 40px 70px -44px #000,inset 0 0 0 1px rgb(var(--ink-rgb) / .12)}
.tx:hover .tx-photo{transform:rotate(0deg) translateY(-6px)}
.tx-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.92) contrast(1.03)}
.tx-photo-empty{display:grid;place-items:center;align-content:center;gap:6px;aspect-ratio:4/5;text-align:center;
  background:repeating-linear-gradient(180deg,transparent 0 31px,rgb(var(--blue-rgb) / .12) 31px 32px),rgb(var(--ink-rgb) / .02);
  box-shadow:inset 0 0 0 1.5px rgb(var(--ink-rgb) / .12)}
.tx-photo-empty b{font-family:var(--font-serif);font-weight:700;font-size:28px;color:var(--muted-2)}
.tx-photo-empty small{font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
/* уголки-держатели */
.tx-corner{position:absolute;width:34px;height:34px;pointer-events:none;background:linear-gradient(135deg,rgb(var(--accent-rgb) / .85),rgb(var(--accent-rgb) / .45))}
.tx-corner-1{top:6px;left:6px;clip-path:polygon(0 0,100% 0,0 100%)}
.tx-corner-2{top:6px;right:6px;clip-path:polygon(0 0,100% 0,100% 100%)}
.tx-corner-3{bottom:64px;left:6px;clip-path:polygon(0 0,0 100%,100% 100%)}
.tx-corner-4{bottom:64px;right:6px;clip-path:polygon(100% 0,100% 100%,0 100%)}
.tx-badge{position:absolute;left:16px;right:16px;bottom:14px;display:flex;align-items:baseline;gap:10px}
.tx-badge b{font-family:var(--font-serif);font-weight:750;font-size:46px;line-height:1;color:var(--copper)}
.tx-badge span{font:500 11px/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}

.tx-body h2{margin:14px 0 8px}
.tx-role{font-family:var(--font-serif);font-style:italic;font-size:21px;color:var(--copper);margin-bottom:22px}
.tx-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 26px;border-top:1px solid var(--line)}
.tx-facts div{padding:16px 18px 16px 0;border-bottom:1px solid var(--line)}
.tx-facts div:not(:nth-child(3n+1)){padding-left:18px;border-left:1px solid var(--line)}
.tx-facts dt{font:500 10px/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.tx-facts dd{margin:6px 0 0;font-family:var(--font-serif);font-weight:750;font-size:42px;line-height:1;color:var(--text)}
.tx-facts dd small{font-size:20px;color:var(--copper)}
.tx-facts div:last-child dd{font-size:26px;font-style:italic;font-weight:650;color:var(--copper)}
.tx-text p{max-width:58ch;margin-bottom:14px;color:var(--muted);font-size:16.5px;line-height:1.75}
.tx-sign{margin:6px 0 22px;font:400 34px/1 'Marck Script',var(--font-serif);color:var(--copper);transform:rotate(-2deg);transform-origin:left}
.tx-points{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 26px;padding:0}
.tx-points li{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:14.5px;font-weight:550;
  background:rgb(255 252 245 / .6);box-shadow:inset 0 0 0 1px var(--line-2)}
[data-theme="dark"] .tx-points li{background:rgb(var(--ink-rgb) / .04)}
.tx-points li::before{content:"✓";color:var(--green);font-weight:700}
@media (prefers-reduced-motion:no-preference){
  .reveal-armed .tx-points li{opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}
  .reveal-armed .tx.is-in .tx-points li{opacity:1;transform:none}
  .reveal-armed .tx.is-in .tx-points li:nth-child(2){transition-delay:.1s}
  .reveal-armed .tx.is-in .tx-points li:nth-child(3){transition-delay:.2s}
  .reveal-armed .tx.is-in .tx-points li:nth-child(4){transition-delay:.3s}
  .reveal-armed .tx-sign{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s cubic-bezier(.65,0,.35,1) .35s}
  .reveal-armed .tx.is-in .tx-sign{clip-path:inset(0 -5% 0 0)}
}
@media (max-width:1000px){
  .tx{grid-template-columns:1fr;gap:34px}
  .tx-photo{max-width:420px}
}
@media (max-width:700px){
  .tx-photo{padding:12px 12px 62px;max-width:none}
  .tx-corner{width:26px;height:26px}
  .tx-corner-3,.tx-corner-4{bottom:54px}
  .tx-badge b{font-size:36px}
  .tx-facts{grid-template-columns:1fr 1fr}
  .tx-facts div,.tx-facts div:not(:nth-child(3n+1)){padding:14px 12px 14px 0;border-left:0}
  .tx-facts div:nth-child(2n){padding-left:14px;border-left:1px solid var(--line)}
  .tx-facts div:last-child:nth-child(odd){grid-column:1/-1}
  .tx-facts dd{font-size:34px}
  .tx-sign{font-size:28px}
}
/* портрет: кадр крупнее, лицо в верхней трети */
.tx-photo{padding:14px 14px 68px}
.tx-photo img{aspect-ratio:4/5;object-position:center 22%}
.tx-corner-3,.tx-corner-4{bottom:58px}
.tx-badge{left:14px;right:14px;bottom:12px;align-items:baseline}
.tx-badge b{font-size:42px}
@media (max-width:700px){.tx-photo{padding:10px 10px 56px}.tx-corner-3,.tx-corner-4{bottom:48px}.tx-badge{left:10px;right:10px}}

/* --- Урок: «Запомни» построчно, скорость видео ------------------------------ */
.note .remember-body{white-space:pre-line}
.note mark{-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-inline:.18em;margin-inline:-.18em}
.lx-speed{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 4px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2,#8a7f73)}
.lx-speed>span{margin-right:4px}
.lx-speed button{font:inherit;letter-spacing:0;text-transform:none;padding:4px 9px;border:1px solid rgb(var(--ink-rgb,40 30 20) / .18);border-radius:4px;background:transparent;color:inherit;cursor:pointer;min-width:44px}
.lx-speed button:hover{border-color:rgb(var(--ink-rgb,40 30 20) / .4);color:var(--text,inherit)}
.lx-speed button[aria-pressed="true"]{background:var(--accent,#b3301c);border-color:var(--accent,#b3301c);color:#fff}
.lx-speed .lx-resume{margin-left:auto;text-transform:none;letter-spacing:0;font-size:12px}
.lx-speed .lx-resume button{min-width:0;margin-left:6px}

/* --- Главная: ритм секций плотнее ------------------------------------------- */
@media(min-width:861px){
  .landing-editorial .sec{padding-top:72px;padding-bottom:72px}
}

/* --- Урок на телефоне: список уроков модуля над видео, свёрнут -------------- */
@media(max-width:860px){
  .console-editorial .lesson-body{display:flex;flex-direction:column}
  .console-editorial .lesson-side{order:-1;padding:14px 20px;border-top:none;border-bottom:1px solid var(--line)}
  .console-editorial .lesson-side .lx-focus{display:none}
  .console-editorial .lesson-side .sh{margin:0;padding:6px 0;border:none;cursor:pointer;user-select:none}
  .console-editorial .lesson-side .sh::after{content:"▾";margin-left:10px;color:var(--muted-2);transition:transform .2s}
  .console-editorial .lesson-side.open .sh::after{transform:rotate(180deg)}
  .console-editorial .lesson-side .sh .pct{margin-left:auto}
  .console-editorial .lesson-side:not(.open) .ll{display:none}
  .console-editorial .lesson-side.open .sh{margin-bottom:12px}
}
.lx-keys{margin-left:12px;font-size:11px;text-transform:none;letter-spacing:0;opacity:.75}
@media(max-width:860px){.lx-keys{display:none}}

/* --- Урок: переход к домашке после конспекта -------------------------------- */
.lx-hw-cta{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 18px;margin:26px 0 8px;padding:20px 22px;border:1px solid var(--line-2,rgba(0,0,0,.14));border-left:3px solid var(--accent,#b3301c);background:rgb(var(--accent-rgb,179 48 28) / .05);color:var(--text,inherit);text-decoration:none;transition:background .2s,transform .2s}
.lx-hw-cta:hover{background:rgb(var(--accent-rgb,179 48 28) / .1);transform:translateY(-1px)}
.lx-hw-cta .lx-hw-kicker{grid-column:1;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent,#b3301c)}
.lx-hw-cta b{grid-column:1;font-size:17px;font-weight:600;line-height:1.35}
.lx-hw-cta .lx-hw-go{grid-column:2;grid-row:1/span 2;padding:10px 16px;background:var(--accent,#b3301c);color:#fff;font-weight:600;font-size:14px;white-space:nowrap}
.lx-hw-cta.done{border-left-color:var(--green,#2f6b4f);background:rgb(47 107 79 / .06)}
.lx-hw-cta.done .lx-hw-go{background:var(--green,#2f6b4f)}
@media(max-width:600px){.lx-hw-cta{grid-template-columns:1fr}.lx-hw-cta .lx-hw-go{grid-column:1;grid-row:auto;text-align:center;margin-top:10px}}

/* --- Домашка: материал задания обычным шрифтом, текст — в прокрутке ---------- */
.q .qt .qbody{display:block;margin-top:12px;font-weight:400!important;font-size:16px;line-height:1.65;color:var(--text,inherit)}
.q .qt .qpassage{max-height:420px;overflow-y:auto;padding:14px 16px;border:1px solid var(--line,rgba(0,0,0,.1));background:rgb(var(--ink-rgb,40 30 20) / .025);font-size:15.5px}
.q .qt .qpassage::before{content:"Текст";display:block;margin-bottom:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2,#8a7f73)}
@media(max-width:600px){.q .qt .qpassage{max-height:60vh}}
.hw-result .hw-next{margin-top:16px}
.hw-result .hw-next .btn{display:inline-block;max-width:100%;white-space:normal;text-align:left}

/* ==========================================================================
   Кабинет 2026: современный интерфейс в той же палитре.
   Интерфейс — Manrope, заголовки — фирменный Playfair, конспекты — книжный шрифт.
   ========================================================================== */
.app-editorial{--ui:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--r:14px;--r-lg:20px;
  --sh-1:0 1px 2px rgb(var(--shadow-rgb) / .06),0 6px 20px -8px rgb(var(--shadow-rgb) / .14);
  --sh-2:0 2px 4px rgb(var(--shadow-rgb) / .06),0 18px 40px -16px rgb(var(--shadow-rgb) / .24)}
.app-editorial .app-main{font-family:var(--ui)}
.app-editorial .app-main :is(button,input,select,textarea,.btn,.mono-note,.kicker,.crumb,small,dt,.mx-eyebrow){font-family:var(--ui)}
.app-editorial .mono-note,.app-editorial .kicker,.app-editorial .crumb{letter-spacing:.02em;text-transform:none;font-size:13px;font-weight:600}

/* боковое меню */
.app-editorial .aside{background:var(--bg);font-family:var(--ui)}
.app-editorial .aside .nav-group{font-family:var(--ui);font-size:11px;letter-spacing:.08em;font-weight:700;opacity:.7}
.app-editorial .aside .nav-i{font-family:var(--ui);font-size:14.5px;font-weight:600;border-radius:10px;padding:10px 12px;border:none;transition:background .15s,color .15s}
.app-editorial .aside .nav-i:hover{background:rgb(var(--ink-rgb) / .05)}
.app-editorial .aside .nav-i.active{background:var(--card);color:var(--text);box-shadow:var(--sh-1)}
.app-editorial .aside .nav-i.active::before,.app-editorial .aside .nav-i.active::after{display:none}
.app-editorial .aside .nav-i.active .ic{color:var(--copper)}
.app-editorial .aside .me{border-radius:12px}

/* кнопки */
.app-editorial .app-main .btn{font-weight:700;border-radius:12px;letter-spacing:0}
.app-editorial .app-main .btn-grad{box-shadow:0 8px 20px -10px rgb(var(--accent-rgb) / .7)}

/* карточки кабинета */
.app-editorial .dx-card{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--card);box-shadow:var(--sh-1);background-image:none}
.app-editorial .dx-card::before,.app-editorial .dx-card::after{display:none}
.app-editorial .dx-card-head h3{font-size:19px}

/* --- Обзор ----------------------------------------------------------------- */
.app-editorial .dash{max-width:1180px}
.app-editorial .dx-head h1{font-size:clamp(28px,3vw,40px)}
.app-editorial .dx-head p{font-family:var(--ui);font-size:15px;color:var(--muted)}
.app-editorial .dx-exam{border-radius:var(--r-lg);box-shadow:var(--sh-1);border:1px solid var(--line)}
.app-editorial .dx-exam::before{display:none}

.mx-continue{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0;border-radius:var(--r-lg);overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-2);margin:8px 0 18px}
.mx-cover{position:relative;display:block;aspect-ratio:16/9;background:#17130f;overflow:hidden}
.mx-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.mx-cover:hover img{transform:scale(1.03)}
.mx-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgb(0 0 0 / .35))}
.mx-play{position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;background:var(--copper);display:grid;place-items:center;box-shadow:0 10px 30px -8px rgb(var(--accent-rgb) / .8);z-index:1;transition:transform .2s}
.mx-cover:hover .mx-play{transform:scale(1.08)}
.mx-play svg{width:28px;height:28px;fill:#fff;margin-left:4px}
.mx-dur{position:absolute;right:12px;bottom:12px;z-index:1;background:rgb(0 0 0 / .65);color:#fff;font:600 12.5px var(--ui);padding:4px 9px;border-radius:8px}
.mx-continue-body{padding:28px 30px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.mx-eyebrow{font:600 13px var(--ui);color:var(--copper)}
.mx-continue-body h2{font-size:clamp(24px,2.4vw,32px);line-height:1.12;margin:0}
.mx-continue-body p{font-family:var(--ui);color:var(--muted);margin:0}
.mx-continue-empty{grid-column:1/-1}
.mx-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;counter-reset:mxs}
.mx-steps li{counter-increment:mxs}
.mx-steps li i::before{content:counter(mxs)}
.mx-steps li.is-done i::before{content:"✓"}
.mx-steps li{display:inline-flex;align-items:center;gap:8px;font:600 13.5px var(--ui);padding:6px 12px 6px 6px;border-radius:999px;background:rgb(var(--ink-rgb) / .05);color:var(--muted)}
.mx-steps li i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:var(--card);border:1px solid var(--line-2);color:var(--text)}
.mx-steps li.is-done{background:rgb(var(--green-rgb) / .12);color:var(--green)}
.mx-steps li.is-done i{background:var(--green);border-color:var(--green);color:#fff}
.mx-cta{align-self:flex-start;padding:13px 22px}

.mx-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.mx-stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:6px}
.mx-stat span{font:600 12.5px var(--ui);color:var(--muted)}
.mx-stat b{font:800 28px/1 var(--ui);color:var(--text);letter-spacing:-.02em}
.mx-stat b small{font-size:14px;font-weight:600;color:var(--muted);letter-spacing:0}
.mx-bar{display:block;height:6px;border-radius:99px;background:rgb(var(--ink-rgb) / .08);overflow:hidden}
.mx-bar i{display:block;height:100%;border-radius:inherit;background:var(--copper);transition:width .6s ease}

.mx-mods{display:flex;flex-direction:column;gap:8px}
.mx-mod{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);overflow:hidden}
.mx-mod[open]{background:var(--card);box-shadow:var(--sh-1)}
.mx-mod summary{list-style:none;display:grid;grid-template-columns:32px minmax(0,1fr) auto 18px;align-items:center;gap:12px;padding:12px 14px;cursor:pointer}
.mx-mod summary::-webkit-details-marker{display:none}
.mx-mod-num{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font:700 13px var(--ui);background:rgb(var(--ink-rgb) / .06);color:var(--muted)}
.mx-mod.done .mx-mod-num{background:var(--green);color:#fff}
.mx-mod.progress .mx-mod-num{background:var(--copper);color:#fff}
.mx-mod-title{display:flex;flex-direction:column;gap:7px;min-width:0}
.mx-mod-title b{font:700 14.5px var(--ui);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-mod-state{font:600 12.5px var(--ui);color:var(--muted)}
.mx-chev{width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:2;transition:transform .2s}
.mx-mod[open] .mx-chev{transform:rotate(180deg)}
.mx-mod:not(:has(.mx-lessons)) summary{cursor:default;opacity:.7}
.mx-lessons{list-style:none;margin:0;padding:0 10px 10px;display:flex;flex-direction:column;gap:4px}
.mx-lessons a{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px;border-radius:12px;color:var(--text);text-decoration:none;transition:background .15s}
.mx-lessons a:hover{background:rgb(var(--ink-rgb) / .05)}
.mx-lessons a.is-next{background:rgb(var(--accent-rgb) / .07)}
.mx-thumb{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#17130f;display:block}
.mx-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.mx-thumb i{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;background:rgb(var(--green-rgb) / .78);color:#fff;font-weight:800}
.mx-l-title{font:600 14px/1.3 var(--ui);display:flex;flex-direction:column;gap:3px;min-width:0}
.mx-l-title small{font-weight:500;font-size:12.5px;color:var(--muted)}
.mx-l-go{font:700 12.5px var(--ui);color:var(--muted);padding:6px 10px;border-radius:8px;background:rgb(var(--ink-rgb) / .05)}
.mx-lessons a.is-next .mx-l-go{background:var(--copper);color:#fff}

@media(max-width:980px){.mx-continue{grid-template-columns:1fr}.mx-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.mx-continue-body{padding:20px}.mx-cta{align-self:stretch;text-align:center}
  .mx-lessons a{grid-template-columns:72px minmax(0,1fr)}.mx-l-go{display:none}.mx-stat b{font-size:24px}}
/* единый вид карточек: заголовки и подписи — интерфейсным шрифтом */
.app-editorial .dx-card-head h3{font:750 17px/1.25 var(--ui);letter-spacing:-.01em}
.app-editorial .dx-card-head h3 em{font:inherit;color:var(--copper);font-style:normal}
.app-editorial .dx-card-head{border-bottom:none;padding-bottom:0;margin-bottom:14px}
.app-editorial :is(.dx-level-note,.dx-goal-note,.dx-ev-note,.dx-badges-empty,.dx-heat-legend,.dx-heat-days,.dx-exam span,.dx-exam small,.dx-feed time,.dx-rule-ex){font-family:var(--ui)!important;font-style:normal!important;letter-spacing:0!important;text-transform:none!important}
.app-editorial .dx-level-note,.app-editorial .dx-goal-note{font-size:13px;color:var(--muted)}
.app-editorial .dx-rule-text{font:650 17px/1.4 var(--ui)!important;border:none!important;background:none!important}
.app-editorial .dx-rule-ex{font-size:14px;color:var(--copper)}
.app-editorial .dx-feed li{font-family:var(--ui)}
.app-editorial .dx-feed .dx-ev-note{font-size:13px;color:var(--muted)}
.app-editorial .dx-feed time{font-size:12px;color:var(--muted)}
.app-editorial .dx-badge{border-radius:12px;border:1px solid var(--line);background:var(--bg);font-family:var(--ui)}
.app-editorial .dx-badge b{font:600 12.5px var(--ui)}
.app-editorial .dx-exam b{font-family:var(--ui);font-weight:800;letter-spacing:-.03em}
.app-editorial .dx-goal-pick button{border-radius:8px;font-family:var(--ui)}
.app-editorial .dx-weak{border-left-width:1px}
.app-editorial .dx-heat i{border-radius:3px}
.app-editorial .mx-continue-body h2,.app-editorial .dx-head h1{letter-spacing:-.01em}
.app-editorial .dx-goal-dots :is(em,span,b){font-family:var(--ui)!important;font-style:normal!important;font-weight:700}
.app-editorial .dx-weak-pct{font-family:var(--ui)!important;font-weight:800}
.app-editorial .dx-rule{background-image:none!important}
.app-editorial .dx-rule *{background-image:none!important}

/* --- Урок ------------------------------------------------------------------ */
.app-editorial .lesson-bar{background:transparent;border-bottom:none;padding:28px 40px 10px;max-width:1320px;margin:0 auto;align-items:flex-end}
.app-editorial .lesson-bar h1{font-size:clamp(26px,2.6vw,36px);line-height:1.1;margin:6px 0 10px}
.app-editorial .lesson-bar .crumb{font:600 13px var(--ui);color:var(--muted);text-transform:none;letter-spacing:0}
.app-editorial .lesson-bar .crumb a{color:var(--copper);text-decoration:none}
.app-editorial .lx-facts{display:flex;flex-wrap:wrap;gap:6px}
.app-editorial .lx-facts span{font:600 12.5px var(--ui);letter-spacing:0;text-transform:none;color:var(--muted);background:rgb(var(--ink-rgb) / .05);padding:5px 10px;border-radius:999px}
.app-editorial .lx-facts span::before,.app-editorial .lx-facts span::after{display:none}
.app-editorial .lx-steps{max-width:1320px;margin:0 auto;padding:10px 40px 18px;border:none;background:none;font-family:var(--ui)}
.app-editorial .lx-steps li{font:600 13.5px var(--ui)}
.app-editorial .lesson-body{max-width:1320px;margin:0 auto;padding:0 40px 60px;gap:28px;grid-template-columns:minmax(0,1fr) 340px!important;border:none}
.app-editorial .lesson-main{padding:0!important;border:none!important}
.app-editorial .player{border-radius:var(--r-lg);overflow:hidden;background:#0f0c09;box-shadow:var(--sh-2);border:none}
.app-editorial .player video{object-fit:contain;background:#0f0c09}
.app-editorial .lx-speed{font-family:var(--ui);text-transform:none;letter-spacing:0;font-size:13px;font-weight:600;margin:14px 0 6px;gap:6px}
.app-editorial .lx-speed button{border-radius:999px;min-width:0;padding:6px 12px;font:700 12.5px var(--ui)}
.app-editorial .lx-keys{font-weight:500}
.app-editorial .note{margin-top:22px;padding:30px 34px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1)}
.app-editorial .note h3{font:750 13px var(--ui);text-transform:none;letter-spacing:0;color:var(--muted);border:none;padding:0;margin:0 0 16px}
.app-editorial .note .remember{border-radius:14px;border-left-width:4px}
.app-editorial .lx-hw-cta{border-radius:var(--r-lg);border:1px solid rgb(var(--accent-rgb) / .25);border-left-width:1px;background:linear-gradient(120deg,rgb(var(--accent-rgb) / .1),rgb(var(--accent-rgb) / .03));padding:22px 24px;font-family:var(--ui);box-shadow:var(--sh-1)}
.app-editorial .lx-hw-cta .lx-hw-kicker{font:700 12px var(--ui);letter-spacing:.04em}
.app-editorial .lx-hw-cta b{font:750 18px/1.3 var(--ui)}
.app-editorial .lx-hw-cta .lx-hw-go{border-radius:12px;padding:12px 18px}
.app-editorial .lx-notes{border-radius:var(--r-lg);box-shadow:var(--sh-1);border:1px solid var(--line)}
.app-editorial .lx-notes h3{font:750 17px var(--ui)}
.app-editorial .lx-notes-state{font-family:var(--ui);text-transform:none;letter-spacing:0}
.app-editorial .lx-pager a{border-radius:var(--r);box-shadow:var(--sh-1);font-family:var(--ui)}
.app-editorial .lx-pager b{font:700 16px/1.3 var(--ui)}
.app-editorial .lx-pager small{font:600 12px var(--ui);text-transform:none;letter-spacing:0}

/* плейлист модуля */
.app-editorial .lesson-side{position:sticky;top:20px;align-self:start;padding:18px!important;border:1px solid var(--line)!important;border-radius:var(--r-lg);background:var(--card);box-shadow:var(--sh-1)}
.app-editorial .lesson-side .sh{border:none;padding:0;margin-bottom:12px}
.app-editorial .lesson-side .sh b{font:750 15px var(--ui);letter-spacing:0;text-transform:none}
.app-editorial .lesson-side .sh .pct{font:700 12.5px var(--ui);background:rgb(var(--ink-rgb) / .06);padding:3px 8px;border-radius:99px}
.app-editorial .lesson-side .lx-focus{border-radius:10px;font:600 12.5px var(--ui);text-transform:none;letter-spacing:0;margin-bottom:14px;width:100%}
.app-editorial .lesson-side .ll{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center;padding:8px;border-radius:12px;border:none;margin:0 0 4px;background:none}
.app-editorial .lesson-side .ll:hover{background:rgb(var(--ink-rgb) / .05)}
.app-editorial .lesson-side .ll.active{background:rgb(var(--accent-rgb) / .08);box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / .25)}
.app-editorial .lesson-side .ll::before{display:none}
.app-editorial .lesson-side .ll .st{position:relative;width:96px;height:54px;border-radius:8px;overflow:hidden;background:#17130f;display:grid;place-items:center;color:#fff;font:700 13px var(--ui);border:none;box-shadow:none}
.app-editorial .lesson-side .ll .st img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.app-editorial .lesson-side .ll.done .st .ic{position:relative;z-index:1;width:26px;height:26px;padding:5px;border-radius:50%;background:var(--green);color:#fff}
.app-editorial .lesson-side .ll .lb b{font:650 13.5px/1.3 var(--ui)}
.app-editorial .lesson-side .ll .lb span{font:500 12px var(--ui);color:var(--muted)}
@media(max-width:1100px){.app-editorial .lesson-body{grid-template-columns:minmax(0,1fr) 280px!important}}
@media(max-width:860px){
  .app-editorial .lesson-bar,.app-editorial .lx-steps{padding-left:16px;padding-right:16px}
  .app-editorial .lesson-body{padding:0 16px 40px;display:flex!important}
  .app-editorial .lesson-side{position:static;box-shadow:none}
  .app-editorial .note{padding:22px 18px}
}
.app-editorial .note :is(p,li,ul,ol,mark){font-family:var(--font-sans)}
.app-editorial .note .remember :is(b,.remember-body){font-family:var(--font-sans)}
.app-editorial .note .remember > b{font:750 13px var(--ui)!important;letter-spacing:.04em!important;text-transform:uppercase}
.app-editorial .lx-steps li i{font:700 12px var(--ui)!important;font-style:normal}
@media(max-width:860px){.app-editorial .lesson-side{width:100%;box-sizing:border-box}}

/* --- Домашка ---------------------------------------------------------------- */
.app-editorial .hw{max-width:900px;margin:0 auto;padding:28px 40px 120px}
.app-editorial .hw h1{font-size:clamp(28px,3vw,40px)}
.app-editorial .hw .sub{font:500 15px var(--ui);color:var(--muted)}
.app-editorial .hw .mback{font:600 13px var(--ui);text-transform:none;letter-spacing:0;color:var(--copper)}
.app-editorial .hw .crumb{margin-top:14px}
.app-editorial .hw .q{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--card);box-shadow:var(--sh-1);padding:24px 26px;margin-bottom:16px}
.app-editorial .hw .q::before{display:none}
.app-editorial .hw .qn{font:800 13px var(--ui);width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgb(var(--ink-rgb) / .06);color:var(--text);flex:none}
.app-editorial .hw .q .qt{font:700 16.5px/1.45 var(--ui)!important;letter-spacing:-.005em}
.app-editorial .hw .q .qt .qbody{font-family:var(--font-sans)!important;font-weight:400!important;font-size:16.5px}
.app-editorial .hw .q .qt .qpassage{border-radius:12px;background:var(--bg)}
.app-editorial .hw .q-hint{font:600 13px var(--ui);color:var(--muted);font-style:normal}
.app-editorial .hw .opts{display:flex;flex-direction:column;gap:8px}
.app-editorial .hw .opt{border-radius:12px;border:1.5px solid var(--line);background:var(--bg);padding:12px 14px;font:500 15px/1.45 var(--ui);transition:border-color .15s,background .15s,transform .1s;display:flex;align-items:flex-start;gap:12px}
.app-editorial .hw label.opt:hover{border-color:rgb(var(--accent-rgb) / .45)}
.app-editorial .hw label.opt:active{transform:scale(.995)}
.app-editorial .hw .opt .mk{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font:800 12.5px var(--ui);background:var(--card);border:1.5px solid var(--line-2);color:var(--muted);margin-top:-1px}
.app-editorial .hw label.opt:has(input:checked){border-color:var(--copper);background:rgb(var(--accent-rgb) / .06)}
.app-editorial .hw label.opt:has(input:checked) .mk{background:var(--copper);border-color:var(--copper);color:#fff}
.app-editorial .hw .opt.correct{border-color:rgb(var(--green-rgb) / .6);background:rgb(var(--green-rgb) / .08)}
.app-editorial .hw .opt.wrong{border-color:rgb(var(--danger-rgb) / .5);background:rgb(var(--danger-rgb) / .06)}
.app-editorial .hw .opt-tag{font:700 11.5px var(--ui);text-transform:none;letter-spacing:0;margin-left:auto;white-space:nowrap}
.app-editorial .hw .q-input input{border-radius:12px;font:700 18px var(--ui);letter-spacing:.06em;padding:14px 16px}
.app-editorial .hw .q-input small{font:500 13px var(--ui);color:var(--muted)}
.app-editorial .hw .qexpl{border-radius:12px;font-family:var(--ui);font-size:14.5px;line-height:1.6}
.app-editorial .hw .qmark{font:700 11.5px var(--ui)!important;letter-spacing:0!important;text-transform:none!important;padding:4px 10px;border-radius:99px}
.app-editorial .hw-foot{position:sticky;bottom:14px;z-index:5;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px;padding:12px 14px 12px 20px;border-radius:18px;background:rgb(var(--card-rgb) / .92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);box-shadow:0 20px 40px -18px rgb(var(--shadow-rgb) / .45)}
.app-editorial .hw-foot .cnt{font:700 14px var(--ui);order:1;letter-spacing:0;text-transform:none}
.app-editorial .hw-foot .hw-meter{order:2;height:6px}
.app-editorial .hw-foot .btn{order:3;margin-left:auto}
.app-editorial .hw-result{border-radius:var(--r-lg);box-shadow:var(--sh-2);border:1px solid var(--line);font-family:var(--ui)}
.app-editorial .hw-result h2{font-size:30px}
.app-editorial .hw-result .reward{font:700 12.5px var(--ui);text-transform:none;letter-spacing:0}
.app-editorial .hw-stats{font-family:var(--ui);border-radius:var(--r);background:var(--card);border:1px solid var(--line);padding:12px 16px}
@media(max-width:600px){.app-editorial .hw{padding:18px 14px 110px}.app-editorial .hw .q{padding:18px 16px}
  .app-editorial .hw-foot{bottom:10px;padding:10px 12px}.app-editorial .hw-foot .btn{width:100%;margin-left:0}.app-editorial .hw-foot .hw-meter{flex-basis:100%;order:2}}
.app-editorial .hw form .q,.app-editorial .hw .q{border-radius:var(--r-lg)!important;padding:24px 26px!important}
.app-editorial .hw form .opt,.app-editorial .hw .opt{border-radius:12px!important}
.app-editorial .hw .qn{font:800 13px var(--ui)!important;width:30px!important;height:30px!important;border-radius:10px!important;background:rgb(var(--ink-rgb) / .06)!important;color:var(--text)!important;display:grid!important;place-items:center}
.app-editorial .hw form .hw-foot,.app-editorial .hw-foot{position:sticky!important;bottom:14px!important;z-index:5}
@media(max-width:600px){.app-editorial .hw form .q,.app-editorial .hw .q{padding:18px 16px!important}}
.app-editorial .app-main{overflow:visible;overflow-x:clip}

/* --- Настройки аккаунта: пароль, почта ---------------------------------------- */
.acc{max-width:620px;margin:0 auto;padding:36px 40px 80px;font-family:var(--ui)}
.acc-back{font:600 13px var(--ui);color:var(--copper);text-decoration:none}
.acc h1{font-size:clamp(28px,3vw,38px);margin:14px 0 8px}
.acc-lead{color:var(--muted);font-size:15px;margin:0 0 22px}
.acc-lead b{color:var(--text)}
.acc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:26px 28px}
.acc-form{display:flex;flex-direction:column;gap:18px}
.acc-field{display:flex;flex-direction:column;gap:7px}
.acc-field label{font:700 13.5px var(--ui);color:var(--text)}
.acc-field input{font:500 16px var(--ui);padding:13px 14px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--bg);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}
.acc-field input:focus{border-color:var(--copper);box-shadow:0 0 0 4px rgb(var(--accent-rgb) / .12)}
.acc-field.has-error input{border-color:var(--danger)}
.acc-err{margin:0;color:var(--danger);font:600 13px var(--ui)}
.acc-help{margin:0;color:var(--muted);font-size:12.5px}
.acc-help ul{margin:4px 0 0;padding-left:18px}
.acc-errors{background:rgb(var(--danger-rgb) / .08);border:1px solid rgb(var(--danger-rgb) / .3);color:var(--danger);border-radius:12px;padding:10px 14px;font-weight:600;font-size:14px}
.acc-errors p{margin:0}
.acc-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px}
.acc-link{font:600 13.5px var(--ui);color:var(--muted)}
.acc-link:hover{color:var(--copper)}
@media(max-width:600px){.acc{padding:22px 16px 60px}.acc-card{padding:20px 18px}.acc-actions .btn{width:100%}}

/* строки «Безопасность» в профиле */
.app-editorial .px-security .px-row{padding:14px 12px;margin:0 -12px;width:calc(100% + 24px);border-radius:12px;border-top:none;font-family:var(--ui);transition:background .15s}
.app-editorial .px-security .px-row + .px-row,.app-editorial .px-security form .px-row{border-top:1px solid var(--line)}
.app-editorial .px-security .px-row:hover{background:rgb(var(--ink-rgb) / .05)}
.app-editorial .px-security .px-row b{font:600 15px var(--ui);flex:1}
.app-editorial .px-security .px-row small{font:500 13px var(--ui);color:var(--muted);margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50%}
.app-editorial .px-security .px-row span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgb(var(--ink-rgb) / .06);font-size:15px;transition:background .15s,color .15s}
.app-editorial .px-security .px-row:hover span{background:var(--copper);color:#fff}
.profile-email-edit{font:600 13px var(--ui);color:var(--copper);margin-left:8px}
.acc-field input,.acc-field input::placeholder{font-family:var(--ui)!important;font-style:normal!important}
.ww-audio{display:flex;flex-direction:column;gap:8px;margin:18px 0 6px;padding:16px 18px;border-radius:14px;background:rgb(var(--accent-rgb) / .06);border:1px solid rgb(var(--accent-rgb) / .2);font-family:var(--ui,inherit)}
.ww-audio b{font-size:14px}
.ww-audio audio{width:100%}
.ww-audio small{color:var(--muted);font-size:13px}

/* --- Программа: уроки с обложками ------------------------------------------ */
.pm-lesson.pm-lesson-rich{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:18px;align-items:center;padding:12px 0}
.pm-thumb{position:relative;display:block;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#17130f;box-shadow:0 8px 18px -12px rgb(var(--shadow-rgb) / .5)}
.pm-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pm-thumb i{position:absolute;right:6px;bottom:6px;font:600 11px/1 'Manrope',system-ui,sans-serif;font-style:normal;color:#fff;background:rgb(0 0 0 / .65);padding:3px 6px;border-radius:6px}
.pm-lt{display:flex;flex-direction:column;gap:4px;min-width:0}
.pm-lt b{font-weight:600;font-size:16px;color:var(--text)}
.pm-lt small{font-family:'Manrope',system-ui,sans-serif;font-size:12.5px;color:var(--muted)}
@media(max-width:600px){.pm-lesson.pm-lesson-rich{grid-template-columns:96px minmax(0,1fr);gap:12px}.pm-lt b{font-size:14.5px}}

/* --- Главная: «Внутри курса» ------------------------------------------------- */
.inside-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 18px;margin-top:26px;scrollbar-width:thin}
.inside-card{scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--text)}
.inside-cover{position:relative;display:block;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#17130f;box-shadow:0 18px 36px -20px rgb(var(--shadow-rgb) / .55);transition:transform .3s ease,box-shadow .3s ease}
.inside-card:hover .inside-cover{transform:translateY(-3px);box-shadow:0 26px 44px -22px rgb(var(--shadow-rgb) / .6)}
.inside-cover img{width:100%;height:100%;object-fit:cover;display:block}
.inside-cover i{position:absolute;right:8px;bottom:8px;font:600 11.5px/1 'Manrope',system-ui,sans-serif;font-style:normal;color:#fff;background:rgb(0 0 0 / .65);padding:4px 7px;border-radius:6px}
.inside-card b{font-weight:600;font-size:15.5px;line-height:1.3}
.inside-card small{font:500 12.5px 'Manrope',system-ui,sans-serif;color:var(--muted)}
.inside-more{display:inline-block;margin-top:6px}
@media(min-width:1100px){.inside-rail{grid-auto-columns:calc((100% - 54px)/4)}}

/* --- Домашка: шапка, интерактивные номера, соответствие ---------------------- */
.app-editorial .hw .sub{margin-bottom:6px}
.hw-meta{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:14px 0 26px}
.hw-meta li{font:600 13px 'Manrope',system-ui,sans-serif;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 13px}
.hw-meta li b{color:var(--text);font-weight:800}
.hw-mark{font:700 12.5px/1 'Manrope',system-ui,sans-serif;min-width:26px;height:24px;padding:0 6px;margin:0 2px;border-radius:7px;border:1.5px dashed rgb(var(--accent-rgb) / .45);background:rgb(var(--accent-rgb) / .05);color:var(--copper);cursor:pointer;vertical-align:1px;transition:all .12s}
.hw-mark:hover{border-style:solid;background:rgb(var(--accent-rgb) / .12)}
.hw-mark.on{background:var(--copper);border-color:var(--copper);border-style:solid;color:#fff}
.hw-match{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}
.hw-match-item{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);font-family:'Manrope',system-ui,sans-serif}
.hw-match-item b{font-size:16px;color:var(--copper)}
.hw-match-item select{font:700 16px 'Manrope',system-ui,sans-serif;padding:6px 10px;border-radius:9px;border:1.5px solid var(--line-2);background:var(--card);color:var(--text);min-width:62px}
.hw-match-raw{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}
.app-editorial .hw .q-input input::placeholder{font:500 15px 'Manrope',system-ui,sans-serif;letter-spacing:0;font-style:normal}

/* --- Письменная работа ------------------------------------------------------- */
.app-editorial .written-page{max-width:900px;margin:0 auto;padding:28px 40px 80px;font-family:'Manrope',system-ui,sans-serif}
.app-editorial .written-page .mback{font:600 13px 'Manrope',system-ui,sans-serif;text-transform:none;letter-spacing:0;color:var(--copper)}
.app-editorial .written-heading h1{font-size:clamp(28px,3vw,40px)}
.app-editorial .written-heading .sub{font:500 15px 'Manrope',system-ui,sans-serif;color:var(--muted)}
.app-editorial .written-card{border-radius:20px;border:1px solid var(--line);background:var(--card);box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .06),0 6px 20px -8px rgb(var(--shadow-rgb) / .14);padding:26px 28px;background-image:none}
.app-editorial .written-card::before,.app-editorial .written-card::after{display:none}
.app-editorial .written-kicker{font:750 12px 'Manrope',system-ui,sans-serif!important;letter-spacing:.06em;text-transform:uppercase;color:var(--copper);font-style:normal!important}
.app-editorial .written-prompt p{font:500 15.5px/1.6 'Manrope',system-ui,sans-serif;margin:10px 0}
.ww-passage{margin-top:16px;border-radius:14px;border:1px solid var(--line);background:var(--bg);padding:16px 18px}
.ww-passage > span{display:block;font:700 12px 'Manrope',system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ww-passage > div{max-height:420px;overflow-y:auto;font-family:'Source Serif 4',Georgia,serif;font-size:16px;line-height:1.7;padding-right:6px}
.app-editorial .written-card h2{font:750 19px 'Manrope',system-ui,sans-serif}
.app-editorial .ww-form label{font:700 13.5px 'Manrope',system-ui,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
.app-editorial .ww-form textarea{font:400 16.5px/1.7 'Source Serif 4',Georgia,serif;border-radius:14px;border:1.5px solid var(--line-2);background:var(--bg);padding:16px 18px;min-height:280px}
.app-editorial .ww-form textarea:focus{border-color:var(--copper);box-shadow:0 0 0 4px rgb(var(--accent-rgb) / .12);outline:none}
.app-editorial .ww-form textarea::placeholder{font-family:'Manrope',system-ui,sans-serif;font-style:normal}
.ww-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:6px}
.ww-count{font:700 13.5px 'Manrope',system-ui,sans-serif;color:var(--muted);padding:6px 12px;border-radius:999px;background:rgb(var(--ink-rgb) / .05)}
.ww-count.is-ok{color:var(--green);background:rgb(var(--green-rgb) / .12)}
.ww-count.is-low{color:var(--amber);background:rgb(var(--amber-rgb) / .12)}
.ww-count.is-over{color:var(--danger);background:rgb(var(--danger-rgb) / .1)}
.app-editorial .written-feedback{border-radius:14px;font-family:'Manrope',system-ui,sans-serif}
.app-editorial .written-wait{border-radius:14px;font-family:'Manrope',system-ui,sans-serif}
@media(max-width:600px){.app-editorial .written-page{padding:18px 14px 60px}.app-editorial .written-card{padding:20px 16px}.ww-foot .btn{width:100%}}
.app-editorial .ww-form textarea{font-family:'Source Serif 4',Georgia,serif!important;font-size:16.5px!important;line-height:1.7!important}
.app-editorial .written-prompt,.app-editorial .written-prompt *{background-image:none!important}
.app-editorial .written-prompt{background:var(--card)!important}
.app-editorial .filebox{font-family:'Manrope',system-ui,sans-serif}
.app-editorial .filebox :is(b,strong,.filebox-title){font:700 15px 'Manrope',system-ui,sans-serif!important}
.app-editorial .filebox :is(small,span){font-family:'Manrope',system-ui,sans-serif!important}
.app-editorial .filebox-drop,.app-editorial .filebox-thumb,.app-editorial .filebox-preview{border-radius:14px!important}
.app-editorial .hw-stats{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-family:'Manrope',system-ui,sans-serif!important;border-radius:16px!important}
.app-editorial .hw-stats span{font:600 13px 'Manrope',system-ui,sans-serif!important;text-transform:none!important;letter-spacing:0!important;color:var(--muted)}
.app-editorial .hw-stats b{font:800 15px 'Manrope',system-ui,sans-serif!important;color:var(--text)}

/* --- Профиль в стиле кабинета ------------------------------------------------ */
.app-editorial .px{max-width:1180px;margin:0 auto}
.app-editorial .px-cover{border-radius:22px!important;border:1px solid var(--line)!important;background:var(--card)!important;background-image:none!important;box-shadow:0 2px 4px rgb(var(--shadow-rgb) / .06),0 18px 40px -16px rgb(var(--shadow-rgb) / .24)!important;font-family:'Manrope',system-ui,sans-serif}
.app-editorial .px-cover::before,.app-editorial .px-cover::after{background-image:none!important;opacity:.35}
.app-editorial .px-cover :is(.kicker,small,span,p){font-family:'Manrope',system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important}
.app-editorial .px-cover p{font-style:normal!important;color:var(--muted)}
.app-editorial .px-stats{gap:14px!important;border:none!important;background:none!important;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.app-editorial .px-stats > *{border-radius:14px!important;border:1px solid var(--line)!important;background:var(--card)!important;box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .06),0 6px 20px -8px rgb(var(--shadow-rgb) / .14)}
.app-editorial .px-stats :is(dt,span,small){font:600 12.5px 'Manrope',system-ui,sans-serif!important;text-transform:none!important;letter-spacing:0!important;color:var(--muted)}
.app-editorial .px-stats :is(dd,b){font:800 28px/1.1 'Manrope',system-ui,sans-serif!important;letter-spacing:-.02em!important;color:var(--text)}
.app-editorial .px :is(.mono-note,time){font-family:'Manrope',system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important}
.app-editorial .px label{font:700 13px 'Manrope',system-ui,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
.app-editorial .px :is(input[type=text],input[type=email],select){border-radius:12px!important;font-family:'Manrope',system-ui,sans-serif!important}
@media(max-width:860px){.app-editorial .px-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.app-editorial .px-stats,.app-editorial .px-stats::before,.app-editorial .px-stats::after{box-shadow:none!important;outline:none!important;background:none!important;border:none!important}
.app-editorial .px-level :is(span,small,b){font-family:'Manrope',system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important}
.pm-thumb-text{position:absolute;inset:0;display:grid;place-items:center;text-align:center;font:italic 700 15px/1.1 "Playfair Display",Georgia,serif;color:#f3e7d2;background:linear-gradient(135deg,#8f2a14,#3a1a10)}
/* закрытые по очереди уроки */
.mx-lesson-locked{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:12px;padding:8px;border-radius:12px;color:var(--muted);cursor:not-allowed}
.mx-lesson-locked .mx-thumb img{filter:grayscale(1) brightness(.55)}
.mx-lesson-locked .mx-thumb i{background:transparent!important;font-size:18px}
.app-editorial .lesson-side .ll.locked{opacity:.6;cursor:not-allowed}
.app-editorial .lesson-side .ll.locked .st img{filter:grayscale(1) brightness(.5)}
.app-editorial .lesson-side .ll.locked .st .ic{position:relative;z-index:1;color:#fff;width:18px;height:18px}
@media(max-width:560px){.mx-lesson-locked{grid-template-columns:72px minmax(0,1fr)}}
/* Программа: длинные значения («3 ч 6 мин») не должны обрезаться на телефоне */
.public-editorial .prog-stats .n{white-space:nowrap;font-size:clamp(22px,6.2vw,34px)}
@media(max-width:560px){
  .public-editorial .prog-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .public-editorial .prog-stats .ps{padding-left:14px;padding-right:14px}
}

/* Подсказка у сокращений не должна растягивать страницу вбок */
body{overflow-x:clip}
abbr.ru-abbr::after{max-width:min(70vw,280px);white-space:normal;text-align:center}

/* --- Главная: сравнение цены с репетитором ---------------------------------- */
.pc-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:22px;align-items:stretch;margin-top:28px}
.pc-card{border-radius:20px;padding:28px 30px;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;gap:10px}
.pc-tutor{opacity:.85}
.pc-course{border-color:rgb(var(--accent-rgb) / .35);box-shadow:0 24px 50px -28px rgb(var(--accent-rgb) / .45);background:linear-gradient(160deg,var(--card),rgb(var(--accent-rgb) / .05))}
.pc-kicker{font:700 12px 'Manrope',system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pc-course .pc-kicker{color:var(--copper)}
.pc-price{font:400 clamp(40px,5vw,56px)/1 var(--font-serif);color:var(--text)}
.pc-tutor .pc-price{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:rgb(var(--ink-rgb) / .35)}
.pc-what{margin:0;font:600 15px 'Manrope',system-ui,sans-serif;color:var(--muted)}
.pc-card ul{list-style:none;padding:0;margin:8px 0 6px;display:flex;flex-direction:column;gap:9px}
.pc-card li{position:relative;padding-left:24px;font-size:15.5px;line-height:1.45}
.pc-tutor li::before{content:"—";position:absolute;left:0;color:var(--muted)}
.pc-course li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:800}
.pc-course .btn{align-self:flex-start;margin-top:auto}
@media(max-width:760px){.pc-grid{grid-template-columns:1fr}.pc-course .btn{align-self:stretch;text-align:center}}

/* Урок без видео: вместо чёрного плеера — «лист» */
.mx-cover-text{background:linear-gradient(135deg,var(--paper,#f6efe2),#efe4d0);display:grid;place-items:center}
.mx-cover-text::after{display:none}
.mx-cover-note{display:grid;justify-items:center;gap:6px;color:var(--copper)}
.mx-cover-note b{font:700 64px/1 var(--font-serif);letter-spacing:-.02em}
.mx-cover-note small{font:600 12px var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mx-thumb.is-text{background:linear-gradient(135deg,#f6efe2,#e9dcc4)}
.mx-thumb.is-text::before{content:"Aa";position:absolute;inset:0;display:grid;place-items:center;font:700 20px var(--font-serif);color:var(--copper)}
[data-theme="dark"] .mx-cover-text,[data-theme="dark"] .mx-thumb.is-text{background:linear-gradient(135deg,#2a241d,#1f1a15)}
.lesson-side .ll .st.is-text{background:linear-gradient(135deg,#f6efe2,#e9dcc4);color:var(--copper);font-family:var(--font-serif);font-weight:700}
.lesson-side .ll.done .st.is-text{color:var(--green)}
[data-theme="dark"] .lesson-side .ll .st.is-text{background:linear-gradient(135deg,#2a241d,#1f1a15)}
/* Домашка на телефоне: текст задания на всю ширину карточки, компактная панель проверки */
@media(max-width:600px){
  .q .qt .qbody{margin-left:-48px}
  .app-editorial .hw-foot{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:12px;padding:8px 8px 8px 16px}
  .app-editorial .hw-foot .cnt{order:1;text-align:left}
  .app-editorial .hw-foot .btn{order:3}
  .app-editorial .hw-foot .hw-meter{display:none}
  .app-editorial .hw-foot .cnt{white-space:nowrap;font-size:13px}
  .app-editorial .hw-foot .btn{width:auto;flex:1;margin-left:auto;padding-left:12px;padding-right:12px}
}
