/* ============================================================
   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; }

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;
}

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)
   ============================================================ */

body.slovo-lms-body .slovo-modal.slovo-modal--anchored {
    align-items: flex-start;
    justify-content: flex-start;
    padding: 0;
}

body.slovo-lms-body .slovo-modal.slovo-modal--anchored .slovo-modal-overlay {
    background: rgba(15, 23, 42, 0.45);
}

body.slovo-lms-body .slovo-modal.slovo-modal--anchored .slovo-modal-window {
    position: fixed;
    margin: 0;
    padding: 24px 26px 22px 26px;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    box-shadow: 0 12px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.08);
    border-radius: 12px;
    animation: slovoAnchoredPopIn 0.16s ease-out;
    box-sizing: border-box;
}

@keyframes slovoAnchoredPopIn {
    from {
        opacity: 0;
        transform: translateY(-4px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

body.slovo-lms-body .slovo-modal.slovo-modal--anchored .slovo-modal-window::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 28px;
    width: 14px;
    height: 14px;
    background: #fff;
    border-top: 1px solid #e0e6ed;
    border-left: 1px solid #e0e6ed;
    transform: rotate(45deg);
    border-top-left-radius: 3px;
    pointer-events: none;
}

body.slovo-lms-body .slovo-modal.slovo-modal--anchored .slovo-modal-window.is-above::before {
    top: auto;
    bottom: -8px;
    border-top: none;
    border-left: none;
    border-bottom: 1px solid #e0e6ed;
    border-right: 1px solid #e0e6ed;
    border-bottom-right-radius: 3px;
}

@media (max-width: 900px) {
    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-overlay {
        background: rgba(0,0,0,0.55);
    }

    body.slovo-lms-body .slovo-modal.slovo-modal--anchored .slovo-modal-window {
        position: relative;
        left: auto;
        top: auto;
        max-width: 500px;
        width: 100%;
        padding: 20px 20px 18px 20px;
    }

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


/* ============================================================
   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;
    }
}


/* ============================================================
   КОНЕЦ ФАЙЛА
   ============================================================ */