/* ИИ: порядок <link> — docs/css-cascade-order.md · ур.3 Global/core (*-uni). */
/* ==========================================================================
 * COMMON-UNI — общий shared UI слой
 * Техническая логика для ИИ-ассистента:
 * - хранить здесь только общие классы, layout-утилиты и shared-компоненты;
 * - не переносить сюда mobile/tablet/desktop размеры из responsive-файлов;
 * - новые shared student/admin стили переносить сюда или в профильный *-uni.css, а не в `resources/css/student.css`;
 * - сохранять совместимость существующих PHP-классов без переименования.
 * ========================================================================== */

/* Shared flex helpers */
.flex-item
{
    align-items: center;
}.flex-item
{
    margin-right: 20px;
    white-space: nowrap;
}

/* Блок выбора куратора */
.admin-curators-container
{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--common-curator-grid-min), 1fr));
    gap: var(--common-curator-grid-gap);
    margin-top: var(--common-curator-grid-margin-top);
    padding: var(--common-curator-grid-padding-y) 0;
}.admin-curator-option
{
    position: relative;
    margin: 0;
    white-space: normal;
}.admin-curator-option
{
    animation: adminCuratorFadeIn 0.4s ease-out backwards;
}.admin-curator-option:nth-child(1)
{ animation-delay: 0.05s; }.admin-curator-option:nth-child(2)
{ animation-delay: 0.1s; }.admin-curator-option:nth-child(3)
{ animation-delay: 0.15s; }.admin-curator-option:nth-child(4)
{ animation-delay: 0.2s; }.admin-curator-option:nth-child(5)
{ animation-delay: 0.25s; }.admin-curator-option:nth-child(6)
{ animation-delay: 0.3s; }.admin-curator-option:nth-child(7)
{ animation-delay: 0.35s; }.admin-curator-option:nth-child(8)
{ animation-delay: 0.4s; }.admin-curator-option:nth-child(n+9)
{ animation-delay: 0.45s; }

