:root {
    /* Блок 34.1: цвета вынесены в переменные. Значения здесь = прежним, внешний вид не меняется.
       Роли: bg — фон, tx — текст/иконки, bd — рамки, sh — тени, o — прочее. */
    --lms-bd-54ad54: #54ad54;
    --lms-bd-6e7075: #6e7075;
    --lms-bd-8ea88f: #8ea88f;
    --lms-bd-b32d2e: #b32d2e;
    --lms-bd-d3dad3: #d3dad3;
    --lms-bd-d3e4d3: #d3e4d3;
    --lms-bd-d5d5d5: #d5d5d5;
    --lms-bd-d9a5a5: #d9a5a5;
    --lms-bd-d9dde2: #d9dde2;
    --lms-bd-d9dee1: #d9dee1;
    --lms-bd-d9dfd9: #d9dfd9;
    --lms-bd-dddddd: #dddddd;
    --lms-bd-e0d3b5: #e0d3b5;
    --lms-bd-e0e0e0: #e0e0e0;
    --lms-bd-e3e3e3: #e3e3e3;
    --lms-bd-e3e6e8: #e3e6e8;
    --lms-bd-e3e8e3: #e3e8e3;
    --lms-bd-e5e2d9: #e5e2d9;
    --lms-bd-e5e5e5: #e5e5e5;
    --lms-bd-ececec: #ececec;
    --lms-bd-edf0ed: #edf0ed;
    --lms-bd-f0f3f0: #f0f3f0;
    --lms-bd-f5f5f5: #f5f5f5;
    --lms-bg-000000: #000000;
    --lms-bg-23292c: #23292c;
    --lms-bg-262b45: #262b45;
    --lms-bg-2f3437: #2f3437;
    --lms-bg-3a3a3a: #3a3a3a;
    --lms-bg-458a45: #458a45;
    --lms-bg-54ad54: #54ad54;
    --lms-bg-5d7a89: #5d7a89;
    --lms-bg-6c8a9a: #6c8a9a;
    --lms-bg-6e7075: #6e7075;
    --lms-bg-7fb08a: #7fb08a;
    --lms-bg-d9dde2: #d9dde2;
    --lms-bg-dfe9df: #dfe9df;
    --lms-bg-e0994c: #e0994c;
    --lms-bg-e0e0e0: #e0e0e0;
    --lms-bg-e4ede4: #e4ede4;
    --lms-bg-e5e5e5: #e5e5e5;
    --lms-bg-e6f1e6: #e6f1e6;
    --lms-bg-e8eee8: #e8eee8;
    --lms-bg-e8f1fa: #e8f1fa;
    --lms-bg-e9eef0: #e9eef0;
    --lms-bg-eaf3ea: #eaf3ea;
    --lms-bg-ececec: #ececec;
    --lms-bg-eeeeec: #eeeeec;
    --lms-bg-eef2ee: #eef2ee;
    --lms-bg-eef3ea: #eef3ea;
    --lms-bg-eef5ee: #eef5ee;
    --lms-bg-f0f6fc: #f0f6fc;
    --lms-bg-f1efe6: #f1efe6;
    --lms-bg-f1f3f4: #f1f3f4;
    --lms-bg-f1f4f6: #f1f4f6;
    --lms-bg-f1f6f1: #f1f6f1;
    --lms-bg-f3ede0: #f3ede0;
    --lms-bg-f4f6f7: #f4f6f7;
    --lms-bg-f4f7f4: #f4f7f4;
    --lms-bg-f5f5f5: #f5f5f5;
    --lms-bg-f6f2e9: #f6f2e9;
    --lms-bg-f6f8f9: #f6f8f9;
    --lms-bg-f7ecec: #f7ecec;
    --lms-bg-f7f9fa: #f7f9fa;
    --lms-bg-fafafa: #fafafa;
    --lms-bg-fbfcfb: #fbfcfb;
    --lms-bg-ffffff: #ffffff;
    --lms-tx-262b45: #262b45;
    --lms-tx-2f3437: #2f3437;
    --lms-tx-2f3a2f: #2f3a2f;
    --lms-tx-3a3a3a: #3a3a3a;
    --lms-tx-3c4347: #3c4347;
    --lms-tx-3d474c: #3d474c;
    --lms-tx-3d4d3d: #3d4d3d;
    --lms-tx-3d6b3d: #3d6b3d;
    --lms-tx-444444: #444444;
    --lms-tx-458a45: #458a45;
    --lms-tx-4a5a4a: #4a5a4a;
    --lms-tx-4c6b4f: #4c6b4f;
    --lms-tx-54ad54: #54ad54;
    --lms-tx-566056: #566056;
    --lms-tx-5a6469: #5a6469;
    --lms-tx-5a7a5a: #5a7a5a;
    --lms-tx-5a7a88: #5a7a88;
    --lms-tx-5c8a5c: #5c8a5c;
    --lms-tx-5f8f6b: #5f8f6b;
    --lms-tx-666666: #666666;
    --lms-tx-6a6455: #6a6455;
    --lms-tx-6a6a55: #6a6a55;
    --lms-tx-6b7378: #6b7378;
    --lms-tx-6b746b: #6b746b;
    --lms-tx-6e7075: #6e7075;
    --lms-tx-7a6432: #7a6432;
    --lms-tx-7a8489: #7a8489;
    --lms-tx-7c7c78: #7c7c78;
    --lms-tx-7c857c: #7c857c;
    --lms-tx-888888: #888888;
    --lms-tx-8a4b4b: #8a4b4b;
    --lms-tx-8a8577: #8a8577;
    --lms-tx-999999: #999999;
    --lms-tx-9a9ca1: #9a9ca1;
    --lms-tx-a45c5c: #a45c5c;
    --lms-tx-a9d4a9: #a9d4a9;
    --lms-tx-b32d2e: #b32d2e;
    --lms-tx-d5d7e0: #d5d7e0;
    --lms-tx-d9dde2: #d9dde2;
    --lms-tx-e0994c: #e0994c;
    --lms-tx-e4ebe4: #e4ebe4;
    --lms-tx-e8eef0: #e8eef0;
    --lms-tx-ffffff: #ffffff;
    --lms-page-bg: #ffffff;
    --lms-switch-track: #e3e6e8;
    --lms-switch-border: #d5d7e0;
    --lms-switch-knob: #ffffff;
    --lms-switch-icon: #6e7075;
    --lms-page-tx: #3a3a3a;
    --lms-shadow-1: rgba(58, 58, 58, 0.14);
    --lms-shadow-2: rgba(0, 0, 0, 0.08);
    --lms-shadow-3: rgba(60, 70, 80, 0.06);
    --lms-shadow-4: rgba(60, 80, 60, 0.08);
    --lms-shadow-5: rgba(60, 80, 60, 0.06);
    --lms-overlay-1: rgba(255, 255, 255, 0.85);
}

/* Блок 34.2: тёмная палитра. Включается атрибутом data-lms-theme="dark" на <html> (ставит script.js, Блок 34.3).
   Приглушённые графитово-синие тона, без чисто чёрного и ярких акцентов. */
html[data-lms-theme="dark"] {
    --lms-page-bg: #161a1f;
    --lms-switch-track: #2a3138;
    --lms-switch-border: #434a51;
    --lms-switch-knob: #cdd2d7;
    --lms-switch-icon: #2f3a2f;
    --lms-page-tx: #cdd2d7;
    --lms-bd-6e7075: #535c65;
    --lms-bd-8ea88f: #535c65;
    --lms-bd-d3dad3: #4f5860;
    --lms-bd-d3e4d3: #446244;
    --lms-bd-d5d5d5: #505962;
    --lms-bd-d9a5a5: #6c4b4b;
    --lms-bd-d9dde2: #495159;
    --lms-bd-d9dee1: #49525a;
    --lms-bd-d9dfd9: #4a535b;
    --lms-bd-dddddd: #49525a;
    --lms-bd-e0d3b5: #6c624b;
    --lms-bd-e0e0e0: #474f57;
    --lms-bd-e3e3e3: #454d54;
    --lms-bd-e3e6e8: #434a51;
    --lms-bd-e3e8e3: #434a51;
    --lms-bd-e5e2d9: #485058;
    --lms-bd-e5e5e5: #434b52;
    --lms-bd-ececec: #3d444b;
    --lms-bd-edf0ed: #3b4248;
    --lms-bd-f0f3f0: #393f45;
    --lms-bd-f5f5f5: #363c42;
    --lms-bg-5d7a89: #475766;
    --lms-bg-6c8a9a: #475766;
    --lms-bg-6e7075: #4e575f;
    --lms-bg-7fb08a: #47664e;
    --lms-bg-d9dde2: #363f47;
    --lms-bg-dfe9df: #2e3942;
    --lms-bg-e0e0e0: #363c42;
    --lms-bg-e4ede4: #2b3d2b;
    --lms-bg-e5e5e5: #32383d;
    --lms-bg-e6f1e6: #283a28;
    --lms-bg-e8eee8: #2a3239;
    --lms-bg-e8f1fa: #242c34;
    --lms-bg-e9eef0: #283139;
    --lms-bg-eaf3ea: #263726;
    --lms-bg-ececec: #2c3136;
    --lms-bg-eeeeec: #2d3032;
    --lms-bg-eef2ee: #272d33;
    --lms-bg-eef3ea: #2d3726;
    --lms-bg-eef5ee: #243324;
    --lms-bg-f0f6fc: #20272e;
    --lms-bg-f1efe6: #3a3728;
    --lms-bg-f1f3f4: #252b30;
    --lms-bg-f1f4f6: #222b31;
    --lms-bg-f1f6f1: #223122;
    --lms-bg-f3ede0: #3c362a;
    --lms-bg-f4f6f7: #21282e;
    --lms-bg-f4f7f4: #21282e;
    --lms-bg-f5f5f5: #24282c;
    --lms-bg-f6f2e9: #353025;
    --lms-bg-f6f8f9: #1f262d;
    --lms-bg-f7ecec: #332424;
    --lms-bg-f7f9fa: #1e272b;
    --lms-bg-fafafa: #202327;
    --lms-bg-fbfcfb: #1d2227;
    --lms-bg-ffffff: #1f252b;
    --lms-tx-262b45: #caccd5;
    --lms-tx-2f3437: #ced1d5;
    --lms-tx-2f3a2f: #cbd0d5;
    --lms-tx-3a3a3a: #cdcdcd;
    --lms-tx-3c4347: #c5c9ce;
    --lms-tx-3d474c: #c1c8ce;
    --lms-tx-3d4d3d: #c1c7ce;
    --lms-tx-3d6b3d: #b7c7b7;
    --lms-tx-444444: #c8c8c8;
    --lms-tx-458a45: #7ebe7e;
    --lms-tx-4a5a4a: #bac0c6;
    --lms-tx-4c6b4f: #b3bbc3;
    --lms-tx-54ad54: #7cc07c;
    --lms-tx-566056: #b7bbbf;
    --lms-tx-5a6469: #b2b8bd;
    --lms-tx-5a7a5a: #aab3bc;
    --lms-tx-5a7a88: #a5b3b9;
    --lms-tx-5c8a5c: #a4aeb8;
    --lms-tx-5f8f6b: #a2b6a7;
    --lms-tx-666666: #b5b5b5;
    --lms-tx-6a6455: #b1b9c0;
    --lms-tx-6a6a55: #b1b9c0;
    --lms-tx-6b7378: #aaafb3;
    --lms-tx-6b746b: #adb0b3;
    --lms-tx-6e7075: #acafb1;
    --lms-tx-7a6432: #c7ae76;
    --lms-tx-7a8489: #a1a6ab;
    --lms-tx-7c7c78: #a9aaab;
    --lms-tx-7c857c: #a3a7aa;
    --lms-tx-888888: #a2a2a2;
    --lms-tx-8a4b4b: #bb8181;
    --lms-tx-8a8577: #a0a7ad;
    --lms-tx-a45c5c: #ba8383;
    --lms-tx-b32d2e: #cf6e6e;
    --lms-tx-e0994c: #cfa06e;
    --lms-shadow-1: rgba(0, 0, 0, 0.45);
    --lms-shadow-2: rgba(0, 0, 0, 0.35);
    --lms-shadow-3: rgba(0, 0, 0, 0.3);
    --lms-shadow-4: rgba(0, 0, 0, 0.3);
    --lms-shadow-5: rgba(0, 0, 0, 0.3);
    --lms-overlay-1: rgba(31, 36, 43, 0.85);
}

html[data-lms-theme="dark"] body.single-course,
html[data-lms-theme="dark"] body.single-lesson,
html[data-lms-theme="dark"] body.single-course_bundle,
html[data-lms-theme="dark"] body.single-lms_webinar,
html[data-lms-theme="dark"] body:has(.my-lms-wide-container),
html[data-lms-theme="dark"] body:has(.my-lms-auth-wrap),
html[data-lms-theme="dark"] body:has(.my-lms-certificate-wrap),
html[data-lms-theme="dark"] body:has(.my-lms-catalog-layout),
html[data-lms-theme="dark"] body:has(.my-lms-calendar),
html[data-lms-theme="dark"] body:has(.my-lms-events),
html[data-lms-theme="dark"] body:has(.my-lms-teacher-cabinet),
html[data-lms-theme="dark"] body:has(.my-lms-messages),
html[data-lms-theme="dark"] body:has(.my-lms-bundle-archive),
html[data-lms-theme="dark"] body:has(.my-lms-cabinet) {
    background: var(--lms-page-bg);
    color: var(--lms-page-tx);
    color-scheme: dark;
}

/* My LMS — базовые стили */

