/* ============================================================
   SLOVO LMS — стили кабинетов (v2.38, после чистки)
   ============================================================
   Изменения относительно v2.37:
     • Префиксы "html body.slovo-lms-body" заменены на
       "body.slovo-lms-body" (TT5 не активна, !important-костыли
       для неё больше не нужны).
     • Убраны лишние !important там, где они были нужны только
       для борьбы с чужой темой.
     • ВОССТАНОВЛЕНЫ утерянные правила для:
         - .slovo-lms-class-card-v2 (+ модификаторы)
         - .slovo-lms-classes-grid
       (блок v2.25 расширен и стоит в правильном месте).
     • Добавлены отсутствовавшие правила для:
         - .slovo-lms-hw-layout и всех .slovo-lms-hw-* (из v16)
         - .slovo-lms-hw-link-card (блок ДЗ в классе)
         - .slovo-lms-course-lesson-status-icon (из v16)
         - .slovo-lms-status-badge (дубликат убран)
         - .slovo-lms-class-dates-badge (расширено)
     • Все остальные блоки (v2.22 → v2.37) сохранены
       с сохранением порядка.
   ============================================================ */


/* ============================================================
   v2.22 — КАБИНЕТ УЧИТЕЛЯ — СВОДКА
   ============================================================ */

body.slovo-lms-body .slovo-lms-summary-section {
    margin-bottom: 20px;
}

body.slovo-lms-body .slovo-lms-summary-section h2 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 700;
    color: #23282d;
}

body.slovo-lms-body .slovo-lms-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

body.slovo-lms-body .slovo-lms-summary-card {
    background: #fff;
    border-radius: 10px;
    padding: 16px 18px;
    border-left: 4px solid #007cba;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: box-shadow 0.15s, transform 0.15s;
}

body.slovo-lms-body .slovo-lms-summary-card:hover {
    box-shadow: 0 4px 14px rgba(0,0,0,0.08);
    transform: translateY(-1px);
}

body.slovo-lms-body .slovo-lms-summary-icon {
    font-size: 22px;
    line-height: 1;
    margin-bottom: 4px;
}

body.slovo-lms-body .slovo-lms-summary-value {
    font-size: 26px;
    font-weight: 700;
    color: #23282d;
    line-height: 1;
}

body.slovo-lms-body .slovo-lms-summary-label {
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

body.slovo-lms-body .slovo-lms-quick-actions-section {
    margin-bottom: 20px;
}

body.slovo-lms-body .slovo-lms-quick-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-quick-actions .slovo-lms-btn {
    text-decoration: none;
}


/* ============================================================
   v2.22 — КАБИНЕТ УЧИТЕЛЯ — КУРСЫ
   ============================================================ */

body.slovo-lms-body .slovo-lms-teacher-courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
    margin-top: 15px;
}

body.slovo-lms-body .slovo-lms-teacher-course-card {
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}

body.slovo-lms-body .slovo-lms-teacher-course-card:hover {
    box-shadow: 0 4px 14px rgba(0,0,0,0.08);
    border-color: #b8d4e8;
    transform: translateY(-1px);
}

body.slovo-lms-body .slovo-lms-teacher-course-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-teacher-course-title {
    font-weight: 700;
    font-size: 15px;
    color: #23282d;
    line-height: 1.3;
    flex: 1;
    min-width: 0;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-teacher-course-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 12px;
    color: #4a5568;
    padding: 8px 0;
    border-top: 1px solid #f0f4f8;
    border-bottom: 1px solid #f0f4f8;
}

body.slovo-lms-body .slovo-lms-teacher-course-stats span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 500;
}

body.slovo-lms-body .slovo-lms-teacher-course-classes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    min-height: 24px;
}

body.slovo-lms-body .slovo-lms-course-class-chip {
    display: inline-block;
    padding: 2px 8px;
    background: #eef7fd;
    color: #007cba;
    font-size: 11px;
    font-weight: 500;
    border-radius: 10px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-teacher-course-actions {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: auto;
    padding-top: 10px;
}

body.slovo-lms-body .slovo-lms-btn-small {
    padding: 6px 12px;
    font-size: 13px;
}


/* ============================================================
   v2.22 — КАБИНЕТ УЧИТЕЛЯ — МАТРИЦА ПРОГРЕССА
   ============================================================ */

body.slovo-lms-body .slovo-lms-matrix-wrap {
    margin-top: 15px;
    overflow-x: auto;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    background: #fff;
}

body.slovo-lms-body .slovo-lms-matrix {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 600px;
}

body.slovo-lms-body .slovo-lms-matrix thead {
    background: #f8fafc;
}

body.slovo-lms-body .slovo-lms-matrix th {
    padding: 12px 10px;
    text-align: center;
    border-bottom: 2px solid #e0e6ed;
    font-weight: 600;
    color: #4a5568;
    vertical-align: top;
    white-space: nowrap;
    font-size: 12px;
}

body.slovo-lms-body .slovo-lms-matrix td {
    padding: 10px;
    text-align: center;
    border-bottom: 1px solid #eef2f5;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-matrix tr:last-child td {
    border-bottom: none;
}

body.slovo-lms-body .slovo-lms-matrix-student-col {
    text-align: left;
    min-width: 220px;
    background: #fafbfc;
    position: sticky;
    left: 0;
    z-index: 1;
}

body.slovo-lms-body .slovo-lms-matrix-student-col .slovo-lms-progress-student {
    display: flex;
    align-items: center;
    gap: 10px;
}

body.slovo-lms-body .slovo-lms-matrix-done {
    background: #eefaf0;
    color: #1e7e34;
    font-weight: 700;
}

body.slovo-lms-body .slovo-lms-matrix-progress {
    background: #fff8e5;
    color: #b57300;
    font-weight: 700;
}

body.slovo-lms-body .slovo-lms-matrix-na {
    background: #fafbfc;
    color: #d0d8e0;
}

body.slovo-lms-body .slovo-lms-matrix-empty {
    background: #fafbfc;
    color: #b8c4d0;
    font-weight: 500;
}


/* ============================================================
   v2.22 — КАБИНЕТ УЧИТЕЛЯ — АКТИВНОСТЬ
   ============================================================ */

body.slovo-lms-body .slovo-lms-activity-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 15px;
}

body.slovo-lms-body .slovo-lms-activity-item {
    display: grid;
    grid-template-columns: 220px 1fr 80px 110px;
    gap: 14px;
    align-items: center;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    font-size: 13px;
    transition: background 0.15s, border-color 0.15s;
}

body.slovo-lms-body .slovo-lms-activity-item:hover {
    background: #f8fafc;
    border-color: #b8d4e8;
}