/* Логотип и шапка */
.logo-container
{
    text-align: center;
    background-color: transparent;
}.logo-image
{
    max-height: 100px;
    display: inline-block;
}.student-actions-mobile, .student-status-mobile, .payment-link-mobile, .login-pass-link-mobile
{
    display: none;
}.credentials-modal__backdrop
{
    position: absolute;
    inset: 0;
    cursor: pointer;
}.credentials-modal__dialog
{
    position: relative;
    z-index: 1;
    width: var(--credentials-dialog-width);
    background: linear-gradient(165deg, #ffffff 0%, #f8fafc 42%, #f1f5f9 100%);
    border-radius: var(--credentials-dialog-radius);
    border: 1px solid rgba(99, 102, 241, 0.18);
    box-shadow:
        0 4px 6px rgba(15, 23, 42, 0.04),
        0 24px 48px rgba(15, 23, 42, 0.18),
        0 0 0 1px rgba(255, 255, 255, 0.6) inset;
    padding: var(--credentials-dialog-padding);
    display: flex;
    flex-direction: column;
    gap: var(--credentials-dialog-gap);
    max-height: 90vh;
    overflow-y: auto;
}.credentials-modal__close
{
    position: absolute;
    top: var(--credentials-close-offset);
    right: var(--credentials-close-offset);
    width: var(--credentials-close-size);
    height: var(--credentials-close-size);
    border-radius: 50%;
    border: none;
    background: rgba(15, 23, 42, 0.08);
    color: #1e293b;
    font-size: var(--credentials-close-font-size);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}.credentials-modal__close:hover
{
    background: rgba(15, 23, 42, 0.15);
    transform: scale(1.05);
}.credentials-modal__header
{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--credentials-header-gap);
    padding-right: var(--credentials-header-padding-right);
    padding-bottom: 2px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.28);
    margin-bottom: 2px;
}.credentials-modal__title
{
    font-size: var(--credentials-title-font-size);
    font-weight: 700;
    color: #0f172a;
    margin: 0;
    line-height: 1.3;
    letter-spacing: -0.02em;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}.credentials-modal__body
{
    display: flex;
    flex-direction: column;
    gap: var(--credentials-body-gap);
}.credentials-modal__row
{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.35rem;
    padding: var(--credentials-row-padding);
    border-radius: var(--credentials-row-radius);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.96) 0%, rgba(241, 245, 249, 0.99) 100%);
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.22);
}.credentials-modal__label
{
    font-size: var(--credentials-label-font-size);
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}.credentials-modal__value
{
    font-size: var(--credentials-value-font-size);
    font-weight: 600;
    color: #0f172a;
    word-break: break-word;
    cursor: pointer;
    position: relative;
    font-family: ui-monospace, "Cascadia Code", "Segoe UI Mono", "Roboto Mono", Menlo, Consolas, monospace;
    font-variant-numeric: tabular-nums;
    background: #fff;
    padding: 0.6rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(148, 163, 184, 0.45);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
    text-align: left;
    width: 100%;
    box-sizing: border-box;
}.credentials-modal__value:hover
{
    color: #1d4ed8;
    border-color: rgba(99, 102, 241, 0.45);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 0 0 1px rgba(99, 102, 241, 0.12);
}.credentials-modal__value--empty
{
    color: #94a3b8;
    cursor: default;
    background: rgba(241, 245, 249, 0.65);
    border-style: dashed;
    font-style: italic;
    font-weight: 500;
}/* ����� ����� ������ ��������� */.student-list
{
        max-height: 300px; /* ��������� ������ ��� �������� */
        overflow-y: auto; /* ��������� �� ��������� */
        border: 1px solid #ccc;
        border-radius: 6px; /* ����� ���������� ���� */
        padding: 10px;
        background-color: #fff; /* ����� ��� ��� ��������� */
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* ������ ���� ��� ��������� ���� */
    }/* ��������� ������� ������ */.student-item
{
        display: flex;
        align-items: center; /* ������������ ��������� �� ��������� */
        padding: 8px 5px; /* ����������� ������� ��� �������� ������ */
        border-bottom: 1px solid #e0e0e0; /* ������� ����������� */
        transition: background-color 0.3s ease; /* ������� ��������� ���� ��� ��������� */
    }/* ��������� ������� ��� ����� */.student-item:last-child
{
        border-bottom: none;
    }/* ��������� ����� */.student-name-container
{
        flex-grow: 1; /* ����������� ����� �� ���������� ������ */
        font-weight: 500; /* �������� ������ ����� */
    }/* ��� �������� */.student-name
{
        font-size: 14px;
        color: #555; /* �������� ������ ���� ��� ������ */
        white-space: nowrap; /* ������������� ������� ������ */
        overflow: hidden;
        text-overflow: ellipsis; /* ���������, ���� ����� ������� ������� */
    }/* ����� ��� ��������� */.student-item:hover
{
        background-color: #f9f9f9; /* ������ ��� ��� ��������� */
        border-color: #ccc; /* ������������� ��������� */
    }/* ��������� */.student-list::-webkit-scrollbar
{
        width: 8px;
    }.student-list::-webkit-scrollbar-thumb
{
        background-color: #ccc;
        border-radius: 4px;
    }.student-list::-webkit-scrollbar-thumb:hover
{
        background-color: #aaa;
    }/* �������� ���� *//* ���������� � �������� */.student-box-admin-info
{
    background: #ffffff;
    border-left: 5px solid var(--color-primary); /* ��������� ������ ����� */
    border-radius: 12px;
    padding: var(--common-student-panel-padding);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}.student-box-title
{
    margin: 0 0 var(--common-student-title-margin-bottom);
    font-size: var(--common-student-title-font-size);
    color: #333;
    font-weight: bold;
    text-transform: uppercase;
    background: var(--color-primary);
    color: #fff;
    padding: var(--common-student-title-padding);
    border-radius: 8px;
}.student-box-admin-info p
{
    margin: 0.4rem 0;
    font-size: 1rem;
    color: #555;
}.student-box-admin-info p strong
{
    color: #222;
}/* �������� */.student-box-admin-actions
{
    display: flex;
    justify-content: space-around;
    gap: var(--common-student-actions-gap);
    flex-wrap: wrap;
}/* Icon menu styles */.head-icon-menu
{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: var(--common-head-menu-gap); /* ���������� ����� ���������� */
    justify-content: space-between;
    list-style-type: none;
    padding: 0;
    margin: 0;
}.head-icon-menu li
{
    width: var(--common-head-menu-item-width); /* 5 ��������� � ������ ��� ������� ������� */
    text-align: center;
    box-sizing: border-box;
}.head-icon-menu li a
{
    display: flex;
    align-items: center;
    justify-content: flex-start; /* ������������ ������ � ������ */
    text-decoration: none;
    color: #555;
    background-color: #f9f9f9;
    padding: var(--common-head-menu-link-padding);
    border-radius: var(--common-head-menu-link-radius);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.3s ease, border-color 0.3s ease;
    font-weight: bold;
    font-size: var(--common-head-menu-link-font-size);
    box-sizing: border-box;
    gap: var(--common-head-menu-link-gap); /* ���������� ����� ������� � ������� */
    height: auto; /* ������ �������������� ��� ������� */
}.head-icon-menu li a i
{
    width: var(--common-head-menu-icon-size); /* ������������� ������ ��� ���� ������ */
    height: var(--common-head-menu-icon-size);
    flex-shrink: 0; /* ������������� ���������� ������� ������ */
    display: block;
    background-size: contain; /* ��������������� ������ ��� ������� */
    background-repeat: no-repeat;
    background-position: center;
}.head-icon-menu li a span
{
    font-size: var(--common-head-menu-text-font-size);
    font-family: "-apple-system", BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: #555;
    text-align: left;
    flex: 1; /* ����� �������� ���������� ������������ */
    white-space: normal; /* ����� ����������� �� ��������� ������ */
    word-wrap: break-word; /* ������� ������� ���� */
    overflow: visible; /* ����� ������� */
    line-height: 1.2; /* ��������� ��� ��������� ���������� ������ */
}.head-icon-menu li a:hover
{
    transform: scale(1.05);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    background-color: #e0e0e0;
    border: 1px solid #66BB6A;
    color: #333;
}.head-icon-menu li a:hover i
{
    filter: brightness(1.2); /* ��������� ������ ��� ��������� */
}/* ������ ��� ������ ������ */.head-icon-menu li a[href*="admin_panel.php"] i
{
    background-image: url("/styles/icon/admin-panel.png");
}.head-icon-menu li a[href*="search_user.php"] i
{
    background-image: url("/styles/icon/search_user.png");
}.head-icon-menu li a[href*="curator_list.php"] i
{
    background-image: url("/styles/icon/curator_list.png");
}.head-icon-menu li a[href*="who_is_online.php"] i
{
    background-image: url("/styles/icon/who-is-online.png");
}.head-icon-menu li a[href*="view_logs.php"] i
{
    background-image: url("/styles/icon/view-logs.png");
}.head-icon-menu li a[href*="step_add_newstudent_9.php"] i
{
    background-image: url("/styles/icon/pending-confirmation.png");
}.head-icon-menu li a[href*="deferred_actions.php"] i
{
    background-image: url("/styles/icon/deferred-actions.png");
}.head-icon-menu li a[href*="university_list.php"] i
{
    background-image: url("/styles/icon/university.png");
}.head-icon-menu li a[href*="student_list.php"] i
{
    background-image: url("/styles/icon/students.png");
}.head-icon-menu li a[href*="add_user.php"] i
{
    background-image: url("/styles/icon/create-student.png");
}.head-icon-menu li a[href*="step_add_newstudent_1.php"] i
{
    background-image: url("/styles/icon/add-student.png");
}.head-icon-menu li a[href*="step_add_newstudent_4.php"] i
{
    background-image: url("/styles/icon/new-students.png");
}.head-icon-menu li a[href*="step_add_newstudent_8.php"] i
{
    background-image: url("/styles/icon/invitation-students.png");
}.head-icon-menu li a[href*="../mail/inbox.php"] i
{
    background-image: url("/styles/icon/mail.png");
}.head-icon-menu li a[href*="ordered_documents.php"] i
{
    background-image: url("/styles/icon/order-documents.png");
}.head-icon-menu li a[href*="hero_list_team.php"] i
{
    background-image: url("/styles/icon/team-management.png");
}.head-icon-menu li a[href*="apostille_requests_admin.php"] i
{
    background-image: url("/styles/icon/apostille-requests.png");
}/* ================================
   📋 Стили для деталей запроса
   ================================ */.request-details
{
    padding: var(--common-detail-panel-padding);
    background: var(--bg-surface);
    border-radius: 8px;
    margin: var(--common-detail-panel-margin);
}.request-detail-item
{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--common-detail-row-padding);
    border-bottom: 1px solid #e9ecef;
}.request-detail-item:last-child
{
    border-bottom: none;
}.request-detail-item span
{
    color: #212529;
    flex: 1;
    text-align: right;
}/* Селектор типа апостиля */.apostille-type-selector
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(var(--common-option-grid-min), 1fr));
    gap: var(--common-option-grid-gap);
    margin-bottom: var(--common-option-grid-margin-bottom);
}.apostille-type-option
{
    flex: 1;
    border: 2px solid var(--border-light);
    border-radius: 16px;
    padding: var(--common-option-card-padding);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
    position: relative;
    overflow: hidden;
}.apostille-type-option::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, transparent, transparent);
    transition: all 0.4s ease;
}.apostille-type-option:hover
{
    border-color: var(--color-primary);
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
}.apostille-type-option:hover::before
{
    background: linear-gradient(90deg, var(--color-primary), #0056b3);
}.apostille-type-option.urgent
{
    border-color: #f59e0b;
    background: linear-gradient(135deg, #fff7ed 0%, #ffffff 100%);
}.apostille-type-option.urgent:hover
{
    border-color: #f59e0b;
    box-shadow: 0 12px 24px rgba(245, 158, 11, 0.2);
}.apostille-type-option.urgent::before
{
    background: linear-gradient(90deg, #f59e0b, #f97316);
}.apostille-type-option.regular
{
    border-color: #3b82f6;
    background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
}.apostille-type-option.regular:hover
{
    border-color: #3b82f6;
    box-shadow: 0 12px 24px rgba(59, 130, 246, 0.2);
}.apostille-type-option.regular::before
{
    background: linear-gradient(90deg, #3b82f6, #2563eb);
}/* Настройки QR кода */.qr-settings-group
{
    display: flex;
    flex-wrap: wrap;
    gap: var(--common-settings-group-gap);
    align-items: center;
    padding: var(--common-settings-group-padding);
    background: var(--bg-surface);
    border-radius: 12px;
    border: 1px solid var(--border-light);
}/* Информационные блоки */.info-box
{
    background: linear-gradient(135deg, #dbeafe 0%, #e0f2fe 100%);
    border-left: 4px solid #3b82f6;
    border-radius: 12px;
    padding: 20px 24px;
    margin: 24px 0;
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.1);
    transition: all 0.3s ease;
}.info-box:hover
{
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
}.info-box strong
{
    color: #1e40af;
    font-size: 16px;
    display: block;
    margin-bottom: 12px;
}.info-box ul
{
    margin: 12px 0 0 0;
    padding-left: 24px;
    color: #1e3a8a;
}.info-box ul li
{
    margin-bottom: 8px;
    line-height: 1.6;
}.warning-box
{
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    border-left: 4px solid #f59e0b;
    border-radius: 12px;
    padding: 20px 24px;
    margin: 24px 0;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.1);
    transition: all 0.3s ease;
}.warning-box:hover
{
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.15);
}.warning-box strong
{
    color: #92400e;
    font-size: 16px;
    display: block;
    margin-bottom: 8px;
}.warning-box
{
    color: #78350f;
    line-height: 1.6;
}/* Стили для страницы апостиля - заголовок таблицы документов */.apostille-documents-title
{
    color: var(--color-primary);
    font-size: 22px;
    font-weight: 700;
    margin: 32px 0 20px 0;
    letter-spacing: -0.5px;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--color-primary);
}/* Стили для разделителя и ссылки "Назад" */.apostille-divider
{
    border: none;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border-light), transparent);
    margin: 32px 0;
}.apostille-back-link
{
    margin: 24px 0;
}.apostille-back-link a
{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 15px;
    padding: 12px 20px;
    border-radius: 10px;
    background: var(--bg-surface);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}.apostille-back-link a:hover
{
    background: var(--color-primary);
    color: #ffffff;
    transform: translateX(-4px);
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3);
}.section-title
{
    color: #3498db;
    margin-top: 20px;
}.copyable
{
    cursor: pointer;
    padding: 5px 10px;
    border-radius: 4px;
    transition: background-color 0.2s;
    display: inline-block;
}.copyable:hover
{
    background-color: #e8f4f8;
}.copyable.copied
{
    background-color: #d4edda;
    animation: flash 0.5s;
}/* === Documents Grid Styles === */.documents-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 15px;
    margin-top: 15px;
}.doc-name
{
    font-weight: bold;
    color: #2c3e50;
    margin-bottom: 10px;
}/* ════════════════════════════════════════════════════════════════════ *//* 🌍 БЛОК ВЫБОРА ДОКУМЕНТОВ ДЛЯ ПЕРЕВОДА *//* ════════════════════════════════════════════════════════════════════ */.translation-selection-block
{
    display: flex;
    align-items: center;
    gap: var(--common-selection-block-gap);
    width: 100%;
    padding: var(--common-selection-block-padding);
    background: linear-gradient(135deg, #f0f8ff 0%, #e6f3ff 100%);
    border: 1px solid #4a90e2;
    border-radius: 8px;
    transition: all 0.3s ease;
    box-sizing: border-box;
    margin: 0;
}.translation-selection-block:hover
{
    background: linear-gradient(135deg, #e6f3ff 0%, #d9edff 100%);
    box-shadow: 0 2px 8px rgba(74, 144, 226, 0.2);
}/* === 📋 БЛОКИ ПЕРЕВОДА === */.translation-block
{
    margin: var(--common-translation-block-margin);
    padding: var(--common-translation-block-padding);
    border-radius: 4px;
    box-sizing: border-box;
}.translation-block-blue
{
    background: #f0f8ff;
    border-left: 4px solid #4a90e2;
}.translation-block-yellow
{
    background: #fff3cd;
    border-left: 4px solid #ffc107;
}/* === 📋 ЗАГОЛОВКИ ДОКУМЕНТОВ === */.translation-document-title
{
    display: inline-block;
}.translation-document-link
{
    margin-left: 10px;
}/* === 📎 КОНТЕЙНЕР ДЕЙСТВИЙ С ДОКУМЕНТАМИ === */.document-actions-container
{
    display: inline-block !important;
    margin: 5px 0 !important;
    vertical-align: top !important;
}.translation-quantity
{
    width: var(--common-quantity-width);
    padding: var(--common-quantity-padding);
    border: 2px solid #4a90e2;
    border-radius: 6px;
    font-size: var(--common-quantity-font-size);
    font-weight: bold;
    text-align: center;
    background: white;
    color: #2c5aa0;
    transition: all 0.3s ease;
}.translation-quantity:focus
{
    outline: none;
    border-color: #2c5aa0;
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
}.translation-quantity:hover
{
    border-color: #2c5aa0;
}/* Подсветка данных */.sys-data-highlight-new
{
    background-color: #d4edda !important;
    color: #155724;
    font-weight: 500;
}.sys-data-highlight-existing
{
    background-color: #f8d7da !important;
    color: #721c24;
    font-weight: 500;
}/* Универсальные алерты */.sys-alert
{
    max-width: var(--common-alert-max-width);
    margin: var(--common-alert-margin);
    padding: var(--common-alert-padding);
    border-radius: 8px;
    font-size: var(--common-alert-font-size);
    font-weight: 500;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}.sys-alert-success
{
    background-color: #d4edda;
    color: #155724;
    border-left: 4px solid #28a745;
}.sys-alert-error
{
    background-color: #f8d7da;
    color: #721c24;
    border-left: 4px solid #dc3545;
}.sys-alert-warning
{
    background-color: #fff3cd;
    color: #856404;
    border-left: 4px solid #ffc107;
}.specialty-links-source-section
{
    border-color: var(--color-success);
}.specialty-links-linked-section
{
    border-color: #2196F3;
}.specialty-links-arrow-section
{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-width: 80px;
}.specialty-links-arrow
{
    font-size: 48px;
    color: #666;
}.specialty-links-info
{
    line-height: 1.6;
}.specialty-links-info strong
{
    display: block;
    color: #333;
    font-size: 14px;
}.specialty-links-params
{
    display: flex;
    gap: 10px;
    margin-top: 5px;
    font-size: 12px;
    color: #666;
}.specialty-links-params span
{
    background: #e9ecef;
    padding: 2px 8px;
    border-radius: 3px;
}.specialty-links-arrow-cell
{
    text-align: center;
    width: 50px;
}.specialty-links-link-arrow
{
    font-size: 24px;
    color: var(--color-success);
    font-weight: bold;
}.specialty-links-notes-cell
{
    font-size: 13px;
    color: #666;
    font-style: italic;
}.specialty-links-date-cell
{
    font-size: 13px;
    white-space: nowrap;
}.specialty-links-actions-cell
{
    white-space: nowrap;
}.specialty-links-info-box
{
    background: #e3f2fd;
    border-left: 4px solid #2196F3;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
}.specialty-links-info-box h3
{
    margin-top: 0;
    color: #1976D2;
}.specialty-links-no-data
{
    text-align: center;
    padding: 40px;
    color: #999;
    font-style: italic;
}/* ════════════════════════════════════════════════════════════════════ *//* 🌍 СТИЛІ ДЛЯ СИСТЕМИ ПЕРЕКЛАДУ ДОКУМЕНТІВ *//* ════════════════════════════════════════════════════════════════════ *//* === 📝 Стилі для повідомлень === */.translation-session-message
{
    padding: 15px 20px;
    border-radius: 8px;
    margin: 20px 0;
    border-left: 5px solid;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    animation: translation-slideIn 0.3s ease-in-out;
    font-weight: 500;
    line-height: 1.6;
}.translation-message-success
{
    background-color: #d4edda;
    border-left-color: #28a745;
    color: #155724;
}.translation-message-warning
{
    background-color: #fff3cd;
    border-left-color: #ffc107;
    color: #856404;
}.translation-message-error
{
    background-color: #f8d7da;
    border-left-color: #dc3545;
    color: #721c24;
}/* === 📊 Основні блоки === */.translation-alert
{
    padding: 15px 20px;
    border-radius: 8px;
    margin: 20px 0;
    border-left: 4px solid;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}.translation-alert-success
{
    background-color: #d4edda;
    border-left-color: #28a745;
    color: #155724;
}.translation-alert-warning
{
    background-color: #fff3cd;
    border-left-color: #ffc107;
    color: #856404;
}.translation-info-block
{
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
    color: white;
    padding: 15px;
    border-radius: 8px;
    margin: 15px 0;
    border-left: 4px solid #1e7e34;
}.translation-info-block h4
{
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}.translation-info-block ul
{
    margin: 8px 0;
    padding-left: 20px;
}.translation-info-block li
{
    margin: 4px 0;
}/* === 📈 Блок статистики та історії === */.translation-statistics
{
    background: linear-gradient(135deg, var(--bg-surface) 0%, #e9ecef 100%);
    padding: 25px;
    border-radius: 12px;
    margin: 20px 0;
    border-left: 5px solid var(--color-primary);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}.translation-statistics h4
{
    margin: 0 0 20px 0;
    color: #495057;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.4em;
    border-bottom: 2px solid #dee2e6;
    padding-bottom: 10px;
}.translation-statistics h5
{
    margin: 15px 0 10px 0;
    color: #495057;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.1em;
}.student-actions-mobile, .student-status-mobile, .payment-link-mobile, .login-pass-link-mobile
{
    display: none;
}.student-credentials-cell .login-pass-link.login-pass-link-mobile
{
    display: none;
}.student-actions-mobile
{
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    width: 100%;
}.student-status-mobile, .payment-link-mobile, .login-pass-link-mobile
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #f3f5fb;
    box-shadow: inset 0 0 0 1px rgba(0, 123, 255, 0.08);
}.student-status-mobile i, .student-status-mobile img, .payment-link-mobile img, .login-pass-link-mobile img
{
    width: 22px;
    height: 22px;
}.payment-link-mobile, .login-pass-link-mobile
{
    text-decoration: none;
}.gender-icon
{
    width: 24px;
    height: 24px;
    margin-right: 8px;
}.student-credentials-cell .login-pass-link.login-pass-link-mobile
{
    display: inline-flex;
}/* === 📱 Стили для мобильных карточек кураторов === *//* Скрываем таблицу на мобильных, показываем карточки *//* Стили для карточек *//* Адаптивность для мобильных устройств *//* Для очень маленьких экранов *//* ===== АДМИНСКИЕ СТИЛИ С ПРЕФИКСОМ admin- ===== *//* Расширяют общие стили из style.css для админской панели *//* Админские таблицы *//* === 📦 Стили для страницы заказов документов (ordered_documents.php) - Создано с нуля === *//* Все элементы находятся внутри <div class="container"> *//* Заголовки страницы */h2
{
    color: var(--color-primary);
    font-size: 28px;
    font-weight: 700;
    margin: 24px 0;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--color-primary);
    letter-spacing: -0.5px;
}/* Админские типы документов *//* Стили для страницы заказов - кнопки */#createOrderButton, #ArchiveOrderButton
{
    background: var(--color-success);
    color: white;
    padding: 12px 24px;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 8px rgba(76, 175, 80, 0.3);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}#createOrderButton:hover, #ArchiveOrderButton:hover
{
    background: var(--color-success-hover);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(76, 175, 80, 0.4);
}#ArchiveOrderButton
{
    background: var(--color-primary);
    box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);
}#ArchiveOrderButton:hover
{
    background: #0056b3;
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.4);
}/* Форма создания заказа */#createOrderForm
{
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-surface) 100%);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    padding: 32px;
    margin: 24px 0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.08);
}#createOrderForm h3
{
    color: var(--color-primary);
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--color-primary);
}/* Поле поиска студентов */.search-box
{
    width: 100%;
    box-sizing: border-box;
    padding: 12px 16px;
    padding-left: 48px !important;
    border: 2px solid var(--border-light);
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.4;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
    color: #1a202c;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    margin-bottom: 16px;
    min-height: 44px;
}.search-box:focus
{
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 4px rgba(0, 123, 255, 0.1);
}/* Улучшенный список студентов */.student-list
{
    max-height: 400px;
    overflow-y: auto;
    border: 2px solid var(--border-light);
    border-radius: 12px;
    padding: 12px;
    background-color: #ffffff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    margin-bottom: 20px;
}.student-item
{
    display: flex;
    align-items: center;
    padding: 12px;
    border-bottom: 1px solid var(--border-light);
    transition: all 0.3s ease;
    border-radius: 8px;
    margin-bottom: 4px;
}.student-item:last-child
{
    border-bottom: none;
    margin-bottom: 0;
}.student-item:hover
{
    background-color: var(--bg-surface);
    transform: translateX(4px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}.student-name-container
{
    flex: 1;
}.student-name
{
    font-size: 14px;
    color: #2d3748;
    font-weight: 500;
}/* Скроллбар для списка студентов */.student-list::-webkit-scrollbar
{
    width: 8px;
}.student-list::-webkit-scrollbar-track
{
    background: #f1f1f1;
    border-radius: 4px;
}.student-list::-webkit-scrollbar-thumb
{
    background: var(--color-primary);
    border-radius: 4px;
}.student-list::-webkit-scrollbar-thumb:hover
{
    background: #0056b3;
}/* Фильтр по статусу */#orderStatusFilter
{
    padding: 10px 16px;
    border: 2px solid var(--border-light);
    border-radius: 12px;
    font-size: 15px;
    background: #ffffff;
    color: #1a202c;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    margin-bottom: 20px;
}#orderStatusFilter:focus
{
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 4px rgba(0, 123, 255, 0.1);
}/* Контейнер для дат - используем grid для правильного размещения *//* Контейнер для статусов *//* Контейнер для цены и валюты *//* Контейнер для кнопок *//* Форма редактирования заказа */#editOrderForm
{
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-surface) 100%);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    padding: 32px;
    margin: 24px 0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.08);
}#editOrderForm h3
{
    color: var(--color-primary);
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--color-primary);
}/* Дополнительные стили для страницы заказов *//* Админские статусы *//* Админские элементы студентов *//* Админские кнопки и контролы *//* Админские предупреждения */.admin-success
{
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
    border-left: 4px solid var(--color-success);
    color: #2e7d32;
    padding: 12px;
    border-radius: 6px;
    font-weight: 500;
}/* ===== РЎРћР’Р Р•РњР•РќРќРђРЇ РќРђР’РР“РђР¦РРЇ РђР”РњРРќ-РџРђРќР•Р›Р 2025 ===== */.main-navigation
{
    margin: var(--main-space-lg) 0;
    padding: var(--main-space-md);
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-radius: 16px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}.main-navigation ul
{
    list-style-type: none;
    padding: 0;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: var(--main-space-md);
    justify-content: space-between;
    max-width: 100%;
}.main-navigation li
{
    margin: 0;
    max-width: calc(25% - var(--main-space-md));
    text-align: center;
    box-sizing: border-box;
    flex: 1 1 auto;
}.main-navigation li a
{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-decoration: none;
    color: #334155;
    background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%);
    border: 1px solid var(--border-light);
    border-radius: 12px;
    padding: var(--main-space-md-plus) var(--main-space-lg);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    font-weight: 600;
    font-size: 0.95rem;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    min-height: 40px;
    box-sizing: border-box;
    gap: var(--main-space-md);
}.main-navigation li a::before
{
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.1), transparent);
    transition: left 0.5s ease;
}.main-navigation li a span
{
    color: #334155;
    flex: 1;
    overflow: hidden;
    margin-left: var(--main-space-sm);
    transition: color 0.3s ease;
}.main-navigation li a i
{
    font-size: 1.1rem;
    color: var(--main-primary);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    min-width: 20px;
    text-align: center;
}/* Ссылки под #head-icon-menu (кабинет студента, legacy admin-head): hover/фон — header.css */
.main-navigation ul:not(#head-icon-menu) li a:hover
{
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.2);
    background: linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
    border-color: var(--main-primary);
    color: var(--main-primary);
}.main-navigation ul:not(#head-icon-menu) li a:hover::before
{
    left: 100%;
}.main-navigation ul:not(#head-icon-menu) li a:hover i
{
    color: var(--main-primary);
    transform: scale(1.15) rotate(5deg);
}.main-navigation ul:not(#head-icon-menu) li a:hover span
{
    color: var(--main-primary);
}.main-navigation li a:active
{
    transform: translateY(0) scale(0.98);
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border-color: var(--main-primary);
}.main-navigation li a:focus
{
    outline: 2px solid var(--main-primary);
    outline-offset: 2px;
    border-color: var(--main-primary);
}.university-name
{
    margin-bottom: 8px;
    text-align: center;
}.university-actions
{
    display: flex !important;
    gap: 10px;
    align-items: center;
    flex-wrap: nowrap;
    padding: 10px;
    background: linear-gradient(135deg, var(--bg-surface) 0%, #ffffff 100%);
    border-radius: 12px;
    border: 1px solid var(--border-light);
    white-space: nowrap;
    justify-content: center;
    margin: 0 auto;
    max-width: fit-content;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}/* ===== СОВРЕМЕННЫЕ СТИЛИ ДЛЯ ДОБАВЛЕНИЯ РАСПИСАНИЯ 2025 ===== *//* Учитываем ограничение контейнера max-width: 1200px */.lesson-add-container
{
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}.lesson-add-shared-toggle
{
    margin: var(--main-space-lg) 0;
    padding: var(--main-space-lg);
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border: 2px solid var(--main-primary);
    border-radius: 16px;
    transition: all 0.3s ease;
}.lesson-add-shared-toggle:hover
{
    background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2);
}.lesson-add-specialty-multiple
{
    margin-top: var(--main-space-lg);
}.lesson-add-hidden
{
    display: none !important;
}.lesson-add-google-meet-toggle
{
    margin: var(--main-space-md) 0;
    padding: var(--main-space-md);
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    border: 2px solid #f59e0b;
    border-radius: 12px;
    transition: all 0.3s ease;
}.lesson-add-google-meet-toggle:hover
{
    background: linear-gradient(135deg, #fde68a 0%, #fcd34d 100%);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.2);
}.lesson-add-google-meet-fields
{
    margin-top: var(--main-space-md);
    padding: var(--main-space-md);
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    border: 2px solid #f59e0b;
    border-radius: 12px;
    border-top: none;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}.lesson-add-specialty-multiple h3
{
    color: #334155;
    margin-bottom: var(--main-space-md);
    font-size: 1.2rem;
}.lesson-add-specialty-multiple p
{
    color: #64748b;
    font-size: 0.9rem;
    margin-bottom: var(--main-space-md);
    line-height: 1.6;
}.lesson-add-specialty-actions
{
    margin-top: var(--main-space-lg);
    display: flex;
    gap: var(--main-space-md);
    align-items: center;
    flex-wrap: wrap;
}.lesson-add-selected-count
{
    margin-left: var(--main-space-lg);
    font-weight: 700;
    font-size: 1rem;
    padding: 8px 16px;
    background: linear-gradient(135deg, #f1f5f9 0%, var(--border-light) 100%);
    border-radius: 10px;
    color: #334155;
}.lesson-add-selected-count.valid
{
    background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
    color: #065f46;
}.lesson-add-selected-count.invalid
{
    background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
    color: #991b1b;
}.lesson-add-hint
{
    color: #64748b;
    font-size: 0.85rem;
    margin-top: var(--main-space-xs);
    line-height: 1.5;
}.lesson-add-lessons-container
{
    margin-top: var(--main-space-lg);
    padding: var(--main-space-lg);
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border-radius: 16px;
    border: 1px solid var(--border-light);
    width: 100%;
    box-sizing: border-box;
}.lesson-add-lessons-container h3
{
    color: #334155;
    margin-bottom: var(--main-space-lg);
    font-size: 1.3rem;
}.lesson-add-lesson-item
{
    background: #ffffff;
    border: 2px solid var(--border-light);
    padding: var(--main-space-md);
    margin: var(--main-space-md) 0;
    border-radius: 16px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    position: relative;
    width: 100%;
    box-sizing: border-box;
}.lesson-add-lesson-item:hover
{
    border-color: var(--main-primary);
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.15);
    transform: translateY(-2px);
}.lesson-add-lesson-item h4
{
    color: var(--main-primary);
    margin-bottom: var(--main-space-md);
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: var(--main-space-sm);
}/* ════════════════════════════════════════════════════════════════════════════════════
 * 📋 Стили для просмотра списка уроков (university_lesson_view_edit.php)
 * ════════════════════════════════════════════════════════════════════════════════════ */.lessons-list-view
{
    display: flex;
    flex-direction: column;
    gap: var(--main-space-md);
    margin-top: var(--main-space-lg);
}.lesson-view-item
{
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border: 2px solid var(--border-light);
    border-radius: 12px;
    padding: var(--main-space-lg);
    transition: all 0.3s ease;
    cursor: pointer;
}.lesson-view-item:hover
{
    border-color: var(--main-primary, #3b82f6);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
    transform: translateY(-2px);
}.lesson-view-item h4
{
    margin: 0 0 var(--main-space-md) 0;
    color: var(--main-primary, #3b82f6);
    font-size: 1.1rem;
}.lesson-view-item h4 a
{
    color: var(--main-primary, #3b82f6);
    text-decoration: none;
    transition: color 0.2s ease;
}.lesson-view-item h4 a:hover
{
    color: #2563eb;
    text-decoration: underline;
}.lesson-info-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--main-space-sm);
}.lesson-info-item
{
    padding: var(--main-space-sm);
    background: #f8fafc;
    border-radius: 8px;
    font-size: 0.9rem;
    line-height: 1.5;
}.lesson-info-item strong
{
    color: #334155;
    font-weight: 600;
    margin-right: 6px;
}.lesson-info-item a
{
    color: var(--main-primary, #3b82f6);
    text-decoration: none;
    word-break: break-all;
}.lesson-info-item a:hover
{
    text-decoration: underline;
}.teacher-autocomplete-suggestions
{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #ffffff;
    border: 2px solid var(--border-light);
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    max-height: 300px;
    overflow-y: auto;
    z-index: 1000;
    margin-top: 4px;
}.autocomplete-suggestion-item
{
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.2s ease;
    border-bottom: 1px solid #f1f5f9;
}.autocomplete-suggestion-item:last-child
{
    border-bottom: none;
}.autocomplete-suggestion-item:hover, .autocomplete-suggestion-item.selected
{
    background-color: #f8fafc;
    color: var(--main-primary, #3b82f6);
}.autocomplete-suggestion-item strong
{
    color: var(--main-primary, #3b82f6);
    font-weight: 600;
}.autocomplete-loading, .autocomplete-no-results, .autocomplete-error
{
    padding: 12px 16px;
    text-align: center;
    color: #64748b;
    font-size: 0.9rem;
}.autocomplete-error
{
    color: #ef4444;
    background-color: #fef2f2;
}/* ========================================
   Стили для step_add_newstudent_7.php
   ======================================== *//* Flex контейнеры */.student-actions-container
{
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 10px;
    gap: 10px;
    flex-wrap: wrap;
}/* Блок приглашения */.invitation-block
{
    border: 2px solid #667eea;
    border-radius: 8px;
    padding: 15px;
    background-color: var(--bg-surface);
    margin-top: 10px;
    margin-bottom: 10px;
}.invitation-block h4
{
    margin-top: 0;
    margin-bottom: 10px;
    color: #667eea;
    font-size: 14px;
    font-weight: bold;
}.invitation-warning
{
    padding: 8px 15px;
    background-color: #ffc107;
    color: #856404;
    border-radius: 5px;
    display: inline-block;
}.translation-section
{
    margin-bottom: 20px;
}.translation-section-title
{
    color: #495057;
    border-bottom: 2px solid var(--color-primary);
    padding-bottom: 5px;
}.translation-section-title-success
{
    color: #28a745;
    border-bottom: 2px solid #28a745;
    padding-bottom: 5px;
}.translation-section-title-danger
{
    color: #dc3545;
    border-bottom: 2px solid #dc3545;
    padding-bottom: 5px;
}.translation-row-even
{
    background: var(--bg-surface);
}.translation-success-box
{
    background: #d4edda;
    padding: 15px;
    border-radius: 5px;
    margin-top: 10px;
}.translation-success-box ul
{
    margin: 0;
    padding-left: 20px;
}.translation-success-box li
{
    color: #155724;
    font-weight: bold;
}.translation-danger-box
{
    background: #f8d7da;
    padding: 15px;
    border-radius: 5px;
    margin-top: 10px;
}.translation-danger-box p
{
    color: #721c24;
    margin: 0;
    font-weight: bold;
}.translation-danger-box p.info
{
    color: #721c24;
    margin: 10px 0 0 0;
    font-style: italic;
}.translation-danger-box a
{
    color: #004085;
    text-decoration: underline;
}.translation-partial-box
{
    margin-top: 15px;
    text-align: center;
    padding: 15px;
    background: #fff3cd;
    border-radius: 5px;
}.translation-partial-box p
{
    margin: 0 0 10px 0;
    color: #856404;
    font-weight: bold;
}/* ============================================
   admin-student-list.css
   Адаптивные стили для таблицы списка студентов
   Учитываем ограничения .container:
   - max-width: 1200px
   - padding: 20px (итого 40px слева+справа)
   - Доступная ширина: 760px (таблица 750px)
   ============================================ *//* Обертка для горизонтальной прокрутки *//* Основные стили таблицы *//* Стили заголовка *//* Ширины колонок для больших экранов (сумма = 750px) *//* Итого: 50 + 270 + 150 + 150 + 130 = 750px *//* Удалены фоновые цвета строк - прозрачный фон *//* Индивидуальные цвета для статусов - только через цвет текста и границы *//* Стили для ссылок *//* Стили для элементов копирования *//* Стили для текста в ячейках *//* Улучшенная читаемость для всех ячеек *//* Номер записи *//* ============================================
   Адаптивные стили для планшетов (max-width: 767px)
   ============================================ *//* ============================================
   Адаптивные стили для мобильных (max-width: 480px)
   ============================================ *//* ============================================
   Адаптивные стили для очень маленьких экранов (max-width: 375px)
   ============================================ *//* ============================================
   Стили для контролов и пагинации списка студентов
   ============================================ *//* Контролы (фильтр и информация) *//* Пагинация *//* ============================================
   Адаптивные стили для контролов и пагинации
   ============================================ *//* ============================================
   Стили для страницы hero_list_team.php
   Управление командой
   Учитываем ограничения .container:
   - max-width: 1200px
   - padding: 20px (итого 40px слева+справа)
   - Доступная ширина: 760px (таблица 750px)
   ============================================ *//* Заголовок страницы *//* Статистика команды *//* Навигация *//* Обертка для таблицы *//* Таблица для команды *//* Ширины колонок для таблицы команды (сумма = 685px) *//* Стили для флагов языков *//* Итого: 30 + 180 + 110 + 120 + 80 + 40 + 40 = 620px *//* Стили для иконок действий *//* Итого: 50 + 200 + 150 + 150 + 100 + 50 + 50 = 750px *//* ============================================
   Адаптивные стили для планшетов (max-width: 767px)
   ============================================ *//* ============================================
   Адаптивные стили для мобильных (max-width: 480px)
   ============================================ *//* ============================================
   Адаптивные стили для очень маленьких экранов (max-width: 375px)
   ============================================ *//* ============================================
   Стили для страницы hero_add_to_team.php
   Форма добавления участника команды
   ============================================ */.admin-hero-add-page
{
    max-width: var(--legacy-page-narrow-max);
    margin: 0 auto;
    padding: var(--legacy-page-pad);
}.admin-hero-add-page h2
{
    color: #212529;
    font-size: var(--legacy-page-title-font-size);
    font-weight: 700;
    margin-bottom: var(--legacy-page-title-margin-bottom);
    display: flex;
    align-items: center;
    gap: var(--legacy-page-title-gap);
    border-bottom: 2px solid #dee2e6;
    padding-bottom: var(--legacy-page-title-padding-bottom);
}.admin-hero-add-page h2 i
{
    color: #0066cc;
    font-size: 0.9em;
}/* Алерты */.admin-alert
{
    padding: var(--legacy-alert-padding);
    border-radius: 6px;
    margin-bottom: var(--legacy-alert-margin-bottom);
    display: flex;
    align-items: center;
    gap: var(--legacy-alert-gap);
    font-size: var(--legacy-alert-font-size);
}.admin-alert-error
{
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}.admin-alert-error i
{
    color: #dc3545;
}.admin-required
{
    color: #dc3545;
    font-weight: bold;
}/* ============================================
   Стили для страницы create_materials_config.php
   Конфигурация материалов
   ============================================ */.admin-materials-config-page
{
    max-width: var(--legacy-page-wide-max);
    margin: 0 auto;
    padding: var(--legacy-page-pad);
}.admin-materials-config-page h2
{
    color: #212529;
    font-size: var(--legacy-page-title-font-size);
    font-weight: 700;
    margin-bottom: var(--legacy-page-title-margin-bottom);
    display: flex;
    align-items: center;
    gap: var(--legacy-page-title-gap);
    border-bottom: 2px solid #dee2e6;
    padding-bottom: var(--legacy-page-title-padding-bottom);
}.admin-materials-config-page h2 i
{
    color: #0066cc;
    font-size: 0.9em;
}.admin-config-info
{
    background-color: var(--bg-surface);
    padding: var(--legacy-section-padding);
    border-radius: 6px;
    margin-bottom: var(--legacy-section-margin-bottom);
    border-left: 4px solid #0066cc;
}.admin-config-info code
{
    background-color: #e9ecef;
    padding: 2px 6px;
    border-radius: 3px;
    font-family: "Courier New", monospace;
    font-size: 13px;
    color: #495057;
}.admin-config-section
{
    background-color: var(--bg-surface);
    padding: var(--legacy-section-padding);
    border-radius: 8px;
    margin-bottom: var(--legacy-section-margin-bottom);
    border: 1px solid #dee2e6;
}.admin-config-section h3
{
    color: #212529;
    font-size: var(--legacy-section-title-font-size);
    font-weight: 600;
    margin-bottom: var(--legacy-section-title-margin-bottom);
    display: flex;
    align-items: center;
    gap: var(--legacy-section-title-gap);
    padding-bottom: var(--legacy-section-title-padding-bottom);
    border-bottom: 1px solid #dee2e6;
}.admin-config-section h3 i
{
    color: #0066cc;
    font-size: 0.9em;
}.admin-alert-success
{
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}.admin-alert-success i
{
    color: #28a745;
}/* ============================================
   Стили для страницы site_settings_schools_universities.php
   Управление учебными заведениями
   ============================================ */.admin-schools-universities-page
{
    max-width: var(--legacy-page-medium-max);
    margin: 0 auto;
    padding: var(--legacy-page-pad);
}.admin-schools-universities-page h2
{
    color: #212529;
    font-size: var(--legacy-page-title-font-size);
    font-weight: 700;
    margin-bottom: var(--legacy-page-title-margin-bottom);
    display: flex;
    align-items: center;
    gap: var(--legacy-page-title-gap);
    border-bottom: 2px solid #dee2e6;
    padding-bottom: var(--legacy-page-title-padding-bottom);
}.admin-schools-universities-page h2 i
{
    color: #0066cc;
    font-size: 0.9em;
}/* Действия */.admin-schools-actions
{
    display: flex;
    gap: var(--legacy-actions-gap);
    margin-bottom: var(--legacy-section-margin-bottom);
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}.admin-google-actions
{
    display: flex;
    gap: var(--legacy-actions-gap);
    align-items: center;
    flex-wrap: nowrap;
}/* ========================================
   СТИЛИ ДЛЯ СТРАНИЦЫ АПОСТИЛЯ (admin/apostille_requests_admin.php)
   Все стили перенесены из apostille-admin.css с префиксом admin-
   ======================================== *//* Основная страница */.admin-apostille-page
{
    max-width: 100%;
    margin: 0 auto;
    padding: var(--legacy-page-pad);
}.admin-apostille-header
{
    margin-bottom: var(--legacy-apostille-header-margin-bottom);
}.admin-apostille-header h1
{
    color: #212529;
    font-size: var(--legacy-apostille-title-font-size);
    font-weight: 700;
    margin-bottom: var(--legacy-section-margin-bottom);
    display: flex;
    align-items: center;
    gap: var(--legacy-page-title-gap);
}.admin-apostille-header h1 i
{
    color: #0066cc;
    font-size: 0.9em;
}.admin-apostille-nav
{
    display: flex;
    gap: var(--legacy-actions-gap);
    flex-wrap: wrap;
}/* Статистика */.admin-apostille-stats
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(var(--legacy-apostille-stats-min), 1fr));
    gap: var(--legacy-apostille-stats-gap);
    margin-bottom: var(--legacy-apostille-stats-margin-bottom);
    padding: var(--legacy-apostille-stats-padding);
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}/* Секция ожидающих запросов */.admin-apostille-pending-section
{
    background: linear-gradient(135deg, #fff3cd 0%, #ffe8a1 100%);
    border-radius: 16px;
    padding: var(--legacy-apostille-pending-padding);
    margin: var(--legacy-apostille-pending-margin);
    border-left: 5px solid #f39c12;
    box-shadow: 0 4px 20px rgba(243, 156, 18, 0.2);
}.admin-apostille-pending-section h3
{
    margin: 0 0 var(--legacy-apostille-pending-title-margin-bottom) 0;
    color: #856404;
    font-size: var(--legacy-apostille-pending-title-font-size);
    display: flex;
    align-items: center;
    gap: var(--legacy-apostille-pending-title-gap);
}.admin-apostille-pending-section h3 i
{
    font-size: var(--legacy-apostille-request-icon-size);
}.admin-apostille-request-student
{
    display: flex;
    align-items: center;
    gap: var(--legacy-apostille-request-gap);
    margin-bottom: var(--legacy-apostille-request-margin-bottom);
    padding-bottom: var(--legacy-apostille-request-padding-bottom);
    border-bottom: 1px solid #f0f0f0;
}.admin-apostille-request-student i
{
    font-size: var(--legacy-apostille-request-icon-size);
    color: #667eea;
}.admin-apostille-request-student strong
{
    font-size: var(--legacy-apostille-request-student-font-size);
    color: #2c3e50;
}.admin-apostille-request-curator
{
    display: flex;
    align-items: center;
    gap: calc(var(--legacy-apostille-request-gap) - 2px);
    margin-bottom: var(--legacy-apostille-request-margin-bottom);
    font-size: var(--legacy-apostille-request-curator-font-size);
    color: #555;
}.admin-apostille-request-curator i
{
    color: #95a5a6;
}.admin-apostille-request-description
{
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 13px;
    color: #555;
    line-height: 1.5;
}.admin-apostille-request-description i
{
    margin-top: 2px;
    color: #95a5a6;
}.admin-apostille-request-date
{
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #7f8c8d;
    margin-bottom: 10px;
}.admin-apostille-request-date i
{
    color: #95a5a6;
}.admin-apostille-status-with-view
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin: 15px 0;
    padding: 10px;
    background: rgba(255, 193, 7, 0.1);
    border-radius: 8px;
    border: 1px solid rgba(255, 193, 7, 0.3);
}.admin-apostille-inline-view
{
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.9em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}.admin-apostille-inline-view:hover
{
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
    background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
}.admin-apostille-inline-view:active
{
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}.admin-apostille-inline-view i
{
    font-size: 1em;
    transition: transform 0.3s ease;
}.admin-apostille-inline-view:hover i
{
    transform: scale(1.1);
}/* Действия с запросами */.admin-apostille-request-actions
{
    display: flex;
    gap: 8px;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid #f0f0f0;
}/* Секция "нет запросов" */.admin-apostille-no-requests
{
    text-align: center;
    padding: 40px 20px;
    background: linear-gradient(135deg, var(--bg-surface) 0%, #e9ecef 100%);
    border-radius: 16px;
    margin: 20px 0;
}.admin-apostille-no-requests-icon
{
    font-size: 64px;
    color: #28a745;
    margin-bottom: 20px;
}.admin-apostille-no-requests h3
{
    color: #2c3e50;
    margin-bottom: 10px;
    font-size: 24px;
}.admin-apostille-no-requests p
{
    color: #6c757d;
    font-size: 16px;
    margin: 0;
}/* Фильтры */.admin-apostille-filters
{
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, rgba(248, 249, 250, 0.2) 100%);
    backdrop-filter: blur(10px);
    padding: 25px;
    border-radius: 16px;
    margin: 25px 0;
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    position: relative;
    z-index: 1;
}.admin-apostille-dynamic-counter
{
    color: #667eea;
    font-weight: 700;
    animation: admin-apostille-pulse-counter 2s infinite;
}/* Секция заказов в обработке */.admin-apostille-processing-section
{
    margin: 25px 0;
}.admin-apostille-processing-section h3
{
    margin: 0 0 20px 0;
    color: #2c3e50;
    font-size: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}.admin-apostille-order-content
{
    padding: 15px;
}.admin-apostille-order-student
{
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}.admin-apostille-order-student i
{
    font-size: 20px;
    color: #667eea;
}.admin-apostille-order-student strong
{
    font-size: 15px;
    color: #2c3e50;
}.admin-apostille-order-student a
{
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
    padding: 8px 12px;
    border-radius: 8px;
}.admin-apostille-order-student a:hover
{
    background: rgba(52, 144, 220, 0.1);
    transform: translateX(5px);
    color: #3490dc;
    text-decoration: none;
}.admin-apostille-order-student a i
{
    transition: all 0.3s ease;
}.admin-apostille-order-student a:hover i
{
    color: #3490dc;
    transform: scale(1.1);
}.admin-apostille-order-curator
{
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 13px;
    color: #555;
}.admin-apostille-order-curator i
{
    color: #95a5a6;
}.admin-apostille-order-actions
{
    display: flex;
    gap: 8px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f0;
}/* Секция завершенных заказов */.admin-apostille-completed-section
{
    background: linear-gradient(135deg, rgba(40, 167, 69, 0.1) 0%, rgba(25, 135, 84, 0.05) 100%);
    border: 2px solid rgba(40, 167, 69, 0.2);
    border-radius: 20px;
    padding: 30px;
    margin: 30px 0;
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(40, 167, 69, 0.1);
}.admin-apostille-completed-section::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #28a745 0%, #20c997 50%, #17a2b8 100%);
    border-radius: 20px 20px 0 0;
}.admin-apostille-completed-section h3
{
    color: #28a745;
    font-size: 1.8em;
    font-weight: 700;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
    text-shadow: 0 2px 4px rgba(40, 167, 69, 0.1);
}.admin-apostille-completed-section h3 i
{
    font-size: 1.2em;
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: admin-apostille-pulse-success 2s ease-in-out infinite;
}.admin-apostille-sort-info
{
    display: block;
    font-size: 0.7em;
    color: rgba(40, 167, 69, 0.7);
    font-weight: 500;
    margin-top: 5px;
    opacity: 0.8;
    transition: opacity 0.3s ease;
}.admin-apostille-sort-info i
{
    margin-right: 5px;
    font-size: 0.9em;
}.admin-apostille-completed-section h3:hover .admin-apostille-sort-info
{
    opacity: 1;
}/* Кнопки показа дополнительных */.admin-apostille-show-more
{
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 30px;
    padding: 20px;
}.admin-apostille-request-info
{
    background: linear-gradient(135deg, var(--bg-surface) 0%, #e9ecef 100%);
    border-radius: 12px;
    padding: 15px;
    margin-bottom: 20px;
    border-left: 4px solid #667eea;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}.admin-apostille-price-breakdown
{
    display: none;
    background: var(--bg-surface);
    padding: 10px;
    border-radius: 4px;
    margin-top: 10px;
}.admin-apostille-price-breakdown.show
{
    display: block;
}.admin-apostille-price-item
{
    margin-bottom: 5px;
    font-size: 14px;
}.admin-apostille-price-total
{
    font-weight: bold;
    border-top: 1px solid #dee2e6;
    padding-top: 5px;
    margin-top: 5px;
}.admin-apostille-view-icon
{
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}/* ===== СОВРЕМЕННЫЕ СТИЛИ ДЛЯ СТРАНИЦЫ ДОБАВЛЕНИЯ ДОКУМЕНТОВ 2025 ===== *//* === 📄 СТРАНИЦА ДОБАВЛЕНИЯ ДОКУМЕНТОВ === */.admin-document-add-page
{
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--main-space-md);
}.admin-document-add-header
{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--main-space-lg);
    padding-bottom: var(--main-space-md);
    border-bottom: 2px solid var(--border-light);
}.admin-document-add-header h2
{
    margin: 0;
    color: #334155;
    font-size: 1.8rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: var(--main-space-sm);
}.admin-document-add-header h2 i
{
    color: var(--main-primary);
    font-size: 1.5rem;
}/* === 📋 СЕКЦИИ ФОРМЫ === */.admin-document-section
{
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border-radius: 16px;
    padding: var(--main-space-md);
    margin-bottom: var(--main-space-lg);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-light);
}.admin-document-section h2, .admin-document-section h3
{
    color: #334155;
    margin: 0 0 var(--main-space-lg) 0;
    font-size: 1.5rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: var(--main-space-sm);
}.admin-document-section h2 i, .admin-document-section h3 i
{
    color: var(--main-primary);
}.admin-document-section h4
{
    color: #475569;
    margin: var(--main-space-lg) 0 var(--main-space-md) 0;
    font-size: 1.2rem;
    font-weight: 600;
}/* === 📭 ПУСТОЕ СОСТОЯНИЕ === */.text-center
{
    text-align: center;
}/* === 🏷️ Стиль статуса студента (справка под 45 градусов снизу слева вверх справа) === */.admin-student-status
{
    position: absolute;
    font-size: 12px;
    font-weight: bold;
    color: white;
    padding: 8px 40px;
    border-radius: 4px;
    display: inline-block;
    transform: rotate(-45deg);
    transform-origin: center;
    top: 25px;
    right: -25px;
    white-space: nowrap;
    z-index: 10;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    text-align: center;
    min-width: 120px;
}/* Алерты */.admin-alert-success
{
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
    font-size: 14px;
}.admin-alert-danger
{
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
    font-size: 14px;
}.admin-alert-info
{
    background-color: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
    font-size: 14px;
}.admin-alert-info p
{
    font-size: 14px;
    margin: 0;
}/* Список документов */.admin-documents-list
{
    margin: 20px 0;
    font-size: 14px;
}.admin-documents-section
{
    margin-bottom: 25px;
    padding: 15px;
    background-color: var(--bg-surface);
    border-radius: 8px;
    border: 1px solid #e9ecef;
    font-size: 14px;
}.admin-documents-section h5
{
    margin: 0 0 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: #495057;
}.admin-documents-ul
{
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 14px;
}.admin-document-item
{
    padding: 10px 15px;
    margin-bottom: 8px;
    background-color: #ffffff;
    border-radius: 6px;
    border-left: 4px solid #dee2e6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all 0.2s ease;
    font-size: 14px;
}.admin-document-item strong
{
    font-size: 14px;
    font-weight: 600;
}.admin-document-item:hover
{
    background-color: var(--bg-surface);
    transform: translateX(3px);
}.admin-document-uploaded
{
    border-left-color: #28a745;
}.admin-document-missing
{
    border-left-color: #ffc107;
}.admin-status-success
{
    background-color: #d4edda;
    color: #155724;
}.admin-status-warning
{
    background-color: #fff3cd;
    color: #856404;
}/* Ссылки на скачивание */.admin-download-links
{
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 20px 0;
    font-size: 14px;
}.admin-download-link
{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}.admin-download-link:hover
{
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}.admin-download-link-primary
{
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #ffffff;
}.admin-download-link-primary:hover
{
    background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
    border-color: #667eea;
}.admin-download-link-secondary
{
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    color: #ffffff;
}.admin-download-link-secondary:hover
{
    background: linear-gradient(135deg, #f5576c 0%, #f093fb 100%);
    border-color: #f5576c;
}.admin-download-icon
{
    font-size: 16px;
}/* Навигация */.admin-navigation
{
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: 20px;
    font-size: 14px;
}/* ============================================
   Стили для страницы who_is_online.php
   ============================================ *//* Контейнер для формы поиска и кнопки очистки кеша *//* Контейнер формы поиска *//* Форма поиска *//* Поле ввода поиска *//* Select для типа поиска *//* Кнопка поиска *//* Кнопка очистки поиска *//* Информационная панель результатов поиска *//* Автокомплит для поиска пользователей */.search-autocomplete-wrapper
{
    position: relative;
    flex: 1;
    min-width: 300px;
}.search-autocomplete-list
{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    max-height: 300px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
    margin-top: 2px;
}.autocomplete-item
{
    padding: 10px 12px;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    transition: background-color 0.2s;
}.autocomplete-item:last-child
{
    border-bottom: none;
}.autocomplete-item:hover, .autocomplete-item-hover
{
    background-color: #f5f5f5;
}.autocomplete-item strong
{
    color: #333;
    font-size: 14px;
    flex: 1;
}.autocomplete-role
{
    color: #666;
    font-size: 12px;
    padding: 2px 8px;
    background: #e9ecef;
    border-radius: 4px;
}.autocomplete-type
{
    color: #999;
    font-size: 11px;
    font-style: italic;
    padding: 2px 6px;
    background: var(--bg-surface);
    border-radius: 4px;
}.autocomplete-no-results
{
    color: #999;
    text-align: center;
    cursor: default;
    font-style: italic;
}.autocomplete-no-results:hover
{
    background-color: white;
}/* Общий класс для скрытия элементов */.hidden
{
    display: none !important;
}/* Скрытые строки офлайн пользователей */.offline-user-row.hidden
{
    display: none;
}/* === css_split_uni.py append @ 2026-04-03 10:10:51 === *//* CHECK: mixed base + non-base selectors in one rule */﻿

h1, h2, h3, h4, h5, h6
{
    font-family: "Playfair Display", serif;
    font-weight: 400;
}img, iframe, embed, object, video
{
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}/* General container styles — на широких экранах карточка не шире 1200px; на узких сужается с родителем (width: 100%) */.container, .section, .content
{
    width: 100%;
    max-width: 1200px;
    margin-block: clamp(var(--main-space-md), 2.5vw, var(--main-space-lg));
    margin-inline: auto;
    background-color: var(--main-white);
    padding: clamp(var(--main-space-md), 3.2vw, var(--main-space-lg));
    border-radius: var(--main-radius-md);
    box-shadow: var(--main-shadow-md);
    box-sizing: border-box;
    overflow-x: hidden;
}a:link, a:visited, a:hover, a:active
{
    text-decoration: none;
}#university-logos.logos-container
{
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}#university-logos.logos-container img
{
    max-width: 100px;
    height: auto;
    border-radius: var(--main-space-xs);
}/* Стили для страницы восстановления пароля */.forgot-password-container
{
    max-width: 1200px;
    width: 100%;
    margin: var(--main-space-lg) auto;
    padding: var(--main-space-xl);
    padding-left: 60px;
    padding-right: 60px;
    background: linear-gradient(135deg, var(--bg-surface) 0%, #ffffff 100%);
    border-radius: 20px;
    box-shadow: 0 5px 25px rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
}.forgot-password-title
{
    text-align: center;
    color: #334155;
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: var(--main-space-md);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--main-space-md);
}.forgot-password-title i
{
    color: #667eea;
    font-size: 1.5rem;
}.forgot-password-description
{
    text-align: center;
    color: #64748b;
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: var(--main-space-lg);
}.forgot-password-back
{
    text-align: center;
    margin-top: var(--main-space-md);
}.forgot-password-success
{
    background: #10b981;
    color: #ffffff;
    padding: var(--main-space-md);
    border-radius: 12px;
    margin-bottom: var(--main-space-md);
    display: flex;
    align-items: center;
    gap: var(--main-space-sm);
    font-weight: 500;
}.forgot-password-error
{
    background: #ef4444;
    color: #ffffff;
    padding: var(--main-space-md);
    border-radius: 12px;
    margin-bottom: var(--main-space-md);
    display: flex;
    align-items: center;
    gap: var(--main-space-sm);
    font-weight: 500;
}.alert, .unalert
{
    padding: var(--main-space-lg);
    color: white;
    margin-bottom: var(--main-space-lg-minus);
    border-radius: var(--main-space-xs);
    font-family: Arial, sans-serif;
    font-size: var(--main-space-xl);
    display: block;
    border: var(--main-space-xxs) solid transparent;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-xs) rgba(0, 0, 0, 0.1);
}.alert-success, .unalert-success
{
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
    border: var(--main-space-xxs) solid #c8e6c9;
    border-left: var(--main-space-xs) solid var(--color-success);
    color: #2e7d32;
    padding: var(--main-space-md-plus) var(--main-space-xl);
    border-radius: 6px;
    margin: var(--main-space-md) 0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(76, 175, 80, 0.15);
}.alert-danger
{
    background: linear-gradient(135deg, #fde8e8, #ffcdd2);
    border: var(--main-space-xxs) solid #ffcdd2;
    border-left: var(--main-space-xs) solid #f44336;
    color: #c62828;
    padding: var(--main-space-md-plus) var(--main-space-xl);
    border-radius: 6px;
    margin: var(--main-space-md) 0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(244, 67, 54, 0.15);
}.alert-warning
{
    background: linear-gradient(135deg, var(--main-white), #ffe0b2);
    border: var(--main-space-xxs) solid #ffe0b2;
    border-left: var(--main-space-xs) solid #ff9800;
    color: #e65100;
    padding: var(--main-space-md-plus) var(--main-space-xl);
    border-radius: 6px;
    margin: var(--main-space-md) 0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(255, 152, 0, 0.15);
}.alert-info
{
    background: linear-gradient(135deg, #e3f2fd, #bbdefb);
    border: var(--main-space-xxs) solid #bbdefb;
    border-left: var(--main-space-xs) solid #2196f3;
    color: #1565c0;
    padding: var(--main-space-md-plus) var(--main-space-xl);
    border-radius: 6px;
    margin: var(--main-space-md) 0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(33, 150, 243, 0.15);
}.alert-primary
{
    background-color: var(--main-blue);
    border-color: navy;
}.alert-light
{
    background-color: var(--main-bg-light);
    border-color: #d6d8db;
}.alert-dark
{
    background-color: #343a40;
    border-color: black;
}.alert, .unalert
{
    animation: fadeIn 0.3s ease-in-out;
}.alert
{
    text-align: left;
}.unalert
{
    text-align: center;
}.expel-message
{
    font-size: var(--main-space-lg-minus);
    color: var(--main-text-dark);
    line-height: 1.6;
}.expel-message p
{
    margin-bottom: var(--main-space-sm);
}.expel-message strong
{
    color: #b30000;
}.expel-comment
{
    background-color: #fdf2f2;
    border-left: var(--main-space-xs) solid #e08080;
    padding: var(--main-space-md) var(--main-space-lg-minus);
    font-size: 13px;
    color: #555;
    margin-top: var(--main-space-md);
    white-space: pre-wrap;
}.document-type
{
    background-color: #e8f5e9;
    color: #2e7d32;
    padding: 3px 6px;
    border-radius: var(--main-space-xs);
    font-size: 0.9em;
    display: inline-block;
    font-weight: 500;
}.delivery-type
{
    background-color: #e3f2fd;
    color: #1565c0;
    padding: 3px 6px;
    border-radius: var(--main-space-xs);
    font-size: 0.9em;
    display: inline-block;
    font-weight: 500;
}.student-item
{
    display: flex;
    align-items: center;
    gap: var(--main-space-md);
    padding: var(--main-space-md);
    border: var(--main-space-xxs) solid #e0e0e0;
    border-radius: 6px;
    margin-bottom: var(--main-space-sm);
    transition: all 0.3s ease;
    background-color: var(--main-white);
}.student-item:hover
{
    background-color: var(--main-bg-light);
    border-color: #ccc;
}.student-name
{
    font-weight: 500;
    color: var(--main-text-dark);
    flex: 1;
    display: flex;
    align-items: center;
}.info-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--main-space-lg-minus);
    margin-top: var(--main-space-lg-minus);
}.info-item
{
    display: flex;
    align-items: center;
    padding: var(--main-space-lg-minus);
    background: linear-gradient(135deg, var(--main-bg-light) 0%, var(--main-white) 100%);
    border-radius: var(--main-space-md);
    border: var(--main-space-xxs) solid #e9ecef;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}.info-item::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: var(--main-space-xs);
    height: 100%;
    background: linear-gradient(135deg, #667eea, #764ba2);
}.info-item:hover
{
    transform: translateY(-var(--main-space-xxs));
    box-shadow: 0 6px var(--main-space-xl) rgba(0,0,0,0.1);
}.info-item i
{
    margin-right: var(--main-space-lg-minus);
    color: #667eea;
    width: var(--main-space-xxl);
    font-size: 1.2em;
}.info-value
{
    color: var(--main-text-dark);
    font-weight: 500;
    word-break: break-word;
}.search-results
{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: var(--main-space-xxs) solid var(--main-border);
    border-top: none;
    max-height: 200px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
}.search-result-item
{
    padding: var(--main-space-md);
    cursor: pointer;
    border-bottom: var(--main-space-xxs) solid #eee;
    transition: background-color 0.2s;
}.search-result-item:hover
{
    background-color: #f5f5f5;
}.search-result-item:last-child
{
    border-bottom: none;
}.no-results, .error
{
    padding: var(--main-space-md);
    color: #666;
    text-align: center;
}.error
{
    color: #d32f2f;
}.selected-student-info
{
    margin-top: var(--main-space-md);
    padding: var(--main-space-md);
    background-color: #e8f5e8;
    border-radius: var(--main-space-xs);
    border: var(--main-space-xxs) solid var(--color-success);
}.selected-student
{
    color: #2e7d32;
    font-weight: 500;
}.hidden
{
    display: none !important;
}.text-center
{
    text-align: center;
}.text-left
{
    text-align: left;
}.text-right
{
    text-align: right;
}.mb-10
{
    margin-bottom: var(--main-space-md);
}.mt-10
{
    margin-top: var(--main-space-md);
}.ml-10
{
    margin-left: var(--main-space-md);
}.mr-10
{
    margin-right: var(--main-space-md);
}.p-10
{
    padding: var(--main-space-md);
}.flex
{
    display: flex;
}.flex-center
{
    display: flex;
    align-items: center;
    justify-content: center;
}.flex-between
{
    display: flex;
    justify-content: space-between;
    align-items: center;
}.footer-lang-cell
{
    padding: var(--main-space-xs);
    width: 25%;
    text-align: center;
}/* Современный переключатель языков (для students/includes/footer.php) */.footer-lang-switcher
{
    background: linear-gradient(135deg, #ffffff, #f8fafc);
    padding: 1.5rem;
    border-radius: 1rem;
    margin: 1.5rem 0;
    border: 1px solid var(--border-light);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}.footer-lang-title
{
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: #334155;
    margin-bottom: 1rem;
    font-size: 1rem;
    text-align: center;
    justify-content: center;
}.footer-lang-title i
{
    color: #1d4ed8;
    font-size: 1.25rem;
}.footer-lang-container
{
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
}/* Модификатор для флагов без теней и без бордеров */.footer-lang-no-shadow
{
    box-shadow: none !important;
}.footer-lang-no-shadow, .footer-lang-no-shadow *
{
    box-shadow: none !important;
    filter: none !important;
    border: 0 !important;
}.footer-lang-no-shadow:hover, .footer-lang-no-shadow:hover *
{
    box-shadow: none !important;
    border: 0 !important;
}.footer-lang-no-shadow:active, .footer-lang-no-shadow:active *
{
    box-shadow: none !important;
    border: 0 !important;
}.footer-lang-no-shadow:focus, .footer-lang-no-shadow:focus *
{
    box-shadow: none !important;
    border: 0 !important;
}.footer-lang-no-shadow.active, .footer-lang-no-shadow.active *
{
    box-shadow: none !important;
    border: 0 !important;
}/* ===== СТИЛИ ДЛЯ СТРАНИЦЫ ВХОДА (LOGIN.PHP) ===== *//* Современный дизайн 2025 года с единым префиксом login- *//* Контейнер страницы входа */.login-container
{
    width: 100%;
    max-width: min(500px, 100%);
    margin: 0 auto;
    padding: clamp(var(--main-space-md), 2.8vw, var(--main-space-lg));
    box-sizing: border-box;
}/* Заголовок страницы входа */.login-title
{
    text-align: center;
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--main-text-dark);
    margin-bottom: var(--main-space-lg);
    background: linear-gradient(135deg, var(--main-primary), var(--main-success));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}/* Информационное сообщение */.login-info-message
{
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
    color: #1565c0;
    padding: var(--main-space-md-plus);
    border-radius: 16px;
    margin: var(--main-space-md) 0;
    border-left: 4px solid #2196f3;
    box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}.login-info-message:hover
{
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(33, 150, 243, 0.2);
}.login-info-message i
{
    font-size: 16px;
    vertical-align: middle;
    margin-right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    backdrop-filter: blur(10px);
}/* Предупреждение о привязке Google */.login-google-warning
{
    background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%);
    color: #e65100;
    padding: var(--main-space-md-plus);
    border-radius: 16px;
    margin: var(--main-space-md) 0;
    border-left: 4px solid #ff9800;
    box-shadow: 0 4px 12px rgba(255, 152, 0, 0.15);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}.login-google-warning:hover
{
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(255, 152, 0, 0.2);
}.login-google-warning i
{
    margin-right: 8px;
}/* Альтернативный способ для браузеров без поддержки :has() - не работает, т.к. иконка ПЕРЕД input *//* Используем JavaScript для изменения цвета или :has() селектор *//* Обертка для поля пароля */.login-password-wrapper
{
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    margin-bottom: var(--main-space-md);
}/* Переключатель видимости пароля */.login-password-toggle
{
    position: absolute !important;
    right: var(--main-space-md-plus) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    cursor: pointer !important;
    color: #999 !important;
    font-size: 1rem !important;
    z-index: 10 !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    user-select: none;
    background: transparent !important;
    border: none !important;
    padding: var(--main-space-xs) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 20px !important;
    height: 20px !important;
    border-radius: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    box-shadow: none !important;
}.login-password-toggle:hover
{
    color: var(--main-primary) !important;
    background: transparent !important;
    transform: translateY(-50%) scale(1.1) !important;
    box-shadow: none !important;
}.login-password-toggle:active
{
    transform: translateY(-50%) scale(0.95) !important;
}/* Разделитель "или" */.login-divider
{
    text-align: center;
    margin: var(--main-space-lg) 0;
    position: relative;
}.login-divider hr
{
    border: none;
    border-top: 2px solid #e0e0e0;
    margin: 0;
}.login-divider-text
{
    background: linear-gradient(135deg, #ffffff 0%, var(--bg-surface) 100%);
    padding: 0 var(--main-space-md);
    color: #666;
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    font-weight: 500;
    font-size: 0.9rem;
}/* Кнопка "Забыли пароль?" - Современный стиль 2025 */.login-forgot-password
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #ffffff;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    padding: 12px 24px;
    text-align: center;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    border-radius: 12px;
    border: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    margin-top: var(--main-space-md);
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
    position: relative;
    overflow: hidden;
}.login-forgot-password::before
{
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}.login-forgot-password:hover
{
    color: #ffffff;
    background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
    text-decoration: none;
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
}.login-forgot-password:hover::before
{
    left: 100%;
}.login-forgot-password:active
{
    transform: translateY(0) scale(0.98);
    box-shadow: 0 2px 10px rgba(102, 126, 234, 0.3);
}.login-forgot-password i
{
    font-size: 1rem;
    transition: transform 0.3s ease;
}.login-form p
{
    margin: var(--main-space-md) 0 0;
    text-align: center;
}.login-forgot-password:hover i
{
    transform: rotate(-10deg);
}/* Статистика: в login.php блок сосед с .login-container, внутри .container — полная ширина карточки (до 1200px), без left/transform */.login-statistics
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
    gap: var(--main-space-md);
    align-items: stretch;
    justify-items: stretch;
    margin-top: var(--main-space-lg-plus);
    padding: var(--main-space-lg);
    background: linear-gradient(135deg, var(--bg-surface) 0%, #ffffff 100%);
    border-radius: 20px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}.login-stat-item
{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--main-space-sm);
    min-height: clamp(140px, 16vw, 170px);
    text-align: center;
    padding: var(--main-space-lg);
    background: white;
    border-radius: 16px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: visible;
    min-width: 0;
}.login-stat-item::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--main-primary), var(--main-success));
    transform: scaleX(0);
    transition: transform 0.3s ease;
}.login-stat-item:hover
{
    transform: translateY(-8px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}.login-stat-item:hover::before
{
    transform: scaleX(1);
}.login-stat-item h4
{
    margin: 0 0 var(--main-space-md) 0;
    color: var(--main-text-dark);
    font-size: clamp(0.8rem, 0.35vw + 0.72rem, 0.9rem);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.35px;
    line-height: 1.4;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
    max-width: 100%;
}.login-stat-item span
{
    display: block;
    font-size: clamp(1.35rem, 2.2vw + 0.9rem, 2.5rem);
    font-weight: 700;
    background: linear-gradient(135deg, var(--main-primary), var(--main-success));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1.15;
    overflow-wrap: anywhere;
    word-break: break-all;
    font-variant-numeric: tabular-nums;
}/* ===== СТИЛИ ДЛЯ ФУТЕРА (FOOTER.PHP) ===== *//* Современный дизайн 2025 года с единым префиксом footer- *//* Учитываем, что footer используется совместно с head.php и login.php внутри .container *//* Кнопка выхода — разметка из footer.php: class="btn btn-danger footer-logout-btn" (guest: нет buttons.css/base, стили только здесь; совпадает с --danger-gradient админки) */.footer-logout
{
    margin: var(--main-space-lg) 0;
    text-align: right;
}/* Копирайт и информация */.footer-copyright
{
    text-align: center;
    padding: var(--main-space-md) 0;
    margin: var(--main-space-lg) 0;
    color: var(--main-text-dark);
    font-size: 0.9rem;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}.footer-copyright i
{
    color: #038eaf;
    margin-right: 5px;
}.footer-copyright a
{
    color: var(--main-primary);
    text-decoration: none;
    transition: all 0.3s ease;
    margin-left: 5px;
}.footer-copyright a:hover
{
    color: var(--main-success);
    text-decoration: underline;
}.footer-version
{
    color: #666;
    font-size: 0.85rem;
}/* Ссылка на политику конфиденциальности */.footer-privacy-link
{
    color: var(--main-primary);
    text-decoration: none;
    transition: all 0.3s ease;
    font-weight: 500;
}.footer-privacy-link:hover
{
    color: var(--main-success);
    text-decoration: underline;
}/* ===== СТИЛИ ДЛЯ ГЛАВНОЙ СТРАНИЦЫ (INDEX.PHP) ===== *//* Современный дизайн 2025 года с единым префиксом index- *//* Контейнер главной страницы */.index-container
{
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--main-space-lg);
}/* Заголовок главной страницы */.index-title
{
    text-align: center;
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--main-text-dark);
    margin-bottom: var(--main-space-lg);
    background: linear-gradient(135deg, var(--main-primary), var(--main-success));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}/* Ссылка "Забыли пароль?" */.index-forgot-password
{
    display: inline-block;
    color: var(--main-primary);
    text-decoration: none;
    font-weight: 500;
    margin-top: var(--main-space-md);
    transition: all 0.3s ease;
    padding: var(--main-space-sm);
    border-radius: 8px;
}.index-forgot-password:hover
{
    color: var(--main-success);
    background: rgba(59, 130, 246, 0.05);
    text-decoration: underline;
}/* Статистика на главной странице */.index-statistics
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--main-space-md);
    margin-top: var(--main-space-lg-plus);
    padding: var(--main-space-lg);
    background: linear-gradient(135deg, var(--bg-surface) 0%, #ffffff 100%);
    border-radius: 20px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
}.index-stat-item
{
    text-align: center;
    padding: var(--main-space-lg);
    background: white;
    border-radius: 16px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
}.index-stat-item::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--main-primary), var(--main-success));
    transform: scaleX(0);
    transition: transform 0.3s ease;
}.index-stat-item:hover
{
    transform: translateY(-8px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}.index-stat-item:hover::before
{
    transform: scaleX(1);
}.index-stat-item h4
{
    margin: 0 0 var(--main-space-md) 0;
    color: var(--main-text-dark);
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}.index-stat-item span
{
    display: block;
    font-size: 2.5rem;
    font-weight: 700;
    background: linear-gradient(135deg, var(--main-primary), var(--main-success));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1.2;
}/* Стили навигации админ-панели перенесены в admin.css */.avatar-img
{
    max-width: 200px;
    max-height: 200px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    border: var(--main-space-xxs) solid blue;
    object-fit: cover;
    transition: brightness 0.3s;
    brightness: 80%;
}.avatar-img:hover
{
    brightness: 100%;
}.avatar-no-photo
{
    width: 200px;
    height: 200px;
    border-radius: 50%;
    border: var(--main-space-xxs) solid blue;
    line-height: 200px;
    text-align: center;
    brightness: 80%;
}.email
{
    border: var(--main-space-xxs) solid var(--main-border);
    padding: var(--main-space-lg-minus);
    margin-bottom: var(--main-space-lg);
    border-radius: var(--main-space-xs);
    background-color: var(--main-bg-lighter);
    font-family: Arial, sans-serif;
}.email strong
{
    color: var(--main-text-dark);
    font-size: var(--main-space-xl);
}.email .message
{
    margin-top: var(--main-space-md);
    padding: var(--main-space-md);
    background-color: white;
    border: var(--main-space-xxs) solid #eee;
    border-radius: var(--main-space-xs);
}.email a
{
    display: inline-block;
    margin-top: var(--main-space-md);
    padding: 6px var(--main-space-md-plus);
    background-color: var(--main-blue);
    color: white;
    text-decoration: none;
    border-radius: var(--main-space-xs);
    font-size: var(--main-space-lg-minus);
}.email a:hover
{
    background-color: #0056b3;
}.email hr
{
    margin-top: var(--main-space-lg);
    border-color: #eee;
}.reply
{
    background-color: #f8f8f8;
    padding: var(--main-space-lg);
    border-radius: var(--main-space-xs);
}.reply h2
{
    color: var(--main-text-dark);
}.statistics
{
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    margin-top: var(--main-space-lg);
}.stat-item
{
    flex: 1;
    min-width: 150px;
    text-align: center;
}.stat-item h4
{
    margin: var(--main-space-md) 0;
}.stat-item span
{
    display: block;
    font-size: var(--main-space-lg);
    font-weight: bold;
}.lesson
{
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--main-space-lg);
}.lesson-time-left
{
    background-color: var(--main-success-dark);
    color: white;
    padding: var(--main-space-md);
    font-weight: bold;
}.lesson-during
{
    background-color: #2196F3;
    color: white;
    padding: var(--main-space-md);
    font-weight: bold;
}.lesson-ended
{
    background-color: #f44336;
    color: white;
    padding: var(--main-space-md);
    font-weight: bold;
}.time-left
{
    background-color: var(--main-success-dark);
    color: white;
    padding: var(--main-space-md);
    font-weight: bold;
}.during-lesson
{
    background-color: #2196F3;
    color: white;
    padding: var(--main-space-md);
    font-weight: bold;
}.lesson-warning
{
    background: linear-gradient(135deg, #ff6b6b, #ff8e8e);
    border: var(--main-space-xxs) solid #ff4757;
    border-radius: var(--main-space-sm);
    padding: var(--main-space-lg-minus);
    margin-bottom: var(--main-space-lg-minus);
    color: white;
    text-shadow: 0 var(--main-space-xxs) var(--main-space-xxs) rgba(0, 0, 0, 0.3);
    box-shadow: 0 var(--main-space-xs) var(--main-space-sm) rgba(255, 71, 87, 0.3);
    animation: lesson-warning-pulse 2s infinite;
}.lesson-warning-header
{
    display: flex;
    align-items: center;
    margin-bottom: var(--main-space-sm);
}.lesson-warning-icon
{
    font-size: var(--main-space-lg);
    margin-right: var(--main-space-md);
}.lesson-warning-title
{
    font-size: var(--main-space-xl);
    font-weight: bold;
}.lesson-warning-text
{
    font-size: var(--main-space-lg-minus);
    line-height: 1.4;
}.nostrification-container
{
    width: 100%;
    max-width: 100%;
    margin: var(--main-space-lg) 0;
    box-sizing: border-box;
}.nostrification-container h3
{
    font-size: clamp(1.1rem, 2vw, 1.35rem);
    color: #0f172a;
    margin: 0;
}.nostrification-container p
{
    font-size: 1rem;
    color: #334155;
    margin: 0;
    line-height: 1.55;
}.nostrification-container strong
{
    color: #0f172a;
}.nostrification-container a
{
    color: var(--main-blue);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.3s ease, opacity 0.3s ease;
}.nostrification-container a:hover
{
    color: #0056b3;
    text-decoration: underline;
}.file-upload
{
    margin-top: var(--main-space-lg-minus);
}.info-text
{
    color: #555;
    font-style: italic;
    margin-top: var(--main-space-md);
}.student-info
{
    display: inline-flex;
    align-items: center;
    text-align: left;
    text-decoration: none;
    color: inherit;
}.gender-icon
{
    width: var(--main-space-lg);
    height: var(--main-space-lg);
    margin-right: var(--main-space-xs);
    vertical-align: middle;
}.login-pass-link
{
    display: inline-block;
    cursor: pointer;
}.login-pass-icon, .payment-icon
{
    width: var(--main-space-xxl);
    height: var(--main-space-xxl);
    vertical-align: middle;
}.link-section h2
{
    font-family: "Arial", sans-serif;
    font-size: var(--main-space-xxl);
    color: var(--main-text-dark);
    margin-bottom: var(--main-space-lg);
    text-align: center;
    border-bottom: var(--main-space-xxs) solid var(--main-blue);
    padding-bottom: var(--main-space-md);
}.link-section
{
    background-color: var(--main-bg-lighter);
    border: var(--main-space-xxs) solid #e0e0e0;
    border-radius: var(--main-space-md);
    padding: var(--main-space-lg-minus);
    margin-bottom: var(--main-space-lg);
    box-shadow: 0 var(--main-space-xxs) var(--main-space-xs) rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}.link-section:hover
{
    transform: translateY(-var(--main-space-xs));
    box-shadow: 0 var(--main-space-xs) var(--main-space-sm) rgba(0, 0, 0, 0.2);
}.link-section a
{
    display: inline-block;
    margin-top: var(--main-space-md);
    font-size: var(--main-space-xl);
    font-weight: bold;
    color: var(--main-blue);
    text-decoration: none;
    transition: color 0.2s ease;
}.link-section a:hover
{
    color: #0056b3;
    text-decoration: underline;
}.close
{
    color: #aaa;
    font-size: var(--main-space-xxl);
    font-weight: bold;
    cursor: pointer;
    top: var(--main-space-md);
    right: var(--main-space-lg-minus);
    display: flex;
    align-items: center;
    justify-content: center;
}.close i
{
}.close:hover, .close:focus
{
    color: black;
    text-decoration: none;
}.icon-link
{
    display: block;
    text-align: center;
    text-decoration: none;
    color: var(--main-text-dark);
    background-color: var(--main-bg-lighter);
    padding: var(--main-space-lg);
    border-radius: var(--main-space-md);
    box-shadow: 0 0 var(--main-space-md) rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}.icon-link:hover
{
    transform: translateY(-var(--main-space-xs));
    box-shadow: 0 0 var(--main-space-lg-minus) rgba(0, 0, 0, 0.2);
}.fas
{
    font-size: var(--main-space-lg);
    border: none;
    cursor: pointer;
}/* Стили модальных окон админ-панели перенесены в admin.css */.tab-content
{
}#changeVariantModal
{
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 1000;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    justify-content: center;
    align-items: center;
}#changeVariantModal.active
{
    opacity: 1;
}#changeVariantModal h3
{
    font-family: "Playfair Display", serif;
    margin: 0 0 var(--main-space-xxl) 0;
    color: var(--main-primary);
    border-bottom: var(--main-space-xxs) solid #e9ecef;
    padding-bottom: var(--main-space-lg-minus);
    font-size: 22px;
    font-weight: 600;
    text-align: center;
    position: relative;
}#changeVariantModal h3::before
{
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 18px;
    color: var(--main-primary);
    margin-right: var(--main-space-md);
    opacity: 0.8;
}#newVariant
{
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%232792ae' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
    background-position: right var(--main-space-md-plus) center;
    background-repeat: no-repeat;
    background-size: var(--main-space-xl);
    appearance: none;
    cursor: pointer;
}#newVariant option
{
    padding: var(--main-space-md);
    font-size: var(--main-space-xl);
}.loading-spinner
{
    display: none;
    width: var(--main-space-lg);
    height: var(--main-space-lg);
    border: var(--main-space-xxs) solid #f3f3f3;
    border-top: var(--main-space-xxs) solid var(--main-primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}#changeVariantForm.loading .loading-spinner
{
    display: inline-block;
}#changeVariantModal.closing
{
    opacity: 0;
}#curator_filter
{
    font-family: "-apple-system", BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: var(--main-space-lg-minus);
    background-color: var(--main-white);
    transition: all 0.3s ease;
}#curator_filter:focus
{
    outline: none;
    border-color: var(--main-success);
    box-shadow: 0 0 0 3px rgba(102, 187, 106, 0.1);
}#curator_filter option
{
    padding: var(--main-space-sm) var(--main-space-md-plus);
}.password-wrapper
{
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}.password-wrapper .password-toggle
{
    position: absolute !important;
    right: var(--main-space-lg-minus) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    cursor: pointer !important;
    color: var(--main-primary) !important;
    font-size: 18px !important;
    z-index: 10 !important;
    transition: color 0.3s ease, transform 0.1s ease;
    user-select: none;
    background: transparent !important;
    border: none !important;
    padding: var(--main-space-xs) !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    left: auto !important;
}.password-wrapper .password-toggle:hover
{
    color: var(--main-success) !important;
}.password-wrapper .password-toggle:active
{
    transform: translateY(-50%) scale(0.95) !important;
}/* TOAST / .toast-notification: канон в styles/footer.css *//* === УТИЛИТАРНЫЕ КЛАССЫ === *//* Flexbox утилиты */.flex
{ display: flex; }.flex-center
{ display: flex; align-items: center; justify-content: center; }.flex-between
{ display: flex; align-items: center; justify-content: space-between; }.flex-column
{ display: flex; flex-direction: column; }.flex-wrap
{ flex-wrap: wrap; }/* Текстовые утилиты */.text-center
{ text-align: center; }.text-left
{ text-align: left; }.text-right
{ text-align: right; }.font-bold
{ font-weight: 600; }.uppercase
{ text-transform: uppercase; }/* Отступы */.m-0
{ margin: 0; }.p-0
{ padding: 0; }/* Цвета */.text-primary
{ color: var(--main-primary); }.text-success
{ color: var(--main-success); }.text-danger
{ color: var(--main-danger); }.text-warning
{ color: var(--main-warning); }.text-info
{ color: var(--main-info); }/* Фоны */.bg-light
{ background-color: var(--main-bg-light); }.bg-primary
{ background-color: var(--main-primary); color: var(--main-white); }/* Границы и тени */.border
{ border: 1px solid var(--main-border); }.border-radius
{ border-radius: var(--main-radius-md); }/* Переходы */.transition
{ transition: all 0.3s ease; }/* ════════════════════════════════════════════════════════════════════════════════════
   📤 СТИЛИ ДЛЯ ЭКСПОРТА В GOOGLE DRIVE (2025)
   ════════════════════════════════════════════════════════════════════════════════════ *//* Контейнер экспорта *//* Секции экспорта *//* Информационный блок *//* Сетка фильтров *//* Группа фильтра */.filter-group
{
    display: flex;
    flex-direction: column;
}/* Кнопки *//* Сообщения об ошибках *//* Контейнер сообщений *//* === css_split_uni.py append @ 2026-04-03 10:11:18 === *//* CHECK: mixed base + non-base selectors in one rule */﻿

h1, h2, h3, h4, h5, h6
{
    font-family: "Playfair Display", serif;
    font-weight: 400;
}img, iframe, embed, object, video
{
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}a:link, a:visited, a:hover, a:active
{
    text-decoration: none;
}#university-logos.logos-container
{
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}#university-logos.logos-container img
{
    max-width: 100px;
    height: auto;
    border-radius: var(--main-space-xs);
}/* Стили для страницы восстановления пароля */.forgot-password-container
{
    max-width: 1200px;
    width: 100%;
    margin: var(--main-space-lg) auto;
    padding: var(--main-space-xl);
    padding-left: 60px;
    padding-right: 60px;
    background: linear-gradient(135deg, var(--bg-surface) 0%, #ffffff 100%);
    border-radius: 20px;
    box-shadow: 0 5px 25px rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
}.forgot-password-title
{
    text-align: center;
    color: #334155;
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: var(--main-space-md);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--main-space-md);
}.forgot-password-title i
{
    color: #667eea;
    font-size: 1.5rem;
}.forgot-password-description
{
    text-align: center;
    color: #64748b;
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: var(--main-space-lg);
}.forgot-password-back
{
    text-align: center;
    margin-top: var(--main-space-md);
}.forgot-password-success
{
    background: #10b981;
    color: #ffffff;
    padding: var(--main-space-md);
    border-radius: 12px;
    margin-bottom: var(--main-space-md);
    display: flex;
    align-items: center;
    gap: var(--main-space-sm);
    font-weight: 500;
}.forgot-password-error
{
    background: #ef4444;
    color: #ffffff;
    padding: var(--main-space-md);
    border-radius: 12px;
    margin-bottom: var(--main-space-md);
    display: flex;
    align-items: center;
    gap: var(--main-space-sm);
    font-weight: 500;
}.alert, .unalert
{
    padding: var(--main-space-lg);
    color: white;
    margin-bottom: var(--main-space-lg-minus);
    border-radius: var(--main-space-xs);
    font-family: Arial, sans-serif;
    font-size: var(--main-space-xl);
    display: block;
    border: var(--main-space-xxs) solid transparent;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-xs) rgba(0, 0, 0, 0.1);
}.alert-success, .unalert-success
{
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
    border: var(--main-space-xxs) solid #c8e6c9;
    border-left: var(--main-space-xs) solid var(--color-success);
    color: #2e7d32;
    padding: var(--main-space-md-plus) var(--main-space-xl);
    border-radius: 6px;
    margin: var(--main-space-md) 0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(76, 175, 80, 0.15);
}.alert-danger
{
    background: linear-gradient(135deg, #fde8e8, #ffcdd2);
    border: var(--main-space-xxs) solid #ffcdd2;
    border-left: var(--main-space-xs) solid #f44336;
    color: #c62828;
    padding: var(--main-space-md-plus) var(--main-space-xl);
    border-radius: 6px;
    margin: var(--main-space-md) 0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(244, 67, 54, 0.15);
}.alert-warning
{
    background: linear-gradient(135deg, var(--main-white), #ffe0b2);
    border: var(--main-space-xxs) solid #ffe0b2;
    border-left: var(--main-space-xs) solid #ff9800;
    color: #e65100;
    padding: var(--main-space-md-plus) var(--main-space-xl);
    border-radius: 6px;
    margin: var(--main-space-md) 0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(255, 152, 0, 0.15);
}.alert-info
{
    background: linear-gradient(135deg, #e3f2fd, #bbdefb);
    border: var(--main-space-xxs) solid #bbdefb;
    border-left: var(--main-space-xs) solid #2196f3;
    color: #1565c0;
    padding: var(--main-space-md-plus) var(--main-space-xl);
    border-radius: 6px;
    margin: var(--main-space-md) 0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(33, 150, 243, 0.15);
}.alert-primary
{
    background-color: var(--main-blue);
    border-color: navy;
}.alert-light
{
    background-color: var(--main-bg-light);
    border-color: #d6d8db;
}.alert-dark
{
    background-color: #343a40;
    border-color: black;
}.alert, .unalert
{
    animation: fadeIn 0.3s ease-in-out;
}.alert
{
    text-align: left;
}.unalert
{
    text-align: center;
}.expel-message
{
    font-size: var(--main-space-lg-minus);
    color: var(--main-text-dark);
    line-height: 1.6;
}.expel-message p
{
    margin-bottom: var(--main-space-sm);
}.expel-message strong
{
    color: #b30000;
}.expel-comment
{
    background-color: #fdf2f2;
    border-left: var(--main-space-xs) solid #e08080;
    padding: var(--main-space-md) var(--main-space-lg-minus);
    font-size: 13px;
    color: #555;
    margin-top: var(--main-space-md);
    white-space: pre-wrap;
}.document-type
{
    background-color: #e8f5e9;
    color: #2e7d32;
    padding: 3px 6px;
    border-radius: var(--main-space-xs);
    font-size: 0.9em;
    display: inline-block;
    font-weight: 500;
}.delivery-type
{
    background-color: #e3f2fd;
    color: #1565c0;
    padding: 3px 6px;
    border-radius: var(--main-space-xs);
    font-size: 0.9em;
    display: inline-block;
    font-weight: 500;
}.student-item
{
    display: flex;
    align-items: center;
    gap: var(--main-space-md);
    padding: var(--main-space-md);
    border: var(--main-space-xxs) solid #e0e0e0;
    border-radius: 6px;
    margin-bottom: var(--main-space-sm);
    transition: all 0.3s ease;
    background-color: var(--main-white);
}.student-item:hover
{
    background-color: var(--main-bg-light);
    border-color: #ccc;
}.student-name
{
    font-weight: 500;
    color: var(--main-text-dark);
    flex: 1;
    display: flex;
    align-items: center;
}.info-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--main-space-lg-minus);
    margin-top: var(--main-space-lg-minus);
}.info-item
{
    display: flex;
    align-items: center;
    padding: var(--main-space-lg-minus);
    background: linear-gradient(135deg, var(--main-bg-light) 0%, var(--main-white) 100%);
    border-radius: var(--main-space-md);
    border: var(--main-space-xxs) solid #e9ecef;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}.info-item::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: var(--main-space-xs);
    height: 100%;
    background: linear-gradient(135deg, #667eea, #764ba2);
}.info-item:hover
{
    transform: translateY(-var(--main-space-xxs));
    box-shadow: 0 6px var(--main-space-xl) rgba(0,0,0,0.1);
}.info-item i
{
    margin-right: var(--main-space-lg-minus);
    color: #667eea;
    width: var(--main-space-xxl);
    font-size: 1.2em;
}.info-value
{
    color: var(--main-text-dark);
    font-weight: 500;
    word-break: break-word;
}.search-results
{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: var(--main-space-xxs) solid var(--main-border);
    border-top: none;
    max-height: 200px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
}.search-result-item
{
    padding: var(--main-space-md);
    cursor: pointer;
    border-bottom: var(--main-space-xxs) solid #eee;
    transition: background-color 0.2s;
}.search-result-item:hover
{
    background-color: #f5f5f5;
}.search-result-item:last-child
{
    border-bottom: none;
}.no-results, .error
{
    padding: var(--main-space-md);
    color: #666;
    text-align: center;
}.error
{
    color: #d32f2f;
}.selected-student-info
{
    margin-top: var(--main-space-md);
    padding: var(--main-space-md);
    background-color: #e8f5e8;
    border-radius: var(--main-space-xs);
    border: var(--main-space-xxs) solid var(--color-success);
}.selected-student
{
    color: #2e7d32;
    font-weight: 500;
}.hidden
{
    display: none !important;
}.text-center
{
    text-align: center;
}.text-left
{
    text-align: left;
}.text-right
{
    text-align: right;
}.mb-10
{
    margin-bottom: var(--main-space-md);
}.mt-10
{
    margin-top: var(--main-space-md);
}.ml-10
{
    margin-left: var(--main-space-md);
}.mr-10
{
    margin-right: var(--main-space-md);
}.p-10
{
    padding: var(--main-space-md);
}.flex
{
    display: flex;
}.flex-center
{
    display: flex;
    align-items: center;
    justify-content: center;
}.flex-between
{
    display: flex;
    justify-content: space-between;
    align-items: center;
}.footer-lang-cell
{
    padding: var(--main-space-xs);
    width: 25%;
    text-align: center;
}/* Современный переключатель языков (для students/includes/footer.php) */.footer-lang-switcher
{
    background: linear-gradient(135deg, #ffffff, #f8fafc);
    padding: 1.5rem;
    border-radius: 1rem;
    margin: 1.5rem 0;
    border: 1px solid var(--border-light);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}.footer-lang-title
{
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: #334155;
    margin-bottom: 1rem;
    font-size: 1rem;
    text-align: center;
    justify-content: center;
}.footer-lang-title i
{
    color: #1d4ed8;
    font-size: 1.25rem;
}.footer-lang-container
{
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
}/* Модификатор для флагов без теней и без бордеров */.footer-lang-no-shadow
{
    box-shadow: none !important;
}.footer-lang-no-shadow, .footer-lang-no-shadow *
{
    box-shadow: none !important;
    filter: none !important;
    border: 0 !important;
}.footer-lang-no-shadow:hover, .footer-lang-no-shadow:hover *
{
    box-shadow: none !important;
    border: 0 !important;
}.footer-lang-no-shadow:active, .footer-lang-no-shadow:active *
{
    box-shadow: none !important;
    border: 0 !important;
}.footer-lang-no-shadow:focus, .footer-lang-no-shadow:focus *
{
    box-shadow: none !important;
    border: 0 !important;
}.footer-lang-no-shadow.active, .footer-lang-no-shadow.active *
{
    box-shadow: none !important;
    border: 0 !important;
}/* ===== СТИЛИ ДЛЯ ФУТЕРА (FOOTER.PHP) ===== *//* Современный дизайн 2025 года с единым префиксом footer- *//* Учитываем, что footer используется совместно с head.php и login.php внутри .container *//* Кнопка выхода — разметка из footer.php: class="btn btn-danger footer-logout-btn" (guest: нет buttons.css/base, стили только здесь; совпадает с --danger-gradient админки) */.footer-logout
{
    margin: var(--main-space-lg) 0;
    text-align: right;
}/* Копирайт и информация */.footer-copyright
{
    text-align: center;
    padding: var(--main-space-md) 0;
    margin: var(--main-space-lg) 0;
    color: var(--main-text-dark);
    font-size: 0.9rem;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}.footer-copyright i
{
    color: #038eaf;
    margin-right: 5px;
}.footer-copyright a
{
    color: var(--main-primary);
    text-decoration: none;
    transition: all 0.3s ease;
    margin-left: 5px;
}.footer-copyright a:hover
{
    color: var(--main-success);
    text-decoration: underline;
}.footer-version
{
    color: #666;
    font-size: 0.85rem;
}/* Ссылка на политику конфиденциальности */.footer-privacy-link
{
    color: var(--main-primary);
    text-decoration: none;
    transition: all 0.3s ease;
    font-weight: 500;
}.footer-privacy-link:hover
{
    color: var(--main-success);
    text-decoration: underline;
}/* === teams styles merged into *-uni @ 2026-04-03 10:23:03 === *//* ===== КОМАНДНЫЕ СТИЛИ TEAMS ===== *//* Базовые компоненты */.teams-student-needs-verification
{
    border-left: 4px solid var(--teams-accent) !important;
    background-color: var(--teams-primary-light) !important;
}.teams-student-status-warning
{
    margin-top: var(--teams-space-xs);
    padding: var(--teams-space-xs) var(--teams-space-sm);
    background-color: #fff3cd;
    border: 1px solid #ffeaa7;
    border-radius: var(--teams-radius-sm);
    font-size: var(--teams-font-size-xs);
    color: #856404;
    display: flex;
    align-items: center;
    gap: var(--teams-space-xs);
    flex-wrap: wrap;
}.teams-student-status-warning i
{
    color: #f39c12;
    font-size: var(--teams-font-size-xs);
}.teams-student-status-warning .teams-warning-text
{
    font-weight: 500;
    flex: 1;
    font-size: var(--teams-font-size-xs);
}.teams-student-status-warning .teams-status-info
{
    font-size: var(--teams-font-size-xs);
    color: #856404;
    font-style: italic;
    margin-left: auto;
}/* Статусы */.teams-status-paid, .teams-status-waiting, .teams-status-processing
{
    font-weight: 600;
    border-left: 3px solid;
    padding: var(--teams-space-sm) var(--teams-space-md);
    border-radius: var(--teams-radius-sm);
}.teams-status-paid
{
    border-left-color: #388e3c;
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
}.teams-status-waiting
{
    border-left-color: #d32f2f;
    background: linear-gradient(135deg, #fde8e8, #ffcdd2);
}.teams-status-processing
{
    border-left-color: var(--teams-primary);
    background: linear-gradient(135deg, var(--teams-primary-light), #ffe0b2);
}/* Навигация */.teams-hero-icon-menu
{
    width: 100%;
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    padding: 10px 0;
    background-color: var(--bg-surface);
    border-radius: var(--teams-radius-md);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}.teams-hero-icon-menu-link
{
    text-decoration: none;
    text-align: center;
    color: #1e90ff;
    font-family: "Playfair Display", serif;
    margin: 10px var(--teams-space-md);
    transition: color 0.3s, transform 0.3s;
    position: relative;
}.teams-hero-icon-menu-link:hover
{
    color: var(--color-primary);
    transform: scale(1.1);
}.teams-hero-icon-menu-link i
{
    font-size: 28px;
    display: block;
    margin-bottom: 5px;
    color: #1e90ff;
    transition: color 0.3s, transform 0.3s;
}.teams-hero-icon-menu-title
{
    font-size: 14px;
    font-weight: bold;
    color: #343a40;
    text-transform: uppercase;
}/* Утилитарные классы *//* === AJAX Search Results Styles === */.teams-search-results-container
{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    max-height: 300px;
    overflow-y: auto;
}/* Позиционирование контейнера поиска */.teams-search-container
{
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}/* === Стили для результатов поиска доставленных документов === */.teams-stats-item
{
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    opacity: 0.9;
}/* Информация о студенте */.teams-student-info
{
            width: auto;
            min-width: 0;
            box-sizing: border-box;
            display: flex;
            align-items: flex-start;
            gap: 12px;
            flex: 1 1 auto;
        }.teams-student-avatar
{
            width: 48px;
            height: 48px;
            border-radius: 12px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 20px;
            flex-shrink: 0;
        }.teams-student-details
{
            flex: 1 1 auto;
            min-width: 0;
        }.teams-student-details h3
{
            margin: 0 0 6px 0;
            font-size: 16px;
            font-weight: 600;
            color: #1a202c;
            line-height: 1.3;
        }.teams-student-meta
{
            display: flex;
            align-items: center;
            gap: 16px;
            flex-wrap: wrap;
        }.teams-student-id
{
            font-size: 12px;
            color: #718096;
            font-weight: 500;
        }.teams-student-phone
{
            font-size: 12px;
            color: #4a5568;
            display: flex;
            align-items: center;
            gap: 4px;
        }.teams-student-phone i
{
            color: #667eea;
            font-size: 10px;
        }/* Информация о документах */.teams-documents-info
{
            width: 100%;
            min-width: 0;
            box-sizing: border-box;
            display: flex;
            flex-direction: column;
            gap: 8px;
            flex: 1 1 auto;
        }.teams-document-tags
{
            width: 100%;
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }.teams-document-tag
{
            display: inline-flex;
            align-items: center;
            gap: 4px;
            padding: 4px 8px;
            background: rgba(102, 126, 234, 0.1);
            color: #667eea;
            border-radius: 16px;
            font-size: 11px;
            font-weight: 500;
            border: 1px solid rgba(102, 126, 234, 0.2);
        }.teams-document-tag i
{
            font-size: 9px;
        }/* Статус оплаты */.teams-payment-status
{
            display: flex;
            align-items: flex-start;
            margin-top: 0;
            margin-left: auto;
            margin-right: 0;
            text-align: left;
            flex-shrink: 0;
        }.teams-status-paid
{
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: white;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}.teams-status-unpaid
{
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    color: white;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}/* ========================================
   🎯 СОВРЕМЕННАЯ ФОРМА РЕДАКТИРОВАНИЯ
   ======================================== *//* === 📦 Контейнер страницы редактирования === */.teams-edit-page-container
{
    /* Уменьшаем горизонтальные отступы для карточки */
    margin: 0;
    padding: 0 var(--teams-space-md);
}/* === 📋 Заголовок страницы === */.teams-edit-header
{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--teams-space-lg);
    padding-bottom: var(--teams-space-sm);
    border-bottom: 1px solid var(--teams-border-color);
}.teams-edit-title
{
    display: flex;
    align-items: center;
    gap: var(--teams-space-sm);
}.teams-edit-title i
{
    color: var(--teams-primary-color);
    font-size: var(--teams-font-size-xl);
}.teams-edit-title h2
{
    margin: 0;
    color: var(--teams-text-dark);
    font-size: var(--teams-font-size-xl);
    font-weight: 600;
}.teams-breadcrumb-link
{
    display: flex;
    align-items: center;
    gap: var(--teams-space-xs);
    color: var(--teams-text-muted);
    text-decoration: none;
    font-size: var(--teams-font-size-sm);
    padding: var(--teams-space-xs) var(--teams-space-sm);
    border-radius: var(--teams-radius-sm);
    transition: all 0.2s ease;
}.teams-breadcrumb-link:hover
{
    color: var(--teams-primary-color);
    background: var(--teams-light-bg);
}.teams-required-star
{
    color: var(--teams-error-color);
    font-weight: bold;
}/* === 📎 Загрузка файла === */.teams-file-upload-wrapper
{
    position: relative;
    margin-bottom: var(--teams-space-sm);
}.teams-current-file
{
    display: flex;
    align-items: center;
    gap: var(--teams-space-xs);
    padding: var(--teams-space-sm);
    background: var(--teams-light-bg);
    border-radius: var(--teams-radius-sm);
    font-size: var(--teams-font-size-sm);
    color: var(--teams-text-muted);
}.teams-file-link
{
    color: var(--teams-primary-color);
    text-decoration: none;
    font-weight: 500;
}.teams-file-link:hover
{
    text-decoration: underline;
}.teams-section-header
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--teams-space-md);
    margin-bottom: var(--teams-space-md);
}.teams-section-title
{
    display: flex;
    align-items: center;
    gap: var(--teams-space-xs);
    font-weight: 600;
    color: var(--teams-text-dark);
    margin-bottom: 0;
    font-size: var(--teams-font-size-md);
    flex: 1;
}.teams-section-title i
{
    color: var(--teams-primary-color);
    width: 18px;
}/* === 📊 Счетчик выбранных элементов === */.teams-selection-counter
{
    display: inline-flex;
    align-items: center;
    gap: var(--teams-space-xs);
    font-size: var(--teams-font-size-sm);
    color: var(--teams-text-muted);
    white-space: nowrap;
    padding: var(--teams-space-xs) var(--teams-space-sm);
    background: var(--teams-light-bg);
    border-radius: var(--teams-radius-sm);
}

/* === 👥 Список студентов === */
/* ⚠️ ВАЖНО: Эти стили переопределяют конфликтующие селекторы из:
   - style.css (.student-item {align-items: center; ...})
   - tablet.css и mobile.css (media queries)
   Используем !important для гарантии применения и specificity: .teams-student-list .teams-student-item
*/

.teams-student-list-wrapper {
    position: relative;
    width: 100%;
    margin: 0;
}.teams-student-list
{
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    /* Отображаем максимум 5 студентов с возможностью скролла */
    max-height: calc(5 * (var(--teams-space-md) * 2 + 20px) + var(--teams-space-xs));
    max-height: 260px;
    overflow-y: auto;
    overflow-x: hidden;
    border: 1px solid var(--teams-border-color);
    border-radius: var(--teams-radius-md);
    background: var(--teams-white);
    scroll-behavior: smooth;
}.teams-student-list .teams-student-item
{
    width: 100%;
    align-self: stretch;
    box-sizing: border-box;
    padding: var(--teams-space-md) var(--teams-space-lg) !important;
    border-bottom: 1px solid var(--teams-border-color);
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: var(--teams-space-md) !important;
    min-height: 52px !important;
    transition: background 0.2s ease;
    cursor: pointer;
    user-select: none;
    border-radius: 0;
    margin: 0 !important;
}.teams-student-list .teams-student-item:last-child
{
    border-bottom: none;
}.teams-student-list .teams-student-item:hover
{
    background: #f0f7ff;
}.teams-student-item:focus-within
{
    background: #f0f7ff;
    border-radius: var(--teams-radius-md);
}.student-name-container
{
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    min-height: 24px !important;
    min-width: 0 !important;
    width: 100% !important;
}.teams-student-name
{
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: var(--teams-space-xs) !important;
    width: 100% !important;
    min-width: 0 !important;
    font-weight: 500 !important;
    color: var(--teams-text-dark) !important;
    line-height: 1.4 !important;
}/* === 🎨 Стилизация скролл-бара списка студентов === */.teams-student-list::-webkit-scrollbar
{
    width: 6px;
}.teams-student-list::-webkit-scrollbar-track
{
    background: transparent;
    border-radius: var(--teams-radius-md);
}.teams-student-list::-webkit-scrollbar-thumb
{
    background: var(--teams-border-color);
    border-radius: 3px;
    transition: background 0.2s ease;
}.teams-student-list::-webkit-scrollbar-thumb:hover
{
    background: var(--teams-primary-color);
}/* Firefox скролл-бар */.teams-student-list
{
    scrollbar-color: var(--teams-border-color) transparent;
    scrollbar-width: thin;
}/* === 📜 Подсказка о скролле === */.teams-scroll-hint
{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--teams-space-xs);
    padding: var(--teams-space-sm) var(--teams-space-md);
    background: linear-gradient(to top, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
    color: var(--teams-text-muted);
    font-size: var(--teams-font-size-xs);
    border-top: 1px solid var(--teams-border-color);
    border-radius: 0 0 var(--teams-radius-md) var(--teams-radius-md);
    margin-top: -1px;
    animation: teams-pulse-hint 2s ease-in-out infinite;
}.teams-scroll-hint i
{
    font-size: var(--teams-font-size-xs);
    animation: teams-bounce-hint 1s ease-in-out infinite;
}/* === 📄 Сетка типов документов === */.teams-document-types-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--teams-space-sm);
}.teams-document-type-item
{
    border: 1px solid var(--teams-border-color);
    border-radius: var(--teams-radius-md);
    overflow: hidden;
    transition: all 0.2s ease;
}.teams-document-type-item:hover
{
    border-color: var(--teams-primary-color);
    box-shadow: var(--teams-shadow-sm);
}/* === ⚠️ Алерты === */.teams-alert
{
    display: flex;
    align-items: center;
    gap: var(--teams-space-xs);
    padding: var(--teams-space-sm) var(--teams-space-md);
    border-radius: var(--teams-radius-sm);
    font-size: var(--teams-font-size-sm);
    margin-bottom: var(--teams-space-sm);
}.teams-alert-warning
{
    background: #fff3cd;
    border: 1px solid #ffeaa7;
    color: #856404;
}.teams-alert-error
{
    background: #f8d7da;
    border: 1px solid #f5c6cb;
    color: #721c24;
}.teams-alert i
{
    font-size: var(--teams-font-size-sm);
}/* === ⚠️ Предупреждение о необходимости уточнения статуса === */.teams-alert-verification-required
{
    background: linear-gradient(135deg, #fff8e1 0%, #fffde7 100%);
    border: 2px solid #fbc02d;
    border-radius: var(--teams-radius-md);
    padding: var(--teams-space-lg);
    margin-bottom: var(--teams-space-xl);
    box-shadow: 0 2px 8px rgba(251, 192, 45, 0.15);
}.teams-alert-header
{
    display: flex;
    align-items: center;
    gap: var(--teams-space-sm);
    margin-bottom: var(--teams-space-md);
}.teams-alert-header i
{
    color: #f57f17;
    font-size: var(--teams-font-size-lg);
}.teams-alert-title
{
    font-weight: 600;
    color: #f57f17;
    font-size: var(--teams-font-size-md);
}.teams-alert-message
{
    color: #827717;
    font-size: var(--teams-font-size-sm);
    margin: var(--teams-space-md) 0;
    line-height: 1.5;
}.teams-alert-students-list
{
    display: flex;
    flex-wrap: wrap;
    gap: var(--teams-space-sm);
}/* === ⏳ Индикатор загрузки === */.teams-loading
{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--teams-space-md);
    padding: var(--teams-space-lg);
    color: var(--teams-text-muted);
    font-size: var(--teams-font-size-sm);
    border-top: 1px solid var(--teams-border-color);
    margin-top: var(--teams-space-lg);
    background: var(--teams-light-bg);
    border-radius: var(--teams-radius-md);
}.teams-spinner
{
    width: 24px;
    height: 24px;
    border: 3px solid var(--teams-light-bg);
    border-top-color: var(--teams-primary-color);
    border-radius: 50%;
    animation: teams-spin 0.8s linear infinite;
}.teams-loading i
{
    font-size: var(--teams-font-size-md);
    color: var(--teams-primary-color);
}/* ========================================
   🔧 ДОПОЛНИТЕЛЬНЫЕ УТИЛИТАРНЫЕ КЛАССЫ
   ======================================== *//* === 📐 Flexbox утилиты === */.flex
{
    display: flex !important;
}.justify-between
{
    justify-content: space-between !important;
}.align-center
{
    align-items: center !important;
}.gap-15
{
    gap: 15px !important;
}/* === 📏 Отступы === */.margin-top-15
{
    margin-top: 15px !important;
}.margin-top-10
{
    margin-top: 10px !important;
}.margin-bottom-20
{
    margin-bottom: 20px !important;
}/* === 🎨 Текстовые утилиты === */.text-red
{
    color: #dc3545 !important;
}.text-right
{
    text-align: right !important;
}/* === 👁️ Видимость === */.hidden
{
    display: none !important;
}.inline
{
    display: inline !important;
}/* === 📦 Секции === */.dashboard-section
{
    background: white;
    border-radius: 12px;
    padding: 20px;
    margin-top: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}/* === 👥 Элементы студентов (базовые стили для совместимости) === */.student-item
{
    padding: 12px;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: background 0.2s ease;
    cursor: pointer;
}.student-item:hover
{
    background: #f9fafb;
}.student-name-container
{
    flex: 1;
    display: flex;
    align-items: center;
}.student-name
{
    font-weight: 500;
    color: #1f2937;
    font-size: 14px;
}/* === css_split_uni.py append @ 2026-04-03 10:24:52 === */h1, h2, h3, h4, h5, h6
{
    font-family: var(--font-heading);
    font-weight: 600;
    margin: 0 0 var(--space-4) 0;
    color: var(--text-dark);
    line-height: 1.2;
}h1
{ font-size: var(--text-4xl); }h2
{ font-size: var(--text-3xl); }h3
{ font-size: var(--text-2xl); }h4
{ font-size: var(--text-xl); }h5
{ font-size: var(--text-lg); }h6
{ font-size: var(--text-base); }p
{
    margin: 0 0 var(--space-4) 0;
    line-height: 1.6;
}a
{
    color: var(--primary);
    text-decoration: none;
    font-weight: 500;
    position: relative;
    transition: all var(--transition-base);
    display: inline-block; /* Для transform */
}/* Градиентное подчеркивание при наведении */a::after
{
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--primary), var(--accent-blue));
    transition: width var(--transition-base);
}a:hover
{
    color: var(--primary-dark);
    text-decoration: none;
    transform: translateY(-1px); /* Легкий подъем */
}a:hover::after
{
    width: 100%; /* Подчеркивание появляется */
}a:active
{
    transform: translateY(0); /* Возврат при клике */
}/* ═══════════════════════════════════════════════════════════════════════════════
 * ОБЩИЕ УТИЛИТЫ
 * ═══════════════════════════════════════════════════════════════════════════════ *//* Скрытие элементов */.hidden
{
    display: none !important;
}.visually-hidden
{
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}/* Очистка float */.clearfix::after
{
    content: "";
    display: table;
    clear: both;
}/* Текст */.text-center
{ text-align: center; }.text-left
{ text-align: left; }.text-right
{ text-align: right; }.text-muted
{ color: var(--text-muted); }.text-light
{ color: var(--text-light); }.text-medium
{ color: var(--text-medium); }.text-dark
{ color: var(--text-dark); }.text-white
{ color: var(--text-white); }.text-xs
{ font-size: var(--text-xs); }.text-base
{ font-size: var(--text-base); }.text-primary
{ color: var(--primary); }/* Background utilities */.bg-light
{ background-color: var(--bg-light); }/* Display utilities */.d-inline
{ display: inline; }.d-inline-block
{ display: inline-block; }.d-block
{ display: block; }.d-flex
{ display: flex; }/* Flex layout utilities (пилот дедупликации; сочетать с .d-flex или использовать автономно) */.u-flex-center
{
    display: flex;
    align-items: center;
    justify-content: center;
}.u-flex-between
{
    display: flex;
    align-items: center;
    justify-content: space-between;
}.u-inline-flex-center
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
}.u-gap-1
{ gap: var(--space-1); }.u-gap-2
{ gap: var(--space-2); }.u-gap-3
{ gap: var(--space-3); }.u-gap-4
{ gap: var(--space-4); }/* Position utilities */.position-relative
{ position: relative; }.position-absolute
{ position: absolute; }.position-fixed
{ position: fixed; }.position-sticky
{ position: sticky; }/* Отступы */.m-0
{ margin: 0; }.mt-0
{ margin-top: 0; }.mt-8
{ margin-top: var(--space-8); }.mb-0
{ margin-bottom: 0; }.ml-0
{ margin-left: 0; }.mr-0
{ margin-right: 0; }.p-0
{ padding: 0; }.pt-0
{ padding-top: 0; }.pb-0
{ padding-bottom: 0; }.pl-0
{ padding-left: 0; }.pr-0
{ padding-right: 0; }/* === source: common.css === *//**
 * ---------------------------------------------------------------------------
 * Общие компоненты для админ-панели
 * ---------------------------------------------------------------------------
 *
 * Без вьюпортных @media и без геометрических размеров (margin, padding, width,
 * height, gap, border-width с длинами, transform с смещениями, box-shadow и т.д.):
 * они задаются только в desktop.css, tablet.css, mobile.css, mobile-small.css.
 * Допустимы: цвета, display/flex/grid, типографика через var(--text-*), радиусы и
 * тени через var(--radius-*)/var(--shadow-*), когда без «сырых» px в значении.
 *
 * Исключение: @media (prefers-reduced-motion) для отключения анимаций.
 * Перенос размеров из истории — см. scripts/migrate_common_strict.py и хвосты
 * «Migrated from common.css» в адаптивных файлах.
 *//* ---------------------------------------------------------------------------
 * Основной контейнер
 * --------------------------------------------------------------------------- */.container
{
    background: var(--bg-primary); border-radius: var(--radius-xl);
}.exam-item
{
    border-radius: var(--radius-md); background-color: var(--bg-secondary); transition: background-color var(--transition-base), border-color var(--transition-base);
}.exam-item:hover
{
    background-color: var(--bg-tertiary);
}.exam-item.selected
{
    background-color: var(--success-light); border-color: var(--success);
}.exam-item.registered
{
    background-color: var(--danger-light); border-color: var(--danger); opacity: 0.7;
}.exam-info
{
    flex: 1;
}.exam-name
{
    font-weight: 600; font-size: var(--text-base); color: var(--text-dark);
}.exam-details
{
    font-size: var(--text-sm); color: var(--text-light);
}.exam-date-time
{
    color: var(--primary); font-weight: 500;
}.exam-variants
{
    color: var(--success); font-weight: 500;
}.exam-limit-info-success
{
    background: var(--success-light); border-radius: var(--radius-md);
}.exam-limit-info-success .text-sm
{
    color: var(--success-dark);
}.exam-limit-info-warning
{
    background: var(--warning-light); border-radius: var(--radius-md);
}.exam-limit-info-warning .text-sm
{
    color: var(--warning-dark);
}.nav-icon
{
    display: inline-block; vertical-align: middle;
}.invitation-block
{
    border-radius: var(--radius-lg); background-color: var(--bg-secondary);
}.invitation-block h4
{
    color: var(--primary); font-size: var(--text-lg); font-weight: 600;
}.invitation-buttons-container
{
    display: flex; align-items: center;
}.invitation-warning
{
    background-color: var(--warning-light); border-radius: var(--radius-md); color: var(--warning-dark);
}.student-actions-container
{
    display: flex; justify-content: center; align-items: center;
}.navigation-actions
{
    display: flex; align-items: center; flex-wrap: wrap;
}.student-search-container
{
    position: relative;
}.search-results
{
    position: absolute; background: var(--bg-primary); border-radius: var(--radius-md); overflow-y: auto; z-index: var(--z-dropdown); display: none;
}.search-results.show
{
    display: block;
}.search-results .search-result-item
{
    cursor: pointer; transition: var(--transition-fast);
}.search-results .search-result-item:hover
{
    background: var(--bg-hover);
}.selected-student-info
{
    background: var(--bg-secondary); border-radius: var(--radius-md);
}.selected-count
{
    font-size: var(--text-base); color: var(--text-dark);
}.selected-students-list
{
    display: flex; flex-direction: column;
}.selected-student-item
{
    display: flex; align-items: center; justify-content: space-between; background: var(--bg-primary); border-radius: var(--radius-sm); transition: var(--transition-base);
}.selected-student-item:hover
{
    background: var(--bg-hover); border-color: var(--primary);
}.no-selected-students
{
    text-align: center; color: var(--text-muted); font-size: var(--text-sm); font-style: italic;
}.stats-section
{
    display: grid; grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-16) * 2), 1fr));
}.stat-item
{
    background: var(--bg-primary); border-radius: var(--radius-lg); text-align: center; transition: all var(--transition-base); display: flex; flex-direction: column; position: relative; overflow: hidden;
}.stat-item::before
{
    content: ""; position: absolute; background: var(--primary-gradient); opacity: 0; transition: opacity var(--transition-base);
}.stat-item:hover::before
{
    opacity: 1;
}.stat-item:nth-child(1) .stat-number
{
    color: var(--primary);
}.stat-item:nth-child(1)::before
{
    background: var(--primary-gradient);
}.stat-item:nth-child(2) .stat-number
{
    color: var(--warning);
}.stat-item:nth-child(2)::before
{
    background: var(--warning-gradient);
}.stat-item:nth-child(3) .stat-number
{
    color: var(--info);
}.stat-item:nth-child(3)::before
{
    background: var(--info-gradient);
}.stat-item:nth-child(4) .stat-number
{
    color: var(--success);
}.stat-item:nth-child(4)::before
{
    background: var(--success-gradient);
}.stat-item:nth-child(5) .stat-number
{
    color: var(--accent-purple);
}.stat-item:nth-child(5)::before
{
    background: var(--accent-purple-gradient);
}.stat-item:nth-child(6) .stat-number
{
    color: var(--accent-blue);
}.stat-item:nth-child(6)::before
{
    background: linear-gradient(135deg, var(--accent-blue) 0%, var(--info) 100%);
}.stat-item:nth-child(7) .stat-number
{
    color: var(--accent-green);
}.stat-item:nth-child(7)::before
{
    background: var(--success-gradient);
}.stat-item:nth-child(8) .stat-number
{
    color: var(--accent-yellow);
}.stat-item:nth-child(8)::before
{
    background: var(--warning-gradient);
}.stat-number
{
    font-size: var(--text-3xl); font-weight: 700; line-height: 1.2;
}.alert
{
    border-radius: var(--radius-sm);
}.alert-success
{
    background-color: var(--success-light); border-color: var(--success); color: var(--success-dark);
}.alert-danger
{
    background-color: var(--danger-light); border-color: var(--danger); color: var(--danger-dark);
}.alert-warning
{
    background-color: var(--warning-light); border-color: var(--warning); color: var(--warning-dark);
}.alert-info
{
    background-color: var(--info-light); border-color: var(--info); color: var(--info-dark);
}.info-box
{
    background: var(--bg-secondary); border-radius: var(--radius-md); transition: all var(--transition-base);
}.info-box--danger
{
    background: var(--danger-light); border-left-color: var(--danger);
}.info-box--info
{
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(59, 130, 246, 0.05) 100%); border-left-color: var(--accent-blue);
}.info-box--success
{
    background: var(--success-light); border-left-color: var(--success);
}.info-box--warning
{
    background: var(--warning-light); border-left-color: var(--warning);
}.info-box p
{
    color: var(--text-dark);
}.admin-alert
{
    border-radius: var(--radius-md); display: flex; align-items: center; font-size: var(--text-base); line-height: 1.5;
}.admin-alert i
{
    font-size: var(--text-lg); flex-shrink: 0;
}.admin-alert-success
{
    background-color: var(--success-light); color: var(--success-dark); border-color: var(--success);
}.admin-alert-success i
{
    color: var(--success);
}.admin-alert-danger
{
    background-color: var(--danger-light); color: var(--danger-darker); border-color: var(--danger);
}.admin-alert-danger i
{
    color: var(--danger);
}.admin-alert-info
{
    background-color: var(--info-light); color: var(--info-dark); border-color: var(--info);
}.admin-alert-info i
{
    color: var(--info);
}.admin-curators-container
{
    display: grid; grid-template-columns: repeat(auto-fill, minmax(calc(var(--space-16) * 1.5), 1fr));
}.admin-curator-option
{
    position: relative; white-space: normal;
}.copy-content
{
    font-family: var(--font-system); font-size: var(--text-sm); color: var(--text-dark); user-select: all;
}.admin-nostrification-section
{
    display: flex; flex-direction: column;
}.admin-info-text
{
    font-size: var(--text-base); color: var(--text-medium); line-height: 1.6; display: flex; align-items: flex-start;
}.admin-info-text i
{
    color: var(--primary); flex-shrink: 0;
}.admin-info-text strong
{
    color: var(--text-dark); font-weight: 600;
}.admin-info-text--small
{
    font-size: var(--text-sm); color: var(--text-light);
}.admin-info-text--success
{
    color: var(--success);
}.admin-info-text--success i
{
    color: var(--success);
}.admin-actions-buttons
{
    display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start;
}.admin-info-section
{
    background-color: var(--bg-secondary); border-radius: var(--radius-md);
}.admin-info-section h4
{
    color: var(--text-dark);
}.skeleton
{
    background: linear-gradient(
        90deg,
        var(--bg-secondary) 25%,
        var(--bg-tertiary) 50%,
        var(--bg-secondary) 75%
    ); animation: skeleton-loading 1.5s ease-in-out infinite; border-radius: var(--radius-md);
}.tooltip
{
    position: relative;
}.tooltip::before
{
    content: attr(data-tooltip); position: absolute; background: var(--text-dark); color: var(--text-white); font-size: var(--text-xs); white-space: nowrap; border-radius: var(--radius-md); opacity: 0; pointer-events: none; transition: all var(--transition-fast); z-index: var(--z-tooltip);
}.tooltip::after
{
    content: ""; position: absolute; border-top-color: var(--text-dark); opacity: 0; transition: all var(--transition-fast);
}.tooltip:hover::before, .tooltip:hover::after
{
    opacity: 1;
}.student-actions-container
{
    display: flex; flex-wrap: wrap;
}.navigation-actions
{
    display: flex; background: var(--bg-secondary); border-radius: var(--radius-md);
}.translation-statistics
{
    background: var(--bg-secondary); border-radius: var(--radius-lg);
}.translation-statistics h4, .translation-statistics h5
{
    color: var(--text-medium); display: flex; align-items: center;
}.translation-section-title
{
    font-size: var(--text-lg); font-weight: 600; color: var(--text-dark); display: flex; align-items: center;
}.translation-section-title-success
{
    font-size: var(--text-lg); font-weight: 600; color: var(--success); display: flex; align-items: center;
}.translation-section-title-danger
{
    font-size: var(--text-lg); font-weight: 600; color: var(--danger); display: flex; align-items: center;
}.translation-success-box, .translation-danger-box, .translation-partial-box
{
    border-radius: var(--radius-md);
}.translation-success-box
{
    background: var(--success-light); border: 1px solid var(--success);
}.translation-danger-box
{
    background: var(--danger-light); border: 1px solid var(--danger);
}.translation-partial-box
{
    background: var(--warning-light); border: 1px solid var(--warning); text-align: center;
}.translation-success-box li
{
    color: var(--success-dark); font-weight: bold;
}.translation-danger-box p
{
    color: var(--danger-dark); font-weight: bold;
}.translation-danger-box p.info
{
    color: var(--danger-dark); font-style: italic;
}.translation-danger-box a
{
    color: var(--info-dark); text-decoration: underline;
}.translation-partial-box p
{
    color: var(--warning-dark); font-weight: bold;
}.translation-session-message
{
    border-radius: var(--radius-md); display: flex; align-items: center;
    animation: translation-slideIn 0.3s ease-in-out; font-weight: 500; line-height: 1.6;
}.translation-message-success
{
    background: var(--success-light); color: var(--success-dark);
    border-left: 4px solid var(--success);
}.translation-message-warning
{
    background: var(--warning-light); color: var(--warning-dark);
    border-left: 4px solid var(--warning);
}.translation-message-error
{
    background: var(--danger-light); color: var(--danger-dark);
    border-left: 4px solid var(--danger);
}.translation-message-info
{
    background: var(--info-light); color: var(--info-dark);
    border-left: 4px solid var(--info);
}.translation-row-even
{
    background: var(--bg-secondary);
}.text-error
{
    color: var(--danger); text-align: center;
}.exam-limit-info-success, .exam-limit-info-warning
{
    border-radius: var(--radius-md);
}.exam-limit-info-success
{
    background: var(--success-light); border-color: var(--success); color: var(--success-dark);
}.exam-limit-info-warning
{
    background: var(--warning-light); border-color: var(--warning); color: var(--warning-dark);
}.student-box-admin-info
{
    background-color: var(--bg-primary); border-radius: var(--radius-lg); position: relative; transition: box-shadow var(--transition-base);
}.student-box-title
{
    font-size: var(--text-xl); font-weight: 600; color: var(--text-dark); line-height: 1.3;
}.student-box-admin-info p
{
    font-size: var(--text-base); color: var(--text-medium); line-height: 1.6;
}.student-box-admin-info p strong
{
    color: var(--text-dark); font-weight: 600;
}.student-avatar-in-box
{
    position: absolute; z-index: var(--z-tooltip); display: flex; justify-content: center; align-items: flex-start; transition: transform var(--transition-base);
}.admin-student-status
{
    position: absolute; z-index: calc(var(--z-tooltip) - 1); background: linear-gradient(180deg, var(--status-bg-color, var(--primary)) 0%, var(--status-bg-color-dark, var(--primary-dark)) 100%); color: var(--text-white); font-size: var(--text-xs); font-weight: 700; line-height: 32px; text-align: center; border-radius: var(--radius-lg); white-space: nowrap; transform-origin: center; transition: all var(--transition-base); display: inline-flex; align-items: center; justify-content: center;
}.student-box-admin-actions
{
    display: flex; justify-content: center; align-items: center; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--border) transparent; box-sizing: border-box;
}.student-box-admin-actions::-webkit-scrollbar-track
{
    background: transparent;
}.student-box-admin-actions::-webkit-scrollbar-thumb
{
    background-color: var(--border); border-radius: var(--radius-full);
}.student-box-admin-actions::-webkit-scrollbar-thumb:hover
{
    background-color: var(--border-dark);
}.action-icon
{
    display: flex; justify-content: center; align-items: center; flex-shrink: 0; background: linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%); border-radius: 50%; transition: all var(--transition-base); text-decoration: none; position: relative; overflow: hidden;
}.action-icon::before
{
    content: ""; position: absolute; background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 70%); opacity: 0; transition: opacity var(--transition-base); pointer-events: none;
}.action-icon img, .action-icon i
{
    position: relative; z-index: 1; transition: transform var(--transition-base);
}.action-icon i
{
    font-size: var(--text-2xl); color: var(--primary); display: flex; align-items: center; justify-content: center;
}.action-icon:hover
{
    border-color: var(--primary-light); background: linear-gradient(135deg, var(--bg-primary) 0%, var(--primary-light) 15%, var(--bg-secondary) 100%);
}.action-icon:hover::before
{
    opacity: 1;
}.action-icon:hover i
{
    color: var(--primary-dark);
}.action-icon:focus-visible
{
    border-radius: 50%;
}.avatar-img
{
    display: block; border-radius: 50%; transition: all var(--transition-base); position: relative; z-index: 1;
}.avatar-img--expelled, .avatar-img[data-status="4"]
{
    filter: grayscale(100%) brightness(0.85); opacity: 0.8;
}.avatar-img--expelled:hover, .avatar-img[data-status="4"]:hover
{
    filter: grayscale(100%) brightness(0.9); opacity: 0.9;
}.avatar-img--active, .avatar-img[data-status="1"]
{
    filter: none; opacity: 1;
}.avatar-img[data-status="0"]
{
    filter: brightness(1.1) saturate(1.1);
}.avatar-img[data-status="2"]
{
    filter: sepia(0.3) saturate(0.8);
}.avatar-img[data-status="3"]
{
    filter: grayscale(0.3) brightness(0.95);
}.avatar-img[data-status="5"]
{
    filter: brightness(1.05) saturate(0.9);
}.avatar-wrapper
{
    display: inline-block; position: relative;
}.student-profile-header-container
{
    display: flex; flex-direction: column;
}.student-avatar-block
{
    display: flex; justify-content: center; align-items: center; order: 1;
}.student-info-wrapper
{
    flex: 1; order: 2;
}.stats-grid
{
    display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}.stat-number
{
    display: block; font-size: var(--text-2xl); font-weight: 800; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); position: relative; z-index: 1; color: var(--text-white); font-family: var(--font-system);
}.nav-list
{
    list-style: none; display: flex; flex-wrap: wrap; align-items: center;
}.language-flag
{
    display: inline-block; font-size: var(--text-xl); line-height: 1; cursor: help; vertical-align: middle;
}[data-students-directory] > p:has([data-students-prev-page])
{
    margin-top: 0.5rem;
}.semesters-container
{
    display: grid; grid-template-columns: repeat(2, 1fr);
}.semester-block
{
    border-radius: var(--radius-lg); background: var(--bg-primary); transition: all var(--transition-base);
}.semester-header
{
    display: flex; align-items: center; justify-content: space-between;
}.semester-title
{
    color: var(--text-primary); font-size: var(--text-lg); font-weight: 600; display: flex; align-items: center;
}.semester-title i
{
    color: var(--primary); font-size: var(--text-base);
}.semester-period
{
    color: var(--text-light); font-weight: 400; font-size: var(--text-sm);
}.academic-year
{
    background: var(--primary); color: var(--text-white); border-radius: var(--radius-full); font-size: var(--text-xs); font-weight: 600;
}.semester-fields
{
    display: grid; grid-template-columns: 1fr 1fr;
}.student-info
{
    display: block; align-items: center; color: var(--primary); text-decoration: none; transition: all var(--transition-base); font-weight: 500; position: relative; word-wrap: break-word; overflow-wrap: break-word; word-break: break-word;
}.student-info::after
{
    content: ""; position: absolute; background: linear-gradient(90deg, var(--primary), var(--primary-light)); transition: width var(--transition-base);
}.student-info:hover
{
    color: var(--primary-dark); text-decoration: none;
}.student-info:focus-visible
{
    border-radius: var(--radius-sm);
}.gender-icon
{
    border-radius: var(--radius-sm); flex-shrink: 0;
}.payment-icon
{
    border-radius: var(--radius-sm); transition: transform var(--transition-fast);
}.login-pass-icon
{
    border-radius: var(--radius-sm); transition: transform var(--transition-fast);
}.payment-link
{
    display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-md); transition: all var(--transition-base); text-decoration: none; cursor: pointer; position: relative; overflow: hidden; background: var(--bg-secondary); color: var(--text-medium);
}.payment-link::before
{
    content: ""; position: absolute; border-radius: 50%; background: rgba(16, 185, 129, 0.3); transition: width var(--transition-base), height var(--transition-base);
}.payment-link:hover
{
    background: linear-gradient(135deg, var(--accent-green) 0%, #059669 100%); color: var(--text-white); border-color: var(--accent-green); text-decoration: none;
}.login-pass-link
{
    display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-md); transition: all var(--transition-base); text-decoration: none; cursor: pointer; background: var(--bg-secondary); color: var(--text-medium); position: relative; overflow: hidden;
}.login-pass-link::before
{
    content: ""; position: absolute; border-radius: 50%; background: rgba(59, 130, 246, 0.3); transition: width var(--transition-base), height var(--transition-base);
}.login-pass-link:hover
{
    background: linear-gradient(135deg, var(--accent-blue) 0%, #2563eb 100%); color: var(--text-white); border-color: var(--accent-blue); text-decoration: none;
}.payment-link .payment-icon
{
    transition: filter var(--transition-fast);
}.payment-link:hover .payment-icon
{
    filter: brightness(0) invert(1);
}.login-pass-link .login-pass-icon
{
    transition: filter var(--transition-fast);
}.login-pass-link:hover .login-pass-icon
{
    filter: brightness(0) invert(1);
}.student-actions-mobile
{
    display: none; align-items: center; flex-wrap: wrap;
}.student-status-mobile
{
    display: none; font-size: var(--text-lg);
}.payment-link-mobile, .login-pass-link-mobile
{
    display: none;
}.section-title
{
    position: relative; display: inline-flex; align-items: center; font-size: var(--text-2xl); font-weight: 600; color: var(--text-dark); font-family: var(--font-primary);
}.section-title i
{
    color: var(--primary);
}.page-header
{
    display: flex; align-items: center; flex-wrap: wrap;
}.page-header--with-search
{
    justify-content: space-between;
}.search-container
{
    display: flex; align-items: center; flex: 1; flex-wrap: wrap;
}.search-autocomplete-wrapper
{
    position: relative; flex: 1;
}.search-autocomplete-list
{
    position: absolute; background-color: var(--bg-primary); border-radius: var(--radius-md); overflow-y: auto; z-index: 1000; display: none;
}.autocomplete-item
{
    cursor: pointer; display: flex; flex-direction: row; align-items: center; transition: background-color var(--transition-base);
}.autocomplete-item:hover, .autocomplete-item-hover
{
    background-color: var(--bg-hover);
}.autocomplete-item strong
{
    color: var(--text-dark); font-size: var(--text-sm); font-weight: 600; flex: 1;
}.autocomplete-role
{
    color: var(--text-medium); font-size: var(--text-xs); background-color: var(--bg-secondary); border-radius: var(--radius-sm); font-weight: 500;
}.autocomplete-type
{
    color: var(--text-muted); font-size: var(--text-xs); font-style: italic; background-color: var(--bg-tertiary); border-radius: var(--radius-sm);
}.autocomplete-no-results
{
    text-align: center; color: var(--text-muted); cursor: default; font-style: italic; font-size: var(--text-sm);
}.autocomplete-no-results:hover
{
    background-color: var(--bg-primary);
}.admin-info-text i
{
    font-size: var(--text-base); flex-shrink: 0;
}.admin-info-text--small i
{
    font-size: var(--text-sm);
}.main-navigation ul
{
    list-style-type: none; display: flex; flex-wrap: wrap; justify-content: flex-start;
}.main-navigation li
{
    text-align: center; box-sizing: border-box;
}.main-navigation li a
{
    display: flex; flex-direction: row; align-items: center; justify-content: flex-start; text-decoration: none; color: var(--text-medium); background-color: var(--bg-secondary); border-radius: var(--radius-md); transition: transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-base), border-color var(--transition-base); font-weight: 600; box-sizing: border-box; white-space: nowrap; overflow: hidden;
}.main-navigation li a span
{
    color: var(--text-medium); flex: 1; overflow: hidden; white-space: nowrap; transition: color var(--transition-base);
}.main-navigation li a i
{
    color: var(--primary); transition: color var(--transition-base), transform var(--transition-fast); text-align: center;
}.main-navigation ul:not(#head-icon-menu) li a:hover
{
    background-color: var(--bg-active); border-color: var(--success); color: var(--text-dark);
}.main-navigation ul:not(#head-icon-menu) li a:hover i
{
    color: var(--accent-blue);
}.main-navigation li a:active
{
    background-color: var(--info-light); border-color: var(--primary-dark);
}.main-navigation li a:focus-visible
{
    border-color: var(--primary);
}.uni-items-center
{
    align-items: center;
}.exam-flex-wrap
{
    flex-wrap: wrap;
}.bg-danger-light
{
    background: var(--danger-light, #fee2e2);
}.bg-success-light
{
    background: var(--success-light, #d1fae5);
}.bg-warning-light
{
    background: var(--warning-light, #fef3c7);
}.bg-info-light
{
    background: var(--info-light, #dbeafe);
}.bg-primary
{
    background-color: var(--primary, #2792ae);
}.bg-secondary
{
    background-color: var(--bg-secondary);
}.border-danger
{
    border-color: var(--danger, #ef4444);
}.border-success
{
    border-color: var(--success, #10b981);
}.cursor-pointer
{
    cursor: pointer;
}.rounded-md
{
    border-radius: var(--radius-md, 8px);
}.rounded-sm
{
    border-radius: var(--radius-sm, 4px);
}.d-grid
{
    display: grid;
}.d-none
{
    display: none;
}.flex-column
{
    flex-direction: column;
}.align-items-center
{
    align-items: center;
}.align-items-end
{
    align-items: flex-end;
}.align-items-start
{
    align-items: flex-start;
}.items-center
{
    align-items: center;
}.justify-content-between
{
    justify-content: space-between;
}.col-actions
{
    display: flex; justify-content: center; align-items: center;
}.justify-content-end
{
    justify-content: flex-end;
}.flex-wrap
{
    flex-wrap: wrap;
}.justify-content-center
{
    justify-content: center;
}.grid-auto-fit
{
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}.info-item
{
    display: flex; flex-direction: column;
}.info-value
{
    color: var(--text-dark); font-size: var(--text-base);
}.text-info
{
    color: var(--info);
}.text-lg
{
    font-size: var(--text-lg);
}.text-sm
{
    font-size: var(--text-sm);
}.list-unstyled
{
    list-style: none;
}.flex-1
{
    flex: 1;
}/* .filters-container … .filter-field — см. styles/forms.css */.fw-bold
{
    font-weight: bold;
}.rounded-circle
{
    border-radius: 50%;
}.z-1
{
    z-index: 1;
}.line-height-20px
{
    line-height: 20px;
}.flex-none
{
    flex: 0 0 auto;
}.opacity-50
{
    opacity: 0.5;
}.cursor-not-allowed
{
    cursor: not-allowed;
}.pointer-events-none
{
    pointer-events: none;
}.whitespace-nowrap
{
    white-space: nowrap;
}.text-xl
{
    font-size: var(--text-xl);
}.text-2xl
{
    font-size: var(--text-2xl);
}.text-3xl
{
    font-size: var(--text-3xl);
}.text-4xl
{
    font-size: var(--text-4xl);
}.text-success-dark
{
    color: var(--success-dark);
}.flex-shrink-0
{
    flex-shrink: 0;
}.inline-style-1, .inline-style-2
{
    align-items: center;
}.inline-style-3
{
    font-size: var(--text-sm); color: #6c757d;
}.inline-style-5
{
    font-size: var(--text-xs); color: #666;
}.bg-p-1
{
    background-color: var(--bg-surface); border-radius: 4px;
}.inline-style-7
{
    font-size: var(--text-xs); color: #666;
}.bg-p-m
{
    background-color: var(--bg-surface); border-radius: 4px;
}.inline-style-9
{
    vertical-align: top;
}.inline-style-10
{
    color: #1565C0; font-size: var(--text-sm);
}.bg-p-2
{
    background-color: #e3f2fd;
}.inline-style
{
    align-items: center;
}.utility
{
    position: absolute; color: #2c3e50;
}.bg-text
{
    font-size: var(--text-xs); background-color: #fff3cd;
}.bg-p-text
{
    position: absolute; background: none; color: #555;
}.utility-3
{
    position: relative;
}.utility-6
{
    flex-wrap: wrap;
}.utility-13
{
    color: #999;
}.utility-15
{
    font-style: italic;
}.utility-16
{
    color: var(--success);
}.bg-m-border
{
    background: #f0f0f0;
}.bg-border
{
    background: #e8f5e8;
}.utility-17
{
    border-collapse: collapse;
}.utility-20
{
    color: var(--warning-dark);
}.utility-21
{
    color: var(--danger); font-weight: 500;
}.utility-22
{
    color: var(--success); font-weight: 500;
}.utility-23
{
    color: #17a2b8;
}.bg-border-5
{
    background-color: #e8f4fd;
}.utility-24
{
    flex-wrap: wrap;
}.utility-25
{
    color: #495057;
}.utility-26
{
    color: #856404;
}.bg-border-6
{
    background-color: #fff3cd;
}.utility-27
{
    align-items: stretch; overflow-x: auto;
}.text-error
{
    color: #dc3545;
}.utility-29
{
    color: #28a745;
}.bg-border-7
{
    background-color: #e3f2fd;
}.utility-30
{
    pointer-events: auto;
}.utility-33
{
    font-weight: bold;
}.utility-34
{
    color: #555;
}.utility-35
{
    overflow-y: auto;
}.bg-border-8
{
    background-color: #fff3cd;
}.utility-36
{
    color: #721c24;
}.bg-m-border-1
{
    background-color: #ffe5e5;
}.utility-37
{
    text-decoration: none;
}.utility-38
{
    color: #2792ae; font-weight: 500;
}.utility-39
{
    color: #2792ae;
}.utility-40
{
    flex: 1;
}.utility-41
{
    flex: 1;
}.utility-42
{
    justify-content: space-between;
}.bg-border-9
{
    background: #e8f5e9;
}.m-text
{
    font-size: var(--text-lg);
}.bg-m-border-2
{
    background: #fff3cd; text-align: center;
}.bg-border-10
{
    background: #fff3cd; border-radius: 5px;
}.utility-45
{
    color: #667eea;
}.utility-46
{
    font-weight: 600; color: #c62828;
}.bg-border-11
{
    background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%); transition: all 0.3s;
}.utility-48
{
    font-weight: 600; color: #e65100;
}.bg-border-12
{
    background: linear-gradient(135deg, #fff8e1 0%, #ffe0b2 100%); transition: all 0.3s;
}.utility-49
{
    font-weight: 600; color: #2e7d32;
}.bg-border-13
{
    background: linear-gradient(135deg, #f1f8f4 0%, #e8f5e9 100%); transition: all 0.3s;
}.utility-50
{
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}.utility-51
{
    grid-column: 1 / -1;
}.bg-border-14
{
    background: #f0f8ff;
}.utility-52
{
    color: #856404; font-weight: 600;
}.bg-border-15
{
    background: #fff3cd; border-radius: 10px;
}.bg-border-16
{
    background: white; border-radius: 5px;
}.utility-53
{
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}.bg-border-17
{
    background: #f0f8ff; border-radius: 10px;
}.m-text-1
{
    font-size: var(--text-xs);
}.utility-59
{
    text-align: center;
}/* Білет вступного іспиту — розмітка в admin/functions_exam.php (друк/PDF) */.exam-ticket-signature-cell
{
    text-align: left;
}.exam-ticket-value-cell
{
    text-align: center;
}.exam-ticket-banner-cell
{
    text-align: center;
}.exam-ticket-header-main
{
    text-align: center; vertical-align: middle;
}.exam-ticket-logo-col
{
    vertical-align: middle;
}.utility-65
{
    text-align: center; color: #999;
}.utility-66
{
    color: #155724;
}.utility-67
{
    text-align: center;
}.utility-69
{
    align-items: flex-end; justify-content: center;
}.utility-72
{
    color: #f44336;
}.utility-73
{
    color: var(--color-success); font-weight: bold;
}.bg-border-18
{
    background: #fff3cd; border-radius: 5px;
}.bg-border-19
{
    background: var(--color-success); border-color: var(--color-success);
}.bg-border-20
{
    background: #2196F3; border-color: #2196F3;
}.utility-76
{
    justify-content: space-between; flex-wrap: wrap;
}.bg-border-21
{
    background: #e3f2fd; border-radius: 5px;
}.bg-m-border-3
{
    background: #d4edda; border-radius: 5px;
}.utility-77
{
    color: #ffc107;
}.utility-79
{
    justify-content: space-between;
}.utility-81
{
    flex-wrap: wrap;
}.utility-83
{
    white-space: nowrap;
}.utility-85
{
    white-space: nowrap;
}.utility-86
{
    flex-wrap: nowrap; white-space: nowrap;
}.utility-88
{
    color: gray;
}.utility-89
{
    color: green; font-weight: bold;
}.utility-90
{
    color: #777;
}.bg-border-23
{
    background-color: #d1ecf1;
}.scrollable-list
{
    overflow-y: auto;
}.bg-border-24
{
    background: #fff3cd;
}.bg-text-1
{
    background: #dc3545; font-size: var(--text-xs);
}.bg-text-2
{
    background: var(--color-primary); font-size: var(--text-xs);
}.bg-text-3
{
    background: #28a745; font-size: var(--text-xs);
}.scrollable-list-sm
{
    overflow-y: auto;
}.utility-94
{
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}.disabled
{
    opacity: 0.5 !important; cursor: not-allowed !important; pointer-events: none;
}.text-danger
{
    color: var(--danger) !important;
}.text-success
{
    color: var(--success) !important;
}.bg-text-4
{
    position: absolute; background: #28a745; font-size: var(--text-xs); font-weight: bold;
}.bg-border-28
{
    background: white; position: relative;
}.utility-106
{
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}.utility-107
{
    color: #495057;
}.bg-border-29
{
    background: #e3f2fd; border-radius: 5px;
}.bg-text-5
{
    background-color: #ffc107; color: #212529; border-radius: 5px; font-weight: bold; font-size: var(--text-base);
}.utility-108
{
    font-weight: bold; color: #856404;
}.utility-109
{
    color: var(--color-primary); text-decoration: underline;
}.utility-110
{
    color: #dc3545; font-weight: bold;
}.utility-111
{
    color: var(--color-success);
}.bg-border-30
{
    background: #fd7e14; border-color: #fd7e14;
}.bg-border-31
{
    background: #6c757d; border-color: #6c757d;
}.bg-border-32
{
    background: #28a745; border-color: #28a745;
}.utility-112
{
    color: var(--info);
}.utility-113
{
    text-align: center; vertical-align: bottom; line-height: 17px;
}.utility-114
{
    vertical-align: bottom; line-height: 13px; text-align: justify;
}.utility-115
{
    vertical-align: middle; line-height: 13px; text-align: center; text-indent: 22px;
}.utility-116
{
    vertical-align: bottom; line-height: 13px; text-align: justify; text-indent: 22px;
}.utility-117
{
    text-align: center; vertical-align: bottom; line-height: 17px;
}.m-text-2
{
    text-align: justify; font-size: var(--text-xs);
}.utility-118
{
    text-align: justify;
}.utility-119
{
    text-align: justify;
}.utility-120
{
    text-align: justify; line-height: 22px;
}.utility-121
{
    text-align: right;
}.utility-123
{
    text-align: center;
}.utility-124
{
    border-collapse: separate; border-spacing: 0 5px;
}.utility-125
{
    vertical-align: bottom; line-height: 17px;
}.utility-126
{
    text-align: left; vertical-align: bottom; line-height: 17px;
}.utility-127
{
    text-align: center;
}.utility-128
{
    text-align: center;
}.logo-container
{
    text-align: center; background-color: transparent;
}.logo-image
{
    display: inline-block; border-radius: var(--radius-md);
}.bg-m-border-4
{
    background: #f0f8ff; border-radius: 5px;
}.utility-130
{
    white-space: nowrap;
}.utility-131
{
    justify-content: flex-start;
}.utility-132
{
    flex-shrink: 0;
}.utility-133
{
    white-space: nowrap;
}.utility-134
{
    flex: 0 0 auto;
}.utility-135
{
    flex: 1;
}.bg-border-33
{
    background: #f4f4f4;
}.results-container
{
    background: var(--bg-primary); border-radius: var(--radius-lg);
}.students-info
{
    background: var(--bg-secondary); border-radius: var(--radius-md);
}.students-info h3
{
    color: var(--primary-dark);
}.summary-value
{
    font-weight: 700;
}.slot-header
{
    display: flex; justify-content: space-between; align-items: center;
}.slot-title
{
    font-weight: 700; color: var(--text-dark);
}.slot-stats
{
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}.stat-item
{
    background: rgba(255, 255, 255, 0.5); border-radius: var(--radius-md); text-align: center;
}.stat-value
{
    font-weight: 700; color: var(--text-dark);
}.stat-value--primary
{
    font-size: var(--text-2xl); font-weight: bold; color: var(--primary);
}.progress-bar-container
{
    background: var(--bg-tertiary); border-radius: var(--radius-md);
}.progress-bar
{
    background: var(--primary); border-radius: var(--radius-sm); transition: width var(--transition-base);
}.progress-text
{
    text-align: center; font-size: var(--text-sm); color: var(--text-dark);
}.progress-fill
{
    background: linear-gradient(90deg, var(--success) 0%, var(--accent-green) 100%); display: flex; align-items: center; justify-content: center; color: var(--text-white); font-weight: 600; transition: width var(--transition-slow);
}.file-preview-container
{
    overflow-y: auto; border-radius: var(--radius-md); background: var(--bg-secondary);
}.file-preview-item
{
    border-radius: var(--radius-sm); background: var(--bg-secondary);
}.file-preview-item.error
{
    border-color: var(--danger); background: var(--danger-light);
}.file-preview-item.warning
{
    border-color: var(--warning); background: var(--warning-light);
}.student-list-toggle
{
    background: var(--bg-secondary); text-align: left; cursor: pointer; border-radius: var(--radius-md); font-weight: 600; transition: background var(--transition-base); color: var(--text-dark);
}.student-list-toggle:hover
{
    background: var(--bg-hover);
}.student-list-content
{
    display: none; overflow-y: auto;
}.student-list-content.show
{
    display: block;
}.student-item
{
    background: var(--bg-primary); border-radius: var(--radius-md); transition: all var(--transition-base);
}.student-item:hover
{
    background: var(--bg-secondary); border-color: var(--primary);
}.exam-student-list
{
    display: flex; flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch;
}.exam-student-item
{
    align-items: flex-start;
}.exam-student-absent
{
    background: var(--warning-light, #fef3c7); border-color: var(--warning, #f59e0b);
}.exam-student-absent:hover
{
    background: var(--warning-light, #fef3c7); border-color: var(--warning-dark, #d97706);
}.exam-student-item-spacing
{
    flex-shrink: 0;
}.exam-student-text
{
    color: var(--text-medium); line-height: 1.5;
}.exam-student-warning
{
    color: var(--warning-dark, #d97706); font-weight: 600;
}.exam-student-text-dark
{
    color: var(--text-dark); font-weight: 500;
}.exam-separator
{
    color: var(--text-muted);
}.contact-option
{
    background-color: var(--bg-secondary, var(--bg-surface)); border-radius: var(--radius-md); transition: all var(--transition-base); cursor: pointer;
}.contact-option:hover
{
    border-color: var(--primary-light, #e3f2fd); background-color: var(--bg-hover, #f0f7fa);
}.contact-option--selected
{
    border-color: var(--primary, #2196F3); background-color: var(--info-light, #e3f2fd);
}.no-results
{
    text-align: center; color: var(--text-muted);
}.student-search-container
{
    position: relative;
}/* .student-search-filters … .student-search-filter-select — см. styles/forms.css */.student-search-results
{
    position: relative; background: var(--bg-primary); border-radius: var(--radius-md); overflow: hidden; display: block;
}.student-search-results-header
{
    display: flex; justify-content: space-between; align-items: center; background: var(--bg-secondary); flex-wrap: wrap; flex-shrink: 0;
}.student-search-results-count
{
    display: flex; align-items: center; font-weight: 600; color: var(--text-dark); font-size: var(--text-base);
}.student-search-results-count i
{
    color: var(--primary);
}.student-search-results-total
{
    color: var(--text-medium); font-weight: 500;
}.student-search-results-list
{
    overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--border-dark) var(--bg-secondary);
}.student-search-results-list::-webkit-scrollbar-track
{
    background: var(--bg-secondary); border-radius: var(--radius-sm);
}.student-search-results-list::-webkit-scrollbar-thumb
{
    background: var(--border-dark); border-radius: var(--radius-sm); transition: background var(--transition-base);
}.student-search-results-list::-webkit-scrollbar-thumb:hover
{
    background: var(--text-light);
}.student-search-item
{
    display: flex; flex-direction: row; align-items: flex-start; cursor: pointer; transition: all var(--transition-base);
}.student-search-item-content
{
    display: flex; flex-direction: column; align-items: flex-start; flex: 1; overflow: visible;
}.student-search-item:hover
{
    background: var(--bg-hover);
}.student-search-item:focus-visible
{
    background: var(--bg-hover);
}.student-search-item.active
{
    background: var(--info-light);
}.student-search-item-name-row
{
    display: flex; align-items: center; flex: 1;
}.student-search-item-name
{
    color: var(--text-dark); font-weight: 600; font-size: var(--text-base); line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}.student-search-item-details-row
{
    display: flex; align-items: center; flex-wrap: nowrap; font-size: var(--text-base); line-height: 1.5;
}.student-search-item-university
{
    color: var(--text-dark); font-weight: 500; white-space: nowrap; flex-shrink: 0;
}.student-search-item-level
{
    color: var(--primary); font-weight: 600; white-space: nowrap; flex-shrink: 0;
}.student-search-item-specialty
{
    color: var(--text-medium); white-space: nowrap; flex-shrink: 0;
}.student-search-scroll-buttons
{
    position: absolute; display: flex; flex-direction: column; z-index: 20; opacity: 1; pointer-events: none; transition: opacity var(--transition-base), transform var(--transition-base);
}.student-search-results:not(.show) .student-search-scroll-buttons
{
    opacity: 0; pointer-events: none;
}.student-search-no-results
{
    text-align: center; color: var(--text-muted); font-size: var(--text-base); display: flex; align-items: center; justify-content: center;
}.student-search-loading
{
    text-align: center; color: var(--text-medium); font-size: var(--text-base); display: flex; align-items: center; justify-content: center;
}.student-search-loading i
{
    animation: spin 1s linear infinite; color: var(--primary);
}.student-search-item-exams
{
    clear: both; position: relative; z-index: 1; display: block; background: transparent;
}.student-search-item-exams-loading
{
    display: flex; align-items: center; color: var(--text-medium); font-size: var(--text-sm); background: transparent;
}.student-search-item-exams-loading i
{
    animation: spin 1s linear infinite; color: var(--primary);
}.student-search-item-exams-error
{
    display: flex; align-items: center; color: var(--error); font-size: var(--text-sm); background: var(--error-light); border-radius: var(--radius-sm);
}.student-search-item-exams-list
{
    display: flex; flex-direction: column;
}.student-search-item-exams-title
{
    display: flex; align-items: center; font-weight: 600; font-size: var(--text-sm); color: var(--text-primary);
}.student-search-item-exams-title i
{
    color: var(--primary);
}.student-search-item-exam
{
    background: var(--bg-secondary); border-radius: var(--radius-md); display: flex; flex-direction: column;
}.student-search-item-exam-name
{
    display: flex; align-items: center; font-size: var(--text-sm); color: var(--text-primary);
}.student-search-item-exam-name i
{
    color: var(--primary); flex-shrink: 0;
}.student-search-item-exam-name strong
{
    font-weight: 600;
}.student-search-item-exam-details
{
    display: flex; flex-wrap: wrap; font-size: var(--text-xs); color: var(--text-medium);
}.student-search-item-exam-date, .student-search-item-exam-time, .student-search-item-exam-university
{
    display: flex; align-items: center;
}.student-search-item-exam-date i, .student-search-item-exam-time i, .student-search-item-exam-university i
{
    color: var(--text-light); font-size: var(--text-xs);
}.student-search-item-exam-meeting-link
{
    display: inline-flex; align-items: center; background: var(--primary-gradient); color: var(--text-white); text-decoration: none; border-radius: var(--radius-sm); font-size: var(--text-xs); transition: var(--transition); font-weight: 500; cursor: pointer;
}.student-search-item-exam-meeting-link:hover
{
    background: var(--primary-gradient); border-color: var(--primary-dark); filter: brightness(1.05); opacity: 0.9;
}.student-search-item-exam-meeting-link i
{
    font-size: var(--text-xs); color: inherit;
}.pending-exams-loading
{
    display: flex; align-items: center; justify-content: center; color: var(--text-medium); font-size: var(--text-base);
}.pending-exams-loading i
{
    animation: spin 1s linear infinite; color: var(--primary);
}.pending-exams-list
{
    display: flex; flex-direction: column;
}.pending-exams-header
{
    display: flex; align-items: center; background: var(--bg-secondary); border-radius: var(--radius-md); font-weight: 600; font-size: var(--text-base); color: var(--text-primary);
}.pending-exams-header i
{
    color: var(--primary);
}.pending-exam-item
{
    display: flex; flex-direction: row; align-items: flex-start; background: var(--bg-primary); border-radius: var(--radius-md); transition: var(--transition);
}.pending-exam-item:hover
{
    border-color: var(--border-dark);
}.pending-exam-content
{
    display: flex; flex-direction: column; flex: 1;
}.pending-exam-header-row
{
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
}.pending-exam-name
{
    display: flex; align-items: center; font-size: var(--text-lg); font-weight: 600; color: var(--text-primary); flex: 1;
}.pending-exam-name i
{
    color: var(--primary); flex-shrink: 0;
}.pending-exam-students-count
{
    display: flex; align-items: center; background: var(--info-light); border-radius: var(--radius-sm); font-size: var(--text-sm); color: var(--text-primary); font-weight: 500;
}.pending-exam-students-count i
{
    color: var(--info);
}.pending-exam-details
{
    display: flex; flex-wrap: wrap;
}.pending-exam-detail-item
{
    display: flex; align-items: center; font-size: var(--text-sm); color: var(--text-medium);
}.pending-exam-detail-item i
{
    color: var(--text-light); font-size: var(--text-xs);
}.pending-exam-meeting-link
{
    display: inline-flex; align-items: center; background: var(--primary-gradient); color: var(--text-white); text-decoration: none; border-radius: var(--radius-sm); font-size: var(--text-sm); transition: var(--transition); font-weight: 500; cursor: pointer;
}.pending-exam-meeting-link:hover
{
    background: var(--primary-gradient); border-color: var(--primary-dark); filter: brightness(1.05); opacity: 0.9;
}.add-students-to-exam-block
{
    background: var(--bg-secondary); border-radius: var(--radius-md); text-align: center;
}.exam-status-waiting
{
    background: var(--warning-light); color: var(--warning-dark);
}.exam-status-passed
{
    background: var(--success-light); color: var(--success-dark);
}.exam-status-absent
{
    background: var(--error-light); color: var(--error-dark);
}.pending-exam-meeting-link i
{
    font-size: var(--text-sm); color: inherit;
}.pending-exams-empty
{
    display: flex; align-items: center; justify-content: center; color: var(--text-medium); font-size: var(--text-base); background: var(--bg-secondary); border-radius: var(--radius-md);
}.pending-exams-empty i
{
    color: var(--text-light);
}.pending-exams-error
{
    display: flex; align-items: center; justify-content: center; color: var(--error); font-size: var(--text-base); background: var(--error-light); border-radius: var(--radius-md);
}.pending-exams-error i
{
    color: var(--error);
}.search-results-header
{
    display: flex; align-items: center; flex-wrap: wrap;
}.search-results-header h2
{
    flex: 1;
}.active-sort
{
    font-weight: 600; color: var(--primary);
}.bg
{
    background-color: var(--bg-secondary);
}.search-suggestions
{
    position: absolute; background: var(--bg-primary); overflow-y: auto; z-index: var(--z-dropdown); border-radius: 0 0 var(--radius-md) var(--radius-md);
}.search-suggestion-item
{
    cursor: pointer; transition: background-color var(--transition-base);
}.search-suggestion-item:hover
{
    background-color: var(--bg-secondary);
}.search-suggestion-item.pending
{
    background-color: var(--warning-light);
}.search-suggestion-item.pending:hover
{
    background-color: var(--warning-light); filter: brightness(0.95);
}.search-suggestion-item.added
{
    background-color: var(--success-light);
}.search-suggestion-item.added:hover
{
    background-color: var(--success-light); filter: brightness(0.95);
}.suggestion-header
{
    display: flex; justify-content: space-between; align-items: center;
}.suggestion-name
{
    font-weight: 600; color: var(--text-dark); flex: 1;
}.suggestion-details
{
    font-size: var(--text-sm); color: var(--text-medium);
}.suggestion-phone
{
    color: var(--info);
}.suggestion-email
{
    color: var(--success);
}.no-suggestions
{
    color: var(--text-muted); text-align: center; font-style: italic;
}.loading-suggestions
{
    text-align: center; color: var(--text-medium);
}.inline
{
    display: inline;
}.block
{
    display: block;
}.text-red
{
    color: #dc3545;
}.text-gray
{
    color: #666;
}.text-green
{
    color: #28a745;
}.justify-between
{
    justify-content: space-between;
}.align-center
{
    align-items: center;
}.bg-green
{
    background-color: var(--success);
}.gradient-purple
{
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}.translation-selection-block
{
    display: flex; align-items: center; background: linear-gradient(135deg, var(--info-light) 0%, var(--bg-secondary) 100%); border-radius: var(--radius-md); transition: all 0.3s ease; box-sizing: border-box;
}.translation-selection-block:hover
{
    background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--info-light) 100%);
}.translation-quantity
{
    border-radius: var(--radius-md); font-weight: bold; text-align: center; background: var(--bg-primary); color: var(--info-dark); transition: all 0.3s ease; border: 1px solid var(--border);
}.translation-quantity:focus, .translation-quantity:hover
{
    border-color: var(--info);
}.translation-block
{
    border-radius: var(--radius-sm); box-sizing: border-box;
}.translation-block-blue
{
    background: var(--info-light);
}.translation-block-yellow
{
    background: var(--warning-light);
}.translation-document-title
{
    display: inline-block;
}.loading-suggestions i
{
    animation: spin var(--transition-slower) linear infinite;
}.addMoreFiles
{
    display: inline-flex; align-items: center; justify-content: center; background: var(--secondary-gradient); color: var(--text-white); border-radius: var(--radius-md); font-family: var(--font-system); font-size: var(--text-sm); font-weight: 500; text-align: center; text-decoration: none; white-space: nowrap; cursor: pointer; transition: var(--transition-base); user-select: none; line-height: 1.5;
}.addMoreFiles:hover
{
    background: linear-gradient(135deg, var(--secondary-dark) 0%, var(--secondary) 100%); border-color: var(--secondary-dark); filter: brightness(1.05);
}.stats-container
{
    display: grid; grid-template-columns: 1fr;
}.stat-widget
{
    position: relative; border-radius: var(--radius-lg); overflow: hidden; transition: all var(--transition-base); cursor: default; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}.stat-widget:hover
{
    border-color: rgba(255, 255, 255, 0.2);
}.stat-widget::before
{
    content: ""; position: absolute; background: radial-gradient(circle, rgba(255, 255, 255, 0.15) 0%, transparent 70%); pointer-events: none; z-index: 0;
}.stat-widget::after
{
    content: ""; position: absolute; background: linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 100%); pointer-events: none; z-index: 1;
}.stat-widget-content
{
    position: relative; z-index: 2; display: flex; flex-direction: row; align-items: center; flex-wrap: wrap;
}.stat-widget--primary
{
    background: linear-gradient(135deg, #2a7f97 0%, #21566f 100%); color: var(--text-white);
}.stat-widget--success
{
    background: linear-gradient(135deg, #1a8a63 0%, #166a4f 100%); color: var(--text-white);
}.stat-widget--warning
{
    background: linear-gradient(135deg, #d4a017 0%, #b8860b 100%); color: #ffffff;
}.stat-widget--danger
{
    background: linear-gradient(135deg, #e05353 0%, #c43b3b 100%); color: var(--text-white);
}.stat-widget--info
{
    background: linear-gradient(135deg, #4a78d0 0%, #2c5bb8 100%); color: var(--text-white);
}.stat-widget--neutral
{
    background: linear-gradient(135deg, #6c757d 0%, #4f5963 100%); color: var(--text-white);
}.stat-widget--light
{
    background: linear-gradient(135deg, #f1f3f5 0%, #e6e9ee 100%); color: #1a1a1a;
}.stat-icon
{
    border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; font-size: var(--text-2xl); background: rgba(255, 255, 255, 0.2); transition: all var(--transition-base);
}.stat-widget:hover .stat-icon
{
    background: rgba(255, 255, 255, 0.3);
}.stat-value
{
    font-size: var(--text-3xl); font-weight: 800; line-height: 1.2; letter-spacing: -0.5px; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); color: inherit;
}.stat-subtitle
{
    opacity: 0.7;
}.stat-trend
{
    display: flex; align-items: center; font-weight: 600;
}.stat-trend--up
{
    color: #ffffff; font-weight: 700;
}.stat-trend--down
{
    color: #ffffff; font-weight: 700;
}.stat-trend--stable
{
    color: #ffffff; font-weight: 700;
}.stat-progress
{
    background: rgba(255, 255, 255, 0.2); border-radius: 2px; overflow: hidden;
}.stat-progress-bar
{
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 100%); border-radius: 2px; transition: width 0.6s ease;
}.stat-widget--sm .stat-value
{
    font-size: var(--text-2xl);
}.stat-widget--sm .stat-icon
{
    font-size: var(--text-lg);
}.stat-widget--lg
{
    grid-column: span 2;
}.stat-widget--lg .stat-value
{
    font-size: var(--text-4xl);
}.stat-widget--lg .stat-icon
{
    font-size: var(--text-3xl);
}.stats-grid
{
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}#mail-settings.site-settings-mail
{
    box-sizing: border-box; background-color: #fff;
}#mail-settings.site-settings-mail h2
{
    text-align: center; color: var(--color-primary);
}#mail-settings.site-settings-mail .mail-settings-tabs
{
    display: flex; flex-wrap: wrap;
}#mail-settings.site-settings-mail .mail-settings-tab
{
    border-radius: var(--radius-md) var(--radius-md) 0 0; background: #e9ecef; cursor: pointer;
}#mail-settings.site-settings-mail .mail-settings-tab.is-active
{
    background: #fff; border-bottom-color: #fff; font-weight: bold; color: var(--color-primary);
}#mail-settings.site-settings-mail .mail-config-subtabs
{
    display: flex; flex-wrap: wrap;
}#mail-settings.site-settings-mail .mail-config-subtab
{
    border-radius: var(--radius-md); background: #f1f3f5; cursor: pointer;
}#mail-settings.site-settings-mail .mail-config-subtab.is-active
{
    background: #fff; border-color: var(--color-primary); color: var(--color-primary); font-weight: 600;
}#mail-settings.site-settings-mail .mail-relationship-hint
{
    color: #444; line-height: 1.45; background: var(--bg-surface); border-radius: var(--radius-md);
}#mail-settings.site-settings-mail .mail-hosting-hint
{
    color: #495057; line-height: 1.45; background: var(--bg-surface); border-radius: var(--radius-md);
}#mail-settings.site-settings-mail .info-message
{
    color: #17a2b8; font-weight: bold;
}#mail-settings.site-settings-mail .mail-accounts-intro
{
    font-size: var(--text-sm); color: var(--text-medium); font-weight: normal; line-height: 1.45;
}#mail-settings.site-settings-mail h3
{
    color: #333;
}#mail-settings.site-settings-mail h4
{
    color: #555;
}#mail-settings.site-settings-mail .mail-root-env-roles-intro
{
    font-size: var(--text-sm); color: var(--text-medium); line-height: 1.45;
}#mail-settings.site-settings-mail .mail-cred-status
{
    display: inline-block; border-radius: var(--radius-sm); font-size: var(--text-sm); font-weight: 600;
}#mail-settings.site-settings-mail .mail-cred-status--ok
{
    background: #d4edda; color: #155724;
}#mail-settings.site-settings-mail .mail-cred-status--missing
{
    background: #f8d7da; color: #721c24;
}#mail-settings.site-settings-mail .mail-cred-warning, #mail-settings.site-settings-mail .mail-cred-fallback-note
{
    font-size: var(--text-sm);
}#mail-settings.site-settings-mail .mail-cred-warning
{
    color: #856404;
}#mail-settings.site-settings-mail .mail-cred-fallback-note
{
    color: var(--text-medium);
}#mail-settings.site-settings-mail .mail-cred-secret-display
{
    display: inline-block; word-break: break-word; font-size: var(--text-sm); white-space: pre-wrap;
}.cost-management-container
{
    text-align: left;
}.cost-management-container *
{
    text-align: left !important;
}.cost-management-container .specialties-container, .cost-management-container .specialties-list, .cost-management-container .specialty-item, .cost-management-container .specialty-name
{
    text-align: left !important;
}.cost-management-container .specialty-item
{
    display: flex !important; align-items: flex-start !important; text-align: left !important;
}.selected-params
{
    background: #e3f2fd; border-radius: 6px;
}.selected-params h4
{
    color: #1976d2;
}.help-text
{
    color: #856404; font-style: italic;
}.line-actions
{
    display: flex; justify-content: center;
}.loading
{
    text-align: center; color: #6c757d; font-style: italic;
}.message
{
    border-radius: 6px; font-weight: 600;
}.message.success
{
    background: #d4edda; color: #155724;
}.message.error
{
    background: #f8d7da; color: #721c24;
}.message.warning
{
    background: #fff3cd; color: #856404;
}.students-list
{
    display: grid;
}.tabs
{
    display: flex;
}.tab
{
    cursor: pointer; background: none; font-weight: 600; color: #666; transition: all 0.3s;
}.tab.active
{
    color: #0066cc; border-bottom-color: #0066cc;
}.tab:hover
{
    color: #0066cc;
}.tab-content
{
    display: none;
}.tab-content.active
{
    display: block;
}.edit-container
{
    background: var(--bg-primary); border-radius: var(--radius-md);
}.stats-info
{
    background: var(--info-light); border-radius: var(--radius-md);
}.stats-info strong
{
    color: var(--info-dark);
}.current-admission
{
    color: var(--text-medium);
}.no-data
{
    text-align: center; color: var(--text-muted);
}.management-section
{
    background: var(--bg-primary); border-radius: var(--radius-lg);
}.management-section .section-title
{
    display: flex; align-items: center;
}.bulk-actions
{
    display: flex; flex-wrap: wrap;
}.no-data, .loading-cell
{
    text-align: center; color: var(--secondary); font-style: italic;
}.no-data i, .loading-cell i
{
    display: block; opacity: 0.5;
}.info-grid
{
    display: grid; grid-template-columns: 1fr 1fr;
}.info-item
{
    display: flex; flex-direction: column;
}.info-item strong
{
    color: var(--text-medium); text-transform: uppercase; letter-spacing: 0.5px;
}.info-item span
{
    color: var(--text-dark); font-weight: 500;
}.management-section .stats-container
{
    display: flex; flex-direction: column;
}.management-section .stats-section h4
{
    color: var(--text-dark);
}.management-section .student-info
{
    background: var(--bg-secondary); border-radius: var(--radius-md); display: block;
}.management-section .student-info h4
{
    color: var(--text-dark); display: flex; align-items: center;
}.syllabus-container
{
    background-color: #fff; border-radius: 10px;
}.syllabus-container h2
{
    text-align: center; color: #2792ae;
}.calendar-container
{
    background: #fff; border-radius: 8px;
}.schedule-container
{
    background: #fff; border-radius: 8px;
}.attendance-status
{
    display: inline-flex; align-items: center; border-radius: 4px; font-weight: 600;
}.attendance-full
{
    background: #d4edda; color: #155724;
}.attendance-partial
{
    background: #fff3cd; color: #856404;
}.attendance-absent
{
    background: #f8d7da; color: #721c24;
}.attendance-scheduled
{
    background: #d1ecf1; color: #0c5460;
}.user-info-box
{
    background: #fff; border-radius: 8px;
}.user-info-box h2
{
    color: #2c3e50; display: flex; align-items: center;
}.user-info-box .info-grid
{
    display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}.user-info-box .info-item
{
    display: flex; flex-direction: column;
}.user-info-box .info-value
{
    color: #333;
}.calendar-legend
{
    display: flex; flex-wrap: wrap;
}.legend-item
{
    display: flex; align-items: center;
}.legend-color
{
    border-radius: 4px;
}.legend-color.visited
{
    background: #d4edda;
}.legend-color.missed
{
    background: #f8d7da;
}.legend-color.weekend
{
    background: var(--bg-surface);
}.empty-state
{
    text-align: center; color: #999;
}.empty-state i
{
    color: #ddd;
}.error-message
{
    background: #f8d7da; color: #721c24; border-radius: 4px;
}.curator-student-name-text
{
    display: inline-block; line-height: 1.3;
}.curator-student-actions-mobile, .curator-student-status-mobile, .curator-payment-link-mobile, .curator-login-pass-link-mobile
{
    display: none;
}.curator-status-icon
{
    display: flex; justify-content: center; align-items: center; transition: color 0.3s, transform 0.3s;
}.curator-status-new
{
    color: #32CD32;
}.curator-status-studying
{
    color: #1E90FF;
}.curator-status-academic-leave
{
    color: #FFD700;
}.curator-status-graduated
{
    color: #8A2BE2;
}.curator-status-expelled
{
    color: #DC143C;
}.curator-status-new:hover
{
    color: #228B22;
}.curator-status-studying:hover
{
    color: #4169E1;
}.curator-status-academic-leave:hover
{
    color: #DAA520;
}.curator-status-graduated:hover
{
    color: #6A0DAD;
}.curator-status-expelled:hover
{
    color: #B22222;
}.curator-student-info
{
    display: inline-flex; align-items: center; text-align: left; text-decoration: none; color: inherit;
}.curator-gender-icon
{
    vertical-align: middle;
}.curator-user-table
{
    --curator-table-icon-size: 1.125rem;
}.curator-user-table .curator-gender-icon, .curator-user-table .curator-status-icon, .curator-user-table .curator-payment-icon, .curator-user-table .curator-login-pass-icon
{
    font-size: var(--curator-table-icon-size); width: 1em; height: 1em; line-height: 1; margin-bottom: 0; box-sizing: content-box; display: inline-flex; align-items: center; justify-content: center;
}.curator-user-table .curator-gender-icon
{
    margin-right: 5px;
}.curator-login-pass-link
{
    display: inline-block; cursor: pointer; text-decoration: none !important;
}.curator-login-pass-icon, .curator-payment-icon
{
    vertical-align: middle;
}/* #copyNotification.copy-toast — базовые стили в styles/footer.css (подключается после *-uni) */
.curator-payment-link
{
    display: inline-block; text-decoration: none !important;
}.curator-search-results-header
{
    display: flex; align-items: center;
}.curator-search-results-header h2
{
    white-space: nowrap;
}.curator-nav
{
    display: flex; align-items: center;
}.uni-section
{
    border-radius: 4px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}.contact-type-option
{
    transition: all 0.3s ease;
}.contact-type-option:hover
{
    background-color: #e9ecef !important;
}.curator-student-box-admin-info
{
    position: relative; background: var(--bg-primary); border-radius: var(--radius-lg); overflow: hidden;
}.curator-student-box-main
{
    display: flex; align-items: flex-start; gap: var(--space-4);
}.curator-student-box-main .curator-student-info-desktop, .curator-student-box-main .curator-student-info-mobile
{
    flex: 1 1 auto; min-width: 0;
}.curator-student-box-main .curator-student-box-branding
{
    flex-shrink: 0;
}.curator-student-box-branding
{
    display: flex; flex-direction: column; align-items: center; max-width: min(168px, 42%); gap: var(--space-3); text-align: center;
}.curator-student-avatar-wrap .avatar-wrapper
{
    display: inline-block;
}.curator-student-avatar-wrap .avatar-img
{
    display: block; width: 96px; height: 96px; object-fit: cover; border-radius: 50%;
}.curator-empty-state-icon
{
    opacity: 0.5;
}.curator-student-box-title
{
    font-size: var(--text-2xl); font-weight: bold; text-transform: uppercase; background: var(--primary); color: var(--text-white); border-radius: var(--radius-md); margin-bottom: var(--space-4);
}.curator-student-box-admin-info p
{
    font-size: var(--text-base); color: var(--text-medium);
}.curator-student-box-admin-info p strong
{
    color: var(--text-dark);
}.curator-student-info-desktop
{
    display: block;
}.curator-student-info-mobile
{
    display: none;
}.curator-student-box-admin-actions
{
    display: flex; justify-content: space-around; flex-wrap: wrap;
}.curator-student-box-admin-info .curator-student-status
{
    position: static; transform: none; border-radius: var(--radius-2xl); font-size: var(--text-xs); font-weight: bold; color: var(--text-white); text-transform: uppercase; z-index: 1; max-width: 100%; word-wrap: break-word; overflow-wrap: break-word; padding: var(--space-1) var(--space-3); box-shadow: var(--shadow-sm); line-height: 1.35;
}.curator-document-type
{
    font-weight: 600; background: linear-gradient(135deg, #f3e5f5, #e1bee7);
}.curator-delivery-type
{
    font-weight: 600; background: linear-gradient(135deg, #f3e5f5, #e1bee7);
}.curator-status-paid
{
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9); font-weight: 600;
}.curator-status-waiting
{
    background: linear-gradient(135deg, #fde8e8, #ffcdd2); font-weight: 600;
}.curator-status-processing
{
    background: linear-gradient(135deg, #f3e5f5, #e1bee7); font-weight: 600;
}.curator-student-item
{
    background: linear-gradient(135deg, #fff, #fafafa);
}.curator-student-item:hover
{
    background: linear-gradient(135deg, #f3e5f5, #f8f5f8);
}.curator-student-name
{
    color: #7b1fa2; font-weight: 600;
}.curator-status-controls
{
    display: flex; align-items: center; flex-wrap: wrap;
}.curator-warning
{
    background: linear-gradient(135deg, #fff3e0, #ffe0b2); color: #e65100; border-radius: 6px; font-weight: 500;
}.curator-error
{
    background: linear-gradient(135deg, #fde8e8, #ffcdd2); color: #c62828; border-radius: 6px; font-weight: 500;
}.curator-success
{
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9); color: #2e7d32; border-radius: 6px; font-weight: 500;
}.receipt-missing-indicator__icons
{
    display: inline-flex; align-items: center; color: #6b7280; line-height: 1; vertical-align: middle;
}.curator-settings-info-banner
{
    background-color: #e3f2fd;
}.curator-settings-info-banner-inner
{
    color: #1565c0;
}.curator-settings-section-heading
{
    background-color: var(--bg-surface);
}.curator-settings-section-heading--warning
{
    background-color: #fff3cd;
}.curator-field-info-sm
{
    color: #666;
}.curator-contact-type-option
{
    display: block; cursor: pointer; background-color: var(--bg-surface); border-radius: 4px;
}.curator-contact-type-option.is-selected
{
    border-color: #2196f3; background-color: #e3f2fd;
}.curator-contact-type-desc
{
    color: #666;
}.curator-contact-info-highlight
{
    color: #666; background-color: #fff3cd; border-radius: 4px;
}.curator-settings-avatar-preview
{
    border-radius: 8px;
}.settings-box.settings-box-wide
{
    max-width: 100%;
}.settings-box-muted
{
    background: var(--bg-secondary);
    padding: var(--space-4);
    margin-bottom: var(--space-5);
    border-radius: var(--radius-md);
}.settings-section
{
    margin-bottom: var(--space-7);
    padding-bottom: var(--space-5);
    border-bottom: 1px solid var(--border-light);
}.settings-section:last-child
{
    border-bottom: none;
}.settings-section h3
{
    color: var(--text-dark);
    margin-bottom: var(--space-4);
    display: flex;
    align-items: center;
    gap: var(--space-3);
}.info-box, .warning-box
{
    padding: var(--space-4);
    margin: var(--space-4) 0;
    border-radius: var(--radius-sm);
}.info-box
{
    background: var(--info-light);
    border-left: 4px solid var(--info);
}.warning-box
{
    background: var(--warning-light);
    border-left: 4px solid var(--warning);
}.config-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-5);
    margin-top: var(--space-5);
}.sync-results
{
    margin-top: var(--space-5);
    padding: var(--space-4);
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}.sync-results.is-success
{
    background: var(--success-light);
    border-color: var(--success);
}.sync-results.is-error
{
    background: var(--danger-light);
    border-color: var(--danger);
}.standard-document
{
    border-color: var(--success) !important;
}.unavailable-document
{
    opacity: 0.6;
}.disabled-document
{
    background-color: var(--bg-secondary) !important;
}/* Line items (cost management) */.line-item
{
    background: linear-gradient(135deg, var(--success-light) 0%, color-mix(in srgb, var(--success-light) 70%, var(--bg-primary)) 100%);
    border: 1px solid var(--success);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-2);
    padding: var(--space-3);
}.line-header
{
    font-weight: 600;
    color: var(--success-dark);
    margin-bottom: var(--space-2);
    font-size: 0.95em;
    border-bottom: 1px solid color-mix(in srgb, var(--success) 35%, var(--bg-primary));
    padding-bottom: 5px;
}.line-semesters .semester-item
{
    background: var(--bg-primary);
    border: 1px solid color-mix(in srgb, var(--success) 35%, var(--bg-primary));
    border-radius: var(--radius-sm);
    padding: 6px 10px;
    margin: 0;
}/* Статистика переводов документов */.stats-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 15px;
}.stat-item
{
    text-align: center;
    padding: 20px;
    background: var(--info-gradient);
    color: var(--text-white);
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--info) 25%, transparent);
}.stat-number
{
    font-size: var(--text-3xl);
    font-weight: bold;
    margin-bottom: 8px;
}.document-stats, .university-stats
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
}.doc-stat, .uni-stat
{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 15px;
    background: var(--bg-secondary);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--info);
}.doc-name, .uni-name
{
    font-weight: 500;
    color: var(--text-dark);
}.doc-count, .uni-count
{
    font-weight: 600;
    color: var(--info);
    background: var(--bg-primary);
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * Curator reports (.reports-*) — панели, статистика, алерты, утилиты
 * Размеры: desktop.css / tablet.css / mobile.css / mobile-small.css
 * ═══════════════════════════════════════════════════════════════════════════════ */.reports-export-section
{
    text-align: center;
    background: var(--success-light);
    border-left-style: solid;
    border-left-color: var(--success);
}.reports-statistics-summary
{
    background: var(--success-light);
    border-left-style: solid;
    border-left-color: var(--success);
    box-sizing: border-box;
}.reports-stats-grid
{
    display: grid;
}.reports-stat-item
{
    text-align: center;
    background: white;
    border-style: solid;
    border-color: #dee2e6;
}.reports-stat-number
{
    font-weight: bold;
    color: #2c3e50;
}.reports-alert
{
    border-style: solid;
    border-color: transparent;
}.reports-alert-info
{
    background-color: var(--info-light);
    border-color: var(--info);
    color: var(--primary-dark);
}.reports-alert-warning
{
    background-color: var(--warning-light);
    border-color: var(--warning);
    color: var(--warning-dark);
}.reports-alert-danger
{
    background-color: var(--danger-light);
    border-color: var(--danger);
    color: var(--danger-darker);
}.reports-breadcrumb
{
    color: var(--text-medium);
}.reports-breadcrumb a
{
    color: var(--info);
    text-decoration: none;
}.reports-breadcrumb a:hover
{
    color: var(--info-dark);
    text-decoration: underline;
}.reports-text-muted
{
    color: var(--text-medium);
    font-style: italic;
}.reports-text-center
{
    text-align: center;
}.tab-content
{
    display: none;
}.tab-content.tab-content-active
{
    display: block;
}.settings-navigation ul
{
    display: grid;
    list-style: none;
}/* Хаб site_settings: размеры сетки и ячеек — desktop/tablet/mobile/mobile-small *//* Хаб admin/site_settings.php: длинные подписи без обрезки (common + брейкпоинты задают nowrap/ellipsis на .main-navigation) */.settings-navigation.main-navigation li a
{
    white-space: normal;
    overflow: visible;
    align-items: center;
    justify-content: flex-start;
}.settings-navigation.main-navigation li a span
{
    overflow: visible;
    white-space: normal;
    text-overflow: clip;
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}/* Назад к хабу настроек сайта (admin_head, дочерние страницы site_settings.php) */.admin-site-settings-back a
{
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-weight: 600;
    color: var(--primary);
    text-decoration: none;
    transition: color var(--transition-base);
}.admin-site-settings-back a:hover
{
    color: var(--primary-dark);
    text-decoration: underline;
}.admin-site-settings-back a:focus-visible
{
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}.custom-close
{
    position: absolute;
    cursor: pointer;
    color: var(--text-muted);
    transition: color var(--transition-base);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.05);
}.custom-close:hover
{
    color: var(--text-dark);
    background: rgba(0, 0, 0, 0.1);
}.custom-close:focus-visible
{
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}#img-caption
{
    margin: auto;
    display: block;
    width: 80%;
    max-width: 400px;
    text-align: center;
    color: #ccc;
    padding: 10px 0;
    font-size: 18px;
    font-family: "Arial", sans-serif;
}.img-close
{
    position: absolute;
    top: 20px;
    right: 20px;
    color: #fff;
    font-size: 30px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s ease-in-out;
}.img-close:hover, .img-close:focus
{
    color: #bbb;
    text-decoration: none;
    cursor: pointer;
}#apostilleRequestForm .student-list
{
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-2);
    margin-top: var(--space-2);
}/* Статистика апостиля: только под корнями страниц (не перебивать common.css / cards.css) */.admin-apostille-page .stats-section, #apostilleCuratorRoot .stats-section, .apostille-dashboard .stats-section
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
    padding: 20px;
    background: color-mix(in srgb, var(--bg-primary) 92%, transparent);
    border-radius: 20px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-lg);
}/* CHECK: @supports placed in common-uni.css */@supports (backdrop-filter: blur(1px)) {
    .admin-apostille-page .stats-section,
    #apostilleCuratorRoot .stats-section,
    .apostille-dashboard .stats-section {
        background: rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.2);
    }
}.admin-apostille-page .stat-item, #apostilleCuratorRoot .stat-item, .apostille-dashboard .stat-item
{
    background: color-mix(in srgb, var(--bg-primary) 88%, transparent);
    color: var(--text-dark);
    padding: 18px 15px;
    border-radius: 12px;
    text-align: center;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-md);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}/* CHECK: @supports placed in common-uni.css */@supports (backdrop-filter: blur(1px)) {
    .admin-apostille-page .stat-item,
    #apostilleCuratorRoot .stat-item,
    .apostille-dashboard .stat-item {
        background: rgba(255, 255, 255, 0.15);
        backdrop-filter: blur(15px);
        border: 1px solid rgba(255, 255, 255, 0.3);
    }
}.admin-apostille-page .stat-item::before, #apostilleCuratorRoot .stat-item::before, .apostille-dashboard .stat-item::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--primary), var(--accent-purple), var(--danger), var(--warning));
    background-size: 200% 100%;
    animation: apostille-gradient-shift 3s ease infinite;
}.admin-apostille-page .stat-item:hover, #apostilleCuratorRoot .stat-item:hover, .apostille-dashboard .stat-item:hover
{
    transform: translateY(-8px) scale(1.02);
    box-shadow: var(--shadow-xl);
    background: color-mix(in srgb, var(--bg-primary) 94%, transparent);
}/* CHECK: @supports placed in common-uni.css */@supports (backdrop-filter: blur(1px)) {
    .admin-apostille-page .stat-item:hover,
    #apostilleCuratorRoot .stat-item:hover,
    .apostille-dashboard .stat-item:hover {
        background: rgba(255, 255, 255, 0.25);
    }
}.admin-apostille-page .stat-item:nth-child(1), #apostilleCuratorRoot .stat-item:nth-child(1), .apostille-dashboard .stat-item:nth-child(1)
{
    background: linear-gradient(135deg, color-mix(in srgb, var(--warning) 22%, transparent), color-mix(in srgb, var(--warning-dark) 18%, transparent));
    border-color: color-mix(in srgb, var(--warning) 35%, var(--border-light));
}.admin-apostille-page .stat-item:nth-child(2), #apostilleCuratorRoot .stat-item:nth-child(2), .apostille-dashboard .stat-item:nth-child(2)
{
    background: linear-gradient(135deg, color-mix(in srgb, var(--info) 20%, transparent), color-mix(in srgb, var(--primary) 18%, transparent));
    border-color: color-mix(in srgb, var(--info) 32%, var(--border-light));
}.admin-apostille-page .stat-item:nth-child(3), #apostilleCuratorRoot .stat-item:nth-child(3), .apostille-dashboard .stat-item:nth-child(3)
{
    background: linear-gradient(135deg, color-mix(in srgb, var(--success) 22%, transparent), color-mix(in srgb, var(--success-dark) 20%, transparent));
    border-color: color-mix(in srgb, var(--success) 32%, var(--border-light));
}.admin-apostille-page .stat-item:nth-child(4), #apostilleCuratorRoot .stat-item:nth-child(4), .apostille-dashboard .stat-item:nth-child(4)
{
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 20%, transparent), color-mix(in srgb, var(--info) 18%, transparent));
    border-color: color-mix(in srgb, var(--primary) 30%, var(--border-light));
}.admin-apostille-page .stat-item:nth-child(5), #apostilleCuratorRoot .stat-item:nth-child(5), .apostille-dashboard .stat-item:nth-child(5)
{
    background: linear-gradient(135deg, color-mix(in srgb, var(--danger) 22%, transparent), color-mix(in srgb, var(--danger-dark) 20%, transparent));
    border-color: color-mix(in srgb, var(--danger) 32%, var(--border-light));
}.admin-apostille-page .stat-number, #apostilleCuratorRoot .stat-number, .apostille-dashboard .stat-number
{
    display: block;
    font-size: 1.8em;
    font-weight: 700;
    margin-bottom: 5px;
    color: var(--accent-purple-dark);
    background: linear-gradient(135deg, var(--primary), var(--accent-purple-dark));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}.pending-requests-section
{
    background: linear-gradient(135deg, var(--warning-light) 0%, color-mix(in srgb, var(--warning) 18%, var(--bg-primary)) 100%);
    border-radius: 16px;
    padding: 25px;
    margin: 25px 0;
    border-left: 5px solid var(--warning);
    box-shadow: 0 4px 20px color-mix(in srgb, var(--warning) 25%, transparent);
}.pending-requests-section h3
{
    margin: 0 0 20px 0;
    color: var(--warning-dark);
    font-size: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}.pending-requests-section h3 i
{
    font-size: 24px;
}.pending-requests-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 15px;
}.request-student
{
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-light);
}.request-student i
{
    font-size: 24px;
    color: var(--primary);
}.request-student strong
{
    font-size: 15px;
    color: var(--text-dark);
}.request-description
{
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.5;
}.request-description i
{
    margin-top: 2px;
    color: var(--text-light);
}.request-date
{
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 10px;
}.request-date i
{
    color: var(--text-light);
}.request-details--muted
{
    margin-top: 8px;
    font-size: 0.9em;
    color: var(--text-muted);
}.request-details-row
{
    margin-bottom: 4px;
}.request-details-row:last-child
{
    margin-bottom: 0;
}.request-price--emphasis
{
    margin-top: 8px;
    font-weight: bold;
    color: var(--text-dark);
}.request-price-original
{
    font-size: 0.85em;
    color: var(--text-muted);
    font-weight: normal;
    margin-left: 5px;
}.request-actions--tight
{
    margin-top: 10px;
}.request-actions
{
    display: flex;
    gap: 8px;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid var(--border-light);
}.no-requests-section
{
    text-align: center;
    padding: 40px 20px;
    background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary, var(--bg-secondary)) 100%);
    border-radius: 16px;
    margin: 20px 0;
}.no-requests-icon
{
    font-size: 64px;
    color: var(--success);
    margin-bottom: 20px;
}.no-requests-section h3
{
    color: var(--text-dark);
    margin-bottom: 10px;
    font-size: 24px;
}.no-requests-section p
{
    color: var(--secondary);
    font-size: 16px;
    margin: 0;
}/* Уведомления JS модуля curator-request-handler (без инлайн-стилей) */.apostille-js-notice
{
    position: fixed;
    bottom: 1.25rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: calc(var(--z-modal) + 50);
    max-width: min(520px, 92vw);
    margin: 0;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
    pointer-events: none;
}/* CHECK: @supports placed in common-uni.css */@supports (backdrop-filter: blur(1px)) {
    .request-modal-content {
        background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 249, 250, 0.95) 100%);
        backdrop-filter: blur(20px);
        border: 1px solid rgba(255, 255, 255, 0.3);
        box-shadow: 0 25px 80px rgba(0, 0, 0, 0.3);
    }
}.request-info
{
    background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%);
    border-radius: 12px;
    padding: 15px;
    margin-bottom: 20px;
    border-left: 4px solid var(--primary);
}.request-info-item
{
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 14px;
}.request-info-item:last-child
{
    margin-bottom: 0;
}.request-info-value
{
    color: var(--text-dark);
}.reports-high-attendance
{
    background-color: #d4edda !important;
}.reports-normal-attendance
{
    background-color: #fff3cd !important;
}.reports-low-attendance
{
    background-color: #f8d7da !important;
}.reports-legend-section
{
    background: var(--bg-surface);
    border-style: solid;
    border-color: #e9ecef;
}.reports-legend-items
{
    display: flex;
    flex-wrap: wrap;
}.reports-legend-item
{
    display: flex;
    align-items: center;
}.reports-legend-color
{
    display: inline-block;
    border-style: solid;
    border-color: #dee2e6;
}.reports-legend-color.high-attendance
{
    background-color: #d4edda;
}.reports-legend-color.normal-attendance
{
    background-color: #fff3cd;
}.reports-legend-color.low-attendance
{
    background-color: #f8d7da;
}/* === source: tables.css === *//* tables.css - universal table component.
 * Responsive sizing lives in desktop.css, tablet.css, mobile.css, and mobile-small.css.
 * See docs in /docs/ for full table guidelines.
 *
 * Refactor: .tbl baseline here; page-specific table tweaks in common.css should stay scoped.
 *//* ═══════════════════════════════════════════════════════════════════════════════
 * БАЗОВЫЙ КОМПОНЕНТ ТАБЛИЦЫ (.tbl)
 * ═══════════════════════════════════════════════════════════════════════════════ */.tbl
{
    /* Базовые свойства */
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    
    /* Типографика из base.css */
    font-family: var(--font-primary);
    font-size: var(--text-base);
    line-height: 1.6;
    color: var(--text-dark);
    
    /* Фон и границы */
    background-color: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    
    /* Тени из base.css */
    box-shadow: var(--shadow-sm);
    
    /* Отступы из base.css */
    margin: var(--space-lg) 0;
    
    /* Layout */
    table-layout: fixed;
    
    /* Переходы из base.css */
    transition: box-shadow var(--transition-base);
}/* Заголовок таблицы: визуальная подпись над компонентом */.tbl-title
{
    margin: var(--space-3) 0 var(--space-2);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text-dark);
}/* Заголовок с иконкой */.tbl-title--icon
{
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent-purple-dark) 100%);
    color: var(--text-white);
    border: 0;
    outline: 0;
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    font-weight: 600;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent);
    margin: var(--space-4) 0 var(--space-3);
}.tbl-title--icon i
{
    font-size: var(--text-lg);
    opacity: 0.95;
}/* Вложенные таблицы - наследуют стили, но с меньшими отступами */.tbl .tbl
{
    margin: var(--space-2) 0;
    box-shadow: none;
    border: 1px solid var(--border-light);
}.sms-map-description-cell
{
    min-width: 0;
    word-wrap: break-word;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * ПЕРЕОПРЕДЕЛЕНИЕ ОТСТУПОВ В RESPONSIVE ФАЙЛАХ
 * ═══════════════════════════════════════════════════════════════════════════════
 * Responsive overrides for row/cell padding live in desktop.css, tablet.css,
 * mobile.css, and mobile-small.css.
 *//* ═══════════════════════════════════════════════════════════════════════════════
 * МОДИФИКАТОРЫ ШИРИНЫ КОЛОНОК
 * ═══════════════════════════════════════════════════════════════════════════════ */.tbl--fixed
{
    table-layout: fixed;
}.tbl--auto
{
    table-layout: auto;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * МОДИФИКАТОРЫ СТИЛЯ
 * ═══════════════════════════════════════════════════════════════════════════════ */.tbl--borderless
{
    border: none;
    border-radius: 0;
    box-shadow: none;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * МОДИФИКАТОРЫ РАЗМЕРА
 * ═══════════════════════════════════════════════════════════════════════════════ */.tbl--sm
{
    font-size: var(--text-sm);
}.tbl--lg
{
    font-size: var(--text-lg);
}/* ═══════════════════════════════════════════════════════════════════════════════
 * COLUMN MODIFIERS
 * ═══════════════════════════════════════════════════════════════════════════════ */.tbl__col--id
{
    text-align: left;
}.tbl__col--actions
{
    text-align: center;
    white-space: nowrap;
    width: 1%;
}.tbl__col--receipt
{
    text-align: center;
    vertical-align: middle;
}.tbl__col--numeric
{
    text-align: right;
    font-variant-numeric: tabular-nums;
}.tbl__col--date
{
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}/* Text overflow helpers */.tbl__cell--truncate
{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 0;
}.tbl__cell--wrap
{
    white-space: normal;
    word-break: break-word;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * 📊 УЛУЧШЕННЫЕ ТАБЛИЦЫ С АВТОМАТИЧЕСКИМ РАСЧЕТОМ ЯЧЕЕК
 * ═══════════════════════════════════════════════════════════════════════════════
 * 
 * Новая система таблиц с логическим математическим расчетом размера ячеек
 * в зависимости от содержимого.
 * 
 * Правила:
 * 1. table-layout: auto - содержимое определяет размер
 * 2. word-break: break-word - переносить длинные слова
 * 3. Иконки в ячейках не влияют на размер (flex-shrink: 0)
 * 4. Вертикальный размер ячеек — через padding (min-height на td/th в таблицах не применяется)
 * 5. Адаптивный padding в зависимости от контента
 * ═══════════════════════════════════════════════════════════════════════════════ *//* Улучшенная таблица с умным расчетом ячеек */.tbl--smart-cells
{
    /* ПЕРЕОПРЕДЕЛЯЕМ все конфликтующие свойства из .tbl */
    table-layout: auto !important;
    width: 100% !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    box-sizing: border-box !important;
    
    /* Убираем лишние стили из .tbl */
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    background-color: transparent !important;
}/* Сбрасываем box-sizing для всех ячеек */.tbl--smart-cells *, .tbl--smart-cells *::before, .tbl--smart-cells *::after
{
    box-sizing: border-box !important;
}/* Поддержка иконок в ячейках */.tbl--smart-cells i, .tbl--smart-cells .fas, .tbl--smart-cells .far, .tbl--smart-cells .fab
{
    flex-shrink: 0;
    margin-right: 8px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}/* Отключение переносов для конкретных ячеек */.tbl--smart-cells .tbl__cell--nowrap
{
    white-space: nowrap;
    word-break: normal;
    overflow: hidden;
    text-overflow: ellipsis;
}/* Ячейки с денумерацией (числа, коды) */.tbl--smart-cells .tbl__cell--numeric
{
    text-align: right;
    font-family: var(--font-mono);
    font-size: 12px;
}/* Ячейки со статусами */.tbl--smart-cells .tbl__cell--status
{
    text-align: center;
    font-weight: 600;
}/* Цвета action-кнопок .students-list-table — канон в buttons.css (после tables.css в admin_head) *//* COPY ICON UTILITIES tied to students-list-table context */.copy-icon
{
    margin-left: var(--space-2);
    cursor: pointer;
    color: var(--text-muted);
    font-size: calc(var(--text-base) * 0.9);
    transition: all var(--transition-base);
    opacity: 0.6;
}.copy-icon:hover
{
    opacity: 1;
    color: var(--primary) !important;
    transform: scale(1.1);
}.copy-icon:active
{
    transform: scale(0.95);
}.copy-icon.copied
{
    color: var(--success) !important;
    animation: copyPulse 0.5s ease;
}.copy-flex-container
{
    display: flex;
    align-items: center;
    gap: var(--space-2);
}/* ═══════════════════════════════════════════════════════════════
   EXAM TABLE ROW STATES — строки таблицы экзаменов
   Используется: unis_exams_date_add.php
   ═══════════════════════════════════════════════════════════════ */.exam-soon
{
    background-color: #fff3cd !important;
    border-left: 4px solid #ffc107 !important;
}.exam-past
{
    background-color: #f8d7da !important;
    border-left: 4px solid #dc3545 !important;
    opacity: 0.7;
}.student-cell
{
    display: flex;
    flex-direction: column;
    gap: 4px;
}.student-cell strong
{
    color: #333;
}.student-cell small
{
    color: #6c757d;
    font-size: 12px;
}.documents-cell
{
    max-width: 200px;
    font-size: 13px;
    line-height: 1.4;
    color: #495057;
}.action-buttons
{
    display: flex;
    gap: 5px;
    justify-content: center;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * Curator reports (.reports-*) — таблица, секция, инфо о студенте
 * Размеры: desktop.css / tablet.css / mobile.css / mobile-small.css
 * ═══════════════════════════════════════════════════════════════════════════════ */.reports-student-info
{
    background: white;
    border-style: solid;
    border-color: #dee2e6;
    box-sizing: border-box;
}.reports-info-grid
{
    display: grid;
}.reports-info-item
{
    display: flex;
    justify-content: space-between;
    background: var(--bg-surface);
    border-style: solid;
    border-color: #e9ecef;
}.reports-info-value
{
    color: #212529;
}.reports-section
{
    background: white;
    border-style: solid;
    border-color: #dee2e6;
    box-sizing: border-box;
}.reports-section h3
{
    color: #2c3e50;
    border-bottom-style: solid;
    border-bottom-color: var(--color-primary);
}.reports-status-full
{
    color: #155724;
    font-weight: bold;
}.reports-status-partial
{
    color: #856404;
    font-weight: bold;
}.reports-status-absent
{
    color: #721c24;
    font-weight: bold;
}.reports-status-scheduled
{
    color: #0c5460;
    font-weight: bold;
}/* FILE INPUT CONTROL */.file-upload-control
{
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}.file-upload-control--compact
{
    gap: var(--space-1);
}.file-upload-control .file-input__trigger
{
    min-width: var(--file-upload-trigger-min-width);
    position: relative;
}.file-upload-control .file-input__state
{
    position: absolute;
    right: calc(var(--file-upload-state-inset) * -1);
    bottom: calc(var(--file-upload-state-inset) * -1);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--file-upload-state-size);
    height: var(--file-upload-state-size);
    border-radius: 50%;
    background: var(--surface, #fff);
    color: var(--danger, #ef4444);
    font-size: var(--file-upload-state-font);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    pointer-events: none;
    border: 1px solid var(--border, #e5e7eb);
    z-index: 2;
}.file-upload-control .file-input__state-icon
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--file-upload-state-icon-box);
    height: var(--file-upload-state-icon-box);
    color: currentColor !important;
    font-size: var(--file-upload-state-font);
    line-height: 1;
}.receipt-missing-indicator__icons
{
    display: inline-flex;
    align-items: center;
    gap: var(--receipt-missing-icons-gap);
    color: var(--text-muted, #6b7280);
    font-size: var(--receipt-missing-fs);
    line-height: 1;
    vertical-align: middle;
}.receipt-missing-indicator__icons .fa-times-circle
{
    font-size: 0.88em;
}.sr-only
{
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    white-space: nowrap;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * ПОЧТА — действия (.mail-actions, .mail-action-btn). Фильтры-chips: styles/forms.css
 * Размеры: desktop.css / tablet.css / mobile.css / mobile-small.css
 * ═══════════════════════════════════════════════════════════════════════════════ */.mail-actions
{
    display: flex;
    border-top: 1px solid var(--border);
}.reports-actions-section
{
    text-align: center;
    background: var(--bg-secondary);
    border-style: solid;
    border-color: var(--border);
}.google-setting-item
{
    display: grid;
    grid-template-columns: minmax(180px, 1.2fr) minmax(220px, 3fr) auto auto;
    gap: var(--space-2);
    align-items: center;
}.google-setting-key
{
    min-width: 0;
}.google-setting-value
{
    width: 100%;
}/* Модификаторы цвета для .setting-status-badge находятся в badges.css */.progress-bar-container
{
    position: relative;
    width: 100%;
    height: 20px;
    overflow: hidden;
    background: var(--bg-tertiary);
    border-radius: var(--radius-full);
}.progress-bar
{
    width: 0;
    height: 100%;
    background: var(--primary-gradient);
    transition: width var(--transition-base);
}.progress-text
{
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: var(--text-dark);
}.is-visible-block
{
    display: block !important;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * FIELDSET И LEGEND
 * ═══════════════════════════════════════════════════════════════════════════════ */fieldset
{
    border: 1px solid var(--border);
    border-radius: var(--form-fieldset-radius);
    padding: var(--form-fieldset-padding);
    margin-bottom: var(--form-group-margin-bottom);
    background-color: var(--bg-secondary);
}legend
{
    font-weight: 600;
    font-size: var(--form-control-font-size);
    color: var(--text-dark);
    padding: 0 var(--form-legend-padding-x);
}/* ═══════════════════════════════════════════════════════════════════════════════
 * СТИЛИ ДЛЯ ПОДПИСИ СТУДЕНТА
 * ═══════════════════════════════════════════════════════════════════════════════
 * 
 * Математические расчеты размеров:
 * - Базовая ширина: 250px (стандартный размер подписи в документах)
 * - Максимальная высота: 120px (соотношение ~2:1 для подписи)
 * - Пропорции: ширина/высота = 2.08 (250/120)
 * 
 * На мобильных устройствах:
 * - Ширина: 200px (уменьшение на 20%)
 * - Максимальная высота: 100px (пропорциональное уменьшение)
 */.signature-image
{
    display: block;
    max-width: 100%; /* Адаптивность на маленьких экранах */
    height: auto; /* Сохранение пропорций */
    object-fit: contain; /* Сохранение пропорций без обрезки */
    /* ⚠️ ВАЖНО: Фиксированные размеры (width, max-height) определены в адаптивных файлах:
     * - desktop.css (≥1024px)
     * - tablet.css (768px-1023px)
     * - mobile.css (≤767px)
     * - mobile-small.css (≤480px)
     */
}.add-admin-otp-wrap
{
    margin-top: var(--space-4);
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
}/* Ячейка действий */.mail-actions-cell
{
    text-align: center;
    vertical-align: middle;
}/* Flash на странице */#mail-ajax-flash
{
    display: none;
    padding: var(--space-3, 0.75rem);
    border-radius: var(--form-radius-md);
    margin-bottom: var(--space-4, 1rem);
}/* Подсказка file path */.mail-relationship-hint
{
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-muted, #666);
    margin-bottom: var(--space-4, 1rem);
}/* Секрет */.mail-cred-secret-display
{
    font-family: monospace;
    font-size: var(--text-xs, 0.75rem);
    word-break: break-all;
}/* ═══════════════════════════════════════════════════════════════════════════
 * COST MANAGEMENT — форма управления стоимостями
 * ═══════════════════════════════════════════════════════════════════════════ */.filters-section
{
    background: var(--bg-surface);
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 30px;
}.currency-section
{
    margin-bottom: 20px;
}.overwrite-section
{
    margin-bottom: 20px;
    padding: 15px;
    background: #fff3cd;
    border: 1px solid #ffeaa7;
    border-radius: 6px;
}/* Группировка семестров по линиям */.semesters-lines
{
    margin: 20px 0;
}.semester-line
{
    background: linear-gradient(135deg, var(--bg-surface) 0%, #e9ecef 100%);
    border: 1px solid #dee2e6;
    border-radius: 8px;
    margin-bottom: 15px;
    padding: 15px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}.line-title
{
    background: linear-gradient(135deg, var(--color-primary) 0%, #0056b3 100%);
    color: white;
    padding: 10px 15px;
    margin: -15px -15px 15px -15px;
    border-radius: var(--form-radius-md) var(--form-radius-md) 0 0;
    font-size: 1.1em;
    font-weight: 600;
    text-align: left;
}.line-semesters
{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}.semester-field
{
    display: flex;
    flex-direction: column;
}/* Режим переключения (toggle switch) */.mode-switch
{
    display: flex;
    align-items: center;
    gap: 15px;
    justify-content: flex-start;
}.switch
{
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
}/* Трек переключателя — полностью скруглённый (не тот же смысл, что --form-radius-lg у полей). */.slider
{
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: .4s;
    border-radius: var(--radius-full);
}.slider:before
{
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}/* Блок выбора специальностей */.specialties-container
{
    border: 1px solid #ced4da;
    border-radius: var(--form-radius-md);
    background: #fff;
    text-align: left;
    overflow: hidden;
}.specialties-controls
{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: var(--form-control-padding-y) var(--form-control-padding-x);
    background: var(--bg-surface);
    border-bottom: 1px solid #dee2e6;
    border-radius: var(--form-radius-md) var(--form-radius-md) 0 0;
    justify-content: flex-start;
    margin: 0;
}.specialties-list
{
    max-height: 200px;
    overflow-y: auto;
    padding: 0;
    margin: 0;
    padding-left: 0 !important;
    margin-left: 0 !important;
}.specialties-list *
{
    box-sizing: border-box;
}.specialties-list .specialty-item *
{
    margin: 0;
    padding: 0;
}.specialty-item
{
    display: flex;
    align-items: center;
    padding: 8px 5px;
    border-bottom: 1px solid #f1f3f4;
    text-align: left;
    margin: 0;
    min-height: 40px;
    padding-left: 8px !important;
    margin-left: 0 !important;
}.specialty-item:last-child
{
    border-bottom: none;
}.specialty-item:hover
{
    background-color: var(--bg-surface);
}.specialty-name
{
    flex: 1;
    font-size: 14px;
    color: #495057;
    text-align: left;
    line-height: 1.4;
    margin: 0;
    padding: 0;
    cursor: pointer;
    font-weight: 500;
}/* Фильтры (manage_entry_admission) */.filters-row
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 15px;
    margin-bottom: 15px;
}.filter-group
{
    display: flex;
    flex-direction: column;
}.search-controls
{
    display: grid;
    grid-template-columns: 2fr 1fr 1fr auto;
    gap: 15px;
    align-items: end;
}.search-group, .date-group
{
    display: flex;
    flex-direction: column;
    gap: 5px;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * Curator reports (.reports-*) — выбор периода и поля
 * Размеры: desktop.css / tablet.css / mobile.css / mobile-small.css
 * ═══════════════════════════════════════════════════════════════════════════════ */.reports-period-selector
{
    background: var(--bg-surface);
    border-style: solid;
    border-color: #e9ecef;
    box-sizing: border-box;
}.reports-period-selector-inner
{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}.reports-period-selector-main
{
    flex: 1;
}/* ═══════════════════════════════════════════════════════════════════════════════
 * Фильтры, pills, чипы категорий (перенесено из common.css / buttons.css / view-logs.css)
 * Скругления: только var(--filter-radius-*); значения токенов — base + desktop–mobile-small.
 * Размеры (padding, gap, grid): desktop.css / tablet.css / mobile.css / mobile-small.css
 * ═══════════════════════════════════════════════════════════════════════════════ */.filter-row
{
    display: grid;
}.filters-container
{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
}.filters-container > div
{
    display: flex;
    flex-direction: column;
    flex: 0 1 auto;
}.filters-group-wrapper
{
    display: grid;
}.filters-group
{
    display: flex;
    flex-direction: column;
    background: var(--bg-light);
    border-radius: var(--filter-radius-lg);
    transition: all var(--transition-base);
}.filters-group:hover
{
    border-color: var(--border);
}.filters-group-title
{
    display: flex;
    align-items: center;
    font-weight: 600;
    font-size: var(--text-base);
    color: var(--text-dark);
}.filters-group-title i
{
    flex-shrink: 0;
    font-size: var(--text-lg);
    opacity: 0.9;
}.filters-group-fields
{
    display: flex;
    flex-direction: column;
}.filter-field
{
    display: flex;
    flex-direction: column;
}.student-search-filters
{
    display: flex;
    flex-wrap: wrap;
    background: var(--bg-secondary);
    border-radius: var(--filter-radius-md);
}.student-search-filter-group
{
    display: flex;
    flex-direction: column;
    flex: 1;
}.search-filters-toggle-container
{
    display: flex;
    justify-content: flex-start;
    align-items: center;
}.filter-toggle
{
    display: inline-flex;
    align-items: center;
    background: var(--primary-gradient);
    color: var(--text-white);
    border-radius: var(--filter-radius-md);
    font-size: var(--text-base);
    font-weight: 500;
    cursor: pointer;
    transition: all var(--transition-base);
}.filter-toggle:hover
{
    background: var(--primary-dark);
}.filter-toggle i
{
    font-size: var(--text-base);
    transition: transform var(--transition-base);
}#search-filters-container.search-filters-expanded .search-filters-additional
{
    display: block;
    animation: slideDown var(--transition-slow) ease-out;
}#search-filters-container.search-filters-collapsed .search-filters-additional
{
    display: none;
}/* Почта — chips фильтров (действия .mail-action-btn остаются в buttons.css) */.mail-filters
{
    display: flex;
    flex-wrap: wrap;
}/* admin view_logs.php — категории / подкатегории */.log-category-buttons, .log-subcategory-buttons
{
    display: flex;
    flex-wrap: wrap;
}/* Иконки - десктоп размеры (≥1024px)
     * Увеличенные размеры для лучшей видимости на больших экранах
     */.gender-icon
{
        width: 32px;
        height: 32px;
    }.payment-icon, .login-pass-icon
{
        width: 32px;
        height: 32px;
    }.payment-link, .login-pass-link
{
        padding: var(--space-2);
        min-width: 44px;
        min-height: 44px;
    }.student-actions-mobile
{
        display: none;
    }.student-status-mobile
{
        display: none;
    }.payment-link-mobile, .login-pass-link-mobile
{
        display: none;
    }.credentials-modal__dialog
{
        width: min(420px, 90%);
        padding: var(--space-6);
    }.credentials-modal__close
{
        width: 38px;
        height: 38px;
    }.exam-item
{
        padding: var(--space-5);
        margin-bottom: var(--space-5);
    }.exam-name
{
        font-size: var(--text-lg);
        margin-bottom: var(--space-3);
    }.exam-details
{
        font-size: var(--text-base);
    }.exam-limit-info-success, .exam-limit-info-warning
{
        padding: var(--space-5);
    }.nav-icon
{
        width: calc(var(--space-12) * 1);
        height: calc(var(--space-12) * 1);
    }.navigation-actions
{
        gap: var(--space-4);
    }.signature-image
{
        width: 250px;
        max-height: 120px;
    }.translation-selection-block
{
        padding: 10px 14px;
        gap: 12px;
    }.translation-quantity
{
        width: 75px;
        padding: 7px 12px;
        font-size: 15px;
    }.translation-block
{
        padding: 10px;
        margin: 18px 0;
    }.translation-session-message
{
        padding: 18px 24px;
        font-size: var(--text-base);
    }.translation-statistics
{
        padding: 30px;
    }.translation-statistics h4
{
        font-size: 1.5em;
        margin-bottom: 24px;
    }.translation-statistics h5
{
        font-size: 1.15em;
    }.translation-section-title, .translation-section-title-success, .translation-section-title-danger
{
        font-size: 1.15em;
    }.translation-success-box, .translation-danger-box, .translation-partial-box
{
        padding: 18px;
    }.exam-limit-info-success, .exam-limit-info-warning
{
        padding: var(--space-md);
    }.invitation-block
{
        padding: var(--space-5);
    }.student-actions-container
{
        display: flex;
        gap: var(--space-4);
        flex-wrap: nowrap;
    }.action-icon
{
        width: 64px;
        height: 64px;
        min-width: 64px;
    }.action-icon img, .action-icon i
{
        width: 32px;
        height: 32px;
    }/* ═══════════════════════════════════════════════════════════════════════════
     * БЛОК ПРИГЛАШЕНИЯ - DESKTOP
     * ═══════════════════════════════════════════════════════════════════════════
     * На десктопе: все кнопки в одну строку, nowrap
     */.invitation-buttons-container
{
        flex-wrap: nowrap !important;
        overflow-x: auto;
        overflow-y: hidden;
    }}
.university-actions
{
        flex-direction: column;
        width: 100%;
        gap: var(--space-2);
    }.semester-field
{
        display: flex;
        flex-direction: column;
        gap: var(--space-2);
    }.semester-value
{
        font-size: var(--text-sm);
        color: var(--text-base);
    }.receipt-actions
{
        display: flex;
        gap: var(--space-2);
        margin-top: var(--space-md);
    }.stats-grid
{
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-md);
    }.stat-number
{
        font-size: 1.8em;
    }.nav-list
{
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-md);
    }.admin-info-text i
{
        font-size: var(--text-sm);
    }.admin-info-text--small i
{
        font-size: var(--text-xs);
    }.main-navigation ul
{
        justify-content: flex-start;
    }.main-navigation li
{
        flex: 0 0 calc((100% - var(--space-2)) / 2);
        width: calc((100% - var(--space-2)) / 2);
        max-width: calc((100% - var(--space-2)) / 2);
    }.main-navigation li a
{
        font-size: var(--text-sm);
        padding: var(--space-3);
        min-height: 50px;
    }.main-navigation li a i
{
        font-size: 1.375rem;
    }.main-navigation li a span
{
        font-size: var(--text-sm);
        flex: 0 1 auto;
        overflow: hidden;
        text-overflow: ellipsis;
    }.custom-close
{
        font-size: var(--text-lg);
        top: var(--space-2);
        right: var(--space-3);
        width: 32px;
        height: 32px;
        border-radius: 50%;
    }.col-degree
{ width: 8%;
        min-width: 80px;
    }.col-exam
{ width: 15%;
        min-width: 150px;
    }.col-full-name
{ width: 25%;
        min-width: 250px;
    }.col-specialty
{ width: 25%;
        min-width: 200px;
    }.filter-row-3
{
        grid-template-columns: repeat(2, 1fr);
    }.grid-2
{
        grid-template-columns: repeat(2, 1fr);
    }.grid-3
{
        grid-template-columns: repeat(3, 1fr);
    }.university-name
{
        flex: 1;
        min-width: 0;
    }.university-nav-item
{
        max-width: 237px;
    }.university-nav-link
{
        width: 100%;
        max-width: 100%;
        font-size: var(--text-sm);
        padding: var(--space-2) var(--space-5);
    }.university-nav-link-icon
{
        font-size: 18px;
    }.university-nav-link-text
{
        font-size: var(--text-sm);
    }.university-nav-list
{
        grid-template-columns: repeat(4, minmax(200px, 1fr));
        gap: var(--space-3);
        justify-content: start;
    }.grid
{
        gap: var(--space-md);
    }.grid-2, .grid-3, .grid-4
{
        grid-template-columns: 1fr;
    }.flex
{
        flex-direction: column;
        gap: var(--space-sm);
    }.flex-between
{
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-sm);
    }.flex-center
{
        flex-direction: column;
        gap: var(--space-sm);
    }.alert
{
        padding: var(--space-sm);
        font-size: var(--text-sm);
    }/* Узкий экран: блок выхода по центру и кнопка на ширину контейнера (не путать с text-align внутри .btn в buttons.css) */.footer-logout
{
        text-align: center;
    }.footer-copyright
{
        font-size: var(--text-xs);
        padding: var(--space-2) 0;
    }.footer-copy-toast
{
        bottom: var(--space-3);
        right: var(--space-3);
        left: auto;
        min-width: 160px;
        width: max-content;
        max-width: calc(100vw - (2 * var(--space-3)));
    }.footer-lang-cell
{
        width: 25% !important;
        padding: var(--space-1) !important;
    }.footer-lang-switcher
{
        padding: var(--space-4);
        margin: var(--space-3) 0;
    }.footer-lang-container
{
        gap: var(--space-3);
    }.footer-lang-title
{
        font-size: var(--text-sm);
        margin-bottom: var(--space-3);
    }.footer-lang-title i
{
        font-size: var(--text-lg);
    }/* Ширина: W_inner ≈ Vw − 24 (.container padding). Перенос строк: max k с k*B+(k-1)*G ≤ W_inner.
     * Глобальные .action-icon 120px ниже — узкие экраны получают больше строк автоматически.
     */.student-box-admin-actions
{
        width: 100%;
        gap: var(--space-2);
        padding: var(--space-3) 0;
        flex-wrap: wrap;
        justify-content: center;
    }/* MOBILE student box (≤767px): N=8|9 из box_student_actions. B=120, G=8.
     * При широком ряду (~743px inner): 5 в строку → 5+4 или 4+4 (N=9 vs N=8).
     * Проверка ряда из 5: 5×120 + 4×8 = 632 ≤ ~743.
     */.action-icon
{
        width: 120px;
        height: 120px;
        min-width: 120px;
    }.action-icon img, .action-icon i
{
        width: 60px;
        height: 60px;
    }.action-icon i
{
        font-size: var(--text-3xl);
    }.avatar-img
{
        width: 100px;
        height: 100px;
        border-width: 3px;
    }.student-profile-header-container
{
        flex-direction: column;
        gap: var(--space-md);
    }.student-avatar-block
{
        order: 1;
        justify-content: center;
    }.student-info-wrapper
{
        order: 2;
    }.student-box-admin-info
{
        width: 100%;
        padding: var(--space-4) max(var(--space-4), 7.5rem) var(--space-4) var(--space-4);
    }.student-box-title
{
        font-size: var(--text-xl);
        margin-bottom: var(--space-4);
    }.student-box-admin-info p
{
        font-size: var(--text-base);
        margin: var(--space-2) 0;
    }.student-avatar-in-box
{
        top: var(--space-3);
        right: var(--space-3);
        transform: none !important;
        z-index: 2;
    }.student-avatar-in-box .avatar-img
{
        width: 100px;
        height: 100px;
        border-width: 3px;
    }.admin-student-status
{
        top: calc(var(--space-3) + 100px + 10px);
        right: var(--space-3);
        left: auto;
        min-width: 70px;
        max-width: min(12rem, calc(100vw - 2rem));
        height: auto;
        min-height: 28px;
        padding: var(--space-1) var(--space-3);
        font-size: var(--text-xs);
        line-height: 1.35;
        transform: none !important;
        z-index: 3;
        white-space: normal;
        box-sizing: border-box;
    }/* Иконки - мобильные размеры (≤767px)
     * Компактные размеры для мобильных устройств
     */.gender-icon
{
        width: 24px;
        height: 24px;
    }.payment-icon, .login-pass-icon
{
        width: 24px;
        height: 24px;
    }.payment-link, .login-pass-link
{
        padding: var(--space-1);
        min-width: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }.student-actions-mobile
{
        display: flex;
        align-items: center;
        gap: var(--space-2);
        flex-wrap: wrap;
        margin-top: var(--space-2);
    }.student-status-mobile
{
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: var(--text-base);
    }.payment-link-mobile, .login-pass-link-mobile
{
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: var(--space-2);
        min-width: 44px;
        min-height: 44px;
    }.credentials-modal__dialog
{
        width: calc(100% - var(--space-6));
        max-width: 400px;
        padding: var(--space-5);
        border-radius: var(--radius-lg);
    }.credentials-modal__close
{
        width: 36px;
        height: 36px;
        top: var(--space-2);
        right: var(--space-2);
        font-size: var(--text-lg);
    }.credentials-modal__title
{
        font-size: var(--text-lg);
        padding-right: var(--space-8);
    }.credentials-modal__value
{
        font-size: var(--text-sm);
        padding: var(--space-2);
        word-break: break-all;
    }.student-item
{
        gap: var(--main-space-md, 12px);
        padding: var(--main-space-xs);
        margin: var(--main-space-xxs) 0;
        font-size: calc(var(--text-base) * 0.8125);
        min-height: 40px;
        align-items: center;
    }.exam-student-item
{
        padding: var(--space-md) var(--space-4);
        margin: 0;
        flex-wrap: wrap;
    }.exam-student-item-spacing
{
        width: var(--space-10);
    }.exam-student-text
{
        font-size: calc(var(--text-base) * 0.75);
        margin-top: var(--space-2);
    }.exam-student-warning
{
        font-size: calc(var(--text-base) * 0.75);
    }.exam-student-text-dark
{
        font-size: calc(var(--text-base) * 0.75);
    }.exam-separator
{
        margin: 0 var(--space-1);
    }/* Для 5 элементов: (12px + 50px + 12px) * 5 + 32px = 74px * 5 + 32px = 402px */.exam-student-list
{
        max-height: 402px;
    }.exam-student-list::-webkit-scrollbar
{
        width: 6px;
    }.exam-student-list::-webkit-scrollbar-track
{
        background: var(--bg-secondary);
        border-radius: var(--radius-sm);
    }.exam-student-list::-webkit-scrollbar-thumb
{
        background: var(--text-muted);
        border-radius: var(--radius-sm);
    }.exam-student-list::-webkit-scrollbar-thumb:hover
{
        background: var(--text-medium);
    }.student-search-filters
{
        padding: calc(var(--space-md) - 2px) var(--space-4);
    }.student-search-filter-group
{
        min-width: 100%;
    }.student-search-results-header
{
        padding: calc(var(--space-md) - 2px) var(--space-4);
        flex-direction: column;
        align-items: flex-start;
    }.student-search-results-count
{
        font-size: calc(var(--text-base) * 0.8125);
    }.student-search-results-total
{
        font-size: calc(var(--text-base) * 0.75);
    }/* 
     * Mobile: Математический расчет высоты для 5 студентов
     * Один элемент: padding top (10px) + строка имени (13px * 1.5 = 19.5px) + margin (4px) + строка деталей (13px * 1.5 = 19.5px) + padding bottom (10px) = 63px
     * 4 обычных элемента: 63px * 4 = 252px
     * 1 последний элемент: padding bottom (4px вместо 10px) = 57px
     * Границы: 4px
     * Итого: 252px + 57px + 4px = 313px
     */.student-search-results-list
{
        height: calc(
            (calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.8125) * 1.5 + calc(var(--space-md) - 2px)) * 4 + (calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs)) + 4px );
        min-height: calc(
            (calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.8125) * 1.5 + calc(var(--space-md) - 2px)) * 4 +
            (calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs)) +
            4px
        );
        max-height: calc(
            (calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.8125) * 1.5 + calc(var(--space-md) - 2px)) * 4 +
            (calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.8125) * 1.5 + var(--space-xs)) +
            4px
        );
        padding-right: calc(var(--space-10) + var(--space-2));
    }.student-search-results-header
{
        height: calc(calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + calc(var(--space-md) - 2px));
        min-height: calc(calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + calc(var(--space-md) - 2px));
        max-height: calc(calc(var(--space-md) - 2px) + calc(var(--text-base) * 0.8125) * 1.5 + calc(var(--space-md) - 2px));
    }.student-search-item
{
        padding: calc(var(--space-md) - 2px) var(--space-4);
    }.student-search-item-name
{
        font-size: calc(var(--text-base) * 0.8125);
    }.student-search-item-details-row
{
        font-size: calc(var(--text-base) * 0.8125);
        gap: var(--space-sm);
        flex-wrap: wrap;
    }.student-search-item-university, .student-search-item-level, .student-search-item-specialty
{
        font-size: calc(var(--text-base) * 0.8125);
    }.student-search-scroll-buttons
{
        right: var(--space-sm);
        gap: var(--space-xs);
    }.addMoreFiles
{
        width: 100%;
        padding: var(--space-2) var(--space-3);
        font-size: var(--text-sm);
        min-height: calc(var(--space-8) + var(--space-2));
    }.admin-curators-container
{ grid-template-columns: repeat(auto-fill, minmax(max(calc((100% - (var(--space-2) * 4)) / 5), 120px), 1fr));
        gap: var(--space-2);
    }.margin-top-5
{
        margin-top: 3px;
    }.margin-top-10
{
        margin-top: 5px;
    }.margin-top-15
{
        margin-top: 10px;
    }.margin-bottom-20
{
        margin-bottom: 15px;
    }.margin-left-15
{
        margin-left: 10px;
    }.gap-10
{
        gap: 8px;
    }.gap-15
{
        gap: 10px;
    }.font-size-18
{
        font-size: 16px;
    }.font-size-24
{
        font-size: 20px;
    }.width-50
{
        width: 40px;
    }.exam-item
{
        padding: var(--space-3);
        margin-bottom: var(--space-3);
    }.exam-name
{
        font-size: var(--text-sm);
        margin-bottom: var(--space-2);
    }.exam-details
{
        font-size: var(--text-xs);
    }.exam-limit-info-success, .exam-limit-info-warning
{
        padding: var(--space-3);
    }.nav-icon
{
        width: calc(var(--space-8) * 1);
        height: calc(var(--space-8) * 1);
    }.navigation-actions
{
        flex-direction: column;
        gap: var(--space-2);
    }.signature-image
{
        width: 200px;
        max-height: 100px;
    }.translation-selection-block
{
        flex-wrap: wrap;
        padding: 8px 12px;
        gap: 8px;
    }.translation-quantity
{
        width: 60px;
        padding: 6px 10px;
        font-size: 14px;
    }.translation-block
{
        padding: 8px;
        margin: 15px 0;
    }.translation-session-message
{
        padding: 14px 18px;
        font-size: var(--text-sm);
        margin: 16px 0;
    }.translation-statistics
{
        padding: 20px;
        margin: 16px 0;
    }.translation-statistics h4
{
        font-size: 1.2em;
        margin-bottom: 18px;
    }.translation-statistics h5
{
        font-size: 1.05em;
    }.translation-section-title, .translation-section-title-success, .translation-section-title-danger
{
        font-size: 1.05em;
    }.translation-success-box, .translation-danger-box, .translation-partial-box
{
        padding: 14px;
        margin-top: 12px;
    }.exam-limit-info-success, .exam-limit-info-warning
{
        padding: var(--space-3);
    }.invitation-block
{
        padding: var(--space-3);
    }.invitation-buttons-container
{
        flex-direction: column;
        gap: var(--space-2);
    }.student-actions-container
{
        display: flex;
        flex-direction: column;
        gap: var(--space-2);
    }/* Иконка действия - 3D круглый стиль - 75% от desktop (64px * 0.75 = 48px) */.action-icon
{
        width: 48px;
        height: 48px;
        min-width: 48px;
    }/* Иконка внутри action-icon - 75% от desktop (32px * 0.75 = 24px) */.action-icon img, .action-icon i
{
        width: 24px;
        height: 24px;
    }/* ═══════════════════════════════════════════════════════════════════════════
     * БЛОК ПРИГЛАШЕНИЯ - МОБИЛЬНАЯ ВЕРСИЯ
     * ═══════════════════════════════════════════════════════════════════════════
     * На мобильных: 1 кнопка = 1 строка (архитектура проекта)
     */.invitation-buttons-container
{
        flex-direction: column;
        align-items: stretch;
    }}