/* Совместимость с блочной темой: курс/урок/пакет курсов теперь выводятся
   через содержимое записи (the_content, см. templates/single-*.php), а
   стандартный одиночный шаблон темы сам добавляет вокруг него свои блоки —
   заголовок записи, служебную строку (дата/рубрика/автор), список "Больше
   записей" и т.п. У нас уже есть весь нужный вывод внутри собственной
   разметки, всё остальное лишнее. Вместо того чтобы прятать по одному
   конкретному блоку темы (их состав отличается от темы к теме и может
   пополняться), прячем у родителя нашего блока с контентом ВСЁ, кроме
   самого этого блока — так не всплывёт ничего лишнее, что тема добавит
   ещё. :has() поддерживается всеми современными браузерами. */

body.single-course main :has(> .entry-content) > :not(.entry-content),
body.single-lesson main :has(> .entry-content) > :not(.entry-content),
body.single-course_bundle main :has(> .entry-content) > :not(.entry-content),
body.single-lms_webinar main :has(> .entry-content) > :not(.entry-content),
body.single-course main > :not(:has(.entry-content)),
body.single-lesson main > :not(:has(.entry-content)),
body.single-course_bundle main > :not(:has(.entry-content)),
body.single-lms_webinar main > :not(:has(.entry-content)) {
    display: none !important;
}

/* Тема жёстко центрирует и сужает содержимое записи (см. пояснение выше) —
   возвращаем нашим собственным контейнерам их ширину и центрирование,
   явно перебивая правило темы, независимо от того, в каком порядке
   подключены стили. */

body.single-course .my-lms-wide-container,
body.single-lesson .my-lms-wide-container {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.single-course_bundle .container2 {
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Большой отступ сверху/снизу над содержимым любой страницы/записи —
   это встроенный стиль самой темы (padding-top/bottom: var(--wp--preset--
   spacing--60), т.е. 30–70px в зависимости от ширины экрана) у блока-
   обёртки над .entry-content, не наш код. У инлайн-стиля темы высокий
   приоритет, поэтому переопределяем через !important. Правило общее для
   всех страниц плагина (Мои курсы, Каталог курсов, Кабинет преподавателя
   и т.д.) и для курса/урока/пакета — везде тот же самый блок темы. */

body.page main :has(> .entry-content),
body.single-course main :has(> .entry-content),
body.single-lesson main :has(> .entry-content),
body.single-course_bundle main :has(> .entry-content),
body.single-lms_webinar main :has(> .entry-content) {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

.container2 {
    max-width: 900px;
    margin: 0 auto;
    padding: 20px;
    color: var(--lms-tx-3a3a3a);
}
/* Широкий контейнер для страниц курса/урока (не читательская статья) */

.my-lms-wide-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    color: var(--lms-tx-3a3a3a);
}

/* Раскладка страницы курса: контент + CTA-блок сбоку (десктоп) / сверху (мобильный) */

.my-lms-course-layout {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.my-lms-course-main {
    flex: 1;
    min-width: 0;
}

.my-lms-course-cta {
    width: 300px;
    flex-shrink: 0;
    position: sticky;
    top: 20px;
}

@media (max-width: 782px) {
    .my-lms-course-layout {
        flex-direction: column;
    }

    .my-lms-course-cta {
        width: 100%;
        order: -1;
        position: static;
    }

    .my-lms-course-main {
        order: 1;
    }
}

/* Настоящие кнопки на фронтенде (в админке класс .button уже стилизован
   самим WordPress — трогаем стиль только вне wp-admin) */

body:not(.wp-admin) .button {
    display: inline-block;
    background: transparent;
    color: var(--lms-tx-54ad54);
    border: 1px solid var(--lms-bd-54ad54);
    padding: 9px 18px;
    border-radius: 4px;
    text-decoration: none;
    cursor: pointer;
    font-size: 14px;
    line-height: 1.4;
    margin: 0 8px 8px 0;
}

body:not(.wp-admin) .button:hover {
    background: var(--lms-bg-eaf3ea);
}

body:not(.wp-admin) .button-primary {
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    border-color: var(--lms-bd-54ad54);
}

body:not(.wp-admin) .button-primary:hover {
    background: var(--lms-bg-458a45);
}

.my-lms-course h1,
.my-lms-lesson h1 {
    margin-bottom: 15px;
    font-size: 26px;
}

.my-lms-lesson-list {
    list-style: none;
    padding: 0;
    counter-reset: lesson-counter;
}

.my-lms-lesson-list > li {
    counter-increment: lesson-counter;
    display: flex;
    align-items: center;
    padding: 6px 0;
}

.my-lms-lesson-list > li::before {
    content: counter(lesson-counter) ". ";
    flex-shrink: 0;
    margin-right: 6px;
}

.my-lms-lesson-list > li > a {
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-decoration: none;
    color: var(--lms-tx-54ad54);
}

.my-lms-lesson-list li a {
    text-decoration: none;
    color: var(--lms-tx-54ad54);
}

.my-lms-lesson-locked {
    color: var(--lms-tx-888888);
    cursor: pointer;
}

.my-lms-lesson-lock-icon {
    margin-right: 6px;
    opacity: 0.6;
}

.my-lms-lesson-free-tag {
    display: inline-block;
    margin-left: 12px;
    font-size: 13px;
    color: var(--lms-tx-ffffff);
    background: var(--lms-bg-54ad54);
    border-radius: 4px;
    padding: 6px 14px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Конструктор курса (Блок 1) */

.my-lms-builder-list {
    list-style: none;
    padding: 0;
    margin: 0 0 15px;
}

.my-lms-builder-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    margin-bottom: 5px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
}

.my-lms-builder-actions .button {
    margin-left: 5px;
}

.my-lms-add-lesson-row {
    margin-top: 10px;
}

#my-lms-builder-message {
    margin-top: 8px;
    font-size: 13px;
}

/* Модули курса (Блок 10.1) */

.my-lms-builder-module {
    border: 1px solid var(--lms-bd-e0e0e0);
    border-radius: 4px;
    padding: 12px;
    margin-bottom: 15px;
    background: var(--lms-bg-fafafa);
}

.my-lms-builder-module-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.my-lms-builder-module-title {
    font-weight: bold;
    font-size: 15px;
}

.my-lms-builder-module-actions .button {
    margin-left: 5px;
}

.my-lms-builder-module-edit-row {
    margin-bottom: 12px;
}

.my-lms-module-title-input {
    margin-right: 8px;
}

.my-lms-module-description-input {
    margin-right: 8px;
}

.my-lms-move-to-module-select {
    margin-left: 5px;
}

.my-lms-add-module-row {
    margin-top: 15px;
}

/* Программа курса на фронтенде (Блок 10.3) */

.my-lms-program-module {
    margin-bottom: 25px;
}

.my-lms-program-module-title {
    margin-bottom: 6px;
}

.my-lms-program-module-description {
    color: var(--lms-tx-666666);
    font-size: 14px;
    margin: 0 0 10px;
}

.my-lms-program-module-empty {
    color: var(--lms-tx-888888);
    font-size: 14px;
}

/* Оплата курса (Блок 2) */

.my-lms-promo-block {
    margin: 20px 0;
    padding: 15px;
    background: var(--lms-bg-f0f6fc);
    border-radius: 4px;
}

.my-lms-price {
    font-size: 18px;
    font-weight: bold;
    margin: 0 0 10px;
}

/* Скидки на курсы и пакеты (Блок 31.2) */

.my-lms-price-old {
    text-decoration: line-through;
    color: var(--lms-tx-999999);
    font-weight: normal;
    font-size: 15px;
}

.my-lms-price-new {
    color: var(--lms-tx-3a3a3a);
}

.my-lms-discount-badge {
    display: inline-block;
    padding: 2px 8px;
    background: var(--lms-bg-e4ede4);
    color: var(--lms-tx-4c6b4f);
    font-size: 12px;
    font-weight: bold;
    border-radius: 999px;
    vertical-align: middle;
}

.my-lms-catalog-card-price .my-lms-price-old,
.my-lms-recommended-slide-price .my-lms-price-old,
.my-lms-bundle-archive-meta .my-lms-price-old {
    font-size: 13px;
}

.my-lms-catalog-card-price .my-lms-discount-badge,
.my-lms-recommended-slide-price .my-lms-discount-badge,
.my-lms-bundle-archive-meta .my-lms-discount-badge {
    font-size: 11px;
    padding: 1px 6px;
}

.my-lms-leave-row {
    margin-top: 20px;
}

.my-lms-inline-message {
    display: block;
    margin-top: 8px;
}

.my-lms-leave-button {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 14px;
}

/* Отзыв о курсе (Блок 11.2) */

.my-lms-review-block {
    margin: 20px 0;
    padding: 22px 24px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 12px;
}

.my-lms-review-toggle-link {
    display: inline-block;
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}

.my-lms-review-toggle-link:hover {
    text-decoration: underline;
}

/* Форма скрыта, пока пользователь не кликнет по ссылке-переключателю */
.my-lms-review-form {
    display: none;
    margin-top: 16px;
}

.my-lms-review-form.is-open {
    display: block;
}

.my-lms-review-char-count {
    margin: 6px 0 0;
    font-size: 12px;
    color: var(--lms-tx-6a6455);
    text-align: right;
    max-width: 560px;
}

.my-lms-review-status {
    margin: 0 0 14px;
    font-size: 14px;
}

.my-lms-review-status-pending {
    color: var(--lms-tx-6a6455);
}

.my-lms-review-status-approved {
    color: var(--lms-tx-458a45);
}

.my-lms-review-status-rejected {
    color: var(--lms-tx-6a6455);
}

.my-lms-review-field {
    margin: 0 0 16px;
}

.my-lms-review-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--lms-tx-3a3a3a);
    margin-bottom: 8px;
}

/* Звёздный рейтинг вместо выпадающего списка (5 звёзд, шкала внутри 1–10:
   каждая звезда = 2 балла, есть половинки для нечётных значений) */
.my-lms-star-rating {
    display: inline-flex;
    gap: 4px;
    line-height: 1;
    vertical-align: middle;
}

.my-lms-star {
    position: relative;
    display: inline-block;
    width: 1em;
    height: 1em;
    font-size: 30px;
}

.my-lms-star-back,
.my-lms-star-fill {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    pointer-events: none;
}

.my-lms-star-back {
    color: var(--lms-tx-d9dde2);
}

.my-lms-star-fill {
    width: 0%;
    color: var(--lms-tx-e0994c);
    transition: width 0.1s ease;
}

.my-lms-star-hit {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    z-index: 2;
}

.my-lms-star-rating-value {
    margin-left: 10px;
    font-size: 14px;
    color: var(--lms-tx-6a6455);
    vertical-align: middle;
}

.my-lms-review-text-input {
    display: block;
    width: 100%;
    max-width: 560px;
    margin-top: 0;
    padding: 12px 14px;
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 8px;
    font-family: inherit;
    font-size: 14px;
    color: var(--lms-tx-3a3a3a);
    box-sizing: border-box;
    resize: vertical;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.my-lms-review-text-input:focus {
    outline: none;
    border-color: var(--lms-bd-54ad54);
    box-shadow: 0 0 0 3px rgba(84, 173, 84, 0.15);
}

.my-lms-review-submit-button.is-sending {
    opacity: 0.6;
    pointer-events: none;
}

.my-lms-review-locked-message {
    color: var(--lms-tx-6a6455);
    font-size: 14px;
    margin: 0;
}

/* Средний рейтинг в шапке курса (Блок 11.4) */

.my-lms-course-hero-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 6px 0 10px;
}

.my-lms-star-rating-hero .my-lms-star {
    font-size: 20px;
}

.my-lms-star-rating-small .my-lms-star {
    font-size: 16px;
}

.my-lms-course-hero-rating-value {
    font-weight: 600;
    color: var(--lms-tx-ffffff);
}

.my-lms-course-hero-rating-count {
    color: var(--lms-tx-d5d7e0);
    font-size: 14px;
    text-decoration: none;
}

.my-lms-course-hero-rating-count:hover {
    text-decoration: underline;
}

/* Список отзывов на промостранице курса (Блок 11.4) */

.my-lms-reviews-list {
    margin-top: 10px;
}

.my-lms-review-item {
    padding: 16px 0;
    border-bottom: 1px solid var(--lms-bd-ececec);
}

.my-lms-review-item:last-child {
    border-bottom: none;
}

.my-lms-review-item-header {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.my-lms-review-item-author {
    font-weight: 600;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-review-item-date {
    color: var(--lms-tx-6a6455);
    font-size: 13px;
}

.my-lms-review-item-text {
    margin: 0;
    color: var(--lms-tx-3a3a3a);
    font-size: 14px;
    line-height: 1.5;
}

/* Страница входа/регистрации (Блок 4) */

.my-lms-auth-wrap {
    max-width: 400px;
    margin: 0 auto;
}

.my-lms-auth-tabs {
    display: flex;
    margin-bottom: 15px;
    border-bottom: 1px solid var(--lms-bd-dddddd);
}

.my-lms-auth-tab {
    padding: 10px 15px;
    cursor: pointer;
    color: var(--lms-tx-888888);
    border-bottom: 2px solid transparent;
}

.my-lms-auth-tab.active {
    color: var(--lms-tx-54ad54);
    border-bottom-color: var(--lms-bd-54ad54);
}

.my-lms-auth-error {
    background: var(--lms-bg-f7ecec);
    color: var(--lms-tx-8a4b4b);
    padding: 8px 12px;
    border-radius: 4px;
    margin-bottom: 15px;
    font-size: 14px;
}

/* Нейтральное/успешное сообщение на странице входа (Блок 25.2) —
   например, "письмо отправлено" или "email подтверждён". */
.my-lms-auth-notice {
    background: var(--lms-bg-eef5ee);
    color: var(--lms-tx-458a45);
    padding: 8px 12px;
    border-radius: 4px;
    margin-bottom: 15px;
    font-size: 14px;
}

.my-lms-auth-resend {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
    margin-top: -8px;
    margin-bottom: 15px;
}

.my-lms-resend-confirm-link,
.my-lms-resend-2fa-link {
    color: var(--lms-tx-54ad54);
    text-decoration: underline;
    cursor: pointer;
}

.my-lms-resend-confirm-result,
.my-lms-resend-2fa-result {
    font-size: 13px;
    margin-top: -8px;
    margin-bottom: 15px;
}

/* Второй шаг входа — код с почты (Блок 26.1) */

.my-lms-2fa-title {
    font-size: 18px;
    margin-bottom: 8px;
}

.my-lms-2fa-hint {
    color: var(--lms-tx-6a6455);
    font-size: 14px;
    margin-bottom: 16px;
}

.my-lms-2fa-form input[name="code"] {
    width: 100%;
    padding: 8px;
    box-sizing: border-box;
    font-size: 20px;
    letter-spacing: 6px;
    text-align: center;
}

/* Вкладка "Безопасность" в личном кабинете (Блок 26.2) */

.my-lms-security-tab {
    max-width: 480px;
}

.my-lms-security-description {
    color: var(--lms-tx-6a6455);
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 18px;
}

.my-lms-2fa-toggle-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    cursor: pointer;
}

.my-lms-2fa-toggle-result {
    font-size: 13px;
    color: var(--lms-tx-458a45);
    margin-top: 8px;
}

.my-lms-auth-form p {
    margin-bottom: 12px;
}

.my-lms-auth-remember label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--lms-tx-6a6455);
    font-weight: normal;
}

