/* =====================================================================
   theme.css — Брендовая тема «Межрегиональный медицинский колледж»
   Слой переопределений поверх существующих стилей (подключается последним).
   Палитра из брендбука: петролевый #007B8A, песочный #F2E5D8, графит.
   ===================================================================== */

:root {
    --brand: #007b8a;          /* основной петролевый */
    --brand-dark: #005e6b;     /* тёмный (градиенты, hover) */
    --brand-darker: #004e59;
    --brand-soft: #cfe6e9;     /* мягкий фон плиток/полей */
    --brand-tint: #eaf4f5;     /* светлый фон-подложка */
    --sand: #f2e5d8;           /* песочный акцент */
    --slate: #628188;          /* вспомогательный сине-серый */
    --graphite: #2e3a3c;       /* текст */
    --grey: #d9d9d9;
    --shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

/* ---------- Шапка ---------- */
.header,
.header-profile {
    background: var(--brand) !important;
}
.header-profile {
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%) !important;
}
.mobile-header {
    background: var(--brand) !important;
}

/* ---------- Кнопки личного кабинета в шапке ---------- */
.header-personal-account-main,
.header-personal-account-profile {
    background-color: #fff;
}

/* ---------- Заголовки-плашки секций ---------- */
.filial-info-title {
    background-color: var(--brand) !important;
}
@media (max-width: 991px) {
    .filial-info-title {
        background: var(--brand) !important;
    }
}

/* ---------- Акцентный текст (был зелёный) ---------- */
.person-name-title,
.logo-inner-text,
.questions-answers-text,
.auth-title-text {
    color: var(--brand) !important;
}
.filial-contacts-city,
.filial-contacts-director {
    color: var(--brand-dark) !important;
}

/* ---------- Кнопки-ссылки (действия/уроки) ---------- */
.lesson-link,
.enter,
.form-enter-btn {
    background: var(--brand) !important;
}
.lesson-link:hover,
.form-enter-btn:hover {
    background: var(--brand-dark) !important;
    color: #fff;
}

/* ---------- Светло-зелёные подложки → светло-бирюзовые ---------- */
.filial-contacts,
.lessons-link,
.accordion-body,
.auth-logo,
.questions-answers,
.questions-answers-text,
.card.card-body {
    background-color: var(--brand-tint) !important;
}
.modul-wrapper,
.accordion-item:first-of-type .accordion-button,
.form-auth-inner {
    background: var(--brand-soft) !important;
}

/* ---------- Форма авторизации ---------- */
.auth-title-text {
    background-color: var(--brand-tint) !important;
}
.form-enter-btn {
    transition: background 0.2s ease;
}

/* ---------- Таблицы (зачётка/обращения): бирюзовая шапка ---------- */
.table-dark,
.table .table-dark,
thead.table-dark tr,
.table-dark th {
    --bs-table-bg: var(--brand);
    background-color: var(--brand) !important;
    color: #fff !important;
    border-color: var(--brand-dark) !important;
}
.thead-text {
    color: #fff !important;
}
.table-link {
    color: var(--brand-dark);
}
.table-link:hover {
    color: var(--brand-darker);
}

/* ---------- Модальные окна / кнопки обращений ---------- */
.modul-info-title-btn,
.modal-submit-btn {
    background: var(--brand) !important;
    color: #fff;
}
.modul-info-title-btn:hover,
.modal-submit-btn:hover {
    background: var(--brand-dark) !important;
}

/* ---------- Подвал ---------- */
.main-footer {
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%) !important;
    border-color: var(--brand-dark) !important;
}

/* ---------- Cookie-баннер ---------- */
.cookie-banner__btn {
    background-color: var(--brand) !important;
}

/* ---------- Публичная страница: остатки зелёных подложек ---------- */
.logo {
    background: var(--brand-tint) !important;
}
.questions-text {
    background-color: var(--brand-tint) !important;
}
@media screen and (max-width: 768px) {
    .questions-text {
        background-color: var(--brand-soft) !important;
    }
}

/* Новая эмблема крупнее старой — ограничиваем, чтобы не ломала шапку блока */
.logo-inner-pic {
    width: 110px;
    height: auto;
    max-width: 100%;
}

/* Значок «версия для слабовидящих» — белая иконка на бирюзовой шапке */
.specialButton {
    width: 44px;
    height: 44px;
}