/* Иконки - очень маленькие экраны (≤480px)
     * Минимальные размеры для очень маленьких экранов
     */.gender-icon
{
        width: 22px;
        height: 22px;
    }.payment-icon, .login-pass-icon
{
        width: 22px;
        height: 22px;
    }.payment-link, .login-pass-link
{
        padding: var(--space-1);
        min-width: 40px;
        min-height: 40px;
    }.student-actions-mobile
{
        gap: var(--space-1);
        margin-top: var(--space-1);
    }.student-status-mobile
{
        font-size: var(--text-sm);
    }.payment-link-mobile, .login-pass-link-mobile
{
        padding: var(--space-1);
        min-width: 40px;
        min-height: 40px;
    }.credentials-modal__dialog
{
        width: calc(100% - var(--space-4));
        max-width: 100%;
        padding: var(--space-4);
        border-radius: var(--radius-md);
    }.credentials-modal__close
{
        width: 32px;
        height: 32px;
        top: var(--space-1);
        right: var(--space-1);
        font-size: var(--text-base);
    }.credentials-modal__title
{
        font-size: var(--text-base);
        padding-right: var(--space-6);
    }.credentials-modal__value
{
        font-size: var(--text-xs);
        padding: var(--space-1) var(--space-2);
    }.student-item
{
        padding: var(--space-sm) var(--space-3);
        margin: var(--space-1) 0;
        font-size: calc(var(--text-base) * 0.75); /* 12px = 16px * 0.75 */
    }.exam-student-item
{
        padding: var(--space-sm) var(--space-3);
        margin: 0;
        flex-wrap: wrap;
        gap: var(--space-2);
    }.exam-student-item-spacing
{
        width: calc(var(--space-10) - var(--space-1));
    }.exam-student-text
{
        font-size: calc(var(--text-base) * 0.6875); /* 11px = 16px * 0.6875 */
        margin-top: var(--space-1);
        line-height: 1.4;
    }.exam-student-warning
{
        font-size: calc(var(--text-base) * 0.6875);
    }.exam-student-text-dark
{
        font-size: calc(var(--text-base) * 0.6875);
    }.exam-separator
{
        margin: 0 var(--space-1);
    }/* Расчет: padding 10px * 2 = 20px, высота контента ~45px, gap 8px * 4 = 32px *//* Для 5 элементов: (10px + 45px + 10px) * 5 + 32px = 65px * 5 + 32px = 357px */.exam-student-list
{
        max-height: 357px;
    }.exam-student-list::-webkit-scrollbar
{
        width: 6px;
    }.exam-student-list::-webkit-scrollbar-track
{
        background: var(--bg-secondary);
        border-radius: var(--radius-sm);
    }.exam-student-list::-webkit-scrollbar-thumb
{
        background: var(--text-muted);
        border-radius: var(--radius-sm);
    }.exam-student-list::-webkit-scrollbar-thumb:hover
{
        background: var(--text-medium);
    }.student-search-filters
{
        padding: var(--space-sm) var(--space-3);
    }.student-search-filter-group
{
        min-width: 100%;
    }.student-search-results-header
{
        padding: var(--space-sm) var(--space-3);
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-xs);
    }.student-search-results-count
{
        font-size: calc(var(--text-base) * 0.75);
    }.student-search-results-total
{
        font-size: calc(var(--text-base) * 0.6875);
    }/* 
     * Mobile-small: Математический расчет высоты для 5 студентов
     * Один элемент: padding top (8px) + строка имени (12px * 1.5 = 18px) + margin (4px) + строка деталей (12px * 1.5 = 18px) + padding bottom (8px) = 56px
     * 4 обычных элемента: 56px * 4 = 224px
     * 1 последний элемент: padding bottom (4px вместо 8px) = 52px
     * Границы: 4px
     * Итого: 224px + 52px + 4px = 280px
     */.student-search-results-list
{
        height: calc(
            (var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-sm)) * 4 + (var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs)) + 4px );
        min-height: calc(
            (var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-sm)) * 4 +
            (var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs)) +
            4px
        );
        max-height: calc(
            (var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-sm)) * 4 +
            (var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-xs)) +
            4px
        );
        padding-right: calc(var(--space-10) + var(--space-1));
    }.student-search-results-header
{
        height: calc(var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-sm));
        min-height: calc(var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-sm));
        max-height: calc(var(--space-sm) + calc(var(--text-base) * 0.75) * 1.5 + var(--space-sm));
    }.student-search-item
{
        padding: var(--space-sm) var(--space-3);
    }.student-search-item-name
{
        font-size: calc(var(--text-base) * 0.75);
    }.student-search-item-details-row
{
        font-size: calc(var(--text-base) * 0.75);
        gap: var(--space-xs);
        flex-wrap: wrap;
    }.student-search-item-university, .student-search-item-level, .student-search-item-specialty
{
        font-size: calc(var(--text-base) * 0.75);
    }.student-search-scroll-buttons
{
        right: var(--space-xs);
        gap: var(--space-xs);
    }.addMoreFiles
{
        width: 100%;
        padding: var(--space-2) var(--space-3);
        font-size: var(--text-sm);
        min-height: calc(var(--space-8) + var(--space-2));
    }.admin-curators-container
{ /* Формула: minmax(calc((100% - (gap * 4)) / 5), 1fr) */ grid-template-columns: repeat(auto-fill, minmax(max(calc((100% - (var(--space-2) * 4)) / 5), 120px), 1fr));
        gap: var(--space-2);
    }.exam-item
{
        padding: var(--space-2);
        margin-bottom: var(--space-2);
    }.exam-name
{
        font-size: var(--text-xs);
        margin-bottom: var(--space-1);
    }.exam-details
{
        font-size: calc(var(--text-xs) * 0.875);
    }.exam-limit-info-success, .exam-limit-info-warning
{
        padding: var(--space-2);
    }.nav-icon
{
        width: calc(var(--space-7) * 1);
        height: calc(var(--space-7) * 1);
    }.navigation-actions
{
        flex-direction: column;
        gap: var(--space-2);
    }.semester-block
{
        padding: var(--space-3);
    }.semester-header
{
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-2);
    }.semester-title
{
        font-size: var(--text-base);
    }.academic-year
{
        align-self: flex-start;
        font-size: var(--text-sm);
    }.semester-fields
{
        grid-template-columns: 1fr;
        gap: var(--space-3);
    }.semester-field
{
        display: flex;
        flex-direction: column;
        gap: var(--space-2);
    }.semester-value
{
        font-size: var(--text-xs);
        color: var(--text-base);
    }.receipt-actions
{
        display: flex;
        flex-direction: column;
        gap: var(--space-2);
        margin-top: var(--space-3);
    }.signature-image
{
        width: 180px;
        max-height: 90px; /* Пропорциональное уменьшение (120px * 0.75) */
    }.translation-selection-block
{
        flex-wrap: wrap;
        padding: 7px 10px;
        gap: 7px;
    }.translation-quantity
{
        width: 55px;
        padding: 5px 8px;
        font-size: 13px;
    }.translation-block
{
        padding: 7px;
        margin: 12px 0;
    }.translation-session-message
{
        padding: 12px 16px;
        font-size: var(--text-sm);
        margin: 14px 0;
    }.translation-statistics
{
        padding: 16px;
        margin: 14px 0;
    }.translation-statistics h4
{
        font-size: 1.1em;
        margin-bottom: 16px;
    }.translation-statistics h5
{
        font-size: 1em;
    }.translation-section-title, .translation-section-title-success, .translation-section-title-danger
{
        font-size: 1em;
    }.translation-success-box, .translation-danger-box, .translation-partial-box
{
        padding: 12px;
        margin-top: 10px;
    }.exam-limit-info-success, .exam-limit-info-warning
{
        padding: var(--space-2);
    }.invitation-block
{
        padding: var(--space-2);
    }.invitation-buttons-container
{
        flex-direction: column;
        gap: var(--space-2);
    }.student-actions-container
{
        display: flex;
        flex-direction: column;
        gap: var(--space-2);
    }/* Иконка действия - 3D круглый стиль - 63% от desktop (64px * 0.63 = 40px) */.action-icon
{
        width: 40px;
        height: 40px;
        min-width: 40px;
    }/* Иконка внутри action-icon - 63% от desktop (32px * 0.63 = 20px) */.action-icon img, .action-icon i
{
        width: 20px;
        height: 20px;
    }/* ═══════════════════════════════════════════════════════════════════════════
     * БЛОК ПРИГЛАШЕНИЯ - МАЛЕНЬКИЕ МОБИЛЬНЫЕ УСТРОЙСТВА
     * ═══════════════════════════════════════════════════════════════════════════
     * На маленьких мобильных: 1 кнопка = 1 строка (архитектура проекта)
     * Дополнительные уменьшения отступов для экономии пространства
     */.invitation-buttons-container
{
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-1, 4px);
    }.invitation-block
{
        padding: var(--space-3, 12px);
    }}