.my-lms-auth-form label {
    display: block;
    margin-bottom: 4px;
    font-size: 14px;
}

.my-lms-auth-form input[type="text"],
.my-lms-auth-form input[type="email"],
.my-lms-auth-form input[type="password"] {
    width: 100%;
    padding: 8px;
    box-sizing: border-box;
}

.my-lms-btn {
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    border: none;
    padding: 10px 18px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
}

.my-lms-btn:hover {
    background: var(--lms-bg-458a45);
}

/* Иконка "показать/скрыть пароль" (Блок 27) */

.my-lms-password-wrap {
    position: relative;
    display: block;
}

.my-lms-password-wrap input[type="password"],
.my-lms-password-wrap input[type="text"] {
    padding-right: 38px;
}

.my-lms-password-toggle {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lms-tx-999999);
    cursor: pointer;
}

.my-lms-password-toggle:hover {
    color: var(--lms-tx-666666);
}

.my-lms-eye-icon {
    width: 20px;
    height: 20px;
    pointer-events: none;
}

.my-lms-eye-icon-hide {
    display: none;
}

.my-lms-password-toggle.is-visible .my-lms-eye-icon-show {
    display: none;
}

.my-lms-password-toggle.is-visible .my-lms-eye-icon-hide {
    display: block;
}

/* Прогресс урока и "Мои курсы" (Блок 4B) */

.my-lms-nav-link {
    margin-bottom: 15px;
    font-size: 14px;
}

.my-lms-nav-link a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
}

.my-lms-lesson-status {
    margin-top: 20px;
    font-size: 14px;
    min-height: 20px;
}

.my-lms-lesson-status-done {
    color: var(--lms-tx-5a7a5a);
    font-weight: bold;
}

#my-lms-lesson-end-marker {
    height: 1px;
}

.my-lms-my-courses-list {
    list-style: none;
    padding: 0;
}

.my-lms-my-courses-item {
    padding: 12px;
    margin-bottom: 10px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
}

.my-lms-my-courses-title {
    display: block;
    margin-bottom: 8px;
    text-decoration: none;
    color: var(--lms-tx-54ad54);
    font-weight: bold;
}

.my-lms-progress-bar {
    background: var(--lms-bg-e0e0e0);
    border-radius: 4px;
    height: 10px;
    overflow: hidden;
}

.my-lms-progress-bar-fill {
    background: var(--lms-bg-54ad54);
    height: 100%;
}

.my-lms-progress-label {
    display: inline-block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--lms-tx-666666);
}

/* Студенты курса (Блок 5) */

.my-lms-students-list {
    list-style: none;
    padding: 0;
    margin: 0 0 15px;
}

.my-lms-students-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    margin-bottom: 5px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
}

.my-lms-student-info {
    font-size: 13px;
}

.my-lms-add-student-row {
    margin-top: 10px;
}

#my-lms-students-message {
    margin-top: 8px;
    font-size: 13px;
}


/* Вложения к уроку (Блок 8) */

.my-lms-attachments-list {
    list-style: none;
    padding: 0;
    margin: 0 0 15px;
}

.my-lms-attachments-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    margin-bottom: 5px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
}

.my-lms-attachment-size {
    color: var(--lms-tx-888888);
    font-size: 12px;
    margin-left: 6px;
}

.my-lms-add-attachment-row {
    margin-top: 10px;
}

#my-lms-attachments-message {
    margin-top: 8px;
    font-size: 13px;
}

.my-lms-lesson-attachments {
    margin-top: 25px;
    padding-top: 15px;
    border-top: 1px solid var(--lms-bd-e0e0e0);
}

.my-lms-attachments-download-list {
    list-style: none;
    padding: 0;
}

.my-lms-attachments-download-list li {
    padding: 8px 10px;
    margin-bottom: 5px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
}

.my-lms-attachments-download-list a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
}

/* Пакеты курсов (Блок 9) */

.my-lms-bundle-course-list {
    list-style: none;
    padding: 0;
}

.my-lms-bundle-course-list li {
    padding: 10px;
    margin-bottom: 5px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
}

.my-lms-bundle-course-list a {
    text-decoration: none;
    color: var(--lms-tx-54ad54);
}

.my-lms-bundle-owned-tag {
    margin-left: 8px;
    font-size: 12px;
    color: var(--lms-tx-6a6a55);
    background: var(--lms-bg-f1efe6);
    border-radius: 3px;
    padding: 1px 6px;
}

.my-lms-bundle-warning {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
    background: var(--lms-bg-f6f2e9);
    padding: 8px 12px;
    border-radius: 4px;
    margin-bottom: 12px;
}

.my-lms-bundle-archive-list {
    list-style: none;
    padding: 0;
}

.my-lms-bundle-archive-item {
    padding: 12px;
    margin-bottom: 10px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
}

.my-lms-bundle-archive-title {
    display: block;
    margin-bottom: 6px;
    text-decoration: none;
    color: var(--lms-tx-54ad54);
    font-weight: bold;
}

.my-lms-bundle-archive-meta {
    margin: 0;
    font-size: 13px;
    color: var(--lms-tx-666666);
}

/* Шаги урока — конструктор в админке (Блок 10.2) */

.my-lms-step-block {
    border: 1px solid var(--lms-bd-e0e0e0);
    border-radius: 4px;
    padding: 12px;
    margin-bottom: 15px;
    background: var(--lms-bg-fafafa);
}

.my-lms-step-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.my-lms-step-title {
    font-weight: bold;
    font-size: 14px;
}

.my-lms-step-actions .button {
    margin-left: 5px;
}

.my-lms-step-test-option-row {
    margin: 4px 0;
}

.my-lms-step-content-textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 8px;
    font-family: inherit;
    font-size: 14px;
}

.my-lms-step-save-row {
    margin-top: 10px;
}

.my-lms-add-step-row {
    margin-top: 15px;
}

.my-lms-add-step-row .button {
    margin-left: 6px;
}

#my-lms-steps-message {
    margin-top: 8px;
    font-size: 13px;
}

/* Фронтенд урока: боковая панель и шаги (Блок 10.3) */

.my-lms-lesson-layout {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.my-lms-lesson-sidebar {
    width: 260px;
    flex-shrink: 0;
}

.my-lms-lesson-main {
    flex: 1;
    min-width: 0;
}

.my-lms-lesson-sidebar-back {
    margin-bottom: 15px;
    font-size: 14px;
}

/* Блок 10.9: желобок для точек-маркеров прогресса — в отступе списка
   уроков (ul), а НЕ внутри отступа конкретной строки урока (li). Так
   подсветка текущего урока (фон у li) не может перекрыть точку — она
   физически левее, в отдельном отступе. */
.my-lms-lesson-sidebar-module {
    margin-bottom: 18px;
}

.my-lms-lesson-sidebar-module-title {
    font-weight: bold;
    font-size: 16px;
    margin: 0 0 8px;
    color: var(--lms-tx-444444);
}

.my-lms-lesson-sidebar-list {
    list-style: none;
    /* Желобок для точки-маркера прогресса — здесь, а не в отступе строки
       урока, чтобы фон подсветки текущего урока (у li) не мог её
       перекрыть (она рисуется правее этого отступа). */
    padding: 0 0 0 20px;
    margin: 0;
    position: relative;
}

.my-lms-lesson-sidebar-list li {
    position: relative;
    padding: 8px 10px;
    font-size: 16px;
    line-height: 1.4;
    border-radius: 4px;
}

/* Точка-маркер урока — центрируется по высоте строки через translateY,
   а не подобранным вручную числом (работает одинаково для короткого и
   для длинного, переносящегося на 2 строки, названия урока). Серая —
   не пройден, зелёная — пройден (см. $sidebar_completed в
   single-lesson.php). Соединительной линии между точками нет — только
   сами точки (по решению пользователя, Блок 10.9). */
.my-lms-lesson-sidebar-list li::before {
    content: "";
    position: absolute;
    left: -15px;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--lms-bg-d9dde2);
    z-index: 1;
}

.my-lms-lesson-sidebar-list li.my-lms-lesson-sidebar-completed::before {
    background: var(--lms-bg-54ad54);
}

.my-lms-lesson-sidebar-list a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
}

.my-lms-lesson-sidebar-locked {
    color: var(--lms-tx-999999);
}

.my-lms-lesson-sidebar-current {
    background: var(--lms-bg-eaf3ea);
    font-weight: bold;
}

.my-lms-step-indicator {
    color: var(--lms-tx-666666);
    font-size: 13px;
    margin-bottom: 10px;
}

.my-lms-step-progress {
    display: flex;
    gap: 6px;
    margin-bottom: 10px;
}

.my-lms-step-cube {
    width: 24px;
    height: 24px;
    border-radius: 5px;
    background: var(--lms-bg-d9dde2);
    display: inline-block;
}

/* Блок 10.9: у кубика шага 4 независимых состояния — активен ли он сейчас
   (is-current) и пройден ли он (is-done). Классы могут сочетаться. */
.my-lms-step-cube.is-current {
    /* активный, но ещё НЕ пройденный шаг — приглушённый тёмно-серый */
    background: var(--lms-bg-6e7075);
}

.my-lms-step-cube.is-done {
    /* неактивный, но уже пройденный шаг — приглушённый зелёный */
    background: var(--lms-bg-54ad54);
}

.my-lms-step-cube.is-current.is-done {
    /* активный И уже пройденный шаг — тёмно-зелёный */
    background: var(--lms-bg-458a45);
}

.my-lms-step-container {
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e3e3e3);
    border-radius: 6px;
    padding: 20px;
    margin-bottom: 15px;
}

.my-lms-video-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    margin-bottom: 10px;
    border-radius: 4px;
    background: var(--lms-bg-000000);
}

.my-lms-video-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.my-lms-step-nav {
    margin-top: 20px;
}

.my-lms-step-nav .button {
    margin-right: 8px;
}

.my-lms-step-test {
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
    padding: 15px;
}

.my-lms-step-test-question {
    font-weight: bold;
    margin-bottom: 10px;
}

.my-lms-step-test-options {
    list-style: none;
    padding: 0;
    margin: 0 0 12px;
}

.my-lms-step-test-options li {
    margin-bottom: 6px;
}

.my-lms-step-test-result {
    margin-top: 10px;
    font-size: 14px;
    min-height: 18px;
}

@media (max-width: 782px) {
    .my-lms-lesson-layout {
        flex-direction: column;
    }

    .my-lms-lesson-sidebar {
        width: 100%;
    }
}

.my-lms-reset-progress-row {
    margin-top: 8px;
}

.my-lms-reset-progress-button {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 13px;
}

/* Свой iframe в шаге "Видео" (не YouTube/Vimeo/VK) — без принудительной
   пропорции 16:9, размер берётся из атрибутов width/height самого iframe. */
.my-lms-video-embed-custom {
    margin-bottom: 10px;
}

.my-lms-video-embed-custom iframe {
    display: block;
    width: 100%;
    border: 0;
}

.my-lms-video-speed-row {
    margin: 6px 0 0;
    font-size: 13px;
    color: var(--lms-tx-666666);
}

.my-lms-video-speed-row select {
    margin-left: 4px;
}

.my-lms-step-top-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 10px;
}

.my-lms-step-top-row .my-lms-step-progress {
    margin-bottom: 0;
}

.my-lms-step-cube {
    cursor: pointer;
}

.my-lms-step-file-embed {
    margin-bottom: 10px;
}

.my-lms-step-file-embed iframe {
    display: block;
    width: 100%;
}

/* Промо-блоки страницы курса (Блок 10.4) */

.my-lms-promo-check-list,
.my-lms-promo-plain-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
}

.my-lms-promo-check-list li {
    position: relative;
    padding-left: 22px;
    margin-bottom: 8px;
}

.my-lms-promo-check-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--lms-tx-54ad54);
}

.my-lms-promo-plain-list li {
    padding: 4px 0;
}

.my-lms-promo-text {
    margin: 0 0 20px;
    color: var(--lms-tx-3a3a3a);
}

/* Аккордеон модулей программы */

.my-lms-program-module-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

.my-lms-program-module-arrow {
    color: var(--lms-tx-888888);
    transition: transform 0.15s ease;
}

.my-lms-program-module.is-collapsed .my-lms-program-module-arrow {
    transform: rotate(-90deg);
}

