/* ============================================================
   MedBalance Academy — UI kit (acad.css)
   Контракт: SPEC.md §2. Визуальная база — forever_funnel/dashboard.html (светлый, бордо, Rubik/Heebo),
   сайдбар — по образцу mb2_nav.js (228 / 60 px, круглая кнопка-язычок), но в СВЕТЛОЙ палитре --sb-*.
   RTL-first: только логические свойства (inset-inline-*, margin-inline-*, padding-inline-*, text-align:start).
   Цвета/радиусы/шрифты — только токены. Брендинг (acad_settings.branding) перезаписывает --maroon / --maroon-2
   при загрузке (ACAD.applyBranding).
   ============================================================ */

:root{
  /* бренд */
  --maroon:#861221; --maroon-2:#ff6b5f;
  --maroon-ink:#5b2530; --maroon-soft:#fdf5f6; --maroon-line:#efe3e6; --maroon-tint:#faf7f8;
  --grad:linear-gradient(90deg,var(--maroon-2),var(--maroon));
  --grad-v:linear-gradient(var(--maroon-2),var(--maroon));
  /* нейтральные */
  --ink:#1f2937; --ink-2:#374151; --muted:#6b7280; --muted-2:#9ca3af; --line:#e6e6ef; --line-2:#f1f2f6;
  --bg:#f4f5f9; --card:#ffffff; --track:#eef0f5;
  /* статусы */
  --green:#059669; --green-bg:#ecfdf5;
  --amber:#d97706; --amber-bg:#fffbeb;
  --red:#dc2626;   --red-bg:#fef2f2;
  --blue:#2563eb;  --blue-bg:#eff6ff;
  --purple:#7c3aed; --purple-bg:#f5f3ff;
  --gray:#6b7280;  --gray-bg:#f3f4f6;
  /* радиусы */
  --r-sm:8px; --r:10px; --r-lg:12px; --r-xl:16px; --r-pill:999px;
  /* шкала текста */
  --fs-2xs:10.5px; --fs-xs:11.5px; --fs-sm:12.5px; --fs-md:13.5px; --fs-lg:15.5px; --fs-xl:18px; --fs-2xl:24px; --fs-3xl:30px;
  /* отступы — шаг 4 */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px; --s-8:32px;
  /* тени */
  --shadow-sm:0 2px 8px rgba(17,24,39,.04);
  --shadow:0 6px 18px rgba(17,24,39,.05);
  --shadow-lg:0 18px 48px rgba(17,24,39,.16);
  --shadow-brand:0 4px 12px rgba(134,18,33,.25);
  /* шрифты */
  --font:'Heebo','Rubik',system-ui,'Segoe UI',Arial,sans-serif;
  --font-head:'Rubik','Heebo',system-ui,'Segoe UI',Arial,sans-serif;
  /* геометрия */
  --sb-exp:228px; --sb-col:60px; --sb-w:var(--sb-exp);
  --page-max:1400px; --page-pad:20px; --read-max:760px; --form-max:1060px;
  --home-max:1840px;   /* «הלמידה שלי» v2 dashboard is wider: 2440 px screens left ~400 px empty on each side at 1400 */
  --mtop-h:0px;        /* высота мобильной шапки (≤760 px) */
  --sticky-top:0px;    /* верх липких блоков страницы (мобильная шапка) */
  --filters-h:0px;     /* высота липкой панели фильтров — меряется в JS (ACAD.measureSticky) */
  --cta-h:0px;         /* высота закреплённой снизу кнопки «Продолжить» на мобильном */
  --lbl-filtered:'✓ מסונן';
  /* светлая палитра сайдбара */
  --sb-bg:#ffffff; --sb-hover:#f6f1f2; --sb-text:#374151; --sb-bright:#111827; --sb-muted:#8a8f9c;
  --sb-border:#ecebf1; --sb-brand:var(--maroon); --sb-brand-bg:#fbeef0; --sb-tab:var(--bg); --sb-input:#f7f7fa;
  color-scheme:light;
}
/* EN (LTR): текст — Figtree (иврит в именах падает на Heebo), заголовки/цифры — Rubik как в HE */
html[lang="en"]{ --lbl-filtered:'✓ Filtered'; --font:'Figtree','Heebo','Rubik',system-ui,'Segoe UI',Arial,sans-serif; }
html.acad-sb-collapsed{ --sb-w:var(--sb-col); }

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; }
body{
  background:var(--bg); color:var(--ink); font-family:var(--font); font-size:var(--fs-md); line-height:1.5;
  min-height:100vh; -webkit-font-smoothing:antialiased; text-align:start;
}
h1,h2,h3,h4,.acad-head-font{ font-family:var(--font-head); color:var(--ink); line-height:1.25; }
h1{ font-size:var(--fs-2xl); font-weight:800; margin:0; }
h2{ font-size:var(--fs-xl); font-weight:800; margin:0; }
h3{ font-size:var(--fs-lg); font-weight:700; margin:0; }
a{ color:var(--maroon); }
button,input,select,textarea{ font-family:inherit; font-size:inherit; color:inherit; }
img{ max-width:100%; }
[hidden]{ display:none !important; }
.num,.tnum{ font-variant-numeric:tabular-nums; }
.ltr{ direction:ltr; unicode-bidi:isolate; }
.muted{ color:var(--muted); }
.small{ font-size:var(--fs-sm); }
.nowrap{ white-space:nowrap; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.acad-ico{ display:inline-block; width:1em; height:1em; flex:none; vertical-align:-.15em; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
:focus-visible{ outline:2px solid var(--maroon); outline-offset:2px; }

/* ============ раскладка страницы ============ */
body.acad-has-sb{ padding-inline-start:var(--sb-w); }
/* animate only a user collapse/expand — at boot the 0 → 228 px slide shifted the whole page (CLS) */
html.acad-sb-anim body.acad-has-sb{ transition:padding .18s ease; }
.acad-page{ max-width:var(--page-max); margin:0 auto; padding:22px var(--page-pad) 80px; }
.acad-page.read{ max-width:var(--read-max); }
.acad-page.form{ max-width:var(--form-max); }
.acad-page.fluid{ max-width:none; }
.acad-page.home{ max-width:var(--home-max); }
.acad-hd{ display:flex; align-items:center; gap:var(--s-4); flex-wrap:wrap; margin-bottom:var(--s-4); }
.acad-hd .titles{ flex:1 1 320px; min-width:0; }
.acad-hd h1{ font-size:var(--fs-2xl); }
.acad-hd p{ margin:2px 0 0; font-size:var(--fs-md); color:var(--muted); }
.acad-hd .actions{ display:flex; gap:var(--s-2); flex-wrap:wrap; }
/* EN-интерфейс + ивритский контент из БД (названия курсов/уроков/вопросов, имена): направление строки берётся
   из самого текста, иначе «בדיקה ב־CallMarker» рассыпается; выравнивание остаётся по интерфейсу (слева) */
html[dir="ltr"] :is(.acad-hd h1, .el-head h1, .cm-head h1, .t > b, .z-crumbs b, .z-crumbs a, .acad-tbl td > b, .acad-tbl td.wrap > b, .acad-modal-head h3, .acad-modal-head .m-sub){ unicode-bidi:plaintext; text-align:left; }
/* фон страниц управления (Студия, Отчёты) — точечная сетка */
body.acad-mgmt{ background:var(--bg) radial-gradient(circle at 1px 1px, rgba(134,18,33,.05) 1px, transparent 0) 0 0/22px 22px; }
/* полоса зоны управления (Студия, Отчёты): метка зоны + крошки + «в учебную зону» — одна на все страницы управления */
.acad-zone{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:#2b0b12; background:linear-gradient(100deg,color-mix(in srgb,var(--maroon) 30%,#111) 0%,color-mix(in srgb,var(--maroon) 65%,#111) 55%,var(--maroon) 100%); color:#fff;
  border-radius:var(--r-xl); padding:10px 14px; margin-bottom:var(--s-4); box-shadow:0 8px 22px rgba(43,11,18,.22); position:relative; overflow:hidden; min-height:54px; }
.acad-zone::after{ content:''; position:absolute; width:220px; height:220px; border-radius:50%; background:rgba(255,255,255,.06); inset-inline-end:-60px; top:-120px; pointer-events:none; }
.acad-zone .z-ic{ width:34px; height:34px; border-radius:var(--r); background:rgba(255,255,255,.14); display:inline-flex; align-items:center; justify-content:center; font-size:18px; flex:none; }
.acad-zone .z-lbl{ font-family:var(--font-head); font-weight:800; font-size:var(--fs-md); letter-spacing:.4px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.22); border-radius:var(--r-pill); padding:3px 12px; white-space:nowrap; }
.acad-zone .z-crumbs{ display:flex; align-items:center; gap:6px; font-size:var(--fs-sm); opacity:.92; min-width:0; flex:1 1 200px; }
.acad-zone .z-crumbs a{ color:#fff; text-decoration:none; opacity:.85; white-space:nowrap; }
.acad-zone .z-crumbs a:hover{ opacity:1; text-decoration:underline; }
.acad-zone .z-crumbs .sep{ opacity:.5; display:inline-flex; }
html[dir="ltr"] .acad-zone .z-crumbs .sep .acad-ico{ transform:scaleX(-1); }
.acad-zone .z-crumbs b{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:320px; }
.acad-zone .z-sw{ margin-inline-start:auto; display:inline-flex; align-items:center; gap:6px; color:#fff; text-decoration:none; border:1px solid rgba(255,255,255,.35);
  border-radius:var(--r-pill); padding:6px 14px; font-size:var(--fs-sm); font-weight:700; position:relative; z-index:1; white-space:nowrap; }
.acad-zone .z-sw:hover{ background:rgba(255,255,255,.12); }
html[dir="rtl"] .acad-zone .z-sw .acad-ico{ transform:scaleX(-1); }
@media (max-width:760px){
  .acad-zone{ padding:8px 10px; gap:8px; }
  .acad-zone .z-crumbs{ flex-basis:100%; order:3; }
  .acad-zone .z-sw{ padding:5px 10px; }
  .acad-zone .z-sw span{ display:none; }
}
.acad-row{ display:flex; gap:var(--s-3); align-items:center; flex-wrap:wrap; }
.acad-spacer{ flex:1; }
.acad-grid{ display:grid; gap:var(--s-4); }
.acad-grid.c2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.acad-grid.c3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.acad-grid.c4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.acad-grid.auto{ grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }

.acad-sec-title{ font-family:var(--font-head); font-size:var(--fs-lg); font-weight:800; margin:var(--s-6) 4px var(--s-3); display:flex; align-items:center; gap:9px; }
.acad-sec-title::before{ content:''; width:5px; height:18px; border-radius:3px; background:var(--grad-v); flex:none; }
.acad-sec-title .sub{ font-size:var(--fs-sm); color:var(--muted); font-weight:500; font-family:var(--font); }
.acad-sec-title .acad-spacer{ flex:1; }

/* ============ карточки ============ */
.acad-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-xl); padding:var(--s-5); box-shadow:var(--shadow); position:relative; }
.acad-card.tight{ padding:var(--s-4); }
.acad-card.flush{ padding:0; overflow:hidden; }
.acad-card h3{ margin:0 0 4px; }
.acad-card .sub{ font-size:var(--fs-sm); color:var(--muted); }
.acad-card.hover{ transition:transform .12s, box-shadow .12s, border-color .12s; cursor:pointer; }
.acad-card.hover:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(17,24,39,.1); border-color:#e7cfd4; }
.acad-card-cover{ aspect-ratio:16/7; background:var(--grad); position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:var(--s-4); color:#fff; }
.acad-card-cover img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.acad-card-cover .cap{ position:relative; font-family:var(--font-head); font-weight:800; font-size:var(--fs-lg); text-shadow:0 1px 8px rgba(0,0,0,.25); }
.acad-card-body{ padding:var(--s-4); }

/* ============ KPI-карточки-фильтры (как в forever) ============ */
.acad-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:var(--s-3); }
.acad-kpi{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-xl); padding:16px 16px 14px; box-shadow:var(--shadow); position:relative; overflow:hidden; text-align:start; font:inherit; color:inherit; }
.acad-kpi .k-label{ font-size:var(--fs-md); color:var(--muted); font-weight:600; display:flex; align-items:center; gap:6px; }
.acad-kpi .k-label .acad-ico{ color:var(--maroon); }
.acad-kpi .k-val{ font-family:var(--font-head); font-size:28px; font-weight:800; margin-top:8px; line-height:1; font-variant-numeric:tabular-nums; }
.acad-kpi .k-val small{ font-size:var(--fs-md); color:var(--muted); font-weight:600; }
.acad-kpi .k-sub{ font-size:var(--fs-sm); color:var(--muted); margin-top:7px; }
.acad-kpi .acad-bar{ margin-top:10px; }
.acad-kpi.clickable{ cursor:pointer; transition:transform .12s, box-shadow .12s, border-color .12s; }
.acad-kpi.clickable:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(17,24,39,.1); border-color:#e7cfd4; }
.acad-kpi.active{ border:2px solid var(--maroon); background:var(--maroon-soft); box-shadow:0 8px 22px rgba(134,18,33,.16); padding:15px 15px 13px; }
.acad-kpi.active::after{ content:var(--lbl-filtered); position:absolute; bottom:10px; inset-inline-end:12px; font-size:var(--fs-2xs); font-weight:800; color:#fff; background:var(--maroon); padding:2px 8px; border-radius:var(--r-pill); }
.acad-kpi.c-green .k-val{ color:var(--green); } .acad-kpi.c-amber .k-val{ color:var(--amber); }
.acad-kpi.c-red .k-val{ color:var(--red); } .acad-kpi.c-blue .k-val{ color:var(--blue); } .acad-kpi.c-maroon .k-val{ color:var(--maroon); }

/* ============ кнопки ============ */
.acad-btn{
  appearance:none; border:1.5px solid var(--line); background:#fff; color:var(--ink);
  border-radius:var(--r-pill); padding:9px 18px; min-height:40px; font-size:var(--fs-md); font-weight:600; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:7px; font-family:inherit; text-decoration:none; line-height:1.2;
  transition:border-color .15s, color .15s, background .15s, transform .12s, box-shadow .15s; white-space:nowrap; user-select:none;
}
.acad-btn:hover{ border-color:var(--maroon); color:var(--maroon); }
.acad-btn:active{ transform:translateY(1px); }
.acad-btn[disabled],.acad-btn.disabled{ opacity:.5; cursor:not-allowed; pointer-events:none; }
.acad-btn.primary{ background:var(--grad); color:#fff; border-color:transparent; box-shadow:var(--shadow-brand); }
.acad-btn.primary:hover{ color:#fff; transform:translateY(-1px); box-shadow:0 8px 18px rgba(134,18,33,.3); }
.acad-btn.secondary{ background:var(--maroon-soft); border-color:#ecd3d8; color:var(--maroon); }
.acad-btn.secondary:hover{ background:#fbe9ec; }
.acad-btn.ghost{ background:transparent; border-color:transparent; color:var(--ink-2); }
.acad-btn.ghost:hover{ background:var(--gray-bg); color:var(--maroon); border-color:transparent; }
.acad-btn.danger{ background:var(--red); border-color:transparent; color:#fff; box-shadow:0 4px 12px rgba(220,38,38,.22); }
.acad-btn.danger:hover{ background:#b91c1c; color:#fff; }
.acad-btn.danger-soft{ background:var(--red-bg); border-color:#fecaca; color:var(--red); }
.acad-btn.success{ background:var(--green); border-color:transparent; color:#fff; }
.acad-btn.sm{ min-height:32px; padding:5px 12px; font-size:var(--fs-sm); }
.acad-btn.lg{ min-height:48px; padding:12px 24px; font-size:var(--fs-lg); }
.acad-btn.block{ display:flex; width:100%; }
.acad-btn.icon{ width:40px; padding:0; }
.acad-btn.icon.sm{ width:32px; }
.acad-btn .acad-ico{ font-size:1.15em; }
.acad-btn.loading{ pointer-events:none; position:relative; color:transparent !important; }
.acad-btn.loading::after{ content:''; position:absolute; width:18px; height:18px; border-radius:50%; border:2.5px solid rgba(255,255,255,.5); border-top-color:#fff; animation:acad-spin .7s linear infinite; }
.acad-btn:not(.primary):not(.danger).loading::after{ border-color:rgba(134,18,33,.25); border-top-color:var(--maroon); }
.acad-link{ background:none; border:0; padding:0; color:var(--maroon); font-weight:600; cursor:pointer; text-decoration:underline; text-underline-offset:3px; font-size:inherit; }

/* сегментированный переключатель (HE / EN, вкладки-пилюли) */
.acad-seg{ display:inline-flex; background:var(--gray-bg); border-radius:var(--r-pill); padding:3px; gap:2px; }
.acad-seg button{ appearance:none; border:0; background:transparent; border-radius:var(--r-pill); padding:5px 12px; font-size:var(--fs-sm); font-weight:700; color:var(--muted); cursor:pointer; min-height:28px; }
.acad-seg button.on{ background:#fff; color:var(--maroon); box-shadow:0 1px 4px rgba(17,24,39,.1); }

/* чип-фильтры (период и т.п.) */
.acad-pchip{ appearance:none; border:1.5px solid var(--line); background:#fff; color:var(--ink); border-radius:var(--r-pill); padding:6px 14px; font-size:var(--fs-md); font-weight:600; cursor:pointer; transition:all .12s; }
.acad-pchip:hover{ border-color:var(--maroon); color:var(--maroon); }
.acad-pchip.on{ background:var(--grad); color:#fff; border-color:transparent; box-shadow:0 3px 10px rgba(134,18,33,.22); }

/* ============ поля ввода ============ */
.acad-field{ display:flex; flex-direction:column; gap:5px; margin-bottom:var(--s-4); min-width:0; }
.acad-field > label,.acad-label{ font-size:var(--fs-sm); color:var(--ink-2); font-weight:600; }
.acad-field .hint{ font-size:var(--fs-xs); color:var(--muted); }
.acad-field .err{ font-size:var(--fs-xs); color:var(--red); font-weight:600; }
.acad-input,.acad-select,.acad-textarea{
  width:100%; border:1.5px solid var(--line); border-radius:var(--r); padding:9px 12px; min-height:42px; font-size:var(--fs-md);
  background:#fff; color:var(--ink); outline:none; transition:border-color .15s, box-shadow .15s; font-family:inherit;
}
.acad-textarea{ min-height:96px; resize:vertical; line-height:1.5; }
.acad-input:focus,.acad-select:focus,.acad-textarea:focus{ border-color:var(--maroon); box-shadow:0 0 0 3px rgba(134,18,33,.10); }
.acad-input[readonly]{ background:var(--maroon-tint); color:var(--ink-2); }
.acad-input.invalid,.acad-select.invalid,.acad-textarea.invalid{ border-color:var(--red); box-shadow:0 0 0 3px rgba(220,38,38,.08); }
.acad-input.ltr{ direction:ltr; text-align:start; }
html[dir="rtl"] .acad-input.ltr{ text-align:right; }
.acad-input.code{ font-family:var(--font-head); letter-spacing:.35em; font-size:var(--fs-xl); text-align:center !important; direction:ltr; font-variant-numeric:tabular-nums; }
.acad-select{ appearance:none; padding-inline-end:34px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-size:16px; background-position:left 12px center; }
html[dir="ltr"] .acad-select{ background-position:right 12px center; }
.acad-input-wrap{ position:relative; display:flex; align-items:center; }
.acad-input-wrap .acad-input{ padding-inline-end:44px; }
.acad-input-wrap .acad-input-btn{ position:absolute; inset-inline-end:6px; width:32px; height:32px; border:0; background:transparent; color:var(--muted); border-radius:var(--r-sm); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.acad-input-wrap .acad-input-btn:hover{ color:var(--maroon); background:var(--maroon-soft); }
.acad-input-wrap .acad-input-ico{ position:absolute; inset-inline-start:12px; color:var(--muted-2); pointer-events:none; display:inline-flex; }
.acad-input-wrap.has-ico .acad-input{ padding-inline-start:38px; }
/* чекбокс / радио / тумблер */
.acad-check{ display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-size:var(--fs-md); line-height:1.45; padding:4px 0; }
.acad-check input{ width:18px; height:18px; accent-color:var(--maroon); margin:1px 0 0; flex:none; cursor:pointer; }
.acad-switch{ position:relative; display:inline-flex; align-items:center; gap:10px; cursor:pointer; font-size:var(--fs-md); }
.acad-switch input{ position:absolute; opacity:0; width:0; height:0; }
.acad-switch .tr{ width:40px; height:22px; border-radius:var(--r-pill); background:#d9dbe3; position:relative; transition:background .15s; flex:none; }
.acad-switch .tr::after{ content:''; position:absolute; top:3px; inset-inline-start:3px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); transition:inset-inline-start .15s; }
.acad-switch input:checked + .tr{ background:var(--maroon); }
.acad-switch input:checked + .tr::after{ inset-inline-start:21px; }
.acad-switch input:focus-visible + .tr{ outline:2px solid var(--maroon); outline-offset:2px; }
/* индикатор силы пароля */
.acad-pw-meter{ display:grid; grid-template-columns:repeat(4,1fr); gap:4px; margin-top:6px; }
.acad-pw-meter i{ height:5px; border-radius:3px; background:var(--track); transition:background .2s; }
.acad-pw-meter[data-s="1"] i:nth-child(-n+1){ background:var(--red); }
.acad-pw-meter[data-s="2"] i:nth-child(-n+2){ background:var(--amber); }
.acad-pw-meter[data-s="3"] i:nth-child(-n+3){ background:#65a30d; }
.acad-pw-meter[data-s="4"] i:nth-child(-n+4){ background:var(--green); }
.acad-pw-label{ font-size:var(--fs-xs); font-weight:700; margin-top:3px; color:var(--muted); }
.acad-pw-label[data-s="1"]{ color:var(--red); } .acad-pw-label[data-s="2"]{ color:var(--amber); }
.acad-pw-label[data-s="3"]{ color:#4d7c0f; } .acad-pw-label[data-s="4"]{ color:var(--green); }

/* ============ чипы / бейджи ============ */
.acad-chip{ display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:var(--r-pill); font-size:var(--fs-sm); font-weight:700; white-space:nowrap; line-height:1.4; background:var(--gray-bg); color:var(--gray); }
.acad-chip .acad-ico{ font-size:1.05em; }
.acad-chip.sm{ padding:1px 8px; font-size:var(--fs-xs); }
.acad-chip.green{ background:var(--green-bg); color:var(--green); }
.acad-chip.amber{ background:var(--amber-bg); color:var(--amber); }
.acad-chip.red{ background:var(--red-bg); color:var(--red); }
.acad-chip.blue{ background:var(--blue-bg); color:var(--blue); }
.acad-chip.purple{ background:var(--purple-bg); color:var(--purple); }
.acad-chip.gray{ background:var(--gray-bg); color:var(--gray); }
.acad-chip.maroon{ background:var(--maroon-soft); color:var(--maroon); }
.acad-chip.solid{ background:var(--maroon); color:#fff; }
.acad-chip.outline{ background:#fff; border:1.5px solid var(--line); color:var(--ink-2); }
/* статусы обучения: assigned · in_progress · completed · failed · overdue · locked · draft · published · archived */
.acad-chip.st-assigned{ background:var(--blue-bg); color:var(--blue); }
.acad-chip.st-in_progress,.acad-chip.st-started{ background:var(--amber-bg); color:var(--amber); }
.acad-chip.st-completed,.acad-chip.st-done,.acad-chip.st-passed,.acad-chip.st-published{ background:var(--green-bg); color:var(--green); }
.acad-chip.st-failed,.acad-chip.st-overdue,.acad-chip.st-expired{ background:var(--red-bg); color:var(--red); }
.acad-chip.st-locked,.acad-chip.st-archived,.acad-chip.st-draft{ background:var(--gray-bg); color:var(--gray); }
.acad-chip.st-available{ background:var(--maroon-soft); color:var(--maroon); }
.acad-chip.st-soon,.acad-chip.st-incomplete{ background:var(--blue-bg); color:var(--blue); }
.acad-chip.st-partial{ background:var(--amber-bg); color:var(--amber); }
/* 170 · «הקורס בבנייה» — soft banner (course map, course card, home) */
.acad-incomplete{ display:flex; gap:10px; align-items:flex-start; padding:10px 14px; border-radius:var(--r-lg); background:var(--blue-bg); color:var(--ink); border:1px solid color-mix(in srgb, var(--blue) 22%, transparent); font-size:var(--fs-sm); line-height:1.5; }
.acad-incomplete .acad-ico{ color:var(--blue); flex:0 0 auto; margin-top:2px; }
.acad-incomplete b{ display:block; color:var(--blue); font-size:var(--fs-sm); }
.acad-incomplete.sm{ padding:6px 10px; font-size:var(--fs-xs); gap:8px; }
.acad-incomplete.sm b{ display:inline; font-size:var(--fs-xs); }
.acad-dot{ width:9px; height:9px; border-radius:50%; display:inline-block; background:var(--muted-2); flex:none; }
.acad-dot.green{ background:var(--green); } .acad-dot.amber{ background:var(--amber); } .acad-dot.red{ background:var(--red); } .acad-dot.blue{ background:var(--blue); }
.acad-count{ display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:var(--r-pill); background:var(--red); color:#fff; font-size:var(--fs-2xs); font-weight:800; font-variant-numeric:tabular-nums; }
/* активный фильтр-чип с крестиком */
.acad-fchip{ display:inline-flex; align-items:center; gap:8px; background:var(--maroon-soft); border:1.5px solid var(--maroon); color:var(--maroon); border-radius:var(--r-pill); padding:5px 8px 5px 12px; font-size:var(--fs-md); font-weight:700; }
.acad-fchip button{ border:none; background:var(--maroon); color:#fff; width:20px; height:20px; border-radius:50%; cursor:pointer; padding:0; display:inline-flex; align-items:center; justify-content:center; }
/* аватар */
.acad-avatar{ width:36px; height:36px; border-radius:50%; background:var(--grad); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:800; font-size:var(--fs-md); flex:none; text-transform:uppercase; }
.acad-avatar.lg{ width:56px; height:56px; font-size:var(--fs-xl); }

/* ============ липкие фильтры + таблицы ============ */
.acad-filters{ position:sticky; top:var(--sticky-top); z-index:20; background:var(--bg); display:flex; gap:8px; flex-wrap:wrap; align-items:end; margin:14px 0 0; padding:10px 4px 12px; border-bottom:1px solid var(--line); }
.acad-filters .ff{ display:flex; flex-direction:column; gap:4px; }
.acad-filters .ff label{ font-size:var(--fs-xs); color:var(--muted); font-weight:600; margin-inline-start:2px; }
.acad-filters .acad-input,.acad-filters .acad-select{ min-height:40px; padding-block:7px; width:auto; min-width:120px; }
.acad-rowcount{ align-self:end; background:var(--red); color:#fff; border-radius:var(--r-pill); padding:9px 14px; font-size:var(--fs-md); font-weight:800; min-height:40px; display:inline-flex; align-items:center; font-variant-numeric:tabular-nums; white-space:nowrap; }
.acad-tbl-wrap{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-xl); box-shadow:var(--shadow); margin-top:12px; }
.acad-tbl-wrap.scroll{ overflow:auto; max-height:70vh; }
.acad-tbl-wrap.scroll .acad-tbl thead th{ top:0; }
.acad-tbl{ width:100%; border-collapse:separate; border-spacing:0; font-size:var(--fs-md); }
.acad-tbl thead th{ background:var(--maroon-tint); color:var(--maroon-ink); font-weight:700; text-align:start; padding:11px 10px; white-space:nowrap; vertical-align:bottom; line-height:1.25; border-bottom:2px solid var(--maroon-line); position:sticky; top:calc(var(--sticky-top) + var(--filters-h)); z-index:5; }
.acad-tbl thead th:first-child{ border-start-start-radius:var(--r-xl); }
.acad-tbl thead th:last-child{ border-start-end-radius:var(--r-xl); }
.acad-tbl thead th.sortable{ cursor:pointer; user-select:none; }
.acad-tbl thead th.sortable:hover{ background:#f6eef0; }
.acad-tbl thead th .arr{ color:var(--maroon); font-size:var(--fs-2xs); }
.acad-tbl tbody td{ padding:10px; border-bottom:1px solid var(--line-2); vertical-align:middle; }
.acad-tbl tbody tr:last-child td{ border-bottom:0; }
.acad-tbl tbody tr:last-child td:first-child{ border-end-start-radius:var(--r-xl); }
.acad-tbl tbody tr:last-child td:last-child{ border-end-end-radius:var(--r-xl); }
.acad-tbl tbody tr.click{ cursor:pointer; }
.acad-tbl tbody tr:hover td{ background:#faf9fb; }
.acad-tbl td.num,.acad-tbl th.num{ text-align:center; font-variant-numeric:tabular-nums; font-weight:700; }
.acad-tbl td.wrap{ white-space:normal; min-width:160px; }
.acad-tbl.compact tbody td{ padding:7px 10px; }
.acad-tbl-foot{ padding:12px; font-size:var(--fs-md); color:var(--muted); background:var(--maroon-tint); border-radius:0 0 var(--r-xl) var(--r-xl); border-top:1px solid var(--line-2); }

/* ============ прогресс ============ */
.acad-bar{ height:8px; border-radius:6px; background:var(--track); overflow:hidden; position:relative; }
.acad-bar > i{ display:block; height:100%; border-radius:6px; background:var(--grad); transition:width .5s ease; }
.acad-bar.lg{ height:12px; }
.acad-bar.sm{ height:5px; }
.acad-bar.green > i{ background:linear-gradient(90deg,#34d399,var(--green)); }
.acad-bar.amber > i{ background:linear-gradient(90deg,#fbbf24,var(--amber)); }
.acad-bar.red > i{ background:linear-gradient(90deg,#f87171,var(--red)); }
.acad-progress-line{ display:flex; align-items:center; gap:10px; font-size:var(--fs-sm); color:var(--muted); font-weight:600; }
.acad-progress-line .acad-bar{ flex:1; }
.acad-progress-line b{ color:var(--ink); font-variant-numeric:tabular-nums; }
.acad-ring{ position:relative; display:inline-flex; align-items:center; justify-content:center; flex:none; }
.acad-ring svg{ display:block; transform:rotate(-90deg); }
html[dir="rtl"] .acad-ring svg{ transform:rotate(-90deg) scaleY(-1); }
.acad-ring .trk{ stroke:var(--track); fill:none; }
.acad-ring .val{ stroke:var(--maroon); fill:none; stroke-linecap:round; transition:stroke-dashoffset .6s ease; }
.acad-ring.green .val{ stroke:var(--green); } .acad-ring.amber .val{ stroke:var(--amber); } .acad-ring.red .val{ stroke:var(--red); }
.acad-ring .lbl{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:800; font-variant-numeric:tabular-nums; line-height:1.05; text-align:center; }
.acad-ring .lbl small{ font-family:var(--font); font-size:var(--fs-2xs); color:var(--muted); font-weight:600; }

/* ============ вкладки ============ */
.acad-tabs{ display:flex; gap:4px; border-bottom:1.5px solid var(--line); margin-bottom:var(--s-4); overflow-x:auto; scrollbar-width:none; }
.acad-tabs::-webkit-scrollbar{ display:none; }
.acad-tabs button,.acad-tabs a{ appearance:none; border:0; background:transparent; padding:10px 14px; font-size:var(--fs-md); font-weight:600; color:var(--muted); cursor:pointer; border-bottom:2.5px solid transparent; margin-bottom:-1.5px; white-space:nowrap; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.acad-tabs button:hover,.acad-tabs a:hover{ color:var(--ink); }
.acad-tabs .on{ color:var(--maroon); border-bottom-color:var(--maroon); font-weight:700; }
.acad-tabs .acad-count{ background:var(--gray-bg); color:var(--muted); }
.acad-tabs .on .acad-count{ background:var(--maroon); color:#fff; }

/* ============ аккордеон ============ */
.acad-acc{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-xl); box-shadow:var(--shadow-sm); margin-bottom:10px; overflow:hidden; }
.acad-acc-head{ display:flex; align-items:center; gap:10px; padding:14px 16px; cursor:pointer; user-select:none; width:100%; border:0; background:transparent; text-align:start; font:inherit; color:inherit; }
.acad-acc-head:hover{ background:var(--maroon-tint); }
.acad-acc-head .t{ flex:1; min-width:0; font-family:var(--font-head); font-weight:700; font-size:var(--fs-lg); }
.acad-acc-head .t small{ display:block; font-family:var(--font); font-weight:500; font-size:var(--fs-sm); color:var(--muted); margin-top:2px; }
.acad-acc-head .arr{ color:var(--maroon); transition:transform .18s; display:inline-flex; }
.acad-acc.open > .acad-acc-head .arr{ transform:rotate(180deg); }
.acad-acc-body{ display:none; padding:0 16px 14px; border-top:1px solid var(--line-2); }
.acad-acc.open > .acad-acc-body{ display:block; }

/* ============ список элементов курса / путь ============ */
.acad-steps{ list-style:none; margin:0; padding:0; }
.acad-step{ display:flex; align-items:center; gap:12px; padding:10px 6px; border-bottom:1px solid var(--line-2); position:relative; }
.acad-step:last-child{ border-bottom:0; }
.acad-step .ic{ width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex:none; background:var(--maroon-soft); color:var(--maroon); font-size:16px; }
.acad-step.done .ic{ background:var(--green-bg); color:var(--green); }
.acad-step.locked{ color:var(--muted-2); }
.acad-step.locked .ic{ background:var(--gray-bg); color:var(--muted-2); }
.acad-step.current .ic{ background:var(--grad); color:#fff; box-shadow:0 0 0 4px rgba(134,18,33,.12); }
.acad-step .t{ flex:1; min-width:0; }
.acad-step .t b{ display:block; font-weight:600; }
.acad-step .t small{ color:var(--muted); font-size:var(--fs-xs); }

/* ============ таймлайн (модалка сотрудника) ============ */
.acad-tl{ position:relative; margin:6px 0 0; padding:0; list-style:none; }
.acad-tl li{ position:relative; padding:0 0 14px; padding-inline-start:28px; }
.acad-tl li::before{ content:''; position:absolute; inset-inline-start:7px; top:18px; bottom:-2px; width:2px; background:var(--maroon-line); }
.acad-tl li:last-child::before{ display:none; }
.acad-tl .dot{ position:absolute; inset-inline-start:0; top:3px; width:16px; height:16px; border-radius:50%; background:#fff; border:3px solid #c9b2b7; }
.acad-tl .dot.green{ border-color:var(--green); } .acad-tl .dot.red{ border-color:var(--red); } .acad-tl .dot.amber{ border-color:var(--amber); }
.acad-tl .dot.blue{ border-color:var(--blue); } .acad-tl .dot.purple{ border-color:var(--purple); } .acad-tl .dot.maroon{ border-color:var(--maroon); background:var(--maroon); }
.acad-tl .when{ font-size:var(--fs-xs); color:var(--muted); unicode-bidi:isolate; font-variant-numeric:tabular-nums; }
.acad-tl .what{ font-size:var(--fs-md); margin-top:1px; }
.acad-tl .txt{ background:var(--maroon-tint); border-radius:var(--r); padding:8px 10px; font-size:var(--fs-sm); margin-top:4px; white-space:pre-wrap; word-break:break-word; }

/* ============ сообщения ============ */
.acad-note{ display:flex; gap:10px; align-items:flex-start; border-radius:var(--r-lg); padding:12px 14px; font-size:var(--fs-md); line-height:1.55; border:1px solid; margin:0 0 var(--s-3); }
.acad-note .acad-ico{ font-size:18px; margin-top:1px; }
.acad-note.info{ background:var(--blue-bg); border-color:#bfdbfe; color:#1e40af; }
.acad-note.warn{ background:var(--amber-bg); border-color:#fde68a; color:#92400e; }
.acad-note.err{ background:var(--red-bg); border-color:#fecaca; color:#991b1b; }
.acad-note.ok{ background:var(--green-bg); border-color:#a7f3d0; color:#065f46; }
.acad-note.brand{ background:var(--maroon-soft); border-color:#ecd3d8; color:var(--maroon-ink); }

/* ============ пустые состояния / замок / загрузка ============ */
.acad-empty{ text-align:center; padding:48px 20px; color:var(--muted); }
.acad-empty .ic{ width:64px; height:64px; border-radius:50%; background:var(--maroon-soft); color:var(--maroon); display:inline-flex; align-items:center; justify-content:center; font-size:28px; margin-bottom:12px; }
.acad-empty h3{ color:var(--ink); margin:0 0 6px; }
.acad-empty p{ margin:0 auto 14px; max-width:420px; font-size:var(--fs-md); }
.acad-locked{ position:relative; }
.acad-locked > .acad-lock-cover{ position:absolute; inset:0; z-index:3; border-radius:inherit; background:rgba(244,245,249,.78); backdrop-filter:blur(2px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; padding:16px; color:var(--ink-2); font-size:var(--fs-md); }
.acad-lock-cover .ic,.acad-lock-badge{ width:44px; height:44px; border-radius:50%; background:#fff; border:1.5px solid var(--line); color:var(--muted); display:inline-flex; align-items:center; justify-content:center; font-size:20px; box-shadow:var(--shadow-sm); }
.acad-lock-state{ text-align:center; padding:48px 20px; }
.acad-lock-state .acad-lock-badge{ width:64px; height:64px; font-size:28px; margin-bottom:12px; }
.acad-spinner{ width:34px; height:34px; border:3.5px solid #e5e7eb; border-top-color:var(--maroon); border-radius:50%; animation:acad-spin .7s linear infinite; margin:0 auto; }
.acad-spinner.sm{ width:18px; height:18px; border-width:2.5px; display:inline-block; vertical-align:middle; }
.acad-state{ text-align:center; padding:60px 20px; color:var(--muted); }
.acad-state .acad-spinner{ margin-bottom:14px; }
@keyframes acad-spin{ to{ transform:rotate(360deg); } }
.acad-skel{ display:block; border-radius:var(--r-sm); background:linear-gradient(90deg,#eceef3 0%,#f6f7fa 40%,#eceef3 80%); background-size:300% 100%; animation:acad-shimmer 1.3s ease-in-out infinite; min-height:12px; }
.acad-skel.line{ height:12px; margin:8px 0; }
.acad-skel.title{ height:22px; width:40%; margin:4px 0 12px; }
.acad-skel.circle{ border-radius:50%; }
.acad-skel.block{ height:120px; border-radius:var(--r-xl); }
@keyframes acad-shimmer{ 0%{ background-position:100% 0; } 100%{ background-position:-100% 0; } }

/* ============ модалка ============ */
.acad-modal-ov{ position:fixed; inset:0; background:rgba(17,24,39,.55); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; z-index:1000; padding:16px; opacity:0; transition:opacity .18s; }
.acad-modal-ov.show{ opacity:1; }
.acad-modal{ background:#fff; border-radius:18px; width:min(560px,100%); max-height:calc(100vh - 32px); overflow-y:auto; padding:24px; box-shadow:var(--shadow-lg); transform:scale(.96) translateY(6px); transition:transform .18s; position:relative; }
.acad-modal-ov.show .acad-modal{ transform:none; }
.acad-modal.wide{ width:min(860px,100%); }
.acad-modal.xwide{ width:min(1100px,100%); }
.acad-modal.narrow{ width:min(420px,100%); }
.acad-modal-head{ display:flex; align-items:flex-start; gap:12px; margin-bottom:14px; }
.acad-modal-head .t{ flex:1; min-width:0; }
.acad-modal-head h3{ font-size:var(--fs-xl); font-weight:800; margin:0; }
.acad-modal-head .m-sub{ font-size:var(--fs-md); color:var(--muted); margin-top:3px; }
.acad-modal-head .m-ic{ width:42px; height:42px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:20px; flex:none; background:var(--maroon-soft); color:var(--maroon); }
.acad-modal-head .m-ic.danger{ background:var(--red-bg); color:var(--red); }
.acad-modal-head .m-ic.ok{ background:var(--green-bg); color:var(--green); }
.acad-modal-close{ border:none; background:var(--gray-bg); width:34px; height:34px; border-radius:50%; cursor:pointer; color:var(--muted); display:inline-flex; align-items:center; justify-content:center; flex:none; font-size:16px; }
.acad-modal-close:hover{ background:#e5e7eb; color:var(--ink); }
.acad-modal-body{ font-size:var(--fs-md); line-height:1.6; color:var(--ink-2); }
.acad-modal-actions{ display:flex; gap:8px; justify-content:flex-end; margin-top:20px; flex-wrap:wrap; }
.acad-modal-actions .acad-btn{ min-width:96px; }
body.acad-modal-open{ overflow:hidden; }

/* ============ тосты ============ */
.acad-toasts{ position:fixed; bottom:calc(20px + var(--cta-h)); inset-inline-start:50%; transform:translateX(50%); z-index:1100; display:flex; flex-direction:column; gap:8px; align-items:center; pointer-events:none; width:min(440px,calc(100vw - 32px)); }
html[dir="ltr"] .acad-toasts{ transform:translateX(-50%); }
.acad-toast{ pointer-events:auto; display:flex; align-items:center; gap:10px; background:var(--ink); color:#fff; border-radius:var(--r-lg); padding:11px 14px; font-size:var(--fs-md); font-weight:500; box-shadow:var(--shadow-lg); width:100%; animation:acad-toast-in .22s ease; }
.acad-toast .acad-ico{ font-size:18px; flex:none; }
.acad-toast .msg{ flex:1; min-width:0; }
.acad-toast button{ border:0; background:transparent; color:rgba(255,255,255,.7); cursor:pointer; padding:2px; display:inline-flex; }
.acad-toast.ok{ background:#065f46; } .acad-toast.err{ background:#991b1b; } .acad-toast.warn{ background:#92400e; } .acad-toast.info{ background:#1f2937; }
.acad-toast.out{ animation:acad-toast-out .2s ease forwards; }
@keyframes acad-toast-in{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
@keyframes acad-toast-out{ to{ opacity:0; transform:translateY(10px); } }

/* ============ hero / закреплённая CTA / водяной знак ============ */
.acad-hero{ background:var(--grad); color:#fff; border-radius:var(--r-xl); padding:24px; display:flex; align-items:center; gap:20px; position:relative; overflow:hidden; box-shadow:0 10px 28px rgba(134,18,33,.22); }
.acad-hero::before{ content:''; position:absolute; width:340px; height:340px; border-radius:50%; background:rgba(255,255,255,.08); inset-inline-end:-100px; top:-160px; }
.acad-hero h2,.acad-hero h1{ color:#fff; }
.acad-hero p{ margin:6px 0 0; opacity:.92; }
.acad-hero .acad-btn{ background:#fff; color:var(--maroon); border-color:transparent; }
.acad-hero .acad-btn:hover{ background:#fff5f6; }
.acad-hero .body{ flex:1; min-width:0; position:relative; }
.acad-sticky-cta{ display:none; }
.acad-wm-host{ position:relative; }
.acad-wm{ position:absolute; z-index:6; pointer-events:none; user-select:none; color:#fff; font-size:var(--fs-sm); font-weight:700; letter-spacing:.3px; white-space:nowrap; text-shadow:0 0 3px rgba(0,0,0,.65); opacity:.38; transition:inset 1.2s ease, top 1.2s ease, left 1.2s ease, opacity .4s; direction:ltr; unicode-bidi:isolate; font-variant-numeric:tabular-nums; }
.acad-wm.dark{ color:#111827; text-shadow:0 0 3px rgba(255,255,255,.7); opacity:.16; }

/* ============ экран «нет доступа» / полноэкранные состояния ============ */
.acad-fullstate{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px 16px; }
.acad-fullstate .box{ background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow); max-width:480px; width:100%; padding:32px 28px; text-align:center; }
.acad-fullstate h2{ margin:12px 0 8px; }
.acad-fullstate p{ color:var(--muted); margin:0 0 20px; }
.acad-fullstate .acad-row{ justify-content:center; }

/* ============ сайдбар (светлый, как mb2_nav.js по геометрии) ============ */
.acad-sb{ position:fixed; top:0; bottom:0; inset-inline-start:0; width:var(--sb-w); z-index:95; background:var(--sb-bg);
  display:flex; flex-direction:column; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; transition:width .18s ease, transform .22s ease;
  box-shadow:inset -1px 0 0 var(--sb-border); color:var(--sb-text); font-size:var(--fs-md); font-weight:500; line-height:1.25; }
html[dir="rtl"] .acad-sb{ box-shadow:inset 1px 0 0 var(--sb-border); }
.acad-sb *{ box-sizing:border-box; }
.acad-sb a,.acad-sb button{ font-family:inherit; text-decoration:none; }
.acad-sb-head{ display:flex; align-items:center; gap:10px; height:60px; padding-inline:14px 10px; flex:none; border-bottom:1px solid var(--sb-border); }
.acad-sb-brand{ display:flex; align-items:center; gap:10px; min-width:0; color:var(--sb-bright); text-decoration:none; }
.acad-sb-logo{ width:34px; height:34px; border-radius:var(--r); flex:none; background:var(--grad); color:#fff; display:inline-flex; align-items:center; justify-content:center; box-shadow:0 3px 8px rgba(134,18,33,.25); overflow:hidden; }
.acad-sb-logo img{ width:100%; height:100%; object-fit:cover; }
.acad-sb-logo .acad-ico{ font-size:19px; }
.acad-sb-name{ display:flex; flex-direction:column; min-width:0; line-height:1.15; }
.acad-sb-name b{ font-family:var(--font-head); font-weight:800; font-size:var(--fs-sm); line-height:1.15; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:break-word; }
.acad-sb-name small{ font-size:var(--fs-2xs); color:var(--maroon); font-weight:700; letter-spacing:.4px; text-transform:uppercase; }
.acad-sb-tg{ margin-inline-start:auto; width:30px; height:30px; border-radius:50%; border:1px solid var(--sb-border); background:var(--sb-input); color:var(--sb-muted);
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer; flex:none; padding:0; transition:background .15s, color .15s; font-size:16px; }
.acad-sb-tg:hover{ background:var(--sb-hover); color:var(--maroon); }
.acad-sb-tg .ic-menu{ display:none; }
html[dir="rtl"] .acad-sb-tg .ic-chev{ transform:scaleX(-1); }
html.acad-sb-collapsed .acad-sb-head{ padding:0; justify-content:center; }
html.acad-sb-collapsed .acad-sb-brand{ display:none; }
html.acad-sb-collapsed .acad-sb-tg{ margin:0; }
html.acad-sb-collapsed .acad-sb-tg .ic-menu{ display:block; }
html.acad-sb-collapsed .acad-sb-tg .ic-chev{ display:none; }
.acad-sb-menu{ display:flex; flex-direction:column; gap:2px; padding:10px; flex:none; }
.acad-sb-sep{ height:1px; background:var(--sb-border); margin:8px 4px; }
.acad-sb-cap{ font-size:var(--fs-2xs); font-weight:700; color:var(--sb-muted); text-transform:uppercase; letter-spacing:.5px; padding:8px 10px 4px; }
.acad-sb-item{ display:flex; align-items:center; gap:10px; min-height:40px; padding:4px 10px; border-radius:var(--r); color:var(--sb-text); font-size:var(--fs-md); font-weight:500;
  cursor:pointer; border:0; background:transparent; width:100%; text-align:start; position:relative; transition:background .15s, color .15s; }
.acad-sb-item:hover{ background:var(--sb-hover); color:var(--sb-bright); }
.acad-sb-item .ic{ width:28px; height:28px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; flex:none; color:var(--sb-muted); font-size:17px; transition:color .15s, background .15s; }
.acad-sb-item:hover .ic{ color:var(--maroon); }
.acad-sb-item .lbl{ flex:1 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acad-sb-item .acad-count{ margin-inline-start:auto; }
/* текущий пункт — «язычок», сливающийся с фоном страницы (Белый 12.10: «язычком, чтобы понятно было, где я») */
.acad-sb-item.cur,.acad-sb-item.cur:hover{ background:var(--sb-tab); color:var(--sb-brand); font-weight:700; margin-inline-end:-10px; width:calc(100% + 10px);
  border-start-end-radius:0; border-end-end-radius:0; border-start-start-radius:20px; border-end-start-radius:20px; z-index:1; }
.acad-sb-item.cur .ic{ background:var(--grad); color:#fff; box-shadow:0 3px 8px rgba(134,18,33,.25); }
.acad-sb-item.cur::before,.acad-sb-item.cur::after{ content:""; position:absolute; inset-inline-end:0; width:18px; height:18px; pointer-events:none; }
.acad-sb-item.cur::before{ top:-18px; } .acad-sb-item.cur::after{ bottom:-18px; }
html[dir="rtl"] .acad-sb-item.cur::before{ background:radial-gradient(circle at 100% 0,transparent 17.5px,var(--sb-tab) 18px); }
html[dir="rtl"] .acad-sb-item.cur::after{ background:radial-gradient(circle at 100% 100%,transparent 17.5px,var(--sb-tab) 18px); }
html[dir="ltr"] .acad-sb-item.cur::before{ background:radial-gradient(circle at 0 0,transparent 17.5px,var(--sb-tab) 18px); }
html[dir="ltr"] .acad-sb-item.cur::after{ background:radial-gradient(circle at 0 100%,transparent 17.5px,var(--sb-tab) 18px); }
/* подпункты (разделы студии / отчётов) */
.acad-sb-sub{ display:flex; flex-direction:column; gap:1px; padding:2px 0 6px; }
.acad-sb-sub .acad-sb-item{ min-height:34px; padding:3px 8px; padding-inline-start:20px; font-size:var(--fs-sm); color:var(--sb-muted); }
.acad-sb-sub .acad-sb-item .ic{ width:22px; height:22px; font-size:14px; }
.acad-sb-sub .acad-sb-item.on{ color:var(--maroon); font-weight:700; background:var(--sb-brand-bg); }
.acad-sb-sub .acad-sb-item.on .ic{ color:var(--maroon); }
html.acad-sb-collapsed .acad-sb-menu{ padding:10px 8px; }
html.acad-sb-collapsed .acad-sb-item{ justify-content:center; padding:0; min-height:44px; gap:0; }
html.acad-sb-collapsed .acad-sb-item.cur{ margin-inline-end:-8px; width:calc(100% + 8px); border-start-start-radius:16px; border-end-start-radius:16px; }
html.acad-sb-collapsed .acad-sb-item .lbl,html.acad-sb-collapsed .acad-sb-cap,html.acad-sb-collapsed .acad-sb-sub{ display:none; }
html.acad-sb-collapsed .acad-sb-item .acad-count{ position:absolute; top:3px; inset-inline-end:3px; min-width:17px; height:17px; padding:0 4px; }
/* низ: пользователь, язык, выход */
.acad-sb-bottom{ margin-top:auto; display:flex; flex-direction:column; gap:8px; padding:10px 10px 12px; flex:none; border-top:1px solid var(--sb-border); }
.acad-sb-user{ display:flex; align-items:center; gap:10px; padding:8px; border-radius:var(--r-lg); background:var(--sb-input); text-decoration:none; color:inherit; }
.acad-sb-user:hover{ background:var(--sb-hover); }
.acad-sb-user .acad-avatar{ width:34px; height:34px; font-size:var(--fs-sm); }
.acad-sb-user .u{ display:flex; flex-direction:column; min-width:0; line-height:1.25; flex:1; }
.acad-sb-user .u b{ font-size:var(--fs-sm); font-weight:700; color:var(--sb-bright); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acad-sb-user .u small{ font-size:var(--fs-2xs); color:var(--sb-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acad-sb-user .lvl{ display:inline-flex; align-items:center; gap:3px; color:var(--maroon); font-weight:700; }
.acad-sb-tools{ display:flex; align-items:center; gap:6px; }
.acad-sb-tools .acad-seg{ flex:1; }
.acad-sb-tools .acad-seg button{ flex:1; }
.acad-sb-out{ width:32px; height:32px; border-radius:50%; border:1px solid var(--sb-border); background:#fff; color:var(--sb-muted); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; flex:none; font-size:15px; }
.acad-sb-out:hover{ color:var(--red); border-color:#fecaca; background:var(--red-bg); }
.acad-sb-foot{ display:flex; justify-content:space-between; gap:8px; padding:0 4px; font-size:var(--fs-2xs); color:var(--sb-muted); opacity:.8; white-space:nowrap; }
html.acad-sb-collapsed .acad-sb-bottom{ padding:10px 8px 12px; align-items:center; }
html.acad-sb-collapsed .acad-sb-user{ padding:4px; background:transparent; }
html.acad-sb-collapsed .acad-sb-user .u,html.acad-sb-collapsed .acad-sb-tools .acad-seg,html.acad-sb-collapsed .acad-sb-foot{ display:none; }
html.acad-sb-collapsed .acad-sb-tools{ flex-direction:column; }
/* мобильная шапка + выезжающее меню */
.acad-mtop{ display:none; }
.acad-sb-ov{ display:none; }

/* ============ адаптив ============ */
@media (max-width:1100px){
  .acad-grid.c4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .acad-grid.c3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px){
  :root{ --page-pad:16px; --mtop-h:56px; --sticky-top:56px; --sb-w:280px; }
  html.acad-sb-collapsed{ --sb-w:280px; }
  body.acad-has-sb{ padding-inline-start:0; }
  .acad-page{ padding:14px var(--page-pad) calc(80px + var(--cta-h)); }
  .acad-hd h1{ font-size:var(--fs-xl); }
  .acad-grid.c2,.acad-grid.c3,.acad-grid.c4{ grid-template-columns:minmax(0,1fr); }
  .acad-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .acad-kpi{ padding:12px; } .acad-kpi.active{ padding:11px; }
  .acad-kpi .k-val{ font-size:24px; }
  .acad-card{ padding:var(--s-4); }
  .acad-modal-ov{ align-items:flex-end; padding:0; }
  .acad-modal{ width:100% !important; border-radius:20px 20px 0 0; max-height:92vh; padding:20px 16px calc(20px + env(safe-area-inset-bottom)); transform:translateY(30px); }
  .acad-modal-actions{ flex-direction:column-reverse; }
  .acad-modal-actions .acad-btn{ width:100%; }
  .acad-hero{ flex-direction:column; align-items:flex-start; padding:20px; }
  .acad-filters{ padding:8px 0 10px; }
  .acad-filters .acad-input,.acad-filters .acad-select{ min-width:0; flex:1 1 140px; }
  /* телефон: панель фильтров высокая (290–370px) и не липнет; таблица — своё окно прокрутки
     (широкие таблицы листаются вбок), а шапка липнет внутри него */
  .acad-tbl-wrap{ overflow:auto; max-height:calc(100dvh - var(--mtop-h) - 24px); }
  .acad-tbl-wrap .acad-tbl thead th{ top:var(--tw-top, 0px); position:sticky; }   /* --tw-top: acad.js, чтобы шапка не уходила под мобильную шапку */
  .acad-sticky-cta{ display:flex; position:fixed; inset-inline:0; bottom:0; z-index:60; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); backdrop-filter:blur(6px); border-top:1px solid var(--line); box-shadow:0 -6px 18px rgba(17,24,39,.06); }
  .acad-sticky-cta .acad-btn{ flex:1; }
  body.acad-has-cta{ --cta-h:68px; }
  /* меню — выезжающее */
  .acad-sb{ width:280px; transform:translateX(-100%); box-shadow:var(--shadow-lg); z-index:1001; }
  html[dir="rtl"] .acad-sb{ transform:translateX(100%); }
  html.acad-sb-open .acad-sb{ transform:none; }
  html.acad-sb-collapsed .acad-sb-head{ padding-inline:14px 10px; justify-content:flex-start; }
  html.acad-sb-collapsed .acad-sb-brand{ display:flex; }
  .acad-sb-tg .ic-chev{ display:none !important; } .acad-sb-tg .ic-x{ display:block !important; } .acad-sb-tg .ic-menu{ display:none !important; }
  html.acad-sb-collapsed .acad-sb-item{ justify-content:flex-start; padding:4px 10px; min-height:40px; gap:10px; }
  html.acad-sb-collapsed .acad-sb-item .lbl,html.acad-sb-collapsed .acad-sb-cap{ display:block; }
  html.acad-sb-collapsed .acad-sb-sub{ display:flex; }
  html.acad-sb-collapsed .acad-sb-user .u,html.acad-sb-collapsed .acad-sb-tools .acad-seg,html.acad-sb-collapsed .acad-sb-foot{ display:flex; }
  html.acad-sb-collapsed .acad-sb-tools{ flex-direction:row; }
  html.acad-sb-collapsed .acad-sb-bottom{ align-items:stretch; padding:10px 10px 12px; }
  html.acad-sb-collapsed .acad-sb-user{ background:var(--sb-input); padding:8px; }
  .acad-sb-item.cur,.acad-sb-item.cur:hover,html.acad-sb-collapsed .acad-sb-item.cur{ margin-inline-end:0; width:100%; border-radius:var(--r); background:var(--sb-brand-bg); }
  .acad-sb-item.cur::before,.acad-sb-item.cur::after{ display:none; }
  .acad-sb-ov{ display:block; position:fixed; inset:0; z-index:1000; background:rgba(17,24,39,.45); opacity:0; pointer-events:none; transition:opacity .2s; }
  html.acad-sb-open .acad-sb-ov{ opacity:1; pointer-events:auto; }
  html.acad-sb-open body{ overflow:hidden; }
  .acad-mtop{ display:flex; position:sticky; top:0; z-index:90; height:var(--mtop-h); align-items:center; gap:10px; padding:0 12px; background:rgba(255,255,255,.96); backdrop-filter:blur(6px); border-bottom:1px solid var(--line); }
  .acad-mtop .acad-sb-logo{ width:32px; height:32px; }
  .acad-mtop .t{ flex:1; min-width:0; font-family:var(--font-head); font-weight:800; font-size:var(--fs-md); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .acad-mtop button{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--ink); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; font-size:19px; flex:none; }
}
.acad-sb-tg .ic-x{ display:none; }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
@media print{
  .acad-sb,.acad-mtop,.acad-sb-ov,.acad-toasts,.acad-sticky-cta,.acad-persona{ display:none !important; }
  body.acad-has-sb{ padding:0 !important; }
  body{ background:#fff; }
}
.acad-hero .acad-ring .lbl,.acad-hero .acad-ring .lbl small{ color:#fff; }
.acad-hero .acad-ring .val{ stroke:#fff; }
.acad-hero .acad-ring .trk{ stroke:rgba(255,255,255,.25); }

/* ============ страницы входа / регистрации (index.html, register.html) ============ */
.acad-auth{ min-height:100vh; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); background:var(--bg); }
.acad-auth-brand{ position:relative; overflow:hidden; background:var(--grad); color:#fff; padding:40px 48px; display:flex; flex-direction:column; gap:24px; }
.acad-auth-brand::before{ content:''; position:absolute; width:520px; height:520px; border-radius:50%; background:rgba(255,255,255,.07); inset-inline-end:-180px; top:-200px; }
.acad-auth-brand::after{ content:''; position:absolute; width:380px; height:380px; border-radius:50%; background:rgba(255,255,255,.06); inset-inline-start:-140px; bottom:-160px; }
.acad-auth-brand > *{ position:relative; z-index:1; }
.acad-auth-logo{ display:flex; align-items:center; gap:12px; }
.acad-auth-logo .acad-sb-logo{ width:46px; height:46px; background:#fff; color:var(--maroon); box-shadow:0 6px 18px rgba(0,0,0,.18); border-radius:14px; }
.acad-auth-logo .acad-sb-logo .acad-ico{ font-size:24px; }
.acad-auth-logo b{ display:block; font-family:var(--font-head); font-size:var(--fs-xl); font-weight:800; }
.acad-auth-logo small{ display:block; font-size:var(--fs-sm); opacity:.85; font-weight:500; }
.acad-auth-hero{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:18px; }
.acad-auth-hero h1{ color:#fff; font-size:var(--fs-3xl); line-height:1.15; max-width:520px; }
.acad-auth-hero p{ margin:0; font-size:var(--fs-lg); opacity:.92; max-width:480px; line-height:1.55; }
.acad-auth-persona{ display:flex; align-items:flex-end; min-height:200px; }
.acad-auth-persona .acad-persona .p-fig{ filter:drop-shadow(0 12px 22px rgba(0,0,0,.25)); }
.acad-auth-feats{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.acad-auth-feat{ background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:var(--r-lg); padding:12px; font-size:var(--fs-sm); line-height:1.4; backdrop-filter:blur(4px); }
.acad-auth-feat .acad-ico{ font-size:20px; display:block; margin-bottom:6px; }
.acad-auth-feat b{ display:block; font-size:var(--fs-md); margin-bottom:2px; }
.acad-auth-main{ display:flex; flex-direction:column; align-items:center; justify-content:center; padding:32px 24px; position:relative; }
.acad-auth-top{ position:absolute; top:20px; inset-inline-end:24px; display:flex; gap:8px; align-items:center; }
.acad-auth-card{ width:100%; max-width:420px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 18px 50px rgba(17,24,39,.08); padding:32px 28px; }
.acad-auth-card h2{ font-size:var(--fs-2xl); margin:0 0 6px; }
.acad-auth-card .lead{ color:var(--muted); margin:0 0 22px; font-size:var(--fs-md); line-height:1.55; }
.acad-auth-card .acad-btn.block{ margin-top:6px; }
.acad-auth-step-ic{ width:52px; height:52px; border-radius:16px; background:var(--maroon-soft); color:var(--maroon); display:inline-flex; align-items:center; justify-content:center; font-size:24px; margin-bottom:14px; }
.acad-auth-step-ic.ok{ background:var(--green-bg); color:var(--green); }
.acad-auth-step-ic.err{ background:var(--red-bg); color:var(--red); }
.acad-auth-links{ display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:16px; font-size:var(--fs-sm); color:var(--muted); }
.acad-auth-foot{ margin-top:22px; font-size:var(--fs-xs); color:var(--muted); text-align:center; }
.acad-auth-err{ margin:0 0 14px; }
.acad-gender{ display:flex; gap:8px; flex-wrap:wrap; }
.acad-gender label{ flex:1; min-width:90px; }
.acad-gender input{ position:absolute; opacity:0; pointer-events:none; }
.acad-gender span{ display:flex; align-items:center; justify-content:center; min-height:40px; padding:6px 12px; border:1.5px solid var(--line); border-radius:var(--r); font-weight:600; cursor:pointer; font-size:var(--fs-md); transition:all .12s; background:#fff; }
.acad-gender input:checked + span{ border-color:var(--maroon); background:var(--maroon-soft); color:var(--maroon); }
.acad-gender input:focus-visible + span{ outline:2px solid var(--maroon); outline-offset:2px; }
@media (max-width:980px){
  .acad-auth{ grid-template-columns:minmax(0,1fr); }
  .acad-auth-brand{ padding:16px 16px 14px; gap:10px; order:-1; }
  .acad-auth-logo .acad-sb-logo{ width:38px; height:38px; }
  .acad-auth-logo b{ font-size:var(--fs-lg); }
  .acad-auth-hero{ flex-direction:row; align-items:center; gap:12px; }
  .acad-auth-hero h1{ font-size:var(--fs-xl); }
  .acad-auth-hero p{ font-size:var(--fs-sm); }
  .acad-auth-persona{ min-height:0; order:-1; flex:none; }
  .acad-auth-feats{ display:none; }
  .acad-auth-main{ padding:20px 16px 40px; justify-content:flex-start; }
  .acad-auth-top{ position:static; align-self:flex-end; margin-bottom:12px; }
  .acad-auth-card{ padding:24px 18px; border-radius:18px; }
  .acad-auth-card h2{ font-size:var(--fs-xl); }
}

/* ---------- 190 · скрины в тексте урока: <figure><img data-path><figcaption> (подпись ссылки — ACAD.richImages) ---------- */
.rich figure{ margin:10px 0 16px; padding:0; max-width:100%; }
.rich figure img{ display:block; max-width:100%; height:auto; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--line-2); box-shadow:var(--shadow-sm); }
.rich figure img:not([src]){ min-height:120px; width:100%; }
.rich img.rich-zoom{ cursor:zoom-in; transition:border-color .15s, box-shadow .15s; }
.rich img.rich-zoom:hover,.rich img.rich-zoom:focus-visible{ border-color:var(--maroon); box-shadow:var(--shadow); outline:none; }
.rich figcaption{ font-size:var(--fs-sm); color:var(--muted); line-height:1.5; margin-top:6px; }
.rich ol > li{ margin-bottom:16px; }
.rich li > p{ margin:0 0 6px; }
.rich .rich-img-ph{ display:grid; place-items:center; aspect-ratio:16/9; max-height:220px; width:100%; border:1px dashed var(--line); border-radius:var(--r-lg);
  background:var(--line-2); color:var(--muted); font-size:var(--fs-sm); }
.rich img.rich-img-missing{ outline:2px dashed var(--amber); outline-offset:2px; }
.rich-lb{ display:block; width:100%; height:auto; max-height:78vh; object-fit:contain; border-radius:var(--r); }
.st-rte-body figure{ margin:8px 0 12px; }
.st-rte-body figure img{ display:block; max-width:100%; height:auto; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--line-2); }
.st-rte-body figure img:not([src]){ min-height:80px; width:100%; }
.st-rte-body figcaption{ font-size:var(--fs-sm); color:var(--muted); margin-top:4px; }
.st-rte-body img.rich-img-missing{ outline:2px dashed var(--amber); outline-offset:2px; }