/* ═══════════════════════════════════════════════════════════════════════════════
 * ВЕРТИКАЛЬНАЯ ТАБЛИЦА ДЛЯ .tbl--smart-cells НА МАЛЕНЬКОМ МОБИЛЬНОМ
 * ═══════════════════════════════════════════════════════════════════════════════ */
/* === css_split_uni.py append @ 2026-04-03 10:26:47 === *//* PDF viewer: view_book.php, view_material.php */

#pdf-container
{
    position: relative;
    text-align: center;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 8px 12px;
}.book-canvas-wrap
{
    position: relative;
}.book-canvas, #pdf-canvas, #pdfCanvas
{
    display: block;
    margin: 0 auto;
    width: 100%;
    height: auto;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    border-radius: 6px;
}.book-nav-bottom
{
    text-align: center;
    margin-top: 10px;
    display: flex;
    gap: 8px;
    justify-content: center;
}/* Студенческий портал: классы из student/*.php без Bootstrap */
.btn-refresh-schedule
{
    display: inline-flex;
    align-items: center;
    gap: var(--main-space-xs);
    padding: var(--main-space-sm) var(--main-space-md-plus);
    border-radius: var(--main-radius-sm, 8px);
    background: var(--main-primary, #2792ae);
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    transition: opacity 0.2s ease, transform 0.2s ease;
}.btn-refresh-schedule:hover
{
    color: #fff;
    opacity: 0.92;
    transform: translateY(-1px);
}.monday-schedule-reminder
{
    background-color: #e3f2fd;
    border-left: 4px solid #2196f3;
    padding: var(--main-space-md-plus);
    margin: var(--main-space-md) 0;
    border-radius: var(--main-radius-sm, 4px);
}.schedule-sync-buttons
{
    margin: var(--main-space-md) 0;
    display: block;
    overflow-x: visible;
}.schedule-sync-buttons.student-table-container
{
    overflow-x: visible;
}.schedule-sync-buttons > p
{
    margin: var(--main-space-md) 0 0;
}.schedule-sync-buttons [data-student-schedule-google-message="1"]
{
    width: 100%;
}.schedule-sync-buttons [data-student-schedule-google-content="1"]
{
    display: block;
    width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}.action-link
{
    color: var(--main-primary, #2792ae);
    font-weight: 600;
    text-decoration: underline;
}.action-link:hover
{
    color: var(--main-success, #10b981);
}.new-order-container
{
    margin: var(--main-space-lg) 0;
    padding: var(--main-space-md);
    border-radius: var(--main-radius-md, 12px);
    background: var(--bg-primary, #fff);
    border: 1px solid #e5e7eb;
}.order-info-message
{
    padding: var(--main-space-lg);
    background: #f5f5f5;
    border-radius: var(--main-radius-sm, 5px);
    margin: var(--main-space-lg) 0;
}.report-button
{
    display: inline-block;
    width: 100%;
    max-width: 400px;
    padding: var(--main-space-md-plus) var(--main-space-xxl, 25px);
    border: none;
    border-radius: var(--main-radius-md, 12px);
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    background: linear-gradient(135deg, var(--student-primary, #10b981) 0%, var(--student-primary-dark, #059669) 100%);
    color: #fff;
    box-shadow: var(--student-shadow-md, 0 4px 6px rgba(0, 0, 0, 0.1));
    transition: var(--student-transition, all 0.3s ease);
}.report-button:hover
{
    transform: translateY(-2px);
    box-shadow: var(--student-shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.1));
}.portmone-pay-btn-test
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 320px;
    max-width: 100%;
    height: 48px;
    padding: 0 16px;
    font-size: 14px;
    font-weight: 600;
    color: #ffffff;
    background-color: #ee3030;
    border-radius: 25px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    margin-top: 12px;
}.portmone-pay-btn-test:hover
{
    filter: brightness(0.95);
    color: #ffffff;
}.portmone-pay-btn-test--disabled
{
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}/* === css_split_uni.py append @ 2026-04-03 10:27:32 === *//* Мобильная версия таблицы платежей скрыта по умолчанию */.student-payments-mobile
{
    display: none;
}/* Мобильная версия таблицы библиотеки скрыта по умолчанию */.student-library-mobile
{
    display: none;
}/* Мобильная версия таблицы контактных данных скрыта по умолчанию */.student-contact-mobile
{
    display: none;
}/* ===== БЛОК ИНФОРМАЦИИ О СТУДЕНТЕ (Ф.И.О., Университет, Форма обучения) ===== *//* Специальные классы для блока с информацией о студенте */.student-info-container
{
    width: 100%;
    max-width: 100%;
    margin: var(--main-space-lg) 0;
    background: linear-gradient(165deg, #ffffff 0%, #f8fafc 42%, #f1f5f9 100%);
    padding: clamp(0.85rem, 2.2vw, 1.35rem) clamp(1rem, 3vw, 1.6rem);
    border-radius: 16px;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.92) inset,
        0 4px 28px rgba(15, 23, 42, 0.07),
        0 0 0 1px rgba(148, 163, 184, 0.38);
    box-sizing: border-box;
    overflow-x: auto;
    border: 1px solid rgba(226, 232, 240, 0.95);
    position: relative;
    transition: var(--student-transition);
    color: #0f172a !important;
}.student-documents-container
{
    width: 100%;
    max-width: 100%;
    margin: var(--student-space-xxl) 0 0;
    box-sizing: border-box;
    overflow-x: hidden;
}[hidden]
{
    display: none !important;
}#student-documents-portal-root
{
    font-family: Arial, Helvetica, sans-serif;
}#student-documents-portal-root :is(button, input, select, textarea, table, th, td, a, label, p, h2, h3, h4, span)
{
    font-family: inherit;
}#student-nostrification-root
{
    display: grid;
    gap: 1rem;
    width: 100%;
    /* Как sessions/schedule/documents: полная ширина внутри .container — без max-width, иначе ломается student-info-container */
    font-family: Arial, Helvetica, sans-serif;
}#student-nostrification-root :is(button, input, select, textarea, a, label, p, h2, h3, h4, span)
{
    font-family: inherit;
}#student-nostrification-root #pageHeader
{
    margin-bottom: 0;
}#student-nostrification-root .student-notification--soft
{
    margin: 0;
    background: #eff6ff;
    color: #1d4ed8 !important;
    border: 1px solid #bfdbfe;
    box-shadow: none;
}#student-nostrification-root .student-nostrification-card__header
{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}#student-nostrification-root .student-nostrification-grid
{
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    margin-bottom: 1rem;
}#student-nostrification-root .student-nostrification-meta
{
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.9rem 1rem;
    background: linear-gradient(135deg, #f8fbff 0%, #f1f5f9 100%);
    border: 1px solid #dbeafe;
    border-radius: 12px;
}#student-nostrification-root .student-nostrification-meta__label
{
    font-size: 0.76rem;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}#student-nostrification-root .student-nostrification-meta__value
{
    font-size: 1rem;
    line-height: 1.4;
    font-weight: 700;
    color: #0f172a;
    word-break: break-word;
}#student-nostrification-root .student-nostrification-links
{
    display: grid;
    gap: 0.75rem;
}#student-nostrification-root .student-nostrification-links p
{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin: 0;
}#student-nostrification-root .student-nostrification-actions
{
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
}#student-nostrification-root .student-nostrification-empty__text
{
    max-width: 42rem;
}#student-nostrification-root [data-student-nostrification-status]
{
    margin-bottom: 0;
}#student-documents-portal-root #pageHeader
{
    margin-bottom: var(--student-space-xl);
}#student-documents-portal-root #pageHeader h2
{
    margin-bottom: var(--student-space-sm);
}#student-documents-portal-root .student-documents-toolbar
{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0 !important;
}#student-documents-portal-root #ordersSection > h2
{
    margin: 0 0 var(--student-space-md);
}#student-documents-portal-root .student-document-type-badge,
#student-documents-portal-root .student-document-type-link
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    border: 1px solid #cbd5e1;
    background: #f8fafc;
    color: #0f172a !important;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none !important;
    text-align: left;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
    white-space: normal;
    word-break: break-word;
}.student-document-type-link
{
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}.student-document-type-link:hover,
.student-document-type-link:focus-visible
{
    text-decoration: none !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.12);
}#student-documents-portal-root .student-document-type-badge--status,
#student-documents-portal-root .student-document-type-link.student-document-type-badge--status
{
    background: #eff6ff;
    border-color: #93c5fd;
    color: #1d4ed8 !important;
}#student-documents-portal-root .student-document-type-badge--apostille,
#student-documents-portal-root .student-document-type-link.student-document-type-badge--apostille
{
    background: #faf5ff;
    border-color: #d8b4fe;
    color: #7c3aed !important;
}#student-documents-portal-root .student-document-type-badge--nostrification,
#student-documents-portal-root .student-document-type-link.student-document-type-badge--nostrification
{
    background: #ecfeff;
    border-color: #67e8f9;
    color: #0f766e !important;
}#student-documents-portal-root .student-document-type-badge--academic,
#student-documents-portal-root .student-document-type-link.student-document-type-badge--academic
{
    background: #fefce8;
    border-color: #fde68a;
    color: #a16207 !important;
}#student-documents-portal-root .student-document-type-badge--archive,
#student-documents-portal-root .student-document-type-link.student-document-type-badge--archive
{
    background: #fff7ed;
    border-color: #fdba74;
    color: #c2410c !important;
}#student-documents-portal-root .student-document-type-badge--study-period,
#student-documents-portal-root .student-document-type-link.student-document-type-badge--study-period
{
    background: #f0fdf4;
    border-color: #86efac;
    color: #15803d !important;
}#student-documents-portal-root .student-document-type-badge--default,
#student-documents-portal-root .student-document-type-link.student-document-type-badge--default
{
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155 !important;
}#student-documents-portal-root .student-delivery-type-badge,
#student-documents-portal-root .student-total-price-badge
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    border: 1px solid #cbd5e1;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: left;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}
#student-documents-portal-root .student-delivery-type-badge
{
    background: #fff7ed;
    border-color: #fdba74;
    color: #9a3412 !important;
    white-space: normal;
    word-break: break-word;
}
#student-documents-portal-root .student-total-price-badge
{
    background: #ecfdf5;
    border-color: #86efac;
    color: #047857 !important;
    white-space: nowrap;
}
#student-documents-portal-root .student-total-price-badge .copy-target
{
    color: inherit !important;
}
#student-documents-portal-root .student-document-actions
{
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
}#student-documents-portal-root .student-document-actions .student-btn-view,
#student-documents-portal-root .student-document-actions .student-btn-download
{
    min-height: 40px;
    padding: 0.55rem 0.9rem;
    font-size: 0.84rem;
    border-radius: var(--student-radius-sm);
}#student-documents-portal-root .student-document-actions .student-btn-view
{
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.18);
}#student-documents-portal-root .student-document-actions .student-btn-download
{
    width: auto;
    height: auto;
    min-width: 0;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.18);
}#student-documents-portal-root .student-document-actions--stacked
{
    align-items: flex-start;
    gap: 0.45rem;
}#student-documents-portal-root .student-document-actions--stacked .student-text-muted
{
    color: #6b7280 !important;
    font-style: normal;
    line-height: 1.4;
}@media (max-width: 768px)
{
    #student-documents-portal-root .student-document-actions .student-btn-view,
    #student-documents-portal-root .student-document-actions .student-btn-download
    {
        width: 40px;
        min-width: 40px;
        height: 40px;
        padding: 0;
    }

    #student-documents-portal-root .student-document-actions .student-btn__text
    {
        display: none;
    }
}.student-status-waiting-payment,
.student-status-verifying-payment
{
    background: #fff7ed;
    color: #c2410c !important;
    border: 1px solid #fdba74;
}.student-status-created,
.student-status-processing
{
    background: #eff6ff;
    color: #1d4ed8 !important;
    border: 1px solid #93c5fd;
}.student-status-paid,
.student-status-completed,
.student-status-collected
{
    background: #ecfdf5;
    color: #047857 !important;
    border: 1px solid #86efac;
}.student-status-sent,
.student-status-shipped,
.student-status-delivered
{
    background: #f0f9ff;
    color: #0369a1 !important;
    border: 1px solid #7dd3fc;
}.student-status-cancelled,
.student-status-failed
{
    background: #fef2f2;
    color: #b91c1c !important;
    border: 1px solid #fca5a5;
}/* ===== КНОПКИ ДЛЯ ДОКУМЕНТОВ ===== */.student-document-actions
{
    display: flex;
    align-items: center;
    gap: var(--student-space-sm);
    flex-wrap: wrap;
}.receipt-missing-indicator__icons
{
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    color: var(--student-text-muted, #6b7280);
    font-size: 0.875rem;
    line-height: 1;
    vertical-align: middle;
}.receipt-missing-indicator__icons .fa-times-circle
{
    font-size: 0.88em;
}/* ===== СТУДЕНТСКИЕ УВЕДОМЛЕНИЯ - МОДЕРН 2025 ===== */.student-notification, .student-success, .student-warning, .student-error
{
    width: 100%;
    max-width: 100%;
    margin: var(--main-space-lg) 0;
    padding: var(--main-space-lg);
    border-radius: var(--main-space-sm);
    box-sizing: border-box;
    overflow-x: hidden;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.6;
    display: flex;
    align-items: center;
    gap: var(--student-space-md-plus);
    border: 2px solid;
    position: relative;
    animation: slideInRight 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}/* Успешные сообщения - зеленые */.student-success
{
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(16, 185, 129, 0.1));
    border-color: var(--student-success);
    color: #065f46;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.2), var(--student-shadow-md);
}.student-success i
{
    color: var(--student-success);
    filter: drop-shadow(0 2px 4px rgba(16, 185, 129, 0.3));
}.student-success::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--student-success);
    box-shadow: 0 0 10px rgba(16, 185, 129, 0.5);
}/* Предупреждения - оранжевые */.student-warning
{
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(245, 158, 11, 0.1));
    border-color: var(--student-warning);
    color: #92400e;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.2), var(--student-shadow-md);
}.student-warning i
{
    color: var(--student-warning);
    filter: drop-shadow(0 2px 4px rgba(245, 158, 11, 0.3));
}.student-warning::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--student-warning);
    box-shadow: 0 0 10px rgba(245, 158, 11, 0.5);
}/* Ошибки и долги - красные (как таблица) - переопределение стилей */.student-error
{
    width: 100% !important;
    max-width: 100% !important;
    margin: var(--main-space-lg) 0 !important;
    padding: var(--main-space-lg) !important;
    border-radius: var(--main-space-sm) !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    background: linear-gradient(135deg, #fee2e2 0%, #fecaca 50%, #fca5a5 100%) !important;
    border: 3px solid var(--student-error) !important;
    color: #7f1d1d !important;
    font-weight: 700;
    font-size: 1.0625rem;
    box-shadow: 0 4px 20px rgba(239, 68, 68, 0.4), var(--student-shadow-lg), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
    position: relative;
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
    display: flex !important;
    align-items: center;
    gap: var(--student-space-md-plus);
}.student-error::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 8px;
    height: 100%;
    background: linear-gradient(180deg, var(--student-error), #dc2626, #b91c1c);
    box-shadow: 0 0 20px rgba(239, 68, 68, 0.7), inset 0 0 10px rgba(255, 255, 255, 0.1);
    border-radius: var(--student-radius-sm) 0 0 var(--student-radius-sm);
}.student-error::after
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: repeating-linear-gradient(
        45deg,
        transparent,
        transparent 12px,
        rgba(239, 68, 68, 0.08) 12px,
        rgba(239, 68, 68, 0.08) 24px
    );
    pointer-events: none;
}.student-notification[hidden],
.student-success[hidden],
.student-warning[hidden],
.student-error[hidden]
{
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    animation: none !important;
}
    border-radius: var(--student-radius-md);
    opacity: 0.6;
}.student-status-details
{
    display: block !important;
    line-height: 1.65;
}.student-status-details strong
{
    color: inherit;
}.student-status-details__comment
{
    margin-top: 0.5rem;
}.student-error i
{
    color: var(--student-error);
    filter: drop-shadow(0 2px 4px rgba(239, 68, 68, 0.3));
    font-size: 1.25rem;
}.student-debt-alert-link
{
    text-decoration: none !important;
    cursor: pointer;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    color: inherit !important;
}.student-debt-alert-link:hover
{
    text-decoration: none !important;
    color: inherit !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 24px rgba(239, 68, 68, 0.45), var(--student-shadow-lg), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}.student-debt-alert-link__text
{
    min-width: 0;
    flex: 1 1 240px;
}.student-debt-alert-link__hint
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    margin-left: auto;
    padding: 0.45rem 0.8rem;
    white-space: nowrap;
    font-size: 0.95em;
    font-weight: 700;
    color: inherit;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}.student-debt-alert-link:hover .student-debt-alert-link__hint,