.my-lms-program-module.is-collapsed .my-lms-program-module-body {
    display: none;
}

/* Замок урока — svg вместо эмодзи, цвет из палитры */

.my-lms-lesson-lock-icon {
    margin-right: 6px;
    color: var(--lms-tx-888888);
    vertical-align: middle;
}

.my-lms-lock-svg {
    display: inline-block;
    vertical-align: middle;
}

.my-lms-lesson-sidebar-locked {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.my-lms-program-module + .my-lms-program-module {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-share-block {
    margin-top: 30px;
}

.my-lms-share-links {
    display: flex;
    flex-wrap: wrap;
}

.my-lms-share-link {
    margin: 0 8px 8px 0;
}

.my-lms-course-hero {
    background: var(--lms-bg-262b45);
    color: var(--lms-tx-ffffff);
    padding: 30px 0;
    margin-bottom: 20px;
}

.my-lms-course-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    gap: 30px;
    align-items: center;
    justify-content: space-between;
}

.my-lms-course-hero-text {
    flex: 1;
    min-width: 0;
}

.my-lms-course-hero-text h1 {
    color: var(--lms-tx-ffffff);
    margin: 0 0 12px;
}

.my-lms-course-hero-excerpt {
    color: var(--lms-tx-d5d7e0);
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
}

.my-lms-readmore-hidden {
    display: none;
}

.my-lms-readmore.is-expanded .my-lms-readmore-hidden {
    display: inline;
}

.my-lms-course-hero-thumb img {
    max-width: 220px;
    border-radius: 6px;
    display: block;
}

@media (max-width: 782px) {
    .my-lms-course-hero-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .my-lms-course-hero-thumb img {
        max-width: 100%;
    }
}

.my-lms-teacher-card {
    display: flex;
    gap: 15px;
    align-items: flex-start;
    margin-bottom: 20px;
}

.my-lms-teacher-avatar img {
    border-radius: 50%;
    display: block;
}

.my-lms-teacher-name {
    font-weight: bold;
    margin: 0 0 6px;
}

.my-lms-readmore-content {
    max-height: 4.8em;
    overflow: hidden;
    position: relative;
}

.my-lms-readmore.is-expanded .my-lms-readmore-content {
    max-height: none;
}

.my-lms-readmore-toggle-js {
    display: inline-block;
    margin-top: 4px;
    color: var(--lms-tx-54ad54);
    cursor: pointer;
    font-size: 13px;
}
/* Сертификат (Блок 12.2) */
.my-lms-certificate-wrap {
    max-width: 800px;
    margin: 0 auto;
}

.my-lms-certificate-actions {
    text-align: center;
    margin: 0 0 20px;
}

.my-lms-certificate-print-btn {
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    border: none;
    border-radius: 4px;
    padding: 10px 22px;
    font-size: 14px;
    cursor: pointer;
}

.my-lms-certificate-print-btn:hover {
    background: var(--lms-bg-458a45);
}

.my-lms-certificate-card {
    background: var(--lms-bg-f0f6fc);
    border: 2px solid var(--lms-bd-6e7075);
    border-radius: 12px;
    padding: 60px 40px;
    text-align: center;
}

.my-lms-certificate-label {
    color: var(--lms-tx-6e7075);
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 24px;
}

.my-lms-certificate-student {
    color: var(--lms-tx-262b45);
    font-size: 34px;
    font-weight: bold;
    margin-bottom: 16px;
}

.my-lms-certificate-course-label {
    color: var(--lms-tx-3a3a3a);
    font-size: 16px;
    margin-bottom: 8px;
}

.my-lms-certificate-course-title {
    color: var(--lms-tx-3a3a3a);
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 40px;
}

.my-lms-certificate-footer {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid var(--lms-bd-e5e5e5);
    padding-top: 16px;
    color: var(--lms-tx-6e7075);
    font-size: 14px;
}

.my-lms-certificate-row {
    margin: 6px 0 0;
}

.my-lms-certificate-link {
    color: var(--lms-tx-54ad54);
    font-weight: bold;
}

.my-lms-certificate-link:hover {
    color: var(--lms-tx-458a45);
}

@media print {
    .my-lms-no-print {
        display: none !important;
    }

    body * {
        visibility: hidden;
    }

    .my-lms-certificate-card,
    .my-lms-certificate-card * {
        visibility: visible;
    }

    .my-lms-certificate-card {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        border: none;
    }
}

/* Импорт программы курса */

#my-lms-course-plan-textarea,
#my-lms-test-textarea {
    font-family: monospace;
    margin-bottom: 8px;
}

#my-lms-course-plan-import-message,
#my-lms-test-import-message {
    margin-top: 8px;
    font-size: 13px;
}

/* Кабинет преподавателя (Блок 13.1) */

.my-lms-teacher-courses-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.my-lms-teacher-course-item {
    display: flex;
    flex-direction: column;
    padding: 14px 16px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
}

.my-lms-teacher-course-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.my-lms-teacher-course-title {
    text-decoration: none;
    color: var(--lms-tx-54ad54);
    font-weight: bold;
}

.my-lms-teacher-course-title:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-teacher-course-status {
    display: inline-block;
    padding: 2px 8px;
    background: var(--lms-bg-f6f2e9);
    color: var(--lms-tx-6a6455);
    border-radius: 4px;
    font-size: 12px;
}

.my-lms-teacher-course-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    color: var(--lms-tx-3a3a3a);
    font-size: 14px;
}

.my-lms-teacher-stat-warning {
    color: var(--lms-tx-8a4b4b);
}

.my-lms-teacher-students-toggle-row {
    margin: 10px 0 0;
}

.my-lms-teacher-toggle-students {
    background: none;
    border: none;
    padding: 0;
    color: var(--lms-tx-54ad54);
    font-size: 14px;
    cursor: pointer;
    text-decoration: underline;
}

.my-lms-teacher-toggle-students:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-teacher-students-list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    border-top: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-teacher-student-item {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--lms-bd-ececec);
    font-size: 13px;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-teacher-student-name {
    font-weight: bold;
    flex-basis: 100%;
}

.my-lms-teacher-student-email,
.my-lms-teacher-student-date {
    color: var(--lms-tx-6a6455);
}

.my-lms-teacher-remove-student-btn {
    background: none;
    border: none;
    padding: 0;
    color: var(--lms-tx-8a4b4b);
    font-size: 12px;
    cursor: pointer;
    text-decoration: underline;
    flex-basis: 100%;
    text-align: left;
}

.my-lms-teacher-remove-student-btn:hover {
    color: var(--lms-tx-b32d2e);
}

.my-lms-teacher-add-student-row {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.my-lms-teacher-add-student-input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 6px 8px;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 4px;
}

.my-lms-teacher-add-student-btn {
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    border: none;
    border-radius: 4px;
    padding: 6px 14px;
    cursor: pointer;
    white-space: nowrap;
}

.my-lms-teacher-add-student-btn:hover {
    background: var(--lms-bg-458a45);
}

.my-lms-teacher-add-student-btn:disabled {
    opacity: 0.6;
    cursor: default;
}

.my-lms-teacher-students-message {
    margin-top: 6px;
    font-size: 13px;
}

.my-lms-teacher-announce-block {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-teacher-announce-toggle-row {
    margin: 0;
}

.my-lms-teacher-toggle-announce {
    background: none;
    border: none;
    padding: 0;
    color: var(--lms-tx-54ad54);
    font-size: 14px;
    cursor: pointer;
    text-decoration: underline;
}

.my-lms-teacher-toggle-announce:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-teacher-announce-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
}

.my-lms-teacher-announce-text {
    padding: 8px 10px;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 4px;
    font-family: inherit;
    resize: vertical;
}

.my-lms-teacher-announce-send-btn {
    align-self: flex-start;
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    border: none;
    border-radius: 4px;
    padding: 6px 16px;
    cursor: pointer;
}

.my-lms-teacher-announce-send-btn:hover {
    background: var(--lms-bg-458a45);
}

.my-lms-teacher-announce-send-btn:disabled {
    opacity: 0.6;
    cursor: default;
}

.my-lms-teacher-announce-message {
    font-size: 13px;
}

.my-lms-teacher-course-edit-row {
    margin: 10px 0 0;
}

.my-lms-teacher-course-edit-row a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 14px;
}

.my-lms-teacher-course-edit-row a:hover {
    color: var(--lms-tx-458a45);
}

/* Кнопка "Написать преподавателю" на странице курса (Блок 14.1) */

.my-lms-teacher-message-row {
    margin: 10px 0 0;
}

.my-lms-teacher-message-link {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 14px;
}

.my-lms-teacher-message-link:hover {
    color: var(--lms-tx-458a45);
}

/* Ссылка "Сообщения" на странице "Мои курсы" (Блок 14.1) */

.my-lms-my-courses-messages-row {
    margin: 0 0 16px;
}

.my-lms-my-courses-messages-row a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
}

.my-lms-my-courses-messages-row a:hover {
    color: var(--lms-tx-458a45);
}

/* Сообщения студент-преподаватель (Блок 14.1) */

.my-lms-messages-list-wrap {
    max-width: 640px;
}

.my-lms-messages-threads {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
}

.my-lms-messages-thread-item {
    border-bottom: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-messages-thread-link {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 12px;
    padding: 12px 4px;
    text-decoration: none;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-messages-thread-link:hover {
    background: var(--lms-bg-f5f5f5);
}

.my-lms-messages-thread-link .my-lms-messages-thread-course {
    flex-basis: 100%;
    font-weight: bold;
    color: var(--lms-tx-54ad54);
}

.my-lms-messages-thread-link .my-lms-messages-thread-with {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
}

.my-lms-messages-thread-link .my-lms-messages-thread-preview {
    flex-basis: 100%;
    font-size: 13px;
    color: var(--lms-tx-6a6455);
}

.my-lms-messages-thread-link .my-lms-messages-thread-date {
    font-size: 12px;
    color: var(--lms-tx-6a6455);
    margin-left: auto;
}

.my-lms-messages-new-title {
    font-size: 16px;
    margin: 0 0 8px;
}

.my-lms-messages-new-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.my-lms-messages-new-list li {
    margin: 0 0 6px;
}

.my-lms-messages-new-list a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
}

.my-lms-messages-new-list a:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-messages-back-row {
    margin: 0 0 12px;
}

.my-lms-messages-back-row a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 14px;
}

.my-lms-messages-back-row a:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-messages-delete-btn {
    margin-left: auto;
    background: none;
    border: 1px solid var(--lms-bd-b32d2e);
    color: var(--lms-tx-b32d2e);
    border-radius: 4px;
    padding: 4px 10px;
    font-size: 12px;
    cursor: pointer;
}

.my-lms-messages-delete-btn:hover {
    background: var(--lms-bg-f6f2e9);
}

.my-lms-messages-delete-btn:disabled {
    opacity: 0.6;
    cursor: default;
}

.my-lms-messages-thread-header {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    align-items: baseline;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--lms-bd-e5e5e5);
    margin-bottom: 14px;
}

.my-lms-messages-thread-header .my-lms-messages-thread-course a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-weight: bold;
}

.my-lms-messages-thread-header .my-lms-messages-thread-course a:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-messages-thread-header .my-lms-messages-thread-with {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
}

.my-lms-messages-admin-note {
    background: var(--lms-bg-f6f2e9);
    color: var(--lms-tx-6a6455);
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 13px;
    margin: 0 0 14px;
}

.my-lms-messages-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
    max-height: 480px;
    overflow-y: auto;
    padding: 4px 6px;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 6px;
    background: var(--lms-bg-ffffff);
}

.my-lms-messages-empty {
    color: var(--lms-tx-6a6455);
}

.my-lms-message-bubble {
    max-width: 80%;
    padding: 8px 12px;
    border-radius: 6px;
    background: var(--lms-bg-f5f5f5);
}

.my-lms-message-own {
    align-self: flex-end;
    background: var(--lms-bg-f0f6fc);
}

.my-lms-message-other {
    align-self: flex-start;
}

.my-lms-message-text {
    margin: 0 0 4px;
    color: var(--lms-tx-3a3a3a);
    white-space: pre-wrap;
}

.my-lms-message-date {
    font-size: 11px;
    color: var(--lms-tx-6a6455);
}

.my-lms-messages-form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.my-lms-messages-textarea {
    flex: 1 1 260px;
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 4px;
    resize: vertical;
    font-family: inherit;
}

.my-lms-messages-send-btn {
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    border: none;
    border-radius: 4px;
    padding: 8px 18px;
    cursor: pointer;
    align-self: flex-start;
}

.my-lms-messages-send-btn:hover {
    background: var(--lms-bg-458a45);
}

.my-lms-messages-send-btn:disabled {
    opacity: 0.6;
    cursor: default;
}

.my-lms-messages-form-message {
    margin-top: 6px;
    font-size: 13px;
}

/* Оранжевый значок с числом (непрочитанные сообщения, Блок 14.2) */

.my-lms-badge {
    display: inline-block;
    min-width: 18px;
    padding: 0 5px;
    background: var(--lms-bg-e0994c);
    color: var(--lms-tx-ffffff);
    font-size: 11px;
    line-height: 18px;
    text-align: center;
    border-radius: 9px;
    vertical-align: middle;
}

/* Заголовок группы диалогов по курсу в панели администратора (Блок 14.2) */