/* =====================================================================
   Шапка личного кабинета — бирюзовая полоса: лого + заголовок слева
   ===================================================================== */
.lk-header.header-profile {
    max-height: none;
    padding: 0;
}
.lk-header__inner {
    display: flex;
    align-items: center;
    gap: 20px;
    min-height: 78px;
    padding: 8px 28px;
}

/* Логотип */
.lk-header__logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
}
.lk-header__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Заголовок платформы — ссылка на главную ЛК */
.lk-header__brand-title {
    flex: 1 1 auto;
    display: block;
    margin: 0;
    font-family: "Open Sans", sans-serif;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: 0.4px;
    line-height: 1.15;
    text-transform: uppercase;
    color: #fff;
    transition: color 0.2s ease;
}
.lk-header__brand-title:hover { color: var(--sand); }

/* Правый блок */
.lk-header__right {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 18px;
}
.lk-header__special {
    width: 44px;
    height: 44px;
}
.lk-header__logout-form {
    margin: 0;
}
.lk-header__logout {
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 8px;
    padding: 7px 18px;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}
.lk-header__logout:hover {
    background: #fff;
    color: var(--brand);
}

/* Мобильный гамбургер в новой шапке по умолчанию скрыт (десктоп) */
.lk-header .header-info-profile-mobile {
    display: none;
}

/* ---------- Адаптив шапки ---------- */
@media (max-width: 1200px) {
    .lk-header__brand-title { font-size: 21px; }
    .lk-header__inner { gap: 14px; padding: 8px 18px; }
}
@media (max-width: 991px) {
    .lk-header__inner {
        gap: 12px;
        min-height: 60px;
        padding: 8px 14px;
        justify-content: space-between;
    }
    .lk-header .header-info-profile-mobile {
        display: flex;
        align-items: center;
    }
    .lk-header__logo,
    .lk-header__brand-title,
    .lk-header__special {
        display: none;
    }
}

/* =====================================================================
   Страница авторизации (новый макет)
   ===================================================================== */
.auth2-body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    background: var(--brand-darker);
}

/* Шапка */
.auth2-header {
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 10px 34px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
}
.auth2-logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
}
.auth2-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.auth2-reg {
    font-family: "Open Sans", sans-serif;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #fff;
}
.auth2-reg:hover { color: var(--sand); }
.auth2-contacts {
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.auth2-contact {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: "Open Sans", sans-serif;
    font-size: 19px;
    font-weight: 400;
    color: #fff;
}
.auth2-contact:hover { color: var(--sand); }
.auth2-special { width: 50px; margin-left: 8px; }

/* Основная область с фоном */
.auth2-main {
    position: relative;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 48px 20px 80px;
    /* Фоновое фото лаборатории + тёмно-бирюзовая вуаль для читаемости формы */
    background:
        linear-gradient(180deg, rgba(4, 74, 82, 0.72) 0%, rgba(5, 52, 58, 0.86) 100%),
        url('/img/auth-bg.jpg') center / cover no-repeat;
}

/* Заголовок */
.auth2-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin: 8px 0 56px;
    text-align: center;
    color: #fff;
}
.auth2-title span {
    font-family: "Open Sans", sans-serif;
    font-size: 46px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 9px;
    text-decoration-thickness: 2px;
}

/* Форма */
.auth2-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 300px;
}
.auth2-input {
    width: 100%;
    padding: 12px 16px;
    margin-bottom: 14px;
    border: none;
    border-radius: 3px;
    background: #d4dbdb;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #1e2b2d;
}
.auth2-input::placeholder {
    color: #4a5a5c;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    opacity: 1;
}
.auth2-btn {
    padding: 11px 44px;
    margin-top: 4px;
    border: none;
    border-radius: 3px;
    background: #0b4a51;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.35);
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #fff;
    cursor: pointer;
    transition: background 0.2s ease;
}
.auth2-btn:hover { background: var(--brand-dark); }
.auth2-forgot {
    margin-top: 20px;
    font-family: "Open Sans", sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #fff;
}
.auth2-forgot:hover { color: var(--sand); }
.auth2-error {
    width: 100%;
    margin: -6px 0 12px;
    padding: 6px 10px;
    border-radius: 3px;
    background: rgba(220, 53, 69, 0.92);
    color: #fff;
    font-size: 13px;
}