.student-debt-alert-link:focus-visible .student-debt-alert-link__hint
{
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.65);
}.student-debt-alert-link__hint i
{
    font-size: 0.95em;
    color: inherit;
    filter: none;
}@media (max-width: 768px)
{
    .student-debt-alert-link
    {
        align-items: stretch;
    }

    .student-debt-alert-link__text
    {
        flex-basis: 100%;
    }

    .student-debt-alert-link__hint
    {
        width: 100%;
        margin-left: 0;
    }
}/* Информационные сообщения - синие */.student-notification
{
    background: linear-gradient(135deg, rgba(6, 182, 212, 0.15), rgba(6, 182, 212, 0.1));
    border-color: var(--student-info);
    color: #164e63;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(6, 182, 212, 0.2), var(--student-shadow-md);
}.student-notification i
{
    color: var(--student-info);
    filter: drop-shadow(0 2px 4px rgba(6, 182, 212, 0.3));
}.student-notification::before
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--student-info);
    box-shadow: 0 0 10px rgba(6, 182, 212, 0.5);
}/* ===== СТУДЕНТСКИЕ ЭЛЕМЕНТЫ ПРОФИЛЯ ===== *//* ===== СТУДЕНТСКИЕ ФОРМАТЫ ДАТЫ ===== */.student-format-date
{
    font-family: "SF Mono", "Monaco", "Cascadia Code", "Roboto Mono", monospace;
    background: #f3f4f6;
    padding: 4px 10px;
    border-radius: var(--student-radius-sm);
    font-size: 0.875rem;
    color: #000000 !important;
    font-weight: 600;
    border: 1px solid #e5e7eb;
    display: inline-block;
}/* ===== СТУДЕНТСКИЕ УТИЛИТЫ ===== */.student-text-nowrap
{
    white-space: nowrap;
}.student-debt-amount
{
    color: var(--danger-dark) !important;
    font-weight: 500;
}/* ===== СТУДЕНТСКИЕ ОТОБРАЖЕНИЯ ВРЕМЕНИ ===== */.student-time-display
{
    background: linear-gradient(135deg, var(--student-secondary) 0%, #2563eb 100%);
    color: white;
    padding: 16px 24px;
    border-radius: var(--student-radius-lg);
    text-align: center;
    font-weight: 700;
    font-size: 1.125rem;
    margin: 20px 0;
    box-shadow: var(--student-shadow-lg);
    position: relative;
    overflow: hidden;
    letter-spacing: 0.02em;
}.student-time-display::before
{
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    animation: shimmer 3s infinite;
}/* ===== СТУДЕНТСКИЕ ТАБЛИЦЫ УРОКОВ ===== *//* 
 * Математический расчет: используем 100% ширины контейнера
 * max-width: 100% = 720px от доступных 720px
 */.student-lesson
{
    width: 100%;
    max-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--student-white);
    border-radius: var(--student-radius-md);
    overflow: hidden;
    overflow-x: auto;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    margin: var(--student-space-lg) 0;
    border: 1px solid #e5e7eb;
    box-sizing: border-box;
}/* ===== СТИЛИ ДЛЯ СТАТУСОВ ЗАКАЗОВ ===== */.student-order-status
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: 5px 12px;
    border-radius: var(--student-radius-full);
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0.02em;
    line-height: 1.25;
    white-space: normal;
    word-break: break-word;
    text-align: center;
}.student-text-muted
{
    color: #9ca3af !important;
    font-style: italic;
}/* Улучшенные стили для контейнера заказов */.student-order-container
{
    margin-bottom: var(--student-space-xl);
}.student-order-container h3
{
    margin-bottom: var(--student-space-lg);
    color: #000000 !important;
}/* Статусы занятий *//* Занятие уже прошло - красный фон */.lesson-ended
{
    background-color: #fee2e2 !important;
    background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%) !important;
    color: #7f1d1d !important;
    font-weight: 700;
    padding: 10px 14px;
    border-radius: var(--student-radius-sm);
    border: 2px solid #ef4444 !important;
    text-align: center;
    box-shadow: 0 2px 4px rgba(239, 68, 68, 0.2);
}.lesson-ended span
{
    color: #7f1d1d !important;
    font-weight: 700;
}/* Занятие идет сейчас - синий фон */.lesson-during
{
    background-color: #dbeafe !important;
    background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%) !important;
    color: #1e3a8a !important;
    font-weight: 700;
    padding: 10px 14px;
    border-radius: var(--student-radius-sm);
    border: 2px solid #3b82f6 !important;
    text-align: center;
    box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);
    animation: pulse-blue 2s ease-in-out infinite;
}.lesson-during span
{
    color: #1e3a8a !important;
    font-weight: 700;
}/* Осталось времени до занятия - лимонный (желтый) фон */.lesson-time-left
{
    background-color: #fef9c3 !important;
    background: linear-gradient(135deg, #fef9c3 0%, #fef08a 100%) !important;
    color: #78350f !important;
    font-weight: 700;
    padding: 10px 14px;
    border-radius: var(--student-radius-sm);
    border: 2px solid #eab308 !important;
    text-align: center;
    box-shadow: 0 2px 4px rgba(234, 179, 8, 0.3);
}.lesson-time-left span
{
    color: #78350f !important;
    font-weight: 700;
}/* Предупреждение о подключении */.lesson-warning
{
    background-color: #fef3c7 !important;
    border: 2px solid var(--student-warning) !important;
    border-radius: var(--student-radius-md);
    padding: var(--student-space-lg);
    margin: var(--student-space-md) 0;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.2);
}.lesson-warning-header
{
    display: flex;
    align-items: center;
    gap: var(--student-space-sm);
    margin-bottom: var(--student-space-sm);
}.lesson-warning-icon
{
    font-size: 1.25rem;
    color: var(--student-warning) !important;
}.lesson-warning-title
{
    color: #92400e !important;
    font-weight: 700;
    font-size: 1rem;
}.lesson-warning-text
{
    color: #78350f !important;
    font-size: 0.9375rem;
    line-height: 1.6;
}/* === css_split_uni.py append @ 2026-04-03 10:32:12 === *//* ===== БЛОК ИНФОРМАЦИИ О СТУДЕНТЕ (Ф.И.О., Университет, Форма обучения) ===== *//* Специальные классы для блока с информацией о студенте *//* ===== КНОПКИ ДЛЯ ДОКУМЕНТОВ ===== *//* ===== СТУДЕНТСКИЕ УВЕДОМЛЕНИЯ - МОДЕРН 2025 ===== *//* Успешные сообщения - зеленые *//* Предупреждения - оранжевые *//* Ошибки и долги - красные (как таблица) - переопределение стилей *//* Информационные сообщения - синие *//* ===== СТУДЕНТСКИЕ ЭЛЕМЕНТЫ ПРОФИЛЯ ===== *//* ===== СТУДЕНТСКИЕ ФОРМАТЫ ДАТЫ ===== *//* ===== СТУДЕНТСКИЕ ЭЛЕМЕНТЫ ДЛЯ КОПИРОВАНИЯ ===== *//* ===== СТУДЕНТСКИЕ ОТОБРАЖЕНИЯ ВРЕМЕНИ ===== *//* ===== СТУДЕНТСКИЕ ТАБЛИЦЫ УРОКОВ ===== *//* 
 * Математический расчет: используем 100% ширины контейнера
 * max-width: 100% = 720px от доступных 720px
 *//* Статусы занятий *//* Занятие уже прошло - красный фон *//* Занятие идет сейчас - синий фон *//* Осталось времени до занятия - лимонный (желтый) фон *//* Предупреждение о подключении *//* === css_split_uni.py append @ 2026-04-03 10:39:40 === *//* ==============================================
   ДОПОЛНИТЕЛЬНЫЕ СТИЛИ ДЛЯ ПЛАТЕЖНОЙ СИСТЕМЫ
   Проект: Study in Ukraine
   Автор: Ostwind by Dr.FC
   Дополняют *-uni (гость/портал)
   ============================================== *//* 💰 Специфичные стили для платежной системы */.payment-page-header
{
    color: #2792ae;
    border-bottom: 2px solid #e9ecef;
    padding-bottom: 15px;
    margin-bottom: 25px;
}.debt-amount-display
{
    font-size: 28px;
    font-weight: 700;
    color: #dc3545;
    text-align: center;
    margin: 15px 0;
    font-family: "-apple-system", BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}.debt-amount-display .currency-symbol
{
    font-size: 20px;
    opacity: 0.8;
    margin-left: 5px;
}/* 🎛️ Переключатели способов оплаты */.payment-option
{
    position: relative;
    border: 2px solid #e9ecef;
    border-radius: 10px;
    overflow: hidden;
    transition: all 0.3s ease;
    cursor: pointer;
    background: white;
}.payment-option:hover
{
    border-color: #2792ae;
    box-shadow: 0 3px 10px rgba(39, 146, 174, 0.15);
    transform: translateY(-2px);
}/* 🔒 Индикаторы безопасности *//* 📱 Виджет интеграции для my_payments.php */.payment-integration-widget
{
    margin: 25px 0;
    animation: slideUp 0.8s ease;
}.debt-showcase
{
    text-align: center;
    margin-bottom: 20px;
}.debt-amount-large
{
    font-size: 30px;
    font-weight: 700;
    margin-bottom: 5px;
    font-family: "-apple-system", BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}.debt-amount-large .currency-tag
{
    font-size: 18px;
    opacity: 0.8;
    margin-left: 6px;
}.payment-methods-mini
{
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 20px;
}.method-preview
{
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(255,255,255,0.15);
    border-radius: 6px;
    font-size: 13px;
    transition: all 0.3s ease;
}.method-preview:hover
{
    background: rgba(255,255,255,0.25);
    transform: scale(1.05);
}.method-preview i
{
    font-size: 16px;
}.payment-pending-notice
{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    background: rgba(255, 193, 7, 0.15);
    border: 1px solid rgba(255, 193, 7, 0.3);
    border-radius: 6px;
    margin-bottom: 12px;
    font-size: 13px;
}.security-footer
{
    text-align: center;
    opacity: 0.8;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}/* 📊 История платежей - мини версия */.payment-history-mini
{
    margin-top: 20px;
    background: var(--bg-surface);
    border-radius: 8px;
    padding: 15px;
    border: 1px solid #e9ecef;
}.payment-history-title
{
    margin: 0 0 12px 0;
    color: #2792ae;
    font-size: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}.payment-history-list
{
    display: flex;
    flex-direction: column;
    gap: 8px;
}.payment-history-item
{
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: white;
    border-radius: 6px;
    border: 1px solid #e9ecef;
    transition: all 0.2s ease;
    font-size: 13px;
}.payment-history-item:hover
{
    border-color: #2792ae;
    box-shadow: 0 2px 6px rgba(39, 146, 174, 0.1);
    transform: translateX(3px);
}.payment-mini-info
{
    display: flex;
    flex-direction: column;
    gap: 2px;
}.payment-mini-date
{
    color: #6c757d;
    font-size: 11px;
}.payment-mini-amount
{
    font-weight: 600;
    color: #28a745;
    font-size: 13px;
}.payment-mini-method
{
    font-size: 14px;
    color: #6c757d;
}.payment-history-footer
{
    text-align: center;
    padding-top: 10px;
    border-top: 1px solid #e9ecef;
    margin-top: 10px;
}.view-all-payments-link
{
    color: #2792ae;
    text-decoration: none;
    font-weight: 500;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: all 0.2s ease;
}.view-all-payments-link:hover
{
    color: #1a6d8a;
    text-decoration: none;
    transform: translateX(2px);
}/* ✨ Дополнительные анимации */.payment-loading
{
    position: relative;
}.payment-loading::after
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: inherit;
}.payment-spinner
{
    width: 20px;
    height: 20px;
    border: 2px solid #f3f3f3;
    border-top: 2px solid #2792ae;
    border-radius: 50%;
    animation: paymentSpin 1s linear infinite;
}/* 🎯 Статусы и состояния */.payment-success-state
{
    border-color: #28a745 !important;
    background: linear-gradient(135deg, #f0fff4 0%, #e6fffa 100%) !important;
}.payment-error-state
{
    border-color: #dc3545 !important;
    background: linear-gradient(135deg, #fff5f5 0%, #fee2e2 100%) !important;
}/* 🎉 Страницы результатов платежей */.payment-success-container
{
    max-width: 600px;
    margin: 30px auto;
    padding: 0 15px;
}.payment-result-icon
{
    font-size: 80px;
    margin-bottom: 20px;
    animation: resultIconPulse 0.8s ease-in-out;
}.success-icon
{
    color: #28a745;
}.error-icon
{
    color: #dc3545;
}.payment-result-title
{
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 15px;
}.payment-result-message
{
    color: #6c757d;
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 30px;
}.payment-detail-row
{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e9ecef;
}.payment-detail-row:last-child
{
    border-bottom: none;
}.payment-status-success
{
    font-weight: 600;
    color: #28a745;
}.detail-value
{
    font-weight: 600;
    color: #212529;
}.copyable-value
{
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 3px 6px;
    border-radius: 4px;
}.copyable-value:hover
{
    background: var(--bg-surface);
    color: #2792ae;
}.copyable-value.copied
{
    background: #28a745;
    color: white;
}.payment-result-actions
{
    display: flex;
    gap: 15px;
    justify-content: center;
    margin: 30px 0;
    flex-wrap: wrap;
}.payment-success-note
{
    background: linear-gradient(135deg, #e8f5e8 0%, #d4edda 100%);
    border: 1px solid #c3e6cb;
    border-radius: 8px;
    padding: 20px;
    margin-top: 30px;
    color: #155724;
    font-size: 14px;
    line-height: 1.5;
}.payment-redirect-timer
{
    background: var(--bg-surface);
    border: 1px solid #e9ecef;
    border-radius: 6px;
    padding: 12px;
    margin-top: 20px;
    font-size: 14px;
    color: #6c757d;
}.countdown-number
{
    font-weight: 600;
    color: #2792ae;
    font-size: 16px;
}/* 🚫 Специфичные стили для страницы ошибки */.payment-status-failed
{
    font-weight: 600;
    color: #dc3545;
}.payment-error-reasons
{
    background: linear-gradient(135deg, #fff5f5 0%, #fee2e2 100%);
    border: 1px solid #f5c6cb;
    border-left: 4px solid #dc3545;
    border-radius: 8px;
    padding: 20px;
    margin: 25px 0;
    text-align: left;
}.payment-error-reasons h4
{
    color: #dc3545;
    margin-bottom: 15px;
    font-size: 16px;
    font-weight: 600;
}.error-reasons-list
{
    margin: 0;
    padding-left: 20px;
    list-style-type: disc;
}.error-reasons-list li
{
    margin-bottom: 8px;
    color: #721c24;
    font-size: 14px;
    line-height: 1.4;
}.payment-help-section
{
    margin-top: 30px;
}.payment-help-note
{
    background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
    border: 1px solid #ffeeba;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    color: #856404;
    text-align: left;
}.payment-help-note i
{
    color: #ffc107;
    margin-right: 8px;
    font-size: 18px;
}.payment-help-note strong
{
    display: block;
    margin-bottom: 10px;
    font-size: 16px;
}.payment-help-note p
{
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
}.payment-support-contacts
{
    background: linear-gradient(135deg, #e7f3ff 0%, #cce7ff 100%);
    border: 1px solid #b8daff;
    border-radius: 8px;
    padding: 20px;
    text-align: left;
}.payment-support-contacts h5
{
    color: #2792ae;
    margin-bottom: 15px;
    font-size: 16px;
    font-weight: 600;
}.payment-support-contacts h5 i
{
    margin-right: 8px;
}.support-contact-list
{
    display: flex;
    flex-direction: column;
    gap: 10px;
}.support-contact-item
{
    display: flex;
    align-items: center;
    gap: 10px;
    color: #495057;
    font-size: 14px;
}.support-contact-item i
{
    width: 20px;
    text-align: center;
    color: #2792ae;
}/* === css_split_uni.py append @ 2026-04-03 10:48:52 === *//* Header */.logo
{
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--text-primary);
}.logo i
{
    color: var(--primary-color);
    font-size: 1.5rem;
}/* Main Content */.donation-main
{
    padding: 2rem 0 4rem;
}.breadcrumb
{
    margin-bottom: 2rem;
}.breadcrumb-link
{
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-secondary);
    text-decoration: none;
    transition: var(--transition);
}.breadcrumb-link:hover
{
    color: var(--primary-color);
}.page-title
{
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 3rem;
    text-align: center;
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}/* Payment Methods */.payment-methods
{
    margin-bottom: 2rem;
}.method-item
{
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: rgba(0, 212, 170, 0.1);
    border: 2px solid transparent;
    border-radius: 12px;
    transition: var(--transition);
}.method-item.active
{
    border-color: var(--primary-color);
    background: rgba(0, 212, 170, 0.15);
}.method-icon
{
    width: 50px;
    height: 50px;
    background: var(--primary-color);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.5rem;
}.method-info
{
    flex: 1;
}.method-info h3
{
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
}.method-info p
{
    color: var(--text-secondary);
    font-size: 0.9rem;
}.currency-symbol
{
    position: absolute;
    right: 1rem;
    color: var(--text-secondary);
    font-weight: 600;
    pointer-events: none;
}.amount-hint
{
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--text-secondary);
}.currency-info
{
    background: rgba(0, 212, 170, 0.1);
    border-left: 3px solid var(--primary-color);
    padding: 1rem;
    border-radius: 8px;
    margin-bottom: 1.5rem;
}.security-info
{
    margin-top: 1.5rem;
    text-align: center;
    color: var(--text-secondary);
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}.security-info i
{
    color: var(--primary-color);
}/* Steps Section */.steps-section
{
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
    background: var(--background-card);
    border-radius: 20px;
    border: 1px solid var(--border-color);
}.steps-title
{
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 2rem;
    text-align: center;
}.steps-list
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}.step-item
{
    display: flex;
    gap: 1rem;
}.step-number
{
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: white;
    flex-shrink: 0;
}.step-content h4
{
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
}.step-content p
{
    color: var(--text-secondary);
    font-size: 0.9rem;
}/* Footer *//* === css_split_uni.py append @ 2026-04-03 10:57:57 — verify.php (scoped) === */body.verify-page
{
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
}body.verify-page #verifyForm
{
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow-x: hidden;
}body.verify-page #verifyForm h2
{
    text-align: center;
    color: #333;
    margin: 20px 0;
    font-size: 24px;
    padding: 0 10px;
    word-wrap: break-word;
}body.verify-page #verifyForm p
{
    text-align: center;
    color: #666;
    margin-bottom: 20px;
    padding: 0 10px;
    word-wrap: break-word;
}body.verify-page .signature-pad
{
    border: 2px solid #333 !important;
    border-radius: 4px;
    cursor: crosshair;
    touch-action: none;
    width: 100%;
    max-width: 400px;
    height: 200px;
    display: block;
    margin: 0 auto;
    background-color: #fff;
    box-sizing: border-box;
}

/* === css_split_uni.py append @ 2026-04-03 21:34:32 === */

/* ═══════════════════════════════════════════════════════════════════
 * Оболочка head_mail.php (миграция с style3.css — без переопределения body)
 * Подключается только в модуле почты; использует переменные из base.css
 * .container — common.css + desktop/tablet/mobile/mobile-small (в head_mail до mail.css)
 * ═══════════════════════════════════════════════════════════════════ */

.main-navigation ul:not(#head-icon-menu) li a:hover .main-navigation-title {
    opacity: 1;
}.main-navigation ul:not(#head-icon-menu) li:hover a {
    background-color: var(--bg-secondary);
    border-radius: var(--radius-md);
    border-color: var(--success);
}.hero-icon-menu-link {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--primary);
    font-family: var(--font-system);
    margin: var(--space-2);
    transition: color var(--transition-base), transform var(--transition-base);
}.hero-icon-menu-link:hover {
    color: var(--primary-dark);
    transform: scale(1.05);
}.hero-icon-menu-link i {
    font-size: var(--text-2xl);
    display: block;
    margin-bottom: var(--space-1);
    color: var(--primary);
    transition: color var(--transition-base), transform var(--transition-base);
}.hero-icon-menu-link:hover i {
    color: var(--primary-dark);
}.hero-icon-menu-title {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text-dark);
    text-transform: uppercase;
}.hero-icon-menu-link.active,
.hero-icon-menu-link.active i {
    color: var(--success-dark);
}