.my-lms-messages-course-group-title {
    font-size: 16px;
    margin: 20px 0 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-messages-course-group-title:first-child {
    margin-top: 0;
}

/* Бейджи категорий курса (Блок 15.1) — промостраница курса и карточки каталога */

.my-lms-course-categories {
    margin: 6px 0 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.my-lms-course-category-badge {
    display: inline-block;
    padding: 3px 10px;
    background: var(--lms-bg-f0f6fc);
    color: var(--lms-tx-3a3a3a);
    font-size: 12px;
    line-height: 1.6;
    border-radius: 999px;
    border: 1px solid var(--lms-bd-e5e5e5);
    text-decoration: none;
}

.my-lms-course-category-badge:hover {
    background: var(--lms-bg-f5f5f5);
}

/* Внутри тёмной шапки промостраницы (.my-lms-course-hero) бейдж должен
   читаться на тёмном фоне — светлее заливка и текст, без белого фона. */

.my-lms-course-hero .my-lms-course-category-badge {
    background: rgba(255, 255, 255, 0.12);
    color: var(--lms-tx-d5d7e0);
    border-color: rgba(255, 255, 255, 0.2);
}

.my-lms-course-hero .my-lms-course-category-badge:hover {
    background: rgba(255, 255, 255, 0.2);
    color: var(--lms-tx-ffffff);
}

/* Рекламный баннер (Блок 15.3) — каталог/категория и личный кабинет */

.my-lms-ad-banner {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    margin-bottom: 24px;
    border-radius: 10px;
    text-decoration: none;
}

.my-lms-ad-banner-image {
    max-height: 70px;
    max-width: 160px;
    border-radius: 6px;
    flex-shrink: 0;
}

.my-lms-ad-banner-text {
    font-size: 15px;
    line-height: 1.5;
}

/* Слайдер "Рекомендуем" (Блок 15.4) — узкая полоса между баннером и сеткой каталога */

.my-lms-recommended {
    margin-bottom: 28px;
}

.my-lms-recommended-title {
    font-size: 18px;
    margin: 0 0 12px;
}

.my-lms-recommended-viewport {
    position: relative;
}

.my-lms-recommended-track {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;
    padding-bottom: 2px;
}

.my-lms-recommended-track::-webkit-scrollbar {
    display: none;
}

.my-lms-recommended-slide {
    flex: 0 0 160px;
    text-decoration: none;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-recommended-slide-thumb {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    overflow: hidden;
    background: var(--lms-bg-f5f5f5);
}

.my-lms-recommended-slide-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.my-lms-recommended-slide-title {
    display: block;
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.4;
}

.my-lms-recommended-slide-price {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 600;
    color: var(--lms-tx-54ad54);
}

.my-lms-recommended-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid var(--lms-bd-e5e5e5);
    background: var(--lms-bg-ffffff);
    color: var(--lms-tx-3a3a3a);
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    z-index: 1;
}

.my-lms-recommended-nav-prev {
    left: -14px;
}

.my-lms-recommended-nav-next {
    right: -14px;
}

.my-lms-recommended-nav:hover {
    background: var(--lms-bg-f5f5f5);
}

/* Каталог курсов и страница категории (Блок 15.2) — сайдбар фильтров + сетка карточек */

.my-lms-catalog-layout {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.my-lms-catalog-sidebar {
    flex: 0 0 220px;
}

.my-lms-catalog-filter-group {
    margin-bottom: 20px;
}

.my-lms-catalog-filter-group h3 {
    font-size: 14px;
    margin: 0 0 8px;
}

.my-lms-catalog-filter-group label {
    display: block;
    font-size: 14px;
    margin-bottom: 6px;
    cursor: pointer;
}

.my-lms-catalog-filter-submit {
    width: 100%;
    padding: 8px 14px;
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    border: none;
    border-radius: 6px;
    font-size: 14px;
    cursor: pointer;
}

.my-lms-catalog-filter-submit:hover {
    background: var(--lms-bg-458a45);
}

.my-lms-catalog-filter-reset {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    text-align: center;
    color: var(--lms-tx-6e7075);
}

.my-lms-catalog-main {
    flex: 1;
    min-width: 0;
}

.my-lms-catalog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 20px;
}

.my-lms-catalog-card {
    position: relative;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 10px;
    overflow: hidden;
    background: var(--lms-bg-ffffff);
}

.my-lms-catalog-card-link {
    display: block;
    text-decoration: none;
    color: var(--lms-tx-3a3a3a);
    outline: none;
    box-shadow: none;
}

.my-lms-catalog-card-link:focus,
.my-lms-catalog-card-link:active {
    outline: none;
    box-shadow: none;
}

.my-lms-catalog-card:hover {
    border-color: var(--lms-bd-d9dde2);
}

.my-lms-catalog-card-thumb {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    background: var(--lms-bg-f5f5f5);
}

.my-lms-catalog-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.my-lms-catalog-card-thumb-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--lms-bg-f0f6fc);
}

.my-lms-catalog-card-body {
    display: block;
    padding: 14px;
}

.my-lms-catalog-card-body .my-lms-course-categories {
    margin: 0 0 8px;
}

.my-lms-catalog-card-title {
    display: block;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 6px;
}

.my-lms-catalog-card-price {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--lms-tx-54ad54);
}

/* Поле промокода (Блок 31.4) */

.my-lms-promo-row {
    display: flex;
    gap: 8px;
    margin: 0 0 4px;
}

.my-lms-promo-input {
    flex: 1;
    min-width: 0;
    padding: 6px 10px;
    border: 1px solid var(--lms-bd-d5d5d5);
    border-radius: 4px;
}

.my-lms-promo-message {
    margin: 0 0 12px;
    font-size: 13px;
    min-height: 1em;
}

.my-lms-catalog-card-meta {
    display: block;
    font-size: 12px;
    color: var(--lms-tx-888888);
    margin-bottom: 4px;
}

/* Вкладки "Курсы" / "Пакеты" на странице каталога (Блок 31.3) */

.my-lms-catalog-type-tabs {
    display: flex;
    gap: 6px;
    margin: 16px 0;
    border-bottom: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-catalog-type-tab {
    display: inline-block;
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--lms-tx-888888);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}

.my-lms-catalog-type-tab:hover {
    color: var(--lms-tx-3a3a3a);
}

.my-lms-catalog-type-tab.is-active {
    color: var(--lms-tx-3a3a3a);
    border-bottom-color: var(--lms-bd-8ea88f);
}

.my-lms-catalog-pagination {
    margin-top: 30px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.my-lms-catalog-pagination .page-numbers {
    display: inline-block;
    padding: 6px 12px;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 6px;
    text-decoration: none;
    color: var(--lms-tx-3a3a3a);
    font-size: 14px;
}

.my-lms-catalog-pagination .page-numbers.current {
    background: var(--lms-bg-54ad54);
    border-color: var(--lms-bd-54ad54);
    color: var(--lms-tx-ffffff);
}

.my-lms-catalog-pagination .page-numbers.dots {
    border-color: transparent;
}

@media (max-width: 782px) {
    .my-lms-catalog-layout {
        flex-direction: column;
    }

    .my-lms-catalog-sidebar {
        flex: none;
        width: 100%;
    }
}

/* Кнопка "В избранное" (Блок 15.5) — сердечко, цвет как у звёзд рейтинга/
   значка непрочитанных (#e0994c), приглушённый серый в обычном состоянии */

.my-lms-favorite-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: none;
    background: none;
    padding: 0;
    color: var(--lms-tx-d9dde2);
    cursor: pointer;
    text-decoration: none;
}

.my-lms-favorite-btn:hover {
    color: var(--lms-tx-6e7075);
}

.my-lms-favorite-btn.is-favorite {
    color: var(--lms-tx-e0994c);
}

.my-lms-favorite-btn.is-favorite:hover {
    color: var(--lms-tx-e0994c);
}

.my-lms-favorite-btn:disabled {
    opacity: 0.6;
    cursor: default;
}

/* Компактный вариант — иконка поверх обложки карточки каталога */

.my-lms-favorite-btn-card {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    width: 32px;
    height: 32px;
    justify-content: center;
    background: var(--lms-overlay-1);
    border-radius: 50%;
}

/* Развёрнутый вариант с подписью — промостраница курса */

.my-lms-course-hero-favorite {
    margin: 4px 0 12px;
}

.my-lms-favorite-btn-inline {
    font-size: 14px;
    color: var(--lms-tx-6e7075);
}

.my-lms-favorite-btn-inline.is-favorite {
    color: var(--lms-tx-e0994c);
}

.my-lms-favorite-label {
    line-height: 1;
}

/* Личный кабинет студента: сайдбар + содержимое вкладки (Блок 14.3) */

.my-lms-cabinet {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.my-lms-cabinet-sidebar {
    flex: 0 0 200px;
    background: var(--lms-bg-f5f5f5);
    border-radius: 4px;
    padding: 12px;
}

.my-lms-cabinet-nav {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
}

.my-lms-cabinet-nav-item a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding: 8px 10px;
    border-radius: 4px;
    color: var(--lms-tx-3a3a3a);
    text-decoration: none;
    font-size: 14px;
}

.my-lms-cabinet-nav-item a:hover {
    background: var(--lms-bg-ececec);
}

.my-lms-cabinet-nav-item.is-active a {
    background: var(--lms-bg-f0f6fc);
    color: var(--lms-tx-54ad54);
    font-weight: bold;
}

.my-lms-cabinet-logout {
    display: block;
    padding: 8px 10px;
    border-top: 1px solid var(--lms-bd-e5e5e5);
    color: var(--lms-tx-6a6455);
    text-decoration: none;
    font-size: 13px;
}

.my-lms-cabinet-logout:hover {
    color: var(--lms-tx-8a4b4b);
}

.my-lms-cabinet-content {
    flex: 1 1 auto;
    min-width: 0;
}

@media (max-width: 700px) {
    .my-lms-cabinet {
        flex-direction: column;
    }

    .my-lms-cabinet-sidebar {
        flex-basis: auto;
        width: 100%;
    }

    .my-lms-cabinet-nav {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin-bottom: 0;
    }

    .my-lms-cabinet-nav-item {
        flex: 1 1 auto;
    }

    .my-lms-cabinet-logout {
        margin-top: 10px;
        border-top: none;
    }
}

/* Вкладка "Сертификаты" личного кабинета (Блок 14.3) */

.my-lms-cabinet-certificates-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.my-lms-cabinet-certificate-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 14px;
    padding: 10px 0;
    border-bottom: 1px solid var(--lms-bd-ececec);
}

.my-lms-cabinet-certificate-course {
    font-weight: bold;
    flex-basis: 100%;
}

.my-lms-cabinet-certificate-date {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
}

.my-lms-cabinet-certificate-link {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 13px;
}

.my-lms-cabinet-certificate-link:hover {
    color: var(--lms-tx-458a45);
}

/* Календарь событий (Блок 17) — общий календарь сайта (my-lms-events) и,
   позже, календарь курса (Блок 17.3) используют одну и ту же разметку
   .my-lms-calendar-*, см. my_lms_render_calendar_grid() в includes/events.php. */

.my-lms-calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
}

.my-lms-calendar-title {
    font-weight: bold;
    font-size: 18px;
}

.my-lms-calendar-nav-link {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 14px;
    white-space: nowrap;
}

.my-lms-calendar-nav-link:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-calendar-today-link {
    margin: 0 0 14px;
}

.my-lms-calendar-today-link a {
    color: var(--lms-tx-6a6455);
    font-size: 13px;
    text-decoration: underline;
}

.my-lms-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--lms-bg-e5e5e5);
    border: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-calendar-weekday {
    background: var(--lms-bg-f5f5f5);
    color: var(--lms-tx-6a6455);
    font-size: 13px;
    font-weight: bold;
    text-align: center;
    padding: 6px 4px;
}

.my-lms-calendar-cell {
    background: var(--lms-bg-ffffff);
    min-height: 90px;
    padding: 6px;
}

.my-lms-calendar-cell-empty {
    background: var(--lms-bg-f5f5f5);
}

.my-lms-calendar-cell-today {
    background: var(--lms-bg-f0f6fc);
}

.my-lms-calendar-day-number {
    display: block;
    font-size: 13px;
    color: var(--lms-tx-3a3a3a);
    margin-bottom: 4px;
}

.my-lms-calendar-cell-today .my-lms-calendar-day-number {
    color: var(--lms-tx-458a45);
    font-weight: bold;
}