/* Адаптив авторизации */
@media (max-width: 768px) {
    .auth2-header { gap: 14px; padding: 10px 16px; flex-wrap: wrap; }
    .auth2-reg { font-size: 18px; }
    .auth2-contact { font-size: 15px; }
    .auth2-title span { font-size: 28px; }
    .auth2-title { margin-bottom: 36px; }
}
@media (max-width: 480px) {
    .auth2-logo { width: 56px; height: 56px; }
    .auth2-title span { font-size: 22px; }
    .auth2-contacts { width: 100%; }
}

/* =====================================================================
   Дашборд (главная ЛК)
   ===================================================================== */
.dash {
    padding: 26px 34px 64px;
}
.dash__grid {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 34px;
    align-items: start;
}

/* Левая колонка */
.dash__side {
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.dash__chips {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.dash__chip {
    display: block;
    padding: 8px 14px;
    border-radius: 4px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    text-align: center;
}
.dash__library {
    font-family: "Open Sans", sans-serif;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--graphite);
}
.dash__library:hover { color: var(--brand); }

/* Верхняя строка контента */
.dash__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 26px;
}
.dash__welcome {
    display: flex;
    align-items: center;
    gap: 16px;
}
.dash__bell {
    color: var(--graphite);
    flex-shrink: 0;
}
.dash__welcome-title {
    margin: 0;
    font-family: "Open Sans", sans-serif;
    font-size: 30px;
    font-weight: 700;
    color: var(--brand);
}
.dash__zachetka {
    padding: 14px 26px;
    border-radius: 5px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
    font-family: "Open Sans", sans-serif;
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    text-align: center;
    transition: filter 0.2s ease;
}
.dash__zachetka:hover { filter: brightness(1.08); color: #fff; }
.dash__topbar-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* Секции */
.dash__section {
    margin-bottom: 30px;
}
.dash__section-title {
    margin: 0 0 14px;
    font-family: "Open Sans", sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--brand);
}
.dash__tiles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}

/* Плитка */
.dash-tile {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 118px;
    padding: 18px 20px;
    border-radius: 6px;
    background: linear-gradient(170deg, var(--brand-dark) 0%, var(--brand) 45%, #86b6bb 100%);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.28);
    font-family: "Open Sans", sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
    text-align: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
.dash-tile:hover {
    color: #fff;
    filter: brightness(1.06);
    transform: translateY(-2px);
    box-shadow: 0 7px 14px rgba(0, 0, 0, 0.32);
}

/* ---------- Адаптив дашборда ---------- */
@media (max-width: 991px) {
    .dash { padding: 20px 18px 48px; }
    .dash__grid { grid-template-columns: 1fr; gap: 22px; }
    .dash__side { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
    .dash__chips { flex-direction: row; flex-wrap: wrap; }
    .dash__welcome-title { font-size: 24px; }
    .dash__tiles { gap: 18px; }
    .dash-tile { min-height: 100px; font-size: 18px; }
}
@media (max-width: 700px) {
    .dash__tiles { grid-template-columns: 1fr 1fr; }
    .dash__topbar { flex-direction: column; align-items: flex-start; }
    .dash__topbar-actions { width: 100%; }
    .dash__zachetka { flex: 1 1 240px; }
}
@media (max-width: 470px) {
    .dash__tiles { grid-template-columns: 1fr; }
    .dash__chips { flex-direction: column; width: 100%; }
    .dash__chip { text-align: left; }
}

/* =====================================================================
   Поурочный план (аккордеон предметов)
   ===================================================================== */
.plan-head {
    text-align: center;
    margin-bottom: 26px;
}
.plan-title {
    margin: 0 0 10px;
    font-family: "Open Sans", sans-serif;
    font-size: 26px;
    font-weight: 700;
    color: var(--graphite);
}
.plan-resume {
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--graphite);
}
.plan-resume__link { color: var(--brand); text-decoration: underline; }
.plan-resume__link:hover { color: var(--brand-dark); }
.plan-resume__empty { color: var(--slate); font-weight: 400; }

.plan-accordion {
    max-width: 760px;
    margin: 0 auto;
}
.plan-item { margin-bottom: 12px; }
.plan-item__head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 18px;
    border-radius: 5px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
}
.plan-item__toggle {
    position: relative;
    flex-shrink: 0;
    width: 22px;
    height: 40px;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
}
.plan-item__toggle::before {
    content: "+";
    display: block;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
}
.plan-item__toggle[aria-expanded="true"]::before { content: "–"; }
.plan-item__link {
    flex: 1 1 auto;
    padding: 11px 0;
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
}
.plan-item__link:hover { color: var(--sand); }
.plan-item__body {
    padding: 8px 18px 4px 40px;
}
.plan-lesson {
    display: block;
    margin: 8px 0;
    padding: 10px 14px;
    border-radius: 4px;
    background: var(--brand-tint);
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.12);
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    color: var(--graphite);
}
.plan-lesson:hover { color: var(--brand); background: var(--brand-soft); }
.plan-lesson--empty { color: var(--slate); background: transparent; box-shadow: none; }
.plan-empty { text-align: center; color: var(--slate); }