/* ═══════════════════════════════════════════════════════════════════
 * 📬 ОСНОВНЫЕ СТИЛИ ПОЧТОВОЙ СИСТЕМЫ
 * ═══════════════════════════════════════════════════════════════════ */

/* === 📬 Общий контейнер почты === */
.mail-container {
    margin: var(--space-6) auto;
    padding: var(--space-6);
    /* ⚠️ ВАЖНО: max-width 1200px для .mail-container / .mail-content / .mail-body — один раз:
     *   desktop-uni.css @media (min-width: 768px)
     * Исключение: body.student-mail-portal-shell .mail-container — base-uni.css (max-width: none).
     * Ниже 768px — на всю ширину контейнера (mobile-uni / mobile-small-uni).
     */
    background: var(--bg-primary);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    box-sizing: border-box;
}

/* === 🧭 Навигация почты === */
.mail-navigation {
    background-color: var(--bg-secondary);
    border-radius: var(--radius-xl);
    padding: var(--space-4);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--space-5);
    box-sizing: border-box;
    overflow-x: hidden;
}.mail-nav-menu {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}.mail-nav-item {
    flex: 1;
    box-sizing: border-box;
}.mail-nav-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-5);
    background-color: var(--bg-primary);
    color: var(--text-medium);
    text-decoration: none;
    border-radius: var(--radius-lg);
    border: 2px solid transparent;
    transition: all var(--transition-base);
    font-family: var(--font-system);
    font-weight: 600;
    font-size: var(--text-sm);
    box-sizing: border-box;
}.mail-nav-link:hover {
    background-color: var(--success);
    color: var(--text-white);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--success-light);
}.mail-nav-link.active {
    background-color: var(--success);
    color: var(--text-white);
    border-color: var(--success-dark);
}.mail-nav-link i {
    font-size: var(--text-lg);
}