.my-lms-calendar-day-events {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.my-lms-calendar-event {
    background: var(--lms-bg-f0f6fc);
    border-radius: 4px;
    padding: 2px 5px;
    font-size: 12px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.my-lms-calendar-event-time {
    color: var(--lms-tx-6a6455);
    margin-right: 4px;
}

.my-lms-calendar-event-title {
    color: var(--lms-tx-3a3a3a);
}

.my-lms-calendar-list {
    margin-top: 24px;
}

.my-lms-calendar-list-item {
    padding: 12px 0;
    border-bottom: 1px solid var(--lms-bd-ececec);
}

.my-lms-calendar-list-item:last-child {
    border-bottom: none;
}

.my-lms-calendar-list-date {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
}

.my-lms-calendar-list-title {
    font-weight: bold;
    margin-top: 2px;
}

.my-lms-calendar-list-desc {
    margin-top: 4px;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-calendar-empty {
    margin-top: 20px;
    color: var(--lms-tx-6a6455);
}

.my-lms-calendar-list-join {
    margin: 8px 0 0;
}

.my-lms-calendar-list-join .my-lms-btn {
    display: inline-block;
    padding: 6px 14px;
    font-size: 13px;
}

@media (max-width: 782px) {
    .my-lms-calendar-cell {
        min-height: 60px;
        padding: 4px;
    }

    .my-lms-calendar-event {
        font-size: 11px;
    }

    .my-lms-calendar-weekday {
        font-size: 11px;
        padding: 4px 2px;
    }
}

/* Виджет "Ближайшие события" (Блок 17, [my_lms_events_widget]) — компактный
   список для вывода на главной странице или в любом другом месте сайта. */

.my-lms-events-widget {
    background: var(--lms-bg-f5f5f5);
    border-radius: 6px;
    padding: 16px 18px;
}

.my-lms-events-widget-title {
    margin: 0 0 10px;
    font-size: 16px;
}

.my-lms-events-widget-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.my-lms-events-widget-item {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-events-widget-item:last-child {
    border-bottom: none;
}

.my-lms-events-widget-date {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
    flex-basis: 100%;
}

.my-lms-events-widget-name {
    color: var(--lms-tx-3a3a3a);
    font-weight: bold;
}

.my-lms-events-widget-join {
    flex-basis: 100%;
    font-size: 13px;
    color: var(--lms-tx-5c8a5c);
}

.my-lms-events-widget-empty {
    color: var(--lms-tx-6a6455);
    margin: 0 0 10px;
}

.my-lms-events-widget-link {
    margin: 10px 0 0;
}

.my-lms-events-widget-link a {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 13px;
}

.my-lms-events-widget-link a:hover {
    color: var(--lms-tx-458a45);
}

/* Колокольчик уведомлений (Блок 18.1) — кнопка со счётчиком и выпадающая
   панель списка. Своя карточка с тенью вместо системного select/dropdown,
   с плавным появлением. Используется в шапке сайдбара обоих кабинетов
   (личный кабинет студента и кабинет преподавателя — одна и та же разметка). */

/* Плавающий контейнер (Блок 18.3-правка) — колокольчик виден на ЛЮБОЙ
   странице сайта для авторизованного пользователя, не только в личном
   кабинете. Фиксированная позиция вместо встраивания в шапку темы — сайт
   на блочной теме (правило 30), у неё нет единого header.php, куда можно
   было бы безопасно вставить свою разметку. Отступ увеличивается, если
   выведена админ-панель WordPress сверху, чтобы колокольчик не залезал под неё. */

.my-lms-notif-floating {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
}

body.admin-bar .my-lms-notif-floating {
    top: 52px;
}

@media screen and (max-width: 782px) {
    body.admin-bar .my-lms-notif-floating {
        top: 66px;
    }
}

.my-lms-notif {
    position: relative;
}

.my-lms-notif-trigger {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 50%;
    color: var(--lms-tx-6e7075);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.my-lms-notif-trigger:hover {
    background: var(--lms-bg-f0f6fc);
    color: var(--lms-tx-458a45);
    border-color: var(--lms-bd-d9dde2);
}

.my-lms-notif.is-open .my-lms-notif-trigger {
    background: var(--lms-bg-f0f6fc);
    color: var(--lms-tx-458a45);
    border-color: var(--lms-bd-d9dde2);
}

.my-lms-notif-icon {
    width: 19px;
    height: 19px;
}

.my-lms-notif-count {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    background: var(--lms-bg-e0994c);
    color: var(--lms-tx-ffffff);
    font-size: 10px;
    font-weight: bold;
    line-height: 17px;
    text-align: center;
    border-radius: 9px;
    border: 2px solid var(--lms-bd-f5f5f5);
    box-sizing: border-box;
}

.my-lms-notif-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 30;
    width: 320px;
    max-width: calc(100vw - 40px);
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 10px;
    box-shadow: 0 10px 30px var(--lms-shadow-1);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.my-lms-notif.is-open .my-lms-notif-panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.my-lms-notif-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--lms-bd-ececec);
}

.my-lms-notif-panel-title {
    font-size: 14px;
    font-weight: bold;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-notif-mark-all {
    background: none;
    border: none;
    padding: 0;
    color: var(--lms-tx-54ad54);
    font-size: 12px;
    cursor: pointer;
}

.my-lms-notif-mark-all:hover {
    color: var(--lms-tx-458a45);
    text-decoration: underline;
}

.my-lms-notif-mark-all:disabled {
    color: var(--lms-tx-d9dde2);
    cursor: default;
    text-decoration: none;
}

.my-lms-notif-list {
    max-height: 340px;
    overflow-y: auto;
}

.my-lms-notif-empty {
    margin: 0;
    padding: 24px 14px;
    text-align: center;
    color: var(--lms-tx-6a6455);
    font-size: 13px;
}

.my-lms-notif-item {
    position: relative;
    display: block;
    padding: 10px 14px 10px 24px;
    border-bottom: 1px solid var(--lms-bd-f5f5f5);
    color: var(--lms-tx-3a3a3a);
    text-decoration: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.my-lms-notif-item:focus,
.my-lms-notif-item:active {
    outline: none;
    border-bottom-color: var(--lms-bd-f5f5f5);
}

.my-lms-notif-item:last-child {
    border-bottom: none;
}

.my-lms-notif-item:hover {
    background: var(--lms-bg-f5f5f5);
}

.my-lms-notif-item.is-unread {
    background: var(--lms-bg-f0f6fc);
}

.my-lms-notif-item.is-unread:hover {
    background: var(--lms-bg-e8f1fa);
}

.my-lms-notif-item.is-unread::before {
    content: "";
    position: absolute;
    top: 16px;
    left: 10px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--lms-bg-54ad54);
}

.my-lms-notif-item-text {
    display: block;
    font-size: 13px;
    line-height: 1.4;
}

.my-lms-notif-item-time {
    display: block;
    margin-top: 3px;
    font-size: 11px;
    color: var(--lms-tx-6a6455);
}

/* =====================================================================
   Блок 20 — Аналитика (админка: Курсы → Аналитика)
   Графики — столбики на чистом CSS, без JS.
   ===================================================================== */

.my-lms-an-wrap {
    max-width: 1200px;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-an-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin: 12px 0 24px;
}

.my-lms-an-title {
    margin: 0 0 4px;
    padding: 0;
    font-size: 24px;
    font-weight: 600;
}

.my-lms-an-subtitle {
    margin: 0;
    font-size: 13px;
    color: var(--lms-tx-6e7075);
}

.my-lms-an-periods {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 2px;
    padding: 4px;
    background: var(--lms-bg-ececec);
    border-radius: 10px;
}

.my-lms-an-period {
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    color: var(--lms-tx-3a3a3a);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.my-lms-an-period:hover,
.my-lms-an-period:focus {
    color: var(--lms-tx-458a45);
    box-shadow: none;
}

.my-lms-an-period.is-active {
    background: var(--lms-bg-ffffff);
    color: var(--lms-tx-458a45);
    font-weight: 600;
    box-shadow: 0 1px 3px var(--lms-shadow-2);
}

.my-lms-an-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.my-lms-an-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 20px;
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 14px;
}

.my-lms-an-card-label {
    font-size: 13px;
    color: var(--lms-tx-6e7075);
}

.my-lms-an-card-value {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-an-delta {
    font-size: 12px;
    color: var(--lms-tx-6e7075);
}

.my-lms-an-delta.is-up {
    color: var(--lms-tx-458a45);
}

.my-lms-an-delta.is-down {
    color: var(--lms-tx-8a4b4b);
}

.my-lms-an-charts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

@media (min-width: 1100px) {
    .my-lms-an-charts {
        grid-template-columns: 1fr 1fr;
    }
}

.my-lms-an-chart {
    padding: 18px 20px 14px;
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 14px;
    min-width: 0;
}

.my-lms-an-chart-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 44px; /* место под всплывающую подсказку над столбиками */
}

.my-lms-an-chart-title {
    font-size: 14px;
    font-weight: 600;
}

.my-lms-an-chart-total {
    font-size: 13px;
    color: var(--lms-tx-6e7075);
}

.my-lms-an-chart-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 180px;
    font-size: 13px;
    color: var(--lms-tx-6e7075);
    background: var(--lms-bg-f5f5f5);
    border-radius: 10px;
}

.my-lms-an-bars {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 180px;
    border-bottom: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-an-bar-col {
    position: relative;
    display: flex;
    align-items: flex-end;
    flex: 1 1 0;
    min-width: 0;
    height: 100%;
    cursor: default;
}

.my-lms-an-bar {
    width: 100%;
    border-radius: 4px 4px 0 0;
    background: var(--lms-bg-54ad54);
    opacity: 0.85;
    transition: opacity 0.15s ease, background 0.15s ease;
}

.my-lms-an-bar-col:hover .my-lms-an-bar {
    background: var(--lms-bg-458a45);
    opacity: 1;
}

.my-lms-an-chart.is-secondary .my-lms-an-bar {
    background: var(--lms-bg-262b45);
    opacity: 0.6;
}

.my-lms-an-chart.is-secondary .my-lms-an-bar-col:hover .my-lms-an-bar {
    background: var(--lms-bg-262b45);
    opacity: 0.9;
}

/* Подсказка со значением — над областью графика, по наведению */
.my-lms-an-bar-col::after {
    content: attr(data-tip);
    position: absolute;
    top: -8px;
    left: 50%;
    z-index: 2;
    padding: 5px 9px;
    border-radius: 6px;
    background: var(--lms-bg-3a3a3a);
    color: var(--lms-tx-ffffff);
    font-size: 12px;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, -100%);
    transition: opacity 0.12s ease;
}

.my-lms-an-bar-col:hover::after {
    opacity: 1;
}

.my-lms-an-bar-labels {
    display: flex;
    gap: 3px;
    margin-top: 6px;
}

.my-lms-an-bar-labels span {
    flex: 1 1 0;
    min-width: 0;
    font-size: 11px;
    color: var(--lms-tx-6e7075);
    text-align: left;
    white-space: nowrap;
    overflow: visible;
}

.my-lms-an-note {
    max-width: 820px;
    margin-top: 20px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--lms-tx-6e7075);
}

/* Блок 20.2 — вкладки аналитики, таблицы доходов, кнопка "Скачать CSV" */

.my-lms-an-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin: 0 0 24px;
    border-bottom: 1px solid var(--lms-bd-e5e5e5);
}

.my-lms-an-tab {
    margin-bottom: -1px;
    padding: 0 2px 12px;
    border-bottom: 2px solid transparent;
    font-size: 14px;
    color: var(--lms-tx-6e7075);
    text-decoration: none;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.my-lms-an-tab:hover,
.my-lms-an-tab:focus {
    color: var(--lms-tx-3a3a3a);
    box-shadow: none;
}

.my-lms-an-tab.is-active {
    border-bottom-color: var(--lms-bd-54ad54);
    color: var(--lms-tx-3a3a3a);
    font-weight: 600;
}

.my-lms-an-card-value--small {
    font-size: 20px;
}

.my-lms-an-section {
    margin-bottom: 20px;
    padding: 18px 20px;
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 14px;
}

.my-lms-an-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.my-lms-an-section-title {
    font-size: 14px;
    font-weight: 600;
}

.my-lms-an-export {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 8px;
    background: var(--lms-bg-ffffff);
    color: var(--lms-tx-3a3a3a);
    font-size: 13px;
    text-decoration: none;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.my-lms-an-export:hover,
.my-lms-an-export:focus {
    border-color: var(--lms-bd-54ad54);
    background: var(--lms-bg-f5f5f5);
    color: var(--lms-tx-458a45);
    box-shadow: none;
}

.my-lms-an-table-scroll {
    overflow-x: auto;
}

.my-lms-an-table-scroll--tall {
    max-height: 480px;
    overflow-y: auto;
}

.my-lms-an-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.my-lms-an-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 10px 12px;
    background: var(--lms-bg-f5f5f5);
    color: var(--lms-tx-6e7075);
    font-weight: 600;
    text-align: left;
    white-space: nowrap;
}

.my-lms-an-table th:first-child {
    border-radius: 8px 0 0 8px;
}

.my-lms-an-table th:last-child {
    border-radius: 0 8px 8px 0;
}

.my-lms-an-table td {
    padding: 11px 12px;
    border-bottom: 1px solid var(--lms-bd-ececec);
    color: var(--lms-tx-3a3a3a);
    vertical-align: middle;
}

.my-lms-an-table tbody tr:hover td {
    background: var(--lms-bg-f0f6fc);
}

.my-lms-an-table tr.is-muted td {
    color: var(--lms-tx-9a9ca1);
}

.my-lms-an-table tfoot td {
    border-bottom: none;
    font-weight: 600;
}

.my-lms-an-table .is-num {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.my-lms-an-table a {
    color: var(--lms-tx-3a3a3a);
    text-decoration: none;
}

.my-lms-an-table a:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-an-tag {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--lms-bg-f0f6fc);
    color: var(--lms-tx-3a3a3a);
    font-size: 12px;
}

.my-lms-an-tag.is-bundle {
    background: var(--lms-bg-f6f2e9);
    color: var(--lms-tx-6a6455);
}

.my-lms-an-share-col {
    width: 190px;
}

.my-lms-an-share {
    display: flex;
    align-items: center;
    gap: 10px;
}

.my-lms-an-share-track {
    flex: 1 1 auto;
    height: 6px;
    border-radius: 999px;
    background: var(--lms-bg-ececec);
    overflow: hidden;
}

.my-lms-an-share-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--lms-bg-54ad54);
}

.my-lms-an-share-text {
    min-width: 44px;
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--lms-tx-6e7075);
}

/* Блок 20.3 — отчёт по курсам и воронка по урокам */

.my-lms-an-muted {
    color: var(--lms-tx-9a9ca1);
}

.my-lms-an-link-strong {
    font-weight: 600;
}

.my-lms-an-table td .my-lms-an-tag {
    margin-left: 6px;
}

.my-lms-an-rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.my-lms-an-rating svg {
    color: var(--lms-tx-e0994c);
}

.my-lms-an-tag.is-warn {
    background: var(--lms-bg-f6f2e9);
    color: var(--lms-tx-8a4b4b);
}

.my-lms-an-detail-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-bottom: 20px;
}