/* =====================================================================
   Страница предмета (модуль): преподаватель + уроки
   ===================================================================== */
.module2 { text-align: center; }
.module2__title {
    margin: 0 0 12px;
    font-family: "Open Sans", sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--graphite);
}
.module2__descr {
    max-width: 640px;
    margin: 0 auto 18px;
    font-size: 16px;
    color: var(--slate);
}
.module2__teacher-label {
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--graphite);
}
.module2__teacher-name {
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--graphite);
    margin-bottom: 16px;
}
.module2__photo {
    display: block;
    width: 150px;
    height: 112px;
    margin: 0 auto 30px;
    object-fit: cover;
    object-position: center top;
    background: var(--grey);
    border-radius: 4px;
    box-shadow: var(--shadow);
}
.module2__lessons {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 560px;
    margin: 0 auto;
}
.module2__lesson {
    display: block;
    padding: 12px 20px;
    border-radius: 5px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
    font-family: "Open Sans", sans-serif;
    color: #fff;
    line-height: 1.35;
    transition: filter 0.15s ease, transform 0.15s ease;
}
.module2__lesson:hover { color: #fff; filter: brightness(1.08); transform: translateY(-1px); }
.module2__lesson-num,
.module2__lesson-name {
    display: block;
    font-weight: 700;
    font-size: 17px;
}
.module2__empty { color: var(--slate); }

/* =====================================================================
   Страница урока
   ===================================================================== */
.lesson2__bar {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
    padding: 14px 30px;
    border-radius: 5px;
    background: linear-gradient(91deg, var(--brand-dark) 0%, var(--brand) 60%);
    box-shadow: var(--shadow);
}
.lesson2__module,
.lesson2__sep,
.lesson2__name {
    font-family: "Open Sans", sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #fff;
}
.lesson2__module:hover { color: var(--sand); text-decoration: underline; }
.lesson2__content {
    padding: 0 6px 10px;
    font-family: "Open Sans", sans-serif;
    font-size: 17px;
    line-height: 1.5;
    color: var(--graphite);
    overflow-x: auto;
}
.lesson2__content img { max-width: 100%; height: auto; }
.lesson2__content table { max-width: 100%; }

.lesson2__files {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
    margin-top: 26px;
    padding: 20px 6px 0;
    border-top: 1px solid var(--brand-soft);
}
.lesson2__file {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 120px;
    text-align: center;
    color: var(--graphite);
}
.lesson2__file-icon { width: 46px; height: auto; }
.lesson2__file-name { font-size: 13px; word-break: break-word; }
.lesson2__file:hover .lesson2__file-name { color: var(--brand); }

@media (max-width: 991px) {
    .lesson2__module, .lesson2__sep, .lesson2__name { font-size: 19px; }
    .lesson2__bar { padding: 12px 18px; }
}

/* =====================================================================
   Электронная зачётная книжка
   ===================================================================== */
.zach__title {
    margin: 0 0 6px;
    text-align: center;
    font-family: "Open Sans", sans-serif;
    font-size: 26px;
    font-weight: 700;
    color: var(--brand);
}
.zach__subtitle {
    margin: 0 0 26px;
    text-align: center;
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--graphite);
}