.student-profile-header {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
}
.student-profile-header__info {
    flex: 1 1 auto;
    min-width: 0;
}
.student-profile-header__avatar {
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
}
.student-profile-header__avatar .avatar-img {
    max-width: 100%;
    height: auto;
}












/* Unified copy-target: preserve admin/curator look for student + teams + guest.
   Root cause note: old responsive CSS leaked generic padding/line-height into `.copy-target`,
   which visually looked like top/bottom margins around copied text. Keep it compact globally. */
.copy-target,
.user-table span[onclick*="copyToClipboard"],
.student-info-table span[onclick*="copyToClipboard"] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    max-width: 100%;
    min-height: 0;
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: all var(--transition-base);
    user-select: none;
    vertical-align: middle;
    padding: 0 !important;
    margin: 0 !important;
    border: none;
    background: transparent;
    font-size: inherit;
    line-height: 1.2;
    font-family: inherit;
    color: inherit;
    text-decoration: none;
}

.copy-target > *,
.user-table span[onclick*="copyToClipboard"] > *,
.student-info-table span[onclick*="copyToClipboard"] > * {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.copy-target:hover,
.user-table span[onclick*="copyToClipboard"]:hover,
.student-info-table span[onclick*="copyToClipboard"]:hover {
    background-color: var(--bg-hover);
    color: var(--primary);
    box-shadow: none;
    transform: none;
    text-decoration: none;
}

.copy-target.copied,
.user-table span[onclick*="copyToClipboard"].copied,
.student-info-table span[onclick*="copyToClipboard"].copied {
    background-color: var(--success-light);
    color: var(--success);
    border-color: transparent;
    box-shadow: none;
}

.copy-target i {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    opacity: 0.6;
    font-size: var(--text-xs);
    line-height: 1 !important;
    vertical-align: middle;
    color: currentColor;
    transition: opacity var(--transition-base), color var(--transition-base), transform 0.3s ease;
}

.copy-target:hover i {
    opacity: 1;
    color: currentColor;
}

.copy-target.copied i {
    opacity: 1;
    color: var(--success);
}

/* copy-text.js временно вешает .copied на <i> */
.copy-target i.copied {
    color: var(--success) !important;
    transform: scale(1.2);
}

.copy-content {
    display: inline;
    min-width: 0;
    max-width: 100%;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    user-select: all;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* moodle.php .link-section: не раздувать иконку глобальным .fas { font-size: var(--main-space-lg) } */
.link-section .copy-target i.fas {
    font-size: 0.9em;
}

/* Иконки меню curator/admin без inline background-image */
nav .head-icon-menu a i[data-icon] {
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    color: transparent;
}nav .head-icon-menu a i[data-icon="search_user"] { background-image: url("icon/search_user.png"); }nav .head-icon-menu a i[data-icon="curator_list"] { background-image: url("icon/curator_list.png"); }nav .head-icon-menu a i[data-icon="team-management"] { background-image: url("icon/team-management.png"); }nav .head-icon-menu a i[data-icon="who-is-online"] { background-image: url("icon/who-is-online.png"); }nav .head-icon-menu a i[data-icon="view-logs"] { background-image: url("icon/view-logs.png"); }nav .head-icon-menu a i[data-icon="students"] { background-image: url("icon/students.png"); }nav .head-icon-menu a i[data-icon="deferred-actions"] { background-image: url("icon/deferred-actions.png"); }nav .head-icon-menu a i[data-icon="order-documents"] { background-image: url("icon/order-documents.png"); }nav .head-icon-menu a i[data-icon="apostille-requests"] { background-image: url("icon/apostille-requests.png"); }nav .head-icon-menu a i[data-icon="mail"] { background-image: url("icon/mail.png"); }nav .head-icon-menu a i[data-icon="university"] { background-image: url("icon/university.png"); }nav .head-icon-menu a i[data-icon="create-student"] { background-image: url("icon/create-student.png"); }nav .head-icon-menu a i[data-icon="add-student"] { background-image: url("icon/add-student.png"); }nav .head-icon-menu a i[data-icon="new-students"] { background-image: url("icon/new-students.png"); }nav .head-icon-menu a i[data-icon="invitation-students"] { background-image: url("icon/invitation-students.png"); }nav .head-icon-menu a i[data-icon="pending-confirmation"] { background-image: url("icon/pending-confirmation.png"); }




















/* === 📧 Список писем === */
.mail-content {
    background-color: var(--bg-primary);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    box-shadow: var(--shadow-md);
    margin-top: var(--space-5);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    overflow-x: hidden;
}.mail-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-5);
    padding-bottom: var(--space-4);
    border-bottom: 2px solid var(--success);
}.mail-header h2 {
    font-family: "Playfair Display", serif;
    color: var(--text-dark);
    margin: 0;
    font-size: var(--text-3xl);
}.mail-stats {
    display: flex;
    gap: var(--space-5);
    align-items: center;
}.mail-stat-item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    background-color: var(--bg-tertiary);
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text-medium);
}.mail-stat-item i {
    color: var(--success);
}.mail-stat-number {
    color: var(--success);
    font-size: var(--text-base);
    font-weight: bold;
}