.my-lms-an-back {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px 6px 8px;
    border-radius: 8px;
    background: var(--lms-bg-f5f5f5);
    color: var(--lms-tx-3a3a3a);
    font-size: 13px;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.my-lms-an-back:hover,
.my-lms-an-back:focus {
    background: var(--lms-bg-ececec);
    color: var(--lms-tx-458a45);
    box-shadow: none;
}

.my-lms-an-detail-title {
    flex: 1 1 auto;
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-an-detail-link {
    font-size: 13px;
    color: var(--lms-tx-458a45);
    text-decoration: none;
}

.my-lms-an-detail-link:hover {
    text-decoration: underline;
}

.my-lms-an-funnel {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.my-lms-an-funnel-module {
    margin: 14px 0 4px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--lms-tx-6e7075);
}

.my-lms-an-funnel-module:first-child {
    margin-top: 0;
}

.my-lms-an-funnel-row {
    display: grid;
    grid-template-columns: minmax(200px, 2fr) minmax(120px, 3fr) 110px;
    align-items: center;
    gap: 16px;
    padding: 8px 10px;
    border-radius: 8px;
    transition: background 0.15s ease;
}

.my-lms-an-funnel-row:hover {
    background: var(--lms-bg-f0f6fc);
}

.my-lms-an-funnel-row.is-max-drop {
    background: var(--lms-bg-f6f2e9);
}

.my-lms-an-funnel-name {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
    min-width: 0;
    font-size: 13px;
}

.my-lms-an-funnel-num {
    flex: 0 0 auto;
    min-width: 30px;
    color: var(--lms-tx-6e7075);
    font-variant-numeric: tabular-nums;
}

.my-lms-an-funnel-title {
    min-width: 0;
    color: var(--lms-tx-3a3a3a);
}

.my-lms-an-funnel-bar {
    height: 10px;
    border-radius: 999px;
    background: var(--lms-bg-ececec);
    overflow: hidden;
}

.my-lms-an-funnel-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--lms-bg-54ad54);
}

.my-lms-an-funnel-value {
    font-size: 13px;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 782px) {
    .my-lms-an-funnel-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .my-lms-an-funnel-value {
        text-align: left;
    }
}

/* Блок 20.4 — отчёт по студентам: поиск, пагинация, карточка студента */

.my-lms-an-search {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.my-lms-an-search-icon {
    position: absolute;
    top: 50%;
    left: 12px;
    color: var(--lms-tx-9a9ca1);
    transform: translateY(-50%);
    pointer-events: none;
}

.my-lms-an-wrap .my-lms-an-search-input {
    width: 280px;
    max-width: 100%;
    min-height: 36px;
    padding: 6px 12px 6px 36px;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 8px;
    background: var(--lms-bg-ffffff);
    color: var(--lms-tx-3a3a3a);
    font-size: 13px;
    box-shadow: none;
}

.my-lms-an-wrap .my-lms-an-search-input:focus {
    border-color: var(--lms-bd-54ad54);
    outline: none;
    box-shadow: 0 0 0 3px rgba(84, 173, 84, 0.15);
}

.my-lms-an-wrap .my-lms-an-search-submit {
    min-height: 36px;
    padding: 6px 16px;
    border: none;
    border-radius: 8px;
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    font-size: 13px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.my-lms-an-wrap .my-lms-an-search-submit:hover,
.my-lms-an-wrap .my-lms-an-search-submit:focus {
    background: var(--lms-bg-458a45);
}

.my-lms-an-search-reset {
    font-size: 13px;
    color: var(--lms-tx-6e7075);
    text-decoration: none;
}

.my-lms-an-search-reset:hover {
    color: var(--lms-tx-458a45);
}

.my-lms-an-count {
    margin: 0 0 10px;
    font-size: 12px;
    color: var(--lms-tx-6e7075);
}

.my-lms-an-sub {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 400;
    color: var(--lms-tx-6e7075);
}

.my-lms-an-pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-top: 16px;
}

.my-lms-an-pager-item {
    min-width: 34px;
    padding: 6px 10px;
    border-radius: 8px;
    color: var(--lms-tx-3a3a3a);
    font-size: 13px;
    text-align: center;
    text-decoration: none;
    transition: background 0.15s ease;
}

.my-lms-an-pager-item:hover,
.my-lms-an-pager-item:focus {
    background: var(--lms-bg-f5f5f5);
    color: var(--lms-tx-458a45);
    box-shadow: none;
}

.my-lms-an-pager-item.is-active {
    background: var(--lms-bg-54ad54);
    color: var(--lms-tx-ffffff);
    font-weight: 600;
}

.my-lms-an-pager-gap {
    padding: 0 4px;
    color: var(--lms-tx-9a9ca1);
}

/* Тикет-система техподдержки (Блок 22) — переиспользует классы переписки
   сообщений (.my-lms-messages-*, .my-lms-message-bubble и т.д.), здесь
   только то, что специфично для тикетов. */

.my-lms-ticket-new-row {
    margin: 0 0 16px;
}

.my-lms-ticket-new-link {
    display: inline-block;
    text-decoration: none;
}

.my-lms-ticket-form-title {
    font-size: 16px;
    margin: 0 0 14px;
}

.my-lms-ticket-form-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-width: 420px;
    margin-bottom: 12px;
}

.my-lms-ticket-form-label {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
}

.my-lms-ticket-category-select,
.my-lms-ticket-subject-input {
    padding: 8px 10px;
    border: 1px solid var(--lms-bd-e5e5e5);
    border-radius: 4px;
    font-family: inherit;
}

.my-lms-ticket-textarea {
    max-width: 420px;
}

.my-lms-ticket-create-btn {
    margin-top: 2px;
}

/* Переписка тикета — короче и мельче, чем переписка сообщений
   (по прямому пожеланию: небольшая область со скроллом). */
.my-lms-ticket-messages-list {
    max-height: 320px;
    font-size: 13px;
}

.my-lms-ticket-message-sender {
    display: block;
    font-size: 11px;
    font-weight: bold;
    color: var(--lms-tx-6a6455);
    margin-bottom: 2px;
}

.my-lms-ticket-message-text {
    font-size: 13px;
}

.my-lms-ticket-closed-note {
    color: var(--lms-tx-6a6455);
    font-size: 13px;
}

.my-lms-ticket-status-label {
    font-weight: bold;
}

.my-lms-ticket-status-new {
    color: var(--lms-tx-6a6455);
}

.my-lms-ticket-status-in_progress {
    color: var(--lms-tx-262b45);
}

.my-lms-ticket-status-answered {
    color: var(--lms-tx-458a45);
}

.my-lms-ticket-status-closed {
    color: var(--lms-tx-9a9ca1);
}

/* Админка — страница "Тикеты" (список и детальный просмотр) */
.my-lms-ticket-admin-messages {
    max-width: 700px;
    margin-bottom: 16px;
}

#my-lms-ticket-admin-reply-message {
    margin-top: 8px;
    font-size: 13px;
}

/* Вложения к сообщениям тикета (Блок 22.4) */

.my-lms-ticket-form-hint {
    font-size: 12px;
    color: var(--lms-tx-9a9ca1);
}

.my-lms-ticket-attachment-row {
    margin: 4px 0 0;
}

.my-lms-ticket-attachment-link {
    color: var(--lms-tx-54ad54);
    text-decoration: none;
    font-size: 12px;
}

.my-lms-ticket-attachment-link:hover {
    color: var(--lms-tx-458a45);
}

/* Аккуратный вид выбора файла взамен системного "Обзор... Файл не выбран" */

.my-lms-file-picker {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.my-lms-file-picker-btn {
    display: inline-block;
    padding: 7px 14px;
    background: var(--lms-bg-f5f5f5);
    color: var(--lms-tx-3a3a3a);
    border: 1px solid var(--lms-bd-d9dde2);
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
}

.my-lms-file-picker-btn:hover {
    background: var(--lms-bg-ececec);
}

.my-lms-file-picker-name {
    font-size: 13px;
    color: var(--lms-tx-6a6455);
}

/* Вкладка "Мои устройства" (Блок 27.3) */

.my-lms-devices-hint {
    color: var(--lms-tx-6a6455);
    font-size: 13px;
    margin-bottom: 15px;
}

.my-lms-devices-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.my-lms-devices-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--lms-bd-e5e2d9);
    border-radius: 6px;
    margin-bottom: 8px;
}

.my-lms-devices-item-info {
    font-size: 14px;
    line-height: 1.5;
}

.my-lms-devices-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    background: var(--lms-bg-eef3ea);
    color: var(--lms-tx-5c8a5c);
    font-size: 11px;
    border-radius: 9px;
    vertical-align: middle;
}

.my-lms-devices-time {
    color: var(--lms-tx-8a8577);
    font-size: 13px;
}

.my-lms-devices-destroy {
    flex-shrink: 0;
    cursor: pointer;
    padding: 6px 12px;
    border: 1px solid var(--lms-bd-d9a5a5);
    border-radius: 4px;
    color: var(--lms-tx-a45c5c);
    font-size: 13px;
    white-space: nowrap;
}

.my-lms-devices-destroy:hover {
    background: var(--lms-bg-f7ecec);
}

/* Блок 29.1 — страница автовебинара */

body.single-lms_webinar .container2 {
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.my-lms-webinar-card {
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e3e6e8);
    border-radius: 14px;
    padding: 28px;
    box-shadow: 0 2px 10px var(--lms-shadow-3);
}

.my-lms-webinar-title {
    margin: 0 0 8px;
    font-size: 26px;
    line-height: 1.25;
    color: var(--lms-tx-2f3437);
}

.my-lms-webinar-meta {
    margin: 0 0 14px;
    font-size: 14px;
    color: var(--lms-tx-6b7378);
}

.my-lms-webinar-description {
    margin: 0 0 18px;
    color: var(--lms-tx-3c4347);
    line-height: 1.6;
}

.my-lms-webinar-status {
    padding: 14px 16px;
    border-radius: 10px;
    background: var(--lms-bg-f1f4f6);
    color: var(--lms-tx-5a6469);
    font-size: 15px;
}

.my-lms-webinar-preview {
    margin-top: 20px;
}

.my-lms-webinar-video {
    width: 100%;
    border-radius: 10px;
    background: var(--lms-bg-2f3437);
}

/* Убираем рамки фокуса у всех элементов сайта (кнопки, ссылки, поля форм,
   вкладки и т.п.) — затемнения фона при клике/наведении достаточно. */

*:focus,
*:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Блок 29.1 (доп.) — карточка вебинара внутри урока/страницы */

.my-lms-webinar-inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 18px 0;
    padding: 16px 18px;
    border: 1px solid var(--lms-bd-e3e6e8);
    border-radius: 12px;
    background: var(--lms-bg-f6f8f9);
}

.my-lms-webinar-inline-label {
    font-size: 12px;
    color: var(--lms-tx-7a8489);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
}

.my-lms-webinar-inline-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--lms-tx-2f3437);
}

.my-lms-webinar-inline-link {
    display: inline-block;
    text-decoration: none;
    white-space: nowrap;
}

@media (max-width: 782px) {
    .my-lms-webinar-inline {
        flex-direction: column;
        align-items: flex-start;
    }
}

.my-lms-webinar-inline-note {
    margin-top: 4px;
    font-size: 13px;
    color: var(--lms-tx-7a8489);
}

.my-lms-webinar-inline-locked {
    background: var(--lms-bg-f1f3f4);
}

/* Блок 29.3 — плеер автовебинара */

.my-lms-webinar-player [hidden] {
    display: none !important;
}

.my-lms-wp-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    min-height: 320px;
    padding: 32px 20px;
    border-radius: 14px;
    background: linear-gradient(160deg, var(--lms-bg-f4f6f7) 0%, var(--lms-bg-e9eef0) 100%);
    border: 1px solid var(--lms-bd-e3e6e8);
}

.my-lms-wp-label {
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--lms-tx-7a8489);
}

.my-lms-wp-title {
    font-size: 22px;
    font-weight: 600;
    color: var(--lms-tx-2f3437);
    line-height: 1.3;
}

.my-lms-wp-sub {
    font-size: 14px;
    color: var(--lms-tx-6b7378);
    max-width: 520px;
    line-height: 1.5;
}

.my-lms-wp-timer {
    font-size: 44px;
    font-weight: 600;
    color: var(--lms-tx-3d474c);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.my-lms-wp-next {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
}

.my-lms-wp-panel .my-lms-btn {
    display: inline-block;
    padding: 12px 26px;
    font-size: 15px;
    border-radius: 10px;
    text-align: center;
    text-decoration: none;
    user-select: none;
    margin-top: 6px;
}

.my-lms-wp-music {
    background: var(--lms-bg-6c8a9a);
}

.my-lms-wp-music:hover {
    background: var(--lms-bg-5d7a89);
}

.my-lms-wp-end-link {
    font-size: 16px !important;
    padding: 14px 32px !important;
}

.my-lms-wp-stage {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--lms-bg-23292c);
    border-radius: 14px;
    overflow: hidden;
}

.my-lms-wp-stage:fullscreen {
    border-radius: 0;
    aspect-ratio: auto;
}

.my-lms-wp-video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    background: var(--lms-bg-23292c);
    pointer-events: none;
}

.my-lms-wp-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 4px 12px 4px 22px;
    border-radius: 999px;
    background: rgba(35, 41, 44, 0.65);
    color: var(--lms-tx-e8eef0);
    font-size: 12px;
    letter-spacing: 0.04em;
}

.my-lms-wp-badge::before {
    content: "";
    position: absolute;
    left: 9px;
    top: 50%;
    width: 7px;
    height: 7px;
    margin-top: -3.5px;
    border-radius: 50%;
    background: var(--lms-bg-7fb08a);
}

.my-lms-wp-bar {
    position: absolute;
    right: 12px;
    bottom: 12px;
    display: flex;
    gap: 8px;
}

.my-lms-wp-ctl {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(35, 41, 44, 0.65);
    color: var(--lms-tx-e8eef0);
    cursor: pointer;
    user-select: none;
}

.my-lms-wp-ctl:hover {
    background: rgba(35, 41, 44, 0.85);
}

.my-lms-wp-stage.is-muted .my-lms-wp-wave {
    display: none;
}