/* Список семестров */
.zach__semesters {
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 620px;
    margin: 0 auto;
}
.zach__semester {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 26px;
    border-radius: 5px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    transition: filter 0.15s ease, transform 0.15s ease;
}
.zach__semester:hover { color: #fff; filter: brightness(1.08); transform: translateY(-1px); }
.zach__semester-arrow { font-size: 20px; }
.zach__total {
    max-width: 620px;
    margin: 22px auto 0;
    padding: 14px 22px;
    border-radius: 5px;
    background: var(--brand-tint);
    text-align: center;
    font-size: 18px;
    color: var(--graphite);
}
.zach__total strong { color: var(--brand-dark); }

/* Таблица */
.zach__table-wrap {
    overflow-x: auto;
    margin: 0 auto;
}
.zach__table {
    width: 100%;
    border-collapse: collapse;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    box-shadow: var(--shadow);
}
.zach__table thead th {
    padding: 13px 14px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    color: #fff;
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
}
.zach__table tbody td {
    padding: 12px 14px;
    border-bottom: 1px solid #e3eaea;
    color: var(--graphite);
    vertical-align: middle;
}
.zach__table tbody tr:nth-child(even) { background: var(--brand-tint); }
.zach__subject a { color: var(--brand-dark); font-weight: 600; }
.zach__subject a:hover { color: var(--brand); text-decoration: underline; }
.zach__hours { text-align: center; font-weight: 600; }
.zach__table tfoot td {
    padding: 13px 14px;
    background: var(--brand-soft);
    font-weight: 700;
    color: var(--graphite);
}
.zach__foot-label { text-align: right; }
.zach__back {
    display: inline-block;
    margin-top: 22px;
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--brand);
}
.zach__back:hover { color: var(--brand-dark); }
.zach__empty { text-align: center; color: var(--slate); padding: 20px; }

@media (max-width: 991px) {
    .zach__table { font-size: 13px; }
    .zach__table thead th, .zach__table tbody td { padding: 9px 8px; }
}

/* =====================================================================
   Зачётная книжка — единая страница (по макету)
   ===================================================================== */
/* Карточки статистики в левой колонке */
.zbook__stat {
    padding: 16px 14px;
    border-radius: 6px;
    background: var(--brand-tint);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
    text-align: center;
}
.zbook__stat-label {
    margin: 0 0 6px;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--graphite);
}
.zbook__stat-value {
    margin: 0;
    font-family: "Open Sans", sans-serif;
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
    color: var(--brand-dark);
}
.zbook__kud-info {
    font-family: "Open Sans", sans-serif;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--graphite);
}
.zbook__kud-info p { margin: 0 0 8px; }
.zbook__kud-title { font-weight: 700; }
.zbook__kud-sub { font-weight: 700; }
.zbook__kud-info ul { margin: 0; padding-left: 0 !important; list-style: none; }
.zbook__kud-info li { position: relative; padding-left: 14px; margin-bottom: 4px; }
.zbook__kud-info li::before {
    content: "•";
    position: absolute;
    left: 2px;
    color: var(--brand);
}

/* Баннер-заголовок */
.zbook__banner {
    margin-bottom: 22px;
    padding: 16px 24px;
    border-radius: 6px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
    text-align: center;
    font-family: "Open Sans", sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #fff;
}

/* Семестры-аккордеоны */
.zbook__semesters { display: flex; flex-direction: column; gap: 22px; }
.zbook__sem-head {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 22px;
    border: none;
    border-radius: 5px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
    cursor: pointer;
    text-align: left;
}
.zbook__sem-toggle {
    position: relative;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
.zbook__sem-toggle::before {
    content: "+";
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
}
.zbook__sem-head[aria-expanded="true"] .zbook__sem-toggle::before { content: "–"; }
.zbook__sem-label {
    font-family: "Open Sans", sans-serif;
    font-size: 19px;
    font-weight: 700;
    color: #fff;
}
.zbook__sem-body { padding-top: 12px; }

/* Строки-карточки */
.zbook__row {
    display: grid;
    grid-template-columns: 2fr 1.5fr 0.7fr 0.7fr 1.5fr;
    gap: 14px;
    align-items: center;
    padding: 14px 22px;
}
.zbook__row--head {
    padding: 4px 22px 8px;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--graphite);
}
.zbook__row:not(.zbook__row--head) {
    margin-bottom: 12px;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
    border: 1px solid #e3eaea;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    color: var(--graphite);
}
.zbook__disc a { color: var(--brand-dark); font-weight: 600; }
.zbook__disc a:hover { color: var(--brand); text-decoration: underline; }
.zbook__teacher { text-align: right; }