body.slovo-lms-body .slovo-lms-activity-student {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

body.slovo-lms-body .slovo-lms-student-avatar-small {
    width: 28px;
    height: 28px;
    font-size: 12px;
}

body.slovo-lms-body .slovo-lms-activity-student-name {
    font-weight: 600;
    color: #23282d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 13px;
}

body.slovo-lms-body .slovo-lms-activity-what {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    min-width: 0;
    color: #4a5568;
}

body.slovo-lms-body .slovo-lms-activity-course {
    font-weight: 500;
    color: #007cba;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}

body.slovo-lms-body .slovo-lms-activity-lesson {
    color: #6b7280;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

body.slovo-lms-body .slovo-lms-activity-sep {
    color: #b8c4d0;
    font-size: 12px;
}

body.slovo-lms-body .slovo-lms-activity-title {
    font-weight: 500;
    color: #23282d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 260px;
}

body.slovo-lms-body .slovo-lms-activity-result {
    text-align: center;
}

body.slovo-lms-body .slovo-lms-activity-percent {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-activity-percent-ok {
    background: #eefaf0;
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-activity-percent-warn {
    background: #fff8e5;
    color: #b57300;
}

body.slovo-lms-body .slovo-lms-activity-when {
    text-align: right;
    color: #6b7280;
    font-size: 12px;
    white-space: nowrap;
}


/* ============================================================
   v2.22 — UI УЧЕНИКА — СПИСОК КУРСОВ (старое, не используется)
   ============================================================ */

body.slovo-lms-body .slovo-lms-student-courses-section {
    margin-bottom: 20px;
}

body.slovo-lms-body .slovo-lms-student-courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    margin-top: 15px;
}

body.slovo-lms-body .slovo-lms-student-course-card {
    display: block;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 18px 20px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}

body.slovo-lms-body .slovo-lms-student-course-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    border-color: #b8d4e8;
    transform: translateY(-2px);
    color: inherit;
}

body.slovo-lms-body .slovo-lms-student-course-card.is-done {
    border-color: #b8e0c0;
    background: linear-gradient(180deg, #f6fdf7 0%, #ffffff 100%);
}

body.slovo-lms-body .slovo-lms-student-course-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

body.slovo-lms-body .slovo-lms-student-course-icon {
    font-size: 28px;
    line-height: 1;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-student-course-title {
    font-weight: 700;
    font-size: 16px;
    color: #23282d;
    line-height: 1.3;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-student-course-desc {
    font-size: 13px;
    color: #6b7280;
    line-height: 1.5;
    margin-bottom: 12px;
}

body.slovo-lms-body .slovo-lms-student-course-stats {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: #4a5568;
    margin-bottom: 10px;
}

body.slovo-lms-body .slovo-lms-student-course-percent {
    font-weight: 700;
    color: #b57300;
}

body.slovo-lms-body .slovo-lms-student-course-percent.is-done {
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-student-course-progress-bar {
    height: 6px;
    background: #eef2f5;
    border-radius: 3px;
    overflow: hidden;
}

body.slovo-lms-body .slovo-lms-student-course-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #007cba 0%, #4a90e2 100%);
    border-radius: 3px;
    transition: width 0.3s;
}

body.slovo-lms-body .slovo-lms-student-course-card.is-done .slovo-lms-student-course-progress-fill {
    background: linear-gradient(90deg, #28a745 0%, #4caf50 100%);
}


/* ============================================================
   v2.22 — UI УЧЕНИКА — ОБЗОР КУРСА И ОБЗОР УРОКА
   ============================================================ */

body.slovo-lms-body .slovo-lms-course-overview,
body.slovo-lms-body .slovo-lms-lesson-overview {
    display: block;
}

body.slovo-lms-body .slovo-lms-course-tree-header,
body.slovo-lms-body .slovo-lms-lesson-steps-header {
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eef2f5;
}

body.slovo-lms-body .slovo-lms-course-tree-title,
body.slovo-lms-body .slovo-lms-lesson-steps-title {
    margin: 0 0 12px 0;
    font-size: 26px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.25;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-course-badge-seq {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
    background: #fff8e5;
    color: #b57300;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    vertical-align: middle;
}

body.slovo-lms-body .slovo-lms-course-tree-desc,
body.slovo-lms-body .slovo-lms-lesson-steps-desc {
    color: #4a5568;
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 18px;
    max-width: 900px;
}

body.slovo-lms-body .slovo-lms-course-progress,
body.slovo-lms-body .slovo-lms-lesson-progress {
    max-width: 700px;
    margin-bottom: 20px;
}

body.slovo-lms-body .slovo-lms-course-progress-label,
body.slovo-lms-body .slovo-lms-lesson-progress-label {
    font-size: 13px;
    color: #6b7280;
    margin-bottom: 8px;
    font-weight: 500;
}

body.slovo-lms-body .slovo-lms-course-progress-bar,
body.slovo-lms-body .slovo-lms-lesson-progress-bar {
    height: 10px;
    background: #eef2f5;
    border-radius: 5px;
    overflow: hidden;
}

body.slovo-lms-body .slovo-lms-course-progress-fill,
body.slovo-lms-body .slovo-lms-lesson-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #007cba 0%, #4a90e2 100%);
    border-radius: 5px;
    transition: width 0.3s;
}

body.slovo-lms-body .slovo-lms-course-actions {
    margin-top: 20px;
    margin-bottom: 5px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-btn-large {
    padding: 14px 32px;
    font-size: 16px;
    border-radius: 10px;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(0,124,186,0.25);
    transition: all 0.2s;
}

body.slovo-lms-body .slovo-lms-btn-large:hover {
    box-shadow: 0 4px 14px rgba(0,124,186,0.35);
    transform: translateY(-1px);
}

/* Обзор курса — разделы и уроки */
body.slovo-lms-body .slovo-lms-course-sections {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 10px;
}

body.slovo-lms-body .slovo-lms-course-section-block {
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}

body.slovo-lms-body .slovo-lms-course-section-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    background: #f8fafc;
    border-bottom: 1px solid #e0e6ed;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-course-section-icon {
    font-size: 20px;
    flex-shrink: 0;
    line-height: 1;
}

body.slovo-lms-body .slovo-lms-course-section-title {
    font-weight: 700;
    font-size: 16px;
    color: #23282d;
    flex: 1;
    min-width: 100px;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-course-section-count {
    font-size: 12px;
    color: #6b7280;
    background: #eef2f7;
    padding: 3px 10px;
    border-radius: 10px;
    white-space: nowrap;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-course-section-lessons {
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.slovo-lms-body .slovo-lms-course-lesson-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    background: #fafbfc;
    border: 1px solid #eef2f5;
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    transition: all 0.15s;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-course-lesson-card:hover {
    background: #f0f7fd;
    border-color: #b8d4e8;
    color: inherit;
    transform: translateX(2px);
}

body.slovo-lms-body .slovo-lms-course-lesson-card.is-done {
    background: #f6fdf7;
    border-color: #b8e0c0;
}

body.slovo-lms-body .slovo-lms-course-lesson-card.is-locked {
    background: #f5f5f5;
    border-color: #e0e0e0;
    opacity: 0.7;
    cursor: not-allowed;
}

body.slovo-lms-body .slovo-lms-course-lesson-card.is-locked:hover {
    transform: none;
    background: #f5f5f5;
    border-color: #e0e0e0;
}

body.slovo-lms-body .slovo-lms-course-lesson-icon {
    font-size: 24px;
    flex-shrink: 0;
    line-height: 1;
    width: 32px;
    text-align: center;
}

body.slovo-lms-body .slovo-lms-course-lesson-info {
    flex: 1;
    min-width: 150px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

body.slovo-lms-body .slovo-lms-course-lesson-title {
    font-weight: 600;
    font-size: 15px;
    color: #23282d;
    line-height: 1.3;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-course-lesson-card.is-locked .slovo-lms-course-lesson-title {
    color: #9ca3af;
}

body.slovo-lms-body .slovo-lms-course-lesson-meta {
    font-size: 12px;
    color: #6b7280;
    font-weight: 500;
}

body.slovo-lms-body .slovo-lms-course-lesson-result {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 80px;
    text-align: right;
}

body.slovo-lms-body .slovo-lms-course-lesson-start {
    color: #007cba;
}


/* ============================================================
   v2.22 — UI УЧЕНИКА — СПИСОК ЭТАПОВ УРОКА
   ============================================================ */

body.slovo-lms-body .slovo-lms-steps-list {
    list-style: none;
    padding: 0;
    margin: 15px 0 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.slovo-lms-body .slovo-lms-step-item {
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}

body.slovo-lms-body .slovo-lms-step-item:hover {
    box-shadow: 0 3px 12px rgba(0,0,0,0.06);
    border-color: #b8d4e8;
    transform: translateY(-1px);
}

body.slovo-lms-body .slovo-lms-step-item.is-done {
    border-color: #b8e0c0;
    background: #f6fdf7;
}

body.slovo-lms-body .slovo-lms-step-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    color: inherit;
    text-decoration: none;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-step-link:hover {
    color: inherit;
}

body.slovo-lms-body .slovo-lms-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: #eef7fd;
    color: #007cba;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-step-item.is-done .slovo-lms-step-num {
    background: #eefaf0;
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-step-icon {
    font-size: 20px;
    flex-shrink: 0;
    line-height: 1;
}

body.slovo-lms-body .slovo-lms-step-info {
    flex: 1;
    min-width: 150px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

body.slovo-lms-body .slovo-lms-step-title {
    font-weight: 600;
    font-size: 14px;
    color: #23282d;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-step-type {
    font-size: 12px;
    color: #6b7280;
}

body.slovo-lms-body .slovo-lms-step-result {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-step-done { color: #1e7e34; }
body.slovo-lms-body .slovo-lms-step-progress { color: #b57300; }
body.slovo-lms-body .slovo-lms-step-new { color: #007cba; }


/* ============================================================
   v2.22 — ЭКРАН ПРОХОЖДЕНИЯ ЭТАПА — 2-КОЛОНОЧНЫЙ LAYOUT
   ============================================================ */

body.slovo-lms-body .slovo-lms-step-layout {
    display: flex;
    align-items: stretch;
    gap: 0;
    position: relative;
    margin: 0;
    padding: 0;
    min-height: 70vh;
}

body.slovo-lms-body .slovo-lms-dashboard .slovo-lms-step-layout {
    margin: 0 -20px;
}

/* ============ SIDEBAR ============ */

body.slovo-lms-body .slovo-lms-step-sidebar {
    width: 25%;
    min-width: 220px;
    max-width: 500px;
    flex-shrink: 0;
    background: #f8fafc;
    border-right: 1px solid #e0e6ed;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: width 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
    overflow: hidden;
}

body.slovo-lms-body .slovo-lms-step-sidebar.is-collapsed {
    width: 0;
    min-width: 0;
    opacity: 0;
    pointer-events: none;
    border-right: none;
}

body.slovo-lms-body .slovo-lms-step-sidebar-header {
    padding: 14px 16px;
    border-bottom: 1px solid #e0e6ed;
    background: #fff;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-step-sidebar-course {
    font-size: 13px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
    margin-bottom: 4px;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-step-sidebar-lesson {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.3;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-step-sidebar-body {
    flex: 1;
    overflow-y: auto;
    padding: 10px 0;
}

body.slovo-lms-body .slovo-lms-step-sidebar-body::-webkit-scrollbar {
    width: 6px;
}
body.slovo-lms-body .slovo-lms-step-sidebar-body::-webkit-scrollbar-thumb {
    background: #c8d0da;
    border-radius: 3px;
}

/* Секция в сайдбаре */
body.slovo-lms-body .slovo-lms-sidebar-section {
    margin-bottom: 4px;
}

body.slovo-lms-body .slovo-lms-sidebar-section-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 8px 14px;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    color: #23282d;
    font-weight: 600;
    transition: background 0.15s;
}

body.slovo-lms-body .slovo-lms-sidebar-section-toggle:hover {
    background: #eef2f7;
}

body.slovo-lms-body .slovo-lms-sidebar-section-arrow {
    display: inline-block;
    width: 12px;
    font-size: 10px;
    color: #6b7280;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-sidebar-section-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-sidebar-section-count {
    font-size: 11px;
    color: #9ca3af;
    background: #eef2f7;
    padding: 1px 6px;
    border-radius: 8px;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-sidebar-section-body {
    padding: 4px 0 8px 0;
}

/* Урок в сайдбаре */
body.slovo-lms-body .slovo-lms-sidebar-lesson {
    margin-bottom: 2px;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-head {
    display: flex;
    align-items: center;
    gap: 2px;
    padding-left: 20px;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-link {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
    padding: 6px 8px 6px 6px;
    text-decoration: none;
    color: inherit;
    border-radius: 4px;
    font-size: 13px;
    transition: background 0.15s;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-link:hover {
    background: #eef2f7;
    color: inherit;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson.is-current > .slovo-lms-sidebar-lesson-head > .slovo-lms-sidebar-lesson-link {
    background: #e3f0fc;
    color: #007cba;
    font-weight: 600;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-link-locked {
    cursor: not-allowed;
    color: #9ca3af;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-icon {
    font-size: 14px;
    flex-shrink: 0;
    line-height: 1;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-percent {
    font-size: 11px;
    color: #6b7280;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    font-size: 11px;
    flex-shrink: 0;
    border-radius: 3px;
    font-family: inherit;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-toggle:hover {
    background: #eef2f7;
    color: #23282d;
}

/* Этапы в сайдбаре */
body.slovo-lms-body .slovo-lms-sidebar-steps {
    padding: 4px 0 6px 0;
}

body.slovo-lms-body .slovo-lms-sidebar-step {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px 6px 40px;
    text-decoration: none;
    color: #4a5568;
    font-size: 12px;
    border-radius: 4px;
    margin: 0 4px;
    transition: background 0.15s, color 0.15s;
}

body.slovo-lms-body .slovo-lms-sidebar-step:hover {
    background: #eef2f7;
    color: #23282d;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-current {
    background: #e3f0fc;
    color: #007cba;
    font-weight: 600;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-done .slovo-lms-sidebar-step-title {
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-sidebar-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: #eef2f7;
    color: #6b7280;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-current .slovo-lms-sidebar-step-num {
    background: #007cba;
    color: #fff;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-done .slovo-lms-sidebar-step-num {
    background: #28a745;
    color: #fff;
}

body.slovo-lms-body .slovo-lms-sidebar-step-icon {
    font-size: 12px;
    flex-shrink: 0;
    line-height: 1;
}

body.slovo-lms-body .slovo-lms-sidebar-step-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-sidebar-step-status {
    font-size: 11px;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-sidebar-empty,
body.slovo-lms-body .slovo-lms-sidebar-empty-step {
    padding: 12px 16px;
    font-size: 12px;
    color: #9ca3af;
    text-align: center;
    font-style: italic;
}

/* Footer сайдбара */
body.slovo-lms-body .slovo-lms-step-sidebar-footer {
    flex-shrink: 0;
    padding: 10px 12px;
    border-top: 1px solid #e0e6ed;
    background: #fff;
}

body.slovo-lms-body .slovo-lms-step-sidebar-width-controls {
    display: flex;
    gap: 6px;
    justify-content: center;
}

body.slovo-lms-body .slovo-lms-sidebar-width-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 28px;
    padding: 0;
    background: #f0f4f8;
    border: 1px solid #d0d8e0;
    border-radius: 4px;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    color: #4a5568;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

body.slovo-lms-body .slovo-lms-sidebar-width-btn:hover {
    background: #e3f0fc;
    border-color: #007cba;
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-sidebar-width-btn.is-active {
    background: #007cba;
    border-color: #007cba;
    color: #fff;
}

/* ============ RESIZER ============ */

body.slovo-lms-body .slovo-lms-step-resizer {
    width: 6px;
    flex-shrink: 0;
    cursor: col-resize;
    background: #e0e6ed;
    position: relative;
    transition: background 0.15s;
    user-select: none;
    touch-action: none;
}

body.slovo-lms-body .slovo-lms-step-resizer:hover,
body.slovo-lms-body .slovo-lms-step-resizer.is-dragging {
    background: #007cba;
}

body.slovo-lms-body .slovo-lms-step-sidebar.is-collapsed + .slovo-lms-step-resizer {
    width: 0;
    cursor: default;
}

/* ============ MAIN ============ */

body.slovo-lms-body .slovo-lms-step-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    position: relative;
    background: #fff;
}

body.slovo-lms-body .slovo-lms-step-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-bottom: 1px solid #e0e6ed;
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 10;
}

body.slovo-lms-body .slovo-lms-step-sidebar-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background: #f0f4f8;
    border: 1px solid #d0d8e0;
    border-radius: 6px;
    cursor: pointer;
    font-size: 16px;
    color: #4a5568;
    flex-shrink: 0;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    font-family: inherit;
    line-height: 1;
}

body.slovo-lms-body .slovo-lms-step-sidebar-toggle:hover {
    background: #e3f0fc;
    border-color: #007cba;
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-step-sidebar-toggle-arrow {
    display: inline-block;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    transition: transform 0.2s;
}

body.slovo-lms-body .slovo-lms-step-layout.is-sidebar-collapsed .slovo-lms-step-sidebar-toggle-arrow {
    transform: rotate(180deg);
}

body.slovo-lms-body .slovo-lms-step-back-inline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: #f0f4f8;
    border: 1px solid #d0d8e0;
    border-radius: 6px;
    text-decoration: none;
    color: #4a5568;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    transition: all 0.15s;
    font-family: inherit;
    line-height: 1;
}

body.slovo-lms-body .slovo-lms-step-back-inline:hover {
    background: #e3f0fc;
    border-color: #007cba;
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-step-toolbar-counter {
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
    margin-left: auto;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-step-back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background: #f0f4f8;
    border: 1px solid #d0d8e0;
    border-radius: 6px;
    text-decoration: none;
    color: #4a5568;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    line-height: 1;
    font-family: inherit;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-step-back-btn:hover {
    background: #fde8e8;
    border-color: #dc3545;
    color: #dc3545;
}

body.slovo-lms-body .slovo-lms-step-content {
    flex: 1;
    padding: 24px;
    overflow-y: auto;
}

body.slovo-lms-body .slovo-lms-course-step-header {
    margin-bottom: 20px;
}

body.slovo-lms-body .slovo-lms-course-step-type {
    display: inline-block;
    font-size: 12px;
    padding: 4px 12px;
    background: #eef7fd;
    color: #007cba;
    border-radius: 20px;
    font-weight: 600;
    margin-bottom: 10px;
}

body.slovo-lms-body .slovo-lms-course-step-title {
    margin: 0 0 8px 0;
    font-size: 22px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
}

body.slovo-lms-body .slovo-lms-course-step-best {
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

body.slovo-lms-body .slovo-lms-course-step-body {
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}

body.slovo-lms-body .slovo-lms-course-step-footer {
    margin-top: 20px;
}

body.slovo-lms-body .slovo-lms-course-step-nav-buttons {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-btn.is-disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

/* Типы содержимого этапа */
body.slovo-lms-body .slovo-lms-step-text {
    font-size: 15px;
    line-height: 1.7;
    color: #333;
}

body.slovo-lms-body .slovo-lms-step-text p { margin: 0 0 1em 0; }
body.slovo-lms-body .slovo-lms-step-text h1,
body.slovo-lms-body .slovo-lms-step-text h2,
body.slovo-lms-body .slovo-lms-step-text h3 { margin: 1em 0 0.5em 0; }

/* v17 (задачи 6/7): мини-тест в этапе «Теория» и модуле Text */
body.slovo-lms-body .slovo-lms-step-miniquiz,
body.slovo-lms-body .slovo-text-miniquiz {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px dashed #e0e6ed;
}

body.slovo-lms-body .slovo-lms-step-miniquiz-title,
body.slovo-lms-body .slovo-text-miniquiz-title {
    font-size: 14px;
    font-weight: 700;
    color: #23282d;
    margin-bottom: 10px;
}

/* v17 (задача 3): длинные названия в дереве — бегущая строка при наведении.
   Текст обёрнут во внутренний span; внешний блок обрезает по ширине,
   внутренний сдвигается CSS-анимацией (--slovo-marquee-shift ставит JS). */
@keyframes slovoCeTreeMarquee {
    0%, 12%   { transform: translateX(0); }
    88%, 100% { transform: translateX(var(--slovo-marquee-shift, -50%)); }
}

html body.slovo-lms-body .slovo-ce-tree-title {
    position: relative !important;
}

html body.slovo-lms-body .slovo-ce-tree-title-text {
    display: inline-block !important;
    white-space: nowrap !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    vertical-align: bottom !important;
}

html body.slovo-lms-body .slovo-ce-tree-title.is-overflowing:hover .slovo-ce-tree-title-text {
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    animation: slovoCeTreeMarquee 6s linear infinite alternate !important;
}

body.slovo-lms-body .slovo-lms-step-video {
    margin: 0 auto;
    max-width: 800px;
}

body.slovo-lms-body .slovo-lms-step-video iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: none;
    border-radius: 8px;
}

body.slovo-lms-body .slovo-lms-step-audio {
    max-width: 600px;
    margin: 0 auto;
}

body.slovo-lms-body .slovo-lms-step-file {
    text-align: center;
    padding: 20px;
}

body.slovo-lms-body .slovo-lms-file-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: #eef7fd;
    color: #007cba;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 15px;
    transition: background 0.15s, color 0.15s;
}

body.slovo-lms-body .slovo-lms-file-link:hover {
    background: #d4e8f7;
    color: #005a87;
}

body.slovo-lms-body .slovo-lms-step-checklist {
    list-style: none;
    padding: 0;
    margin: 0;
}

body.slovo-lms-body .slovo-lms-step-checklist-item {
    padding: 10px 0;
    border-bottom: 1px solid #f0f4f8;
}

body.slovo-lms-body .slovo-lms-step-checklist-item:last-child {
    border-bottom: none;
}

body.slovo-lms-body .slovo-lms-step-checklist-item label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    font-size: 15px;
    line-height: 1.5;
}

body.slovo-lms-body .slovo-lms-checklist-checkbox {
    margin-top: 2px;
    width: 18px;
    height: 18px;
    accent-color: #007cba;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-step-checklist-item input:checked + span {
    text-decoration: line-through;
    color: #9ca3af;
}

body.slovo-lms-body .slovo-lms-loading {
    text-align: center;
    padding: 40px 20px;
    color: #6b7280;
    font-size: 14px;
}

body.slovo-lms-body .slovo-lms-error {
    text-align: center;
    padding: 40px 20px;
    color: #dc3545;
    font-size: 14px;
}


/* ============================================================
   v2.22 — ДОМАШНЕЕ ЗАДАНИЕ — КОМПАКТНЫЙ БЛОК (старое)
   ============================================================ */

body.slovo-lms-body .slovo-lms-homework-block-section {
    margin-bottom: 30px;
}

body.slovo-lms-body .slovo-lms-homework-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

body.slovo-lms-body .slovo-lms-homework-badges-page {
    margin: 12px 0 0 0;
}

body.slovo-lms-body .slovo-lms-hw-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    border-radius: 14px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    line-height: 1.3;
}

body.slovo-lms-body .slovo-lms-hw-badge-new {
    background: #fff3cd;
    color: #856404;
}

body.slovo-lms-body .slovo-lms-hw-badge-progress {
    background: #cce5ff;
    color: #004085;
}

body.slovo-lms-body .slovo-lms-hw-badge-done {
    background: #d4edda;
    color: #155724;
}


/* ============================================================
   v2.22 — ДОМАШНЕЕ ЗАДАНИЕ — СТРАНИЦА СПИСКА (старое)
   ============================================================ */

body.slovo-lms-body .slovo-lms-homework-page {
    max-width: 900px;
    margin: 0 auto;
    padding: 20px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-homework-page-header {
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eef2f5;
}

body.slovo-lms-body .slovo-lms-homework-page-title {
    margin: 10px 0 0 0;
    font-size: 26px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.25;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-homework-group {
    margin-bottom: 24px;
}

body.slovo-lms-body .slovo-lms-homework-group-title {
    margin: 0 0 12px 0;
    font-size: 16px;
    font-weight: 700;
    color: #23282d;
    padding-bottom: 8px;
    border-bottom: 2px solid #f0f4f8;
}

body.slovo-lms-body .slovo-lms-homework-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.slovo-lms-body .slovo-lms-homework-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
    transition: all 0.15s;
    flex-wrap: wrap;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

body.slovo-lms-body .slovo-lms-homework-card:hover {
    box-shadow: 0 4px 14px rgba(0,0,0,0.08);
    border-color: #b8d4e8;
    transform: translateY(-1px);
    color: inherit;
}

body.slovo-lms-body .slovo-lms-homework-card-new {
    border-left: 4px solid #ffc107;
}

body.slovo-lms-body .slovo-lms-homework-card-in_progress {
    border-left: 4px solid #007cba;
}

body.slovo-lms-body .slovo-lms-homework-card-done {
    background: linear-gradient(180deg, #f6fdf7 0%, #ffffff 100%);
    border-color: #b8e0c0;
    border-left: 4px solid #28a745;
}

body.slovo-lms-body .slovo-lms-homework-item-icon {
    font-size: 24px;
    flex-shrink: 0;
    line-height: 1;
    width: 32px;
    text-align: center;
}

body.slovo-lms-body .slovo-lms-homework-item-info {
    flex: 1;
    min-width: 150px;
}

body.slovo-lms-body .slovo-lms-homework-item-title {
    font-weight: 600;
    font-size: 15px;
    color: #23282d;
    line-height: 1.3;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-homework-item-meta {
    font-size: 12px;
    color: #6b7280;
    margin-top: 3px;
}

body.slovo-lms-body .slovo-lms-homework-item-status {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 90px;
    text-align: right;
}

body.slovo-lms-body .slovo-lms-hw-status-done {
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-hw-status-progress {
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-hw-status-new {
    color: #b57300;
}

body.slovo-lms-body .slovo-lms-homework-item-page {
    max-width: 1100px;
    margin: 0 auto;
}

body.slovo-lms-body .slovo-lms-homework-item-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 24px;
    border-bottom: 1px solid #e0e6ed;
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 10;
}

body.slovo-lms-body .slovo-lms-homework-item-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 13px;
    color: #6b7280;
    margin-top: 8px;
}

body.slovo-lms-body .slovo-lms-homework-item-meta-line span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}


/* ============================================================
   v2.22 — БАЗОВЫЕ ЭЛЕМЕНТЫ LMS
   ============================================================ */

body.slovo-lms-body .slovo-lms-dashboard {
    max-width: 1400px;
    margin: 0 auto;
    padding: 20px;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

body.slovo-lms-body .slovo-lms-dashboard-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 30px;
    flex-wrap: wrap;
    padding-bottom: 20px;
    border-bottom: 1px solid #e0e6ed;
}

body.slovo-lms-body .slovo-lms-dashboard-header h1 {
    margin: 0 0 8px 0;
    font-size: 28px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.2;
}

body.slovo-lms-body .slovo-lms-role-badge {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 12px;
    background: #eef7fd;
    color: #007cba;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

body.slovo-lms-body .slovo-lms-section {
    margin-bottom: 30px;
}

body.slovo-lms-body .slovo-lms-section h2 {
    margin: 0 0 15px 0;
    font-size: 20px;
    font-weight: 700;
    color: #23282d;
}

body.slovo-lms-body .slovo-lms-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-section-header h2 {
    margin: 0;
}

body.slovo-lms-body .slovo-lms-count {
    display: inline-block;
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
    background: #f0f4f8;
    padding: 2px 10px;
    border-radius: 10px;
    margin-left: 6px;
}

body.slovo-lms-body .slovo-lms-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 20px;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s;
    line-height: 1.2;
    box-shadow: none;
}

body.slovo-lms-body .slovo-lms-btn-primary {
    background: #007cba;
    color: #fff;
    border: 1px solid #007cba;
}

body.slovo-lms-body .slovo-lms-btn-primary:hover {
    background: #006ba1;
    border-color: #006ba1;
    color: #fff;
}

body.slovo-lms-body .slovo-lms-btn-secondary {
    background: #f8fafc;
    color: #4a5568;
    border: 1px solid #d0d8e0;
}

body.slovo-lms-body .slovo-lms-btn-secondary:hover {
    background: #f0f4f8;
    border-color: #b8c4d0;
    color: #23282d;
}

body.slovo-lms-body .slovo-lms-empty {
    padding: 30px 20px;
    text-align: center;
    color: #6b7280;
    font-size: 14px;
    background: #fafbfc;
    border: 1px dashed #d0d8e0;
    border-radius: 8px;
}

body.slovo-lms-body .slovo-lms-notice {
    padding: 14px 18px;
    background: #eef7fd;
    color: #007cba;
    border-left: 4px solid #007cba;
    border-radius: 6px;
    font-size: 14px;
    margin-bottom: 20px;
}

body.slovo-lms-body .slovo-lms-notice-warn {
    background: #fff8e5;
    color: #b57300;
    border-left-color: #ffa000;
}

body.slovo-lms-body .slovo-lms-notice a {
    color: inherit;
    text-decoration: underline;
    font-weight: 600;
}

body.slovo-lms-body .slovo-lms-muted {
    color: #9ca3af;
    font-weight: 400;
}

body.slovo-lms-body .slovo-lms-back-link {
    display: inline-block;
    color: #6b7280;
    text-decoration: none;
    font-size: 13px;
    margin-bottom: 10px;
    transition: color 0.15s;
}

body.slovo-lms-body .slovo-lms-back-link:hover {
    color: #007cba;
}


/* ============================================================
   v2.22 — OFF-CANVAS НА МОБИЛЬНЫХ
   ============================================================ */

body.slovo-lms-body .slovo-lms-step-sidebar-toggle-mobile {
    display: none;
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-dashboard .slovo-lms-step-layout {
        margin: 0 -20px;
    }

    body.slovo-lms-body .slovo-lms-step-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 320px;
        min-width: 0;
        max-width: 85vw;
        z-index: 9999;
        transform: translateX(-100%);
        box-shadow: 4px 0 20px rgba(0,0,0,0.15);
        border-right: 1px solid #e0e6ed;
        opacity: 1;
        pointer-events: auto;
    }

    body.slovo-lms-body .slovo-lms-step-sidebar.is-mobile-open {
        transform: translateX(0);
    }

    body.slovo-lms-body .slovo-lms-step-sidebar.is-collapsed {
        width: 320px;
        min-width: 0;
        max-width: 85vw;
    }

    body.slovo-lms-body .slovo-lms-step-resizer {
        display: none;
    }

    body.slovo-lms-body .slovo-lms-step-sidebar-width-controls {
        display: none;
    }

    body.slovo-lms-body .slovo-lms-step-sidebar-overlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0,0,0,0.5);
        z-index: 9998;
    }

    body.slovo-lms-body .slovo-lms-step-sidebar-overlay.is-visible {
        display: block;
    }

    body.slovo-lms-body .slovo-lms-step-sidebar-toggle-mobile {
        display: inline-flex;
    }

    body.slovo-lms-body .slovo-lms-step-sidebar-toggle {
        display: none;
    }

    body.slovo-lms-body .slovo-lms-step-content {
        padding: 16px;
    }
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    body.slovo-lms-body .slovo-lms-activity-item {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    body.slovo-lms-body .slovo-lms-activity-when {
        text-align: left;
    }

    body.slovo-lms-body .slovo-lms-activity-result {
        text-align: left;
    }

    body.slovo-lms-body .slovo-lms-course-tree-title,
    body.slovo-lms-body .slovo-lms-lesson-steps-title,
    body.slovo-lms-body .slovo-lms-homework-page-title {
        font-size: 21px;
    }
    body.slovo-lms-body .slovo-lms-course-step-title {
        font-size: 19px;
    }
    body.slovo-lms-body .slovo-lms-course-step-body {
        padding: 18px;
    }

    body.slovo-lms-body .slovo-lms-course-lesson-card,
    body.slovo-lms-body .slovo-lms-homework-card {
        padding: 12px 14px;
        gap: 10px;
    }

    body.slovo-lms-body .slovo-lms-course-lesson-icon,
    body.slovo-lms-body .slovo-lms-homework-item-icon {
        font-size: 20px;
        width: 26px;
    }

    body.slovo-lms-body .slovo-lms-course-lesson-title,
    body.slovo-lms-body .slovo-lms-homework-item-title {
        font-size: 14px;
    }
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-summary-grid {
        grid-template-columns: 1fr;
    }

    body.slovo-lms-body .slovo-lms-summary-value {
        font-size: 22px;
    }

    body.slovo-lms-body .slovo-lms-teacher-courses-grid,
    body.slovo-lms-body .slovo-lms-student-courses-grid {
        grid-template-columns: 1fr;
    }

    body.slovo-lms-body .slovo-lms-activity-course,
    body.slovo-lms-body .slovo-lms-activity-lesson,
    body.slovo-lms-body .slovo-lms-activity-title {
        max-width: 100%;
    }

    body.slovo-lms-body .slovo-lms-student-course-card {
        padding: 14px 16px;
    }

    body.slovo-lms-body .slovo-lms-course-step-nav-buttons {
        flex-direction: column;
    }

    body.slovo-lms-body .slovo-lms-course-step-nav-buttons .slovo-lms-btn {
        width: 100%;
        text-align: center;
    }

    body.slovo-lms-body .slovo-lms-course-tree-header,
    body.slovo-lms-body .slovo-lms-lesson-steps-header,
    body.slovo-lms-body .slovo-lms-homework-page-header {
        margin-bottom: 18px;
        padding-bottom: 15px;
    }

    body.slovo-lms-body .slovo-lms-btn-large {
        padding: 12px 22px;
        font-size: 15px;
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    body.slovo-lms-body .slovo-lms-course-actions {
        display: block;
    }

    body.slovo-lms-body .slovo-lms-homework-page {
        padding: 14px;
    }

    body.slovo-lms-body .slovo-lms-homework-badges-page {
        margin-top: 8px;
    }

    body.slovo-lms-body .slovo-lms-homework-item-meta {
        font-size: 11px;
    }
}


/* ============================================================
   v2.21 — КРУЖКИ-ИНДИКАТОРЫ СТАТУСА
   ============================================================ */

body.slovo-lms-body .slovo-lms-dot {
    display: inline-block;
    width: 14px;
    height: 14px;
    min-width: 14px;
    border-radius: 50%;
    flex-shrink: 0;
    vertical-align: middle;
    box-sizing: border-box;
    background: #e5e9ee;
    border: 2px solid #d0d8e0;
    position: relative;
}

body.slovo-lms-body .slovo-lms-dot--done {
    background: #28a745;
    border-color: #28a745;
    box-shadow: 0 0 0 3px rgba(40,167,69,0.15);
}

body.slovo-lms-body .slovo-lms-dot--progress {
    background: conic-gradient(
        #f0a000 0% var(--progress, 50%),
        #e5e9ee var(--progress, 50%) 100%
    );
    border-color: #f0a000;
}

body.slovo-lms-body .slovo-lms-dot--new {
    background: #f5f7fa;
    border-color: #c8d0da;
}

body.slovo-lms-body .slovo-lms-dot--locked {
    background: #f0f4f8;
    border-color: #d0d8e0;
    position: relative;
}
body.slovo-lms-body .slovo-lms-dot--locked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 4px;
    background: #9ca3af;
    border-radius: 1px;
    transform: translate(-50%, -30%);
}
body.slovo-lms-body .slovo-lms-dot--locked::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 4px;
    height: 3px;
    border: 1.5px solid #9ca3af;
    border-bottom: none;
    border-radius: 3px 3px 0 0;
    transform: translate(-50%, -130%);
}

body.slovo-lms-body .slovo-lms-dot--sm {
    width: 10px;
    height: 10px;
    min-width: 10px;
    border-width: 1.5px;
}


/* ============================================================
   v2.21 — ШАПКА САЙДБАРА — ПРОГРЕСС КУРСА
   ============================================================ */

body.slovo-lms-body .slovo-lms-step-sidebar-header {
    padding: 14px 16px 12px 16px;
}

body.slovo-lms-body .slovo-lms-sidebar-course-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

body.slovo-lms-body .slovo-lms-step-sidebar-course {
    margin-bottom: 0;
    flex: 1;
    min-width: 0;
}

body.slovo-lms-body .slovo-lms-sidebar-course-percent {
    font-size: 12px;
    font-weight: 700;
    color: #007cba;
    background: #eef7fd;
    padding: 2px 8px;
    border-radius: 10px;
    flex-shrink: 0;
    white-space: nowrap;
    line-height: 1.4;
}

body.slovo-lms-body .slovo-lms-sidebar-course-percent.is-done {
    color: #1e7e34;
    background: #eefaf0;
}

body.slovo-lms-body .slovo-lms-sidebar-course-bar {
    width: 100%;
    height: 4px;
    background: #eef2f5;
    border-radius: 2px;
    overflow: hidden;
    margin-top: 4px;
}

body.slovo-lms-body .slovo-lms-sidebar-course-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #007cba 0%, #4a90e2 100%);
    border-radius: 2px;
    transition: width 0.3s;
}

body.slovo-lms-body .slovo-lms-sidebar-course-bar-fill.is-done {
    background: linear-gradient(90deg, #28a745 0%, #4caf50 100%);
}

body.slovo-lms-body .slovo-lms-step-sidebar-lesson {
    font-size: 12px;
    color: #6b7280;
    margin-top: 6px;
}


/* ============================================================
   v2.21 — РАЗДЕЛ В САЙДБАРЕ — ЗАГОЛОВОК С ПРОГРЕССОМ
   ============================================================ */

body.slovo-lms-body .slovo-lms-sidebar-section-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 9px 14px;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    color: #23282d;
    font-weight: 700;
    transition: background 0.15s;
}

body.slovo-lms-body .slovo-lms-sidebar-section-percent {
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
    background: #eef2f7;
    padding: 1px 7px;
    border-radius: 8px;
    flex-shrink: 0;
    margin-left: auto;
    white-space: nowrap;
    line-height: 1.5;
}

body.slovo-lms-body .slovo-lms-sidebar-section-percent.is-done {
    color: #1e7e34;
    background: #eefaf0;
}

body.slovo-lms-body .slovo-lms-sidebar-section.is-open .slovo-lms-sidebar-section-toggle {
    background: #f5f8fc;
}


/* ============================================================
   v2.21 — УРОК В САЙДБАРЕ — КРУЖОК + НАЗВАНИЕ + ПРОГРЕСС
   ============================================================ */

body.slovo-lms-body .slovo-lms-sidebar-lesson-link {
    gap: 8px;
    padding: 7px 10px 7px 6px;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-dot-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-icon {
    display: none;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-title {
    font-weight: 500;
    color: #23282d;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson.is-current > .slovo-lms-sidebar-lesson-head > .slovo-lms-sidebar-lesson-link .slovo-lms-sidebar-lesson-title {
    font-weight: 700;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson.is-done .slovo-lms-sidebar-lesson-title {
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson.is-locked .slovo-lms-sidebar-lesson-title {
    color: #9ca3af;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-percent {
    font-size: 11px;
    font-weight: 700;
    color: #6b7280;
    flex-shrink: 0;
    white-space: nowrap;
    padding: 1px 6px;
    border-radius: 8px;
    line-height: 1.5;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-percent.is-done {
    color: #1e7e34;
    background: #eefaf0;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-percent.is-progress {
    color: #b57300;
    background: #fff8e5;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson-link:hover {
    background: #f0f7fd;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson.is-current > .slovo-lms-sidebar-lesson-head > .slovo-lms-sidebar-lesson-link {
    background: #e3f0fc;
    color: #007cba;
}


/* ============================================================
   v2.21 — ЭТАП В САЙДБАРЕ — УЛУЧШЕННЫЙ
   ============================================================ */

body.slovo-lms-body .slovo-lms-sidebar-step {
    padding: 5px 10px 5px 42px;
    gap: 6px;
    transition: background 0.15s, color 0.15s;
}

body.slovo-lms-body .slovo-lms-sidebar-step:hover {
    background: #f0f7fd;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-current {
    background: #e3f0fc;
    color: #007cba;
    font-weight: 600;
}
/* v19: is-active — алиас is-current для активного этапа сайдбара ученика */
body.slovo-lms-body .slovo-lms-sidebar-step.is-active {
    background: #e3f0fc;
    color: #007cba;
    font-weight: 600;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-active .slovo-lms-sidebar-step-num {
    background: #007cba;
    color: #fff;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson.is-active > .slovo-lms-sidebar-lesson-head > .slovo-lms-sidebar-lesson-link {
    background: #e3f0fc;
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-sidebar-lesson.is-active > .slovo-lms-sidebar-lesson-head > .slovo-lms-sidebar-lesson-link .slovo-lms-sidebar-lesson-title {
    font-weight: 700;
}

body.slovo-lms-body .slovo-lms-sidebar-section.is-active > .slovo-lms-sidebar-section-toggle {
    background: #f5f8fc;
}

/* v19: плавная прокрутка сайдбара ученика к активному этапу */
body.slovo-lms-body .slovo-lms-step-sidebar-body {
    scroll-behavior: smooth;
}



body.slovo-lms-body .slovo-lms-sidebar-step.is-done .slovo-lms-sidebar-step-title {
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-sidebar-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    background: #eef2f7;
    color: #6b7280;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 700;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-current .slovo-lms-sidebar-step-num {
    background: #007cba;
    color: #fff;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-done .slovo-lms-sidebar-step-num {
    background: #28a745;
    color: #fff;
}

body.slovo-lms-body .slovo-lms-sidebar-step-status {
    font-size: 10px;
    font-weight: 700;
    flex-shrink: 0;
    color: #6b7280;
}

body.slovo-lms-body .slovo-lms-sidebar-step.is-done .slovo-lms-sidebar-step-status {
    color: #1e7e34;
}


/* ============================================================
   v2.21 — ПЛАВНЫЕ ПЕРЕХОДЫ РАСКРЫТИЯ
   ============================================================ */

body.slovo-lms-body .slovo-lms-sidebar-section-arrow,
body.slovo-lms-body .slovo-lms-sidebar-lesson-arrow {
    transition: transform 0.15s;
}

body.slovo-lms-body .slovo-lms-sidebar-section-body,
body.slovo-lms-body .slovo-lms-sidebar-steps {
    transition: opacity 0.15s;
}


/* ============================================================
   v2.21 — ОБЗОР КУРСА — ЗАМЕНА ✅/🔄/🔒 НА КРУЖКИ
   ============================================================ */

body.slovo-lms-body .slovo-lms-course-lesson-icon {
    width: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body.slovo-lms-body .slovo-lms-course-lesson-card .slovo-lms-dot {
    width: 16px;
    height: 16px;
    min-width: 16px;
}

body.slovo-lms-body .slovo-lms-course-lesson-card.is-done {
    background: #f6fdf7;
}

body.slovo-lms-body .slovo-lms-course-lesson-card.is-locked {
    opacity: 0.6;
}

body.slovo-lms-body .slovo-lms-course-lesson-result {
    font-size: 12px;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 10px;
    background: #f0f4f8;
    color: #6b7280;
    text-align: center;
    white-space: nowrap;
    min-width: auto;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-course-lesson-card.is-done .slovo-lms-course-lesson-result {
    background: #eefaf0;
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-course-lesson-card:not(.is-done):not(.is-locked) .slovo-lms-course-lesson-result {
    background: #fff8e5;
    color: #b57300;
}

body.slovo-lms-body .slovo-lms-course-lesson-card.is-locked .slovo-lms-course-lesson-result {
    background: #f0f4f8;
    color: #9ca3af;
}

body.slovo-lms-body .slovo-lms-course-lesson-start {
    color: inherit;
}


/* ============================================================
   v2.21 — СПИСОК ЭТАПОВ УРОКА — КРУЖКИ ВМЕСТО ИКОНОК
   ============================================================ */

body.slovo-lms-body .slovo-lms-step-result .slovo-lms-step-done,
body.slovo-lms-body .slovo-lms-step-result .slovo-lms-step-progress,
body.slovo-lms-body .slovo-lms-step-result .slovo-lms-step-new {
    font-size: 12px;
    padding: 2px 10px;
    border-radius: 10px;
    display: inline-block;
    line-height: 1.5;
}

body.slovo-lms-body .slovo-lms-step-result .slovo-lms-step-done {
    background: #eefaf0;
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-step-result .slovo-lms-step-progress {
    background: #fff8e5;
    color: #b57300;
}

body.slovo-lms-body .slovo-lms-step-result .slovo-lms-step-new {
    background: #f0f4f8;
    color: #6b7280;
}


/* ============================================================
   v2.21 — АДАПТИВ
   ============================================================ */

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-dot {
        width: 12px;
        height: 12px;
        min-width: 12px;
    }
    body.slovo-lms-body .slovo-lms-sidebar-lesson-percent {
        font-size: 10px;
        padding: 1px 5px;
    }
    body.slovo-lms-body .slovo-lms-sidebar-section-percent {
        font-size: 10px;
        padding: 1px 5px;
    }
}


/* ============================================================
   v2.22 — КОМПАКТНАЯ ШАПКА (sticky) + класс первичен
   ============================================================ */

body.slovo-lms-body {
    margin: 0;
    padding: 0;
    background: #f5f7fa;
}

body.slovo-lms-body .slovo-lms-header {
    background: #fff;
    border-bottom: 1px solid #e0e6ed;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    position: sticky;
    top: 0;
    z-index: 1000;
}

body.slovo-lms-body .slovo-lms-header-compact .slovo-lms-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    max-width: 1400px;
    margin: 0 auto;
    padding: 8px 20px;
    min-height: 48px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-logo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: #23282d;
    font-weight: 700;
    font-size: 15px;
    flex-shrink: 0;
    transition: opacity 0.15s;
}

body.slovo-lms-body .slovo-lms-logo:hover {
    opacity: 0.75;
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-logo-icon {
    font-size: 20px;
    line-height: 1;
}

body.slovo-lms-body .slovo-lms-logo-text {
    font-size: 15px;
    letter-spacing: 0.3px;
}

body.slovo-lms-body .slovo-lms-nav {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-nav-link {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 6px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    color: #4a5568;
    background: #f0f4f8;
    border: 1px solid transparent;
    transition: all 0.15s;
    line-height: 1.2;
}

body.slovo-lms-body .slovo-lms-nav-link:hover {
    background: #e3f0fc;
    color: #007cba;
    border-color: #b8d4e8;
}

body.slovo-lms-body .slovo-lms-nav-link-primary {
    background: #007cba;
    color: #fff;
}

body.slovo-lms-body .slovo-lms-nav-link-primary:hover {
    background: #006ba1;
    color: #fff;
    border-color: #006ba1;
}

body.slovo-lms-body .slovo-lms-nav-link-secondary {
    background: transparent;
    color: #6b7280;
    border-color: #e0e6ed;
}

body.slovo-lms-body .slovo-lms-nav-link-secondary:hover {
    background: #fde8e8;
    color: #dc3545;
    border-color: #f5b7b7;
}

body.slovo-lms-body .slovo-lms-main {
    flex: 1;
    padding: 0;
    background: #f5f7fa;
}

body.slovo-lms-body .slovo-lms-main-compact {
    padding-top: 0;
}

body.slovo-lms-body .slovo-lms-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0;
}

body.slovo-lms-body .slovo-lms-dashboard {
    padding: 20px;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-header-compact .slovo-lms-header-inner {
        padding: 6px 12px;
        gap: 8px;
    }
    body.slovo-lms-body .slovo-lms-logo-text {
        display: none;
    }
    body.slovo-lms-body .slovo-lms-nav-link {
        padding: 5px 10px;
        font-size: 12px;
    }
}

body.slovo-lms-body .slovo-lms-footer {
    display: none;
}


/* ============================================================
   v2.22 — СТРАНИЦА КЛАССА УЧЕНИКА (курсы → ДЗ → материалы)
   ============================================================ */

body.slovo-lms-body .slovo-lms-class-page {
    max-width: 1400px;
    margin: 0 auto;
    padding: 24px 20px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-class-header {
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eef2f5;
}

body.slovo-lms-body .slovo-lms-class-header h1 {
    margin: 8px 0 6px 0;
    font-size: 26px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.25;
}


/* ============================================================
   v2.22 — БЛОК КУРСОВ В КЛАССЕ
   ============================================================ */

body.slovo-lms-body .slovo-lms-class-courses-section {
    margin-bottom: 30px;
}

body.slovo-lms-body .slovo-lms-class-courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 16px;
    margin-top: 15px;
}

body.slovo-lms-body .slovo-lms-class-course-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 18px 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}

body.slovo-lms-body .slovo-lms-class-course-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    border-color: #b8d4e8;
    transform: translateY(-2px);
}

body.slovo-lms-body .slovo-lms-class-course-card.is-done {
    border-color: #b8e0c0;
    background: linear-gradient(180deg, #f6fdf7 0%, #ffffff 100%);
}

body.slovo-lms-body .slovo-lms-class-course-head {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
}

body.slovo-lms-body .slovo-lms-class-course-head:hover {
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-class-course-icon {
    font-size: 26px;
    line-height: 1;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-class-course-title {
    font-weight: 700;
    font-size: 16px;
    color: #23282d;
    line-height: 1.3;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-class-course-desc {
    font-size: 13px;
    color: #6b7280;
    line-height: 1.5;
}

body.slovo-lms-body .slovo-lms-class-course-stats {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: #4a5568;
    gap: 8px;
}

body.slovo-lms-body .slovo-lms-class-course-percent {
    font-weight: 700;
    color: #b57300;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-class-course-percent.is-done {
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-class-course-progress-bar {
    height: 6px;
    background: #eef2f5;
    border-radius: 3px;
    overflow: hidden;
}

body.slovo-lms-body .slovo-lms-class-course-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #007cba 0%, #4a90e2 100%);
    border-radius: 3px;
    transition: width 0.3s;
}

body.slovo-lms-body .slovo-lms-class-course-card.is-done .slovo-lms-class-course-progress-fill {
    background: linear-gradient(90deg, #28a745 0%, #4caf50 100%);
}

body.slovo-lms-body .slovo-lms-class-course-actions {
    margin-top: auto;
    padding-top: 8px;
}

body.slovo-lms-body .slovo-lms-btn-block {
    width: 100%;
    display: flex;
    text-align: center;
    justify-content: center;
    padding: 10px 14px;
    font-size: 13px;
    line-height: 1.3;
    white-space: normal;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-btn-success {
    background: linear-gradient(135deg, #28a745 0%, #4caf50 100%);
    color: #fff;
    border: 1px solid #28a745;
    cursor: default;
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(40,167,69,0.25);
}

body.slovo-lms-body .slovo-lms-btn-success.is-completed {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    justify-content: center;
}


/* ============================================================
   v2.22 — БЛОК ДЗ В КЛАССЕ
   ============================================================ */

body.slovo-lms-body .slovo-lms-class-homework-section {
    margin-bottom: 30px;
}

@media (max-width: 768px) {
    body.slovo-lms-body .slovo-lms-class-page {
        padding: 16px 14px;
    }
    body.slovo-lms-body .slovo-lms-class-header h1 {
        font-size: 21px;
    }
    body.slovo-lms-body .slovo-lms-class-courses-grid {
        grid-template-columns: 1fr;
    }
    body.slovo-lms-body .slovo-lms-class-course-card {
        padding: 14px 16px;
    }
    body.slovo-lms-body .slovo-lms-class-course-title {
        font-size: 15px;
    }
}


/* ============================================================
   v2.23 — СТРАНИЦЫ ВХОДА И РЕГИСТРАЦИИ
   ============================================================ */

body.slovo-lms-body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body.slovo-lms-body .slovo-lms-main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

body.slovo-lms-body .slovo-lms-main-center {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-main-center .slovo-lms-container {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

body.slovo-lms-body .slovo-lms-card {
    width: 100%;
    max-width: 440px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 16px;
    padding: 40px 36px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08), 0 2px 8px rgba(0,0,0,0.04);
    box-sizing: border-box;
    margin: 0 auto;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

body.slovo-lms-body .slovo-lms-card h2 {
    margin: 0 0 28px 0;
    font-size: 24px;
    font-weight: 700;
    color: #23282d;
    text-align: center;
    line-height: 1.3;
}

body.slovo-lms-body .slovo-lms-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0;
}

body.slovo-lms-body .slovo-lms-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}

body.slovo-lms-body .slovo-lms-field label {
    font-size: 13px;
    font-weight: 600;
    color: #4a5568;
    line-height: 1.3;
    margin: 0;
}

body.slovo-lms-body .slovo-lms-field input[type="text"],
body.slovo-lms-body .slovo-lms-field input[type="email"],
body.slovo-lms-body .slovo-lms-field input[type="password"] {
    width: 100%;
    padding: 12px 16px;
    font-size: 15px;
    font-family: inherit;
    line-height: 1.4;
    color: #23282d;
    background: #fafbfc;
    border: 1.5px solid #d0d8e0;
    border-radius: 10px;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    height: 48px;
    outline: none;
    box-shadow: none;
}

body.slovo-lms-body .slovo-lms-field input[type="text"]:hover,
body.slovo-lms-body .slovo-lms-field input[type="email"]:hover,
body.slovo-lms-body .slovo-lms-field input[type="password"]:hover {
    border-color: #b8c4d0;
}

body.slovo-lms-body .slovo-lms-field input[type="text"]:focus,
body.slovo-lms-body .slovo-lms-field input[type="email"]:focus,
body.slovo-lms-body .slovo-lms-field input[type="password"]:focus {
    border-color: #007cba;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,124,186,0.12);
}

body.slovo-lms-body .slovo-lms-field input::placeholder {
    color: #a0aec0;
    opacity: 1;
}

body.slovo-lms-body .slovo-lms-radio-group {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-radio {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: #fafbfc;
    border: 1.5px solid #d0d8e0;
    border-radius: 10px;
    cursor: pointer;
    font-size: 14px;
    color: #4a5568;
    font-weight: 500;
    transition: all 0.15s;
    flex: 1;
    min-width: 100px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-radio:hover {
    border-color: #b8c4d0;
    background: #f0f4f8;
}

body.slovo-lms-body .slovo-lms-radio input[type="radio"] {
    margin: 0;
    accent-color: #007cba;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer;
}

body.slovo-lms-body .slovo-lms-radio input[type="radio"]:checked + span {
    color: #007cba;
    font-weight: 600;
}

body.slovo-lms-body .slovo-lms-actions {
    margin: 8px 0 0 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.slovo-lms-body .slovo-lms-actions .slovo-lms-btn,
body.slovo-lms-body .slovo-lms-form .slovo-lms-btn-primary {
    width: 100%;
    padding: 14px 24px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 10px;
    background: #007cba;
    color: #fff;
    border: 1.5px solid #007cba;
    cursor: pointer;
    transition: all 0.15s;
    box-shadow: 0 2px 6px rgba(0,124,186,0.2);
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-family: inherit;
}

body.slovo-lms-body .slovo-lms-actions .slovo-lms-btn:hover,
body.slovo-lms-body .slovo-lms-form .slovo-lms-btn-primary:hover {
    background: #006ba1;
    border-color: #006ba1;
    box-shadow: 0 4px 12px rgba(0,124,186,0.3);
    transform: translateY(-1px);
}

body.slovo-lms-body .slovo-lms-actions .slovo-lms-btn:active,
body.slovo-lms-body .slovo-lms-form .slovo-lms-btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(0,124,186,0.2);
}

body.slovo-lms-body .slovo-lms-status {
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
}

body.slovo-lms-body .slovo-lms-footer {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #f0f4f8;
    text-align: center;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.5;
    display: block;
}

body.slovo-lms-body .slovo-lms-footer a {
    color: #007cba;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.15s;
}

body.slovo-lms-body .slovo-lms-footer a:hover {
    color: #006ba1;
    text-decoration: underline;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-main-center {
        padding: 20px 14px;
        align-items: flex-start;
        padding-top: 40px;
    }
    body.slovo-lms-body .slovo-lms-card {
        padding: 28px 22px;
        border-radius: 14px;
        max-width: 100%;
    }
    body.slovo-lms-body .slovo-lms-card h2 {
        font-size: 20px;
        margin-bottom: 22px;
    }
    body.slovo-lms-body .slovo-lms-field input[type="text"],
    body.slovo-lms-body .slovo-lms-field input[type="email"],
    body.slovo-lms-body .slovo-lms-field input[type="password"] {
        height: 44px;
        font-size: 14px;
        padding: 10px 14px;
    }
    body.slovo-lms-body .slovo-lms-actions .slovo-lms-btn,
    body.slovo-lms-body .slovo-lms-form .slovo-lms-btn-primary {
        height: 46px;
        font-size: 14px;
    }
    body.slovo-lms-body .slovo-lms-radio-group {
        flex-direction: column;
    }
}


/* ============================================================
   v2.24 — КАБИНЕТ УЧИТЕЛЯ: ТУЛБАР МАТРИЦЫ, CSV, НАПОМИНАНИЯ
   ============================================================ */

body.slovo-lms-body .slovo-lms-matrix-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin: 16px 0 14px 0;
}

body.slovo-lms-body .slovo-lms-matrix-filter-form {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0;
}

body.slovo-lms-body .slovo-lms-matrix-filter-label {
    font-size: 13px;
    font-weight: 600;
    color: #4a5568;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-matrix-filter {
    padding: 8px 12px;
    font-size: 14px;
    font-family: inherit;
    background: #fafbfc;
    border: 1.5px solid #d0d8e0;
    border-radius: 8px;
    color: #23282d;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    min-width: 200px;
    height: 38px;
    box-sizing: border-box;
    outline: none;
}

body.slovo-lms-body .slovo-lms-matrix-filter:hover {
    border-color: #b8c4d0;
}

body.slovo-lms-body .slovo-lms-matrix-filter:focus {
    border-color: #007cba;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(0,124,186,0.12);
}

body.slovo-lms-body .slovo-lms-matrix-reset {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    background: #f0f4f8;
    border: 1px solid #e0e6ed;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.15s;
    line-height: 1;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-matrix-reset:hover {
    background: #fde8e8;
    border-color: #f5b7b7;
    color: #dc3545;
}

body.slovo-lms-body .slovo-lms-matrix-export-btn {
    height: 38px;
    padding: 8px 18px;
    font-size: 14px;
    line-height: 1.2;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-matrix .slovo-lms-matrix-actions-col {
    width: 130px;
    min-width: 130px;
    max-width: 130px;
    background: #fafbfc;
    padding: 6px 8px;
    text-align: center;
}

body.slovo-lms-body .slovo-lms-matrix td.slovo-lms-matrix-actions-col {
    padding: 6px 8px;
}

body.slovo-lms-body .slovo-lms-btn-remind {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 600;
    font-family: inherit;
    color: #007cba;
    background: #eef7fd;
    border: 1px solid #b8d4e8;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
    line-height: 1.2;
    white-space: nowrap;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-btn-remind:hover {
    background: #d4e8f7;
    border-color: #007cba;
    color: #006ba1;
}

body.slovo-lms-body .slovo-lms-btn-remind:disabled,
body.slovo-lms-body .slovo-lms-btn-remind.is-loading {
    opacity: 0.7;
    cursor: wait;
    pointer-events: none;
}

body.slovo-lms-body .slovo-lms-btn-remind.is-sent {
    background: #eefaf0;
    border-color: #b8e0c0;
    color: #1e7e34;
    cursor: default;
    pointer-events: none;
}

body.slovo-lms-body .slovo-lms-btn-remind.is-error {
    background: #fde8e8;
    border-color: #f5b7b7;
    color: #dc3545;
}

body.slovo-lms-body .slovo-lms-btn-remind-label {
    display: inline;
}

body.slovo-lms-body .slovo-lms-matrix-hint {
    margin: 12px 0 0 0;
    font-size: 12px;
    color: #9ca3af;
    line-height: 1.5;
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-matrix-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    body.slovo-lms-body .slovo-lms-matrix-filter-form {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    body.slovo-lms-body .slovo-lms-matrix-filter {
        width: 100%;
        min-width: 0;
    }
    body.slovo-lms-body .slovo-lms-matrix-export-btn {
        width: 100%;
        justify-content: center;
    }
    body.slovo-lms-body .slovo-lms-btn-remind-label {
        display: none;
    }
    body.slovo-lms-body .slovo-lms-btn-remind {
        padding: 6px 8px;
        min-width: 36px;
    }
    body.slovo-lms-body .slovo-lms-matrix .slovo-lms-matrix-actions-col {
        width: 60px;
        min-width: 60px;
    }
}


/* ============================================================
   v2.25 — КАРТОЧКИ КЛАССОВ УЧИТЕЛЯ И УЧЕНИКА (ВОССТАНОВЛЕНО)
   ============================================================
   ВАЖНО: этот блок был УТЕРЯН при чистке v2.22.
   Здесь — его полная версия.

   Разметка приходит из class-slovo-lms.php (ученик)
   и class-slovo-teacher-dashboard.php (учитель):

     <a class="slovo-lms-class-card-v2 is-individual|is-group">
       <div class="slovo-lms-class-card-v2-accent"></div>
       <div class="slovo-lms-class-card-v2-icon">👤|👥</div>
       <div class="slovo-lms-class-card-v2-body">
         <div class="slovo-lms-class-card-v2-title">...</div>
         [<div class="slovo-lms-class-dates-badge">...</div>]
         <div class="slovo-lms-class-card-v2-teacher">Учитель: ...</div>
         <div class="slovo-lms-class-card-v2-meta">
           <span class="slovo-lms-class-card-v2-meta-item">...</span>
           <span class="slovo-lms-class-card-v2-meta-sep">·</span>
           <span class="slovo-lms-class-card-v2-meta-item">...</span>
         </div>
       </div>
       <div class="slovo-lms-class-card-v2-arrow">→</div>
     </a>

   Сетка: .slovo-lms-classes-grid
     — 2 колонки по умолчанию,
     — 3 колонки на очень широких экранах,
     — 1 колонка на мобильных.
   ============================================================ */

/* ---------- Сетка классов ---------- */

body.slovo-lms-body .slovo-lms-classes-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 15px;
}

@media (min-width: 1400px) {
    body.slovo-lms-body .slovo-lms-classes-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-classes-grid {
        grid-template-columns: 1fr;
    }
}

/* ---------- Карточка класса (v2) ---------- */

body.slovo-lms-body .slovo-lms-class-card-v2 {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    transition: box-shadow 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
    box-sizing: border-box;
    min-height: 110px;
}

body.slovo-lms-body .slovo-lms-class-card-v2:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    border-color: #b8d4e8;
    transform: translateY(-2px);
    color: inherit;
}

/* Акцентная полоса слева */
body.slovo-lms-body .slovo-lms-class-card-v2-accent {
    flex-shrink: 0;
    width: 6px;
    background: linear-gradient(180deg, #007cba 0%, #4a90e2 100%);
    transition: background 0.18s;
}

/* Иконка в круге */
body.slovo-lms-body .slovo-lms-class-card-v2-icon {
    flex-shrink: 0;
    width: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    line-height: 1;
    background: linear-gradient(135deg, #eef7fd 0%, #d4e8f7 100%);
    color: #007cba;
    border-radius: 0;
    transition: transform 0.18s;
}

body.slovo-lms-body .slovo-lms-class-card-v2:hover .slovo-lms-class-card-v2-icon {
    transform: scale(1.05);
}

/* Тело карточки */
body.slovo-lms-body .slovo-lms-class-card-v2-body {
    flex: 1;
    min-width: 0;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-class-card-v2-title {
    font-size: 16px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
    word-break: break-word;
    margin: 0;
}

body.slovo-lms-body .slovo-lms-class-card-v2-teacher {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.4;
    font-weight: 500;
    margin-top: 2px;
}

body.slovo-lms-body .slovo-lms-class-card-v2-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #6b7280;
    font-weight: 500;
    margin-top: 4px;
}

body.slovo-lms-body .slovo-lms-class-card-v2-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-class-card-v2-meta-sep {
    color: #d0d8e0;
    font-size: 12px;
    line-height: 1;
}

/* Стрелка справа */
body.slovo-lms-body .slovo-lms-class-card-v2-arrow {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px 0 12px;
    font-size: 20px;
    font-weight: 400;
    color: #b8c4d0;
    transition: color 0.18s, transform 0.18s;
}

body.slovo-lms-body .slovo-lms-class-card-v2:hover .slovo-lms-class-card-v2-arrow {
    color: #007cba;
    transform: translateX(3px);
}

/* ---------- Вариант: ИНДИВИДУАЛЬНЫЙ класс (голубой) ---------- */

body.slovo-lms-body .slovo-lms-class-card-v2.is-individual .slovo-lms-class-card-v2-accent {
    background: linear-gradient(180deg, #007cba 0%, #4a90e2 100%);
}

body.slovo-lms-body .slovo-lms-class-card-v2.is-individual .slovo-lms-class-card-v2-icon {
    background: linear-gradient(135deg, #eef7fd 0%, #d4e8f7 100%);
    color: #007cba;
}

/* ---------- Вариант: ГРУППОВОЙ класс (зелёный) ---------- */

body.slovo-lms-body .slovo-lms-class-card-v2.is-group .slovo-lms-class-card-v2-accent {
    background: linear-gradient(180deg, #28a745 0%, #4caf50 100%);
}

body.slovo-lms-body .slovo-lms-class-card-v2.is-group .slovo-lms-class-card-v2-icon {
    background: linear-gradient(135deg, #eefaf0 0%, #c8e6c9 100%);
    color: #1e7e34;
}

/* ---------- Мобильный адаптив ---------- */

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-class-card-v2-icon {
        width: 48px;
        font-size: 22px;
    }
    body.slovo-lms-body .slovo-lms-class-card-v2-body {
        padding: 12px 14px;
    }
    body.slovo-lms-body .slovo-lms-class-card-v2-title {
        font-size: 15px;
    }
    body.slovo-lms-body .slovo-lms-class-card-v2-arrow {
        padding: 0 12px 0 8px;
        font-size: 18px;
    }
}


/* ============================================================
   v2.27 — КНОПКА «СВЯЗАТЬСЯ С УЧИТЕЛЕМ»
   ============================================================ */

body.slovo-lms-body .slovo-lms-meeting-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    background: var(--slovo-meeting-color, #007cba);
    color: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    text-decoration: none;
    line-height: 1.2;
    box-sizing: border-box;
    transition: all 0.15s;
    box-shadow: 0 2px 6px rgba(0,0,0,0.12);
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

body.slovo-lms-body .slovo-lms-meeting-btn:hover {
    filter: brightness(0.92);
    color: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.18);
    transform: translateY(-1px);
}

body.slovo-lms-body .slovo-lms-meeting-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}

body.slovo-lms-body .slovo-lms-meeting-btn-icon {
    display: inline-block;
    font-size: 1.15em;
    line-height: 1;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-meeting-btn-text {
    display: inline-block;
    line-height: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-meeting-btn--sm {
    padding: 6px 14px;
    font-size: 13px;
    border-radius: 8px;
}

body.slovo-lms-body .slovo-lms-meeting-btn--md {
    padding: 10px 20px;
    font-size: 15px;
    border-radius: 10px;
}

body.slovo-lms-body .slovo-lms-class-header-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 6px;
}

body.slovo-lms-body .slovo-lms-class-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-meeting-service-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: #f0f4f8;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #23282d;
    line-height: 1.2;
    min-height: 38px;
    box-sizing: border-box;
    width: 100%;
}

body.slovo-lms-body .slovo-meeting-service-badge-icon {
    font-size: 18px;
    line-height: 1;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-meeting-service-badge-label {
    line-height: 1.2;
}

body.slovo-lms-body .slovo-meeting-preview {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 14px 16px;
    background: #fafbfc;
    border: 1px dashed #d0d8e0;
    border-radius: 10px;
    min-height: 60px;
    box-sizing: border-box;
}

body.slovo-lms-body #slovo-class-meeting-modal .slovo-modal-window {
    max-width: 560px;
}

body.slovo-lms-body #slovo-class-meeting-modal h2 {
    font-size: 20px;
    font-weight: 700;
    color: #23282d;
    margin: 0 0 15px 0;
}

body.slovo-lms-body .slovo-lms-class-header-actions .slovo-lms-btn-secondary {
    padding: 8px 14px;
    font-size: 13px;
    border-radius: 8px;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-meeting-btn .slovo-lms-meeting-btn-text {
        display: none;
    }

    body.slovo-lms-body .slovo-lms-meeting-btn {
        padding: 8px 12px;
        gap: 0;
        border-radius: 10px;
        min-width: 38px;
        min-height: 38px;
    }

    body.slovo-lms-body .slovo-lms-meeting-btn-icon {
        font-size: 1.3em;
    }

    body.slovo-lms-body .slovo-lms-meeting-btn--sm {
        padding: 6px 10px;
        min-width: 34px;
        min-height: 34px;
    }
}


/* ============================================================
   v2.28-lite — БЕЙДЖ СЕРВИСА И ПРЕВЬЮ КНОПОК В МОДАЛКЕ СВЯЗИ
   ============================================================ */

body.slovo-lms-body .slovo-meeting-service-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: #f0f4f8;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #23282d;
    line-height: 1.2;
    min-height: 38px;
    box-sizing: border-box;
    width: 100%;
}

body.slovo-lms-body .slovo-meeting-service-badge-icon {
    font-size: 18px;
    line-height: 1;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-meeting-service-badge-label {
    line-height: 1.2;
}

body.slovo-lms-body .slovo-meeting-service-badge[data-service="telemost"] {
    background: #eefaf0;
    border-color: #b8e0c0;
    color: #1e7e34;
}
body.slovo-lms-body .slovo-meeting-service-badge[data-service="zoom"] {
    background: #eaf3ff;
    border-color: #b8d4ff;
    color: #2D8CFF;
}
body.slovo-lms-body .slovo-meeting-service-badge[data-service="meet"] {
    background: #e6f5f3;
    border-color: #b2dfdb;
    color: #00897B;
}
body.slovo-lms-body .slovo-meeting-service-badge[data-service="discord"] {
    background: #eef0fe;
    border-color: #c5cae9;
    color: #5865F2;
}
body.slovo-lms-body .slovo-meeting-service-badge[data-service="skype"] {
    background: #e6f7fd;
    border-color: #b3e5fc;
    color: #00AFF0;
}
body.slovo-lms-body .slovo-meeting-service-badge[data-service="telegram"] {
    background: #e6f4fb;
    border-color: #b3e5fc;
    color: #229ED9;
}
body.slovo-lms-body .slovo-meeting-service-badge[data-service="whatsapp"] {
    background: #e8f8ef;
    border-color: #b8e6c9;
    color: #25D366;
}
body.slovo-lms-body .slovo-meeting-service-badge[data-service="jitsi"] {
    background: #e8f1fb;
    border-color: #bbdefb;
    color: #1E88E5;
}
body.slovo-lms-body .slovo-meeting-service-badge[data-service="custom"] {
    background: #eef7fd;
    border-color: #b8d4e8;
    color: #007cba;
}

body.slovo-lms-body .slovo-meeting-preview {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 14px 16px;
    background: #fafbfc;
    border: 1px dashed #d0d8e0;
    border-radius: 10px;
    min-height: 60px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-meeting-preview .slovo-lms-muted {
    font-size: 13px;
    color: #9ca3af;
    font-style: italic;
    margin: 0;
}

body.slovo-lms-body .slovo-meeting-actions-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 6px;
}

body.slovo-lms-body .slovo-meeting-actions-row .slovo-lms-btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    font-family: inherit;
    color: #4a5568;
    background: #f0f4f8;
    border: 1px solid #d0d8e0;
    border-radius: 8px;
    text-decoration: none;
    line-height: 1.2;
    cursor: pointer;
    transition: all 0.15s;
}

body.slovo-lms-body .slovo-meeting-actions-row .slovo-lms-btn-ghost:hover {
    background: #e3f0fc;
    border-color: #007cba;
    color: #007cba;
}

body.slovo-lms-body .slovo-meeting-actions-row .slovo-lms-btn-ghost.is-danger:hover {
    background: #fde8e8;
    border-color: #dc3545;
    color: #dc3545;
}


/* ============================================================
   v2.29 — БЛОК «МАТЕРИАЛЫ» В КЛАССЕ
   ============================================================ */

body.slovo-lms-body .slovo-lms-materials-section {
    margin-bottom: 30px;
}

body.slovo-lms-body .slovo-lms-materials-section .slovo-lms-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 15px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-materials-section .slovo-lms-section-header h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
}

body.slovo-lms-body .slovo-lms-add-material-form {
    margin: 0 0 20px 0;
    padding: 20px 22px;
    background: #f8fafc;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-add-material-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
    margin-bottom: 16px;
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-add-material-grid {
        grid-template-columns: 1fr;
    }
}

body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}

body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field label {
    font-size: 13px;
    font-weight: 600;
    color: #4a5568;
    line-height: 1.3;
    margin: 0;
}

body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field select,
body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field input[type="text"] {
    width: 100%;
    padding: 12px 16px;
    font-size: 15px;
    font-family: inherit;
    line-height: 1.4;
    color: #23282d;
    background: #fff;
    border: 1.5px solid #d0d8e0;
    border-radius: 10px;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    height: 48px;
    outline: none;
    box-shadow: none;
    cursor: pointer;
}

body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field select:disabled {
    background: #f0f4f8;
    color: #9ca3af;
    cursor: not-allowed;
    opacity: 0.7;
}

body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field select:hover:not(:disabled),
body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field input[type="text"]:hover {
    border-color: #b8c4d0;
}

body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field select:focus,
body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field input[type="text"]:focus {
    border-color: #007cba;
    box-shadow: 0 0 0 4px rgba(0,124,186,0.12);
}

body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-field input::placeholder {
    color: #a0aec0;
    opacity: 1;
}

body.slovo-lms-body .slovo-lms-add-material-loading {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.4;
    margin-top: 4px;
}

body.slovo-lms-body .slovo-lms-add-material-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-add-material-actions .slovo-lms-btn {
    min-height: 44px;
    padding: 12px 22px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 10px;
}

body.slovo-lms-body .slovo-lms-add-material-form .slovo-lms-status {
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    margin-bottom: 12px;
}

body.slovo-lms-body .slovo-lms-materials-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.slovo-lms-body .slovo-lms-material-card,
body.slovo-lms-body .slovo-lms-material-start {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    transition: all 0.15s;
    box-sizing: border-box;
    font-family: inherit;
    width: 100%;
    text-align: left;
    cursor: default;
}

body.slovo-lms-body .slovo-lms-material-start {
    cursor: pointer;
    border: 1px solid #e0e6ed;
}

body.slovo-lms-body .slovo-lms-material-card:hover {
    box-shadow: 0 4px 14px rgba(0,0,0,0.06);
    border-color: #b8d4e8;
}

body.slovo-lms-body .slovo-lms-material-start:hover {
    box-shadow: 0 4px 14px rgba(0,0,0,0.06);
    border-color: #b8d4e8;
    transform: translateY(-1px);
}

body.slovo-lms-body .slovo-lms-material-start.is-done {
    background: linear-gradient(180deg, #f6fdf7 0%, #ffffff 100%);
    border-color: #b8e0c0;
}

body.slovo-lms-body .slovo-lms-material-card-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
    border-radius: 12px;
    background: linear-gradient(135deg, #eef7fd 0%, #d4e8f7 100%);
    color: #007cba;
    transition: transform 0.18s;
}

body.slovo-lms-body .slovo-lms-material-card:hover .slovo-lms-material-card-icon,
body.slovo-lms-body .slovo-lms-material-start:hover .slovo-lms-material-card-icon {
    transform: scale(1.05);
}

body.slovo-lms-body .slovo-lms-material-start.is-done .slovo-lms-material-card-icon {
    background: linear-gradient(135deg, #eefaf0 0%, #c8e6c9 100%);
    color: #1e7e34;
}

body.slovo-lms-body .slovo-lms-material-card-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

body.slovo-lms-body .slovo-lms-material-card-title {
    font-size: 15px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-material-card-meta {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.4;
    font-weight: 500;
}

body.slovo-lms-body .slovo-lms-material-card-meta .slovo-lms-muted {
    color: #b8c4d0;
}

body.slovo-lms-body .slovo-lms-material-card-result {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 90px;
    text-align: right;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-material-done {
    color: #1e7e34;
    background: #eefaf0;
    padding: 3px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
}

body.slovo-lms-body .slovo-lms-material-progress {
    color: #b57300;
    background: #fff8e5;
    padding: 3px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
}

body.slovo-lms-body .slovo-lms-material-new {
    color: #007cba;
    background: #eef7fd;
    padding: 3px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
}

body.slovo-lms-body .slovo-lms-material-card-actions {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 4px;
}

body.slovo-lms-body .slovo-lms-material-move-btn,
body.slovo-lms-body .slovo-lms-material-remove-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    line-height: 1;
    color: #6b7280;
    background: #f8fafc;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-material-move-btn:hover:not(:disabled) {
    background: #e3f0fc;
    border-color: #b8d4e8;
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-material-move-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

body.slovo-lms-body .slovo-lms-material-remove-btn:hover {
    background: #fde8e8;
    border-color: #f5b7b7;
    color: #dc3545;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-add-material-form {
        padding: 16px 16px;
    }

    body.slovo-lms-body .slovo-lms-material-card,
    body.slovo-lms-body .slovo-lms-material-start {
        padding: 12px 14px;
        gap: 10px;
    }

    body.slovo-lms-body .slovo-lms-material-card-icon {
        width: 38px;
        height: 38px;
        font-size: 19px;
        border-radius: 10px;
    }

    body.slovo-lms-body .slovo-lms-material-card-title {
        font-size: 14px;
    }

    body.slovo-lms-body .slovo-lms-material-card-result {
        min-width: auto;
        font-size: 12px;
    }

    body.slovo-lms-body .slovo-lms-material-move-btn,
    body.slovo-lms-body .slovo-lms-material-remove-btn {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }

    body.slovo-lms-body .slovo-lms-material-start .slovo-lms-material-card-meta {
        display: none;
    }

    body.slovo-lms-body .slovo-lms-add-material-actions .slovo-lms-btn {
        width: 100%;
        justify-content: center;
    }
}


/* ============================================================
   v2.30 — ФИКС ШИРИНЫ LAYOUT КУРСА + РАСШИРЕНИЕ КЛАССА ДО 1400px
   ============================================================ */

body.slovo-lms-body .slovo-lms-main .slovo-lms-container {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0;
    flex: 1 1 auto;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-step-layout {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    flex: 1 1 auto;
}

body.slovo-lms-body .slovo-lms-step-main {
    flex: 1 1 auto;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-step-content {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-step-content-inner,
body.slovo-lms-body .slovo-lms-course-overview,
body.slovo-lms-body .slovo-lms-lesson-overview {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-dashboard .slovo-lms-step-layout {
    margin: 0;
}

body.slovo-lms-body .slovo-lms-class-page {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
    padding: 24px 20px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-hw-layout {
    width: 100%;
    max-width: 100%;
}

body.slovo-lms-body .slovo-lms-class-page .slovo-lms-class-courses-grid,
body.slovo-lms-body .slovo-lms-class-page .slovo-lms-students-list,
body.slovo-lms-body .slovo-lms-class-page .slovo-lms-materials-list,
body.slovo-lms-body .slovo-lms-class-page .slovo-lms-teacher-courses-grid {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (min-width: 1400px) {
    body.slovo-lms-body .slovo-lms-class-courses-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.slovo-lms-body .slovo-lms-students-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1399px) and (min-width: 901px) {
    body.slovo-lms-body .slovo-lms-class-courses-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.slovo-lms-body .slovo-lms-students-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-class-courses-grid,
    body.slovo-lms-body .slovo-lms-students-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-dashboard .slovo-lms-step-layout {
        margin: 0 -20px;
    }
}


/* ============================================================
   v2.31 — КАБИНЕТ УЧИТЕЛЯ: РАСТЯГИВАЕМ ВСЁ НА 1400px
   ============================================================ */

body.slovo-lms-body .slovo-lms-teacher-dashboard {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section,
body.slovo-lms-body .slovo-lms-teacher-dashboard > .slovo-lms-section {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-summary-grid {
        grid-template-columns: 1fr;
    }
}

body.slovo-lms-body .slovo-lms-summary-card {
    width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-teacher-courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 16px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (min-width: 1400px) {
    body.slovo-lms-body .slovo-lms-teacher-courses-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1399px) and (min-width: 901px) {
    body.slovo-lms-body .slovo-lms-teacher-courses-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-teacher-courses-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-teacher-courses-grid {
        grid-template-columns: 1fr;
    }
}

body.slovo-lms-body .slovo-lms-teacher-course-card {
    width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-matrix-toolbar {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-matrix-wrap {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: auto;
}

body.slovo-lms-body .slovo-lms-matrix {
    width: 100%;
    min-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-matrix-hint {
    width: 100%;
    max-width: 100%;
}

body.slovo-lms-body .slovo-lms-activity-list {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-activity-item {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    grid-template-columns: 240px 1fr 100px 130px;
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-activity-item {
        grid-template-columns: 1fr;
        gap: 6px;
    }
}

body.slovo-lms-body .slovo-lms-quick-actions {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-section-header {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-classes-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (min-width: 1400px) {
    body.slovo-lms-body .slovo-lms-classes-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-classes-grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   v2.32 — МОДАЛКА «СОЗДАТЬ КЛАСС» + КНОПКИ «СОЗДАТЬ» В СЕКЦИЯХ
   ============================================================ */

body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header,
body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 15px;
}

body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header h2,
body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
}

body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header .slovo-lms-btn,
body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header .slovo-lms-btn {
    min-height: 40px;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 10px;
    text-decoration: none;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-modal-window {
    max-width: 500px;
    padding: 32px 32px 28px 32px;
    border-radius: 14px;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-modal-close {
    top: 12px;
    right: 16px;
    font-size: 26px;
    color: #9ca3af;
    background: transparent;
    border-radius: 8px;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: all 0.15s;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-modal-close:hover {
    background: #f0f4f8;
    color: #23282d;
}

body.slovo-lms-body #slovo-create-class-modal h2 {
    font-size: 20px;
    font-weight: 700;
    color: #23282d;
    margin: 0 0 20px 0;
    line-height: 1.3;
    padding-right: 40px;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-row {
    margin-bottom: 18px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-row > label {
    font-size: 13px;
    font-weight: 600;
    color: #4a5568;
    line-height: 1.3;
    margin: 0;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-row .req {
    color: #dc3545;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-row input[type="text"] {
    width: 100%;
    padding: 12px 16px;
    font-size: 15px;
    font-family: inherit;
    line-height: 1.4;
    color: #23282d;
    background: #fafbfc;
    border: 1.5px solid #d0d8e0;
    border-radius: 10px;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    height: 48px;
    outline: none;
    box-shadow: none;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-row input[type="text"]:hover {
    border-color: #b8c4d0;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-row input[type="text"]:focus {
    border-color: #007cba;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,124,186,0.12);
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-row input::placeholder {
    color: #a0aec0;
    opacity: 1;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-lms-radio-group {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-lms-radio {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background: #fafbfc;
    border: 1.5px solid #d0d8e0;
    border-radius: 10px;
    cursor: pointer;
    font-size: 14px;
    color: #4a5568;
    font-weight: 500;
    transition: all 0.15s;
    flex: 1;
    min-width: 140px;
    box-sizing: border-box;
    line-height: 1.3;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-lms-radio:hover {
    border-color: #b8c4d0;
    background: #f0f4f8;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-lms-radio input[type="radio"] {
    margin: 0;
    accent-color: #007cba;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-lms-radio:has(input[type="radio"]:checked) {
    background: #eef7fd;
    border-color: #007cba;
    color: #007cba;
    box-shadow: 0 0 0 3px rgba(0,124,186,0.08);
}

body.slovo-lms-body #slovo-create-class-modal .slovo-lms-radio input[type="radio"]:checked + span {
    color: #007cba;
    font-weight: 600;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-status {
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    margin-bottom: 12px;
    text-align: left;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #f0f4f8;
    flex-wrap: wrap;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-actions .slovo-lms-btn {
    min-height: 44px;
    padding: 12px 22px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 10px;
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-actions #slovo-create-class-submit-btn {
    box-shadow: 0 2px 6px rgba(0,124,186,0.2);
}

body.slovo-lms-body #slovo-create-class-modal .slovo-form-actions #slovo-create-class-submit-btn:hover {
    box-shadow: 0 4px 12px rgba(0,124,186,0.3);
    transform: translateY(-1px);
}

@media (max-width: 600px) {
    body.slovo-lms-body #slovo-create-class-modal .slovo-modal-window {
        padding: 24px 20px 20px 20px;
        border-radius: 12px;
        max-width: 100%;
    }

    body.slovo-lms-body #slovo-create-class-modal h2 {
        font-size: 18px;
        margin-bottom: 18px;
    }

    body.slovo-lms-body #slovo-create-class-modal .slovo-form-row input[type="text"] {
        height: 44px;
        font-size: 14px;
        padding: 10px 14px;
    }

    body.slovo-lms-body #slovo-create-class-modal .slovo-lms-radio-group {
        flex-direction: column;
    }

    body.slovo-lms-body #slovo-create-class-modal .slovo-lms-radio {
        min-width: 100%;
    }

    body.slovo-lms-body #slovo-create-class-modal .slovo-form-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    body.slovo-lms-body #slovo-create-class-modal .slovo-form-actions .slovo-lms-btn {
        width: 100%;
        justify-content: center;
    }
}

body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-classes-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 15px;
}

@media (min-width: 1400px) {
    body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-classes-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-classes-grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   v2.33 — КНОПКИ «СОЗДАТЬ КЛАСС» / «СОЗДАТЬ КУРС»
   ============================================================ */

body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header,
body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 15px;
}

body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header h2,
body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header h2 {
    margin: 0;
    flex: 0 0 auto;
}

body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header .slovo-lms-btn,
body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header .slovo-lms-btn,
body.slovo-lms-body #slovo-open-create-class-btn,
body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header > a.slovo-lms-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 170px;
    width: 170px;
    height: 40px;
    padding: 0 18px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    border-radius: 10px;
    box-sizing: border-box;
    text-align: center;
    white-space: nowrap;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header .slovo-lms-btn::before,
body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header .slovo-lms-btn::before {
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header h2 .slovo-lms-count,
body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header h2 .slovo-lms-count {
    margin-left: 6px;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header,
    body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header {
        gap: 10px;
    }

    body.slovo-lms-body .slovo-lms-teacher-dashboard .slovo-lms-section-header .slovo-lms-btn,
    body.slovo-lms-body .slovo-lms-teacher-classes-section .slovo-lms-section-header .slovo-lms-btn,
    body.slovo-lms-body #slovo-open-create-class-btn {
        width: auto;
        min-width: 0;
        flex: 1 1 auto;
    }
}


/* ============================================================
   v2.23.1 — ФИКС: модалки со скрытым inline-стилем
   ============================================================ */

body.slovo-lms-body .slovo-modal[style*="display:none"],
body.slovo-lms-body .slovo-modal[style*="display: none"],
body.slovo-lms-body .slovo-modal[style*="display: none;"],
body.slovo-lms-body .slovo-modal[style*="display:none;"] {
    display: none;
}


/* ============================================================
   v2.23.2 — ЖЁСТКИЙ ФИКС: растягиваем редактор курса
   ============================================================ */

body.slovo-lms-body .slovo-course-edit-front-wrap {
    max-width: 100%;
    width: 100%;
    margin: 0;
    padding: 20px;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-course-edit-front-wrap .slovo-lms-container,
body.slovo-lms-body .slovo-course-edit-front-wrap .slovo-lms-dashboard {
    max-width: 100%;
    width: 100%;
    margin: 0;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-ce-layout {
    display: flex;
    width: 100%;
    max-width: 100%;
    margin: 0;
    gap: 20px;
    box-sizing: border-box;
    align-items: flex-start;
}

body.slovo-lms-body .slovo-ce-main {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
    min-width: 0;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-ce-content {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-ce-overview,
body.slovo-lms-body .slovo-ce-form {
    max-width: 100%;
    width: 100%;
    margin: 0;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-ce-sidebar {
    flex: 0 0 360px;
    width: 360px;
    max-width: 380px;
    box-sizing: border-box;
}


/* ============================================================
   v2.34 — UX-УЛУЧШЕНИЯ УРОКА (P2.5)
   ============================================================
     • Шапка урока: акцент «✅ Пройдено X из Y этапов».
     • Бейдж-статус этапа в списке урока:
         .slovo-lms-status-badge--new | --progress | --done
     • Иконка статуса урока в карточке обзора курса:
         .slovo-lms-course-lesson-status-icon--done
         .slovo-lms-course-lesson-status-icon--progress
         .slovo-lms-course-lesson-status-icon--new
         .slovo-lms-course-lesson-status-icon--locked
   ============================================================ */

/* ---------- 1. Шапка урока: акцент на счётчике этапов ---------- */

body.slovo-lms-body .slovo-lms-lesson-progress-label {
    font-size: 13px;
    color: #6b7280;
    margin-bottom: 8px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-lesson-progress-label--strong {
    font-size: 14px;
    font-weight: 600;
    color: #23282d;
}

body.slovo-lms-body .slovo-lms-lesson-progress-percent {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    color: #007cba;
    padding: 1px 8px;
    border-radius: 10px;
    background: #eef7fd;
    margin-left: 2px;
    line-height: 1.5;
}

body.slovo-lms-body .slovo-lms-lesson-progress-fill.is-done {
    background: linear-gradient(90deg, #28a745 0%, #4caf50 100%);
}

/* ---------- 2. Бейдж-статус этапа в списке урока ---------- */

body.slovo-lms-body .slovo-lms-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    border-radius: 14px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
    text-align: center;
    box-sizing: border-box;
    border: 1px solid transparent;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

body.slovo-lms-body .slovo-lms-status-badge--sm {
    padding: 3px 10px;
    font-size: 11px;
    border-radius: 12px;
}

body.slovo-lms-body .slovo-lms-status-badge--new {
    background: #f0f4f8;
    color: #6b7280;
    border-color: #e0e6ed;
}

body.slovo-lms-body .slovo-lms-status-badge--progress {
    background: #fff8e5;
    color: #b57300;
    border-color: #f0c674;
}

body.slovo-lms-body .slovo-lms-status-badge--done {
    background: #eefaf0;
    color: #1e7e34;
    border-color: #a8d8b3;
}

body.slovo-lms-body .slovo-lms-step-result {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    min-width: 110px;
    justify-content: flex-end;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-step-result {
        min-width: 0;
    }
    body.slovo-lms-body .slovo-lms-status-badge--sm {
        padding: 2px 8px;
        font-size: 10px;
    }
}

/* ---------- 3. Иконка статуса урока в обзоре курса ---------- */

body.slovo-lms-body .slovo-lms-course-lesson-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 50%;
    font-size: 14px;
    line-height: 1;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-course-lesson-status-icon--done {
    background: #eefaf0;
    color: #1e7e34;
    box-shadow: 0 0 0 2px rgba(40,167,69,0.12);
}

body.slovo-lms-body .slovo-lms-course-lesson-status-icon--progress {
    background: #fff8e5;
    color: #b57300;
    box-shadow: 0 0 0 2px rgba(181,115,0,0.12);
}

body.slovo-lms-body .slovo-lms-course-lesson-status-icon--new {
    background: #eef7fd;
    color: #007cba;
    box-shadow: 0 0 0 2px rgba(0,124,186,0.10);
}

body.slovo-lms-body .slovo-lms-course-lesson-status-icon--locked {
    background: #f0f4f8;
    color: #9ca3af;
}

body.slovo-lms-body .slovo-lms-course-lesson-result {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
}


/* ============================================================
   v2.35 — ДАТЫ КЛАССА («Учебный год») (P3.4)
   ============================================================ */

body.slovo-lms-body .slovo-lms-class-dates-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 6px 0 8px 0;
    padding: 6px 14px;
    background: linear-gradient(135deg, #eef7fd 0%, #d4e8f7 100%);
    border: 1px solid #b8d4e8;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: #005a87;
    line-height: 1.4;
    box-sizing: border-box;
    max-width: 100%;
}

body.slovo-lms-body .slovo-lms-class-dates-range {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    color: #005a87;
}

body.slovo-lms-body .slovo-lms-class-dates-year {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 10px;
    background: #fff;
    border: 1px solid #b8d4e8;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
    color: #007cba;
    white-space: nowrap;
    letter-spacing: 0.3px;
}

body.slovo-lms-body .slovo-lms-class-card-v2 .slovo-lms-class-dates-badge,
body.slovo-lms-body .slovo-lms-class-card-v2-body .slovo-lms-class-dates-badge {
    margin: 2px 0 4px 0;
    padding: 4px 10px;
    background: #f8fafc;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 600;
    color: #4a5568;
    gap: 6px;
}

body.slovo-lms-body .slovo-lms-class-card-v2 .slovo-lms-class-dates-range {
    color: #4a5568;
}

body.slovo-lms-body .slovo-lms-class-card-v2 .slovo-lms-class-dates-year {
    padding: 1px 8px;
    font-size: 11px;
    color: #007cba;
    border-color: #d0e0ee;
}

body.slovo-lms-body .slovo-form-row input[type="date"] {
    width: 100%;
    padding: 12px 16px;
    font-size: 15px;
    font-family: inherit;
    line-height: 1.4;
    color: #23282d;
    background: #fafbfc;
    border: 1.5px solid #d0d8e0;
    border-radius: 10px;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    height: 48px;
    outline: none;
    box-shadow: none;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

body.slovo-lms-body .slovo-form-row input[type="date"]:hover {
    border-color: #b8c4d0;
}

body.slovo-lms-body .slovo-form-row input[type="date"]:focus {
    border-color: #007cba;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,124,186,0.12);
}

body.slovo-lms-body .slovo-form-row input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.15s;
}

body.slovo-lms-body .slovo-form-row input[type="date"]::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

body.slovo-lms-body .slovo-lms-class-header-actions #slovo-open-class-dates-btn {
    background: #eef7fd;
    border: 1px solid #b8d4e8;
    color: #005a87;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

body.slovo-lms-body .slovo-lms-class-header-actions #slovo-open-class-dates-btn:hover {
    background: #d4e8f7;
    border-color: #007cba;
    color: #007cba;
}

body.slovo-lms-body #slovo-class-dates-modal .slovo-modal-window {
    max-width: 500px;
}

body.slovo-lms-body #slovo-class-dates-modal h2 {
    margin: 0 0 15px 0;
}

body.slovo-lms-body #slovo-class-dates-modal .slovo-form-hint {
    font-size: 12px;
    color: #9ca3af;
    line-height: 1.5;
    margin-top: 4px;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-class-dates-badge {
        gap: 4px;
        padding: 6px 10px;
        font-size: 12px;
    }

    body.slovo-lms-body .slovo-lms-class-dates-year {
        font-size: 11px;
        padding: 1px 8px;
    }

    body.slovo-lms-body .slovo-lms-class-card-v2 .slovo-lms-class-dates-badge {
        font-size: 10px;
        padding: 3px 8px;
    }
}


/* ============================================================
   v2.36 — ПОПОВЕРЫ РЯДОМ С КНОПКАМИ (.slovo-modal--anchored)
   ============================================================
   DEPRECATED (v2.39).
   Поповеры-якоря больше не используются: все модалки LMS
   открываются по центру экрана. Класс .slovo-modal--anchored
   нигде в разметке не применяется.

   Правила оставлены как no-op на случай старых кэшей HTML
   и будут удалены в следующей версии файла.
   ============================================================ */

body.slovo-lms-body .slovo-modal.slovo-modal--anchored {
    align-items: center;
    justify-content: center;
    padding: 20px;
}

body.slovo-lms-body .slovo-modal.slovo-modal--anchored .slovo-modal-window {
    position: relative;
    left: auto;
    top: auto;
    margin: 0;
}

/* ============================================================
   v2.37 — ФИКС: непрозрачное окно модалки
   ============================================================ */

body.slovo-lms-body .slovo-modal .slovo-modal-window,
body.slovo-lms-body .slovo-modal.slovo-modal--anchored .slovo-modal-window {
    background: #ffffff;
    color: #23282d;
    opacity: 1;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

body.slovo-lms-body .slovo-modal .slovo-modal-window * {
    --wp--preset--color--base: #ffffff;
}


/* ============================================================
   v2.38 — НОВЫЕ КЛАССЫ ИЗ v16 STUDENT_COURSE
   ============================================================
   В v16 появились:
     • Страница ДЗ: .slovo-lms-hw-layout (sidebar + main)
     • Карточки ДЗ по датам: .slovo-lms-hw-date-item
     • Карточка ДЗ: .slovo-lms-homework-card (уже было)
     • Блок ДЗ в классе: .slovo-lms-hw-link-card
     • Статусы этапов: .slovo-lms-status-badge (уже есть)
   ============================================================ */

/* ---------- 1. ОБЩИЙ LAYOUT ДЗ ---------- */

body.slovo-lms-body .slovo-lms-hw-layout {
    display: flex;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    min-height: 70vh;
}

body.slovo-lms-body .slovo-lms-hw-sidebar {
    flex: 0 0 280px;
    width: 280px;
    min-width: 220px;
    max-width: 320px;
    background: #f8fafc;
    border-right: 1px solid #e0e6ed;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-hw-main {
    flex: 1 1 auto;
    min-width: 0;
    background: #fff;
    padding: 24px 28px;
    box-sizing: border-box;
    overflow-x: auto;
}

/* ---------- 2. ШАПКА САЙДБАРА ДЗ ---------- */

body.slovo-lms-body .slovo-lms-hw-sidebar-header {
    flex-shrink: 0;
    padding: 14px 16px;
    background: #fff;
    border-bottom: 1px solid #e0e6ed;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.slovo-lms-body .slovo-lms-hw-back-inline {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: #6b7280;
    text-decoration: none;
    transition: color 0.15s;
}

body.slovo-lms-body .slovo-lms-hw-back-inline:hover {
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-hw-sidebar-title {
    font-size: 15px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
}

body.slovo-lms-body .slovo-lms-hw-sidebar-total {
    font-size: 12px;
    color: #6b7280;
    font-weight: 500;
}

body.slovo-lms-body .slovo-lms-hw-sidebar-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 8px 0;
}

body.slovo-lms-body .slovo-lms-hw-sidebar-body::-webkit-scrollbar {
    width: 6px;
}
body.slovo-lms-body .slovo-lms-hw-sidebar-body::-webkit-scrollbar-thumb {
    background: #c8d0da;
    border-radius: 3px;
}

body.slovo-lms-body .slovo-lms-hw-sidebar-empty {
    padding: 20px 14px;
    color: #9ca3af;
    font-size: 13px;
    text-align: center;
    font-style: italic;
}

/* ---------- 3. ПУНКТ ДАТЫ В САЙДБАРЕ ДЗ ---------- */

body.slovo-lms-body .slovo-lms-hw-date-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 16px;
    text-decoration: none;
    color: #23282d;
    border-left: 3px solid transparent;
    transition: background 0.15s, border-color 0.15s;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-hw-date-item:hover {
    background: #eef2f7;
    color: #23282d;
}

body.slovo-lms-body .slovo-lms-hw-date-item.is-current {
    background: #e3f0fc;
    border-left-color: #007cba;
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-hw-date-item-label {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

body.slovo-lms-body .slovo-lms-hw-date-item-counts {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

body.slovo-lms-body .slovo-lms-hw-date-count {
    font-size: 11px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 8px;
    background: #f0f4f8;
    color: #6b7280;
    line-height: 1.5;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-hw-date-count-new {
    background: #fff3cd;
    color: #856404;
}

body.slovo-lms-body .slovo-lms-hw-date-count-progress {
    background: #cce5ff;
    color: #004085;
}

body.slovo-lms-body .slovo-lms-hw-date-count-done {
    background: #d4edda;
    color: #155724;
}

/* ---------- 4. ГЛАВНАЯ КОЛОНКА ДЗ ---------- */

body.slovo-lms-body .slovo-lms-hw-main-header {
    margin-bottom: 20px;
    padding-bottom: 18px;
    border-bottom: 1px solid #eef2f5;
}

body.slovo-lms-body .slovo-lms-hw-main-title {
    margin: 0 0 8px 0;
    font-size: 22px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.25;
}

body.slovo-lms-body .slovo-lms-hw-main-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.5;
}

body.slovo-lms-body .slovo-lms-hw-exercise-wrap {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* ---------- 5. БЛОК ДЗ В КЛАССЕ — карточка-ссылка ---------- */

body.slovo-lms-body .slovo-lms-hw-link-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    transition: box-shadow 0.18s, border-color 0.18s, transform 0.18s;
    box-sizing: border-box;
    width: 100%;
}

body.slovo-lms-body .slovo-lms-hw-link-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.08);
    border-color: #b8d4e8;
    transform: translateY(-2px);
    color: inherit;
}

body.slovo-lms-body .slovo-lms-hw-link-card-icon {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    line-height: 1;
    border-radius: 14px;
    background: linear-gradient(135deg, #eef7fd 0%, #d4e8f7 100%);
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-hw-link-card-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.slovo-lms-body .slovo-lms-hw-link-card-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-lms-hw-link-card-count {
    display: inline-block;
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
    background: #f0f4f8;
    padding: 2px 10px;
    border-radius: 10px;
}

body.slovo-lms-body .slovo-lms-hw-link-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

body.slovo-lms-body .slovo-lms-hw-link-card-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-lms-hw-link-card-badge-new {
    background: #fff3cd;
    color: #856404;
}

body.slovo-lms-body .slovo-lms-hw-link-card-badge-progress {
    background: #cce5ff;
    color: #004085;
}

body.slovo-lms-body .slovo-lms-hw-link-card-badge-done {
    background: #d4edda;
    color: #155724;
}

body.slovo-lms-body .slovo-lms-hw-link-card-arrow {
    flex-shrink: 0;
    font-size: 22px;
    color: #b8c4d0;
    transition: color 0.18s, transform 0.18s;
}

body.slovo-lms-body .slovo-lms-hw-link-card:hover .slovo-lms-hw-link-card-arrow {
    color: #007cba;
    transform: translateX(3px);
}

/* ---------- 6. МОБИЛЬНЫЙ АДАПТИВ ДЗ ---------- */

@media (max-width: 900px) {
    body.slovo-lms-body .slovo-lms-hw-layout {
        flex-direction: column;
        min-height: auto;
    }

    body.slovo-lms-body .slovo-lms-hw-sidebar {
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
        max-width: none;
        border-right: none;
        border-bottom: 1px solid #e0e6ed;
        max-height: 40vh;
        overflow-y: auto;
    }

    body.slovo-lms-body .slovo-lms-hw-sidebar-body {
        max-height: 30vh;
    }

    body.slovo-lms-body .slovo-lms-hw-main {
        padding: 16px 14px;
    }

    body.slovo-lms-body .slovo-lms-hw-main-title {
        font-size: 18px;
    }
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-hw-link-card {
        padding: 12px 14px;
        gap: 12px;
    }

    body.slovo-lms-body .slovo-lms-hw-link-card-icon {
        width: 44px;
        height: 44px;
        font-size: 22px;
        border-radius: 12px;
    }

    body.slovo-lms-body .slovo-lms-hw-link-card-title {
        font-size: 15px;
    }
}

/* ============================================================
   v2.39 — УНИФИКАЦИЯ МОДАЛОК ПО КЛАССУ .is-visible
   ============================================================
   Раньше модалки открывались через inline style="display:none/flex".
   Свежие модули (class-slovo-classes.php v15, модалка «Создать класс»)
   открывают их классом .is-visible.

   Правила ниже:
     - .slovo-modal без .is-visible и без inline style="display:flex" — скрыт;
     - .slovo-modal.is-visible — показан как flex;
     - прежнее поведение (inline style="display:flex") сохраняется,
       потому что inline-стиль всегда перебивает CSS-правило display:none.
   ============================================================ */

body.slovo-lms-body .slovo-modal {
    display: none;
}

body.slovo-lms-body .slovo-modal.is-visible {
    display: flex;
}

/* Совместимость со старыми модалками, которые ещё открываются
   через inline style="display:flex" (например, модалка курса). */
body.slovo-lms-body .slovo-modal[style*="display:flex"],
body.slovo-lms-body .slovo-modal[style*="display: flex"] {
    display: flex;
}

/* ============================================================
   v2.40 — ЖЁСТКАЯ УНИФИКАЦИЯ ВСЕХ МОДАЛОК LMS
   ============================================================
   Блок стоит ПОСЛЕДНИМ в файле. Все свойства с !important.
   Гарантированно перебивает:
     - старые правила .slovo-modal--anchored (v2.36);
     - старые правила .slovo-modal { display: flex } (базовые);
     - инлайн-стили окна, которые когда-то ставил positionAnchoredModal;
     - любые другие переопределения выше по файлу.

   Цель: ВСЕ модалки LMS выглядят одинаково —
   по центру экрана, overlay на всю страницу, крестик без рамки.
   ============================================================ */

/* 1. Видимость: по умолчанию скрыто, показываем только
      по .is-visible или inline style="display:flex". */
html body.slovo-lms-body .slovo-modal {
    display: none !important;
}
html body.slovo-lms-body .slovo-modal.is-visible {
    display: flex !important;
}
html body.slovo-lms-body .slovo-modal[style*="display:flex"],
html body.slovo-lms-body .slovo-modal[style*="display: flex"],
html body.slovo-lms-body .slovo-modal[style*="display:flex;"],
html body.slovo-lms-body .slovo-modal[style*="display: flex;"] {
    display: flex !important;
}

/* 2. Контейнер модалки: всегда на весь экран, всегда по центру,
      независимо от класса --anchored и остатков старых правил. */
html body.slovo-lms-body .slovo-modal,
html body.slovo-lms-body .slovo-modal.slovo-modal--anchored {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 20px !important;
    box-sizing: border-box !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 100000 !important;
    background: transparent !important;
}
html body.slovo-lms-body .slovo-modal.is-visible,
html body.slovo-lms-body .slovo-modal.slovo-modal--anchored.is-visible {
    display: flex !important;
}

/* 3. Overlay: на весь экран. */
html body.slovo-lms-body .slovo-modal > .slovo-modal-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    height: auto !important;
    background: rgba(0, 0, 0, 0.55) !important;
    cursor: pointer !important;
}

/* 4. Окно модалки: сбрасываем любые инлайн-сдвиги,
      которые могли остаться от старого positionAnchoredModal(). */
html body.slovo-lms-body .slovo-modal > .slovo-modal-window,
html body.slovo-lms-body .slovo-modal.slovo-modal--anchored > .slovo-modal-window {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 0 !important;
    max-width: 560px !important;
    width: 100% !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
}

/* 5. Убираем стрелочку поповера, если она ещё где-то рендерится. */
html body.slovo-lms-body .slovo-modal > .slovo-modal-window::before,
html body.slovo-lms-body .slovo-modal > .slovo-modal-window::after,
html body.slovo-lms-body .slovo-modal.slovo-modal--anchored > .slovo-modal-window::before,
html body.slovo-lms-body .slovo-modal.slovo-modal--anchored > .slovo-modal-window::after {
    display: none !important;
    content: none !important;
}

/* 6. Крестик закрытия: без рамки, единый вид. */
html body.slovo-lms-body .slovo-modal > .slovo-modal-window > .slovo-modal-close,
html body.slovo-lms-body .slovo-modal.slovo-modal--anchored > .slovo-modal-window > .slovo-modal-close {
    position: absolute !important;
    top: 12px !important;
    right: 16px !important;
    width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    font-size: 26px !important;
    line-height: 1 !important;
    color: #9ca3af !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.15s, color 0.15s !important;
    font-family: inherit !important;
    font-weight: 400 !important;
}
html body.slovo-lms-body .slovo-modal > .slovo-modal-window > .slovo-modal-close:hover,
html body.slovo-lms-body .slovo-modal.slovo-modal--anchored > .slovo-modal-window > .slovo-modal-close:hover {
    background: #f0f4f8 !important;
    color: #23282d !important;
}

/* ============================================================
   v2.41 — ПЕРЕНОС УНИКАЛЬНЫХ ПРАВИЛ ИЗ class-slovo-classes.php
   ============================================================
   В class-slovo-classes.php был инлайн-<style> (строки 2183–2708)
   с правилами карточки ученика, модалок родителей, безопасности,
   ссылки для входа. Все эти правила перенесены сюда.

   После добавления этого блока инлайн-<style> из
   class-slovo-classes.php можно удалить — стили не потеряются.

   Селекторы:
     • .slovo-lms-student-card*        — карточка ученика
     • .slovo-lms-student-actions*     — кнопки 🔗/🚫/👨‍👩‍👧/⚠️
     • .slovo-lms-students-list        — сетка карточек
     • .slovo-parents-*                — модалка «Родители»
     • .slovo-security-*               — модалка «Безопасность»
     • .slovo-login-link-*             — модалка «Ссылка для входа»
     • .slovo-lms-class-type-icon      — иконка типа класса в шапке
     • .slovo-modal--stacked           — вложенная модалка поверх
   ============================================================ */

/* ---------- 1. ИКОНКА ТИПА КЛАССА В ШАПКЕ ---------- */

body.slovo-lms-body .slovo-lms-class-type-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: linear-gradient(135deg, #eef7fd 0%, #d4e8f7 100%);
    font-size: 22px;
    line-height: 1;
    flex-shrink: 0;
}

/* ---------- 2. СЕТКА КАРТОЧЕК УЧЕНИКОВ ---------- */

body.slovo-lms-body .slovo-lms-students-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

@media (min-width: 901px) {
    body.slovo-lms-body .slovo-lms-students-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1400px) {
    body.slovo-lms-body .slovo-lms-students-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ---------- 3. КАРТОЧКА УЧЕНИКА ---------- */

body.slovo-lms-body .slovo-lms-student-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}

body.slovo-lms-body .slovo-lms-student-card:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
    border-color: #b8d4e8;
    transform: translateY(-1px);
}

body.slovo-lms-body .slovo-lms-student-card-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, #eef7fd 0%, #d4e8f7 100%);
    color: #007cba;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
}

body.slovo-lms-body .slovo-lms-student-card-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

body.slovo-lms-body .slovo-lms-student-card-name {
    font-size: 15px;
    font-weight: 700;
    color: #23282d;
    line-height: 1.3;
    word-break: break-word;
}

body.slovo-lms-body .slovo-lms-student-card-email {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.3;
    word-break: break-all;
}

body.slovo-lms-body .slovo-lms-student-card-joined {
    font-size: 11px;
    color: #9ca3af;
    line-height: 1.3;
    margin-top: 2px;
    font-style: italic;
}

body.slovo-lms-body .slovo-lms-student-card-remove {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    margin-left: 4px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 6px;
    color: #dc3545;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s;
}

body.slovo-lms-body .slovo-lms-student-card-remove:hover {
    background: #fde8e8;
    border-color: #f5b7b7;
    color: #a71d2a;
}

/* ---------- 4. КНОПКИ ДЕЙСТВИЙ В КАРТОЧКЕ УЧЕНИКА ---------- */

body.slovo-lms-body .slovo-lms-student-actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding-left: 14px;
    border-left: 1px solid #f0f4f8;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-lms-student-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    font-size: 14px;
    line-height: 1;
    font-family: inherit;
    background: #f8fafc;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    color: #4a5568;
    box-sizing: border-box;
}

body.slovo-lms-body .slovo-lms-student-action-btn:hover {
    background: #e3f0fc;
    border-color: #b8d4e8;
    color: #007cba;
}

body.slovo-lms-body .slovo-lms-student-action-btn:disabled {
    opacity: 0.6;
    cursor: wait;
}

body.slovo-lms-body .slovo-lms-student-action-btn--reset:hover {
    background: #fde8e8;
    border-color: #f5b7b7;
    color: #dc3545;
}

body.slovo-lms-body .slovo-lms-student-action-btn--parents:hover {
    background: #f3e5f5;
    border-color: #ce93d8;
    color: #7b1fa2;
}

body.slovo-lms-body .slovo-lms-student-action-btn--warn {
    background: #fff8e5;
    border-color: #f0c674;
    color: #b57300;
    animation: slovoPulseWarn 2s infinite;
}

body.slovo-lms-body .slovo-lms-student-action-btn--warn:hover {
    background: #ffe8a1;
    border-color: #b57300;
    color: #8a5400;
}

@keyframes slovoPulseWarn {
    0%   { box-shadow: 0 0 0 0 rgba(181, 115, 0, 0.4); }
    50%  { box-shadow: 0 0 0 4px rgba(181, 115, 0, 0); }
    100% { box-shadow: 0 0 0 0 rgba(181, 115, 0, 0); }
}

/* ---------- 5. МОДАЛКА «РОДИТЕЛИ» ---------- */

body.slovo-lms-body .slovo-parents-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
}

body.slovo-lms-body .slovo-parent-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: #f8fafc;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
}

body.slovo-lms-body .slovo-parent-info {
    flex: 1;
    min-width: 0;
}

body.slovo-lms-body .slovo-parent-name {
    font-size: 14px;
    font-weight: 600;
    color: #23282d;
    line-height: 1.3;
    word-break: break-word;
}

body.slovo-lms-body .slovo-parent-email {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.3;
    word-break: break-all;
}

body.slovo-lms-body .slovo-parent-detach-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 6px;
    color: #dc3545;
    font-size: 14px;
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.15s;
}

body.slovo-lms-body .slovo-parent-detach-btn:hover {
    background: #fde8e8;
    border-color: #f5b7b7;
}

body.slovo-lms-body .slovo-parents-actions {
    padding-top: 14px;
    border-top: 1px solid #f0f4f8;
    display: flex;
    justify-content: flex-end;
}

/* ---------- 6. МОДАЛКА «БЕЗОПАСНОСТЬ» (IP-предупреждение) ---------- */

body.slovo-lms-body .slovo-security-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px;
    background: #fff8e5;
    border-left: 4px solid #ffa000;
    border-radius: 8px;
    margin-bottom: 14px;
}

body.slovo-lms-body .slovo-security-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    font-size: 14px;
}

body.slovo-lms-body .slovo-security-label {
    color: #7a4f00;
    font-weight: 600;
    flex-shrink: 0;
}

body.slovo-lms-body .slovo-security-value {
    color: #23282d;
    font-family: monospace;
    font-size: 13px;
    text-align: right;
    word-break: break-all;
}

body.slovo-lms-body .slovo-security-note {
    font-size: 13px;
    color: #6b7280;
    line-height: 1.5;
    margin-bottom: 14px;
}

/* ---------- 7. МОДАЛКА «ССЫЛКА ДЛЯ ВХОДА» ---------- */

body.slovo-lms-body .slovo-login-link-box {
    margin-bottom: 12px;
}

body.slovo-lms-body .slovo-login-link-textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid #d0d8e0;
    border-radius: 8px;
    font-family: monospace;
    font-size: 12px;
    resize: none;
    box-sizing: border-box;
    background: #fafbfc;
}

body.slovo-lms-body .slovo-login-link-meta {
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 12px;
}

/* ---------- 8. ВЛОЖЕННАЯ МОДАЛКА (поверх другой) ---------- */

body.slovo-lms-body .slovo-modal--stacked.is-visible {
    z-index: 100001;
}

/* ---------- 9. МОБИЛЬНЫЙ АДАПТИВ (карточки учеников) ---------- */

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-student-card {
        padding: 12px 14px;
        gap: 10px;
        flex-wrap: wrap;
    }

    body.slovo-lms-body .slovo-lms-student-card-icon {
        width: 38px;
        height: 38px;
        font-size: 16px;
        border-radius: 10px;
    }

    body.slovo-lms-body .slovo-lms-student-card-name {
        font-size: 14px;
    }

    body.slovo-lms-body .slovo-lms-student-card-email {
        font-size: 11px;
    }

    body.slovo-lms-body .slovo-lms-student-actions {
        padding-left: 0;
        border-left: none;
        width: 100%;
        justify-content: flex-end;
    }

    body.slovo-lms-body .slovo-lms-student-action-btn {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }
}
/* ============================================================
   v2.43: ТОЛЬКО КОМПАКТНЫЕ ЗАГОЛОВКИ НА ПОДСТРАНИЦАХ КАБИНЕТА
   ============================================================
   На корне кабинета (/slovo-dashboard/) тема выводит крупный
   <h1 class="slovo-page__title">Личный кабинет</h1> — это точка
   входа, её оставляем.

   На подстраницах (курс, урок, этап, ДЗ, класс, курсы учителя,
   отчёты, редактор курса, ребёнок родителя) заголовок рисует сам
   модуль плагина своим компактным классом:
     • .slovo-cl-title           (Мои курсы)
     • .slovo-rp-title           (Отчёты)
     • .slovo-lms-hw-main-title  (Домашние задания)
     • .slovo-ce-overview-title  (Редактор курса)
     • .slovo-lms-course-tree-title / -lesson-steps-title / -course-step-title
   поэтому дублирующий крупный <h1> темы скрываем целиком вместе
   с его шапкой (линия-разделитель .slovo-page__header).

   Класс body.slovo-lms-subpage добавляет тема (functions.php).
   ============================================================ */

body.slovo-lms-body.slovo-lms-subpage .slovo-page__header {
    display: none;
}

body.slovo-lms-body.slovo-lms-subpage .slovo-page {
    padding-top: var(--slovo-space-lg, 24px);
}
/* ============================================================
   ЗАДАЧА 1 — ТАКТИЛЬНАЯ ОБРАТНАЯ СВЯЗЬ КНОПОК
   ============================================================
   Единый класс .slovo-btn-pressable применяется ко всем кнопкам
   фронтенда (<button>, <a>, <div>):
     • кликабельная область — вся кнопка (inline-flex);
     • :active / .is-pressed — «продавливание»;
     • primary — сильнее, secondary — слабее, danger — покачивание;
     • body.slovo-age-child — анимация ярче (для детей 7–11);
     • .is-loading — спиннер на время AJAX и блокировка повторного клика.
   ============================================================ */

.slovo-btn-pressable,
body.slovo-lms-body .slovo-btn-pressable {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.1s ease, box-shadow 0.1s ease !important;
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: none;
    user-select: none;
}

.slovo-btn-pressable:active,
.slovo-btn-pressable.is-pressed,
body.slovo-lms-body .slovo-btn-pressable:active,
body.slovo-lms-body .slovo-btn-pressable.is-pressed {
    transform: scale(0.97) !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

/* primary — сильное «продавливание» */
.slovo-btn-pressable.slovo-lms-btn-primary:active,
.slovo-btn-pressable.slovo-lms-btn-primary.is-pressed,
.slovo-btn-pressable.slovo-btn-primary:active,
.slovo-btn-pressable.slovo-btn-primary.is-pressed,
.slovo-btn-pressable.slovo-btn--primary:active,
.slovo-btn-pressable.slovo-btn--primary.is-pressed,
.slovo-btn-pressable.is-primary:active,
.slovo-btn-pressable.is-primary.is-pressed {
    transform: scale(0.95) !important;
}

/* secondary / ghost — слабое */
.slovo-btn-pressable.slovo-lms-btn-secondary:active,
.slovo-btn-pressable.slovo-lms-btn-secondary.is-pressed,
.slovo-btn-pressable.slovo-lms-btn-ghost:active,
.slovo-btn-pressable.slovo-lms-btn-ghost.is-pressed,
.slovo-btn-pressable.slovo-btn-secondary:active,
.slovo-btn-pressable.slovo-btn-secondary.is-pressed,
.slovo-btn-pressable.slovo-btn--secondary:active,
.slovo-btn-pressable.slovo-btn--secondary.is-pressed,
.slovo-btn-pressable.slovo-btn--ghost:active,
.slovo-btn-pressable.slovo-btn--ghost.is-pressed {
    transform: scale(0.98) !important;
}

/* danger («Удалить») — лёгкое покачивание */
.slovo-btn-pressable.slovo-lms-btn-danger:active,
.slovo-btn-pressable.slovo-lms-btn-danger.is-pressed,
.slovo-btn-pressable.slovo-btn-danger:active,
.slovo-btn-pressable.slovo-btn-danger.is-pressed,
.slovo-btn-pressable.is-danger:active,
.slovo-btn-pressable.is-danger.is-pressed {
    animation: slovo-btn-shake 0.3s ease;
}

@keyframes slovo-btn-shake {
    0%, 100% { transform: translateX(0) scale(0.97); }
    25%      { transform: translateX(-2px) scale(0.97); }
    75%      { transform: translateX(2px) scale(0.97); }
}

/* Дети (7–11): анимация ярче */
body.slovo-age-child .slovo-btn-pressable:active,
body.slovo-age-child .slovo-btn-pressable.is-pressed,
body.slovo-age-child.slovo-lms-body .slovo-btn-pressable:active,
body.slovo-age-child.slovo-lms-body .slovo-btn-pressable.is-pressed {
    transform: scale(0.93) !important;
}

body.slovo-age-child .slovo-btn-pressable.slovo-lms-btn-primary:active,
body.slovo-age-child .slovo-btn-pressable.slovo-lms-btn-primary.is-pressed {
    transform: scale(0.91) !important;
}

body.slovo-age-child .slovo-btn-pressable.slovo-lms-btn-secondary:active,
body.slovo-age-child .slovo-btn-pressable.slovo-lms-btn-secondary.is-pressed {
    transform: scale(0.95) !important;
}

/* Спиннер во время AJAX + блокировка повторного клика */
.slovo-btn-pressable.is-loading,
body.slovo-lms-body .slovo-btn-pressable.is-loading {
    position: relative;
    pointer-events: none !important;
    opacity: 0.85;
}

.slovo-btn-pressable.is-loading::after,
body.slovo-lms-body .slovo-btn-pressable.is-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid rgba(0, 124, 186, 0.25);
    border-top-color: #007cba;
    border-radius: 50%;
    animation: slovo-btn-spin 0.6s linear infinite;
}

.slovo-btn-pressable.slovo-lms-btn-primary.is-loading::after,
.slovo-btn-pressable.slovo-lms-btn-success.is-loading::after,
.slovo-btn-pressable.is-primary.is-loading::after,
.slovo-btn-pressable.slovo-lms-btn-danger.is-loading::after {
    border-color: rgba(255, 255, 255, 0.45);
    border-top-color: #fff;
}

@keyframes slovo-btn-spin {
    to { transform: rotate(360deg); }
}

/* Отключённые кнопки не «продавливаются» */
.slovo-btn-pressable:disabled:active,
.slovo-btn-pressable.is-disabled:active,
.slovo-btn-pressable:disabled.is-pressed,
.slovo-btn-pressable.is-disabled.is-pressed {
    transform: none !important;
    box-shadow: none !important;
    animation: none !important;
}

/* ============================================================
   ЗАДАЧА 4 — ПЕРЕКЛЮЧАТЕЛЬ ПРОИЗНОШЕНИЯ (GB/US/AU/CA)
   ============================================================ */

.slovo-tts-variants {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0 0 10px 0;
    padding: 3px;
    background: #f0f4f8;
    border-radius: 999px;
}

.slovo-tts-variable,
.slovo-tts-variant {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 30px;
    padding: 2px 6px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    filter: grayscale(1);
    opacity: 0.55;
    transition: transform 0.1s ease, box-shadow 0.1s ease, opacity 0.15s, filter 0.15s, background 0.15s;
}

.slovo-tts-variant:hover,
.slovo-tts-variable:hover {
    opacity: 0.9;
    filter: grayscale(0.3);
}

.slovo-tts-variant.is-active,
.slovo-tts-variable.is-active {
    background: #fff;
    border-color: #007cba;
    box-shadow: 0 1px 6px rgba(0, 124, 186, 0.28);
    opacity: 1;
    filter: none;
}

body.slovo-lms-body .slovo-tts-variant.is-active,
body.slovo-lms-body .slovo-tts-variable.is-active {
    transform: none;
}

/* ============================================================
   ЗАДАЧА 3: FULLSCREEN-МОДАЛКА (90% ЭКРАНА + МАСШТАБИРОВАНИЕ)
   ============================================================ */

/*
 * Резервные стили для LMS-страниц. Базовые (с !important) вставляются
 * из assets/slovo-global.js — они грузятся на всех страницах, включая
 * кабинеты; здесь дублируем «человекочитаемый» слой для LMS.
 */

.slovo-fs-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.55);
}

.slovo-fs-modal[hidden] {
    display: none;
}

.slovo-fs-modal-inner {
    position: relative;
    width: 90vw;
    height: 90vh;
    max-width: 90vw;
    max-height: 90vh;
    overflow: auto;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
    box-sizing: border-box;
}

.slovo-fs-modal-inner.is-dark {
    background: #222222;
}

.slovo-fs-modal-close {
    position: sticky;
    top: 8px;
    float: right;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #dc3545;
    color: #fff;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
}

.slovo-fs-modal-body {
    transform-origin: top left;
    padding: 4px 16px 16px;
    box-sizing: border-box;
}

.slovo-fs-modal-body .slovo-fullscreen-btn {
    display: none;
}

body.slovo-fs-locked {
    overflow: hidden;
}

/* ============================================================
   ЗАДАЧА 5: ВЫБОР ДИСЦИПЛИН (чипы)
   Используется в форме регистрации и в личном кабинете.
   ============================================================ */

body.slovo-lms-body .slovo-subjects-field {
    margin: 8px 0 0 0;
}

body.slovo-lms-body .slovo-subjects-field__legend {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #23282d;
}

body.slovo-lms-body .slovo-subjects-field__req {
    color: #dc3545;
    font-weight: 700;
}

body.slovo-lms-body .slovo-subjects-field__opt {
    font-size: 12px;
    font-weight: 500;
    color: #9ca3af;
}

body.slovo-lms-body .slovo-subjects-field__hint {
    margin: 0 0 12px 0;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.4;
}

body.slovo-lms-body .slovo-subjects-field__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.slovo-lms-body .slovo-subject-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: #fafbfc;
    border: 1.5px solid #d0d8e0;
    border-radius: 10px;
    cursor: pointer;
    font-size: 13px;
    color: #4a5568;
    font-weight: 500;
    transition: all 0.15s;
    box-sizing: border-box;
    user-select: none;
}

body.slovo-lms-body .slovo-subject-chip:hover {
    border-color: #b8c4d0;
    background: #f0f4f8;
}

body.slovo-lms-body .slovo-subject-chip.is-checked {
    border-color: #007cba;
    background: #eef7fd;
    color: #007cba;
}

body.slovo-lms-body .slovo-subject-chip input[type="checkbox"] {
    margin: 0;
    accent-color: #007cba;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer;
}

body.slovo-lms-body .slovo-subject-chip__icon {
    font-size: 15px;
    line-height: 1;
}

body.slovo-lms-body .slovo-subject-chip.is-checked .slovo-subject-chip__title {
    font-weight: 600;
}

body.slovo-lms-body .slovo-subject-chip__status {
    font-size: 11px;
    font-weight: 600;
    padding: 1px 7px;
    border-radius: 999px;
    white-space: nowrap;
}

body.slovo-lms-body .slovo-subject-chip__status--active {
    background: #eefaf0;
    color: #1e7e34;
}

body.slovo-lms-body .slovo-subject-chip__status--soon {
    background: #fff8e5;
    color: #b26a00;
}

body.slovo-lms-body .slovo-subject-chip__status--planned {
    background: #f0f4f8;
    color: #6b7280;
}

body.slovo-lms-body .slovo-subjects-field__msg {
    margin-top: 10px;
    font-size: 13px;
}

body.slovo-lms-body .slovo-subjects-form__actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 16px;
    flex-wrap: wrap;
}

body.slovo-lms-body .slovo-subjects-form__status {
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
}

body.slovo-lms-body .slovo-subjects-section {
    margin-top: 24px;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-subject-chip {
        font-size: 12px;
        padding: 7px 10px;
    }
    body.slovo-lms-body .slovo-subjects-form__actions .slovo-lms-btn {
        width: 100%;
        justify-content: center;
    }
}


/* ============================================================
   ЗАДАЧА 41.8 — ПЛАШКА «ИИ НЕДОСТУПЕН» (AI LOCKDOWN)
   ============================================================
   Блок .slovo-ai-locked выводит Slovo_Ai_Gate::notice_html():
     • --teacher  — учитель: «Обновить тариф»;
     • (без мода) — ученик/родитель: «Запросить у учителя»;
     • --pending  — запрос отправлен, ждём ответа.
   Селекторы — с префиксом body.slovo-lms-body (см. .clinerules).
   ============================================================ */

body.slovo-lms-body .slovo-ai-locked {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #fff7e6;
    border: 1px solid #ffd591;
    border-radius: 8px;
    color: #874d00;
    font-size: 14px;
}

body.slovo-lms-body .slovo-ai-locked__icon {
    font-size: 18px;
    line-height: 1;
}

body.slovo-lms-body .slovo-ai-locked__text {
    flex: 1;
}

body.slovo-lms-body .slovo-ai-locked__cta {
    white-space: nowrap;
}

body.slovo-lms-body .slovo-ai-locked__close {
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    color: inherit;
    opacity: .6;
}

body.slovo-lms-body .slovo-ai-locked__close:hover {
    opacity: 1;
}

body.slovo-lms-body .slovo-ai-locked--pending {
    background: #f6ffed;
    border-color: #b7eb8f;
    color: #237804;
}

body.slovo-lms-body .slovo-ai-locked--approved {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #f6ffed;
    border: 1px solid #b7eb8f;
    color: #237804;
    font-size: 14px;
    font-weight: 600;
}

/* Кнопка 🎙, оставленная видимой, но заблокированной (задача 41.8, часть 1). */
body.slovo-lms-body .slovo-aitalk-open--locked,
body.slovo-lms-body .slovo-aitalk-open:disabled {
    opacity: .5;
    cursor: not-allowed;
}

/* Контейнер плашки под кнопкой 🎙. */
body.slovo-lms-body .slovo-aitalk-lock-notice {
    margin-top: 8px;
}

/* Контейнеры плашки в редакторе курса (задача 41.8, часть 2):
   — под тулбаром (.slovo-ce-ai-lock-notice);
   — под деревом (.slovo-ce-ai-lock-notice--tree);
   — внутри модалок курса/урока. */
body.slovo-lms-body .slovo-ce-ai-lock-notice {
    margin: 8px 16px 0;
}

body.slovo-lms-body .slovo-ce-ai-lock-notice--tree,
body.slovo-lms-body .slovo-course-ai-lock-notice,
body.slovo-lms-body .slovo-lesson-ai-lock-notice {
    margin: 12px 0 0;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-ai-locked {
        flex-wrap: wrap;
    }
    body.slovo-lms-body .slovo-ai-locked__cta {
        width: 100%;
        justify-content: center;
    }
}

/* ============================================================
   ЗАПРОСЫ УЧЕНИКОВ НА ИИ (задача 41.8, часть 3)
   ============================================================ */

body.slovo-lms-body .slovo-lms-ai-requests-hint {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 12px 0;
    color: #4a5568;
    font-size: 14px;
}

body.slovo-lms-body .slovo-lms-ai-requests-table th {
    text-align: left;
}

body.slovo-lms-body .slovo-lms-ai-requests-table td {
    text-align: left;
    white-space: normal;
}

body.slovo-lms-body .slovo-lms-ai-requests-table td.slovo-lms-matrix-student-col {
    white-space: normal;
}

/* ============================================================
   SUBJECTS-1: КОМПАКТНЫЙ ВЫБОР ДИСЦИПЛИН (.slovo-subject-picker)
   Сводка (read view) + раскрытие сетки .slovo-subject-chip.
   Токены темы — с инлайн-фолбэками, без !important.
   ============================================================ */

body.slovo-lms-body .slovo-subject-picker {
    margin: 8px 0;
}

body.slovo-lms-body .slovo-subject-picker__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-height: 32px;
}

body.slovo-lms-body .slovo-subject-picker__label {
    font-weight: 600;
    color: var(--slovo-text, #23282d);
}

body.slovo-lms-body .slovo-subject-picker__chips {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

body.slovo-lms-body .slovo-subject-picker__chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 12px;
    background: var(--slovo-surface-2, #f8fafc);
    border: 1px solid var(--slovo-border, #e0e6ed);
    font-size: 13px;
}

body.slovo-lms-body .slovo-subject-picker__more {
    font-size: 13px;
    color: var(--slovo-text-muted, #6b7280);
}

body.slovo-lms-body .slovo-subject-picker__empty {
    font-size: 13px;
    color: var(--slovo-text-muted, #6b7280);
    font-style: italic;
}

body.slovo-lms-body .slovo-subject-picker__toggle {
    margin-left: auto;
    background: transparent;
    border: 1px solid var(--slovo-border, #e0e6ed);
    border-radius: 8px;
    padding: 2px 10px;
    font-size: 13px;
    cursor: pointer;
    color: var(--slovo-primary, #007cba);
}

body.slovo-lms-body .slovo-subject-picker__toggle:hover {
    background: var(--slovo-primary-light, #eef7fd);
}

body.slovo-lms-body .slovo-subject-picker__edit[hidden] {
    display: none;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-subject-picker__toggle {
        margin-left: 0;
    }
}

/* ============================================================
   BOOKING-1d: рабочие часы учителя (вкладка «Расписание»)
   Правила (список / форма) — в slovo-booking.css.
   Здесь только навигация вкладок: она нужна и на вкладке «Обзор».
   ============================================================ */

body.slovo-lms-body .slovo-lms-teacher-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px 0;
    padding-bottom: 2px;
    border-bottom: 1px solid #e0e6ed;
}

body.slovo-lms-body .slovo-lms-teacher-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border: 1px solid #e0e6ed;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    background: #f7f9fb;
    color: #37474f;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

body.slovo-lms-body .slovo-lms-teacher-tab:hover {
    background: #e0f7fa;
    color: #006064;
}

body.slovo-lms-body .slovo-lms-teacher-tab.is-active {
    background: #fff;
    color: #006064;
    border-color: #00bcd4;
    box-shadow: inset 0 3px 0 0 #00bcd4;
}

body.slovo-lms-body .slovo-lms-teacher-tab-icon {
    font-size: 16px;
    line-height: 1;
}

@media (max-width: 600px) {
    body.slovo-lms-body .slovo-lms-teacher-tabs {
        flex-direction: column;
        border-bottom: none;
    }

    body.slovo-lms-body .slovo-lms-teacher-tab {
        border-bottom: 1px solid #e0e6ed;
        border-radius: 8px;
    }
}

/* ============================================================
   КОНЕЦ ФАЙЛА
   ============================================================ */