.my-lms-wp-resume {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(35, 41, 44, 0.72);
}

@media (max-width: 782px) {
    .my-lms-wp-panel {
        min-height: 260px;
    }

    .my-lms-wp-timer {
        font-size: 34px;
    }

    .my-lms-wp-title {
        font-size: 19px;
    }
}

/* Блок 29.4 — чат автовебинара */

.my-lms-wp-live {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.my-lms-wp-live .my-lms-wp-stage {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}

.my-lms-wp-chat {
    position: relative;
    flex: 0 0 320px;
    align-self: stretch;
    min-height: 260px;
    border: 1px solid var(--lms-bd-e3e6e8);
    border-radius: 14px;
    background: var(--lms-bg-f7f9fa);
    overflow: hidden;
}

.my-lms-wp-chat-inner {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
}

.my-lms-wp-chat-head {
    padding: 12px 14px;
    font-size: 14px;
    font-weight: 600;
    color: var(--lms-tx-3d474c);
    border-bottom: 1px solid var(--lms-bd-e3e6e8);
    background: var(--lms-bg-ffffff);
}

.my-lms-wp-chat-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.my-lms-wp-msg {
    font-size: 14px;
    line-height: 1.4;
    color: var(--lms-tx-3c4347);
    word-wrap: break-word;
    overflow-wrap: anywhere;
}

.my-lms-wp-msg-name {
    font-weight: 600;
    color: var(--lms-tx-5a7a88);
    margin-right: 6px;
}

.my-lms-wp-msg.is-own .my-lms-wp-msg-name {
    color: var(--lms-tx-5f8f6b);
}

.my-lms-wp-chat-form {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px;
    border-top: 1px solid var(--lms-bd-e3e6e8);
    background: var(--lms-bg-ffffff);
}

.my-lms-wp-chat-input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 9px 12px;
    border: 1px solid var(--lms-bd-d9dee1);
    border-radius: 10px;
    font-size: 14px;
    background: var(--lms-bg-ffffff);
    color: var(--lms-tx-2f3437);
}

.my-lms-wp-chat-send {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 10px;
    background: var(--lms-bg-6c8a9a);
    color: var(--lms-tx-ffffff);
    cursor: pointer;
    user-select: none;
}

.my-lms-wp-chat-send:hover {
    background: var(--lms-bg-5d7a89);
}

@media (max-width: 782px) {
    .my-lms-wp-live {
        flex-direction: column;
        align-items: stretch;
    }

    .my-lms-wp-chat {
        flex: 0 0 auto;
        height: 340px;
    }
}

/* Блок 29.5 — ссылки под видео */

.my-lms-wp-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.my-lms-wp-links:empty {
    display: none;
}

.my-lms-wp-link {
    display: inline-block;
    padding: 12px 24px;
    font-size: 15px;
    border-radius: 10px;
    text-decoration: none;
    animation: my-lms-wp-link-in 0.4s ease;
}

@keyframes my-lms-wp-link-in {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

/* ---- Email-шаблоны (Блок 19.1, админка: Курсы → Email-шаблоны) ---- */

.my-lms-et {
    max-width: 860px;
    margin: 20px 0;
}

.my-lms-et-title {
    font-size: 24px;
    font-weight: 600;
    color: var(--lms-tx-2f3a2f);
    margin-bottom: 8px;
}

.my-lms-et-lead {
    color: var(--lms-tx-6b746b);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 20px;
}

.my-lms-et-notice {
    background: var(--lms-bg-eef5ee);
    border: 1px solid var(--lms-bd-d3e4d3);
    color: var(--lms-tx-3d6b3d);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: 14px;
}

.my-lms-et-card {
    background: var(--lms-bg-ffffff);
    border: 1px solid var(--lms-bd-e3e8e3);
    border-radius: 14px;
    margin-bottom: 12px;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}

.my-lms-et-card[open] {
    box-shadow: 0 4px 18px var(--lms-shadow-4);
}

.my-lms-et-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    cursor: pointer;
    list-style: none;
}

.my-lms-et-summary::-webkit-details-marker {
    display: none;
}

.my-lms-et-summary-main {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.my-lms-et-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--lms-tx-2f3a2f);
}

.my-lms-et-recipient {
    font-size: 13px;
    color: var(--lms-tx-7c857c);
}

.my-lms-et-pill {
    flex-shrink: 0;
    font-size: 12px;
    padding: 4px 12px;
    border-radius: 999px;
}

.my-lms-et-pill.is-on {
    background: var(--lms-bg-e6f1e6);
    color: var(--lms-tx-3d6b3d);
}

.my-lms-et-pill.is-off {
    background: var(--lms-bg-eeeeec);
    color: var(--lms-tx-7c7c78);
}

.my-lms-et-form {
    padding: 4px 20px 20px;
    border-top: 1px solid var(--lms-bd-edf0ed);
}

.my-lms-et-switch {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 16px 0 4px;
    font-size: 14px;
    color: var(--lms-tx-2f3a2f);
}

.my-lms-et-label {
    display: block;
    margin: 16px 0 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--lms-tx-566056);
}

.my-lms-et-input {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--lms-bd-d9dfd9);
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.5;
    background: var(--lms-bg-fbfcfb);
    color: var(--lms-tx-2f3a2f);
}

.my-lms-et-input:focus {
    border-color: var(--lms-bd-54ad54);
    box-shadow: 0 0 0 3px rgba(84, 173, 84, 0.15);
    background: var(--lms-bg-ffffff);
}

.my-lms-et-input-short {
    max-width: 320px;
}

.my-lms-et-body {
    resize: vertical;
    min-height: 160px;
}

.my-lms-et-placeholders {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
}

.my-lms-et-ph-title {
    font-size: 12px;
    color: var(--lms-tx-7c857c);
    margin-right: 4px;
}

.my-lms-et-ph {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--lms-bg-eef2ee);
    color: var(--lms-tx-4a5a4a);
    font-family: Consolas, Menlo, monospace;
    font-size: 12px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.my-lms-et-ph:hover {
    background: var(--lms-bg-dfe9df);
}

.my-lms-et-ph-list {
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
    font-size: 12px;
    color: var(--lms-tx-7c857c);
    line-height: 1.7;
}

.my-lms-et-hint {
    margin: 6px 0 0;
    font-size: 12px;
    color: var(--lms-tx-7c857c);
}

.my-lms-et-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.my-lms-et-btn {
    display: inline-block;
    padding: 9px 18px;
    border: 1px solid var(--lms-bd-d3dad3);
    border-radius: 10px;
    background: var(--lms-bg-f4f7f4);
    color: var(--lms-tx-3d4d3d);
    font-size: 13px;
    line-height: 1.4;
    cursor: pointer;
    transition: background 0.15s ease;
}

.my-lms-et-btn:hover {
    background: var(--lms-bg-e8eee8);
}

.my-lms-et-btn.is-primary {
    background: var(--lms-bg-54ad54);
    border-color: var(--lms-bd-54ad54);
    color: var(--lms-tx-ffffff);
}

.my-lms-et-btn.is-primary:hover {
    background: var(--lms-bg-458a45);
}

.my-lms-et-btn.is-ghost {
    background: transparent;
    color: var(--lms-tx-7c857c);
}

.my-lms-et-btn.is-armed {
    background: var(--lms-bg-f3ede0);
    border-color: var(--lms-bd-e0d3b5);
    color: var(--lms-tx-7a6432);
}

.my-lms-et-test-result {
    margin: 12px 0 0;
    font-size: 13px;
    min-height: 1em;
}

@media (max-width: 782px) {
    .my-lms-et-summary {
        padding: 14px 16px;
    }

    .my-lms-et-form {
        padding: 4px 16px 16px;
    }
}

/* Email-шаблоны (Блок 19.1b): общее оформление, картинки, свой HTML */

.my-lms-et-design-preview {
    margin: 8px 0 12px;
    border: 1px solid var(--lms-bd-e3e8e3);
    border-radius: 10px;
    overflow: hidden;
    max-width: 480px;
    background: var(--lms-bg-f4f7f4);
}

.my-lms-et-design-preview img {
    display: block;
    width: 100%;
    height: auto;
}

.my-lms-et-colors {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 8px;
}

.my-lms-et-color input[type="color"] {
    width: 64px;
    height: 36px;
    padding: 2px;
    border: 1px solid var(--lms-bd-d9dfd9);
    border-radius: 8px;
    background: var(--lms-bg-fbfcfb);
    cursor: pointer;
}

.my-lms-et-toolbar {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}

/* Email-шаблоны (Блок 19.4): журнал отправок */

.my-lms-et-log-wrap {
    overflow-x: auto;
    margin-top: 14px;
}

.my-lms-et-log {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    color: var(--lms-tx-3d4d3d);
}

.my-lms-et-log th {
    text-align: left;
    font-weight: 600;
    color: var(--lms-tx-566056);
    padding: 8px 10px;
    border-bottom: 1px solid var(--lms-bd-e3e8e3);
    white-space: nowrap;
}

.my-lms-et-log td {
    padding: 9px 10px;
    border-bottom: 1px solid var(--lms-bd-f0f3f0);
    vertical-align: top;
}

.my-lms-et-log-error {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--lms-tx-8a4b4b);
}

/* Плашка "Сертификат по окончании курса" в шапке промостраницы курса */

.my-lms-course-hero-cert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 4px;
    padding: 6px 14px 6px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--lms-tx-e4ebe4);
    font-size: 14px;
    line-height: 1.3;
}

.my-lms-course-hero-cert-icon {
    flex-shrink: 0;
    color: var(--lms-tx-a9d4a9);
}

/* Рассылка "Предложение курсов" (Блок 19.5) */

.my-lms-et-card.is-static {
    box-shadow: 0 4px 18px var(--lms-shadow-5);
}

.my-lms-mailing-courses {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 8px;
    margin: 8px 0 4px;
}

.my-lms-mailing-course {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid var(--lms-bd-e3e8e3);
    border-radius: 10px;
    background: var(--lms-bg-fbfcfb);
    font-size: 13px;
    color: var(--lms-tx-2f3a2f);
    cursor: pointer;
}

.my-lms-mailing-course:hover {
    background: var(--lms-bg-f1f6f1);
}

.my-lms-mailing select.my-lms-et-input {
    margin-top: 6px;
}

.my-lms-mailing.is-busy .my-lms-et-btn {
    opacity: 0.55;
    pointer-events: none;
}

.my-lms-mailing-progress {
    margin-top: 16px;
}

.my-lms-mailing-progress-bar {
    height: 8px;
    border-radius: 999px;
    background: var(--lms-bg-e8eee8);
    overflow: hidden;
}

.my-lms-mailing-progress-fill {
    display: block;
    height: 100%;
    width: 0;
    background: var(--lms-bg-54ad54);
    transition: width 0.3s ease;
}

.my-lms-et-subtitle {
    font-size: 18px;
    font-weight: 600;
    color: var(--lms-tx-2f3a2f);
    margin: 32px 0 8px;
}

/* Блок 34.3: переключатель темы — небольшой свитч. Создаётся в script.js как div (не button)
   и встаёт в шапку сайта, в конец меню. Если меню в шапке не найдено — плавает
   в правом верхнем углу (класс is-floating). */
.my-lms-theme-switch-item {
    display: flex;
    align-items: center;
    margin: 0 0 0 12px;
    padding: 0;
    list-style: none;
}

.my-lms-theme-switch {
    position: relative;
    box-sizing: border-box;
    display: block;
    flex: 0 0 auto;
    width: 46px;
    height: 26px;
    min-height: 0;
    margin: 0;
    padding: 0;
    background: var(--lms-switch-track);
    border: 1px solid var(--lms-switch-border);
    border-radius: 999px;
    box-shadow: none;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.my-lms-theme-switch.is-floating {
    position: fixed !important;
    top: 20px;
    right: 20px;
    z-index: 2147483000;
}

body.admin-bar .my-lms-theme-switch.is-floating {
    top: 52px;
}

@media screen and (max-width: 782px) {
    body.admin-bar .my-lms-theme-switch.is-floating {
        top: 66px;
    }
}

.my-lms-theme-switch:hover {
    border-color: var(--lms-bd-54ad54);
}

.my-lms-theme-switch-knob {
    position: absolute;
    top: 2px;
    left: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    background: var(--lms-switch-knob);
    border-radius: 50%;
    box-shadow: 0 1px 3px var(--lms-shadow-2);
    color: var(--lms-switch-icon);
    transition: transform 0.2s ease, background 0.2s ease;
}

html[data-lms-theme="dark"] .my-lms-theme-switch-knob {
    transform: translateX(20px);
}

.my-lms-theme-switch-knob svg {
    display: block;
    width: 12px;
    height: 12px;
}

.my-lms-theme-switch .my-lms-theme-icon-sun {
    display: none;
}

html[data-lms-theme="dark"] .my-lms-theme-switch .my-lms-theme-icon-sun {
    display: block;
}

html[data-lms-theme="dark"] .my-lms-theme-switch .my-lms-theme-icon-moon {
    display: none;
}

/* Блок 34.4: мобильное бургер-меню блочной темы WordPress в тёмной теме.
   Тема красит открытое меню сама (белым), поэтому перебиваем цвета явно. */
html[data-lms-theme="dark"] .wp-block-navigation__responsive-container.is-menu-open {
    background-color: var(--lms-page-bg) !important;
    color: var(--lms-page-tx) !important;
}

html[data-lms-theme="dark"] .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
html[data-lms-theme="dark"] .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label,
html[data-lms-theme="dark"] .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close,
html[data-lms-theme="dark"] .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
    color: var(--lms-page-tx) !important;
}

html[data-lms-theme="dark"] .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    background-color: var(--lms-bg-ffffff) !important;
    border-color: var(--lms-bd-e5e5e5) !important;
}