/* Адаптив зачётки */
@media (max-width: 760px) {
    .zbook__row--head { display: none; }
    .zbook__row {
        grid-template-columns: 1fr;
        gap: 4px;
    }
    .zbook__row span[data-th]::before {
        content: attr(data-th) ": ";
        font-weight: 700;
        color: var(--slate);
    }
    .zbook__teacher { text-align: left; }
}

/* =====================================================================
   Дашборд преподавателя: «Полезные ресурсы»
   ===================================================================== */
.dash__useful {
    display: flex;
    align-items: center;
    gap: 26px;
    margin-bottom: 34px;
}
.dash__useful-title {
    flex: 0 0 140px;
    margin: 0;
    font-family: "Open Sans", sans-serif;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--graphite);
}
.dash__useful-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
    flex: 1 1 auto;
}
.dash__useful-link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 24px;
    border: 0;
    border-radius: 5px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
    font-family: "Open Sans", sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
    text-align: center;
    transition: filter 0.15s ease, transform 0.15s ease;
}
.dash__useful-link:hover { color: #fff; filter: brightness(1.08); transform: translateY(-1px); }

/* Счётчик новых вопросов */
.dash__badge {
    position: absolute;
    top: -12px;
    right: 50%;
    transform: translateX(50%);
    min-width: 26px;
    height: 26px;
    padding: 0 6px;
    border-radius: 13px;
    background: #f5b731;
    box-shadow: var(--shadow);
    font-size: 14px;
    font-weight: 700;
    line-height: 26px;
    color: var(--graphite);
}

@media (max-width: 991px) {
    .dash__useful { flex-direction: column; align-items: flex-start; gap: 14px; }
    .dash__useful-title { flex: 0 0 auto; }
    .dash__useful-links { width: 100%; gap: 18px; }
}
@media (max-width: 560px) {
    .dash__useful-links { grid-template-columns: 1fr; }
}

/* =====================================================================
   Зачётная книжка группы: действия преподавателя
   ===================================================================== */
.zach__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.zach__action-btn {
    padding: 6px 14px;
    border: 0;
    border-radius: 4px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: var(--shadow);
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    color: #fff;
    transition: filter 0.15s ease;
}
.zach__action-btn:hover { color: #fff; filter: brightness(1.1); }

/* =====================================================================
   Обращения
   ===================================================================== */
.appeal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.appeal__head .zach__title { margin: 0; text-align: left; }
.appeal__head .zach__back { margin-top: 0; }
.appeal__new-btn { padding: 12px 22px; }
.appeal__rules {
    margin-bottom: 24px;
    padding: 16px 20px;
    border-radius: 5px;
    background: var(--brand-tint);
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    color: var(--graphite);
}
.appeal__rules p { margin: 0 0 8px; }
.appeal__rules p:last-child { margin-bottom: 0; }

/* =====================================================================
   Диалог по обращению
   ===================================================================== */
.chat__meta {
    margin-bottom: 22px;
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    color: var(--graphite);
}
.chat__meta p { margin: 0 0 6px; }
.chat__meta-label { font-weight: 700; color: var(--brand-dark); }

.chat {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 26px;
}
.chat__msg {
    max-width: 78%;
    padding: 14px 18px;
    border-radius: 8px;
    background: var(--brand-tint);
    box-shadow: var(--shadow);
    font-family: "Open Sans", sans-serif;
    color: var(--graphite);
}
.chat__msg--own {
    align-self: flex-end;
    background: var(--brand-soft);
}
.chat__msg-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 6px;
    font-size: 13px;
}
.chat__msg-author { font-weight: 700; color: var(--brand-dark); }
.chat__msg-date { color: var(--slate); }
.chat__msg-body p { margin: 0; font-size: 15px; line-height: 1.45; }
.chat__msg-file {
    display: inline-block;
    margin-top: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--brand);
    text-decoration: underline;
}
.chat__msg-file:hover { color: var(--brand-dark); }

.chat__form {
    padding: 18px;
    border-radius: 8px;
    background: var(--brand-tint);
}
.chat__textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--brand-soft);
    border-radius: 5px;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    color: var(--graphite);
    resize: vertical;
}
.chat__form-actions {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    margin-top: 12px;
}
.chat__close {
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--brand);
}
.chat__close:hover { color: var(--brand-dark); }
.chat__submit { margin-left: auto; padding: 12px 30px; }

@media (max-width: 700px) {
    .chat__msg { max-width: 100%; }
    .chat__submit { margin-left: 0; width: 100%; }
}