/* === ✉️ Карточка письма === */
.mail-item {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border);
    border-left: 4px solid var(--border-dark);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    margin-bottom: var(--space-4);
    transition: all var(--transition-base);
    cursor: pointer;
    box-sizing: border-box;
    animation: slideIn var(--transition-base);
}.mail-item:hover {
    box-shadow: var(--shadow-lg);
    transform: translateX(5px);
    border-left-color: var(--success);
}.mail-item.mail-expanded {
    border-left-color: var(--success);
    background-color: var(--bg-primary);
}.mail-item-unread {
    background-color: var(--success-light);
    border-left-color: var(--success);
    border-left-width: 5px;
}.mail-item-unread:hover {
    background-color: var(--success-light);
}.mail-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--space-3);
    cursor: pointer;
    user-select: none;
}.mail-item-header:hover {
    background-color: var(--bg-hover);
    border-radius: var(--radius-sm);
}.mail-item-meta {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    flex: 1;
}.mail-from, .mail-to {
    font-size: var(--text-sm);
    color: var(--text-medium);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}.mail-address {
    color: var(--info);
    font-weight: 600;
}.mail-subject {
    font-size: var(--text-base);
    font-weight: bold;
    color: var(--text-dark);
    margin: var(--space-2) 0;
    font-family: var(--font-system);
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    position: relative;
    padding-right: var(--space-8);
}.mail-subject:hover {
    color: var(--success);
}.mail-subject::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    right: 0;
    font-size: var(--text-xs);
    color: var(--text-muted);
    transition: transform var(--transition-base);
}.mail-item.mail-expanded .mail-subject::after {
    transform: rotate(180deg);
    color: var(--success);
}.mail-date {
    font-size: var(--text-sm);
    color: var(--text-muted);
    font-style: italic;
}



































/* === 📝 Тело письма === */
.mail-body-wrapper {
    margin: var(--space-3) auto;
    padding: 0;
    box-sizing: border-box;
    overflow-x: auto;
    overflow-y: visible;
    background: transparent;
    position: relative;
    -ms-overflow-style: none;
    scrollbar-width: thin;
}.mail-body-wrapper::-webkit-scrollbar {
    height: 6px;
}.mail-body-wrapper::-webkit-scrollbar-track {
    background: var(--bg-tertiary);
    border-radius: var(--radius-sm);
}.mail-body-wrapper::-webkit-scrollbar-thumb {
    background: var(--success);
    border-radius: var(--radius-sm);
}.mail-body-wrapper::-webkit-scrollbar-thumb:hover {
    background: var(--success-dark);
}.mail-body {
    margin: 0 auto !important;
    padding: var(--space-4);
    box-sizing: border-box !important;
    background-color: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    line-height: 1.6;
    color: var(--text-medium);
    font-family: var(--font-system);
    word-wrap: break-word !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto;
    display: none;
    position: relative;
    z-index: 1;
}.mail-item.mail-expanded .mail-body {
    display: block;
}













/* Медиа элементы внутри тела письма */
.mail-body img,
.mail-body iframe,
.mail-body video,
.mail-body embed,
.mail-body object {
    height: auto !important;
    display: block !important;
    margin: var(--space-3) auto !important;
    box-sizing: border-box !important;
}

/* Блочные элементы — центрирование */
.mail-body p,
.mail-body div {
    margin-left: auto;
    margin-right: auto;
}

/* Ссылки */
.mail-body a {
    color: var(--info);
    text-decoration: underline;
    word-break: break-all;
}.mail-body a:hover {
    color: var(--success);
}.mail-body-preview {
    max-height: 100px;
    overflow: hidden;
    position: relative;
}.mail-body-preview::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 30px;
    background: linear-gradient(to bottom, transparent, var(--bg-primary));
}







/* Действия почты: styles/buttons.css (.mail-actions, .mail-action-btn). Фильтры-chips: styles/forms.css (.mail-filters, .mail-filter-btn) */

/* States: focus-visible (keyboard navigation) — навигация модуля почты */
.mail-nav-link:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}



/* === 📎 Предпросмотр файла === */
.mail-file-preview {
    margin-top: var(--space-3);
    font-size: var(--text-sm);
    color: var(--text-light);
    font-family: var(--font-system);
}.mail-preview-error {
    color: var(--danger);
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}.mail-preview-success {
    color: var(--success);
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}.mail-hidden {
    display: none !important;
}.mail-animate-in {
    animation: slideIn 0.3s ease;
}.is-hidden {
    display: none !important;
}







/* Утилита безопасного переноса текста */
.text-wrap-safe {
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
}

/* === 📭 Пустой inbox === */
.mail-empty {
    text-align: center;
    padding: var(--space-16) var(--space-5);
    color: var(--text-muted);
}.mail-empty i {
    font-size: 72px;
    color: var(--border);
    margin-bottom: var(--space-5);
}.mail-empty h3 {
    font-family: var(--font-heading);
    color: var(--text-light);
    font-size: var(--text-2xl);
    margin: 0;
}.mail-empty p {
    color: var(--text-muted);
    margin-top: var(--space-3);
}

/* === 🔍 Поиск === */
.mail-search {
    position: relative;
    margin-bottom: var(--space-5);
}.mail-search-icon {
    position: absolute;
    left: var(--space-4);
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    font-size: var(--text-lg);
}







/* === 📄 Пагинация === */
.mail-pagination-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-5);
    padding: var(--space-4);
    background: var(--bg-secondary);
    border-radius: var(--radius-md);
    flex-wrap: wrap;
    gap: var(--space-4);
}.pagination-info {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}.pagination-controls {
    display: flex;
    gap: var(--space-3);
}.mail-pagination-nav {
    display: flex;
    justify-content: center;
    margin-top: var(--space-8);
    padding: var(--space-5) 0;
    border-top: 1px solid var(--border);
}.pagination {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: var(--space-1);
    flex-wrap: wrap;
    justify-content: center;
}.page-item {
    display: inline-block;
}.page-item.active .page-link {
    background-color: var(--success);
    color: var(--text-white);
    border-color: var(--success);
    font-weight: 700;
}.page-item.disabled .page-link {
    color: var(--text-muted);
    background-color: var(--bg-tertiary);
    cursor: not-allowed;
    pointer-events: none;
    opacity: 0.6;
}.page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: var(--space-2) var(--space-3);
    background-color: var(--bg-primary);
    color: var(--text-medium);
    text-decoration: none;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 600;
    transition: var(--transition-base);
    font-family: var(--font-system);
}.page-link:hover:not(.disabled) {
    background-color: var(--success);
    color: var(--text-white);
    border-color: var(--success);
    transform: translateY(-2px);
    box-shadow: 0 2px 8px rgba(5, 150, 105, 0.3);
}.page-link i {
    font-size: var(--text-xs);
}























/* ═══════════════════════════════════════════════════════════════════
 * 📧 СТИЛИ ДЛЯ EMAIL-КОНТЕНТА (изолированные)
 * ═══════════════════════════════════════════════════════════════════ */

.email-message-content {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    position: relative !important;
    display: block !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
    isolation: isolate !important;
    z-index: auto !important;
}.email-message-content * {
    box-sizing: border-box !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}









/* Изображения в email */
.email-message-content img {
    height: auto !important;
    display: block !important;
    margin: var(--space-4) auto !important;
    border-radius: var(--radius-sm) !important;
    box-shadow: var(--shadow-sm) !important;
    box-sizing: border-box !important;
    object-fit: contain !important;
}.email-message-content img:hover {
    box-shadow: var(--shadow-md) !important;
    transform: scale(1.01) !important;
    transition: var(--transition-slow) !important;
}



/* Видео, iframe, embed в email */
.email-message-content iframe,
.email-message-content video,
.email-message-content embed,
.email-message-content object {
    height: auto !important;
    display: block !important;
    margin: var(--space-4) auto !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-sm) !important;
    box-sizing: border-box !important;
}

/* Параграфы в email — margin/text-align без !important, чтобы инлайн письма и text-align: center у родителя работали */
.email-message-content p {
    margin: var(--space-3) 0;
    padding: 0 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    line-height: 1.6 !important;
    box-sizing: border-box !important;
}.email-message-content div:not(.email-message-content) {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    box-sizing: border-box !important;
}



/* Ссылки в email — без !important у color/text-decoration, чтобы инлайн из письма (подписи и т.д.) имел приоритет */
.email-message-content a {
    color: var(--info);
    text-decoration: underline;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-all !important;
    box-sizing: border-box !important;
    transition: var(--transition-slow) !important;
}.email-message-content a:hover {
    opacity: 0.88;
    text-decoration: underline;
}.email-message-content a:visited {
    color: inherit;
}





/* Списки в email */
.email-message-content ul,
.email-message-content ol {
    margin: var(--space-4) 0 !important;
    padding-left: var(--space-8) !important;
    box-sizing: border-box !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}.email-message-content li {
    margin: var(--space-2) 0 !important;
    padding: 0 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    line-height: 1.6 !important;
    box-sizing: border-box !important;
}



/* Заголовки в email — margin/font-size/text-align без !important под инлайн из HTML-писем */
.email-message-content h1,
.email-message-content h2,
.email-message-content h3,
.email-message-content h4,
.email-message-content h5,
.email-message-content h6 {
    margin: var(--space-5) 0 var(--space-4) 0;
    padding: 0 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    font-family: var(--font-heading) !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    color: var(--text-dark);
    box-sizing: border-box !important;
}.email-message-content h1 { font-size: var(--text-3xl); }.email-message-content h2 { font-size: var(--text-2xl); }.email-message-content h3 { font-size: var(--text-xl); }.email-message-content h4 { font-size: var(--text-lg); }.email-message-content h5 { font-size: var(--text-base); }.email-message-content h6 { font-size: var(--text-sm); }








/* Текстовые элементы в email */
.email-message-content span,
.email-message-content strong,
.email-message-content em,
.email-message-content b,
.email-message-content i,
.email-message-content u,
.email-message-content small,
.email-message-content mark {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    box-sizing: border-box !important;
}.email-message-content strong,
.email-message-content b {
    font-weight: 700 !important;
}.email-message-content em,
.email-message-content i {
    font-style: italic !important;
}.email-message-content mark {
    background-color: var(--warning-light) !important;
    padding: var(--space-0) var(--space-1) !important;
    border-radius: var(--radius-xs) !important;
}







/* Цитаты и код в email */
.email-message-content blockquote {
    margin: var(--space-4) 0 !important;
    padding: var(--space-4) var(--space-5) !important;
    background-color: var(--bg-secondary) !important;
    border-left: 4px solid var(--success) !important;
    border-radius: var(--radius-sm) !important;
    font-style: italic !important;
    color: var(--text-light) !important;
    box-sizing: border-box !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}.email-message-content code {
    background-color: var(--bg-tertiary) !important;
    padding: var(--space-0) var(--space-2) !important;
    border-radius: var(--radius-xs) !important;
    border: 1px solid var(--border) !important;
    font-family: "Courier New", Courier, monospace !important;
    font-size: 90% !important;
    color: var(--danger-dark) !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}.email-message-content pre {
    margin: var(--space-4) 0 !important;
    padding: var(--space-4) !important;
    background-color: var(--bg-tertiary) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-sm) !important;
    font-family: "Courier New", Courier, monospace !important;
    font-size: var(--text-sm) !important;
    line-height: 1.5 !important;
    overflow-x: auto !important;
    white-space: pre-wrap !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    box-sizing: border-box !important;
}.email-message-content .blocked-link {
    color: var(--text-muted) !important;
    text-decoration: line-through !important;
    cursor: not-allowed !important;
    background: var(--warning-light) !important;
    padding: var(--space-0) var(--space-1) !important;
    border-radius: var(--radius-xs) !important;
}





/* Автоссылки из plain-text: без принудительного цвета/border !important — не ломают HTML-подписи с инлайн-стилями */
.email-message-content .mail-link {
    transition: var(--transition-base) !important;
    word-break: break-all !important;
}.email-message-content .mail-link:hover {
    filter: brightness(0.92);
}.email-message-content .blocked-image-danger {
    background: var(--danger-light) !important;
    border-color: var(--danger) !important;
    color: var(--danger-dark) !important;
}.email-message-content .blocked-image-danger i {
    color: var(--danger) !important;
}











/* === 🗑️ Стили для корзины - различия между отправленными и полученными === */

/* Отправленные сообщения в корзине */
.mail-item.sent-message {
    border-left: 4px solid var(--warning); /* Оранжевая полоса для отправленных */
    background: linear-gradient(135deg, var(--warning-light) 0%, var(--bg-primary) 100%);
}.mail-item.sent-message .mail-item-header {
    background: linear-gradient(135deg, var(--warning-light) 0%, var(--bg-primary) 100%);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    padding: var(--space-3) var(--space-4);
}.mail-item.sent-message .mail-from .mail-address {
    color: var(--warning-dark);
    font-weight: 600;
}.mail-item.sent-message .mail-from .fas {
    color: var(--warning);
}.mail-item.sent-message .mail-subject {
    color: var(--warning-dark);
    font-weight: 500;
}









/* Полученные сообщения в корзине */
.mail-item.received-message {
    border-left: 4px solid var(--info); /* Синяя полоса для полученных */
    background: linear-gradient(135deg, var(--info-light) 0%, var(--bg-primary) 100%);
}.mail-item.received-message .mail-item-header {
    background: linear-gradient(135deg, var(--info-light) 0%, var(--bg-primary) 100%);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    padding: var(--space-3) var(--space-4);
}.mail-item.received-message .mail-from .mail-address {
    color: var(--info-dark);
    font-weight: 600;
}.mail-item.received-message .mail-from .fas {
    color: var(--info);
}.mail-item.received-message .mail-subject {
    color: var(--info-dark);
    font-weight: 500;
}





/* Hover эффекты для корзины */
.mail-item.sent-message:hover {
    background: linear-gradient(135deg, var(--warning-light) 0%, var(--bg-hover) 100%);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}.mail-item.received-message:hover {
    background: linear-gradient(135deg, var(--info-light) 0%, var(--bg-hover) 100%);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}



/* Разделители в email */
.email-message-content hr {
    height: 2px !important;
    margin: var(--space-6) auto !important;
    background: linear-gradient(to right, transparent, var(--success), transparent) !important;
    border: none !important;
    box-sizing: border-box !important;
}

/* Сброс margin для первого и последнего элемента */
.email-message-content > *:first-child {
    margin-top: 0 !important;
}.email-message-content > *:last-child {
    margin-bottom: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════════
 * 📱 АДАПТИВНОСТЬ
 * ═══════════════════════════════════════════════════════════════════
 *
 * Responsive styles moved to separate files:
 *
 * • mail-desktop.css:
 *   - @media (min-width: 1024px) and (max-width: 1279px) - Desktop Medium
 *   - @media (min-width: 1280px) - Desktop Large
 *
 * • mail-tablet.css:
 *   - @media (min-width: 768px) and (max-width: 1023px) - Tablet
 *
 * • mail-mobile.css:
 *   - @media (max-width: 767px) - Mobile
 *
 * • mail-mobile-small.css:
 *   - @media (max-width: 480px) - Extra Small Mobile
 *   - @media (max-width: 360px) - Galaxy S8
 *
 * ═══════════════════════════════════════════════════════════════════ */
