* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Arial, sans-serif;
    background: #F5F7FB;
    color: #0F172A;
}

a {
    text-decoration: none;
    color: inherit;
}

.container {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

/* BUTTONS */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    padding: 10px 18px;
    border: none;
    cursor: pointer;
    font-weight: 700;
    transition: 0.2s;
}

.btn-primary {
    background: #2446A8;
    color: #fff;
}

.btn-primary:hover {
    background: #172B75;
}

.btn-light {
    background: #fff;
    color: #2446A8;
    border: 1px solid #DBEAFE;
}

.btn-lg {
    padding: 14px 22px;
    font-size: 15px;
}

.btn-full {
    width: 100%;
}

/* PUBLIC PAGE */

.public-page {
    background: #F5F7FB;
}

.public-header {
    background: #fff;
    border-bottom: 1px solid #E5E7EB;
    position: sticky;
    top: 0;
    z-index: 10;
}

.header-inner {
    height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand,
.header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.brand-logo,
.sidebar-logo,
.login-logo {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: linear-gradient(135deg, #2446A8, #3B82F6);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.brand-title {
    font-weight: 700;
    letter-spacing: 0.5px;
}

.brand-subtitle {
    color: #64748B;
    font-size: 13px;
}

.header-actions a {
    color: #2446A8;
    font-weight: 700;
}

.hero {
    padding: 72px 0;
    background:
        radial-gradient(circle at top right, rgba(59, 130, 246, 0.18), transparent 35%),
        linear-gradient(180deg, #FFFFFF, #F5F7FB);
}

.hero-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    align-items: center;
    gap: 40px;
}

.badge {
    display: inline-flex;
    background: #DBEAFE;
    color: #2446A8;
    padding: 8px 14px;
    border-radius: 999px;
    font-weight: 700;
    margin-bottom: 18px;
}

.hero h1 {
    font-size: 48px;
    line-height: 1.1;
    margin: 0 0 20px;
    color: #0F172A;
}

.hero p {
    font-size: 18px;
    color: #64748B;
    max-width: 680px;
    line-height: 1.6;
}

.hero-buttons {
    display: flex;
    gap: 14px;
    margin-top: 28px;
}

.hero-card {
    display: flex;
    justify-content: center;
}

.mini-window {
    width: 100%;
    max-width: 380px;
    background: #fff;
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.14);
}

.mini-window-header {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.mini-window-header span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #CBD5E1;
}

.mini-stat {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #F8FAFC;
    padding: 16px;
    border-radius: 16px;
    margin-bottom: 12px;
}

.mini-stat b {
    color: #334155;
}

.mini-stat strong {
    color: #2446A8;
    font-size: 26px;
}

.features {
    padding: 60px 0;
}

.features h2 {
    font-size: 32px;
    margin-bottom: 26px;
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.feature-card {
    background: #fff;
    border-radius: 20px;
    padding: 24px;
    border: 1px solid #E5E7EB;
}

.feature-icon {
    font-size: 30px;
    margin-bottom: 12px;
}

.feature-card h3 {
    margin: 0 0 10px;
}

.feature-card p {
    margin: 0;
    color: #64748B;
    line-height: 1.5;
}

.public-footer {
    padding: 24px 0;
    color: #64748B;
    border-top: 1px solid #E5E7EB;
}

/* LOGIN */

.login-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #172B75, #2446A8);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.login-wrapper {
    width: min(1000px, 100%);
    display: grid;
    grid-template-columns: 1fr 420px;
    background: #fff;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 30px 100px rgba(0,0,0,0.25);
}

.login-info {
    background:
        radial-gradient(circle at top right, rgba(255,255,255,0.22), transparent 35%),
        linear-gradient(135deg, #2446A8, #172B75);
    color: #fff;
    padding: 54px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.login-info h1 {
    font-size: 38px;
    margin: 20px 0 12px;
}

.login-info p {
    font-size: 18px;
    line-height: 1.6;
    opacity: 0.9;
}

.login-card {
    padding: 42px;
}

.login-lang {
    text-align: right;
    margin-bottom: 26px;
    color: #2446A8;
    font-weight: 700;
}

.login-card h2 {
    margin: 0;
    font-size: 28px;
}

.login-subtitle {
    color: #64748B;
    margin-bottom: 24px;
}

.form-group {
    margin-bottom: 18px;
}

.form-group label {
    display: block;
    font-weight: 700;
    margin-bottom: 8px;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    border: 1px solid #CBD5E1;
    border-radius: 12px;
    padding: 13px 14px;
    font-size: 15px;
    outline: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #2446A8;
    box-shadow: 0 0 0 3px rgba(36, 70, 168, 0.12);
}

.form-row-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.checkbox-label {
    color: #475569;
    font-size: 14px;
}

.small-link {
    color: #2446A8;
    font-weight: 700;
    font-size: 14px;
}

.back-link {
    display: inline-block;
    margin-top: 20px;
    color: #64748B;
    font-weight: 700;
}

.alert {
    padding: 12px 14px;
    border-radius: 12px;
    margin-bottom: 18px;
    transition: 0.3s;
}

.alert-danger {
    background: #FEE2E2;
    color: #991B1B;
}

/* APP LAYOUT */

.app-layout {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: 280px;
    background: #172B75;
    color: #fff;
    padding: 20px;
    position: fixed;
    inset: 0 auto 0 0;
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 30px;
}

.sidebar-brand strong {
    display: block;
    font-size: 18px;
}

.sidebar-brand span {
    font-size: 12px;
    opacity: 0.8;
}

.sidebar-menu {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sidebar-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 12px;
    border-radius: 14px;
    color: rgba(255,255,255,0.82);
    font-weight: 700;
}

.sidebar-menu a:hover,
.sidebar-menu a.active {
    background: #2446A8;
    color: #fff;
}

.app-main {
    margin-left: 280px;
    width: calc(100% - 280px);
}

.app-topbar {
    height: 86px;
    background: #fff;
    border-bottom: 1px solid #E5E7EB;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 28px;
    position: sticky;
    top: 0;
    z-index: 5;
}

.app-topbar h1 {
    margin: 0;
    font-size: 24px;
}

.app-topbar p {
    margin: 4px 0 0;
    color: #64748B;
    font-size: 14px;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.lang-switch {
    color: #2446A8;
    font-weight: 700;
}

.notification-btn {
    position: relative;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #F1F5F9;
    display: flex;
    align-items: center;
    justify-content: center;
}

.notification-btn-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    border: 2px solid #FFFFFF;
    border-radius: 999px;
    background: #EF4444;
    color: #FFFFFF;
    font-size: 10px;
    line-height: 15px;
    text-align: center;
    font-weight: 800;
}

.user-mini {
    display: flex;
    align-items: center;
    gap: 10px;
}

.user-avatar {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #DBEAFE;
    color: #2446A8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.user-mini strong {
    display: block;
    font-size: 14px;
}

.user-mini span {
    display: block;
    color: #64748B;
    font-size: 12px;
}

.logout-btn {
    color: #EF4444;
    font-weight: 700;
}

.content {
    padding: 28px;
}

/* DASHBOARD */

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 24px;
}

.stat-card {
    background: #fff;
    border-radius: 20px;
    padding: 22px;
    border: 1px solid #E5E7EB;
    display: flex;
    align-items: center;
    gap: 16px;
}

.stat-card span {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: #DBEAFE;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.stat-card p {
    margin: 0 0 6px;
    color: #64748B;
    font-weight: 700;
}

.stat-card strong {
    font-size: 28px;
}

.stat-card.success span {
    background: #DCFCE7;
}

.stat-card.warning span {
    background: #FEF3C7;
}

.stat-card.danger span {
    background: #FEE2E2;
}

.page-grid.two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.panel {
    background: #fff;
    border-radius: 20px;
    border: 1px solid #E5E7EB;
    padding: 22px;
}

.panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}

.panel-header h2 {
    margin: 0;
    font-size: 20px;
}

.quick-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.quick-action {
    background: #F8FAFC;
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    padding: 16px;
    font-weight: 700;
    color: #2446A8;
}

.empty-state {
    padding: 30px;
    background: #F8FAFC;
    border-radius: 16px;
    color: #64748B;
    text-align: center;
    line-height: 1.5;
}

/* RESPONSIVE */

@media (max-width: 1024px) {
    .hero-grid,
    .login-wrapper,
    .page-grid.two {
        grid-template-columns: 1fr;
    }

    .feature-grid,
    .dashboard-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sidebar {
        width: 240px;
    }

    .app-main {
        margin-left: 240px;
        width: calc(100% - 240px);
    }
}

@media (max-width: 768px) {
    .header-inner,
    .hero-buttons,
    .topbar-actions,
    .app-topbar {
        flex-direction: column;
        align-items: flex-start;
        height: auto;
        gap: 14px;
        padding: 18px;
    }

    .hero h1 {
        font-size: 34px;
    }

    .feature-grid,
    .dashboard-grid,
    .quick-actions {
        grid-template-columns: 1fr;
    }

    .login-info {
        padding: 32px;
    }

    .login-card {
        padding: 28px;
    }

    .sidebar {
        position: static;
        width: 100%;
        min-height: auto;
    }

    .app-layout {
        flex-direction: column;
    }

    .app-main {
        margin-left: 0;
        width: 100%;
    }

    .content {
        padding: 18px;
    }
}

/* COMMON PAGES */

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 24px;
}

.page-header h2 {
    margin: 0 0 8px;
    font-size: 28px;
}

.page-header p {
    margin: 0;
    color: #64748B;
    line-height: 1.5;
}

.table-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.table-responsive {
    width: 100%;
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 860px;
}

.data-table th,
.data-table td {
    padding: 14px 12px;
    border-bottom: 1px solid #E5E7EB;
    text-align: left;
    font-size: 14px;
}

.data-table th {
    background: #F8FAFC;
    color: #334155;
    font-weight: 700;
}

.data-table td {
    color: #475569;
}

.table-empty {
    text-align: center !important;
    padding: 34px !important;
    color: #64748B !important;
}

.report-grid,
.settings-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.report-card,
.settings-card {
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 20px;
    padding: 24px;
    transition: 0.2s;
}

.report-card:hover,
.settings-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
}

/*
 * Только старые карточки отчетов и карточки настроек.
 * Не применяется к новой странице reports.php.
 */
.report-grid .report-card > span,
.settings-grid .settings-card > span {
    width: 54px;
    height: 54px;
    border-radius: 16px;
    background: #DBEAFE;
    color: #2446A8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    margin-bottom: 16px;
}

.report-card h3,
.settings-card h3 {
    margin: 0 0 10px;
    color: #0F172A;
}

.report-card p,
.settings-card p {
    margin: 0;
    color: #64748B;
    line-height: 1.5;
}

@media (max-width: 1024px) {
    .report-grid,
    .settings-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .page-header {
        flex-direction: column;
    }

    .report-grid,
    .settings-grid {
        grid-template-columns: 1fr;
    }
}

.filter-form {
    display: flex;
    gap: 10px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}

.filter-form input {
    min-width: 280px;
    flex: 1;
    border: 1px solid #CBD5E1;
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 15px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.form-actions {
    margin-top: 20px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.mt-20 {
    margin-top: 20px;
}

.badge-status {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 700;
}

.badge-status.success {
    background: #DCFCE7;
    color: #166534;
}

.badge-status.muted {
    background: #F1F5F9;
    color: #64748B;
}

.badge-status.warning {
    background: #FEF3C7;
    color: #92400E;
}

.badge-status.danger {
    background: #FEE2E2;
    color: #991B1B;
}

.row-actions {
    display: flex;
    gap: 8px;
}

.btn-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #F1F5F9;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn-icon:hover {
    background: #DBEAFE;
}

.alert-success {
    background: #DCFCE7;
    color: #166534;
}

@media (max-width: 768px) {
    .form-grid {
        grid-template-columns: 1fr;
    }
}

.form-section-title {
    font-size: 18px;
    font-weight: 700;
    color: #0F172A;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid #E5E7EB;
}

.plan-table .plan-row-category td {
    background: #DBEAFE;
    color: #172B75;
    font-weight: 700;
}

.plan-table .plan-row-module td {
    background: #F0F7FF;
    font-weight: 700;
}

.plan-table .plan-row-ro td {
    background: #FFFFFF;
}

.plan-table .plan-row-discipline td,
.plan-table .plan-row-practice td,
.plan-table .plan-row-elective td,
.plan-table .plan-row-final_attestation td {
    background: #FFFFFF;
}

.plan-course-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 18px;
}

.plan-course-toolbar > span {
    color: #475569;
    font-size: 13px;
    font-weight: 700;
}

.plan-course-filter {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
}

.plan-course-filter-btn {
    min-height: 36px;
    padding: 7px 14px;
    border: 1px solid #CBD5E1;
    border-radius: 10px;
    background: #FFFFFF;
    color: #334155;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.plan-course-filter-btn:hover {
    border-color: #93C5FD;
    background: #EFF6FF;
}

.plan-course-filter-btn.is-active {
    border-color: #2563EB;
    background: #2563EB;
    color: #FFFFFF;
}

.plan-table .is-course-hidden {
    display: none;
}

.semester-box.is-course-hidden {
    display: none;
}

.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.checkbox-grid label {
    background: #F8FAFC;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 12px 14px;
    font-weight: 700;
}

@media (max-width: 768px) {
    .plan-course-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .plan-course-filter {
        width: 100%;
    }

    .plan-course-filter-btn {
        flex: 1 1 calc(50% - 8px);
    }

    .checkbox-grid {
        grid-template-columns: 1fr;
    }
}

.semester-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.semester-box {
    background: #F8FAFC;
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    padding: 12px;
}

.semester-box label {
    font-size: 13px;
    color: #334155;
}

.form-hint {
    margin-top: 12px;
    color: #64748B;
    font-size: 14px;
    line-height: 1.5;
}

@media (max-width: 1024px) {
    .semester-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .semester-grid {
        grid-template-columns: 1fr;
    }
}

.workload-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.workload-card {
    border: 1px solid #E5E7EB;
    border-radius: 18px;
    padding: 18px;
    background: #FFFFFF;
}

.workload-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    border-bottom: 1px solid #E5E7EB;
    padding-bottom: 14px;
    margin-bottom: 14px;
}

.workload-head h3 {
    margin: 0 0 6px;
    font-size: 18px;
    color: #0F172A;
}

.workload-head p {
    margin: 0;
    color: #64748B;
}

.workload-badges {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.workload-distribution {
    margin-bottom: 16px;
}

.inline-form {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: end;
}

.inline-form label {
    font-weight: 700;
    color: #334155;
}

.inline-form select {
    border: 1px solid #CBD5E1;
    border-radius: 12px;
    padding: 11px 12px;
    min-width: 220px;
}

.teacher-list {
    background: #F8FAFC;
    border-radius: 16px;
    padding: 14px;
    margin-bottom: 16px;
}

.teacher-list h4 {
    margin: 0 0 12px;
    color: #0F172A;
}

.teacher-item {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    padding: 12px;
    margin-bottom: 10px;
}

.teacher-item p {
    margin: 4px 0 0;
    color: #64748B;
    font-size: 13px;
}

.teacher-hours {
    display: flex;
    gap: 8px;
    align-items: center;
}

.empty-mini {
    color: #64748B;
    background: #FFFFFF;
    border: 1px dashed #CBD5E1;
    border-radius: 14px;
    padding: 14px;
}

.add-teacher-form {
    border-top: 1px solid #E5E7EB;
    padding-top: 16px;
}

.check-line {
    display: flex;
    gap: 8px;
    align-items: center;
    font-weight: 700;
    color: #334155;
    margin-top: 12px;
}

@media (max-width: 768px) {
    .workload-head,
    .teacher-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .workload-badges {
        justify-content: flex-start;
    }

    .teacher-hours {
        width: 100%;
        justify-content: space-between;
    }
}

.mb-20 {
    margin-bottom: 20px;
}

.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    padding: 20px;
}

.modal-overlay.active {
    display: flex;
}

.modal-box {
    width: 100%;
    max-width: 640px;
    background: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.35);
    max-height: 90vh;
    overflow-y: auto;
}

.modal-large {
    max-width: 960px;
}

.modal-head {
    background: #2446A8;
    color: #FFFFFF;
    padding: 14px 18px;
    border-radius: 12px 12px 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-head h3 {
    margin: 0;
    font-size: 18px;
}

.modal-close {
    border: 0;
    background: transparent;
    color: #FFFFFF;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
}

.modal-box form {
    padding: 18px;
}

.modal-actions {
    justify-content: flex-end;
}


.journal-save-spinner {
    display: none;
    width: 14px;
    height: 14px;
    margin-right: 7px;
    border: 2px solid rgba(255, 255, 255, 0.45);
    border-top-color: #FFFFFF;
    border-radius: 50%;
    vertical-align: -2px;
    animation: journal-save-spin 0.7s linear infinite;
}

@keyframes journal-save-spin {
    to { transform: rotate(360deg); }
}

#saveLessonBtn[disabled] {
    cursor: wait;
    opacity: 0.78;
}

.ajax-error {
    display: none;
    background: #FEE2E2;
    color: #991B1B;
    padding: 12px 14px;
    border-radius: 12px;
    margin-bottom: 16px;
    font-weight: 700;
}

.plan-table th,
.plan-table td {
    white-space: nowrap;
}

.plan-table td:nth-child(2) {
    white-space: normal;
    min-width: 260px;
}

button.btn-icon {
    border: 0;
    cursor: pointer;
}

.journal-page-title {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.journal-page-title h2 {
    margin: 0;
    color: #2446A8;
    font-size: 28px;
    font-weight: 500;
}

.journal-back {
    font-size: 34px;
    color: #2446A8;
}

.journal-layout {
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 36px;
    align-items: flex-start;
}

.journal-info-card {
    border-top: 5px solid #3A4DB3;
    background: #FFFFFF;
    margin-bottom: 28px;
}

.journal-info-table {
    width: 100%;
    border-collapse: collapse;
}

.journal-info-table th,
.journal-info-table td {
    border: 1px solid #D7DDF2;
    padding: 12px 18px;
    font-size: 14px;
    text-align: left;
    line-height: 1.5;
}

.journal-info-table th {
    width: 230px;
    color: #98A2BC;
    font-weight: 700;
    background: #F1F3FF;
}

.journal-info-table td {
    color: #64709B;
}

.journal-side {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.full-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.btn-success {
    background: #84BD19;
    color: #FFFFFF;
}

.btn-warning {
    background: #FF8B20;
    color: #FFFFFF;
}

.journal-filter-row {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 32px;
}

.journal-filter-row select {
    min-width: 200px;
    border: 1px solid #2446A8;
    color: #2446A8;
    border-radius: 6px;
    padding: 11px 14px;
    background: #FFFFFF;
}

.journal-filter-row .btn {
    margin-left: auto;
    min-width: 200px;
}

body.journal-wide-page .journal-filter-row .journal-mobile-add {
    display: none;
}

@media (max-width: 768px) {
    body.journal-wide-page .journal-filter-row .journal-mobile-add {
        display: inline-flex;
        flex: 1 1 100%;
        justify-content: center;
        margin-left: 0;
    }
}

.journal-table-wrap {
    width: 100%;
    overflow: auto;
    border: 1px solid #D7DDF2;
    background: #FFFFFF;
}

.journal-marks-table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
}

.journal-marks-table th,
.journal-marks-table td {
    border: 1px solid #D7DDF2;
    padding: 0;
    height: 42px;
    text-align: center;
    font-size: 14px;
    color: #64709B;
}

.journal-marks-table th {
    height: 64px;
    background: #FFFFFF;
    font-weight: 700;
    position: relative;
}

.journal-marks-table tbody tr:nth-child(odd) td {
    background: #F3F5FB;
}

.journal-marks-table tbody tr:nth-child(even) td {
    background: #FFFFFF;
}

.fixed-col {
    position: sticky;
    left: 0;
    z-index: 2;
}

.number-col {
    width: 45px;
    min-width: 45px;
}

.student-col {
    width: 270px;
    min-width: 270px;
    text-align: left !important;
    padding-left: 12px !important;
    left: 45px;
}

.lesson-col {
    width: 58px;
    min-width: 58px;
    border-bottom: 2px solid #EF4444 !important;
}

.lesson-date {
    font-size: 13px;
    color: #64709B;
}

.lesson-hours {
    font-size: 11px;
    color: #94A3B8;
    margin-top: 4px;
}

.add-col {
    width: 48px;
    min-width: 48px;
}

.journal-plus {
    border: 0;
    background: transparent;
    color: #2446A8;
    font-size: 34px;
    cursor: pointer;
    line-height: 1;
}

.mark-cell {
    width: 58px;
    min-width: 58px;
}

.mark-input {
    width: 100%;
    height: 42px;
    border: 0;
    background: transparent;
    text-align: center;
    color: #64709B;
    font-weight: 700;
}

.mark-input:focus {
    outline: 2px solid #2446A8;
    background: #FFFFFF;
}

.mark-input.saving {
    background: #FEF3C7;
}

.mark-input.saved {
    background: #DCFCE7;
}

.lesson-delete {
    position: absolute;
    right: 2px;
    top: 2px;
    border: 0;
    background: #FEE2E2;
    color: #991B1B;
    border-radius: 4px;
    cursor: pointer;
    width: 18px;
    height: 18px;
    font-size: 14px;
    line-height: 18px;
}

.required {
    color: #EF4444;
}

@media (max-width: 1100px) {
    .journal-layout {
        grid-template-columns: 1fr;
    }

    .journal-side {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .journal-filter-row {
        flex-wrap: wrap;
    }

    .journal-filter-row .btn {
        margin-left: 0;
    }
}

@media (max-width: 768px) {
    .journal-side {
        grid-template-columns: 1fr;
    }

    .journal-info-table th,
    .journal-info-table td {
        display: block;
        width: 100%;
    }
}

.mark-cell-inner {
    display: flex;
    align-items: center;
    width: 100%;
    height: 42px;
}

.mark-input {
    width: 34px;
    height: 42px;
    border: 0;
    background: transparent;
    text-align: center;
    color: #64709B;
    font-weight: 700;
}

.attendance-select {
    width: 36px;
    height: 42px;
    border: 0;
    border-left: 1px solid #D7DDF2;
    background: transparent;
    text-align: center;
    color: #2446A8;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.attendance-select:focus,
.mark-input:focus {
    outline: 2px solid #2446A8;
    background: #FFFFFF;
}

.mark-cell.saving {
    background: #FEF3C7 !important;
}

.mark-cell.saved {
    background: #DCFCE7 !important;
}

.attendance-select option[value="absent"] {
    color: #DC2626;
}

.attendance-select option[value="late"] {
    color: #D97706;
}

.attendance-select option[value="excused"] {
    color: #2563EB;
}

/* JOURNAL TABLE FIX */

.journal-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #D7DDF2;
    background: #FFFFFF;
}

.journal-marks-table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.journal-marks-table th,
.journal-marks-table td {
    border: 1px solid #D7DDF2;
    height: 50px;
    text-align: center;
    font-size: 14px;
    color: #64709B;
    padding: 0;
}

.journal-marks-table th {
    height: 70px;
    background: #FFFFFF;
    font-weight: 700;
    position: relative;
}

.number-col {
    width: 70px;
    min-width: 70px;
}

.student-col {
    width: 420px;
    min-width: 420px;
    text-align: left !important;
    padding-left: 16px !important;
}

.lesson-col {
    width: 72px;
    min-width: 72px;
    border-bottom: 2px solid #EF4444 !important;
}

.lesson-date {
    font-size: 14px;
    font-weight: 700;
    color: #5B6B9A;
}

.lesson-hours {
    font-size: 12px;
    color: #94A3B8;
    margin-top: 4px;
}

.add-col {
    width: 76px;
    min-width: 76px;
}

.journal-plus {
    border: 0;
    background: transparent;
    color: #2446A8;
    font-size: 36px;
    cursor: pointer;
    line-height: 1;
}

.mark-cell {
    width: 72px;
    min-width: 72px;
    height: 50px;
}

.mark-cell-inner {
    width: 100%;
    height: 50px;
    display: grid;
    grid-template-columns: 1fr 28px;
    align-items: stretch;
}

.mark-input {
    width: 100%;
    height: 50px;
    border: 0;
    background: transparent;
    text-align: center;
    color: #4F5F8F;
    font-size: 15px;
    font-weight: 700;
}

.attendance-select {
    width: 28px;
    height: 50px;
    border: 0;
    border-left: 1px solid #D7DDF2;
    background: transparent;
    color: #2446A8;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.mark-input:focus,
.attendance-select:focus {
    outline: 2px solid #2446A8;
    background: #FFFFFF;
}

.mark-cell.att-present {
    background: inherit;
}

.mark-cell.att-absent {
    background: #FEE2E2 !important;
}

.mark-cell.att-late {
    background: #FEF3C7 !important;
}

.mark-cell.att-excused {
    background: #DBEAFE !important;
}

.mark-cell.saving {
    background: #FEF3C7 !important;
}

.mark-cell.saved {
    background: #DCFCE7 !important;
}

.lesson-delete {
    position: absolute;
    right: 3px;
    top: 3px;
    border: 0;
    background: #FEE2E2;
    color: #991B1B;
    border-radius: 6px;
    cursor: pointer;
    width: 18px;
    height: 18px;
    font-size: 13px;
    line-height: 18px;
}

.journal-marks-table tbody tr:nth-child(odd) td {
    background: #F3F5FB;
}

.journal-marks-table tbody tr:nth-child(even) td {
    background: #FFFFFF;
}

.journal-marks-table tbody tr:nth-child(odd) .student-col,
.journal-marks-table tbody tr:nth-child(odd) .number-col {
    background: #F3F5FB;
}

.journal-marks-table tbody tr:nth-child(even) .student-col,
.journal-marks-table tbody tr:nth-child(even) .number-col {
    background: #FFFFFF;
}

.modal-content {
    padding: 18px;
}

.remarks-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 18px;
}

.remark-item {
    background: #F8FAFC;
    border: 1px solid #D7DDF2;
    border-radius: 12px;
    padding: 12px;
}

.remark-meta {
    color: #64748B;
    font-size: 12px;
    margin-bottom: 6px;
    font-weight: 700;
}

.remark-text {
    color: #0F172A;
    line-height: 1.5;
}

.notification-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.notification-item {
    display: flex;
    gap: 14px;
    padding: 16px;
    border: 1px solid #D7DDF2;
    border-radius: 14px;
    background: #FFFFFF;
}

.notification-item.unread {
    background: #EFF6FF;
    border-color: #2446A8;
}

.notification-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #DBEAFE;
    display: flex;
    align-items: center;
    justify-content: center;
}

.notification-item h3 {
    margin: 0 0 6px;
    color: #0F172A;
    font-size: 16px;
}

.notification-item p {
    margin: 0 0 6px;
    color: #475569;
}

.notification-item small {
    color: #94A3B8;
}

/* JOURNAL PAGE WIDTH FIX — sidebar stays visible */

body.journal-wide-page .app-main {
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
}

body.journal-wide-page .app-content,
body.journal-wide-page main {
    width: 100% !important;
    max-width: none !important;
    overflow-x: hidden;
}

body.journal-wide-page .journal-layout {
    width: 100%;
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    gap: 24px;
    align-items: flex-start;
}

body.journal-wide-page .journal-main {
    min-width: 0;
    width: 100%;
}

body.journal-wide-page .journal-info-card,
body.journal-wide-page .journal-filter-row,
body.journal-wide-page #journalTableBox {
    width: 100%;
    max-width: none;
}

body.journal-wide-page .journal-table-wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden;
    border: 1px solid #D7DDF2;
    background: #FFFFFF;
}

body.journal-wide-page .journal-marks-table {
    width: max-content !important;
    min-width: 100% !important;
    border-collapse: collapse;
}

body.journal-wide-page .journal-marks-table th,
body.journal-wide-page .journal-marks-table td {
    white-space: nowrap;
}

body.journal-wide-page .student-col {
    width: 420px;
    min-width: 420px;
}

body.journal-wide-page .lesson-col,
body.journal-wide-page .mark-cell {
    width: 74px;
    min-width: 74px;
}

body.journal-wide-page .add-col {
    width: 70px;
    min-width: 70px;
}

body.journal-wide-page .journal-side {
    width: 250px;
    min-width: 250px;
    position: sticky;
    top: 90px;
}

@media (max-width: 1200px) {
    body.journal-wide-page .journal-layout {
        grid-template-columns: 1fr;
    }

    body.journal-wide-page .journal-side {
        position: static;
        width: 100%;
        min-width: 0;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    body.journal-wide-page .journal-side {
        grid-template-columns: 1fr;
    }

    body.journal-wide-page .student-col {
        width: 260px;
        min-width: 260px;
    }
}

.restriction-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.restriction-item {
    display: grid;
    grid-template-columns: 1fr 240px;
    gap: 20px;
    align-items: center;
    padding: 16px;
    border: 1px solid #E5E7EB;
    border-radius: 16px;
    background: #FFFFFF;
}

.restriction-item h3 {
    margin: 0 0 6px;
    color: #0F172A;
    font-size: 17px;
}

.restriction-item p {
    margin: 0;
    color: #64748B;
    line-height: 1.5;
}

.restriction-item select,
.restriction-item input {
    width: 100%;
    border: 1px solid #CBD5E1;
    border-radius: 12px;
    padding: 11px 12px;
}

@media (max-width: 768px) {
    .restriction-item {
        grid-template-columns: 1fr;
    }
}

/* FIX: fixed columns in journal table */

.journal-table-wrap {
    position: relative;
    overflow-x: auto !important;
    overflow-y: hidden;
}

/* ������ ������� � */
.journal-marks-table .number-col {
    position: sticky !important;
    left: 0 !important;
    z-index: 20 !important;
    width: 86px !important;
    min-width: 86px !important;
    max-width: 86px !important;
    background: #FFFFFF !important;
}

/* ������ ������� ������� */
.journal-marks-table .student-col {
    position: sticky !important;
    left: 86px !important;
    z-index: 20 !important;
    width: 520px !important;
    min-width: 520px !important;
    max-width: 520px !important;
    background: #FFFFFF !important;
}

/* ������� fixed ��������� ���� ������� */
.journal-marks-table thead .number-col,
.journal-marks-table thead .student-col {
    z-index: 30 !important;
    background: #FFFFFF !important;
}

/* ���� fixed ������� */
.journal-marks-table tbody .number-col,
.journal-marks-table tbody .student-col {
    background: #F3F6FF !important;
}

/* ����� ���� �� �������� ��� ��� */
.journal-marks-table .lesson-col,
.journal-marks-table .mark-cell {
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
}

/* FIX JOURNAL STICKY COLUMNS FINAL */

.journal-table-wrap {
    position: relative;
    overflow-x: auto !important;
    overflow-y: hidden !important;
}

/* ����� ��� sticky */
.journal-marks-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

/* ������� � */
.journal-marks-table .number-col {
    position: sticky !important;
    left: 0 !important;
    z-index: 40 !important;

    width: 70px !important;
    min-width: 70px !important;
    max-width: 70px !important;

    background: #FFFFFF !important;
}

/* ������� ��� �������� � ��������� */
.journal-marks-table .student-col {
    position: sticky !important;
    left: 70px !important;
    z-index: 40 !important;

    width: 330px !important;
    min-width: 330px !important;
    max-width: 330px !important;

    background: #FFFFFF !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* ��������� ������������� ������� */
.journal-marks-table thead .number-col,
.journal-marks-table thead .student-col {
    z-index: 60 !important;
    background: #FFFFFF !important;
}

/* ������ ������������� ������� */
.journal-marks-table tbody .number-col,
.journal-marks-table tbody .student-col {
    background: #F3F6FF !important;
}

/* ��������� ���� ������, ����� ���� ����� ������� sticky-������� */
.journal-marks-table .student-col {
    box-shadow: 4px 0 6px rgba(15, 23, 42, 0.06);
}

/* ������� ��� */
.journal-marks-table .lesson-col,
.journal-marks-table .mark-cell {
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
}

/* ����� ������� ��� �� ����������� ������� */
.journal-marks-table .student-col strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workload-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 18px;
}

.workload-stat {
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    padding: 18px;
}

.workload-stat span {
    display: block;
    color: #64748B;
    font-size: 14px;
    margin-bottom: 8px;
}

.workload-stat strong {
    color: #2446A8;
    font-size: 28px;
}

.workload-board {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding-bottom: 110px;
}

.workload-card {
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    overflow: hidden;
}

.workload-card.complete {
    border-color: #22C55E;
}

.workload-card.overload {
    border-color: #EF4444;
}

.workload-card-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    padding: 18px;
    background: #F6F8FF;
    border-bottom: 1px solid #D7DDF2;
}

.workload-card-head h3 {
    margin: 0 0 6px;
    color: #0F172A;
    font-size: 17px;
}

.workload-card-head p {
    margin: 0;
    color: #64748B;
}

.workload-card-stats {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.workload-card-stats span {
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 12px;
    padding: 9px 12px;
    color: #64748B;
    font-size: 13px;
}

.workload-card-stats b {
    color: #2446A8;
}

.workload-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.workload-table {
    width: 100%;
    border-collapse: collapse;
}

.workload-table th,
.workload-table td {
    border-bottom: 1px solid #E5E7EB;
    padding: 12px;
    text-align: left;
    vertical-align: middle;
}

.workload-table th {
    background: #FFFFFF;
    color: #64748B;
    font-size: 13px;
    font-weight: 700;
}

.workload-table select,
.workload-table input {
    width: 100%;
    min-width: 180px;
    border: 1px solid #CBD5E1;
    border-radius: 12px;
    padding: 10px 12px;
    background: #FFFFFF;
}

.used-pill,
.left-pill {
    display: inline-flex;
    min-width: 48px;
    justify-content: center;
    padding: 8px 10px;
    border-radius: 999px;
    background: #EEF2FF;
    color: #2446A8;
    font-weight: 700;
}

.left-pill.bad {
    background: #FEE2E2;
    color: #DC2626;
}

.mini-danger {
    border: 0;
    background: #FEE2E2;
    color: #DC2626;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    cursor: pointer;
    font-size: 20px;
    font-weight: 700;
}

.workload-card-actions {
    display: flex;
    gap: 12px;
    padding: 14px 18px;
    background: #FFFFFF;
}

.workload-save-panel {
    position: sticky;
    bottom: 18px;
    z-index: 20;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 16px 18px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
    margin-top: 20px;
}

.workload-save-panel strong {
    color: #0F172A;
}

.workload-save-panel p {
    margin: 4px 0 0;
    color: #64748B;
}

@media (max-width: 1100px) {
    .workload-summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .workload-card-head {
        grid-template-columns: 1fr;
    }

    .workload-save-panel {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 650px) {
    .workload-summary {
        grid-template-columns: 1fr;
    }

    .workload-card-actions {
        flex-direction: column;
    }
}

.checkbox-line {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    color: #0F172A;
    cursor: pointer;
}

.checkbox-line input {
    width: 18px;
    height: 18px;
}

.assignment-check-row {
    background: #F6F8FF;
    border: 1px solid #D7DDF2;
    border-radius: 14px;
    padding: 14px;
}

.student-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 20px;
}

.student-stat-card {
    display: flex;
    gap: 14px;
    align-items: center;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
}

.student-stat-card span {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: #EFF6FF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.student-stat-card strong {
    display: block;
    font-size: 26px;
    color: #2446A8;
}

.student-stat-card p {
    margin: 4px 0 0;
    color: #64748B;
}

.student-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.student-list-item {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 14px;
    padding: 14px 16px;
}

.student-list-item h3 {
    margin: 0 0 5px;
    color: #0F172A;
    font-size: 16px;
}

.student-list-item p {
    margin: 0;
    color: #64748B;
}

.student-list-item > span {
    color: #2446A8;
    font-weight: 700;
    white-space: nowrap;
}

.student-journal-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.student-journal-card {
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
}

.student-journal-card:hover {
    border-color: #2446A8;
}

.journal-code {
    display: inline-flex;
    background: #EFF6FF;
    color: #2446A8;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 10px;
}

.student-journal-card h3 {
    margin: 0;
    color: #0F172A;
    font-size: 17px;
}

.student-journal-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.student-journal-meta span {
    background: #F8FAFC;
    border-radius: 12px;
    padding: 8px 10px;
    color: #64748B;
    font-size: 13px;
}

.grade-pill,
.attendance-pill {
    display: inline-flex;
    justify-content: center;
    min-width: 44px;
    border-radius: 999px;
    padding: 7px 10px;
    font-weight: 700;
}

.grade-pill {
    background: #EEF2FF;
    color: #2446A8;
}

.attendance-pill {
    background: #DCFCE7;
    color: #15803D;
}

.attendance-pill.att-absent {
    background: #FEE2E2;
    color: #DC2626;
}

.attendance-pill.att-late {
    background: #FEF3C7;
    color: #B45309;
}

.attendance-pill.att-excused {
    background: #DBEAFE;
    color: #1D4ED8;
}

.btn-small {
    padding: 7px 10px;
    font-size: 13px;
}

.schedule-week {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.schedule-day-card {
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    overflow: hidden;
}

.schedule-day-head {
    background: #F6F8FF;
    padding: 16px 18px;
    border-bottom: 1px solid #D7DDF2;
}

.schedule-day-head h3 {
    margin: 0;
    color: #0F172A;
}

.schedule-list {
    display: flex;
    flex-direction: column;
}

.schedule-item {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 14px;
    padding: 14px 18px;
    border-bottom: 1px solid #E5E7EB;
}

.schedule-item:last-child {
    border-bottom: 0;
}

.schedule-time {
    text-align: center;
}

.schedule-time strong {
    display: block;
    color: #2446A8;
    font-size: 22px;
}

.schedule-time span {
    color: #64748B;
    font-size: 13px;
}

.schedule-info h4 {
    margin: 0 0 6px;
    color: #0F172A;
}

.schedule-info p {
    margin: 3px 0;
    color: #64748B;
}

@media (max-width: 1000px) {
    .student-stat-grid,
    .student-journal-grid,
    .schedule-week {
        grid-template-columns: 1fr;
    }
}

.student-assignment-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.student-assignment-card {
    display: block;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
}

.student-assignment-card:hover {
    border-color: #2446A8;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
}

.assignment-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}

.assignment-date {
    display: inline-flex;
    background: #EFF6FF;
    color: #2446A8;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 13px;
    font-weight: 700;
}

.assignment-file-badge {
    display: inline-flex;
    background: #ECFDF5;
    color: #047857;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 13px;
    font-weight: 700;
}

.student-assignment-card h3 {
    margin: 0 0 8px;
    color: #0F172A;
    font-size: 18px;
}

.student-assignment-card p {
    margin: 0;
    color: #64748B;
    line-height: 1.5;
}

.assignment-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.assignment-meta span {
    background: #F8FAFC;
    border-radius: 12px;
    padding: 8px 10px;
    color: #475569;
    font-size: 13px;
}

.student-assignment-view {
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 20px;
    padding: 22px;
}

.assignment-view-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    padding-bottom: 18px;
    border-bottom: 1px solid #E5E7EB;
}

.assignment-view-head h2 {
    margin: 10px 0 0;
    color: #0F172A;
}

.assignment-view-date {
    background: #EFF6FF;
    color: #2446A8;
    border-radius: 14px;
    padding: 10px 14px;
    font-weight: 700;
    white-space: nowrap;
}

.assignment-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin: 18px 0;
}

.assignment-info-grid div {
    background: #F8FAFC;
    border-radius: 16px;
    padding: 14px;
}

.assignment-info-grid span {
    display: block;
    color: #64748B;
    margin-bottom: 6px;
    font-size: 13px;
}

.assignment-info-grid strong {
    color: #0F172A;
}

.assignment-text-box {
    background: #F6F8FF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 18px;
}

.assignment-text-box h3,
.assignment-file-box h3 {
    margin: 0 0 10px;
    color: #0F172A;
}

.assignment-text-box p {
    margin: 0;
    color: #334155;
    line-height: 1.7;
}

.assignment-file-box {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 18px;
}

.assignment-file-box p {
    margin: 0 0 4px;
    color: #334155;
    font-weight: 700;
}

.assignment-file-box small {
    color: #64748B;
}

.assignment-bottom-actions {
    display: flex;
    justify-content: flex-end;
}

.notification-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.notification-item {
    display: flex;
    gap: 14px;
    padding: 16px;
    border: 1px solid #D7DDF2;
    border-radius: 14px;
    background: #FFFFFF;
}

.notification-item.unread {
    background: #EFF6FF;
    border-color: #2446A8;
}

.notification-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #DBEAFE;
    display: flex;
    align-items: center;
    justify-content: center;
}

.notification-item h3 {
    margin: 0 0 6px;
    color: #0F172A;
    font-size: 16px;
}

.notification-item p {
    margin: 0 0 6px;
    color: #475569;
}

.notification-item small {
    color: #94A3B8;
}

@media (max-width: 900px) {
    .student-assignment-list,
    .assignment-info-grid {
        grid-template-columns: 1fr;
    }

    .assignment-view-head,
    .assignment-file-box {
        flex-direction: column;
        align-items: stretch;
    }
}

.submission-current {
    background: #F8FAFC;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 18px;
}

.submission-current h3 {
    margin: 0 0 10px;
    color: #0F172A;
}

.submission-current p {
    color: #334155;
    line-height: 1.6;
}

.submission-current small {
    display: block;
    margin-top: 10px;
    color: #64748B;
}

.teacher-feedback-box {
    background: #EFF6FF;
    border: 1px solid #BFDBFE;
    border-radius: 16px;
    padding: 16px;
    margin-top: 16px;
}

.submission-status {
    display: inline-flex;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 13px;
    font-weight: 700;
    background: #E5E7EB;
    color: #374151;
}

.submission-status.status-submitted {
    background: #DBEAFE;
    color: #1D4ED8;
}

.submission-status.status-checked {
    background: #DCFCE7;
    color: #15803D;
}

.submission-status.status-revision {
    background: #FEF3C7;
    color: #B45309;
}

.submission-status.status-none {
    background: #F1F5F9;
    color: #64748B;
}

.submission-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.submission-card {
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
}

.submission-card.not-submitted {
    background: #F8FAFC;
}

.submission-card-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 14px;
}

.submission-card-head h3 {
    margin: 0 0 8px;
    color: #0F172A;
}

.submission-card-head small {
    color: #64748B;
    white-space: nowrap;
}

.submission-answer {
    background: #F6F8FF;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    padding: 14px;
    margin-bottom: 16px;
}

.submission-answer h4 {
    margin: 0 0 8px;
    color: #0F172A;
}

.submission-answer p {
    color: #334155;
    line-height: 1.6;
}

.check-grid {
    display: grid;
    grid-template-columns: 240px 180px;
    gap: 14px;
}

@media (max-width: 700px) {
    .submission-card-head,
    .check-grid {
        grid-template-columns: 1fr;
        flex-direction: column;
    }
}

.student-filter-panel {
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 18px;
}

.student-status-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 7px;
    margin-bottom: 18px;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
}

.student-status-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 10px 15px;
    color: #475569;
    font-weight: 700;
    text-decoration: none;
    border-radius: 11px;
    transition: background-color .18s ease, color .18s ease;
}

.student-status-tabs a:hover {
    color: #2446A8;
    background: #F1F5FF;
}

.student-status-tabs a.active {
    color: #FFFFFF;
    background: #2446A8;
}

.student-status-tabs b {
    min-width: 27px;
    padding: 3px 7px;
    text-align: center;
    background: #E8EDFC;
    border-radius: 999px;
}

.student-status-tabs a.active b {
    background: rgba(255, 255, 255, .2);
}

.student-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.student-filter-actions {
    display: flex;
    gap: 12px;
    margin-top: 14px;
}

.bulk-actions-panel {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    background: #F6F8FF;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    padding: 14px 16px;
    margin-bottom: 14px;
}

.bulk-actions-panel span {
    color: #64748B;
    font-size: 14px;
}

.btn-success {
    background: #16A34A;
    color: #FFFFFF;
    border-color: #16A34A;
}

.btn-success:hover {
    background: #15803D;
}

@media (max-width: 1100px) {
    .student-filter-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .bulk-actions-panel {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 650px) {
    .student-status-tabs {
        flex-direction: column;
    }

    .student-status-tabs a {
        justify-content: flex-start;
    }

    .student-filter-grid {
        grid-template-columns: 1fr;
    }
}

.schedule-filter {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: end;
}

.schedule-add-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.admin-schedule-week {
    margin-top: 18px;
}

.admin-schedule-item {
    grid-template-columns: 90px 1fr;
}

.schedule-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.schedule-actions form {
    margin: 0;
}

@media (max-width: 1100px) {
    .schedule-add-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .schedule-filter {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .schedule-add-grid {
        grid-template-columns: 1fr;
    }
}

.schedule-top-panel {
    margin-bottom: 18px;
}

.schedule-builder-filter {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: end;
}

.schedule-builder-wrap {
    width: 100%;
    overflow-x: auto;
}

.schedule-builder-table {
    width: 100%;
    min-width: 1100px;
    border-collapse: separate;
    border-spacing: 0;
}

.schedule-builder-table th {
    background: #AEB7CB;
    color: #FFFFFF;
    text-align: center;
    padding: 12px 8px;
    border: 1px solid #FFFFFF;
    font-weight: 700;
}

.schedule-builder-table td {
    height: 110px;
    background: #D8DDE8;
    border: 1px solid #FFFFFF;
    vertical-align: top;
    padding: 8px;
}

.schedule-builder-table .time-head {
    width: 90px;
}

.time-cell {
    width: 90px;
    text-align: center;
    background: #C8CEDC !important;
    color: #0F172A;
}

.time-cell strong {
    display: block;
    font-size: 14px;
}

.time-cell span {
    display: block;
    font-size: 13px;
}

.schedule-constructor-cell {
    position: relative;
    min-width: 160px;
}

.schedule-plus-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 46px;
    height: 46px;
    transform: translate(-50%, -50%);
    border-radius: 999px;
    border: 0;
    background: #FFFFFF;
    color: #6B7280;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.10);
}

.schedule-plus-btn:hover {
    background: #2446A8;
    color: #FFFFFF;
}

.schedule-mini-plus {
    width: 100%;
    border: 1px dashed #94A3B8;
    background: rgba(255, 255, 255, 0.65);
    color: #2446A8;
    border-radius: 10px;
    padding: 7px;
    margin-top: 8px;
    cursor: pointer;
    font-weight: 700;
}

.schedule-lesson-card {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 10px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.schedule-lesson-card strong {
    color: #0F172A;
    font-size: 14px;
    line-height: 1.35;
}

.schedule-lesson-card span {
    color: #475569;
    font-size: 13px;
}

.schedule-lesson-card em {
    color: #64748B;
    font-size: 12px;
}

.schedule-card-actions {
    display: flex;
    gap: 6px;
    margin-top: 6px;
}

.schedule-card-actions button {
    border: 0;
    background: #F1F5F9;
    color: #0F172A;
    border-radius: 8px;
    padding: 6px 8px;
    cursor: pointer;
}

.schedule-card-actions form {
    margin: 0;
}

.schedule-card-actions button:hover {
    background: #E2E8F0;
}

.schedule-modal-box {
    max-width: 620px;
}

.schedule-modal-info {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    background: #F6F8FF;
    border: 1px solid #D7DDF2;
    border-radius: 14px;
    padding: 14px;
    margin-bottom: 16px;
}

.schedule-modal-info strong {
    color: #2446A8;
}

.schedule-modal-info span {
    color: #0F172A;
    font-weight: 700;
}

@media (max-width: 700px) {
    .schedule-builder-filter {
        grid-template-columns: 1fr;
    }
}

.student-schedule-wrap {
    margin-top: 10px;
}

.student-schedule-table td {
    height: 115px;
}

.student-schedule-cell {
    background: #EEF2F8 !important;
}

.student-empty-lesson {
    height: 100%;
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94A3B8;
    font-size: 20px;
}

.student-readonly-lesson {
    border-left: 4px solid #2446A8;
}

.student-readonly-lesson strong {
    color: #0F172A;
}

@media print {
    .sidebar,
    .topbar,
    .page-header .table-actions,
    .btn {
        display: none !important;
    }

    .main-content {
        margin: 0 !important;
        padding: 0 !important;
    }

    .panel {
        border: 0 !important;
        box-shadow: none !important;
    }

    .schedule-builder-table {
        min-width: 100% !important;
        font-size: 11px;
    }

    .schedule-builder-table td {
        height: 90px !important;
    }
}

.btn-success {
    background: #16A34A;
    color: #FFFFFF;
    border-color: #16A34A;
}

.btn-success:hover {
    background: #15803D;
}

@media print {
    .sidebar,
    .topbar,
    .page-header .table-actions,
    .schedule-top-panel,
    .btn,
    .modal-overlay {
        display: none !important;
    }

    .main-content {
        margin: 0 !important;
        padding: 0 !important;
    }

    .panel {
        border: 0 !important;
        box-shadow: none !important;
    }

    .schedule-builder-table {
        min-width: 100% !important;
        font-size: 11px;
    }
}

.schedule-times-table input[type="time"],
.schedule-times-table input[type="number"] {
    width: 100%;
    border: 1px solid #CBD5E1;
    border-radius: 10px;
    padding: 9px 10px;
}

.small-input {
    max-width: 90px;
}

.teacher-today-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.teacher-today-card {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 14px;
    align-items: center;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    padding: 14px;
}

.teacher-time-box {
    background: #EFF6FF;
    color: #2446A8;
    border-radius: 14px;
    padding: 10px;
    text-align: center;
}

.teacher-time-box strong {
    display: block;
    font-size: 18px;
}

.teacher-time-box span {
    display: block;
    font-size: 13px;
    color: #64748B;
}

.teacher-today-card h3 {
    margin: 0 0 6px;
    color: #0F172A;
}

.teacher-today-card p {
    margin: 0;
    color: #64748B;
}

.teacher-readonly-lesson {
    border-left: 4px solid #16A34A;
}

.teacher-assignment-card {
    border-left: 4px solid #2446A8;
}

.teacher-journal-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.teacher-journal-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 18px;
    text-decoration: none;
    color: inherit;
    transition: 0.2s ease;
}

.teacher-journal-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08);
}

.teacher-journal-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

.teacher-journal-card h3 {
    margin: 0;
    color: #0F172A;
    font-size: 18px;
    line-height: 1.35;
}

.teacher-journal-card p {
    margin: 0;
    color: #64748B;
}

.teacher-journal-progress div {
    width: 100%;
    height: 8px;
    background: #E2E8F0;
    border-radius: 999px;
    overflow: hidden;
}

.teacher-journal-progress div span {
    display: block;
    height: 100%;
    background: #2446A8;
    border-radius: 999px;
}

.teacher-journal-progress small {
    display: block;
    margin-top: 6px;
    color: #64748B;
    font-size: 13px;
}

.teacher-journal-meta {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding-top: 10px;
    border-top: 1px solid #E2E8F0;
    color: #475569;
    font-size: 14px;
}

@media (max-width: 1100px) {
    .teacher-journal-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {
    .teacher-journal-grid {
        grid-template-columns: 1fr;
    }
}

.sidebar-badge {
    margin-left: auto;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: #EF4444;
    color: #FFFFFF;
    font-size: 12px;
    line-height: 22px;
    text-align: center;
}

.teacher-notification-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.teacher-notification-card {
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 14px;
    padding: 16px;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    background: #FFFFFF;
    color: inherit;
    text-decoration: none;
    transition: 0.2s ease;
}

.teacher-notification-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 26px rgba(15, 23, 42, 0.08);
}

.teacher-notification-card.is-unread {
    border-color: #2446A8;
    background: #F6F8FF;
}

.teacher-notification-icon {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: #EFF6FF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.teacher-notification-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.teacher-notification-head h3 {
    margin: 0;
    color: #0F172A;
    font-size: 16px;
}

.teacher-notification-head span {
    color: #64748B;
    font-size: 13px;
    white-space: nowrap;
}

.teacher-notification-body p {
    margin: 8px 0 0;
    color: #475569;
    line-height: 1.45;
}

.teacher-notification-body small {
    display: inline-block;
    margin-top: 8px;
    color: #2446A8;
    font-weight: 700;
}

@media (max-width: 650px) {
    .teacher-notification-head {
        flex-direction: column;
        gap: 4px;
    }
}

.profile-grid {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 18px;
    align-items: start;
}

.profile-card {
    text-align: center;
}

.profile-avatar {
    width: 90px;
    height: 90px;
    border-radius: 28px;
    background: #2446A8;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 38px;
    font-weight: 700;
    margin: 0 auto 14px;
}

.profile-card h3 {
    margin: 0 0 18px;
    color: #0F172A;
}

.profile-info-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-align: left;
}

.profile-info-list div {
    background: #F6F8FF;
    border: 1px solid #D7DDF2;
    border-radius: 14px;
    padding: 12px;
}

.profile-info-list span {
    display: block;
    color: #64748B;
    font-size: 13px;
    margin-bottom: 4px;
}

.profile-info-list strong {
    color: #0F172A;
}

.profile-password-form {
    max-width: 520px;
}

@media (max-width: 900px) {
    .profile-grid {
        grid-template-columns: 1fr;
    }
}

.user-form-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    align-items: end;
}

.user-form-actions {
    align-self: end;
}

.user-form-grid .form-actions {
    margin-top: 0;
}

@media (max-width: 1100px) {
    .user-form-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {
    .user-form-grid {
        grid-template-columns: 1fr;
    }
}

.reports-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.report-card {
    display: block;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 22px;
    padding: 30px;
    min-height: 180px;
    text-decoration: none;
    color: inherit;
    transition: 0.2s ease;
}

.report-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 34px rgba(15, 23, 42, 0.08);
}

.report-icon {
    width: 68px;
    height: 68px;
    border-radius: 20px;
    background: #DBEAFE;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    margin-bottom: 20px;
}

.report-card h3 {
    margin: 0 0 14px;
    color: #0F172A;
    font-size: 23px;
    font-weight: 700;
}

.report-card p {
    margin: 0;
    color: #64748B;
    font-size: 18px;
    line-height: 1.45;
}

.report-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr) auto;
    gap: 14px;
    align-items: end;
}

.report-filter-grid .form-actions {
    margin-top: 0;
    display: flex;
    gap: 8px;
}

.report-submit-progress {
    min-width: 110px;
}

.report-submit-progress span {
    display: block;
    font-weight: 700;
    color: #0F172A;
    margin-bottom: 5px;
}

.report-submit-progress div {
    height: 7px;
    background: #E2E8F0;
    border-radius: 999px;
    overflow: hidden;
}

.report-submit-progress div b {
    display: block;
    height: 100%;
    background: #2446A8;
    border-radius: 999px;
}

@media (max-width: 1200px) {
    .reports-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .report-filter-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {
    .reports-grid,
    .report-filter-grid {
        grid-template-columns: 1fr;
    }

    .report-card {
        min-height: auto;
        padding: 22px;
    }
}

.summary-control-panel {
    display: grid;
    grid-template-columns: 2fr 1fr 180px;
    gap: 14px;
    align-items: end;
    background: #F6F8FF;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 14px;
}

.summary-control-panel .form-group {
    margin: 0;
}

.summary-control-panel input[readonly] {
    background: #FFFFFF;
    font-weight: 700;
    color: #2446A8;
}

.summary-selected-info {
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    padding: 12px 14px;
    margin-bottom: 14px;
    color: #334155;
}

.summary-actions-row {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 14px;
}

.lesson-control-label {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: #2446A8;
    color: #FFFFFF;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    margin-top: 4px;
}

@media (max-width: 900px) {
    .summary-control-panel {
        grid-template-columns: 1fr;
    }
}

.exam-date-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.exam-complex-line {
    margin: 16px 0;
}

#testingFields {
    background: #F6F8FF;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 16px;
}

.test-group-form {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 14px;
    align-items: end;
}

@media (max-width: 800px) {
    .exam-date-grid,
    .test-group-form {
        grid-template-columns: 1fr;
    }
}

/* ===== Экзамен: страница результатов ===== */
.exam-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 18px;
}

.exam-summary-card {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    padding: 16px;
}

.exam-summary-card > span {
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: #F3F6FF;
    font-size: 22px;
}

.exam-summary-card strong {
    display: block;
    color: #0F172A;
    font-size: 24px;
}

.exam-summary-card p {
    margin: 2px 0 0;
    color: #64748B;
    font-size: 13px;
}

.exam-info-panel {
    margin-bottom: 18px;
}

.exam-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.exam-info-grid > div {
    background: #F8FAFF;
    border: 1px solid #E1E7F3;
    border-radius: 14px;
    padding: 13px 14px;
}

.exam-info-grid span {
    display: block;
    margin-bottom: 5px;
    color: #64748B;
    font-size: 13px;
}

.exam-info-grid strong {
    color: #0F172A;
    line-height: 1.35;
}

.exam-results-table select,
.exam-results-table input,
.exam-results-table textarea {
    min-width: 130px;
}

.exam-results-table textarea {
    width: 220px;
    resize: vertical;
}

.exam-rounded-score {
    font-size: 18px;
    font-weight: 700;
    text-align: center;
    color: #2446A8;
}

.exam-save-state {
    min-height: 18px;
    margin-top: 5px;
    font-size: 12px;
    color: #64748B;
}

.exam-save-state.success {
    color: #15803D;
}

.exam-save-state.error {
    color: #DC2626;
}

@media (max-width: 1100px) {
    .exam-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .exam-info-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {
    .exam-summary-grid,
    .exam-info-grid {
        grid-template-columns: 1fr;
    }
}

/* Academic plans — compact RUP coverage check */
.plan-coverage-strip {
    margin: 0 0 18px;
    overflow: hidden;
    border: 1px solid #dbe3f0;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.04);
}

.plan-coverage-details > summary {
    display: flex;
    min-height: 58px;
    padding: 12px 16px;
    align-items: center;
    gap: 10px;
    list-style: none;
    cursor: pointer;
    user-select: none;
}

.plan-coverage-details > summary::-webkit-details-marker {
    display: none;
}

.plan-coverage-heading {
    display: inline-flex;
    margin-right: auto;
    align-items: center;
    gap: 9px;
    color: #101828;
    font-size: 15px;
    font-weight: 700;
}

.plan-coverage-icon {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: #edf3ff;
    color: #2447b5;
    font-size: 15px;
}

.plan-coverage-count {
    display: inline-flex;
    padding: 6px 10px;
    align-items: center;
    gap: 5px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.plan-coverage-count.success {
    color: #087443;
    background: #dcfae6;
}

.plan-coverage-count.danger {
    color: #b42318;
    background: #fee4e2;
}

.plan-coverage-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #475467;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.plan-coverage-toggle::after {
    content: '⌄';
    color: #667085;
    font-size: 17px;
    line-height: 1;
    transition: transform 0.18s ease;
}

.plan-coverage-details[open] .plan-coverage-toggle::after {
    transform: rotate(180deg);
}

.plan-coverage-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 14px 16px 16px;
    border-top: 1px solid #e7ecf4;
    background: #f8fafc;
}

.plan-coverage-column {
    min-width: 0;
    padding: 13px;
    border: 1px solid #e4e9f1;
    border-radius: 12px;
    background: #ffffff;
}

.plan-coverage-column.missing {
    border-color: #fed7d3;
}

.plan-coverage-column-title {
    display: flex;
    margin-bottom: 10px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #344054;
    font-size: 13px;
}

.plan-coverage-column-title > span {
    display: inline-flex;
    min-width: 25px;
    height: 25px;
    padding: 0 7px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #f2f4f7;
    color: #475467;
    font-size: 12px;
    font-weight: 700;
}

.plan-coverage-column.missing .plan-coverage-column-title > span {
    background: #fee4e2;
    color: #b42318;
}

.plan-coverage-groups {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.plan-coverage-group {
    display: inline-flex;
    padding: 6px 9px;
    align-items: center;
    border: 1px solid #dbe3f0;
    border-radius: 8px;
    background: #ffffff;
    color: #344054;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    transition: 0.18s ease;
}

.plan-coverage-group.ready {
    border-color: #b7ebca;
    color: #087443;
    background: #f0fdf4;
}

.plan-coverage-group.missing {
    border-color: #fecaca;
    color: #b42318;
    background: #fff7f6;
}

a.plan-coverage-group:hover {
    border-color: #2447b5;
    color: #2447b5;
    background: #edf3ff;
    transform: translateY(-1px);
}

.plan-coverage-complete,
.plan-coverage-empty {
    color: #667085;
    font-size: 13px;
}

.plan-coverage-complete {
    color: #087443;
    font-weight: 700;
}

@media (max-width: 760px) {
    .plan-coverage-details > summary {
        flex-wrap: wrap;
        padding: 12px;
    }

    .plan-coverage-heading {
        flex: 1 0 100%;
    }

    .plan-coverage-toggle {
        margin-left: auto;
    }

    .plan-coverage-body {
        grid-template-columns: 1fr;
        padding: 12px;
    }
}

.exam-ticket-input {
    width: 110px;
    min-width: 90px;
    text-align: center;
}

.exam-results-table td,
.exam-results-table th {
    vertical-align: middle;
}

@media (max-width: 900px) {
    .exam-ticket-input {
        width: 100%;
        min-width: 100px;
    }
}

.exam-table-note {
    display: block;
    margin-top: 6px;
    color: #64748B;
    font-size: 12px;
    line-height: 1.3;
}

/* =========================================================
   EXAMS PAGE — карточки, фильтры и таблица
   Добавить в конец assets/css/app.css
   ========================================================= */

.academic-report-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 0 0 20px;
}

.academic-stat-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    min-height: 104px;
    padding: 18px;
    background: #ffffff;
    border: 1px solid #dbe3f0;
    border-radius: 18px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05);
}

.academic-stat-card > span {
    display: flex;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: #edf3ff;
    font-size: 23px;
    line-height: 1;
}

.academic-stat-card > div {
    min-width: 0;
}

.academic-stat-card strong {
    display: block;
    margin: 0 0 4px;
    color: #101828;
    font-size: 27px;
    line-height: 1;
    font-weight: 700;
}

.academic-stat-card p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.35;
}

/* Фильтры */
.report-filter-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(160px, 1fr));
    gap: 14px;
    align-items: end;
}

.report-filter-grid .form-group {
    min-width: 0;
    margin: 0;
}

.report-filter-grid .form-group:nth-of-type(5),
.report-filter-grid .form-group:nth-of-type(6) {
    grid-column: span 1;
}

.report-filter-grid input,
.report-filter-grid select {
    width: 100%;
    min-width: 0;
}

.report-filter-grid .form-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    margin: 0;
    grid-column: span 2;
}

/* Панель списка */
.panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.panel-header > span {
    color: #667085;
    font-size: 14px;
    white-space: nowrap;
}

/* Таблица экзаменов */
.data-table {
    width: 100%;
    border-collapse: collapse;
}

.data-table th,
.data-table td {
    vertical-align: middle;
}

.data-table th {
    white-space: nowrap;
}

.data-table td {
    line-height: 1.35;
}

.exam-table-note {
    display: block;
    margin-top: 6px;
    color: #667085;
    font-size: 12px;
    line-height: 1.35;
}

.report-submit-progress {
    min-width: 105px;
}

.report-submit-progress > span {
    display: block;
    margin-bottom: 6px;
    color: #101828;
    font-size: 13px;
    font-weight: 700;
}

.report-submit-progress > div {
    width: 100%;
    height: 7px;
    overflow: hidden;
    background: #e7ecf4;
    border-radius: 999px;
}

.report-submit-progress > div > b {
    display: block;
    height: 100%;
    min-width: 0;
    background: #2447b5;
    border-radius: 999px;
}

.row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    white-space: nowrap;
}

.row-actions form {
    display: inline-flex !important;
    margin: 0;
}

.btn-icon {
    display: inline-flex;
    width: 34px;
    height: 34px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 1px solid #dbe3f0;
    border-radius: 9px;
    background: #ffffff;
    color: #2447b5;
    text-decoration: none;
    cursor: pointer;
    transition: 0.18s ease;
}

.btn-icon:hover {
    border-color: #2447b5;
    background: #edf3ff;
    transform: translateY(-1px);
}

.badge-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
}

.badge-status.success {
    color: #087443;
    background: #dcfae6;
}

.badge-status.warning {
    color: #9a4d00;
    background: #fff1d6;
}

.badge-status.danger {
    color: #b42318;
    background: #fee4e2;
}

.badge-status.muted {
    color: #475467;
    background: #f2f4f7;
}

/* На широком экране не даём таблице сжимать содержимое */
@media (min-width: 1201px) {
    .table-responsive .data-table {
        min-width: 1380px;
    }
}

@media (max-width: 1250px) {
    .academic-report-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .report-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .report-filter-grid .form-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .academic-report-stats,
    .report-filter-grid {
        grid-template-columns: 1fr;
    }

    .report-filter-grid .form-actions {
        grid-column: auto;
        flex-wrap: wrap;
    }

    .academic-stat-card {
        min-height: 88px;
        padding: 15px;
    }

    .page-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .page-header .btn {
        width: 100%;
    }
}

/* ===== Tests module ===== */
.test-group-form-expanded {
    display: grid;
    grid-template-columns: 1fr 1fr auto auto;
    gap: 14px;
    align-items: end;
}

.test-active-check,
.test-question-active {
    min-height: 46px;
    display: flex;
    align-items: center;
}

.test-groups-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: end;
}

.test-groups-filter input,
.test-groups-filter select {
    flex: 1 1 165px;
    min-width: 165px;
}

.test-group-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 240px));
    gap: 14px;
    margin-bottom: 18px;
}

.test-question-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.test-question-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.test-question-settings {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 140px 140px auto;
    gap: 14px;
    align-items: end;
    padding: 16px;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    background: #F8FAFF;
}

.test-options-header {
    align-items: flex-end;
    margin-bottom: 12px;
}

.test-options-header h3,
.test-options-header p {
    margin: 0;
}

.test-options-header p {
    margin-top: 5px;
    color: #64748B;
    font-size: 13px;
}

.test-options-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.test-option-editor {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) minmax(0, 1fr) 42px;
    gap: 12px;
    align-items: end;
    padding: 14px;
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    background: #FFFFFF;
}

.test-option-marker {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.test-option-marker label {
    display: flex;
    flex-direction: column;
    gap: 3px;
    color: #64748B;
    font-size: 11px;
}

.test-option-letter {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #E8EEFF;
    color: #2446A8;
    font-weight: 700;
}

.remove-option-btn {
    align-self: center;
    font-size: 20px;
}

.test-question-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.test-question-card {
    padding: 18px;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    background: #FFFFFF;
}

.test-question-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.test-question-card-head > div:first-child {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.test-question-number {
    color: #2446A8;
    font-weight: 700;
}

.test-question-card h3 {
    margin: 15px 0 12px;
    color: #0F172A;
    font-size: 17px;
    line-height: 1.5;
}

.test-question-meta {
    display: flex;
    gap: 18px;
    margin-bottom: 14px;
    color: #64748B;
    font-size: 13px;
}

.test-question-options-preview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.test-option-preview {
    display: grid;
    grid-template-columns: 28px 1fr 24px;
    gap: 8px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    background: #F8FAFC;
}

.test-option-preview p {
    margin: 0;
}

.test-option-preview.is-correct {
    border-color: #86EFAC;
    background: #F0FDF4;
}

.test-option-preview.is-correct strong {
    color: #16A34A;
}

.test-short-answer-note {
    padding: 12px 14px;
    border-radius: 12px;
    background: #FFF7ED;
    color: #9A3412;
}

@media (max-width: 1100px) {
    .test-group-form-expanded,
    .test-question-settings,
    .test-groups-filter {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .test-option-editor {
        grid-template-columns: 100px 1fr 1fr;
    }

    .remove-option-btn {
        grid-column: 3;
        justify-self: end;
    }
}

@media (max-width: 700px) {
    .test-groups-filter {
        display: grid;
    }
    .test-group-form-expanded,
    .test-question-grid,
    .test-question-settings,
    .test-groups-filter,
    .test-option-editor,
    .test-question-options-preview,
    .test-group-summary {
        grid-template-columns: 1fr;
    }

    .remove-option-btn {
        grid-column: auto;
        justify-self: start;
    }

    .test-question-card-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* =========================================================
   Студентский модуль тестирования
   ========================================================= */

.student-test-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.student-test-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 230px;
    padding: 18px;
    color: inherit;
    text-decoration: none;
    background: #FFFFFF;
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    transition: transform .2s ease, box-shadow .2s ease;
}

.student-test-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 30px rgba(15, 23, 42, .08);
}

.student-test-card-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.student-test-date {
    color: #64748B;
    font-size: 13px;
    white-space: nowrap;
}

.student-test-card h3 {
    margin: 0;
    color: #0F172A;
    font-size: 18px;
    line-height: 1.4;
}

.student-test-card p {
    margin: 0;
    color: #475569;
    line-height: 1.45;
}

.student-test-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
}

.student-test-meta span {
    padding: 7px 10px;
    color: #334155;
    font-size: 13px;
    background: #F1F5F9;
    border-radius: 999px;
}

.student-test-result-mini {
    padding-top: 12px;
    color: #2446A8;
    border-top: 1px solid #E2E8F0;
}

.student-test-info-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.student-test-info-grid > div {
    padding: 14px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
}

.student-test-info-grid span {
    display: block;
    margin-bottom: 5px;
    color: #64748B;
    font-size: 13px;
}

.student-test-info-grid strong {
    color: #0F172A;
    line-height: 1.4;
}

.student-test-action-panel {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
}

.student-test-action-panel h3 {
    margin: 0 0 6px;
}

.student-test-action-panel p {
    margin: 0;
    color: #64748B;
}

.student-test-finished {
    width: 100%;
    text-align: center;
}

.student-test-score {
    width: 100px;
    height: 100px;
    margin: 16px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-size: 34px;
    font-weight: 700;
    background: #2446A8;
    border-radius: 30px;
}

.student-test-run-header {
    position: sticky;
    top: 0;
    z-index: 15;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 16px 18px;
    margin-bottom: 10px;
    background: rgba(255, 255, 255, .96);
    border: 1px solid #D7DDF2;
    border-radius: 18px;
    backdrop-filter: blur(12px);
}

.student-test-run-header h2 {
    margin: 0 0 4px;
}

.student-test-run-header p {
    margin: 0;
    color: #64748B;
}

.student-test-timer {
    min-width: 120px;
    padding: 12px 18px;
    color: #FFFFFF;
    font-size: 26px;
    font-weight: 700;
    text-align: center;
    background: #DC2626;
    border-radius: 15px;
}

.student-test-progress-line {
    height: 8px;
    margin-bottom: 16px;
    overflow: hidden;
    background: #E2E8F0;
    border-radius: 999px;
}

.student-test-progress-line div {
    height: 100%;
    background: #2446A8;
    border-radius: 999px;
    transition: width .2s ease;
}

.student-test-question {
    margin-bottom: 14px;
}

.student-test-question-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}

.student-test-question-head span {
    color: #2446A8;
    font-weight: 700;
}

.student-test-question-head small {
    padding: 5px 9px;
    color: #475569;
    background: #F1F5F9;
    border-radius: 999px;
}

.student-test-question h3 {
    margin: 0 0 16px;
    color: #0F172A;
    font-size: 18px;
    line-height: 1.5;
}

.student-test-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.student-test-option {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 13px 14px;
    cursor: pointer;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    transition: border-color .2s ease, background .2s ease;
}

.student-test-option:hover {
    background: #F6F8FF;
    border-color: #9FB0E7;
}

.student-test-option input {
    margin-top: 3px;
}

.student-test-short-answer {
    width: 100%;
    resize: vertical;
}

.student-test-save-state {
    min-height: 20px;
    margin-top: 10px;
    color: #16A34A;
    font-size: 12px;
    text-align: right;
}

.student-test-save-state .error {
    color: #DC2626;
}

.student-test-submit-bar {
    position: sticky;
    bottom: 14px;
    z-index: 14;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 14px 16px;
    margin-top: 18px;
    background: rgba(255, 255, 255, .97);
    border: 1px solid #D7DDF2;
    border-radius: 16px;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .1);
    backdrop-filter: blur(12px);
}

.student-test-submit-bar span {
    color: #64748B;
}

@media (max-width: 1100px) {
    .student-test-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .student-test-info-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .student-test-grid,
    .student-test-info-grid {
        grid-template-columns: 1fr;
    }

    .student-test-action-panel,
    .student-test-run-header,
    .student-test-submit-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .student-test-timer {
        width: 100%;
    }
}

/* =========================================================
   Общие настройки
   ========================================================= */

.settings-form-section {
    margin-bottom: 18px;
}

.settings-form-section .panel-header {
    align-items: flex-start;
}

.settings-form-section .panel-header p {
    margin: 5px 0 0;
    color: #64748B;
    line-height: 1.45;
}

.settings-logo-row {
    display: flex;
    gap: 22px;
    align-items: center;
}

.settings-logo-preview {
    width: 130px;
    height: 130px;
    flex: 0 0 130px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: #FFFFFF;
    font-size: 30px;
    font-weight: 700;
    background: linear-gradient(135deg, #2446A8, #3B82F6);
    border: 1px solid #D7DDF2;
    border-radius: 28px;
}

.settings-logo-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 10px;
    background: #FFFFFF;
}

.settings-logo-fields {
    flex: 1;
}

.settings-save-bar {
    position: sticky;
    bottom: 14px;
    z-index: 12;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 15px 18px;
    margin-top: 18px;
    background: rgba(255, 255, 255, .97);
    border: 1px solid #D7DDF2;
    border-radius: 17px;
    box-shadow: 0 16px 35px rgba(15, 23, 42, .12);
    backdrop-filter: blur(12px);
}

.settings-save-bar span {
    color: #64748B;
}

.sidebar-logo {
    overflow: hidden;
}

.sidebar-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 4px;
    background: #FFFFFF;
}

@media (max-width: 700px) {
    .settings-logo-row,
    .settings-save-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .settings-logo-preview {
        width: 110px;
        height: 110px;
        flex-basis: 110px;
    }
}

/* =========================================================
   Настройки должностей
   ========================================================= */

.positions-layout {
    display: grid;
    grid-template-columns: minmax(300px, 390px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.position-form-panel {
    position: sticky;
    top: 18px;
}

.position-form-panel .panel-header p,
.position-list-panel .panel-header p {
    margin: 5px 0 0;
    color: #64748B;
}

.position-filter-form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 180px auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 16px;
}

.position-filter-form .form-actions {
    margin: 0;
    white-space: nowrap;
}

.position-employee-count {
    min-width: 34px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 9px;
    color: #2446A8;
    font-weight: 700;
    background: #EAF0FF;
    border-radius: 999px;
}

.row-actions form {
    display: inline-flex;
    margin: 0;
}

.btn-icon.danger {
    color: #DC2626;
}

.btn-icon.disabled {
    cursor: not-allowed;
    opacity: .45;
}

.positions-stats {
    margin-bottom: 18px;
}

@media (max-width: 1100px) {
    .positions-layout {
        grid-template-columns: 1fr;
    }

    .position-form-panel {
        position: static;
    }
}

@media (max-width: 760px) {
    .position-filter-form {
        grid-template-columns: 1fr;
    }

    .position-filter-form .form-actions {
        display: flex;
        flex-wrap: wrap;
    }
}

/* =========================================================
   Учебные годы
   ========================================================= */

.current-year-card {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin-bottom: 18px;
    border-color: #B8C8F4;
    background: linear-gradient(135deg, #FFFFFF, #F3F6FF);
}

.current-year-info {
    display: flex;
    gap: 16px;
    align-items: center;
}

.current-year-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    background: #DCE8FF;
    border-radius: 20px;
}

.current-year-info small {
    color: #64748B;
}

.current-year-info h2 {
    margin: 3px 0;
    font-size: 28px;
}

.current-year-info p {
    margin: 0;
    color: #475569;
}

.academic-year-layout {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.academic-year-create {
    position: sticky;
    top: 18px;
}

.academic-year-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.academic-year-item {
    padding: 16px;
    border: 1px solid #DDE4F0;
    border-radius: 16px;
    background: #FFFFFF;
}

.academic-year-main {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
}

.academic-year-main h3 {
    margin: 0 0 5px;
    font-size: 20px;
}

.academic-year-main p {
    margin: 0;
    color: #64748B;
}

.academic-year-counters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0;
}

.academic-year-counters span {
    padding: 7px 10px;
    color: #475569;
    font-size: 13px;
    background: #F1F5F9;
    border-radius: 999px;
}

.academic-year-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.academic-year-actions form {
    display: inline-flex;
    margin: 0;
}

.danger-text {
    color: #DC2626;
}

/* =========================================================
   Вкладки и архив журналов
   ========================================================= */

.journal-tabs {
    display: inline-flex;
    gap: 5px;
    padding: 5px;
    margin-bottom: 16px;
    background: #E9EEF8;
    border-radius: 14px;
}

.journal-tabs a {
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 10px 15px;
    color: #475569;
    font-weight: 700;
    text-decoration: none;
    border-radius: 10px;
}

.journal-tabs a.active {
    color: #FFFFFF;
    background: #2446A8;
    box-shadow: 0 8px 18px rgba(36, 70, 168, .2);
}

.journal-tabs a span {
    min-width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
    color: inherit;
    font-size: 12px;
    background: rgba(255, 255, 255, .22);
    border-radius: 999px;
}

.page-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.journal-filter-drawer {
    display: none;
    margin-bottom: 16px;
}

.journal-filter-drawer.open {
    display: block;
}

.journal-filter-grid {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.5fr)
        repeat(4, minmax(160px, 1fr));
    gap: 12px;
    align-items: end;
}

.journal-filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

.academic-year-chip {
    display: inline-flex;
    padding: 6px 10px;
    color: #2446A8;
    font-weight: 700;
    white-space: nowrap;
    background: #EAF0FF;
    border-radius: 999px;
}

.journal-hours-progress {
    min-width: 100px;
}

.journal-hours-progress > span {
    display: block;
    margin-bottom: 5px;
    font-weight: 700;
}

.journal-hours-progress > div {
    height: 7px;
    overflow: hidden;
    background: #E2E8F0;
    border-radius: 999px;
}

.journal-hours-progress b {
    display: block;
    height: 100%;
    background: #2446A8;
    border-radius: 999px;
}

.btn-danger {
    color: #FFFFFF;
    background: #DC2626;
    border-color: #DC2626;
}

.btn-danger:hover {
    background: #B91C1C;
    border-color: #B91C1C;
}

@media (max-width: 1200px) {
    .journal-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .journal-filter-search {
        grid-column: 1 / -1;
    }
}

@media (max-width: 850px) {
    .academic-year-layout {
        grid-template-columns: 1fr;
    }

    .academic-year-create {
        position: static;
    }

    .current-year-card {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 650px) {
    .journal-filter-grid {
        grid-template-columns: 1fr;
    }

    .journal-filter-search {
        grid-column: auto;
    }

    .journal-filter-actions,
    .page-header-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .journal-tabs {
        width: 100%;
    }

    .journal-tabs a {
        flex: 1;
        justify-content: center;
    }
}

/* =========================================================
   Настройки видов занятий
   ========================================================= */

.lesson-type-layout {
    display: grid;
    grid-template-columns: minmax(320px, 430px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.lesson-type-editor {
    position: sticky;
    top: 18px;
}

.lesson-type-editor .panel-header p,
.lesson-type-list-panel .panel-header p {
    margin: 5px 0 0;
    color: #64748B;
}

.lesson-type-preview-box {
    display: flex;
    gap: 13px;
    align-items: center;
    padding: 14px;
    margin-bottom: 16px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 15px;
}

.lesson-type-color-preview,
.lesson-type-name-cell > span {
    width: 18px;
    height: 48px;
    flex: 0 0 18px;
    display: block;
    background: var(--lesson-type-color, #2446A8);
    border-radius: 999px;
    box-shadow: 0 0 0 4px color-mix(
        in srgb,
        var(--lesson-type-color, #2446A8) 15%,
        transparent
    );
}

.lesson-type-preview-box strong {
    display: block;
    margin-bottom: 4px;
}

.lesson-type-preview-box small {
    color: #64748B;
}

.lesson-type-color-field {
    display: flex;
    gap: 10px;
    align-items: center;
}

.lesson-type-color-field input[type="color"] {
    width: 58px;
    height: 42px;
    padding: 3px;
    cursor: pointer;
}

.lesson-type-color-field code {
    color: #334155;
    font-weight: 700;
}

.lesson-type-reset-form {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #E2E8F0;
}

.lesson-type-empty-editor {
    min-height: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 12px;
    color: #64748B;
    text-align: center;
}

.lesson-type-empty-editor span {
    font-size: 44px;
}

.lesson-type-filter {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 180px auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 16px;
}

.lesson-type-filter .form-actions {
    margin: 0;
    white-space: nowrap;
}

.lesson-type-name-cell {
    min-width: 260px;
    display: flex;
    gap: 12px;
    align-items: center;
}

.lesson-type-name-cell > span {
    height: 40px;
    flex-basis: 12px;
    width: 12px;
}

.lesson-type-name-cell strong,
.lesson-type-name-cell small {
    display: block;
}

.lesson-type-name-cell small {
    margin-top: 4px;
    color: #64748B;
}

.lesson-type-short-badge {
    display: inline-flex;
    padding: 6px 10px;
    color: #2446A8;
    font-weight: 700;
    white-space: nowrap;
    background: #EAF0FF;
    border-radius: 999px;
}

.lesson-type-column-name {
    display: block;
    margin-top: 5px;
    color: #64748B;
    font-size: 12px;
}

.lesson-type-table code {
    white-space: nowrap;
}

.lesson-type-table .row-actions form {
    display: inline-flex;
    margin: 0;
}

.lesson-type-stats {
    margin-bottom: 18px;
}

@media (max-width: 1150px) {
    .lesson-type-layout {
        grid-template-columns: 1fr;
    }

    .lesson-type-editor {
        position: static;
    }
}

@media (max-width: 760px) {
    .lesson-type-filter {
        grid-template-columns: 1fr;
    }

    .lesson-type-filter .form-actions {
        display: flex;
        flex-wrap: wrap;
    }
}

/* =========================================================
   Настройки уведомлений
   ========================================================= */

.notification-settings-layout {
    display: grid;
    grid-template-columns: minmax(330px, 460px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.notification-template-editor {
    position: sticky;
    top: 18px;
}

.notification-template-editor .panel-header p {
    margin: 5px 0 0;
    color: #64748B;
}

.notification-audience-line {
    display: flex;
    gap: 13px;
    align-items: center;
    padding: 14px;
    margin-bottom: 16px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 15px;
}

.notification-audience-line > span {
    width: 48px;
    height: 48px;
    display: flex;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    background: #EAF0FF;
    border-radius: 15px;
}

.notification-audience-line strong,
.notification-audience-line small {
    display: block;
}

.notification-audience-line small {
    margin-top: 4px;
    color: #64748B;
}

.notification-variables {
    padding: 13px;
    margin-top: 15px;
    background: #FFF7ED;
    border: 1px solid #FED7AA;
    border-radius: 14px;
}

.notification-variables strong {
    display: block;
    margin-bottom: 9px;
}

.notification-variables div {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.notification-variables code {
    padding: 5px 8px;
    color: #9A3412;
    background: #FFEDD5;
    border-radius: 7px;
}

.notification-reset-form {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #E2E8F0;
}

.notification-empty-editor {
    min-height: 250px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 12px;
    color: #64748B;
    text-align: center;
}

.notification-empty-editor span {
    font-size: 44px;
}

.notification-filter-form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 180px 180px auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 16px;
}

.notification-filter-form .form-actions {
    margin: 0;
    white-space: nowrap;
}

.notification-template-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.notification-template-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    gap: 13px;
    align-items: start;
    padding: 15px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 16px;
}

.notification-template-card.disabled {
    opacity: .65;
    background: #F8FAFC;
}

.notification-template-icon {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    background: #EAF0FF;
    border-radius: 16px;
}

.notification-template-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 9px;
}

.notification-template-head h3 {
    margin: 0 0 4px;
    font-size: 17px;
}

.notification-template-head code {
    color: #64748B;
    font-size: 12px;
}

.notification-template-content > strong {
    display: block;
    margin-bottom: 5px;
}

.notification-template-content > p {
    margin: 0;
    color: #64748B;
    line-height: 1.45;
}

.notification-template-card .row-actions form {
    display: inline-flex;
    margin: 0;
}

.notification-stats {
    margin-bottom: 18px;
}

@media (max-width: 1150px) {
    .notification-settings-layout {
        grid-template-columns: 1fr;
    }

    .notification-template-editor {
        position: static;
    }
}

@media (max-width: 850px) {
    .notification-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .notification-filter-form .form-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 650px) {
    .notification-filter-form {
        grid-template-columns: 1fr;
    }

    .notification-filter-form .form-actions {
        grid-column: auto;
    }

    .notification-template-card {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .notification-template-card > .row-actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }

    .notification-template-head {
        flex-direction: column;
    }
}
/* =========================================================
   Новый раздел отчетов и книжка успеваемости
   ========================================================= */

.reports-dashboard-section {
    margin-bottom: 26px;
}

.reports-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 13px;
}

.reports-section-heading > div {
    display: flex;
    gap: 12px;
    align-items: center;
}

.reports-section-heading > div > span {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #EAF0FF;
    border-radius: 14px;
}

.reports-section-heading h3,
.reports-section-heading p {
    margin: 0;
}

.reports-section-heading h3 {
    color: #0F172A;
    font-size: 20px;
}

.reports-section-heading p {
    margin-top: 3px;
    color: #64748B;
}

.reports-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.reports-dashboard-grid-featured {
    grid-template-columns: 1.7fr 1fr 1fr;
}

.reports-dashboard-grid-single {
    grid-template-columns: minmax(0, 1fr);
}

.report-card-compact {
    min-height: 190px;
    padding: 24px;
}

.report-card-featured {
    position: relative;
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 190px;
    padding: 26px;
    color: #FFFFFF;
    background: linear-gradient(135deg, #1E3A8A 0%, #3159C7 100%);
    border: 0;
}

.report-card-featured .report-icon {
    margin: 0;
    color: #1E3A8A;
    background: #FFFFFF;
}

.report-card-featured h3,
.report-card-featured p {
    color: #FFFFFF;
}

.report-card-featured p {
    opacity: .88;
    font-size: 16px;
}

.report-card-kicker {
    display: inline-flex;
    margin-bottom: 8px;
    padding: 5px 9px;
    color: #1E3A8A;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    background: #FFFFFF;
    border-radius: 999px;
}

.report-card-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    font-size: 24px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18);
}

.report-card-horizontal {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 130px;
    padding: 22px 26px;
}

.report-card-horizontal .report-icon {
    margin: 0;
}

.report-card-horizontal .report-card-arrow {
    color: #2446A8;
    background: #EAF0FF;
}

.gradebook-main-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 18px;
    overflow-x: auto;
    border-bottom: 1px solid #C9D3F5;
}

.gradebook-main-tabs a {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    padding: 14px 20px;
    color: #334155;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    border-top: 3px solid transparent;
    border-left: 1px solid transparent;
    border-right: 1px solid transparent;
}

.gradebook-main-tabs a.active {
    color: #2446A8;
    background: #FFFFFF;
    border-top-color: #2446A8;
    border-left-color: #C9D3F5;
    border-right-color: #C9D3F5;
}

.gradebook-main-tabs a span {
    min-width: 23px;
    height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
    font-size: 12px;
    background: #EAF0FF;
    border-radius: 999px;
}

.gradebook-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-bottom: 13px;
}

.gradebook-result-count {
    color: #2446A8;
    font-size: 15px;
}

.gradebook-filter-drawer {
    display: none;
    margin-bottom: 16px;
}

.gradebook-filter-drawer.open {
    display: block;
}

.gradebook-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 13px;
    align-items: end;
}

.gradebook-filter-grid .form-actions {
    margin: 0;
}

.gradebook-directory-table th,
.gradebook-directory-table td {
    vertical-align: middle;
}

.gradebook-list-panel {
    padding-top: 14px;
}

.gradebook-group-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.gradebook-group-summary > div {
    padding: 14px 16px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 15px;
}

.gradebook-group-summary span,
.gradebook-group-summary strong {
    display: block;
}

.gradebook-group-summary span {
    margin-bottom: 4px;
    color: #64748B;
    font-size: 13px;
}

.gradebook-student-filter {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 230px auto;
    gap: 13px;
    align-items: end;
}

.gradebook-student-filter .form-actions {
    margin: 0;
}

.gradebook-section-tabs {
    display: grid;
    grid-template-columns: repeat(8, minmax(130px, 1fr));
    gap: 10px;
    margin-bottom: 24px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.gradebook-section-tabs a {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 13px;
    color: #2446A8;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    background: #FFFFFF;
    border: 1px solid #2446A8;
    border-radius: 7px;
}

.gradebook-section-tabs a.active {
    color: #FFFFFF;
    background: #314AAE;
    box-shadow: 0 5px 12px rgba(49, 74, 174, .25);
}

.gradebook-year-selector {
    max-width: 360px;
    margin: 0 0 28px 110px;
}

.gradebook-title-layout {
    max-width: 1100px;
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 18px;
    margin: 0 auto;
    align-items: start;
}

.gradebook-photo-column {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.gradebook-student-photo {
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: #FFFFFF;
    font-size: 64px;
    font-weight: 700;
    background: linear-gradient(135deg, #3159C7, #1E3A8A);
    border: 1px solid #DDE4F0;
    border-radius: 13px;
}

.gradebook-student-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gradebook-title-card {
    padding: 24px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 16px;
}

.gradebook-college-name {
    margin-bottom: 15px;
    color: #64748B;
    font-weight: 700;
}

.gradebook-title-card h2 {
    margin: 0 0 7px;
    color: #2446A8;
    font-size: 25px;
}

.gradebook-title-card h3 {
    margin: 0 0 18px;
    color: #2446A8;
    font-size: 23px;
}

.gradebook-title-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 18px;
    margin: 0;
}

.gradebook-title-details > div {
    padding: 11px 13px;
    background: #F8FAFF;
    border-radius: 11px;
}

.gradebook-title-details dt {
    margin-bottom: 4px;
    color: #94A3B8;
    font-size: 13px;
}

.gradebook-title-details dd {
    margin: 0;
    color: #334155;
    font-weight: 700;
    line-height: 1.35;
}

.gradebook-data-panel {
    max-width: 1180px;
    margin: 0 auto;
}

.gradebook-data-table th {
    color: #2446A8;
    text-align: center;
    background: #F2F4FF;
}

.gradebook-data-table td {
    text-align: center;
    vertical-align: middle;
}

.gradebook-data-table td small {
    display: block;
    margin-top: 3px;
    color: #64748B;
}

.gradebook-table-title {
    padding: 12px;
    color: #2446A8;
    font-weight: 700;
    text-align: center;
    background: #F2F4FF;
    border: 1px solid #C9D3F5;
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
}

.gradebook-split-sections {
    display: flex;
    flex-direction: column;
    gap: 34px;
}

.gradebook-practice-table {
    min-width: 1250px;
}

.gradebook-empty-state {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 18px;
    color: #2446A8;
}

.gradebook-empty-state span {
    font-size: 24px;
}

.gradebook-empty-state p {
    margin: 0;
}

.gradebook-diploma-empty {
    min-height: 420px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.gradebook-diploma-art {
    width: 170px;
    height: 170px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    color: #4662C8;
    font-size: 130px;
    line-height: 1;
    background: #F1F5FF;
    border-radius: 50%;
}

.gradebook-diploma-empty h3 {
    margin: 0 0 7px;
    color: #0F172A;
}

.gradebook-diploma-empty p {
    max-width: 560px;
    margin: 0;
    color: #64748B;
}

@media (max-width: 1250px) {
    .reports-dashboard-grid-featured {
        grid-template-columns: 1fr 1fr;
    }

    .report-card-featured {
        grid-column: 1 / -1;
    }

    .gradebook-section-tabs {
        display: flex;
    }

    .gradebook-section-tabs a {
        min-width: 150px;
    }
}

@media (max-width: 950px) {
    .reports-dashboard-grid,
    .reports-dashboard-grid-featured {
        grid-template-columns: 1fr;
    }

    .report-card-featured {
        grid-column: auto;
    }

    .gradebook-filter-grid,
    .gradebook-group-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gradebook-title-layout {
        grid-template-columns: 220px minmax(0, 1fr);
    }

    .gradebook-title-details {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .report-card-featured,
    .report-card-horizontal {
        grid-template-columns: 1fr;
    }

    .report-card-arrow {
        display: none;
    }

    .gradebook-filter-grid,
    .gradebook-group-summary,
    .gradebook-student-filter,
    .gradebook-title-layout {
        grid-template-columns: 1fr;
    }

    .gradebook-year-selector {
        max-width: none;
        margin-left: 0;
    }

    .gradebook-student-photo {
        height: 260px;
    }

    .gradebook-main-tabs {
        padding-bottom: 3px;
    }
}

/* =========================================================
   Главная страница отчетов
   ========================================================= */

.reports-page-header {
    margin-bottom: 22px;
}

.reports-dashboard {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.reports-dashboard-section {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.reports-section-heading {
    display: flex;
    gap: 12px;
    align-items: center;
}

.reports-section-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 20px;

    background: #EAF0FF;
    border-radius: 13px;
}

.reports-section-heading h3 {
    margin: 0;
    color: #0F172A;
    font-size: 19px;
    font-weight: 700;
}

.reports-section-heading p {
    margin: 3px 0 0;
    color: #64748B;
    font-size: 14px;
}

.reports-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.report-card {
    min-height: 230px;

    display: flex;
    flex-direction: column;

    padding: 24px;

    color: #0F172A;
    text-decoration: none;

    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 20px;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease;
}

.report-card:hover {
    color: #0F172A;

    border-color: #9CB2EB;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .09);

    transform: translateY(-3px);
}

.report-card-top {
    min-height: 64px;

    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.report-icon {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 30px;

    background: #DDEBFF;
    border-radius: 18px;
}

.report-new-badge {
    display: inline-flex;
    align-items: center;

    padding: 6px 10px;

    color: #FFFFFF;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;

    background: rgba(255, 255, 255, .2);
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 999px;
}

.report-card-content {
    flex: 1;
    margin-top: 18px;
}

.report-card-content h3 {
    margin: 0 0 10px;

    color: inherit;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
}

.report-card-content p {
    margin: 0;

    color: #64748B;
    font-size: 15px;
    line-height: 1.55;
}

.report-card-footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;

    padding-top: 17px;
    margin-top: 17px;

    color: #2446A8;
    font-size: 14px;
    font-weight: 700;

    border-top: 1px solid #E8EDF5;
}

.report-card-arrow {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 20px;

    background: #EAF0FF;
    border-radius: 12px;

    transition:
        transform .2s ease,
        background .2s ease;
}

.report-card:hover .report-card-arrow {
    color: #FFFFFF;
    background: #2446A8;
    transform: translateX(3px);
}

/* Выделенная книжка успеваемости */

.report-card-featured {
    color: #FFFFFF;

    background:
        linear-gradient(
            135deg,
            #1F3A8A 0%,
            #315BC9 100%
        );

    border-color: transparent;
}

.report-card-featured:hover {
    color: #FFFFFF;
    border-color: transparent;

    box-shadow: 0 18px 38px rgba(36, 70, 168, .28);
}

.report-card-featured .report-icon {
    background: #FFFFFF;
}

.report-card-featured .report-card-content p {
    color: rgba(255, 255, 255, .84);
}

.report-card-featured .report-card-footer {
    color: #FFFFFF;
    border-top-color: rgba(255, 255, 255, .2);
}

.report-card-featured .report-card-arrow {
    color: #2446A8;
    background: #FFFFFF;
}

.report-card-featured:hover .report-card-arrow {
    color: #2446A8;
    background: #FFFFFF;
}

/* Проблемные журналы */

.report-card-warning .report-icon {
    background: #FFF3CD;
}

/* Адаптивность */

@media (max-width: 1150px) {
    .reports-dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .reports-dashboard {
        gap: 23px;
    }

    .reports-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .report-card {
        min-height: 210px;
        padding: 20px;
    }

    .report-icon {
        width: 56px;
        height: 56px;
        flex-basis: 56px;
        font-size: 26px;
    }

    .report-card-content h3 {
        font-size: 20px;
    }
}

/* =========================================================
   REPORTS PAGE — FINAL FIX
   Этот блок должен находиться в самом конце app.css
   ========================================================= */

.reports-dashboard {
    display: flex;
    flex-direction: column;
    gap: 28px;
    width: 100%;
}

/* Раздел отчётов */

.reports-dashboard .reports-dashboard-section {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
}

/* Заголовок раздела */

.reports-dashboard .reports-section-heading {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    margin: 0 0 14px;
}

.reports-dashboard .reports-section-heading > div {
    display: block;
}

.reports-dashboard
.reports-section-heading
> .reports-section-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 20px;
    background: #EAF0FF;
    border-radius: 13px;
}

.reports-dashboard .reports-section-heading h3 {
    margin: 0;
    color: #0F172A;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
}

.reports-dashboard .reports-section-heading p {
    margin: 3px 0 0;
    color: #64748B;
    font-size: 14px;
    line-height: 1.4;
}

/* Сетка */

.reports-dashboard .reports-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    width: 100%;
}

/* Основная карточка */

.reports-dashboard .report-card {
    position: relative;
    min-width: 0;
    min-height: 250px;
    overflow: hidden;

    display: flex;
    flex-direction: column;

    padding: 24px;

    color: #0F172A;
    text-decoration: none;

    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 20px;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease;
}

.reports-dashboard .report-card:hover {
    color: #0F172A;
    border-color: #9CB2EB;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .09);
    transform: translateY(-3px);
}

/*
 * Сбрасываем старое правило .report-card span.
 * Иначе каждый span получает размер 54×54.
 */
.reports-dashboard .report-card span {
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 0;

    display: inline;

    padding: 0;
    margin: 0;

    color: inherit;
    font-size: inherit;
    line-height: inherit;

    background: transparent;
    border: 0;
    border-radius: 0;
}

/* Верх карточки */

.reports-dashboard .report-card-top {
    min-height: 64px;

    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

/* Иконка */

.reports-dashboard .report-icon {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;
    margin: 0;

    font-size: 30px;
    line-height: 1;

    color: #0F172A;
    background: #DDEBFF;
    border-radius: 18px;
}

/* Метка "Новый" */

.reports-dashboard .report-new-badge {
    width: auto;
    height: auto;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 6px 11px;
    margin: 0;

    color: #FFFFFF;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;

    background: rgba(255, 255, 255, .18);
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
}

/* Текст карточки */

.reports-dashboard .report-card-content {
    flex: 1;
    min-width: 0;
    margin-top: 18px;
}

.reports-dashboard .report-card-content h3 {
    margin: 0 0 10px;

    color: #0F172A;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
}

.reports-dashboard .report-card-content p {
    margin: 0;

    color: #64748B;
    font-size: 15px;
    line-height: 1.55;
}

/* Нижняя часть карточки */

.reports-dashboard .report-card-footer {
    width: 100%;

    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;

    padding-top: 17px;
    margin-top: auto;

    color: #2446A8;
    font-size: 14px;
    font-weight: 700;

    border-top: 1px solid #E8EDF5;
}

.reports-dashboard
.report-card-footer
> span:not(.report-card-arrow) {
    width: auto;
    height: auto;

    display: block;

    padding: 0;
    margin: 0;

    color: inherit;
    font-size: 14px;
    line-height: 1.3;
    white-space: normal;

    background: transparent;
    border-radius: 0;
}

/* Стрелка */

.reports-dashboard .report-card-arrow {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;
    margin: 0;

    color: #2446A8;
    font-size: 20px;
    line-height: 1;

    background: #EAF0FF;
    border-radius: 12px;

    transition:
        transform .2s ease,
        background .2s ease,
        color .2s ease;
}

.reports-dashboard
.report-card:hover
.report-card-arrow {
    color: #FFFFFF;
    background: #2446A8;
    transform: translateX(3px);
}

/* =========================================================
   Выделенная книжка успеваемости
   ========================================================= */

.reports-dashboard .report-card-featured {
    color: #FFFFFF;

    background:
        linear-gradient(
            135deg,
            #1F3A8A 0%,
            #315BC9 100%
        );

    border-color: transparent;
}

.reports-dashboard .report-card-featured:hover {
    color: #FFFFFF;
    border-color: transparent;
    box-shadow: 0 18px 38px rgba(36, 70, 168, .28);
}

.reports-dashboard
.report-card-featured
.report-icon {
    color: #1F3A8A;
    background: #FFFFFF;
}

.reports-dashboard
.report-card-featured
.report-card-content h3 {
    color: #FFFFFF;
}

.reports-dashboard
.report-card-featured
.report-card-content p {
    color: rgba(255, 255, 255, .86);
}

.reports-dashboard
.report-card-featured
.report-card-footer {
    color: #FFFFFF;
    border-top-color: rgba(255, 255, 255, .20);
}

.reports-dashboard
.report-card-featured
.report-card-footer
> span:not(.report-card-arrow) {
    color: #FFFFFF;
}

.reports-dashboard
.report-card-featured
.report-card-arrow {
    color: #2446A8;
    background: #FFFFFF;
}

.reports-dashboard
.report-card-featured:hover
.report-card-arrow {
    color: #2446A8;
    background: #FFFFFF;
}

/* Проблемные журналы */

.reports-dashboard
.report-card-warning
.report-icon {
    background: #FFF3CD;
}

/* Нагрузка — одна карточка остаётся обычной ширины колонки */

.reports-dashboard
.reports-dashboard-grid
> .report-card:only-child {
    grid-column: auto;
}

/* =========================================================
   Адаптивность
   ========================================================= */

@media (max-width: 1150px) {
    .reports-dashboard .reports-dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .reports-dashboard {
        gap: 23px;
    }

    .reports-dashboard .reports-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .reports-dashboard .report-card {
        min-height: 220px;
        padding: 20px;
    }

    .reports-dashboard .report-icon {
        width: 56px;
        height: 56px;
        flex-basis: 56px;
        font-size: 26px;
    }

    .reports-dashboard
    .report-card-content h3 {
        font-size: 20px;
    }

    .reports-dashboard
    .report-new-badge {
        padding: 5px 9px;
        font-size: 10px;
    }
}

/* =========================================================
   Отчет по успеваемости
   ========================================================= */

.performance-filter-panel {
    margin-bottom: 18px;
}

.performance-filter-grid {
    display: grid;
    grid-template-columns:
        minmax(230px, 1.5fr)
        repeat(3, minmax(170px, 1fr));
    gap: 14px;
}

.performance-filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 4px;
}

.performance-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}

.performance-stat-card {
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 16px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 17px;
}

.performance-stat-card > span {
    width: 45px;
    height: 45px;
    flex: 0 0 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    background: #EAF0FF;
    border-radius: 14px;
}

.performance-stat-card strong {
    display: block;
    color: #0F172A;
    font-size: 24px;
    line-height: 1.1;
}

.performance-stat-card p {
    margin: 4px 0 0;
    color: #64748B;
    font-size: 13px;
}

.performance-stat-card.excellent > span {
    background: #DCFCE7;
}

.performance-stat-card.good > span {
    background: #DBEAFE;
}

.performance-stat-card.risk > span {
    background: #FEE2E2;
}

.performance-quality-panel {
    margin-bottom: 18px;
}

.performance-quality-panel > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.performance-quality-panel > div:first-child span {
    color: #475569;
    font-weight: 700;
}

.performance-quality-panel > div:first-child strong {
    color: #2446A8;
    font-size: 24px;
}

.performance-quality-track {
    height: 11px;
    overflow: hidden;
    margin: 12px 0 8px;
    background: #E2E8F0;
    border-radius: 999px;
}

.performance-quality-track span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #2446A8, #4F7BE8);
    border-radius: 999px;
}

.performance-quality-panel small {
    color: #64748B;
}

.performance-table {
    min-width: 1150px;
}

.performance-score {
    color: #2446A8;
    font-size: 17px;
    font-weight: 700;
}

.performance-category {
    display: inline-flex;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    border-radius: 999px;
}

.performance-category.excellent {
    color: #166534;
    background: #DCFCE7;
}

.performance-category.good {
    color: #1E40AF;
    background: #DBEAFE;
}

.performance-category.satisfactory {
    color: #92400E;
    background: #FEF3C7;
}

.performance-category.risk {
    color: #991B1B;
    background: #FEE2E2;
}

.performance-category.muted {
    color: #475569;
    background: #E2E8F0;
}

.performance-subtext {
    display: block;
    margin-top: 4px;
    color: #64748B;
    font-size: 12px;
}

.performance-student-card {
    display: flex;
    gap: 18px;
    align-items: center;
    margin-bottom: 18px;
}

.performance-student-avatar {
    width: 76px;
    height: 76px;
    flex: 0 0 76px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-size: 30px;
    font-weight: 700;
    background: #2446A8;
    border-radius: 22px;
}

.performance-student-info {
    min-width: 0;
}

.performance-student-info h3 {
    margin: 0 0 12px;
    font-size: 23px;
}

.performance-student-info > div {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.performance-student-info > div > span {
    min-width: 130px;
    padding: 9px 11px;
    background: #F8FAFC;
    border-radius: 11px;
}

.performance-student-info small,
.performance-student-info strong {
    display: block;
}

.performance-student-info small {
    margin-bottom: 4px;
    color: #64748B;
}

.performance-detail-filter {
    margin-bottom: 18px;
}

.performance-detail-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr)) auto;
    gap: 14px;
    align-items: end;
}

.performance-detail-filter-grid .form-actions {
    margin: 0;
}

.performance-detail-table {
    min-width: 1350px;
}

.performance-journal-link {
    color: #2446A8;
    font-weight: 700;
    text-decoration: none;
}

.performance-journal-link:hover {
    text-decoration: underline;
}

.page-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

@media (max-width: 1250px) {
    .performance-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .performance-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .performance-search-field {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .performance-stat-grid,
    .performance-filter-grid,
    .performance-detail-filter-grid {
        grid-template-columns: 1fr;
    }

    .performance-search-field {
        grid-column: auto;
    }

    .performance-student-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .page-header-actions,
    .performance-filter-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* =========================================================
   Отчет успеваемости — вкладка «По предметам»
   ========================================================= */

.performance-report-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 18px;
    padding: 5px;
    width: fit-content;
    background: #EAF0FF;
    border-radius: 14px;
}

.performance-report-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 170px;
    padding: 11px 16px;
    color: #2446A8;
    font-weight: 700;
    text-decoration: none;
    border-radius: 10px;
}

.performance-report-tabs a.active {
    color: #FFFFFF;
    background: #2446A8;
    box-shadow: 0 6px 14px rgba(36, 70, 168, .2);
}

.performance-subject-filter-panel {
    margin-bottom: 18px;
}

.performance-subject-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 14px;
}

.performance-subject-empty {
    min-height: 280px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    color: #64748B;
}

.performance-subject-empty > span {
    font-size: 48px;
}

.performance-subject-empty h3 {
    margin: 14px 0 7px;
    color: #0F172A;
}

.performance-subject-empty p {
    max-width: 620px;
    margin: 0;
}

.performance-subject-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.performance-subject-summary > div {
    padding: 13px 15px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 13px;
}

.performance-subject-summary small,
.performance-subject-summary strong {
    display: block;
}

.performance-subject-summary small {
    margin-bottom: 5px;
    color: #64748B;
}

.performance-subject-summary strong {
    color: #0F172A;
    font-size: 18px;
}

.performance-subject-group-info {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 26px;
    margin-bottom: 14px;
}

.performance-subject-group-info p {
    margin: 0;
    color: #475569;
}

.performance-subject-matrix-panel .panel-header p {
    margin: 5px 0 0;
    color: #64748B;
}

.performance-subject-table-wrap {
    width: 100%;
    overflow: auto;
    border: 1px solid #CBD5E1;
    border-radius: 12px;
}

.performance-subject-table {
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.performance-subject-table th,
.performance-subject-table td {
    min-width: 145px;
    padding: 11px 12px;
    text-align: center;
    vertical-align: middle;
    border-right: 1px solid #CBD5E1;
    border-bottom: 1px solid #CBD5E1;
}

.performance-subject-table th:last-child,
.performance-subject-table td:last-child {
    border-right: 0;
}

.performance-subject-table tbody tr:last-child td {
    border-bottom: 0;
}

.performance-subject-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    color: #1E3A8A;
    background: #EEF2FF;
}

.performance-subject-table tbody tr:nth-child(even) td {
    background: #F8FAFC;
}

.performance-subject-table tbody tr:nth-child(odd) td {
    background: #FFFFFF;
}

.performance-subject-number {
    min-width: 55px !important;
    width: 55px;
    position: sticky;
    left: 0;
    z-index: 4;
}

.performance-subject-student {
    min-width: 250px !important;
    width: 250px;
    position: sticky;
    left: 55px;
    z-index: 4;
    text-align: left !important;
}

.performance-subject-table thead .performance-subject-number,
.performance-subject-table thead .performance-subject-student {
    z-index: 6;
    background: #E0E7FF;
}

.performance-subject-table tbody tr:nth-child(even) .performance-subject-number,
.performance-subject-table tbody tr:nth-child(even) .performance-subject-student {
    background: #F8FAFC;
}

.performance-subject-table tbody tr:nth-child(odd) .performance-subject-number,
.performance-subject-table tbody tr:nth-child(odd) .performance-subject-student {
    background: #FFFFFF;
}

.performance-subject-student strong,
.performance-subject-student small {
    display: block;
}

.performance-subject-student small {
    margin-top: 4px;
    color: #64748B;
    font-size: 12px;
}

.performance-subject-column {
    min-width: 180px !important;
    max-width: 240px;
    white-space: normal;
}

.performance-subject-column strong,
.performance-subject-column span,
.performance-subject-column small {
    display: block;
}

.performance-subject-column strong {
    color: #0F172A;
    font-size: 15px;
}

.performance-subject-column span {
    margin-top: 5px;
    color: #334155;
    font-weight: 600;
    line-height: 1.35;
}

.performance-subject-column small {
    margin-top: 7px;
    color: #64748B;
}

.performance-subject-grade {
    color: #2446A8;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
}

.performance-subject-no-grade {
    color: #94A3B8;
    font-weight: 500;
}

@media (max-width: 1000px) {
    .performance-subject-filter-grid,
    .performance-subject-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .performance-report-tabs {
        width: 100%;
    }

    .performance-report-tabs a {
        min-width: 0;
        flex: 1;
    }

    .performance-subject-filter-grid,
    .performance-subject-summary {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Отчет успеваемости — вкладка «По предметам»
   ========================================================= */

.performance-report-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 18px;
    padding: 5px;
    width: fit-content;
    background: #EAF0FF;
    border-radius: 14px;
}

.performance-report-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 170px;
    padding: 11px 16px;
    color: #2446A8;
    font-weight: 700;
    text-decoration: none;
    border-radius: 10px;
}

.performance-report-tabs a.active {
    color: #FFFFFF;
    background: #2446A8;
    box-shadow: 0 6px 14px rgba(36, 70, 168, .2);
}

.performance-subject-filter-panel {
    margin-bottom: 18px;
}

.performance-subject-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 14px;
}

.performance-subject-empty {
    min-height: 280px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    color: #64748B;
}

.performance-subject-empty > span {
    font-size: 48px;
}

.performance-subject-empty h3 {
    margin: 14px 0 7px;
    color: #0F172A;
}

.performance-subject-empty p {
    max-width: 620px;
    margin: 0;
}

.performance-subject-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.performance-subject-summary > div {
    padding: 13px 15px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 13px;
}

.performance-subject-summary small,
.performance-subject-summary strong {
    display: block;
}

.performance-subject-summary small {
    margin-bottom: 5px;
    color: #64748B;
}

.performance-subject-summary strong {
    color: #0F172A;
    font-size: 18px;
}

.performance-subject-group-info {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 26px;
    margin-bottom: 14px;
}

.performance-subject-group-info p {
    margin: 0;
    color: #475569;
}

.performance-subject-matrix-panel .panel-header p {
    margin: 5px 0 0;
    color: #64748B;
}

.performance-subject-table-wrap {
    width: 100%;
    overflow: auto;
    border: 1px solid #CBD5E1;
    border-radius: 12px;
}

.performance-subject-table {
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.performance-subject-table th,
.performance-subject-table td {
    min-width: 145px;
    padding: 11px 12px;
    text-align: center;
    vertical-align: middle;
    border-right: 1px solid #CBD5E1;
    border-bottom: 1px solid #CBD5E1;
}

.performance-subject-table th:last-child,
.performance-subject-table td:last-child {
    border-right: 0;
}

.performance-subject-table tbody tr:last-child td {
    border-bottom: 0;
}

.performance-subject-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    color: #1E3A8A;
    background: #EEF2FF;
}

.performance-subject-table tbody tr:nth-child(even) td {
    background: #F8FAFC;
}

.performance-subject-table tbody tr:nth-child(odd) td {
    background: #FFFFFF;
}

.performance-subject-number {
    min-width: 55px !important;
    width: 55px;
    position: sticky;
    left: 0;
    z-index: 4;
}

.performance-subject-student {
    min-width: 250px !important;
    width: 250px;
    position: sticky;
    left: 55px;
    z-index: 4;
    text-align: left !important;
}

.performance-subject-table thead .performance-subject-number,
.performance-subject-table thead .performance-subject-student {
    z-index: 6;
    background: #E0E7FF;
}

.performance-subject-table tbody tr:nth-child(even) .performance-subject-number,
.performance-subject-table tbody tr:nth-child(even) .performance-subject-student {
    background: #F8FAFC;
}

.performance-subject-table tbody tr:nth-child(odd) .performance-subject-number,
.performance-subject-table tbody tr:nth-child(odd) .performance-subject-student {
    background: #FFFFFF;
}

.performance-subject-student strong,
.performance-subject-student small {
    display: block;
}

.performance-subject-student small {
    margin-top: 4px;
    color: #64748B;
    font-size: 12px;
}

.performance-subject-column {
    min-width: 180px !important;
    max-width: 240px;
    white-space: normal;
}

.performance-subject-column strong,
.performance-subject-column span,
.performance-subject-column small {
    display: block;
}

.performance-subject-column strong {
    color: #0F172A;
    font-size: 15px;
}

.performance-subject-column span {
    margin-top: 5px;
    color: #334155;
    font-weight: 600;
    line-height: 1.35;
}

.performance-subject-column small {
    margin-top: 7px;
    color: #64748B;
}

.performance-subject-grade {
    color: #2446A8;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
}

.performance-subject-no-grade {
    color: #94A3B8;
    font-weight: 500;
}

@media (max-width: 1000px) {
    .performance-subject-filter-grid,
    .performance-subject-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .performance-report-tabs {
        width: 100%;
    }

    .performance-report-tabs a {
        min-width: 0;
        flex: 1;
    }

    .performance-subject-filter-grid,
    .performance-subject-summary {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   Группировка РО по профессиональным модулям
   ========================================================= */

.performance-subject-module-row th {
    top: 0 !important;
    min-height: 58px;
    color: #172554;
    background: #C7D2FE !important;
}

.performance-subject-ro-row th {
    top: 58px !important;
    background: #EEF2FF !important;
}

.performance-subject-module {
    min-width: 180px;
    padding: 14px 16px !important;
    border-bottom-color: #A5B4FC !important;
}

.performance-subject-module strong {
    display: block;
    color: #172554;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
}

.performance-subject-module-row
.performance-subject-number,
.performance-subject-module-row
.performance-subject-student {
    top: 0 !important;
    z-index: 8 !important;
    vertical-align: middle;
    background: #C7D2FE !important;
}

.performance-subject-column.module-start,
.performance-subject-grade.module-start {
    border-left: 3px solid #818CF8 !important;
}

.performance-subject-ro-row
.performance-subject-column.module-start {
    box-shadow: inset 2px 0 0 #818CF8;
}

/* =========================================================
   Отчет «Посещаемость»
   ========================================================= */

.attendance-filter-panel,
.attendance-student-filter,
.attendance-student-period {
    margin-bottom: 18px;
}

.attendance-filter-grid {
    display: grid;
    grid-template-columns:
        minmax(250px, 1.5fr)
        repeat(3, minmax(165px, 1fr));
    gap: 14px;
}

.attendance-search-field {
    grid-column: span 1;
}

.attendance-filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

.attendance-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}

.attendance-stat-card {
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 16px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 17px;
}

.attendance-stat-card > span {
    width: 45px;
    height: 45px;
    flex: 0 0 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    background: #EAF0FF;
    border-radius: 14px;
}

.attendance-stat-card strong {
    display: block;
    color: #0F172A;
    font-size: 23px;
    line-height: 1.1;
}

.attendance-stat-card p {
    margin: 4px 0 0;
    color: #64748B;
    font-size: 13px;
}

.attendance-stat-card.excellent > span {
    background: #DCFCE7;
}

.attendance-stat-card.warning > span {
    background: #FEF3C7;
}

.attendance-stat-card.danger > span {
    background: #FEE2E2;
}

.attendance-method-note {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-bottom: 18px;
    color: #475569;
    background: #F8FAFC;
}

.attendance-method-note strong {
    color: #0F172A;
    white-space: nowrap;
}

.attendance-group-table {
    min-width: 1450px;
}

.attendance-student-table {
    min-width: 1220px;
}

.attendance-days-table {
    min-width: 980px;
}

.attendance-subtext {
    display: block;
    margin-top: 4px;
    color: #64748B;
    font-size: 12px;
}

.attendance-progress {
    min-width: 115px;
}

.attendance-progress > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: baseline;
    margin-bottom: 6px;
}

.attendance-progress span {
    color: #0F172A;
    font-size: 14px;
    font-weight: 700;
}

.attendance-progress small {
    color: #64748B;
    font-size: 11px;
}

.attendance-progress-track {
    height: 8px;
    overflow: hidden;
    background: #E2E8F0;
    border-radius: 999px;
}

.attendance-progress-track b {
    display: block;
    height: 100%;
    border-radius: inherit;
}

.attendance-progress-track b.excellent {
    background: #16A34A;
}

.attendance-progress-track b.good {
    background: #2563EB;
}

.attendance-progress-track b.warning {
    background: #D97706;
}

.attendance-progress-track b.danger {
    background: #DC2626;
}

.attendance-progress-track b.muted {
    background: #94A3B8;
}

.attendance-progress-track b.completeness {
    background: #7C3AED;
}

.attendance-percent-badge {
    display: inline-flex;
    min-width: 68px;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    font-size: 13px;
    font-weight: 700;
    border-radius: 999px;
}

.attendance-percent-badge.excellent {
    color: #166534;
    background: #DCFCE7;
}

.attendance-percent-badge.good {
    color: #1E40AF;
    background: #DBEAFE;
}

.attendance-percent-badge.warning {
    color: #92400E;
    background: #FEF3C7;
}

.attendance-percent-badge.danger {
    color: #991B1B;
    background: #FEE2E2;
}

.attendance-percent-badge.muted {
    color: #475569;
    background: #E2E8F0;
}

.attendance-completeness-text {
    color: #7C3AED;
    font-weight: 700;
}

.attendance-group-info {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.attendance-group-info > div {
    padding: 13px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 13px;
}

.attendance-group-info small,
.attendance-group-info strong {
    display: block;
}

.attendance-group-info small {
    margin-bottom: 5px;
    color: #64748B;
}

.attendance-group-info strong {
    color: #0F172A;
}

.attendance-group-filter-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) repeat(2, minmax(170px, 1fr)) auto;
    gap: 14px;
    align-items: end;
}

.attendance-group-filter-grid .form-actions,
.attendance-period-grid .form-actions {
    margin: 0;
}

.attendance-student-profile {
    display: flex;
    gap: 18px;
    align-items: center;
    margin-bottom: 18px;
}

.attendance-student-avatar {
    width: 76px;
    height: 76px;
    flex: 0 0 76px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-size: 30px;
    font-weight: 700;
    background: #2446A8;
    border-radius: 22px;
}

.attendance-student-profile-info {
    min-width: 0;
}

.attendance-student-profile-info h3 {
    margin: 0 0 12px;
    font-size: 23px;
}

.attendance-student-profile-info > div {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.attendance-student-profile-info > div > span {
    min-width: 135px;
    padding: 9px 11px;
    background: #F8FAFC;
    border-radius: 11px;
}

.attendance-student-profile-info small,
.attendance-student-profile-info strong {
    display: block;
}

.attendance-student-profile-info small {
    margin-bottom: 4px;
    color: #64748B;
}

.attendance-period-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(190px, 1fr)) auto;
    gap: 14px;
    align-items: end;
}

.attendance-day-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.attendance-day-card {
    overflow: hidden;
    border: 1px solid #DDE4F0;
    border-radius: 16px;
}

.attendance-day-head {
    padding: 13px 16px;
    background: #EEF3FF;
    border-bottom: 1px solid #DDE4F0;
}

.attendance-day-head strong {
    color: #1E3A8A;
    font-size: 16px;
}

.attendance-lesson-list {
    display: flex;
    flex-direction: column;
}

.attendance-lesson-row {
    display: grid;
    grid-template-columns: 150px minmax(260px, 1fr) minmax(230px, .7fr);
    gap: 15px;
    align-items: center;
    padding: 15px 16px;
    background: #FFFFFF;
    border-bottom: 1px solid #EDF1F7;
}

.attendance-lesson-row:last-child {
    border-bottom: 0;
}

.attendance-lesson-status {
    display: flex;
    gap: 9px;
    align-items: center;
}

.attendance-lesson-status > span {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    border-radius: 11px;
}

.attendance-lesson-status small {
    font-weight: 700;
}

.attendance-lesson-status.present > span {
    color: #166534;
    background: #DCFCE7;
}

.attendance-lesson-status.absent > span {
    color: #991B1B;
    background: #FEE2E2;
}

.attendance-lesson-status.late > span {
    color: #92400E;
    background: #FEF3C7;
}

.attendance-lesson-status.excused > span {
    color: #075985;
    background: #E0F2FE;
}

.attendance-lesson-status.unmarked > span {
    color: #475569;
    background: #E2E8F0;
}

.attendance-lesson-main strong {
    display: block;
    margin-bottom: 5px;
    color: #0F172A;
}

.attendance-lesson-main p {
    margin: 0;
    color: #64748B;
    line-height: 1.45;
}

.attendance-lesson-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 13px;
    align-items: center;
    color: #475569;
    font-size: 13px;
}

.attendance-journal-link {
    color: #2446A8;
    font-weight: 700;
    text-decoration: none;
}

.attendance-journal-link:hover {
    text-decoration: underline;
}

@media (max-width: 1250px) {
    .attendance-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .attendance-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .attendance-search-field {
        grid-column: 1 / -1;
    }

    .attendance-group-info {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .attendance-group-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .attendance-group-filter-grid .form-actions {
        grid-column: 1 / -1;
    }

    .attendance-lesson-row {
        grid-template-columns: 140px minmax(220px, 1fr);
    }

    .attendance-lesson-meta {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .attendance-filter-grid,
    .attendance-stat-grid,
    .attendance-group-info,
    .attendance-group-filter-grid,
    .attendance-period-grid {
        grid-template-columns: 1fr;
    }

    .attendance-search-field,
    .attendance-group-filter-grid .form-actions {
        grid-column: auto;
    }

    .attendance-filter-actions,
    .attendance-group-filter-grid .form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .attendance-method-note {
        flex-direction: column;
    }

    .attendance-method-note strong {
        white-space: normal;
    }

    .attendance-student-profile {
        align-items: flex-start;
        flex-direction: column;
    }

    .attendance-lesson-row {
        grid-template-columns: 1fr;
    }

    .attendance-lesson-meta {
        grid-column: auto;
    }
}

/* =========================================================
   Отчёт «Учебные планы»
   ========================================================= */

.plan-report-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 18px;
    padding: 7px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 17px;
}

.plan-report-tabs a {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    padding: 10px 15px;
    color: #475569;
    font-weight: 700;
    text-decoration: none;
    border-radius: 12px;
}

.plan-report-tabs a:hover {
    color: #2446A8;
    background: #F1F5FF;
}

.plan-report-tabs a.active {
    color: #FFFFFF;
    background: #2446A8;
}

.plan-report-filter-panel,
.plan-report-plan-selector {
    margin-bottom: 18px;
}

.plan-report-filter-grid {
    display: grid;
    grid-template-columns:
        minmax(250px, 1.5fr)
        repeat(3, minmax(165px, 1fr));
    gap: 14px;
}

.plan-report-search {
    grid-column: span 1;
}

.plan-report-filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

.plan-report-selector-grid {
    display: grid;
    grid-template-columns:
        minmax(320px, 2fr)
        repeat(2, minmax(160px, .7fr))
        auto;
    gap: 14px;
    align-items: end;
}

.plan-report-selector-grid .form-actions {
    margin: 0;
}

.plan-report-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}

.plan-report-stat-card {
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 16px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 17px;
}

.plan-report-stat-card > span {
    width: 45px;
    height: 45px;
    flex: 0 0 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    background: #EAF0FF;
    border-radius: 14px;
}

.plan-report-stat-card strong {
    display: block;
    color: #0F172A;
    font-size: 23px;
    line-height: 1.1;
}

.plan-report-stat-card p {
    margin: 4px 0 0;
    color: #64748B;
    font-size: 13px;
}

.plan-report-stat-card.success > span {
    background: #DCFCE7;
}

.plan-report-stat-card.info > span {
    background: #DBEAFE;
}

.plan-report-stat-card.warning > span {
    background: #FEF3C7;
}

.plan-report-stat-card.danger > span {
    background: #FEE2E2;
}

.plan-report-summary-table {
    min-width: 1500px;
}

.plan-report-structure-table {
    min-width: 1800px;
}

.plan-report-execution-table {
    min-width: 1250px;
}

.plan-report-subtext {
    display: block;
    margin-top: 4px;
    color: #64748B;
    font-size: 12px;
}

.plan-report-progress {
    min-width: 120px;
}

.plan-report-progress > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: baseline;
    margin-bottom: 6px;
}

.plan-report-progress span {
    color: #0F172A;
    font-weight: 700;
}

.plan-report-progress small {
    color: #64748B;
    font-size: 11px;
}

.plan-report-progress-track {
    height: 8px;
    overflow: hidden;
    background: #E2E8F0;
    border-radius: 999px;
}

.plan-report-progress-track b {
    display: block;
    height: 100%;
    border-radius: inherit;
}

.plan-report-progress-track b.excellent {
    background: #16A34A;
}

.plan-report-progress-track b.good {
    background: #2563EB;
}

.plan-report-progress-track b.warning {
    background: #D97706;
}

.plan-report-progress-track b.danger {
    background: #DC2626;
}

.plan-report-progress-track b.over {
    background: #7C3AED;
}

.plan-report-progress-track b.muted {
    background: #94A3B8;
}

.plan-report-problem-count {
    min-width: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 9px;
    color: #166534;
    font-weight: 700;
    background: #DCFCE7;
    border-radius: 999px;
}

.plan-report-problem-count.has-problems {
    color: #991B1B;
    background: #FEE2E2;
}

.plan-report-plan-info {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.plan-report-plan-info > div {
    min-width: 0;
    padding: 13px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 13px;
}

.plan-report-plan-info small,
.plan-report-plan-info strong {
    display: block;
}

.plan-report-plan-info small {
    margin-bottom: 5px;
    color: #64748B;
}

.plan-report-plan-info strong {
    color: #0F172A;
    line-height: 1.4;
}

.plan-report-item-name {
    min-width: 300px;
    padding-left: calc(var(--plan-depth, 0) * 24px);
}

.plan-report-item-name strong,
.plan-report-item-name small {
    display: block;
}

.plan-report-item-name small {
    margin-top: 4px;
    color: #64748B;
    font-size: 12px;
}

.plan-report-row-category td {
    color: #172554;
    font-weight: 700;
    background: #DBEAFE !important;
}

.plan-report-row-module td {
    font-weight: 700;
    background: #EEF3FF !important;
}

.plan-report-row-ro td {
    background: #FFFFFF;
}

.plan-report-row-practice td {
    background: #F0FDF4 !important;
}

.plan-report-row-elective td {
    background: #FFF7ED !important;
}

.plan-report-execution-stats {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.plan-report-problem-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.plan-report-problem-list {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.plan-report-problem-item {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 13px;
    padding: 14px;
    border: 1px solid #E2E8F0;
    border-left-width: 5px;
    border-radius: 15px;
}

.plan-report-problem-item.error {
    background: #FFF7F7;
    border-left-color: #DC2626;
}

.plan-report-problem-item.warning {
    background: #FFFBEB;
    border-left-color: #D97706;
}

.plan-report-problem-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #FFFFFF;
    border-radius: 14px;
}

.plan-report-problem-content > div {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: center;
}

.plan-report-problem-content p {
    margin: 8px 0 0;
    color: #475569;
    line-height: 1.5;
}

.plan-report-no-problems {
    display: flex;
    gap: 15px;
    align-items: center;
    padding: 24px;
    color: #166534;
    background: #F0FDF4;
    border: 1px solid #BBF7D0;
    border-radius: 17px;
}

.plan-report-no-problems > span {
    font-size: 36px;
}

.plan-report-no-problems strong {
    display: block;
    margin-bottom: 5px;
    font-size: 18px;
}

.plan-report-no-problems p {
    margin: 0;
    color: #15803D;
}

@media (max-width: 1250px) {
    .plan-report-stat-grid,
    .plan-report-execution-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .plan-report-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .plan-report-search {
        grid-column: 1 / -1;
    }

    .plan-report-plan-info {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 850px) {
    .plan-report-selector-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .plan-report-selector-grid .form-group:first-of-type,
    .plan-report-selector-grid .form-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .plan-report-filter-grid,
    .plan-report-stat-grid,
    .plan-report-plan-info,
    .plan-report-selector-grid,
    .plan-report-problem-stats,
    .plan-report-execution-stats {
        grid-template-columns: 1fr;
    }

    .plan-report-search,
    .plan-report-selector-grid .form-group:first-of-type,
    .plan-report-selector-grid .form-actions {
        grid-column: auto;
    }

    .plan-report-filter-actions,
    .plan-report-selector-grid .form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .plan-report-tabs {
        flex-direction: column;
    }

    .plan-report-tabs a {
        justify-content: flex-start;
    }
}

/* =========================================================
   Отчёт «Журналы»
   ========================================================= */

.journal-report-tabs {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-bottom:18px;
    padding:7px;
    background:#fff;
    border:1px solid #dde4f0;
    border-radius:17px;
}

.journal-report-tabs a {
    display:inline-flex;
    gap:7px;
    align-items:center;
    padding:10px 15px;
    color:#475569;
    font-weight:800;
    text-decoration:none;
    border-radius:12px;
}

.journal-report-tabs a:hover {
    color:#2446a8;
    background:#f1f5ff;
}

.journal-report-tabs a.active {
    color:#fff;
    background:#2446a8;
}

.journal-report-filter-panel { margin-bottom:18px; }

.journal-report-filter-grid {
    display:grid;
    grid-template-columns:minmax(250px,1.5fr) repeat(3,minmax(165px,1fr));
    gap:14px;
}

.journal-report-filter-actions {
    display:flex;
    gap:10px;
    margin-top:14px;
}

.journal-report-stat-grid {
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:13px;
    margin-bottom:18px;
}

.journal-report-stat-card {
    display:flex;
    gap:12px;
    align-items:center;
    min-width:0;
    padding:16px;
    background:#fff;
    border:1px solid #dde4f0;
    border-radius:17px;
}

.journal-report-stat-card > span {
    width:45px;
    height:45px;
    flex:0 0 45px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:21px;
    background:#eaf0ff;
    border-radius:14px;
}

.journal-report-stat-card strong {
    display:block;
    color:#0f172a;
    font-size:23px;
    line-height:1.1;
}

.journal-report-stat-card p {
    margin:4px 0 0;
    color:#64748b;
    font-size:13px;
}

.journal-report-stat-card.success > span { background:#dcfce7; }
.journal-report-stat-card.info > span { background:#dbeafe; }
.journal-report-stat-card.warning > span { background:#fef3c7; }
.journal-report-stat-card.danger > span { background:#fee2e2; }

.journal-report-summary-table { min-width:1650px; }
.journal-report-completeness-table { min-width:1450px; }
.journal-report-workload-table { min-width:1150px; }
.journal-report-lessons-table { min-width:1250px; }

.journal-report-subtext {
    display:block;
    margin-top:4px;
    color:#64748b;
    font-size:12px;
}

.journal-report-progress { min-width:105px; }

.journal-report-progress > div:first-child {
    display:flex;
    justify-content:space-between;
    gap:8px;
    align-items:center;
    margin-bottom:6px;
}

.journal-report-progress span {
    color:#0f172a;
    font-weight:850;
}

.journal-report-progress-track {
    height:8px;
    overflow:hidden;
    background:#e2e8f0;
    border-radius:999px;
}

.journal-report-progress-track b,
.journal-report-progress-track i {
    display:block;
    height:100%;
    border-radius:inherit;
}

.journal-report-progress-track .excellent { background:#16a34a; }
.journal-report-progress-track .good { background:#2563eb; }
.journal-report-progress-track .warning { background:#d97706; }
.journal-report-progress-track .danger { background:#dc2626; }
.journal-report-progress-track .over { background:#7c3aed; }
.journal-report-progress-track .muted { background:#94a3b8; }

.journal-report-percent-badge {
    display:inline-flex;
    min-width:68px;
    align-items:center;
    justify-content:center;
    padding:7px 10px;
    font-size:13px;
    font-weight:850;
    border-radius:999px;
}

.journal-report-percent-badge.excellent { color:#166534; background:#dcfce7; }
.journal-report-percent-badge.good { color:#1e40af; background:#dbeafe; }
.journal-report-percent-badge.warning { color:#92400e; background:#fef3c7; }
.journal-report-percent-badge.danger { color:#991b1b; background:#fee2e2; }
.journal-report-percent-badge.over { color:#6b21a8; background:#f3e8ff; }
.journal-report-percent-badge.muted { color:#475569; background:#e2e8f0; }

.journal-report-problem-count {
    min-width:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 9px;
    color:#166534;
    font-weight:900;
    background:#dcfce7;
    border-radius:999px;
}

.journal-report-problem-count.has-problems {
    color:#991b1b;
    background:#fee2e2;
}

.journal-report-method-note {
    display:flex;
    gap:8px;
    align-items:flex-start;
    margin-bottom:18px;
    color:#475569;
    background:#f8fafc;
}

.journal-report-method-note strong {
    color:#0f172a;
    white-space:nowrap;
}

.journal-report-problem-list {
    display:flex;
    flex-direction:column;
    gap:11px;
}

.journal-report-problem-item {
    display:grid;
    grid-template-columns:48px minmax(0,1fr) auto;
    gap:13px;
    align-items:center;
    padding:14px;
    border:1px solid #e2e8f0;
    border-left-width:5px;
    border-radius:15px;
}

.journal-report-problem-item.error {
    background:#fff7f7;
    border-left-color:#dc2626;
}

.journal-report-problem-item.warning {
    background:#fffbeb;
    border-left-color:#d97706;
}

.journal-report-problem-icon {
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    background:#fff;
    border-radius:14px;
}

.journal-report-problem-content > div {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    align-items:center;
}

.journal-report-problem-content p {
    margin:8px 0 0;
    color:#475569;
    line-height:1.5;
}

.journal-report-no-problems {
    display:flex;
    gap:15px;
    align-items:center;
    padding:24px;
    color:#166534;
    background:#f0fdf4;
    border:1px solid #bbf7d0;
    border-radius:17px;
}

.journal-report-no-problems > span { font-size:36px; }
.journal-report-no-problems strong { display:block; margin-bottom:5px; font-size:18px; }
.journal-report-no-problems p { margin:0; color:#15803d; }

.journal-report-detail-info {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}

.journal-report-detail-info > div {
    min-width:0;
    padding:13px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:13px;
}

.journal-report-detail-info small,
.journal-report-detail-info strong { display:block; }
.journal-report-detail-info small { margin-bottom:5px; color:#64748b; }
.journal-report-detail-info strong { color:#0f172a; line-height:1.4; }

.journal-report-metric-grid {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:13px;
}

.journal-report-metric-card {
    padding:15px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:15px;
}

.journal-report-metric-card > div:first-child { min-height:55px; }
.journal-report-metric-card strong,
.journal-report-metric-card span { display:block; }
.journal-report-metric-card strong { margin-bottom:5px; color:#0f172a; }
.journal-report-metric-card span { color:#64748b; font-size:12px; }
.journal-report-metric-card > b { display:block; margin:10px 0 8px; font-size:22px; }
.journal-report-metric-card > b.excellent { color:#15803d; }
.journal-report-metric-card > b.good { color:#1d4ed8; }
.journal-report-metric-card > b.warning { color:#b45309; }
.journal-report-metric-card > b.danger { color:#b91c1c; }
.journal-report-metric-card > b.over { color:#7e22ce; }
.journal-report-metric-card > b.muted { color:#64748b; }

.journal-report-comment-list {
    display:flex;
    flex-direction:column;
    gap:11px;
}

.journal-report-comment-list article {
    padding:14px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:14px;
}

.journal-report-comment-list article > div {
    display:flex;
    justify-content:space-between;
    gap:12px;
}

.journal-report-comment-list article span { color:#64748b; font-size:12px; }
.journal-report-comment-list article p { margin:9px 0 0; color:#334155; line-height:1.5; }

@media (max-width:1250px) {
    .journal-report-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .journal-report-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .journal-report-search { grid-column:1 / -1; }
    .journal-report-detail-info { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .journal-report-metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:720px) {
    .journal-report-filter-grid,
    .journal-report-stat-grid,
    .journal-report-detail-info,
    .journal-report-metric-grid { grid-template-columns:1fr; }
    .journal-report-search { grid-column:auto; }
    .journal-report-filter-actions { flex-direction:column; align-items:stretch; }
    .journal-report-tabs { flex-direction:column; }
    .journal-report-tabs a { justify-content:flex-start; }
    .journal-report-method-note { flex-direction:column; }
    .journal-report-method-note strong { white-space:normal; }
    .journal-report-problem-item { grid-template-columns:42px minmax(0,1fr); }
    .journal-report-problem-item > .btn-icon { grid-column:1 / -1; justify-self:end; }
}

/* =========================================================
   Отчёт «Проблемные журналы»
   ========================================================= */

.pjr-view-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 18px;
    padding: 7px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 17px;
}

.pjr-view-tabs a {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    padding: 10px 15px;
    color: #475569;
    font-weight: 700;
    text-decoration: none;
    border-radius: 12px;
}

.pjr-view-tabs a:hover {
    color: #2446A8;
    background: #F1F5FF;
}

.pjr-view-tabs a.active {
    color: #FFFFFF;
    background: #2446A8;
}

.pjr-filter-panel {
    margin-bottom: 18px;
}

.pjr-filter-grid {
    display: grid;
    grid-template-columns:
        minmax(250px, 1.4fr)
        repeat(3, minmax(165px, 1fr));
    gap: 14px;
}

.pjr-search {
    grid-column: span 1;
}

.pjr-checkbox-group {
    display: flex;
    align-items: flex-end;
}

.pjr-checkbox-group > label {
    min-height: 46px;
    width: 100%;
    display: flex;
    gap: 9px;
    align-items: center;
    padding: 10px 12px;
    color: #334155;
    font-weight: 700;
    background: #F8FAFC;
    border: 1px solid #DDE4F0;
    border-radius: 12px;
}

.pjr-checkbox-group input {
    width: 18px;
    height: 18px;
}

.pjr-filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

.pjr-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}

.pjr-stat-card {
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 16px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 17px;
}

.pjr-stat-card > span {
    width: 45px;
    height: 45px;
    flex: 0 0 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    background: #EAF0FF;
    border-radius: 14px;
}

.pjr-stat-card strong {
    display: block;
    color: #0F172A;
    font-size: 23px;
    line-height: 1.1;
}

.pjr-stat-card p {
    margin: 4px 0 0;
    color: #64748B;
    font-size: 13px;
}

.pjr-stat-card.danger > span {
    background: #FEE2E2;
}

.pjr-stat-card.warning > span {
    background: #FEF3C7;
}

.pjr-problem-table {
    min-width: 1700px;
}

.pjr-journal-table {
    min-width: 1450px;
}

.pjr-severity-error td {
    background: #FFF9F9;
}

.pjr-severity-warning td {
    background: #FFFCF3;
}

.pjr-subtext {
    display: block;
    margin-top: 5px;
    color: #64748B;
    font-size: 12px;
    line-height: 1.4;
}

.pjr-fill-badge {
    display: inline-flex;
    min-width: 68px;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    font-size: 13px;
    font-weight: 700;
    border-radius: 999px;
}

.pjr-fill-badge.excellent {
    color: #166534;
    background: #DCFCE7;
}

.pjr-fill-badge.good {
    color: #1E40AF;
    background: #DBEAFE;
}

.pjr-fill-badge.warning {
    color: #92400E;
    background: #FEF3C7;
}

.pjr-fill-badge.danger {
    color: #991B1B;
    background: #FEE2E2;
}

.pjr-fill-badge.over {
    color: #6B21A8;
    background: #F3E8FF;
}

.pjr-fill-badge.muted {
    color: #475569;
    background: #E2E8F0;
}

.pjr-problem-count {
    min-width: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    color: #991B1B;
    font-weight: 700;
    background: #FEE2E2;
    border-radius: 999px;
}

.pjr-code-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 7px;
}

.pjr-code-list span {
    display: inline-flex;
    padding: 4px 7px;
    color: #7C2D12;
    font-size: 11px;
    font-weight: 750;
    background: #FFEDD5;
    border-radius: 999px;
}

@media (max-width: 1250px) {
    .pjr-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .pjr-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pjr-search {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .pjr-view-tabs,
    .pjr-filter-actions {
        flex-direction: column;
    }

    .pjr-view-tabs a {
        justify-content: flex-start;
    }

    .pjr-filter-grid,
    .pjr-stat-grid {
        grid-template-columns: 1fr;
    }

    .pjr-search {
        grid-column: auto;
    }
}

/* =========================================================
   Отчёт «Нагрузка сотрудников»
   ========================================================= */

.ewr-tabs{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px;padding:7px;background:#fff;border:1px solid #dde4f0;border-radius:17px}.ewr-tabs a{display:inline-flex;gap:7px;align-items:center;padding:10px 15px;color:#475569;font-weight:800;text-decoration:none;border-radius:12px}.ewr-tabs a:hover{color:#2446a8;background:#f1f5ff}.ewr-tabs a.active{color:#fff;background:#2446a8}.ewr-filter-panel,.ewr-detail-filter{margin-bottom:18px}.ewr-filter-grid{display:grid;grid-template-columns:minmax(250px,1.5fr) repeat(3,minmax(165px,1fr));gap:14px}.ewr-filter-actions{display:flex;gap:10px;margin-top:14px}.ewr-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:18px}.ewr-stat-card{display:flex;gap:12px;align-items:center;min-width:0;padding:16px;background:#fff;border:1px solid #dde4f0;border-radius:17px}.ewr-stat-card>span{width:45px;height:45px;flex:0 0 45px;display:flex;align-items:center;justify-content:center;font-size:21px;background:#eaf0ff;border-radius:14px}.ewr-stat-card strong{display:block;color:#0f172a;font-size:23px;line-height:1.1}.ewr-stat-card p{margin:4px 0 0;color:#64748b;font-size:13px}.ewr-stat-card.success>span{background:#dcfce7}.ewr-stat-card.info>span{background:#dbeafe}.ewr-stat-card.warning>span{background:#fef3c7}.ewr-stat-card.danger>span{background:#fee2e2}.ewr-summary-table{min-width:1700px}.ewr-types-table{min-width:1650px}.ewr-detail-table{min-width:1550px}.ewr-lessons-table{min-width:1300px}.ewr-unassigned-table{min-width:980px}.ewr-subtext{display:block;margin-top:4px;color:#64748b;font-size:12px}.ewr-progress{min-width:105px}.ewr-progress>div:first-child{margin-bottom:6px}.ewr-progress span{color:#0f172a;font-weight:850}.ewr-progress-track{height:8px;overflow:hidden;background:#e2e8f0;border-radius:999px}.ewr-progress-track b{display:block;height:100%;border-radius:inherit}.ewr-progress-track b.excellent{background:#16a34a}.ewr-progress-track b.good{background:#2563eb}.ewr-progress-track b.warning{background:#d97706}.ewr-progress-track b.danger{background:#dc2626}.ewr-progress-track b.over{background:#7c3aed}.ewr-progress-track b.muted{background:#94a3b8}.ewr-percent-badge{display:inline-flex;min-width:70px;align-items:center;justify-content:center;padding:7px 10px;font-size:13px;font-weight:850;border-radius:999px}.ewr-percent-badge.excellent{color:#166534;background:#dcfce7}.ewr-percent-badge.good{color:#1e40af;background:#dbeafe}.ewr-percent-badge.warning{color:#92400e;background:#fef3c7}.ewr-percent-badge.danger{color:#991b1b;background:#fee2e2}.ewr-percent-badge.over{color:#6b21a8;background:#f3e8ff}.ewr-percent-badge.muted{color:#475569;background:#e2e8f0}.ewr-problem-count{min-width:36px;display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;color:#166534;font-weight:900;background:#dcfce7;border-radius:999px}.ewr-problem-count.has-problems{color:#991b1b;background:#fee2e2}.ewr-overrun{display:inline-flex;padding:6px 9px;color:#991b1b;font-weight:900;background:#fee2e2;border-radius:999px}.ewr-type-value{display:inline-flex;min-width:68px;align-items:center;justify-content:center;padding:6px 8px;color:#1e3a8a;font-weight:800;background:#eef2ff;border-radius:10px}.ewr-type-value.over{color:#991b1b;background:#fee2e2}.ewr-method-note{display:flex;gap:8px;align-items:flex-start;margin-bottom:18px;color:#475569;background:#f8fafc}.ewr-section-title{margin:22px 0 12px;color:#0f172a;font-size:17px}.ewr-section-title:first-of-type{margin-top:0}.ewr-problem-list{display:flex;flex-direction:column;gap:11px}.ewr-problem-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:13px;align-items:center;padding:14px;border:1px solid #e2e8f0;border-left-width:5px;border-radius:15px}.ewr-problem-item.error{background:#fff7f7;border-left-color:#dc2626}.ewr-problem-item.warning{background:#fffbeb;border-left-color:#d97706}.ewr-problem-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:22px;background:#fff;border-radius:14px}.ewr-problem-content>div{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.ewr-problem-content p{margin:8px 0 0;color:#475569;line-height:1.5}.ewr-no-problems{display:flex;gap:15px;align-items:center;padding:24px;color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:17px}.ewr-no-problems>span{font-size:36px}.ewr-no-problems strong{display:block;margin-bottom:5px;font-size:18px}.ewr-no-problems p{margin:0;color:#15803d}.ewr-employee-profile{display:flex;gap:18px;align-items:center;margin-bottom:18px}.ewr-employee-avatar{width:76px;height:76px;flex:0 0 76px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:900;background:#2446a8;border-radius:22px}.ewr-employee-profile-info{min-width:0}.ewr-employee-profile-info h3{margin:0 0 12px;font-size:23px}.ewr-employee-profile-info>div{display:flex;flex-wrap:wrap;gap:9px}.ewr-employee-profile-info>div>span{min-width:135px;padding:9px 11px;background:#f8fafc;border-radius:11px}.ewr-employee-profile-info small,.ewr-employee-profile-info strong{display:block}.ewr-employee-profile-info small{margin-bottom:4px;color:#64748b}.ewr-detail-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr)) auto;gap:14px;align-items:end}.ewr-detail-filter-grid .form-actions{margin:0}.ewr-orphan-lesson td{background:#fff7f7!important}@media(max-width:1250px){.ewr-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ewr-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ewr-search{grid-column:1/-1}}@media(max-width:780px){.ewr-detail-filter-grid{grid-template-columns:1fr}.ewr-employee-profile{align-items:flex-start;flex-direction:column}}@media(max-width:700px){.ewr-tabs,.ewr-filter-actions{flex-direction:column}.ewr-tabs a{justify-content:flex-start}.ewr-filter-grid,.ewr-stat-grid{grid-template-columns:1fr}.ewr-search{grid-column:auto}.ewr-problem-item{grid-template-columns:42px minmax(0,1fr)}.ewr-problem-item>.btn-icon{grid-column:1/-1;justify-self:end}}

/* =========================================================
   Импорт и экспорт контингента
   ========================================================= */

.student-import-guide {
    margin-bottom: 18px;
}

.student-import-guide-head {
    display: flex;
    gap: 18px;
    align-items: center;
    justify-content: space-between;
}

.student-import-guide-head h2 {
    margin: 0 0 5px;
}

.student-import-guide-head p {
    margin: 0;
    color: #64748B;
}

.student-import-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.student-import-columns > div {
    padding: 14px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
}

.student-import-columns strong,
.student-import-columns span {
    display: block;
}

.student-import-columns strong {
    margin-bottom: 5px;
    color: #0F172A;
}

.student-import-columns span {
    color: #64748B;
    font-size: 13px;
    line-height: 1.45;
}

.student-import-upload-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.4fr) minmax(260px, 1fr);
    gap: 14px;
}

.student-import-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}

.student-import-stat-grid article {
    padding: 16px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 16px;
}

.student-import-stat-grid strong,
.student-import-stat-grid span {
    display: block;
}

.student-import-stat-grid strong {
    color: #0F172A;
    font-size: 24px;
}

.student-import-stat-grid span {
    margin-top: 5px;
    color: #64748B;
    font-size: 13px;
}

.student-import-stat-grid .success {
    border-color: #BBF7D0;
    background: #F0FDF4;
}

.student-import-stat-grid .info {
    border-color: #BFDBFE;
    background: #EFF6FF;
}

.student-import-stat-grid .danger {
    border-color: #FECACA;
    background: #FFF7F7;
}

.student-import-stat-grid .muted {
    background: #F8FAFC;
}

.student-import-preview-table {
    min-width: 1250px;
}

.student-import-row-invalid td {
    background: #FFF7F7 !important;
}

.student-import-row-update td {
    background: #EFF6FF !important;
}

.student-import-row-skip td {
    color: #64748B;
    background: #F8FAFC !important;
}

.student-import-action {
    display: inline-flex;
    padding: 6px 9px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 999px;
}

.student-import-action.insert {
    color: #166534;
    background: #DCFCE7;
}

.student-import-action.update {
    color: #1E40AF;
    background: #DBEAFE;
}

.student-import-action.skip {
    color: #475569;
    background: #E2E8F0;
}

.student-import-action.invalid {
    color: #991B1B;
    background: #FEE2E2;
}

.student-import-error-list {
    margin: 0;
    padding-left: 18px;
    color: #B91C1C;
    font-size: 12px;
}

.student-import-limit-note {
    margin-top: 12px;
    padding: 12px;
    color: #92400E;
    background: #FEF3C7;
    border-radius: 12px;
}

.student-import-confirm-actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.student-import-result {
    display: flex;
    gap: 7px;
    flex-direction: column;
}

.student-import-errors ul {
    margin-bottom: 0;
}

@media (max-width: 850px) {
    .student-import-guide-head {
        align-items: stretch;
        flex-direction: column;
    }

    .student-import-columns,
    .student-import-stat-grid,
    .student-import-upload-grid {
        grid-template-columns: 1fr;
    }

    .student-import-confirm-actions {
        flex-direction: column;
    }
}

/* =========================================================
   Модуль «Приказы»
   ========================================================= */

.order-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}

.order-stat-card {
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 16px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 17px;
}

.order-stat-card > span {
    width: 45px;
    height: 45px;
    flex: 0 0 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    background: #EAF0FF;
    border-radius: 14px;
}

.order-stat-card strong {
    display: block;
    color: #0F172A;
    font-size: 23px;
    line-height: 1.1;
}

.order-stat-card p {
    margin: 4px 0 0;
    color: #64748B;
    font-size: 13px;
}

.order-stat-card.success > span { background: #DCFCE7; }
.order-stat-card.warning > span { background: #FEF3C7; }
.order-stat-card.danger > span { background: #FEE2E2; }
.order-stat-card.info > span { background: #DBEAFE; }

.order-filter-panel { margin-bottom: 18px; }

.order-filter-grid {
    display: grid;
    grid-template-columns: minmax(270px, 1.5fr) repeat(4, minmax(160px, 1fr));
    gap: 14px;
}

.order-filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

.order-list-table { min-width: 1550px; }

.order-subtext {
    display: block;
    margin-top: 4px;
    color: #64748B;
    font-size: 12px;
    line-height: 1.4;
}

.order-category-badge,
.order-target-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 999px;
}

.order-category-badge.student,
.order-target-badge.student {
    color: #1E40AF;
    background: #DBEAFE;
}

.order-category-badge.employee,
.order-target-badge.employee {
    color: #166534;
    background: #DCFCE7;
}

.order-category-badge.mixed {
    color: #6B21A8;
    background: #F3E8FF;
}

.order-category-badge.general,
.order-target-badge.general {
    color: #475569;
    background: #E2E8F0;
}

.order-file-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    color: #075985;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    background: #E0F2FE;
    border-radius: 999px;
}

.order-no-file { color: #94A3B8; }

.order-form-wide { grid-column: 1 / -1; }

.order-current-file {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 9px;
    padding: 10px 12px;
    background: #F0F9FF;
    border: 1px solid #BAE6FD;
    border-radius: 12px;
}

.order-current-file a {
    color: #075985;
    font-weight: 700;
    text-decoration: none;
}

.order-current-file span {
    color: #64748B;
    font-size: 12px;
}

.order-step-panel {
    display: flex;
    gap: 10px;
    margin-bottom: 18px;
    padding: 10px;
}

.order-step {
    flex: 1;
    display: flex;
    gap: 9px;
    align-items: center;
    padding: 10px 12px;
    color: #64748B;
    background: #F8FAFC;
    border-radius: 12px;
}

.order-step b {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #E2E8F0;
    border-radius: 50%;
}

.order-step.active {
    color: #1E3A8A;
    font-weight: 700;
    background: #EEF2FF;
}

.order-step.active b {
    color: #FFFFFF;
    background: #2446A8;
}

.order-empty-actions {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 22px;
    color: #475569;
    background: #F8FAFC;
    border: 1px dashed #CBD5E1;
    border-radius: 16px;
}

.order-empty-actions > span { font-size: 32px; }
.order-empty-actions strong { display: block; color: #0F172A; }
.order-empty-actions p { margin: 5px 0 0; }

.order-action-list {
    display: flex;
    flex-direction: column;
    gap: 13px;
}

.order-action-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 13px;
    padding: 15px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 16px;
}

.order-action-card.applied { border-left: 5px solid #16A34A; }

.order-action-number {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-size: 16px;
    font-weight: 700;
    background: #2446A8;
    border-radius: 13px;
}

.order-action-head {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
}

.order-action-head > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.order-action-main h3 {
    margin: 11px 0;
    color: #0F172A;
    font-size: 17px;
}

.order-history-link {
    margin-left: 8px;
    color: #2446A8;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.order-desired-grid,
.order-view-meta-grid,
.order-person-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.order-desired-grid > span,
.order-view-meta-grid > div,
.order-person-summary > div {
    padding: 10px 11px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 11px;
}

.order-desired-grid small,
.order-desired-grid strong,
.order-view-meta-grid small,
.order-view-meta-grid strong,
.order-person-summary small,
.order-person-summary strong {
    display: block;
}

.order-desired-grid small,
.order-view-meta-grid small,
.order-person-summary small {
    margin-bottom: 4px;
    color: #64748B;
}

.order-action-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 11px;
    color: #475569;
    font-size: 12px;
}

.order-inline-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.order-check-row {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin-top: 8px;
    color: #475569;
    font-weight: 700;
}

.order-check-row input { width: 18px; height: 18px; }

.order-group-target {
    padding: 15px;
    background: #F8FAFF;
    border: 1px solid #C7D2FE;
    border-radius: 16px;
}

.order-group-picker-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(240px, .7fr);
    gap: 13px;
}

.order-group-placeholder {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-top: 12px;
    padding: 18px;
    color: #475569;
    background: #FFFFFF;
    border: 1px dashed #A5B4FC;
    border-radius: 14px;
}

.order-group-placeholder > span {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #EEF2FF;
    border-radius: 13px;
}

.order-group-placeholder strong {
    display: block;
    color: #1E293B;
}

.order-group-placeholder p {
    margin: 4px 0 0;
    color: #64748B;
}

.order-group-selection {
    overflow: hidden;
    margin-top: 12px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 14px;
}

.order-group-toolbar {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding: 11px 13px;
    background: #EEF2FF;
    border-bottom: 1px solid #DDE4F0;
}

.order-group-counters,
.order-group-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.order-group-counters span {
    padding: 6px 9px;
    color: #475569;
    font-size: 12px;
    background: #FFFFFF;
    border-radius: 999px;
}

.order-group-counters strong {
    color: #1E3A8A;
    font-size: 13px;
}

.order-group-student-list {
    max-height: 430px;
    overflow-y: auto;
}

.order-group-student-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 9px 12px;
    align-items: center;
    padding: 11px 13px;
    cursor: pointer;
    border-bottom: 1px solid #EDF2F7;
}

.order-group-student-row:last-child { border-bottom: 0; }
.order-group-student-row:hover { background: #F8FAFC; }

.order-group-student-row > input {
    width: 18px;
    height: 18px;
    margin: 0;
}

.order-group-student-identity {
    min-width: 0;
}

.order-group-student-identity strong,
.order-group-student-identity small {
    display: block;
}

.order-group-student-identity strong {
    overflow: hidden;
    color: #0F172A;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-group-student-identity small {
    margin-top: 4px;
    color: #64748B;
}

.order-group-student-availability {
    grid-column: 2 / -1;
    color: #B91C1C;
    font-size: 11px;
    font-weight: 750;
}

.order-group-student-availability:empty { display: none; }

.order-group-student-row.is-disabled {
    cursor: not-allowed;
    background: #F8FAFC;
    opacity: .62;
}

.order-group-empty {
    padding: 20px;
    color: #64748B;
    text-align: center;
    background: #F8FAFC;
}

.order-group-hint {
    display: block;
    margin-top: 10px;
    line-height: 1.5;
}

.order-add-action-panel { border-top: 4px solid #2446A8; }

.order-approval-panel {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    color: #FFFFFF;
    background: linear-gradient(135deg, #1E3A8A, #2446A8);
}

.order-approval-panel h2 { margin: 0 0 7px; color: #FFFFFF; }
.order-approval-panel p { margin: 0; color: #DBEAFE; }
.order-approval-actions { display: flex; gap: 9px; align-items: center; }
.order-approval-actions form { margin: 0; }

.order-view-header { margin-bottom: 18px; }

.order-view-title h1 {
    margin: 17px 0 10px;
    font-size: 25px;
    line-height: 1.35;
}

.order-view-title p {
    color: #475569;
    line-height: 1.65;
}

.order-view-meta-grid { margin-top: 18px; }

.order-scan-box {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-top: 15px;
    padding: 14px;
    color: #075985;
    text-decoration: none;
    background: #F0F9FF;
    border: 1px solid #BAE6FD;
    border-radius: 15px;
}

.order-scan-box > span { font-size: 28px; }
.order-scan-box strong, .order-scan-box small { display: block; }
.order-scan-box small { margin-top: 4px; color: #64748B; }

.order-applied-badge,
.order-pending-badge {
    display: inline-flex;
    padding: 6px 9px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 999px;
}

.order-applied-badge { color: #166534; background: #DCFCE7; }
.order-pending-badge { color: #92400E; background: #FEF3C7; }

.order-before-after {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38px minmax(0, 1fr);
    gap: 11px;
    align-items: stretch;
}

.order-change-column {
    padding: 13px;
    border: 1px solid #E2E8F0;
    border-radius: 13px;
}

.order-change-column.before { background: #FFF7F7; }
.order-change-column.after { background: #F0FDF4; }
.order-change-column h4 { margin: 0 0 9px; font-size: 13px; text-transform: uppercase; }
.order-change-column span { display: block; padding: 6px 0; border-top: 1px solid rgba(148,163,184,.25); }
.order-change-column span:first-of-type { border-top: 0; }
.order-change-column small, .order-change-column strong { display: block; }
.order-change-column small { margin-bottom: 3px; color: #64748B; }
.order-change-arrow { display: flex; align-items: center; justify-content: center; font-size: 24px; color: #2446A8; }

.order-log-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.order-log-list article {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 11px;
    padding: 12px;
    background: #F8FAFC;
    border-radius: 12px;
}

.order-log-list article > span {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #E2E8F0;
    border-radius: 11px;
}

.order-log-list p { margin: 5px 0; color: #475569; }
.order-log-list small { color: #64748B; }

.order-person-summary { margin-bottom: 18px; }

.order-person-timeline {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.order-person-timeline > article {
    display: grid;
    grid-template-columns: 135px minmax(0, 1fr);
    gap: 15px;
}

.order-timeline-date {
    padding: 13px;
    text-align: center;
    color: #FFFFFF;
    background: #2446A8;
    border-radius: 14px;
}

.order-timeline-date strong,
.order-timeline-date span { display: block; }
.order-timeline-date span { margin-top: 5px; color: #DBEAFE; font-size: 12px; }

.order-timeline-content {
    padding: 14px;
    border: 1px solid #DDE4F0;
    border-radius: 14px;
}

.order-timeline-content h3 { margin: 11px 0; }
.order-timeline-content > p { color: #475569; }
.order-before-after.compact { margin-top: 10px; }

@media (max-width: 1250px) {
    .order-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .order-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .order-search { grid-column: 1 / -1; }
    .order-desired-grid, .order-view-meta-grid, .order-person-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .order-step-panel,
    .order-approval-panel,
    .order-approval-actions,
    .order-filter-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .order-inline-grid,
    .order-group-picker-grid,
    .order-before-after,
    .order-person-timeline > article {
        grid-template-columns: 1fr;
    }

    .order-group-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .order-group-toolbar-actions .btn {
        flex: 1;
    }

    .order-change-arrow { transform: rotate(90deg); }
}

@media (max-width: 700px) {
    .order-stat-grid,
    .order-filter-grid,
    .order-desired-grid,
    .order-view-meta-grid,
    .order-person-summary {
        grid-template-columns: 1fr;
    }

    .order-search { grid-column: auto; }
    .order-action-card { grid-template-columns: 1fr; }
    .order-action-number { width: 36px; height: 36px; }

    .order-group-student-row {
        grid-template-columns: 24px minmax(0, 1fr);
    }

    .order-group-student-row > .badge-status,
    .order-group-student-availability {
        grid-column: 2;
        justify-self: start;
    }
}

/* =========================================================
   Справочник дисциплин, модулей и РО
   ========================================================= */

.cci-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:18px}.cci-stat-card{display:flex;gap:12px;align-items:center;min-width:0;padding:16px;background:#fff;border:1px solid #dde4f0;border-radius:17px}.cci-stat-card>span{width:45px;height:45px;flex:0 0 45px;display:flex;align-items:center;justify-content:center;font-size:21px;background:#eaf0ff;border-radius:14px}.cci-stat-card strong{display:block;color:#0f172a;font-size:23px;line-height:1.1}.cci-stat-card p{margin:4px 0 0;color:#64748b;font-size:13px}.cci-stat-card.success>span{background:#dcfce7}.cci-stat-card.info>span{background:#dbeafe}.cci-filter-panel{margin-bottom:18px}.cci-filter-grid{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(4,minmax(165px,1fr));gap:14px}.cci-filter-actions{display:flex;gap:10px;margin-top:14px}.cci-table{min-width:1450px}.cci-usage-table{min-width:1050px}.cci-subtext{display:block;margin-top:5px;color:#64748b;font-size:12px;line-height:1.4}.cci-row-module td{background:#eef3ff}.cci-row-ro td:first-child,.cci-row-ro td:nth-child(2){background:#f8fafc}.cci-row-practice td{background:#f0fdf4}.cci-row-elective td{background:#fff7ed}.cci-checkbox-field{display:flex;align-items:flex-end}.cci-checkbox-field>label{min-height:46px;width:100%;display:flex;gap:9px;align-items:center;padding:10px 12px;color:#334155;font-weight:700;background:#f8fafc;border:1px solid #dde4f0;border-radius:12px}.cci-checkbox-field input{width:18px;height:18px}.cci-sync-box{margin-top:18px;padding:14px;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px}.cci-sync-box label{display:flex;gap:10px;align-items:flex-start}.cci-sync-box input{width:18px;height:18px;margin-top:2px}.cci-sync-box strong,.cci-sync-box small{display:block}.cci-sync-box small{margin-top:4px;color:#7c2d12}.cci-install-card{margin-bottom:18px}.cci-install-card h3{margin-top:0}.cci-install-warning{display:flex;gap:8px;align-items:flex-start;color:#7c2d12;background:#fff7ed;border-color:#fed7aa}.cci-not-installed{display:flex;gap:18px;align-items:center;padding:24px}.cci-not-installed>span{font-size:42px}.cci-not-installed strong{display:block;margin-bottom:5px;font-size:19px}.cci-not-installed p{margin:0 0 12px;color:#64748b}.cci-delete-card{display:flex;gap:18px;align-items:flex-start}.cci-delete-icon{width:64px;height:64px;flex:0 0 64px;display:flex;align-items:center;justify-content:center;font-size:30px;background:#fef3c7;border-radius:18px}.cci-delete-card h3{margin-top:0}.cci-delete-actions{display:flex;flex-wrap:wrap;gap:10px}.plan-catalog-field{grid-column:span 2}.plan-catalog-preview{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;background:#f8fafc;border:1px solid #dde4f0;border-radius:14px}.plan-catalog-preview small,.plan-catalog-preview strong{display:block}.plan-catalog-preview small{margin-bottom:5px;color:#64748b}.plan-catalog-preview strong{color:#0f172a;line-height:1.4}.form-hint-link{display:inline-block;margin-top:6px;color:#2446a8;font-size:12px;font-weight:750;text-decoration:none}.form-hint-link:hover{text-decoration:underline}

@media(max-width:1250px){.cci-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cci-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cci-search{grid-column:1/-1}}
@media(max-width:700px){.cci-stat-grid,.cci-filter-grid,.plan-catalog-preview{grid-template-columns:1fr}.cci-search,.plan-catalog-field{grid-column:auto}.cci-filter-actions,.cci-delete-actions{flex-direction:column;align-items:stretch}.cci-delete-card,.cci-not-installed{flex-direction:column}}

/* =========================================================
   Предметы и модули — версия 2
   ========================================================= */

.cci-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}

.cci-stat-card {
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 16px;
    background: #fff;
    border: 1px solid #dde4f0;
    border-radius: 17px;
}

.cci-stat-card > span {
    width: 45px;
    height: 45px;
    flex: 0 0 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    background: #eaf0ff;
    border-radius: 14px;
}

.cci-stat-card.success > span { background: #dcfce7; }
.cci-stat-card.info > span { background: #dbeafe; }

.cci-stat-card strong {
    display: block;
    color: #0f172a;
    font-size: 23px;
    line-height: 1.1;
}

.cci-stat-card p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 13px;
}

.cci-filter-panel { margin-bottom: 18px; }

.cci-filter-grid-simple {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(180px, 260px);
    gap: 14px;
}

.cci-filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

.cci-module-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.cci-module-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 17px;
}

.cci-module-card.is-inactive { opacity: .72; }

.cci-module-card > header {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 16px 18px;
    background: linear-gradient(135deg, #eef3ff, #f8faff);
    border-bottom: 1px solid #dbe4f0;
}

.cci-module-title {
    display: flex;
    gap: 13px;
    align-items: center;
    min-width: 0;
}

.cci-module-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #dbeafe;
    border-radius: 14px;
}

.cci-module-title h3 {
    margin: 0;
    color: #172554;
    font-size: 17px;
    line-height: 1.35;
}

.cci-module-title p {
    margin: 4px 0 0;
    color: #475569;
    line-height: 1.35;
}

.cci-module-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: flex-end;
}

.cci-ro-count {
    display: inline-flex;
    padding: 6px 10px;
    color: #1e3a8a;
    font-size: 12px;
    font-weight: 700;
    background: #dbeafe;
    border-radius: 999px;
}

.btn-small {
    padding: 7px 10px !important;
    font-size: 12px !important;
}

.cci-ro-list {
    padding: 7px 18px 14px 28px;
}

.cci-ro-list-detail {
    padding: 0;
}

.cci-ro-row {
    position: relative;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 11px 8px;
    border-bottom: 1px solid #edf2f7;
}

.cci-ro-row:last-child { border-bottom: 0; }

.cci-ro-line {
    width: 13px;
    height: 16px;
    border-left: 2px solid #93c5fd;
    border-bottom: 2px solid #93c5fd;
    border-radius: 0 0 0 5px;
}

.cci-ro-main strong,
.cci-ro-main small {
    display: block;
}

.cci-ro-main strong {
    color: #0f172a;
    line-height: 1.4;
}

.cci-ro-main small {
    margin-top: 4px;
    color: #64748b;
    line-height: 1.4;
}

.cci-ro-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    color: #64748b;
    font-size: 12px;
}

.cci-ro-empty {
    padding: 15px;
    color: #64748b;
    text-align: center;
    background: #f8fafc;
    border-radius: 12px;
}

.cci-simple-table { min-width: 1250px; }
.cci-usage-table { min-width: 1000px; }

.cci-sync-box {
    margin-top: 18px;
    padding: 14px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 14px;
}

.cci-sync-box label {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.cci-sync-box input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.cci-sync-box strong,
.cci-sync-box small { display: block; }
.cci-sync-box small { margin-top: 4px; color: #7c2d12; }

.cci-install-card { margin-bottom: 18px; }
.cci-install-card h3 { margin-top: 0; }

.cci-install-warning {
    display: flex;
    gap: 8px;
    color: #7c2d12;
    background: #fff7ed;
    border-color: #fed7aa;
}

.cci-not-installed {
    display: flex;
    gap: 18px;
    align-items: center;
    padding: 24px;
}

.cci-not-installed > span { font-size: 42px; }
.cci-not-installed strong { display: block; margin-bottom: 5px; font-size: 19px; }
.cci-not-installed p { margin: 0 0 12px; color: #64748b; }

.cci-delete-card {
    display: flex;
    gap: 18px;
    align-items: flex-start;
}

.cci-delete-icon {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    background: #fef3c7;
    border-radius: 18px;
}

.cci-delete-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.plan-catalog-modal-field { grid-column: span 1; }

.plan-catalog-modal-field select {
    font-weight: 700;
}

.plan-catalog-modal-field .form-hint {
    display: block;
    margin-top: 5px;
    color: #b45309;
}

.form-hint-link {
    display: inline-block;
    margin-top: 6px;
    color: #2446a8;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.form-hint-link:hover { text-decoration: underline; }

input.is-readonly {
    color: #334155;
    background: #f1f5f9 !important;
    cursor: not-allowed;
}

.plan-credit-note {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 1250px) {
    .cci-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
    .cci-module-card > header {
        align-items: flex-start;
        flex-direction: column;
    }

    .cci-module-actions { justify-content: flex-start; }

    .cci-ro-row {
        grid-template-columns: 18px minmax(0, 1fr);
    }

    .cci-ro-meta {
        grid-column: 2;
        flex-wrap: wrap;
    }
}

@media (max-width: 700px) {
    .cci-stat-grid,
    .cci-filter-grid-simple {
        grid-template-columns: 1fr;
    }

    .cci-filter-actions,
    .cci-delete-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cci-delete-card,
    .cci-not-installed {
        flex-direction: column;
    }
}

/* =========================================================
   Импорт справочника и учебного плана
   ========================================================= */
.import-guide { margin-bottom: 18px; }
.import-guide-head { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.import-guide-head h2 { margin:0 0 6px; }
.import-guide-head p { margin:0; color:#64748B; }
.import-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:18px; }
.import-columns > div { padding:13px; background:#F8FAFC; border:1px solid #E2E8F0; border-radius:13px; }
.import-columns strong,.import-columns span { display:block; }
.import-columns span { margin-top:5px; color:#64748B; font-size:13px; line-height:1.45; }
.import-upload-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.import-stat-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.import-stat-grid article { padding:15px; text-align:center; background:#FFF; border:1px solid #DDE4F0; border-radius:15px; }
.import-stat-grid strong,.import-stat-grid span { display:block; }
.import-stat-grid strong { font-size:24px; color:#0F172A; }
.import-stat-grid span { margin-top:4px; color:#64748B; font-size:12px; }
.import-stat-grid .success { background:#F0FDF4; }
.import-stat-grid .info { background:#EFF6FF; }
.import-stat-grid .muted { background:#F8FAFC; }
.import-stat-grid .danger { background:#FEF2F2; }
.import-preview-table { min-width:1450px; }
.plan-import-preview { min-width:1750px; }
.import-preview-table td small { display:block; margin-top:4px; color:#64748B; }
.import-row-invalid td { background:#FFF7F7; }
.import-row-insert td { background:#F7FFF9; }
.import-row-update td { background:#F5F9FF; }
.import-row-skip td { background:#FAFAFA; }
.import-action { display:inline-flex; padding:6px 9px; font-size:11px; font-weight:850; text-transform:uppercase; border-radius:999px; }
.import-action.insert { color:#166534; background:#DCFCE7; }
.import-action.update { color:#1E40AF; background:#DBEAFE; }
.import-action.skip { color:#475569; background:#E2E8F0; }
.import-action.invalid { color:#991B1B; background:#FEE2E2; }
.import-message { margin:3px 0; padding:5px 7px; font-size:12px; line-height:1.35; border-radius:8px; }
.import-message.error { color:#991B1B; background:#FEE2E2; }
.import-message.warning { color:#92400E; background:#FEF3C7; }
.import-commit-actions { display:flex; gap:10px; margin-top:16px; }
.import-result { display:flex; gap:10px; align-items:center; }
.term-chip { display:inline-flex; margin:2px; padding:4px 6px; font-size:11px; font-weight:750; background:#EEF2FF; border-radius:8px; }
@media(max-width:900px){.import-columns,.import-upload-grid,.import-stat-grid{grid-template-columns:1fr}.import-guide-head,.import-commit-actions,.import-result{align-items:stretch;flex-direction:column}}


/* =========================================================
   Предметы и модули — версия 2
   ========================================================= */

.cci-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
}

.cci-stat-card {
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 16px;
    background: #fff;
    border: 1px solid #dde4f0;
    border-radius: 17px;
}

.cci-stat-card > span {
    width: 45px;
    height: 45px;
    flex: 0 0 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    background: #eaf0ff;
    border-radius: 14px;
}

.cci-stat-card.success > span { background: #dcfce7; }
.cci-stat-card.info > span { background: #dbeafe; }

.cci-stat-card strong {
    display: block;
    color: #0f172a;
    font-size: 23px;
    line-height: 1.1;
}

.cci-stat-card p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 13px;
}

.cci-filter-panel { margin-bottom: 18px; }

.cci-filter-grid-simple {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(180px, 260px);
    gap: 14px;
}

.cci-filter-actions {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}

.cci-module-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.cci-module-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 17px;
}

.cci-module-card.is-inactive { opacity: .72; }

.cci-module-card > header {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 16px 18px;
    background: linear-gradient(135deg, #eef3ff, #f8faff);
    border-bottom: 1px solid #dbe4f0;
}

.cci-module-title {
    display: flex;
    gap: 13px;
    align-items: center;
    min-width: 0;
}

.cci-module-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #dbeafe;
    border-radius: 14px;
}

.cci-module-title h3 {
    margin: 0;
    color: #172554;
    font-size: 17px;
    line-height: 1.35;
}

.cci-module-title p {
    margin: 4px 0 0;
    color: #475569;
    line-height: 1.35;
}

.cci-module-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: flex-end;
}

.cci-ro-count {
    display: inline-flex;
    padding: 6px 10px;
    color: #1e3a8a;
    font-size: 12px;
    font-weight: 700;
    background: #dbeafe;
    border-radius: 999px;
}

.btn-small {
    padding: 7px 10px !important;
    font-size: 12px !important;
}

.cci-ro-list {
    padding: 7px 18px 14px 28px;
}

.cci-ro-list-detail {
    padding: 0;
}

.cci-ro-row {
    position: relative;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 11px 8px;
    border-bottom: 1px solid #edf2f7;
}

.cci-ro-row:last-child { border-bottom: 0; }

.cci-ro-line {
    width: 13px;
    height: 16px;
    border-left: 2px solid #93c5fd;
    border-bottom: 2px solid #93c5fd;
    border-radius: 0 0 0 5px;
}

.cci-ro-main strong,
.cci-ro-main small {
    display: block;
}

.cci-ro-main strong {
    color: #0f172a;
    line-height: 1.4;
}

.cci-ro-main small {
    margin-top: 4px;
    color: #64748b;
    line-height: 1.4;
}

.cci-ro-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    color: #64748b;
    font-size: 12px;
}

.cci-ro-empty {
    padding: 15px;
    color: #64748b;
    text-align: center;
    background: #f8fafc;
    border-radius: 12px;
}

.cci-simple-table { min-width: 1250px; }
.cci-usage-table { min-width: 1000px; }

.cci-sync-box {
    margin-top: 18px;
    padding: 14px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 14px;
}

.cci-sync-box label {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.cci-sync-box input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.cci-sync-box strong,
.cci-sync-box small { display: block; }
.cci-sync-box small { margin-top: 4px; color: #7c2d12; }

.cci-install-card { margin-bottom: 18px; }
.cci-install-card h3 { margin-top: 0; }

.cci-install-warning {
    display: flex;
    gap: 8px;
    color: #7c2d12;
    background: #fff7ed;
    border-color: #fed7aa;
}

.cci-not-installed {
    display: flex;
    gap: 18px;
    align-items: center;
    padding: 24px;
}

.cci-not-installed > span { font-size: 42px; }
.cci-not-installed strong { display: block; margin-bottom: 5px; font-size: 19px; }
.cci-not-installed p { margin: 0 0 12px; color: #64748b; }

.cci-delete-card {
    display: flex;
    gap: 18px;
    align-items: flex-start;
}

.cci-delete-icon {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    background: #fef3c7;
    border-radius: 18px;
}

.cci-delete-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.plan-catalog-modal-field { grid-column: span 1; }

.plan-catalog-modal-field select {
    font-weight: 700;
}

.plan-catalog-modal-field .form-hint {
    display: block;
    margin-top: 5px;
    color: #b45309;
}

.form-hint-link {
    display: inline-block;
    margin-top: 6px;
    color: #2446a8;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.form-hint-link:hover { text-decoration: underline; }

input.is-readonly {
    color: #334155;
    background: #f1f5f9 !important;
    cursor: not-allowed;
}

.plan-credit-note {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 1250px) {
    .cci-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
    .cci-module-card > header {
        align-items: flex-start;
        flex-direction: column;
    }

    .cci-module-actions { justify-content: flex-start; }

    .cci-ro-row {
        grid-template-columns: 18px minmax(0, 1fr);
    }

    .cci-ro-meta {
        grid-column: 2;
        flex-wrap: wrap;
    }
}

@media (max-width: 700px) {
    .cci-stat-grid,
    .cci-filter-grid-simple {
        grid-template-columns: 1fr;
    }

    .cci-filter-actions,
    .cci-delete-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cci-delete-card,
    .cci-not-installed {
        flex-direction: column;
    }
}


/* =========================================================
   Импорт справочника и учебного плана
   ========================================================= */
.import-guide { margin-bottom: 18px; }
.import-guide-head { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.import-guide-head h2 { margin:0 0 6px; }
.import-guide-head p { margin:0; color:#64748B; }
.import-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:18px; }
.import-columns > div { padding:13px; background:#F8FAFC; border:1px solid #E2E8F0; border-radius:13px; }
.import-columns strong,.import-columns span { display:block; }
.import-columns span { margin-top:5px; color:#64748B; font-size:13px; line-height:1.45; }
.import-upload-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.import-stat-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.import-stat-grid article { padding:15px; text-align:center; background:#FFF; border:1px solid #DDE4F0; border-radius:15px; }
.import-stat-grid strong,.import-stat-grid span { display:block; }
.import-stat-grid strong { font-size:24px; color:#0F172A; }
.import-stat-grid span { margin-top:4px; color:#64748B; font-size:12px; }
.import-stat-grid .success { background:#F0FDF4; }
.import-stat-grid .info { background:#EFF6FF; }
.import-stat-grid .muted { background:#F8FAFC; }
.import-stat-grid .danger { background:#FEF2F2; }
.import-preview-table { min-width:1450px; }
.plan-import-preview { min-width:1750px; }
.import-preview-table td small { display:block; margin-top:4px; color:#64748B; }
.import-row-invalid td { background:#FFF7F7; }
.import-row-insert td { background:#F7FFF9; }
.import-row-update td { background:#F5F9FF; }
.import-row-skip td { background:#FAFAFA; }
.import-action { display:inline-flex; padding:6px 9px; font-size:11px; font-weight:850; text-transform:uppercase; border-radius:999px; }
.import-action.insert { color:#166534; background:#DCFCE7; }
.import-action.update { color:#1E40AF; background:#DBEAFE; }
.import-action.skip { color:#475569; background:#E2E8F0; }
.import-action.invalid { color:#991B1B; background:#FEE2E2; }
.import-message { margin:3px 0; padding:5px 7px; font-size:12px; line-height:1.35; border-radius:8px; }
.import-message.error { color:#991B1B; background:#FEE2E2; }
.import-message.warning { color:#92400E; background:#FEF3C7; }
.import-commit-actions { display:flex; gap:10px; margin-top:16px; }
.import-result { display:flex; gap:10px; align-items:center; }
.term-chip { display:inline-flex; margin:2px; padding:4px 6px; font-size:11px; font-weight:750; background:#EEF2FF; border-radius:8px; }
@media(max-width:900px){.import-columns,.import-upload-grid,.import-stat-grid{grid-template-columns:1fr}.import-guide-head,.import-commit-actions,.import-result{align-items:stretch;flex-direction:column}}

/* =========================================================
   История обучения студента в журнале
   ========================================================= */

.journal-marks-table tr.student-row-inactive > td {
    background-color: #f8fafc;
}

.journal-marks-table tr.student-row-inactive > td > * {
    opacity: 0.62;
}

.journal-marks-table tr.student-row-inactive .student-status-chip {
    opacity: 1;
}

.journal-marks-table tr.student-row-inactive .student-col {
    box-shadow: inset 3px 0 0 #ef4444;
}

.student-name-with-status {
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: flex-start;
}

.student-status-chip {
    display: inline-flex;
    max-width: 100%;
    padding: 3px 7px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
    white-space: normal;
    border-radius: 999px;
}

.student-status-chip.status-danger {
    color: #991b1b;
    background: #fee2e2;
}

.student-status-chip.status-warning {
    color: #92400e;
    background: #fef3c7;
}

.student-status-chip.status-info {
    color: #1e40af;
    background: #dbeafe;
}

.student-status-chip.status-success {
    color: #166534;
    background: #dcfce7;
}

.student-status-chip.status-muted {
    color: #475569;
    background: #e2e8f0;
}

.journal-marks-table td.student-not-enrolled-cell {
    background: repeating-linear-gradient(
        -45deg,
        #f8fafc,
        #f8fafc 6px,
        #eef2f7 6px,
        #eef2f7 12px
    );
    cursor: not-allowed;
}

.student-not-enrolled-mark {
    display: inline-flex;
    width: 100%;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    font-weight: 700;
}

.ssh-install-card {
    margin-bottom: 18px;
}

.ssh-install-card h3 {
    margin-top: 0;
}

.ssh-install-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 14px 0;
}

.ssh-install-stats span {
    padding: 8px 11px;
    color: #334155;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.ssh-install-warning {
    display: flex;
    gap: 8px;
    color: #7c2d12;
    background: #fff7ed;
    border-color: #fed7aa;
}

.order-empty-row td {
    background: #fff7f7 !important;
}

.order-empty-badge {
    display: inline-flex;
    padding: 5px 8px;
    color: #991b1b;
    font-size: 12px;
    font-weight: 700;
    background: #fee2e2;
    border-radius: 999px;
}

.orders-integrity-table {
    min-width: 1150px;
}

/* Исправление UX приказов */
.order-action-save-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.order-save-hint {
    margin-top: 10px;
    padding: 11px 13px;
    color: #7C2D12;
    font-size: 13px;
    font-weight: 700;
    background: #FFF7ED;
    border: 1px solid #FED7AA;
    border-radius: 12px;
}

.order-approval-actions button[disabled] {
    cursor: not-allowed;
    opacity: .55;
}

@media (max-width: 700px) {
    .order-action-save-buttons {
        flex-direction: column;
    }
}

/* Teacher control and monthly time reports */
.trp-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:7px;margin-bottom:18px;background:#fff;border:1px solid #dde4f0;border-radius:16px}.trp-tabs a{display:flex;align-items:center;gap:7px;padding:10px 15px;color:#475569;font-weight:800;text-decoration:none;border-radius:11px}.trp-tabs a.active{color:#fff;background:#2446a8}.trp-tabs b{min-width:25px;padding:3px 7px;text-align:center;background:rgba(255,255,255,.18);border-radius:999px}.trp-filter-panel{margin-bottom:18px}.trp-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px}.trp-filter-actions{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}.trp-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.trp-stat-card{display:flex;gap:12px;align-items:center;padding:16px;background:#fff;border:1px solid #dde4f0;border-radius:16px}.trp-stat-card>span{width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:22px;background:#eaf0ff;border-radius:14px}.trp-stat-card.danger>span{background:#fee2e2}.trp-stat-card.warning>span{background:#fef3c7}.trp-stat-card strong{display:block;font-size:23px}.trp-stat-card p{margin:4px 0 0;color:#64748b;font-size:13px}.trp-control-table{min-width:1400px}.trp-number-danger{display:inline-flex;min-width:34px;justify-content:center;padding:6px 9px;color:#991b1b;font-weight:900;background:#fee2e2;border-radius:999px}.trp-percent{display:inline-flex;min-width:64px;justify-content:center;padding:6px 9px;font-weight:850;border-radius:999px}.trp-percent.danger{color:#991b1b;background:#fee2e2}.trp-percent.warning{color:#92400e;background:#fef3c7}.trp-time-filter{display:grid;grid-template-columns:300px 420px minmax(300px,1fr);gap:14px;align-items:end}.trp-time-filter .trp-filter-actions{margin:0}.trp-time-info{display:grid;grid-template-columns:180px 280px 1fr 180px;gap:12px;margin-bottom:18px}.trp-time-info>div{padding:12px;background:#f8fafc;border-radius:12px}.trp-time-info span,.trp-time-info strong{display:block}.trp-time-info span{margin-bottom:5px;color:#64748b;font-size:12px}.trp-time-table{min-width:2100px}.trp-time-table thead th{background:#aab3c7!important;color:#fff!important;text-align:center;vertical-align:middle;white-space:normal}.trp-time-table tbody td{text-align:center;vertical-align:middle}.trp-time-table .trp-name-cell{min-width:360px;text-align:left;white-space:normal}.trp-day-head,.trp-day-cell{min-width:39px;width:39px;padding-left:5px!important;padding-right:5px!important}.trp-time-table tfoot td{font-weight:800;background:#f8fafc}.trp-negative{color:#b91c1c;font-weight:900;background:#fee2e2!important}.trp-time-panel{padding:0;overflow:hidden}.trp-time-panel>.table-responsive{padding:18px}.trp-time-panel table{margin:0}@media(max-width:1100px){.trp-filter-grid,.trp-stat-grid,.trp-time-info{grid-template-columns:repeat(2,minmax(0,1fr))}.trp-time-filter{grid-template-columns:1fr 1fr}.trp-time-filter .trp-filter-actions{grid-column:1/-1}}@media(max-width:700px){.trp-filter-grid,.trp-stat-grid,.trp-time-info,.trp-time-filter{grid-template-columns:1fr}.trp-filter-actions,.trp-tabs{flex-direction:column;align-items:stretch}.trp-tabs a{justify-content:flex-start}}


/* Teacher control and monthly time reports */
.trp-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:7px;margin-bottom:18px;background:#fff;border:1px solid #dde4f0;border-radius:16px}.trp-tabs a{display:flex;align-items:center;gap:7px;padding:10px 15px;color:#475569;font-weight:800;text-decoration:none;border-radius:11px}.trp-tabs a.active{color:#fff;background:#2446a8}.trp-tabs b{min-width:25px;padding:3px 7px;text-align:center;background:rgba(255,255,255,.18);border-radius:999px}.trp-filter-panel{margin-bottom:18px}.trp-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px}.trp-filter-actions{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}.trp-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.trp-stat-card{display:flex;gap:12px;align-items:center;padding:16px;background:#fff;border:1px solid #dde4f0;border-radius:16px}.trp-stat-card>span{width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:22px;background:#eaf0ff;border-radius:14px}.trp-stat-card.danger>span{background:#fee2e2}.trp-stat-card.warning>span{background:#fef3c7}.trp-stat-card strong{display:block;font-size:23px}.trp-stat-card p{margin:4px 0 0;color:#64748b;font-size:13px}.trp-control-table{min-width:1400px}.trp-number-danger{display:inline-flex;min-width:34px;justify-content:center;padding:6px 9px;color:#991b1b;font-weight:900;background:#fee2e2;border-radius:999px}.trp-percent{display:inline-flex;min-width:64px;justify-content:center;padding:6px 9px;font-weight:850;border-radius:999px}.trp-percent.danger{color:#991b1b;background:#fee2e2}.trp-percent.warning{color:#92400e;background:#fef3c7}.trp-time-filter{display:grid;grid-template-columns:300px 420px minmax(300px,1fr);gap:14px;align-items:end}.trp-time-filter .trp-filter-actions{margin:0}.trp-time-info{display:grid;grid-template-columns:180px 280px 1fr 180px;gap:12px;margin-bottom:18px}.trp-time-info>div{padding:12px;background:#f8fafc;border-radius:12px}.trp-time-info span,.trp-time-info strong{display:block}.trp-time-info span{margin-bottom:5px;color:#64748b;font-size:12px}.trp-time-table{min-width:2100px}.trp-time-table thead th{background:#aab3c7!important;color:#fff!important;text-align:center;vertical-align:middle;white-space:normal}.trp-time-table tbody td{text-align:center;vertical-align:middle}.trp-time-table .trp-name-cell{min-width:360px;text-align:left;white-space:normal}.trp-day-head,.trp-day-cell{min-width:39px;width:39px;padding-left:5px!important;padding-right:5px!important}.trp-time-table tfoot td{font-weight:800;background:#f8fafc}.trp-negative{color:#b91c1c;font-weight:900;background:#fee2e2!important}.trp-time-panel{padding:0;overflow:hidden}.trp-time-panel>.table-responsive{padding:18px}.trp-time-panel table{margin:0}@media(max-width:1100px){.trp-filter-grid,.trp-stat-grid,.trp-time-info{grid-template-columns:repeat(2,minmax(0,1fr))}.trp-time-filter{grid-template-columns:1fr 1fr}.trp-time-filter .trp-filter-actions{grid-column:1/-1}}@media(max-width:700px){.trp-filter-grid,.trp-stat-grid,.trp-time-info,.trp-time-filter{grid-template-columns:1fr}.trp-filter-actions,.trp-tabs{flex-direction:column;align-items:stretch}.trp-tabs a{justify-content:flex-start}}


/* Текущий момент контроля журналов */
.trp-live-note {
    display: flex;
    gap: 13px;
    align-items: flex-start;
    margin-bottom: 18px;
    padding: 14px 16px;
    color: #334155;
    background: #F8FAFC;
    border: 1px solid #DDE4F0;
    border-radius: 15px;
}

.trp-live-note > span {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    background: #EAF0FF;
    border-radius: 12px;
}

.trp-live-note strong {
    display: block;
    margin-bottom: 4px;
    color: #0F172A;
}

.trp-live-note p {
    margin: 0;
    color: #64748B;
    line-height: 1.45;
}

/* Дополнение: контроль преподавателей без привязки к расписанию */
.trp-clamped-text {
    max-width: 560px;
    max-height: 76px;
    overflow: auto;
    color: #475569;
    line-height: 1.45;
}

.trp-control-table {
    min-width: 1300px;
}

/* =========================================================
   Импорт расписания по группам
   ========================================================= */

.schedule-import-result {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.schedule-import-group-select,
.schedule-import-group-card,
.schedule-import-guide {
    margin-bottom: 18px;
}

.schedule-import-group-grid {
    display: grid;
    grid-template-columns: minmax(260px, 520px) auto;
    gap: 14px;
    align-items: end;
}

.schedule-import-group-card {
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: space-between;
}

.schedule-import-group-card > div {
    display: flex;
    gap: 12px;
    align-items: center;
}

.schedule-import-group-card > div > span {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #EAF0FF;
    border-radius: 14px;
}

.schedule-import-group-card small,
.schedule-import-group-card strong,
.schedule-import-group-card em {
    display: block;
}

.schedule-import-group-card small {
    margin-bottom: 3px;
    color: #64748B;
}

.schedule-import-group-card strong {
    color: #0F172A;
    font-size: 18px;
}

.schedule-import-group-card em {
    margin-top: 3px;
    color: #64748B;
    font-size: 12px;
    font-style: normal;
}

.schedule-import-mode-badge {
    display: inline-flex;
    padding: 8px 11px;
    color: #1E40AF;
    font-size: 13px;
    font-weight: 700;
    background: #DBEAFE;
    border-radius: 999px;
}

.schedule-import-guide-head {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    justify-content: space-between;
}

.schedule-import-guide-head h2 {
    margin: 0 0 7px;
}

.schedule-import-guide-head p {
    margin: 0;
    color: #64748B;
    line-height: 1.5;
}

.schedule-import-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.schedule-import-columns > div {
    padding: 13px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 13px;
}

.schedule-import-columns strong,
.schedule-import-columns span {
    display: block;
}

.schedule-import-columns strong {
    margin-bottom: 5px;
    color: #0F172A;
}

.schedule-import-columns span {
    color: #64748B;
    font-size: 13px;
    line-height: 1.45;
}

.schedule-import-upload-grid {
    display: grid;
    grid-template-columns: minmax(280px, 1.4fr) minmax(260px, 1fr);
    gap: 14px;
}

.schedule-import-mode-note {
    display: flex;
    gap: 7px;
    align-items: flex-start;
    margin-top: 14px;
    padding: 12px 14px;
    color: #7C2D12;
    background: #FFF7ED;
    border: 1px solid #FED7AA;
    border-radius: 13px;
}

.schedule-import-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.schedule-import-stat-grid article {
    padding: 15px;
    background: #FFFFFF;
    border: 1px solid #DDE4F0;
    border-radius: 15px;
}

.schedule-import-stat-grid strong,
.schedule-import-stat-grid span {
    display: block;
}

.schedule-import-stat-grid strong {
    color: #0F172A;
    font-size: 23px;
}

.schedule-import-stat-grid span {
    margin-top: 4px;
    color: #64748B;
    font-size: 13px;
}

.schedule-import-stat-grid article.success {
    border-color: #BBF7D0;
    background: #F0FDF4;
}

.schedule-import-stat-grid article.info {
    border-color: #BFDBFE;
    background: #EFF6FF;
}

.schedule-import-stat-grid article.warning {
    border-color: #FDE68A;
    background: #FFFBEB;
}

.schedule-import-stat-grid article.danger {
    border-color: #FECACA;
    background: #FEF2F2;
}

.schedule-import-preview-table {
    min-width: 1500px;
}

.schedule-import-preview-table td small {
    display: block;
    margin-top: 4px;
    color: #64748B;
}

.schedule-import-row-invalid td {
    background: #FFF7F7;
}

.schedule-import-action {
    display: inline-flex;
    padding: 6px 9px;
    font-size: 12px;
    font-weight: 700;
    border-radius: 999px;
}

.schedule-import-action.insert {
    color: #166534;
    background: #DCFCE7;
}

.schedule-import-action.update {
    color: #1E40AF;
    background: #DBEAFE;
}

.schedule-import-action.invalid {
    color: #991B1B;
    background: #FEE2E2;
}

.schedule-import-message {
    margin-bottom: 5px;
    padding: 6px 8px;
    font-size: 12px;
    line-height: 1.4;
    border-radius: 8px;
}

.schedule-import-message.error {
    color: #991B1B;
    background: #FEE2E2;
}

.schedule-import-message.warning {
    color: #92400E;
    background: #FEF3C7;
}

.schedule-import-commit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

@media (max-width: 1000px) {
    .schedule-import-columns,
    .schedule-import-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .schedule-import-upload-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .schedule-import-group-grid,
    .schedule-import-columns,
    .schedule-import-stat-grid {
        grid-template-columns: 1fr;
    }

    .schedule-import-group-card,
    .schedule-import-guide-head,
    .schedule-import-mode-note {
        flex-direction: column;
        align-items: stretch;
    }

    .schedule-import-commit-actions {
        flex-direction: column;
    }
}

/* =========================================================
   Модуль «Академическая история»
   ========================================================= */
.ahr-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:18px}.ahr-stat-card{display:flex;gap:12px;align-items:center;min-width:0;padding:16px;background:#fff;border:1px solid #dde4f0;border-radius:17px}.ahr-stat-card>span{width:45px;height:45px;flex:0 0 45px;display:flex;align-items:center;justify-content:center;font-size:21px;background:#eaf0ff;border-radius:14px}.ahr-stat-card strong{display:block;color:#0f172a;font-size:23px;line-height:1.1}.ahr-stat-card p{margin:4px 0 0;color:#64748b;font-size:13px}.ahr-stat-card.success>span{background:#dcfce7}.ahr-stat-card.warning>span{background:#fef3c7}.ahr-stat-card.info>span{background:#dbeafe}.ahr-filter-panel{margin-bottom:18px}.ahr-filter-grid{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(180px,1fr));gap:14px}.ahr-filter-actions,.ahr-install-actions{display:flex;gap:10px;margin-top:14px}.ahr-students-table{min-width:1250px}.ahr-results-table{min-width:1800px}.ahr-subtext{display:block;margin-top:5px;color:#64748b;font-size:12px;line-height:1.35}.ahr-parent-title{display:block;margin-bottom:5px;color:#475569;font-size:12px;font-weight:750}.ahr-count{display:inline-flex;min-width:38px;justify-content:center;padding:6px 9px;border-radius:999px;font-weight:900}.ahr-count.success{color:#166534;background:#dcfce7}.ahr-count.warning{color:#92400e;background:#fef3c7}.ahr-student-card{display:flex;gap:18px;align-items:center;margin-bottom:18px}.ahr-avatar{width:76px;height:76px;flex:0 0 76px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:900;background:#2446a8;border-radius:22px}.ahr-student-info{min-width:0}.ahr-student-info h3{margin:0 0 12px;font-size:23px}.ahr-student-info>div{display:flex;flex-wrap:wrap;gap:9px}.ahr-student-info>div>span{min-width:135px;padding:9px 11px;background:#f8fafc;border-radius:11px}.ahr-student-info small,.ahr-student-info strong{display:block}.ahr-student-info small{margin-bottom:4px;color:#64748b}.ahr-grade{font-size:16px}.ahr-record-draft td{background:#fffcf3}.ahr-record-cancelled td,.ahr-record-replaced td{opacity:.62;background:#f8fafc}.ahr-timeline{position:relative;display:flex;flex-direction:column;gap:14px}.ahr-timeline article{display:grid;grid-template-columns:18px minmax(0,1fr);gap:12px}.ahr-timeline article>span{width:12px;height:12px;margin-top:5px;background:#2446a8;border:3px solid #dbeafe;border-radius:50%}.ahr-timeline p{margin:4px 0;color:#475569}.ahr-timeline small{color:#64748b}.ahr-sync-panel,.ahr-empty-state{display:flex;gap:18px;align-items:flex-start}.ahr-sync-icon,.ahr-empty-state>span{width:72px;height:72px;flex:0 0 72px;display:flex;align-items:center;justify-content:center;font-size:34px;background:#eaf0ff;border-radius:20px}.ahr-sync-panel h3,.ahr-empty-state h3{margin-top:0}.ahr-warning-panel{color:#7c2d12;background:#fff7ed;border-color:#fed7aa}.ahr-install-panel{margin-bottom:18px}.ahr-record-banner{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.ahr-record-banner>div{min-width:160px;padding:10px 12px;background:#f8fafc;border-radius:12px}.ahr-record-banner small,.ahr-record-banner strong{display:block}.ahr-record-banner small{margin-bottom:5px;color:#64748b}.ahr-inline-input{margin-top:8px}.ahr-log-list{display:flex;flex-direction:column;gap:9px}.ahr-log-list article{display:grid;grid-template-columns:minmax(140px,1fr) minmax(90px,.5fr) auto;gap:12px;padding:12px;background:#f8fafc;border-radius:12px}.ahr-log-list p{grid-column:1/-1;margin:0;color:#475569}.ahr-log-list small{color:#64748b}.row-actions form{display:inline-flex;margin:0}.row-actions button.btn-icon{border:1px solid #dbe4f0;background:#fff;cursor:pointer}.ahr-search{grid-column:auto}@media(max-width:1250px){.ahr-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.ahr-filter-grid,.ahr-stat-grid{grid-template-columns:1fr}.ahr-student-card,.ahr-sync-panel,.ahr-empty-state{flex-direction:column;align-items:flex-start}.ahr-filter-actions,.ahr-install-actions{flex-direction:column}.ahr-log-list article{grid-template-columns:1fr}.ahr-log-list p{grid-column:auto}}

/* ===== Сравнение учебных планов и перезачёт ===== */
.pr-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.pr-stat-grid article {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid #e3e8f2;
    border-radius: 14px;
    box-shadow: 0 5px 16px rgba(30, 64, 175, .05);
}
.pr-stat-grid article strong { font-size: 27px; line-height: 1; color: #183a8f; }
.pr-stat-grid article span { color: #64748b; font-size: 13px; }
.pr-stat-grid article.success { border-left: 4px solid #16a34a; }
.pr-stat-grid article.warning { border-left: 4px solid #d97706; }
.pr-filter-panel form { width: 100%; }
.pr-filter-grid {
    display: grid;
    grid-template-columns: 1.4fr 1.2fr .7fr;
    gap: 14px;
    align-items: end;
}
.pr-filter-actions { display: flex; gap: 10px; margin-top: 14px; }
.pr-list-table td { vertical-align: middle; }
.pr-create-card { max-width: 1150px; margin-left: auto; margin-right: auto; }
.pr-plan-selector-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
}
.pr-plan-selector {
    border: 1px solid #dbe4f3;
    border-radius: 16px;
    padding: 18px;
    background: #f8fafc;
}
.pr-plan-selector.old { border-top: 4px solid #64748b; }
.pr-plan-selector.new { border-top: 4px solid #2563eb; background: #f5f8ff; }
.pr-plan-selector-title { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.pr-plan-selector-title > span {
    width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
    background: #e8eef8; color: #183a8f; font-weight: 700;
}
.pr-plan-selector-title div { display: flex; flex-direction: column; gap: 2px; }
.pr-plan-selector-title small { color: #64748b; }
.pr-plan-selector select { width: 100%; }
.pr-plan-arrow { display: grid; place-items: center; font-size: 32px; color: #2563eb; font-weight: 700; }
.pr-student-hint {
    display: flex; flex-wrap: wrap; gap: 10px 22px; padding: 14px 16px; margin-top: 18px;
    border: 1px solid #dbeafe; border-radius: 12px; background: #eff6ff;
}
.pr-context-card {
    display: grid;
    grid-template-columns: minmax(250px, .8fr) minmax(440px, 1.5fr) auto;
    gap: 20px;
    align-items: center;
}
.pr-context-student { display: flex; align-items: center; gap: 14px; }
.pr-context-student h3 { margin: 0 0 5px; }
.pr-context-student p { margin: 2px 0; color: #64748b; font-size: 13px; }
.pr-context-avatar {
    width: 54px; height: 54px; border-radius: 14px; display: grid; place-items: center;
    background: #2446a8; color: #fff; font-size: 24px; font-weight: 700;
}
.pr-context-plans { display: grid; grid-template-columns: 1fr 34px 1fr; gap: 10px; align-items: center; }
.pr-context-plans > span { text-align: center; color: #2563eb; font-size: 24px; font-weight: 700; }
.pr-context-plans article {
    padding: 12px 14px; border-radius: 12px; border: 1px solid #dbe4f3;
    display: flex; flex-direction: column; gap: 4px; min-height: 68px;
}
.pr-context-plans article.old { background: #f8fafc; }
.pr-context-plans article.new { background: #eff6ff; border-color: #bfdbfe; }
.pr-context-plans small { color: #64748b; }
.pr-context-plans strong { font-size: 13px; line-height: 1.35; }
.pr-summary-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 18px; }
.pr-toolbar { display: flex; justify-content: space-between; gap: 14px; align-items: center; }
.pr-toolbar-left, .pr-toolbar-right { display: flex; gap: 9px; flex-wrap: wrap; }
.pr-toolbar form { margin: 0; }
.pr-compare-wrap { max-height: none; overflow-x: auto; }
.pr-compare-table { min-width: 1450px; }
.pr-compare-table th { white-space: nowrap; }
.pr-compare-table td { vertical-align: top; }
.pr-target-cell { min-width: 280px; }
.pr-target-cell strong { display: block; line-height: 1.35; }
.pr-parent-label { display: inline-block; color: #64748b; margin-bottom: 4px; }
.pr-hours-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pr-hours-row span {
    padding: 3px 7px; border-radius: 999px; background: #eef2f7; color: #475569; font-size: 11px;
}
.pr-match-score {
    display: inline-flex; align-items: center; justify-content: center; min-width: 48px;
    padding: 5px 8px; border-radius: 999px; font-weight: 700; margin-right: 6px;
}
.pr-match-score.high { background: #dcfce7; color: #166534; }
.pr-match-score.medium { background: #fef3c7; color: #92400e; }
.pr-match-score.low { background: #fee2e2; color: #991b1b; }
.pr-suggestion { margin-top: 8px; font-size: 12px; color: #475569; }
.pr-source-cell { min-width: 340px; }
.pr-source-select, .pr-decision-select { width: 100%; min-width: 220px; }
.pr-source-meta { margin-top: 6px; color: #64748b; font-size: 12px; }
.pr-credit-cell { min-width: 140px; }
.pr-credit-cell label { display: block; font-size: 11px; color: #64748b; margin-bottom: 3px; }
.pr-credit-cell input { width: 110px; margin-bottom: 8px; }
.pr-compare-table textarea { min-width: 190px; resize: vertical; }
.pr-decision-full_credit { background: #fbfffc; }
.pr-decision-partial_credit { background: #fffcf5; }
.pr-decision-not_credit { background: #fafafa; color: #64748b; }
.pr-sticky-actions {
    position: sticky; bottom: 0; z-index: 3; margin: 0 -20px -20px; padding: 14px 20px;
    border-top: 1px solid #e2e8f0; background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px);
}
.pr-danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-color: #fecaca; }
.pr-danger-zone h3 { margin: 0 0 4px; color: #991b1b; }
.pr-danger-zone p { margin: 0; color: #64748b; }
.pr-install-card { max-width: 760px; margin-left: auto; margin-right: auto; }
.pr-install-check { display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: 12px; }
.pr-install-check.ok { background: #ecfdf5; border: 1px solid #bbf7d0; }
.pr-install-check.bad { background: #fef2f2; border: 1px solid #fecaca; }
.pr-install-check > span { font-size: 24px; }
.pr-install-check strong { display: block; }
.pr-install-check p { margin: 3px 0 0; color: #64748b; }

@media (max-width: 1100px) {
    .pr-context-card { grid-template-columns: 1fr; }
    .pr-context-status { justify-self: start; }
    .pr-summary-grid, .pr-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pr-filter-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .pr-plan-selector-grid { grid-template-columns: 1fr; }
    .pr-plan-arrow { transform: rotate(90deg); min-height: 32px; }
    .pr-context-plans { grid-template-columns: 1fr; }
    .pr-context-plans > span { transform: rotate(90deg); }
    .pr-summary-grid, .pr-stat-grid { grid-template-columns: 1fr 1fr; }
    .pr-toolbar, .pr-danger-zone { align-items: stretch; flex-direction: column; }
}

/* =========================================================
   Закрытие семестра / Семестрді жабу
   ========================================================= */

.scr-header-actions,
.scr-action-row,
.scr-overview-head,
.scr-filter-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.scr-overview-head {
    justify-content: space-between;
}

.scr-period,
.scr-muted,
.scr-subtext {
    color: #64748b;
}

.scr-subtext {
    display: block;
    margin-top: 4px;
    font-size: 12px;
}

.scr-status,
.scr-summary-status,
.scr-record-status,
.scr-journal-status,
.scr-version {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.scr-status.draft,
.scr-record-status.draft {
    color: #92400e;
    background: #fef3c7;
}

.scr-status.closed,
.scr-summary-status.ready,
.scr-record-status.confirmed,
.scr-journal-status.closed {
    color: #166534;
    background: #dcfce7;
}

.scr-status.reopened,
.scr-version {
    color: #1d4ed8;
    background: #dbeafe;
}

.scr-status.cancelled,
.scr-record-status.cancelled,
.scr-record-status.replaced,
.scr-summary-status.incomplete,
.scr-journal-status.open {
    color: #991b1b;
    background: #fee2e2;
}

.scr-summary-status.debt {
    color: #9a3412;
    background: #ffedd5;
}

.scr-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.scr-stat-card {
    min-height: 104px;
    padding: 18px;
    border: 1px solid #dbe4f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
}

.scr-stat-card span {
    display: block;
    color: #64748b;
    font-size: 13px;
    line-height: 1.35;
}

.scr-stat-card strong {
    display: block;
    margin-top: 10px;
    color: #0f172a;
    font-size: 25px;
}

.scr-stat-card.success {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.scr-stat-card.warning {
    border-color: #fde68a;
    background: #fffbeb;
}

.scr-stat-card.danger {
    border-color: #fecaca;
    background: #fef2f2;
}

.scr-stat-card.info {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.scr-filters {
    align-items: end;
}

.scr-filter-actions {
    align-self: end;
}

.scr-note,
.scr-closed-info,
.scr-reopen-info,
.scr-ready-box,
.scr-action-hint,
.scr-info-panel,
.scr-warning-panel {
    border-radius: 14px;
}

.scr-note {
    margin: 16px 0 0;
    padding: 14px 16px;
    background: #f8fafc;
    color: #475569;
}

.scr-closed-info,
.scr-reopen-info {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    margin-top: 16px;
    padding: 14px 16px;
}

.scr-closed-info {
    color: #166534;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.scr-reopen-info {
    color: #1d4ed8;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
}

.scr-action-panel .panel-header p,
.scr-info-panel p {
    margin: 5px 0 0;
    color: #64748b;
}

.scr-action-hint {
    margin: 14px 0 0;
    padding: 12px 14px;
}

.scr-action-hint.danger {
    color: #991b1b;
    border: 1px solid #fecaca;
    background: #fef2f2;
}

.scr-inline-details {
    position: relative;
}

.scr-inline-details > summary {
    list-style: none;
    cursor: pointer;
}

.scr-inline-details > summary::-webkit-details-marker {
    display: none;
}

.scr-reopen-form {
    position: absolute;
    z-index: 20;
    top: calc(100% + 8px);
    right: 0;
    width: min(390px, 86vw);
    padding: 16px;
    border: 1px solid #dbe4f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18);
}

.scr-reopen-form label {
    display: block;
    margin-bottom: 7px;
    font-weight: 700;
}

.scr-reopen-form textarea {
    width: 100%;
    margin-bottom: 10px;
}

.scr-ready-box {
    padding: 18px;
    color: #166534;
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    font-weight: 700;
}

.scr-issue-list {
    display: grid;
    gap: 10px;
}

.scr-issue {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    padding: 14px 16px;
    border-radius: 14px;
}

.scr-issue.blocker {
    border: 1px solid #fecaca;
    background: #fff7f7;
}

.scr-issue.warning {
    border: 1px solid #fde68a;
    background: #fffbeb;
}

.scr-issue-icon {
    font-size: 20px;
}

.scr-issue strong {
    color: #0f172a;
}

.scr-issue p {
    margin: 5px 0 0;
    color: #475569;
}

.scr-issue-link {
    display: inline-block;
    margin: 8px 12px 0 0;
    color: #2446a8;
    font-weight: 700;
    text-decoration: none;
}

.scr-good-text {
    color: #15803d;
}

.scr-danger-text {
    color: #dc2626;
}

.scr-check-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.scr-check-grid > div {
    padding: 14px;
    border: 1px solid #dbe4f0;
    border-radius: 12px;
    background: #f8fafc;
}

.scr-install-panel ul {
    display: grid;
    gap: 8px;
    margin: 16px 0;
}

.scr-results-table td:nth-child(3) {
    min-width: 280px;
}

@media (max-width: 1280px) {
    .scr-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .scr-stat-grid,
    .scr-check-grid {
        grid-template-columns: 1fr;
    }

    .scr-overview-head,
    .scr-closed-info,
    .scr-reopen-info {
        align-items: flex-start;
        flex-direction: column;
    }

    .scr-action-row {
        align-items: stretch;
        flex-direction: column;
    }

    .scr-action-row form,
    .scr-action-row .btn,
    .scr-inline-details {
        width: 100%;
    }

    .scr-reopen-form {
        position: static;
        width: 100%;
        margin-top: 8px;
        box-shadow: none;
    }
}

/* =========================================================
   Пересдачи и академические задолженности
   ========================================================= */
.rtk-header-actions,
.rtk-filter-actions,
.rtk-overview-head,
.rtk-statuses {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.rtk-header-actions { justify-content: flex-end; }
.rtk-overview-head { justify-content: space-between; }

.rtk-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.rtk-stat-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 18px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .05);
}

.rtk-stat-card span {
    display: block;
    color: #64748b;
    font-size: 13px;
    margin-bottom: 8px;
}

.rtk-stat-card strong { font-size: 28px; line-height: 1; }
.rtk-stat-card.danger { border-left: 4px solid #dc2626; }
.rtk-stat-card.warning { border-left: 4px solid #d97706; }
.rtk-stat-card.success { border-left: 4px solid #16a34a; }
.rtk-stat-card.muted { border-left: 4px solid #64748b; }

.rtk-filter-grid {
    display: grid;
    grid-template-columns: minmax(260px, 2fr) repeat(4, minmax(150px, 1fr));
    gap: 14px;
}

.rtk-filter-actions { margin-top: 14px; }
.rtk-wide-field { grid-column: 1 / -1; }

.rtk-tabs {
    display: flex;
    gap: 8px;
    border-bottom: 1px solid #e5e7eb;
}

.rtk-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    color: #475569;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    font-weight: 700;
}

.rtk-tabs a.active {
    color: #2446a8;
    border-bottom-color: #2446a8;
}

.rtk-tabs b {
    min-width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #eef2ff;
    font-size: 12px;
}

.rtk-table-panel { border-top-left-radius: 0; }
.rtk-data-table td { vertical-align: top; }
.rtk-data-table td strong,
.rtk-data-table td small { display: block; }
.rtk-data-table td small { margin-top: 5px; color: #64748b; }
.rtk-student-link { font-weight: 700; text-decoration: none; }
.rtk-muted { color: #94a3b8; }
.btn-sm { padding: 7px 11px; font-size: 13px; }

.rtk-create-layout,
.rtk-two-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
    gap: 18px;
}

.rtk-two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.rtk-info-list,
.rtk-info-grid {
    display: grid;
    gap: 12px;
}

.rtk-info-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rtk-info-list > div,
.rtk-info-grid > div {
    padding: 13px 14px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    border-radius: 10px;
}

.rtk-info-list span,
.rtk-info-grid span {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-bottom: 5px;
}

.rtk-info-list strong,
.rtk-info-grid strong { display: block; }
.rtk-info-list small,
.rtk-info-grid small { display: block; margin-top: 4px; color: #64748b; }
.rtk-info-wide { grid-column: span 2; }

.rtk-result-box {
    display: grid;
    place-items: center;
    gap: 8px;
    min-height: 180px;
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    text-align: center;
    padding: 24px;
}

.rtk-result-box strong { font-size: 22px; }
.rtk-result-box span { font-size: 34px; font-weight: 700; }
.rtk-result-box.success { background: #f0fdf4; border-color: #bbf7d0; }
.rtk-result-box.danger { background: #fef2f2; border-color: #fecaca; }
.rtk-result-box.warning { background: #fffbeb; border-color: #fde68a; }

.rtk-danger-zone {
    border-color: #fecaca;
    background: #fffafa;
}

.rtk-danger-zone summary {
    cursor: pointer;
    color: #b91c1c;
    font-weight: 700;
}

.rtk-danger-zone form { margin-top: 16px; }

.rtk-timeline {
    position: relative;
    padding-left: 22px;
}

.rtk-timeline::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 4px;
    bottom: 4px;
    width: 2px;
    background: #e2e8f0;
}

.rtk-timeline-item {
    position: relative;
    padding: 0 0 20px 8px;
}

.rtk-timeline-item::before {
    content: "";
    position: absolute;
    left: -20px;
    top: 5px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #2446a8;
}

.rtk-timeline-item > span {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-top: 3px;
}

.rtk-timeline-item p { margin: 7px 0 0; }

@media (max-width: 1200px) {
    .rtk-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rtk-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rtk-search-field { grid-column: 1 / -1; }
    .rtk-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .rtk-stat-grid,
    .rtk-filter-grid,
    .rtk-create-layout,
    .rtk-two-columns,
    .rtk-info-grid { grid-template-columns: 1fr; }
    .rtk-info-wide,
    .rtk-wide-field { grid-column: auto; }
    .rtk-tabs { overflow-x: auto; }
    .rtk-tabs a { white-space: nowrap; }
}

/* COURSE PROMOTION MODULE */
.cpr-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.cpr-stat-grid article {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
}

.cpr-stat-grid strong {
    display: block;
    color: #2446A8;
    font-size: 28px;
    line-height: 1;
    margin-bottom: 8px;
}

.cpr-stat-grid span,
.cpr-subtext {
    display: block;
    color: #64748B;
    font-size: 13px;
}

.cpr-create-panel .form-grid,
.cpr-readiness-grid,
.cpr-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.cpr-check-grid > div,
.cpr-readiness-grid > div {
    border: 1px solid #E2E8F0;
    border-radius: 16px;
    padding: 16px;
    background: #F8FAFC;
}

.cpr-readiness-grid > div.ready {
    border-color: #BBF7D0;
    background: #F0FDF4;
}

.cpr-readiness-grid > div.blocked {
    border-color: #FECACA;
    background: #FEF2F2;
}

.cpr-readiness-grid p {
    margin: 7px 0 0;
    color: #64748B;
}

.cpr-student-table select,
.cpr-student-table input {
    min-width: 180px;
}

.cpr-student-table tr.cpr-has-debt td {
    background: #FFF7ED;
}

.cpr-final-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.cpr-final-actions p {
    color: #64748B;
    max-width: 760px;
}

.cpr-final-actions form {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cpr-final-actions input[type="text"] {
    min-width: 200px;
}

.cpr-log-list {
    display: grid;
    gap: 12px;
}

.cpr-log-list article {
    border-left: 4px solid #2446A8;
    background: #F8FAFC;
    border-radius: 12px;
    padding: 14px 16px;
}

.cpr-log-list p {
    margin: 6px 0;
}

.cpr-log-list small {
    color: #64748B;
}

.cpr-student-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.cpr-student-summary div {
    background: #F8FAFC;
    border-radius: 14px;
    padding: 14px;
}

.cpr-student-summary small,
.cpr-student-summary strong {
    display: block;
}

.cpr-student-summary small {
    color: #64748B;
    margin-bottom: 6px;
}

.btn:disabled {
    opacity: .55;
    cursor: not-allowed;
}

@media (max-width: 980px) {
    .cpr-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cpr-final-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 640px) {
    .cpr-stat-grid,
    .cpr-create-panel .form-grid,
    .cpr-readiness-grid,
    .cpr-check-grid,
    .cpr-student-summary {
        grid-template-columns: 1fr;
    }

    .cpr-final-actions form {
        align-items: stretch;
        flex-direction: column;
    }
}

/* =========================
   Итоговая аттестация
   ========================= */
.fia-filter-panel,
.fia-create-panel,
.fia-overview-panel,
.fia-workflow-panel {
    overflow: visible;
}

.fia-overview-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.fia-overview-grid > div {
    padding: 14px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
}

.fia-overview-grid small,
.fia-overview-grid strong {
    display: block;
}

.fia-overview-grid small {
    margin-bottom: 6px;
    color: #64748b;
}

.fia-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0;
}

.fia-stat-grid article {
    min-height: 104px;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
}

.fia-stat-grid article strong,
.fia-stat-grid article span {
    display: block;
}

.fia-stat-grid article strong {
    margin-bottom: 8px;
    font-size: 26px;
}

.fia-stat-grid article span {
    color: #64748b;
    line-height: 1.3;
}

.fia-stat-grid article.success { border-top: 4px solid #16a34a; }
.fia-stat-grid article.danger { border-top: 4px solid #dc2626; }
.fia-stat-grid article.info { border-top: 4px solid #2563eb; }
.fia-stat-grid article.warning { border-top: 4px solid #d97706; }

.fia-closure-check {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-left: 5px solid #d97706;
}

.fia-closure-check.is-ready { border-left-color: #16a34a; }
.fia-closure-check.is-blocked { background: #fffaf0; }
.fia-closure-check p { margin: 6px 0 0; color: #64748b; }

.fia-span-2 { grid-column: span 2; }

.fia-member-form {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #e2e8f0;
}

.fia-inline-actions,
.fia-workflow-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.fia-inline-actions form,
.fia-workflow-actions form {
    margin: 0;
}

.fia-student-table {
    min-width: 1780px;
}

.fia-student-table th,
.fia-student-table td {
    vertical-align: top;
}

.fia-student-table input,
.fia-student-table select,
.fia-student-table textarea {
    width: 100%;
    min-width: 125px;
    margin-bottom: 6px;
}

.fia-student-table td:nth-child(2) { min-width: 220px; }
.fia-student-table td:nth-child(3) { min-width: 250px; }
.fia-student-table td:nth-child(5) { min-width: 300px; }
.fia-student-table td:nth-child(6) { min-width: 250px; }
.fia-student-table td:nth-child(10) { min-width: 240px; }

.fia-subtext {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
}

.fia-note-text {
    max-width: 280px;
    white-space: normal;
    line-height: 1.35;
}

.fia-inline-details {
    position: relative;
}

.fia-inline-details > summary {
    list-style: none;
    cursor: pointer;
}

.fia-inline-details > summary::-webkit-details-marker {
    display: none;
}

.fia-inline-details form {
    position: absolute;
    z-index: 20;
    right: 0;
    top: calc(100% + 8px);
    width: 320px;
    padding: 14px;
    border: 1px solid #dbe3ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .16);
}

.fia-inline-details textarea {
    width: 100%;
    margin-bottom: 10px;
}

.fia-list-table small {
    display: block;
    margin-top: 4px;
    color: #64748b;
}

@media (max-width: 1250px) {
    .fia-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .fia-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .fia-stat-grid,
    .fia-overview-grid { grid-template-columns: 1fr; }
    .fia-span-2 { grid-column: auto; }
    .fia-closure-check { align-items: flex-start; flex-direction: column; }
    .fia-inline-details form { position: fixed; left: 16px; right: 16px; top: 20%; width: auto; }
}

/* Выпуск, дипломы и приложения */
.grad-filter-panel{margin-bottom:18px}.grad-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.grad-filter-actions,.grad-panel-actions,.grad-action-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.grad-filter-actions{margin-top:12px}.grad-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;margin-bottom:18px}.grad-stat-card{background:#fff;border:1px solid #e1e7f0;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:5px}.grad-stat-card strong{font-size:26px}.grad-stat-card span{color:#64748b}.grad-stat-card.success{border-left:4px solid #16a34a}.grad-stat-card.danger{border-left:4px solid #dc2626}.grad-stat-card.warning{border-left:4px solid #d97706}.grad-stat-card.info{border-left:4px solid #2563eb}.grad-number-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}.grad-student-table{min-width:1650px}.grad-student-table select,.grad-student-table input,.grad-student-table textarea{min-width:145px}.grad-subtext{display:block;margin-top:5px;color:#64748b;max-width:330px}.grad-check{display:flex;gap:6px;align-items:center;margin-top:7px;font-size:12px}.grad-check input{min-width:auto}.grad-doc-fields{display:grid;grid-template-columns:75px 120px;gap:6px}.grad-doc-fields input[type=date]{grid-column:1/-1}.grad-inline-details{position:relative}.grad-inline-details summary{cursor:pointer;padding:9px 12px;border:1px solid #e2e8f0;border-radius:8px}.grad-inline-details form{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.grad-inline-details textarea{min-width:260px}.grad-inline-details.danger summary{color:#b91c1c}.grad-document-actions{display:grid;gap:10px}.grad-document-actions>article{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px;border:1px solid #e2e8f0;border-radius:10px}.grad-document-actions>article>div{display:flex;gap:8px;flex-wrap:wrap}.grad-document-actions details form{display:flex;gap:6px;margin-top:6px}.grad-log-list{display:grid;gap:8px}.grad-log-list article{padding:10px 12px;border-left:3px solid #2446a8;background:#f8fafc}.grad-log-list span,.grad-log-list small{display:block;margin-top:3px}.grad-log-list small{color:#64748b}.grad-document-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}.grad-document-cards article{border:1px solid #dbe4f0;border-radius:16px;padding:18px;background:#fff}.grad-document-cards article>div:first-child{display:flex;gap:12px;align-items:center}.grad-diploma-icon{font-size:38px}.grad-document-cards h3{margin:0 0 4px}.grad-document-cards p{margin:0;color:#64748b}.grad-document-cards dl{display:grid;grid-template-columns:150px 1fr;gap:7px 10px;margin:16px 0}.grad-document-cards dt{color:#64748b}.grad-document-cards dd{margin:0;font-weight:600}.grad-card-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1100px){.grad-stat-grid{grid-template-columns:repeat(3,1fr)}.grad-number-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.grad-filter-grid,.grad-number-grid,.grad-stat-grid{grid-template-columns:1fr}.grad-document-actions>article{align-items:flex-start;flex-direction:column}.grad-document-cards dl{grid-template-columns:1fr}.grad-document-cards dt{margin-top:5px}}

/* =========================
   Итоговая аттестация
   ========================= */
.fia-filter-panel,
.fia-create-panel,
.fia-overview-panel,
.fia-workflow-panel {
    overflow: visible;
}

.fia-overview-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.fia-overview-grid > div {
    padding: 14px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
}

.fia-overview-grid small,
.fia-overview-grid strong {
    display: block;
}

.fia-overview-grid small {
    margin-bottom: 6px;
    color: #64748b;
}

.fia-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0;
}

.fia-stat-grid article {
    min-height: 104px;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
}

.fia-stat-grid article strong,
.fia-stat-grid article span {
    display: block;
}

.fia-stat-grid article strong {
    margin-bottom: 8px;
    font-size: 26px;
}

.fia-stat-grid article span {
    color: #64748b;
    line-height: 1.3;
}

.fia-stat-grid article.success { border-top: 4px solid #16a34a; }
.fia-stat-grid article.danger { border-top: 4px solid #dc2626; }
.fia-stat-grid article.info { border-top: 4px solid #2563eb; }
.fia-stat-grid article.warning { border-top: 4px solid #d97706; }

.fia-closure-check {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-left: 5px solid #d97706;
}

.fia-closure-check.is-ready { border-left-color: #16a34a; }
.fia-closure-check.is-blocked { background: #fffaf0; }
.fia-closure-check p { margin: 6px 0 0; color: #64748b; }

.fia-span-2 { grid-column: span 2; }

.fia-member-form {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #e2e8f0;
}

.fia-inline-actions,
.fia-workflow-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.fia-inline-actions form,
.fia-workflow-actions form {
    margin: 0;
}

.fia-student-table {
    min-width: 1780px;
}

.fia-student-table th,
.fia-student-table td {
    vertical-align: top;
}

.fia-student-table input,
.fia-student-table select,
.fia-student-table textarea {
    width: 100%;
    min-width: 125px;
    margin-bottom: 6px;
}

.fia-student-table td:nth-child(2) { min-width: 220px; }
.fia-student-table td:nth-child(3) { min-width: 250px; }
.fia-student-table td:nth-child(5) { min-width: 300px; }
.fia-student-table td:nth-child(6) { min-width: 250px; }
.fia-student-table td:nth-child(10) { min-width: 240px; }

.fia-subtext {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
}

.fia-note-text {
    max-width: 280px;
    white-space: normal;
    line-height: 1.35;
}

.fia-inline-details {
    position: relative;
}

.fia-inline-details > summary {
    list-style: none;
    cursor: pointer;
}

.fia-inline-details > summary::-webkit-details-marker {
    display: none;
}

.fia-inline-details form {
    position: absolute;
    z-index: 20;
    right: 0;
    top: calc(100% + 8px);
    width: 320px;
    padding: 14px;
    border: 1px solid #dbe3ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .16);
}

.fia-inline-details textarea {
    width: 100%;
    margin-bottom: 10px;
}

.fia-list-table small {
    display: block;
    margin-top: 4px;
    color: #64748b;
}

@media (max-width: 1250px) {
    .fia-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .fia-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .fia-stat-grid,
    .fia-overview-grid { grid-template-columns: 1fr; }
    .fia-span-2 { grid-column: auto; }
    .fia-closure-check { align-items: flex-start; flex-direction: column; }
    .fia-inline-details form { position: fixed; left: 16px; right: 16px; top: 20%; width: auto; }
}
/* Выпуск, дипломы и приложения */
.grad-filter-panel{margin-bottom:18px}.grad-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.grad-filter-actions,.grad-panel-actions,.grad-action-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.grad-filter-actions{margin-top:12px}.grad-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;margin-bottom:18px}.grad-stat-card{background:#fff;border:1px solid #e1e7f0;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:5px}.grad-stat-card strong{font-size:26px}.grad-stat-card span{color:#64748b}.grad-stat-card.success{border-left:4px solid #16a34a}.grad-stat-card.danger{border-left:4px solid #dc2626}.grad-stat-card.warning{border-left:4px solid #d97706}.grad-stat-card.info{border-left:4px solid #2563eb}.grad-number-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}.grad-student-table{min-width:1650px}.grad-student-table select,.grad-student-table input,.grad-student-table textarea{min-width:145px}.grad-subtext{display:block;margin-top:5px;color:#64748b;max-width:330px}.grad-check{display:flex;gap:6px;align-items:center;margin-top:7px;font-size:12px}.grad-check input{min-width:auto}.grad-doc-fields{display:grid;grid-template-columns:75px 120px;gap:6px}.grad-doc-fields input[type=date]{grid-column:1/-1}.grad-inline-details{position:relative}.grad-inline-details summary{cursor:pointer;padding:9px 12px;border:1px solid #e2e8f0;border-radius:8px}.grad-inline-details form{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.grad-inline-details textarea{min-width:260px}.grad-inline-details.danger summary{color:#b91c1c}.grad-document-actions{display:grid;gap:10px}.grad-document-actions>article{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px;border:1px solid #e2e8f0;border-radius:10px}.grad-document-actions>article>div{display:flex;gap:8px;flex-wrap:wrap}.grad-document-actions details form{display:flex;gap:6px;margin-top:6px}.grad-log-list{display:grid;gap:8px}.grad-log-list article{padding:10px 12px;border-left:3px solid #2446a8;background:#f8fafc}.grad-log-list span,.grad-log-list small{display:block;margin-top:3px}.grad-log-list small{color:#64748b}.grad-document-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px}.grad-document-cards article{border:1px solid #dbe4f0;border-radius:16px;padding:18px;background:#fff}.grad-document-cards article>div:first-child{display:flex;gap:12px;align-items:center}.grad-diploma-icon{font-size:38px}.grad-document-cards h3{margin:0 0 4px}.grad-document-cards p{margin:0;color:#64748b}.grad-document-cards dl{display:grid;grid-template-columns:150px 1fr;gap:7px 10px;margin:16px 0}.grad-document-cards dt{color:#64748b}.grad-document-cards dd{margin:0;font-weight:600}.grad-card-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1100px){.grad-stat-grid{grid-template-columns:repeat(3,1fr)}.grad-number-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.grad-filter-grid,.grad-number-grid,.grad-stat-grid{grid-template-columns:1fr}.grad-document-actions>article{align-items:flex-start;flex-direction:column}.grad-document-cards dl{grid-template-columns:1fr}.grad-document-cards dt{margin-top:5px}}

/* =========================================================
   FINAL SYSTEM INTEGRATION — DIAGNOSTICS
   ========================================================= */
.sysd-overall {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-left: 5px solid #16a34a;
}
.sysd-overall > div { display: flex; align-items: center; gap: 16px; }
.sysd-overall h3 { margin: 0 0 4px; }
.sysd-overall p { margin: 0; color: #64748b; }
.sysd-overall-icon { font-size: 32px; }
.sysd-overall.sysd-warning { border-left-color: #d97706; }
.sysd-overall.sysd-error { border-left-color: #dc2626; }
.sysd-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.sysd-stat-grid article {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 16px;
    min-height: 96px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.sysd-stat-grid article strong { font-size: 28px; line-height: 1; }
.sysd-stat-grid article span { margin-top: 8px; color: #64748b; font-size: 13px; }
.sysd-stat-grid article.warning { border-color: #f59e0b; }
.sysd-stat-grid article.danger { border-color: #ef4444; }
.sysd-env-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.sysd-env-item {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 14px;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    background: #f8fafc;
}
.sysd-env-item.ok { border-color: #86efac; background: #f0fdf4; }
.sysd-env-item.bad { border-color: #fca5a5; background: #fef2f2; }
.sysd-marker-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sysd-marker {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 14px;
}
.sysd-marker.ok { background: #f0fdf4; border-color: #86efac; }
.sysd-marker.bad { background: #fef2f2; border-color: #fca5a5; }
.sysd-marker strong, .sysd-marker small { display: block; }
.sysd-marker small { margin-top: 4px; color: #64748b; }
.sysd-error-text { display: block; margin-top: 4px; color: #b91c1c; word-break: break-word; }
.sysd-file-list { display: flex; flex-wrap: wrap; gap: 8px; }
.sysd-file-list code { padding: 7px 10px; border-radius: 8px; background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; }
.btn-sm { padding: 7px 10px; font-size: 13px; }
@media (max-width: 1200px) {
    .sysd-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sysd-env-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .sysd-stat-grid, .sysd-env-grid, .sysd-marker-list { grid-template-columns: 1fr; }
}

/* =========================================================
   OQIIK EDUCATION — Электронная библиотека, этап 1
   ========================================================= */
.lib-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:0 0 18px}.lib-stat-card{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid #dbe5f3;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(30,64,175,.06)}.lib-stat-card>span{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#eef4ff;font-size:23px}.lib-stat-card strong{display:block;font-size:25px;line-height:1;color:#183b70}.lib-stat-card p{margin:6px 0 0;color:#64748b;font-size:12px}.lib-stat-card.success>span{background:#e9f9ef}.lib-stat-card.warning>span{background:#fff7df}.lib-stat-card.info>span{background:#e8f7ff}.lib-stat-card.danger>span{background:#fff0f0}
.lib-dashboard-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:18px}.lib-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lib-action-card{display:grid;grid-template-columns:48px 1fr;column-gap:12px;align-items:center;padding:16px;border:1px solid #dbe5f3;border-radius:16px;background:#f9fbff;text-decoration:none;color:#1e293b;transition:.18s}.lib-action-card:hover{transform:translateY(-2px);border-color:#7aa5ee;box-shadow:0 10px 24px rgba(37,99,235,.1)}.lib-action-card>span{grid-row:1/3;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#eaf2ff;font-size:23px}.lib-action-card strong{font-size:14px;color:#183b70}.lib-action-card small{margin-top:3px;color:#64748b}.lib-roadmap{display:grid;gap:12px}.lib-roadmap article{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid #e2e8f0;border-radius:14px}.lib-roadmap article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e2e8f0;font-weight:700}.lib-roadmap article.done{border-color:#99dcb1;background:#f3fcf6}.lib-roadmap article.done>span{background:#16a34a;color:#fff}.lib-roadmap p{margin:3px 0 0;color:#64748b;font-size:12px}.lib-access-note{font-size:12px;color:#64748b}
.lib-book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.lib-book-card{display:grid;grid-template-columns:76px 1fr;gap:13px;min-height:118px;padding:13px;border:1px solid #dbe5f3;border-radius:16px;background:#fff;color:#1e293b;text-decoration:none;transition:.18s}.lib-book-card:hover{border-color:#6d9ce8;box-shadow:0 12px 26px rgba(37,99,235,.11);transform:translateY(-2px)}.lib-book-card strong{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#183b70;line-height:1.35}.lib-book-card p{margin:7px 0 4px;color:#64748b;font-size:12px}.lib-book-card small{color:#475569}.lib-cover{display:grid;place-items:center;width:76px;height:98px;border-radius:10px;background:linear-gradient(145deg,#eaf2ff,#f8fbff);overflow:hidden}.lib-cover img,.lib-cover-thumb img,.lib-cover-preview img,.lib-detail-cover img{width:100%;height:100%;object-fit:cover}.lib-cover span{font-size:34px}.lib-public-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.lib-public-card{grid-template-columns:90px 1fr;min-height:150px}.lib-public-card .lib-cover{width:90px;height:125px}.lib-card-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.lib-filter-panel,.lib-catalog-search{margin-bottom:18px}.lib-filter-grid{display:grid;grid-template-columns:2fr repeat(5,minmax(150px,1fr));gap:12px}.lib-filter-grid .lib-search{min-width:260px}.lib-filter-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}.checkbox-line{display:inline-flex;align-items:center;gap:8px;color:#334155;font-size:13px}.checkbox-line input{width:auto}.lib-books-table td{vertical-align:middle}.lib-cover-thumb{display:grid;place-items:center;width:50px;height:68px;border-radius:8px;background:#eff5ff;overflow:hidden}.lib-cover-thumb span{font-size:23px}.lib-book-link{text-decoration:none;color:#183b70}.lib-book-link:hover{text-decoration:underline}.lib-subtext{display:block;margin-top:4px;color:#64748b;font-size:11px}
.lib-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px}.lib-cover-panel{height:max-content}.lib-cover-preview{display:grid;place-items:center;width:190px;height:260px;margin:0 auto 16px;border:2px dashed #cbd5e1;border-radius:16px;background:#f8fafc;overflow:hidden}.lib-cover-preview span{font-size:58px}.lib-book-form .panel{margin-bottom:18px}.lib-book-form .form-grid.two-cols,.lib-copy-form .form-grid.two-cols,.lib-settings-grid .form-grid.two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lib-book-form .form-grid.three-cols,.lib-copy-form .form-grid.three-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lib-book-form .span-2,.lib-copy-form .span-2,.lib-settings-grid .span-2{grid-column:span 2}.lib-book-form .span-3,.lib-copy-form .span-3{grid-column:span 3}.lib-book-form select[multiple]{min-height:210px}.form-actions{display:flex;gap:10px;align-items:center;margin:18px 0}
.lib-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px}.lib-detail-header{display:grid;grid-template-columns:190px 1fr;gap:22px}.lib-detail-cover{display:grid;place-items:center;width:190px;height:270px;border-radius:16px;background:#eef4ff;overflow:hidden}.lib-detail-cover span{font-size:60px}.lib-detail-meta h3{margin:0 0 6px;color:#183b70;font-size:24px}.lib-detail-meta>p{margin:0 0 18px;color:#64748b}.lib-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lib-meta-grid span{padding:11px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.lib-meta-grid small{display:block;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.lib-meta-grid strong{display:block;margin-top:5px;font-size:13px;color:#1e293b}.lib-description{margin-top:20px;padding-top:18px;border-top:1px solid #e2e8f0}.lib-description h3{margin:0 0 10px;color:#183b70}.lib-description p{line-height:1.65;color:#334155}.lib-book-stat-list{display:grid;gap:12px}.lib-book-stat-list>div{display:grid;grid-template-columns:40px 1fr;column-gap:10px;padding:13px;border:1px solid #e2e8f0;border-radius:14px}.lib-book-stat-list>div>span{grid-row:1/3;font-size:25px}.lib-book-stat-list strong{font-size:21px;color:#183b70}.lib-book-stat-list small{color:#64748b}.btn-block{display:block;width:100%;margin-top:14px}
.lib-files-list{display:grid;gap:10px}.lib-file-card{display:flex;align-items:center;gap:14px;padding:13px 15px;border:1px solid #dbe5f3;border-radius:14px;background:#fff}.lib-file-card.is-inactive{opacity:.62}.lib-file-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#eef4ff;font-size:23px}.lib-file-card>div:nth-child(2){min-width:0;flex:1}.lib-file-card strong{color:#183b70}.lib-file-card p{margin:4px 0 0;color:#64748b;font-size:12px}.lib-file-actions{display:flex;align-items:center;gap:7px}.lib-file-actions form{margin:0}.lib-tags{display:flex;flex-wrap:wrap;gap:8px}.lib-tags span{padding:7px 10px;border:1px solid #cfe0fa;border-radius:999px;background:#f2f7ff;color:#244c85;font-size:12px}
.lib-settings-grid,.lib-import-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.lib-inline-form{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:end;margin-bottom:18px}.lib-inline-form .form-group{margin:0}.lib-import-grid .panel{height:max-content}
.alert.warning{border:1px solid #f2c66d;background:#fff8e8;color:#8a5a00}.alert.warning a{font-weight:700;color:#8a5a00}.panel code{font-size:12px}.form-hint{margin-top:8px;color:#64748b;font-size:12px;line-height:1.5}
@media(max-width:1280px){.lib-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lib-book-grid,.lib-public-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lib-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lib-filter-grid .lib-search{grid-column:span 2}}
@media(max-width:900px){.lib-dashboard-grid,.lib-form-layout,.lib-detail-layout,.lib-settings-grid,.lib-import-grid{grid-template-columns:1fr}.lib-book-grid,.lib-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lib-filter-grid,.lib-book-form .form-grid.three-cols,.lib-copy-form .form-grid.three-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.lib-cover-panel{order:-1}.lib-detail-header{grid-template-columns:150px 1fr}.lib-detail-cover{width:150px;height:215px}.lib-inline-form{grid-template-columns:1fr}.lib-book-form .span-3,.lib-copy-form .span-3{grid-column:span 2}}
@media(max-width:640px){.lib-stat-grid,.lib-action-grid,.lib-book-grid,.lib-public-grid,.lib-filter-grid,.lib-book-form .form-grid.two-cols,.lib-copy-form .form-grid.two-cols,.lib-settings-grid .form-grid.two-cols,.lib-book-form .form-grid.three-cols,.lib-copy-form .form-grid.three-cols{grid-template-columns:1fr}.lib-filter-grid .lib-search,.lib-book-form .span-2,.lib-copy-form .span-2,.lib-settings-grid .span-2,.lib-book-form .span-3,.lib-copy-form .span-3{grid-column:span 1}.lib-book-card,.lib-public-card{grid-template-columns:76px 1fr}.lib-public-card .lib-cover{width:76px;height:105px}.lib-detail-header{grid-template-columns:1fr}.lib-detail-cover{width:150px;height:215px;margin:auto}.lib-meta-grid{grid-template-columns:1fr}.lib-file-card{align-items:flex-start;flex-wrap:wrap}.lib-file-actions{width:100%;justify-content:flex-end}.lib-stat-card{padding:14px}.page-header-actions{flex-wrap:wrap}}

/* Library circulation: phase 2 */
.lib-stat-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.lib-stat-grid-eight{grid-template-columns:repeat(4,minmax(0,1fr))}
.lib-reader-filter-grid{grid-template-columns:2fr repeat(3,minmax(170px,1fr))}
.lib-loan-filter-grid{grid-template-columns:2fr repeat(4,minmax(150px,1fr))}
.lib-circulation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.lib-circulation-form>.panel{margin-bottom:18px}
.lib-circulation-form .form-grid.three-cols,.lib-circulation-form .form-grid.two-cols,.panel .form-grid.three-cols,.panel .form-grid.two-cols{display:grid;gap:14px}
.lib-circulation-form .form-grid.three-cols,.panel .form-grid.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}
.lib-circulation-form .form-grid.two-cols,.panel .form-grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.lib-selected-card{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid #cfe0fa;border-radius:15px;background:#f7faff}
.lib-selected-card strong{font-size:16px;color:#183b70}
.lib-selected-card span{color:#334155}
.lib-selected-card small{color:#64748b}
.lib-scan-panel{max-width:720px}
.lib-reader-block-note{margin-top:18px}
.lib-block-form{margin-top:16px}
.lib-block-form label{display:block;margin-bottom:7px;font-size:12px;font-weight:700;color:#334155}
.lib-block-form textarea{width:100%}
.lib-text-danger{color:#dc2626!important;font-weight:700}
.data-table .row-actions .btn{padding:7px 10px;font-size:12px}
@media(max-width:1280px){.lib-stat-grid-eight{grid-template-columns:repeat(4,minmax(0,1fr))}.lib-reader-filter-grid,.lib-loan-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lib-reader-filter-grid .lib-search,.lib-loan-filter-grid .lib-search{grid-column:span 2}}
@media(max-width:900px){.lib-stat-grid-four,.lib-stat-grid-eight{grid-template-columns:repeat(2,minmax(0,1fr))}.lib-circulation-grid{grid-template-columns:1fr}.lib-reader-filter-grid,.lib-loan-filter-grid,.lib-circulation-form .form-grid.three-cols,.panel .form-grid.three-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.lib-stat-grid-four,.lib-stat-grid-eight,.lib-reader-filter-grid,.lib-loan-filter-grid,.lib-circulation-form .form-grid.three-cols,.lib-circulation-form .form-grid.two-cols,.panel .form-grid.three-cols,.panel .form-grid.two-cols{grid-template-columns:1fr}.lib-reader-filter-grid .lib-search,.lib-loan-filter-grid .lib-search{grid-column:span 1}}

/* Library phase 3: import, reports, labels */
.phase3-install-list{display:grid;gap:10px;margin:8px 0 20px}.phase3-install-row{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #d8eadf;background:#f2fbf5;border-radius:12px}.phase3-install-row>span{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:#16a34a;color:#fff;font-weight:800}.phase3-install-row p{margin:3px 0 0}.phase3-install-row.error{border-color:#fecaca;background:#fff5f5}.phase3-install-row.error>span{background:#dc2626}
.phase3-import-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:18px;margin-bottom:18px}.phase3-import-form{display:grid;gap:16px}.phase3-help-list{display:grid;gap:10px}.phase3-help-list p{display:flex;gap:10px;align-items:flex-start;margin:0;color:#475569}.phase3-help-list p span{display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:8px;background:#e8efff;color:#2446a8;font-weight:800}.phase3-import-result{border-left:5px solid #2446a8}.phase3-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.phase3-metric-grid article{padding:15px;border:1px solid #dbe5f3;border-radius:14px;background:#f8fbff}.phase3-metric-grid strong{display:block;font-size:25px;color:#183b70}.phase3-metric-grid span{display:block;margin-top:5px;color:#64748b;font-size:12px}.phase3-metric-grid article.danger{background:#fff5f5;border-color:#fecaca}.phase3-metric-grid article.danger strong{color:#b91c1c}
.phase3-report-filter-panel{position:sticky;top:8px;z-index:4}.phase3-report-filters{display:grid;grid-template-columns:minmax(250px,1.5fr) repeat(5,minmax(135px,1fr));gap:12px;align-items:end}.phase3-report-search{grid-column:span 2}.phase3-report-filters .form-actions{margin:0;align-self:end}.phase3-report-count{display:flex;align-items:baseline;gap:6px;padding:8px 12px;border-radius:12px;background:#eef4ff;color:#2446a8}.phase3-report-count strong{font-size:24px}.phase3-report-count span{font-size:12px}.phase3-report-table-wrap{max-height:70vh}.phase3-report-table thead th{position:sticky;top:0;z-index:2}.phase3-report-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.phase3-report-card{display:flex;gap:12px;padding:15px;border:1px solid #dbe5f3;border-radius:15px;background:#fff;text-decoration:none;color:inherit;transition:.15s ease}.phase3-report-card:hover,.phase3-report-card.active{border-color:#6d8ee8;background:#f3f7ff;transform:translateY(-1px)}.phase3-report-card>span{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:13px;background:#eaf0ff;font-size:21px}.phase3-report-card strong{display:block;color:#17366e}.phase3-report-card small{display:block;margin-top:5px;color:#64748b;line-height:1.35}
.phase3-label-filters{display:grid;grid-template-columns:minmax(280px,1fr) minmax(170px,.35fr) auto;gap:12px;align-items:end}.phase3-label-search{min-width:0}.phase3-check-col{width:44px}.phase3-size-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.phase3-checkbox-label{display:flex;align-items:center;gap:9px;cursor:pointer}.phase3-checkbox-label input{width:18px;height:18px}
@media(max-width:1280px){.phase3-report-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.phase3-report-select,.phase3-report-search{grid-column:span 2}.phase3-report-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.phase3-import-layout{grid-template-columns:1fr}.phase3-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.phase3-label-filters{grid-template-columns:1fr 1fr}.phase3-label-search{grid-column:span 2}}
@media(max-width:640px){.phase3-report-filters,.phase3-report-card-grid,.phase3-label-filters,.phase3-metric-grid{grid-template-columns:1fr}.phase3-report-select,.phase3-report-search,.phase3-label-search{grid-column:span 1}.phase3-report-filter-panel{position:static}}

/* Library phase 4: reservations, inventory, write-offs */
.phase4-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.phase4-stat-grid article{display:grid;grid-template-columns:44px 1fr;column-gap:12px;align-items:center;padding:15px 17px;border:1px solid #dbe5f3;border-radius:16px;background:#fff}.phase4-stat-grid article>span{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#eef4ff;font-size:22px}.phase4-stat-grid strong{font-size:24px;line-height:1;color:#183b70}.phase4-stat-grid small{margin-top:5px;color:#64748b}.phase4-stat-grid article.success{border-color:#a7e2ba;background:#f5fcf7}.phase4-stat-grid article.warning{border-color:#f2d18b;background:#fffaf0}.phase4-stat-grid article.danger{border-color:#fecaca;background:#fff7f7}.phase4-stat-grid-six{grid-template-columns:repeat(6,minmax(0,1fr))}
.lib-action-card.phase4-card{border-color:#b9cff5;background:#f5f8ff}.lib-action-card.phase4-card>span{background:#dfeaff}
.phase4-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.phase4-info-panel ol{margin:0;padding-left:22px;color:#475569;line-height:1.75}.phase4-start-panel{display:flex;align-items:center;justify-content:space-between;gap:18px}.phase4-start-panel h3{margin:0 0 5px;color:#183b70}.phase4-start-panel p{margin:0;color:#64748b}.phase4-start-panel form{margin:0}.phase4-scan-input{font-size:20px;font-weight:700;letter-spacing:.03em}.phase4-scan-panel,.phase4-finish-panel{height:max-content}.phase4-finish-panel form{margin-top:12px}.phase4-result-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.phase4-result-filters a{padding:7px 11px;border:1px solid #dbe5f3;border-radius:999px;background:#fff;color:#334155;text-decoration:none;font-size:12px}.phase4-result-filters a.active{border-color:#2446a8;background:#2446a8;color:#fff}
.phase4-definition-list{display:grid;gap:0;margin:0}.phase4-definition-list>div{display:grid;grid-template-columns:minmax(130px,.45fr) 1fr;gap:16px;padding:12px 0;border-bottom:1px solid #e2e8f0}.phase4-definition-list>div:last-child{border-bottom:0}.phase4-definition-list dt{color:#64748b}.phase4-definition-list dd{margin:0;color:#1e293b;font-weight:600}.phase4-card-note{padding:12px 14px;border-radius:12px;background:#eef4ff;color:#244c85}
@media(max-width:1280px){.phase4-stat-grid-six{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.phase4-two-column{grid-template-columns:1fr}.phase4-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.phase4-start-panel{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.phase4-stat-grid,.phase4-stat-grid-six{grid-template-columns:1fr}.phase4-definition-list>div{grid-template-columns:1fr;gap:4px}}


/* =========================================================
   Электронная библиотека — этап 5: личный кабинет читателя
   ========================================================= */
.phase5-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.phase5-stat-grid-small {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.phase5-stat-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 100px;
    padding: 18px;
    border: 1px solid #dbe4f0;
    border-radius: 16px;
    background: #fff;
    color: #10213d;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(25, 57, 111, .06);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.phase5-stat-card:hover {
    transform: translateY(-2px);
    border-color: #8ca8dc;
    box-shadow: 0 12px 28px rgba(25, 57, 111, .12);
}

.phase5-stat-card > span {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 14px;
    background: #eaf0fc;
    font-size: 25px;
}

.phase5-stat-card strong {
    display: block;
    font-size: 27px;
    line-height: 1;
    margin-bottom: 7px;
}

.phase5-stat-card p {
    margin: 0;
    color: #63718a;
    font-size: 13px;
}

.phase5-stat-card.success {
    border-color: #b8e3ca;
    background: #f7fff9;
}

.phase5-stat-card.success > span {
    background: #dcf7e6;
}

.phase5-stat-card.danger {
    border-color: #f0b7b7;
    background: #fff8f8;
}

.phase5-stat-card.danger > span {
    background: #ffe4e4;
}

.phase5-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 18px;
}

.phase5-compact-list,
.phase5-activity-list {
    display: grid;
    gap: 10px;
}

.phase5-list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 14px;
    border: 1px solid #e2e8f2;
    border-radius: 13px;
    background: #fbfcff;
    text-decoration: none;
    color: #17233a;
}

.phase5-list-item:hover {
    border-color: #a8bce0;
    background: #f5f8ff;
}

.phase5-list-item.is-danger {
    border-color: #efb4b4;
    background: #fff7f7;
}

.phase5-list-item.is-success {
    border-color: #b2dfc1;
    background: #f6fff8;
}

.phase5-list-item strong,
.phase5-list-item small {
    display: block;
}

.phase5-list-item small {
    margin-top: 5px;
    color: #738098;
}

.phase5-list-side {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 6px;
    text-align: right;
    white-space: nowrap;
    color: #647189;
    font-size: 12px;
}

.phase5-book-grid {
    grid-template-columns: repeat(auto-fill, minmax(225px, 1fr));
}

.phase5-activity-list a {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border-bottom: 1px solid #e8edf5;
    color: #16223a;
    text-decoration: none;
}

.phase5-activity-list a:last-child {
    border-bottom: 0;
}

.phase5-activity-list a > span {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #eef3fc;
}

.phase5-activity-list strong,
.phase5-activity-list p {
    display: block;
    margin: 0;
}

.phase5-activity-list p,
.phase5-activity-list small {
    margin-top: 3px;
    color: #718099;
    font-size: 12px;
}

.phase5-reader-book-layout {
    align-items: start;
}

.phase5-reader-book-side {
    display: grid;
    gap: 16px;
}

.phase5-availability-card h3,
.phase5-reader-book-side .panel h3 {
    margin-top: 0;
}

.phase5-availability-numbers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0 16px;
}

.phase5-availability-numbers div {
    padding: 12px 8px;
    border-radius: 12px;
    background: #f2f6fc;
    text-align: center;
}

.phase5-availability-numbers strong,
.phase5-availability-numbers span {
    display: block;
}

.phase5-availability-numbers strong {
    font-size: 23px;
    color: #1d438e;
}

.phase5-availability-numbers span {
    margin-top: 4px;
    color: #6b7890;
    font-size: 11px;
}

.phase5-full-button {
    width: 100%;
    justify-content: center;
}

.phase5-help-text {
    display: block;
    margin-top: 9px;
    color: #718099;
    line-height: 1.45;
}

.phase5-current-reservation {
    display: grid;
    gap: 10px;
    padding: 13px;
    border-radius: 13px;
    background: #f5f8ff;
}

.phase5-current-reservation p {
    margin: 0;
    color: #52617b;
}

.phase5-description {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid #e4eaf3;
}

.phase5-description h3,
.phase5-tags-block h3 {
    margin: 0 0 10px;
}

.phase5-description p {
    margin: 0;
    color: #4f5e75;
    line-height: 1.7;
}

.phase5-tags-block {
    display: grid;
    gap: 11px;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid #e4eaf3;
}

.phase5-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.phase5-tags span {
    padding: 7px 10px;
    border-radius: 999px;
    background: #eef3fc;
    color: #244681;
    font-size: 12px;
}

.phase5-details-list {
    display: grid;
    gap: 12px;
    margin: 0;
}

.phase5-details-list div {
    display: grid;
    gap: 3px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e8edf5;
}

.phase5-details-list div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.phase5-details-list dt {
    color: #78859b;
    font-size: 12px;
}

.phase5-details-list dd {
    margin: 0;
    color: #18243b;
    font-weight: 600;
}

.phase5-file-grid {
    display: grid;
    gap: 12px;
}

.phase5-file-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border: 1px solid #e1e8f2;
    border-radius: 14px;
    background: #fbfcff;
}

.phase5-file-icon {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 13px;
    background: #eaf1ff;
    font-size: 24px;
}

.phase5-file-card strong,
.phase5-file-card p,
.phase5-file-card small {
    display: block;
}

.phase5-file-card p {
    margin: 5px 0;
    color: #53627a;
}

.phase5-file-card small {
    color: #7b879b;
}

.phase5-file-actions {
    display: flex;
    align-items: center;
    gap: 7px;
}

.phase5-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.phase5-tabs a {
    padding: 8px 13px;
    border: 1px solid #d6dfed;
    border-radius: 999px;
    background: #f9fbff;
    color: #50607a;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
}

.phase5-tabs a.active {
    border-color: #2446a8;
    background: #2446a8;
    color: #fff;
}

.phase5-overdue-row td {
    background: #fff8f8;
}

.phase5-danger-text {
    color: #c23030 !important;
    font-weight: 600;
}

.phase5-reservation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.phase5-reservation-card {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 14px;
    padding: 15px;
    border: 1px solid #dfe7f2;
    border-radius: 15px;
    background: #fff;
}

.phase5-reservation-card.is-ready {
    border-color: #a9d9b9;
    background: #f7fff9;
}

.phase5-reservation-cover {
    display: grid;
    place-items: center;
    width: 82px;
    height: 108px;
    overflow: hidden;
    border-radius: 10px;
    background: #edf2fa;
    font-size: 31px;
}

.phase5-reservation-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.phase5-reservation-body {
    min-width: 0;
}

.phase5-reservation-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.phase5-reservation-head a {
    color: #173d87;
    text-decoration: none;
    font-weight: 700;
}

.phase5-reservation-body > p {
    margin: 6px 0 10px;
    color: #6d7a91;
}

.phase5-reservation-meta {
    display: grid;
    gap: 5px;
    margin-bottom: 12px;
    color: #66748a;
    font-size: 12px;
}

@media (max-width: 1200px) {
    .phase5-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .phase5-dashboard-grid,
    .phase5-reservation-grid {
        grid-template-columns: 1fr;
    }

    .phase5-file-card {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .phase5-file-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 650px) {
    .phase5-stat-grid,
    .phase5-stat-grid-small {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .phase5-stat-card {
        min-height: 88px;
        padding: 13px;
    }

    .phase5-stat-card > span {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
        font-size: 21px;
    }

    .phase5-stat-card strong {
        font-size: 22px;
    }

    .phase5-list-item {
        align-items: flex-start;
        flex-direction: column;
    }

    .phase5-list-side {
        align-items: flex-start;
        text-align: left;
    }

    .phase5-file-card {
        grid-template-columns: 1fr;
    }

    .phase5-file-actions {
        grid-column: auto;
        flex-wrap: wrap;
    }

    .phase5-reservation-card {
        grid-template-columns: 65px minmax(0, 1fr);
    }

    .phase5-reservation-cover {
        width: 65px;
        height: 88px;
    }

    .phase5-reservation-head {
        flex-direction: column;
    }
}

/* MODERN ADMIN / EXPERT DASHBOARD */
.dashboard-modern-page .content{background:#f4f7fb;min-height:calc(100vh - 86px)}
.adm-dashboard{display:flex;flex-direction:column;gap:20px;max-width:1720px;margin:0 auto}
.adm-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 32px;color:#fff;background:linear-gradient(125deg,#172b75 0%,#2446a8 58%,#3478e5 100%);border-radius:24px;box-shadow:0 18px 45px rgba(23,43,117,.18)}
.adm-hero:before,.adm-hero:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.09)}
.adm-hero:before{width:260px;height:260px;right:13%;top:-170px}.adm-hero:after{width:180px;height:180px;right:-45px;bottom:-110px}
.adm-hero-main,.adm-hero-actions{position:relative;z-index:1}.adm-hero-main{max-width:900px}.adm-hero-eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;padding:7px 11px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:12px;font-weight:850;letter-spacing:.02em}.adm-hero-eyebrow span{color:#72f2a3;font-size:16px}.adm-hero h2{margin:0 0 10px;font-size:30px;line-height:1.2}.adm-hero p{max-width:800px;margin:0;color:rgba(255,255,255,.84);line-height:1.6}.adm-hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.adm-hero-meta>span{padding:8px 11px;background:rgba(255,255,255,.11);border-radius:11px;font-size:13px}.adm-hero-actions{display:flex;flex-direction:column;gap:10px;min-width:205px}.adm-hero-actions .btn{justify-content:center;border-color:rgba(255,255,255,.25)}.adm-hero-actions .btn-light{background:rgba(255,255,255,.14);color:#fff}.adm-hero-actions .btn-primary{background:#fff;color:#173b82}
.adm-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.adm-kpi-card{position:relative;display:flex;align-items:center;gap:14px;min-width:0;padding:18px 19px;background:#fff;border:1px solid #dfe6f1;border-radius:19px;transition:.2s;box-shadow:0 4px 14px rgba(15,23,42,.025)}.adm-kpi-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,23,42,.08);border-color:#c7d4e8}.adm-kpi-icon{width:52px;height:52px;flex:0 0 52px;display:flex;align-items:center;justify-content:center;font-size:24px;border-radius:16px;background:#eaf0ff}.adm-kpi-card>div{min-width:0}.adm-kpi-card small,.adm-kpi-card strong,.adm-kpi-card em{display:block}.adm-kpi-card small{overflow:hidden;color:#64748b;font-size:13px;font-weight:750;white-space:nowrap;text-overflow:ellipsis}.adm-kpi-card strong{margin:3px 0 2px;color:#0f172a;font-size:27px;line-height:1.05}.adm-kpi-card em{color:#94a3b8;font-size:11px;font-style:normal;font-weight:700}.adm-kpi-card.blue .adm-kpi-icon{background:#dbeafe}.adm-kpi-card.violet .adm-kpi-icon{background:#ede9fe}.adm-kpi-card.green .adm-kpi-icon,.adm-kpi-card.success .adm-kpi-icon{background:#dcfce7}.adm-kpi-card.indigo .adm-kpi-icon{background:#e0e7ff}.adm-kpi-card.cyan .adm-kpi-icon{background:#cffafe}.adm-kpi-card.amber .adm-kpi-icon{background:#fef3c7}.adm-kpi-card.teal .adm-kpi-icon{background:#ccfbf1}.adm-kpi-card.danger .adm-kpi-icon{background:#fee2e2}
.adm-layout-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.75fr);gap:20px}.adm-layout-main.single,.adm-layout-secondary.single{grid-template-columns:1fr}.adm-layout-secondary{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:20px}.adm-dashboard .panel{border-color:#dfe6f1;box-shadow:0 5px 18px rgba(15,23,42,.025)}.adm-dashboard .panel-header{align-items:flex-start}.adm-dashboard .panel-header h2{font-size:19px}.adm-dashboard .panel-header p{margin:5px 0 0;color:#64748b;font-size:13px;line-height:1.45}.adm-dashboard .panel-header>a:not(.btn){color:#2446a8;font-size:13px;font-weight:800}.adm-panel-count{display:inline-flex;min-width:38px;height:38px;align-items:center;justify-content:center;color:#991b1b;background:#fee2e2;border-radius:12px;font-weight:900}
.adm-attention-list{display:flex;flex-direction:column;gap:10px}.adm-attention-item{display:grid;grid-template-columns:46px minmax(0,1fr) auto 20px;gap:12px;align-items:center;padding:12px 13px;border:1px solid #e2e8f0;border-left-width:4px;border-radius:14px;background:#fff}.adm-attention-item:hover{background:#f8fafc}.adm-attention-item.warning{border-left-color:#d97706}.adm-attention-item.danger{border-left-color:#dc2626}.adm-attention-item.info{border-left-color:#2563eb}.adm-attention-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:20px;background:#f1f5f9;border-radius:13px}.adm-attention-item strong{display:block;color:#0f172a;font-size:14px}.adm-attention-item p{margin:4px 0 0;color:#64748b;font-size:12px;line-height:1.4}.adm-attention-item>b{min-width:32px;padding:6px 8px;text-align:center;color:#334155;background:#f1f5f9;border-radius:999px;font-size:13px}.adm-attention-item>i{color:#94a3b8;font-style:normal;font-weight:900}.adm-all-good{display:flex;gap:15px;align-items:center;padding:24px;color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:16px}.adm-all-good>span{font-size:34px}.adm-all-good strong{display:block;margin-bottom:4px}.adm-all-good p{margin:0;color:#15803d;font-size:13px}
.adm-process-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:19px}.adm-process-grid>div{display:grid;grid-template-columns:38px 1fr;column-gap:9px;padding:12px;background:#f8fafc;border:1px solid #e6ebf2;border-radius:14px}.adm-process-grid span{grid-row:1/3;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:11px}.adm-process-grid strong{font-size:20px}.adm-process-grid small{color:#64748b;font-size:11px}.adm-journal-progress{display:flex;flex-direction:column;gap:11px}.adm-progress-row>div:first-child{display:flex;justify-content:space-between;margin-bottom:6px;color:#475569;font-size:12px}.adm-progress-row>div:first-child strong{color:#0f172a}.adm-progress-track{height:8px;overflow:hidden;background:#e7edf5;border-radius:999px}.adm-progress-track i{display:block;height:100%;min-width:0;border-radius:inherit}
.adm-timeline{display:flex;flex-direction:column}.adm-timeline-item{display:grid;grid-template-columns:43px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f6}.adm-timeline-item:last-child{border-bottom:0}.adm-timeline-item:hover strong{color:#2446a8}.adm-timeline-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:13px;background:#eef2ff}.adm-timeline-icon.green{background:#dcfce7}.adm-timeline-icon.amber{background:#fef3c7}.adm-timeline-icon.red{background:#fee2e2}.adm-timeline-icon.cyan{background:#cffafe}.adm-timeline-icon.blue{background:#dbeafe}.adm-timeline strong{display:block;color:#0f172a;font-size:13px}.adm-timeline p{margin:4px 0 0;color:#64748b;font-size:12px;line-height:1.35}.adm-timeline time{color:#94a3b8;font-size:11px;white-space:nowrap}
.adm-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.adm-quick-grid>a{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:12px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.adm-quick-grid>a:hover{border-color:#b8c8e4;background:#f2f6ff}.adm-quick-grid>a>span{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:12px;font-size:19px}.adm-quick-grid strong,.adm-quick-grid small{display:block}.adm-quick-grid strong{color:#0f172a;font-size:13px}.adm-quick-grid small{margin-top:3px;color:#64748b;font-size:10px}.adm-quick-grid i{color:#2446a8;font-style:normal;font-weight:900}
.adm-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.adm-module-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto 18px;gap:11px;align-items:center;padding:15px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;transition:.2s}.adm-module-card:hover{transform:translateY(-2px);border-color:#bdcbe1;box-shadow:0 10px 24px rgba(15,23,42,.06)}.adm-module-card>span{width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:21px;background:#eaf0ff;border-radius:14px}.adm-module-card strong{display:block;color:#0f172a;font-size:14px}.adm-module-card p{margin:4px 0 0;color:#64748b;font-size:11px}.adm-module-card>b{font-size:22px;color:#173b82}.adm-module-card>i{color:#94a3b8;font-style:normal}.adm-module-card.green>span{background:#dcfce7}.adm-module-card.cyan>span{background:#cffafe}.adm-module-card.violet>span{background:#ede9fe}.adm-module-card.amber>span{background:#fef3c7}.adm-module-card.rose>span{background:#ffe4e6}.adm-module-card.teal>span{background:#ccfbf1}.adm-module-card.slate>span{background:#e2e8f0}
.adm-review-panel{margin:0}.adm-review-table{min-width:880px}.adm-review-table td strong{color:#0f172a}
@media(max-width:1400px){.adm-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.adm-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1120px){.adm-layout-main,.adm-layout-secondary{grid-template-columns:1fr}.adm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-hero{align-items:flex-start}.adm-hero-actions{min-width:190px}.adm-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.adm-hero{padding:24px;flex-direction:column}.adm-hero h2{font-size:24px}.adm-hero-actions{width:100%;min-width:0}.adm-kpi-grid,.adm-module-grid,.adm-quick-grid{grid-template-columns:1fr}.adm-process-grid{grid-template-columns:1fr}.adm-attention-item{grid-template-columns:42px minmax(0,1fr) auto}.adm-attention-item>i{display:none}.adm-timeline-item{grid-template-columns:42px minmax(0,1fr)}.adm-timeline time{grid-column:2}.adm-module-card{grid-template-columns:46px minmax(0,1fr) auto}.adm-module-card>i{display:none}}

/* ========================================================================
   OQIIIK PUBLIC LANDING + AUTHENTICATION — 2026 REFRESH
   ======================================================================== */

:root {
    --site-navy: #10275f;
    --site-blue: #1f4fb7;
    --site-blue-2: #2f6cda;
    --site-sky: #eaf2ff;
    --site-ink: #0c1833;
    --site-muted: #68748b;
    --site-line: #dfe6f0;
    --site-soft: #f5f8fc;
    --site-white: #ffffff;
}

.site-page {
    margin: 0;
    background: #fff;
    color: var(--site-ink);
    font-family: Arial, sans-serif;
    overflow-x: hidden;
}

.site-page *,
.auth-page * {
    box-sizing: border-box;
}

.site-container {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, .93);
    border-bottom: 1px solid rgba(215, 225, 239, .86);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.site-header__inner {
    min-height: 82px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.site-brand,
.auth-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.site-brand__logo,
.auth-brand__logo {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 15px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(145deg, #1c499f, #3075df);
    border: 1px solid #d7e1ef;
    box-shadow: 0 9px 25px rgba(18, 55, 119, .12);
    color: #fff;
    font-weight: 700;
}


.site-brand__logo img,
.auth-brand__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 4px;
}

.site-brand__text,
.auth-brand > span:last-child {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.site-brand__text strong,
.auth-brand strong {
    color: #17377c;
    font-size: 19px;
    letter-spacing: .02em;
}

.site-brand__text small,
.auth-brand small {
    margin-top: 5px;
    color: #60708d;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
}

.site-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    margin-left: auto;
}

.site-nav a {
    position: relative;
    color: #44516a;
    font-size: 14px;
    font-weight: 700;
    transition: color .2s ease;
}

.site-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -8px;
    height: 2px;
    border-radius: 999px;
    background: var(--site-blue);
    transition: right .2s ease;
}

.site-nav a:hover {
    color: var(--site-blue);
}

.site-nav a:hover::after {
    right: 0;
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: 15px;
}

.site-language,
.auth-language {
    min-height: 38px;
    padding: 4px;
    border: 1px solid #dbe3ee;
    border-radius: 12px;
    background: #f7f9fc;
    display: flex;
    align-items: center;
    gap: 2px;
}

.site-language a,
.auth-language a {
    min-width: 40px;
    padding: 8px 7px;
    border-radius: 8px;
    text-align: center;
    color: #738099;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .03em;
}

.site-language a.active,
.auth-language a.active {
    color: #fff;
    background: var(--site-blue);
    box-shadow: 0 5px 14px rgba(31, 79, 183, .23);
}

.site-language > span,
.auth-language > span {
    width: 1px;
    height: 18px;
    background: #dce3ed;
}

.site-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 46px;
    padding: 0 20px;
    border: 1px solid transparent;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.site-button:hover {
    transform: translateY(-2px);
}

.site-button b {
    font-size: 18px;
    line-height: 1;
}

.site-button--primary {
    color: #fff;
    background: linear-gradient(135deg, #1d49a4, #2f6cda);
    box-shadow: 0 12px 28px rgba(31, 79, 183, .23);
}

.site-button--primary:hover {
    box-shadow: 0 16px 34px rgba(31, 79, 183, .32);
}

.site-button--ghost {
    color: #173b82;
    background: rgba(255, 255, 255, .76);
    border-color: #cfdced;
}

.site-button--ghost:hover {
    background: #fff;
    box-shadow: 0 12px 28px rgba(20, 49, 100, .10);
}

.site-button--white {
    color: #143a83;
    background: #fff;
    box-shadow: 0 15px 36px rgba(6, 25, 65, .18);
}

.site-button--large {
    min-height: 56px;
    padding: 0 26px;
    border-radius: 16px;
    font-size: 15px;
}

.site-hero {
    position: relative;
    min-height: 700px;
    padding: 88px 0 80px;
    overflow: hidden;
    background:
        linear-gradient(180deg, #f8fbff 0%, #ffffff 86%);
}

.site-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .58;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(31, 79, 183, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(31, 79, 183, .045) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, #000 0%, transparent 88%);
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 88%);
}

.site-hero__glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(2px);
    pointer-events: none;
}

.site-hero__glow--one {
    width: 560px;
    height: 560px;
    right: -180px;
    top: -260px;
    background: radial-gradient(circle, rgba(63, 128, 235, .22), rgba(63, 128, 235, 0) 68%);
}

.site-hero__glow--two {
    width: 420px;
    height: 420px;
    left: -210px;
    bottom: -220px;
    background: radial-gradient(circle, rgba(53, 181, 216, .14), rgba(53, 181, 216, 0) 70%);
}

.site-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(480px, .98fr);
    align-items: center;
    gap: 74px;
}

.site-eyebrow {
    width: max-content;
    max-width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 22px;
    padding: 9px 13px;
    border: 1px solid #d7e4f6;
    border-radius: 999px;
    color: #1d4b9e;
    background: rgba(235, 243, 255, .78);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.site-eyebrow span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #24b96e;
    box-shadow: 0 0 0 5px rgba(36, 185, 110, .12);
}

.site-hero h1 {
    max-width: 680px;
    margin: 0;
    color: #0b1834;
    font-size: clamp(44px, 5vw, 68px);
    line-height: 1.04;
    letter-spacing: -.045em;
}

.site-hero__lead {
    max-width: 700px;
    margin: 27px 0 0;
    color: #64718a;
    font-size: 18px;
    line-height: 1.75;
}

.site-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 34px;
}

.site-hero__trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 38px;
}

.site-hero__trust > div {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.site-check {
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: #147349;
    background: #e5f8ef;
    font-size: 13px;
    font-weight: 700;
}

.site-hero__trust p {
    min-width: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.site-hero__trust strong {
    color: #1c2943;
    font-size: 12px;
}

.site-hero__trust small {
    margin-top: 4px;
    color: #8792a6;
    font-size: 11px;
    line-height: 1.35;
}

.site-console {
    position: relative;
    width: 100%;
    padding: 22px;
    border: 1px solid rgba(212, 224, 242, .92);
    border-radius: 28px;
    background: rgba(255, 255, 255, .91);
    box-shadow: 0 35px 100px rgba(19, 48, 103, .17);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transform: perspective(1200px) rotateY(-3deg) rotateX(1deg);
}

.site-console::before {
    content: "";
    position: absolute;
    inset: -12px 35px auto;
    height: 28px;
    border-radius: 50%;
    background: rgba(40, 102, 216, .20);
    filter: blur(24px);
    z-index: -1;
}

.site-console__top,
.site-console__brand,
.site-console__chart-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.site-console__brand {
    justify-content: flex-start;
}

.site-console__logo {
    width: 43px;
    height: 43px;
    flex: 0 0 43px;
    border: 1px solid #dfe6f1;
    border-radius: 13px;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(145deg, #1b469c, #3475dc);
    font-size: 12px;
    font-weight: 700;
}

.site-console__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 4px;
    background: #fff;
}

.site-console__brand div {
    display: flex;
    flex-direction: column;
}

.site-console__brand strong {
    color: #153b82;
    font-size: 14px;
}

.site-console__brand small {
    margin-top: 4px;
    color: #7a879d;
    font-size: 10px;
}

.site-console__status {
    position: relative;
    padding: 7px 10px 7px 24px;
    border-radius: 999px;
    color: #147349;
    background: #e8f8ef;
    font-size: 10px;
    font-weight: 700;
}

.site-console__status::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 50%;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #25b96f;
    transform: translateY(-50%);
}

.site-console__kpis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 11px;
    margin-top: 23px;
}

.site-console__kpis > div {
    min-height: 122px;
    padding: 15px;
    border: 1px solid #e1e8f2;
    border-radius: 17px;
    background: #f8faff;
}

.site-console__kpis i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #e5efff;
    font-style: normal;
    font-size: 17px;
}

.site-console__kpis p {
    min-height: 28px;
    margin: 11px 0 5px;
    color: #778399;
    font-size: 10px;
    font-weight: 700;
}

.site-console__kpis strong {
    color: #173b82;
    font-size: 23px;
}

.site-console__body {
    display: grid;
    grid-template-columns: 1.22fr .78fr;
    gap: 12px;
    margin-top: 12px;
}

.site-console__chart,
.site-console__feed {
    min-height: 205px;
    padding: 17px;
    border: 1px solid #e2e9f3;
    border-radius: 18px;
    background: #fff;
}

.site-console__chart-head strong,
.site-console__feed > strong {
    color: #26334a;
    font-size: 11px;
}

.site-console__chart-head span {
    color: #8792a5;
    font-size: 8px;
}

.site-bars {
    height: 125px;
    margin-top: 25px;
    padding-top: 10px;
    display: flex;
    align-items: flex-end;
    justify-content: space-around;
    gap: 9px;
    border-bottom: 1px solid #e5ebf4;
    background: repeating-linear-gradient(to bottom, transparent 0 29px, #eef2f7 29px 30px);
}

.site-bars span {
    width: 18px;
    min-height: 16px;
    border-radius: 7px 7px 2px 2px;
    background: linear-gradient(180deg, #4f8aec, #2254b9);
    box-shadow: 0 7px 13px rgba(37, 88, 187, .16);
}

.site-console__feed p {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 14px 0 0;
    color: #68758b;
    font-size: 9px;
    line-height: 1.45;
}

.site-console__feed p span {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    color: #167648;
    background: #e7f8ef;
    font-size: 9px;
    font-weight: 700;
}

.site-strip {
    position: relative;
    z-index: 2;
    border-top: 1px solid #e5ebf4;
    border-bottom: 1px solid #e5ebf4;
    background: #fff;
}

.site-strip__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.site-strip__grid > div {
    min-height: 118px;
    padding: 27px 24px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    border-right: 1px solid #e8edf4;
}

.site-strip__grid > div:first-child {
    border-left: 1px solid #e8edf4;
}

.site-strip__grid > div > span {
    color: #2c69d5;
    font-size: 12px;
    font-weight: 700;
}

.site-strip__grid p {
    margin: 0;
    display: flex;
    flex-direction: column;
}

.site-strip__grid strong {
    color: #1a2945;
    font-size: 13px;
}

.site-strip__grid small {
    margin-top: 7px;
    color: #7b879c;
    font-size: 11px;
    line-height: 1.45;
}

.site-section {
    padding: 105px 0;
    background: #fff;
}

.site-section--soft {
    background: #f5f8fc;
    border-top: 1px solid #e7edf5;
    border-bottom: 1px solid #e7edf5;
}

.site-section__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr);
    align-items: end;
    gap: 70px;
    margin-bottom: 45px;
}

.site-section__heading--center {
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
    grid-template-columns: 1fr;
    gap: 16px;
    text-align: center;
}

.site-section__label {
    display: inline-block;
    margin-bottom: 14px;
    color: #2360c7;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.site-section__heading h2 {
    max-width: 720px;
    margin: 0;
    color: #0d1a35;
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.12;
    letter-spacing: -.035em;
}

.site-section__heading--center h2 {
    margin-left: auto;
    margin-right: auto;
}

.site-section__heading > p {
    margin: 0;
    color: #6f7c92;
    font-size: 15px;
    line-height: 1.75;
}

.site-module-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 17px;
}

.site-module-card {
    position: relative;
    min-height: 260px;
    padding: 25px;
    overflow: hidden;
    border: 1px solid #e0e7f0;
    border-radius: 22px;
    background: #fff;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.site-module-card:hover {
    transform: translateY(-6px);
    border-color: #c9d7eb;
    box-shadow: 0 22px 50px rgba(22, 50, 98, .11);
}

.site-module-card::after {
    content: "";
    position: absolute;
    right: -35px;
    bottom: -50px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--module-tint, #edf3ff);
}

.site-module-card > span {
    position: absolute;
    top: 22px;
    right: 22px;
    color: #a2acbc;
    font-size: 11px;
    font-weight: 700;
}

.site-module-card i {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--module-tint, #edf3ff);
    font-style: normal;
    font-size: 23px;
}

.site-module-card h3 {
    position: relative;
    z-index: 1;
    margin: 25px 0 12px;
    color: #172744;
    font-size: 17px;
}

.site-module-card p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: #748095;
    font-size: 13px;
    line-height: 1.65;
}

.site-module-card--blue { --module-tint: #e8f1ff; }
.site-module-card--indigo { --module-tint: #eeecff; }
.site-module-card--cyan { --module-tint: #e6f7fb; }
.site-module-card--green { --module-tint: #e9f8ef; }
.site-module-card--orange { --module-tint: #fff2e3; }
.site-module-card--purple { --module-tint: #f3eafe; }
.site-module-card--rose { --module-tint: #fdecef; }
.site-module-card--slate { --module-tint: #edf1f5; }

.site-role-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.site-role-grid article {
    padding: 28px;
    border: 1px solid #dfe7f1;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(21, 49, 94, .05);
}

.site-role-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #eaf2ff;
    font-size: 24px;
}

.site-role-grid h3 {
    margin: 22px 0 11px;
    color: #172744;
    font-size: 18px;
}

.site-role-grid article > p {
    min-height: 86px;
    margin: 0;
    color: #748095;
    font-size: 13px;
    line-height: 1.65;
}

.site-role-grid ul {
    margin: 20px 0 0;
    padding: 18px 0 0;
    list-style: none;
    border-top: 1px solid #e8edf4;
}

.site-role-grid li {
    position: relative;
    margin-top: 10px;
    padding-left: 20px;
    color: #45536d;
    font-size: 12px;
    font-weight: 700;
}

.site-role-grid li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #2771d4;
    font-weight: 700;
}

.site-cta {
    padding: 38px 0 80px;
    background: #f5f8fc;
}

.site-cta__inner {
    position: relative;
    min-height: 260px;
    padding: 48px 54px;
    overflow: hidden;
    border-radius: 30px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 15%, rgba(105, 176, 255, .42), transparent 28%),
        linear-gradient(125deg, #10275f, #1f4fb7 62%, #2f6cda);
    box-shadow: 0 30px 70px rgba(17, 49, 111, .22);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.site-cta__inner::before,
.site-cta__inner::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 50%;
}

.site-cta__inner::before {
    width: 280px;
    height: 280px;
    right: -95px;
    top: -145px;
}

.site-cta__inner::after {
    width: 160px;
    height: 160px;
    right: 115px;
    bottom: -110px;
}

.site-cta__inner > div,
.site-cta__inner > a {
    position: relative;
    z-index: 1;
}

.site-cta__inner > div > span {
    color: #bcd7ff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
}

.site-cta h2 {
    margin: 12px 0 10px;
    font-size: clamp(28px, 3.3vw, 42px);
    line-height: 1.15;
}

.site-cta p {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 255, 255, .75);
    font-size: 14px;
    line-height: 1.65;
}

.site-footer {
    padding: 55px 0 24px;
    color: #cad5e7;
    background: #0b1833;
}

.site-footer__main {
    display: flex;
    justify-content: space-between;
    gap: 60px;
    padding-bottom: 42px;
}

.site-footer__brand {
    max-width: 600px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.site-brand__logo--footer {
    border-color: rgba(255, 255, 255, .14);
    box-shadow: none;
}

.site-footer__brand strong {
    display: block;
    color: #fff;
    font-size: 15px;
    line-height: 1.45;
}

.site-footer__brand p {
    margin: 7px 0 0;
    color: #8796af;
    font-size: 12px;
}

.site-footer__contacts {
    min-width: 280px;
    display: grid;
    gap: 11px;
}

.site-footer__contacts > div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #aab8ce;
    font-size: 12px;
    line-height: 1.55;
}

.site-footer__contacts > div > span {
    width: 23px;
    color: #7ba9f7;
    text-align: center;
}

.site-footer__contacts p {
    margin: 0;
}

.site-footer__contacts a:hover {
    color: #fff;
}

.site-footer__bottom {
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .09);
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #73829c;
    font-size: 11px;
}

/* Authentication */
.auth-page {
    min-height: 100vh;
    margin: 0;
    color: #0d1a35;
    background: #f3f6fb;
    font-family: Arial, sans-serif;
}

.auth-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(480px, .98fr) minmax(500px, 1.02fr);
}

.auth-presentation {
    position: relative;
    min-height: 100vh;
    padding: 42px clamp(42px, 5vw, 76px) 34px;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(145deg, rgba(8, 25, 62, .12), rgba(8, 25, 62, .02)),
        linear-gradient(135deg, #10275f 0%, #1b489e 58%, #2d6bd5 100%);
    display: flex;
    flex-direction: column;
}

.auth-presentation::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .17;
    background-image:
        linear-gradient(rgba(255, 255, 255, .12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .12) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to bottom, #000, transparent 88%);
    -webkit-mask-image: linear-gradient(to bottom, #000, transparent 88%);
}

.auth-presentation__orb {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .15);
    pointer-events: none;
}

.auth-presentation__orb--one {
    width: 480px;
    height: 480px;
    right: -270px;
    top: -180px;
    box-shadow: 0 0 0 70px rgba(255, 255, 255, .025), 0 0 0 150px rgba(255, 255, 255, .018);
}

.auth-presentation__orb--two {
    width: 240px;
    height: 240px;
    left: -130px;
    bottom: -80px;
    box-shadow: 0 0 0 55px rgba(255, 255, 255, .025);
}

.auth-presentation__top,
.auth-presentation__content,
.auth-presentation__footer {
    position: relative;
    z-index: 1;
}

.auth-presentation__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.auth-presentation .auth-brand strong,
.auth-presentation .auth-brand small {
    color: #fff;
}

.auth-presentation .auth-brand small {
    opacity: .7;
}

.auth-presentation__badge {
    position: relative;
    padding: 9px 13px 9px 29px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    color: rgba(255, 255, 255, .82);
    background: rgba(255, 255, 255, .08);
    font-size: 10px;
    font-weight: 700;
    backdrop-filter: blur(10px);
}

.auth-presentation__badge i {
    position: absolute;
    left: 12px;
    top: 50%;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #58e39a;
    box-shadow: 0 0 0 5px rgba(88, 227, 154, .12);
    transform: translateY(-50%);
}

.auth-presentation__content {
    width: 100%;
    max-width: 680px;
    margin: auto 0;
    padding: 70px 0 58px;
}

.auth-presentation__eyebrow {
    display: inline-block;
    margin-bottom: 19px;
    color: #bcd4ff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.auth-presentation h1 {
    max-width: 640px;
    margin: 0;
    font-size: clamp(39px, 4.8vw, 66px);
    line-height: 1.06;
    letter-spacing: -.045em;
}

.auth-presentation__content > p {
    max-width: 570px;
    margin: 24px 0 0;
    color: rgba(255, 255, 255, .69);
    font-size: 15px;
    line-height: 1.7;
}

.auth-presentation__features {
    max-width: 590px;
    margin-top: 46px;
    display: grid;
    gap: 13px;
}

.auth-presentation__features > div {
    padding: 14px 17px;
    display: flex;
    align-items: center;
    gap: 15px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 15px;
    background: rgba(255, 255, 255, .075);
    backdrop-filter: blur(10px);
}

.auth-presentation__features > div > span {
    width: 31px;
    height: 31px;
    flex: 0 0 31px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: #d9e8ff;
    background: rgba(255, 255, 255, .1);
    font-size: 9px;
    font-weight: 700;
}

.auth-presentation__features p {
    margin: 0;
    display: flex;
    flex-direction: column;
}

.auth-presentation__features strong {
    font-size: 12px;
}

.auth-presentation__features small {
    margin-top: 4px;
    color: rgba(255, 255, 255, .58);
    font-size: 10px;
}

.auth-presentation__footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: rgba(255, 255, 255, .47);
    font-size: 10px;
}

.auth-form-side {
    position: relative;
    min-height: 100vh;
    padding: 38px clamp(34px, 5.5vw, 90px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    background:
        radial-gradient(circle at 95% 0, rgba(49, 107, 215, .10), transparent 28%),
        #f8fafd;
}

.auth-form-side__top {
    position: absolute;
    inset: 34px clamp(34px, 5.5vw, 90px) auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.auth-home-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #61708a;
    font-size: 12px;
    font-weight: 700;
}

.auth-home-link span {
    font-size: 17px;
}

.auth-home-link:hover {
    color: #1e55b5;
}

.auth-card {
    width: min(465px, 100%);
    margin: 60px auto 0;
}

.auth-card__mobile-brand {
    display: none;
}

.auth-card__heading > span {
    display: inline-block;
    margin-bottom: 11px;
    color: #245dc0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .10em;
    text-transform: uppercase;
}

.auth-card__heading h2 {
    margin: 0;
    color: #0c1833;
    font-size: clamp(30px, 3.2vw, 40px);
    line-height: 1.15;
    letter-spacing: -.035em;
}

.auth-card__heading p {
    margin: 14px 0 0;
    color: #748197;
    font-size: 14px;
    line-height: 1.65;
}

.auth-alert {
    margin-top: 24px;
    padding: 14px 15px;
    display: flex;
    align-items: flex-start;
    gap: 11px;
    border: 1px solid #f2c9ce;
    border-radius: 14px;
    color: #9d2632;
    background: #fff3f4;
}

.auth-alert > span {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #d94252;
    font-size: 12px;
    font-weight: 700;
}

.auth-alert p {
    margin: 2px 0 0;
    font-size: 12px;
    line-height: 1.5;
}

.auth-form {
    margin-top: 29px;
}

.auth-field {
    margin-bottom: 20px;
}

.auth-field label {
    display: block;
    margin-bottom: 9px;
    color: #2c3850;
    font-size: 12px;
    font-weight: 700;
}

.auth-input-wrap {
    min-height: 56px;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 0 15px;
    border: 1px solid #d6dfea;
    border-radius: 15px;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.auth-input-wrap:focus-within {
    border-color: #4a78cf;
    box-shadow: 0 0 0 4px rgba(47, 108, 218, .10);
    background: #fff;
}

.auth-input-wrap > span:first-child {
    width: 24px;
    flex: 0 0 24px;
    text-align: center;
    filter: grayscale(1);
    opacity: .55;
    font-size: 16px;
}

.auth-input-wrap input {
    min-width: 0;
    width: 100%;
    height: 54px;
    padding: 0;
    border: 0;
    outline: 0;
    color: #17233c;
    background: transparent;
    font-family: inherit;
    font-size: 14px;
}

.auth-input-wrap input::placeholder {
    color: #a2acbc;
}

.auth-password-toggle {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    color: #79869c;
    background: #f3f6fa;
    cursor: pointer;
    font-size: 16px;
}

.auth-password-toggle:hover {
    color: #1f58b9;
    background: #eaf1fc;
}

.auth-submit {
    width: 100%;
    min-height: 57px;
    margin-top: 5px;
    padding: 0 20px;
    border: 0;
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(135deg, #193f8d, #2e69d5);
    box-shadow: 0 14px 32px rgba(32, 82, 178, .25);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease;
}

.auth-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 38px rgba(32, 82, 178, .33);
}

.auth-submit b {
    font-size: 19px;
}

.auth-help {
    margin-top: 25px;
    padding: 15px 16px;
    display: flex;
    align-items: flex-start;
    gap: 11px;
    border: 1px solid #e0e7f0;
    border-radius: 15px;
    background: #f2f6fb;
}

.auth-help > span {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #2460c6;
    background: #dfeaff;
    font-family: Georgia, serif;
    font-size: 13px;
    font-weight: 700;
}

.auth-help p {
    margin: 1px 0 0;
    color: #748197;
    font-size: 11px;
    line-height: 1.55;
}

@media (max-width: 1120px) {
    .site-nav {
        display: none;
    }

    .site-hero__grid {
        grid-template-columns: 1fr 470px;
        gap: 42px;
    }

    .site-module-grid,
    .site-role-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-strip__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .site-strip__grid > div:nth-child(3) {
        border-left: 1px solid #e8edf4;
    }

    .site-strip__grid > div:nth-child(-n+2) {
        border-bottom: 1px solid #e8edf4;
    }

    .auth-shell {
        grid-template-columns: minmax(420px, .9fr) minmax(480px, 1.1fr);
    }
}

@media (max-width: 920px) {
    .site-header__inner {
        min-height: 74px;
    }

    .site-button--header {
        padding: 0 15px;
    }

    .site-hero {
        padding-top: 65px;
    }

    .site-hero__grid {
        grid-template-columns: 1fr;
    }

    .site-console {
        max-width: 630px;
        margin: 5px auto 0;
        transform: none;
    }

    .site-section__heading {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .site-cta__inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .auth-shell {
        grid-template-columns: 1fr;
    }

    .auth-presentation {
        display: none;
    }

    .auth-form-side {
        min-height: 100vh;
        padding-top: 105px;
        padding-bottom: 45px;
    }

    .auth-card {
        margin-top: 25px;
    }

    .auth-card__mobile-brand {
        margin-bottom: 40px;
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .auth-card__mobile-brand > div {
        display: flex;
        flex-direction: column;
    }

    .auth-card__mobile-brand strong {
        color: #17377c;
        font-size: 18px;
    }

    .auth-card__mobile-brand small {
        margin-top: 4px;
        color: #738098;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .12em;
    }
}

@media (max-width: 680px) {
    .site-container {
        width: min(100% - 28px, 1240px);
    }

    .site-header__inner {
        gap: 10px;
    }

    .site-brand__logo {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        border-radius: 13px;
    }

    .site-brand__text strong {
        font-size: 15px;
    }

    .site-brand__text small {
        font-size: 9px;
    }

    .site-language {
        display: none;
    }

    .site-button--header {
        min-height: 42px;
        padding: 0 13px;
        border-radius: 12px;
        font-size: 11px;
    }

    .site-button--header b {
        display: none;
    }

    .site-hero {
        min-height: auto;
        padding: 54px 0 60px;
    }

    .site-eyebrow {
        font-size: 9px;
    }

    .site-hero h1 {
        font-size: 39px;
    }

    .site-hero__lead {
        margin-top: 21px;
        font-size: 15px;
    }

    .site-hero__actions {
        flex-direction: column;
    }

    .site-hero__actions .site-button {
        width: 100%;
    }

    .site-hero__trust {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .site-console {
        padding: 15px;
        border-radius: 21px;
    }

    .site-console__status {
        display: none;
    }

    .site-console__kpis {
        grid-template-columns: 1fr 1fr;
    }

    .site-console__kpis > div:nth-child(3) {
        grid-column: 1 / -1;
    }

    .site-console__body {
        grid-template-columns: 1fr;
    }

    .site-console__feed {
        min-height: 150px;
    }

    .site-strip__grid {
        grid-template-columns: 1fr;
    }

    .site-strip__grid > div,
    .site-strip__grid > div:first-child,
    .site-strip__grid > div:nth-child(3) {
        min-height: auto;
        border-left: 1px solid #e8edf4;
        border-right: 1px solid #e8edf4;
        border-bottom: 1px solid #e8edf4;
    }

    .site-section {
        padding: 75px 0;
    }

    .site-section__heading {
        margin-bottom: 30px;
    }

    .site-section__heading h2 {
        font-size: 34px;
    }

    .site-module-grid,
    .site-role-grid {
        grid-template-columns: 1fr;
    }

    .site-module-card {
        min-height: 230px;
    }

    .site-role-grid article > p {
        min-height: 0;
    }

    .site-cta {
        padding-bottom: 55px;
    }

    .site-cta__inner {
        min-height: auto;
        padding: 36px 25px;
        border-radius: 24px;
    }

    .site-cta__inner .site-button {
        width: 100%;
    }

    .site-footer__main,
    .site-footer__bottom {
        flex-direction: column;
    }

    .site-footer__contacts {
        min-width: 0;
    }

    .auth-form-side {
        padding-left: 20px;
        padding-right: 20px;
    }

    .auth-form-side__top {
        left: 20px;
        right: 20px;
    }

    .auth-card__heading h2 {
        font-size: 31px;
    }
}

/* ========================================================================
   OQIIIK APPLICATION SHELL — RESPONSIVE SIDEBAR + MOBILE DASHBOARD
   ======================================================================== */

:root {
    --app-sidebar-width: 280px;
    --app-sidebar-collapsed-width: 88px;
    --app-topbar-height: 86px;
}

.sidebar,
.app-main,
.app-topbar,
.sidebar-menu a,
.sidebar-brand-text,
.sidebar-logo {
    transition: width .22s ease, margin .22s ease, transform .22s ease,
        padding .22s ease, opacity .18s ease, gap .22s ease;
}

.sidebar {
    z-index: 80;
    width: var(--app-sidebar-width);
    max-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.22) transparent;
}

.sidebar::-webkit-scrollbar {
    width: 5px;
}

.sidebar::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.22);
    border-radius: 999px;
}

.sidebar-brand {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 12px;
}

.sidebar-brand-text {
    min-width: 0;
}

.sidebar-brand-text strong,
.sidebar-brand-text span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.sidebar-collapse-btn,
.sidebar-toggle-btn {
    appearance: none;
    border: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sidebar-collapse-btn {
    width: 38px;
    height: 38px;
    color: #fff;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 12px;
}

.sidebar-collapse-btn:hover {
    background: rgba(255,255,255,.2);
}

.sidebar-collapse-btn svg,
.sidebar-toggle-btn svg,
.logout-btn svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sidebar-menu a {
    min-width: 0;
}

.sidebar-menu a > span:first-child {
    width: 25px;
    min-width: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    line-height: 1;
}

.app-main {
    margin-left: var(--app-sidebar-width);
    width: calc(100% - var(--app-sidebar-width));
}

.topbar-heading {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 13px;
}

.topbar-title-wrap {
    min-width: 0;
}

.sidebar-toggle-btn {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    color: #2446A8;
    background: #EEF3FB;
    border: 1px solid #DCE5F2;
    border-radius: 13px;
}

.sidebar-toggle-btn:hover {
    background: #E2EAFA;
}

.logout-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.logout-btn svg {
    width: 18px;
    height: 18px;
}

.sidebar-backdrop,
.sidebar-mobile-footer {
    display: none;
}

body.sidebar-collapsed .sidebar {
    width: var(--app-sidebar-collapsed-width);
    padding-left: 10px;
    padding-right: 10px;
}

body.sidebar-collapsed .sidebar-brand {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

body.sidebar-collapsed .sidebar-brand-text {
    display: none;
}

body.sidebar-collapsed .sidebar-logo {
    width: 48px;
    height: 48px;
}

body.sidebar-collapsed .sidebar-collapse-btn {
    width: 44px;
    height: 36px;
}

body.sidebar-collapsed .sidebar-collapse-arrow {
    transform-origin: center;
    transform: rotate(180deg);
}

body.sidebar-collapsed .sidebar-menu a {
    justify-content: center;
    gap: 0;
    min-height: 48px;
    padding-left: 10px;
    padding-right: 10px;
    font-size: 0;
}

body.sidebar-collapsed .sidebar-menu a > span:first-child {
    width: 28px;
    min-width: 28px;
    font-size: 21px;
}

body.sidebar-collapsed .sidebar-menu .sidebar-badge {
    display: none;
}

body.sidebar-collapsed .app-main {
    margin-left: var(--app-sidebar-collapsed-width);
    width: calc(100% - var(--app-sidebar-collapsed-width));
}

body.sidebar-collapsed .sidebar-menu a::after {
    content: attr(title);
    position: fixed;
    left: calc(var(--app-sidebar-collapsed-width) + 9px);
    z-index: 120;
    padding: 8px 10px;
    color: #fff;
    background: #0F1F55;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 700;
    opacity: 0;
    pointer-events: none;
    transform: translateX(-4px);
    transition: opacity .15s ease, transform .15s ease;
    white-space: nowrap;
    box-shadow: 0 8px 22px rgba(15,31,85,.25);
}

body.sidebar-collapsed .sidebar-menu a:hover::after {
    opacity: 1;
    transform: translateX(0);
}

@media (min-width: 901px) and (max-width: 1024px) {
    :root {
        --app-sidebar-width: 240px;
    }
}

@media (max-width: 900px) {
    :root {
        --app-topbar-height: 70px;
    }

    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    body.sidebar-scroll-lock {
        overflow: hidden;
        touch-action: none;
    }

    .app-layout {
        display: block;
        min-height: 100dvh;
    }

    .sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: min(86vw, 340px);
        min-height: 100dvh;
        max-height: 100dvh;
        padding: max(18px, env(safe-area-inset-top)) 17px max(20px, env(safe-area-inset-bottom));
        transform: translateX(-105%);
        box-shadow: 18px 0 44px rgba(15,23,42,.28);
        overscroll-behavior: contain;
    }

    body.sidebar-mobile-open .sidebar {
        transform: translateX(0);
    }

    .sidebar-brand {
        grid-template-columns: auto minmax(0,1fr) auto;
        gap: 11px;
        margin-bottom: 20px;
    }

    .sidebar-brand strong {
        font-size: 17px;
    }

    .sidebar-collapse-btn {
        width: 42px;
        height: 42px;
    }

    .sidebar-collapse-arrow {
        display: none;
    }

    .sidebar-menu {
        gap: 5px;
    }

    .sidebar-menu a {
        min-height: 48px;
        padding: 12px 13px;
        border-radius: 13px;
        font-size: 15px;
    }

    .sidebar-menu a > span:first-child {
        width: 25px;
        min-width: 25px;
        font-size: 20px;
    }

    .sidebar-mobile-footer {
        display: grid;
        gap: 10px;
        margin-top: 18px;
        padding-top: 16px;
        border-top: 1px solid rgba(255,255,255,.15);
    }

    .sidebar-mobile-language {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 11px;
        color: rgba(255,255,255,.62);
        background: rgba(255,255,255,.08);
        border-radius: 12px;
        font-size: 13px;
        font-weight: 700;
    }

    .sidebar-mobile-language a {
        color: #fff;
    }

    .sidebar-mobile-logout {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        padding: 12px;
        color: #FFE4E6;
        background: rgba(239,68,68,.16);
        border: 1px solid rgba(254,202,202,.16);
        border-radius: 12px;
        font-weight: 700;
    }

    .sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 70;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(15,23,42,.48);
        opacity: 0;
        pointer-events: none;
        transition: opacity .22s ease;
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }

    body.sidebar-mobile-open .sidebar-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    .app-main,
    body.sidebar-collapsed .app-main {
        width: 100%;
        margin-left: 0;
    }

    .app-topbar {
        min-height: var(--app-topbar-height);
        height: var(--app-topbar-height);
        padding: 9px 13px;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 9px;
        z-index: 60;
        box-shadow: 0 1px 0 #E5EAF1;
    }

    .topbar-heading {
        flex: 1 1 auto;
        min-width: 0;
        gap: 10px;
    }

    .sidebar-toggle-btn {
        width: 42px;
        height: 42px;
        border-radius: 12px;
    }

    .topbar-title-wrap {
        min-width: 0;
    }

    .app-topbar h1 {
        overflow: hidden;
        margin: 0;
        font-size: 17px;
        line-height: 1.2;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .app-topbar p {
        overflow: hidden;
        max-width: 48vw;
        margin: 3px 0 0;
        font-size: 10px;
        line-height: 1.2;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .topbar-actions {
        flex: 0 0 auto;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 7px;
        padding: 0;
    }

    .topbar-actions .lang-switch,
    .topbar-actions .logout-btn,
    .user-mini > div:last-child {
        display: none;
    }

    .notification-btn,
    .user-avatar {
        width: 40px;
        height: 40px;
        border-radius: 12px;
    }

    .user-mini {
        gap: 0;
    }

    .content {
        padding: 14px;
    }

    .dashboard-modern-page .content {
        min-height: calc(100dvh - var(--app-topbar-height));
        padding: 14px;
    }

    .adm-dashboard {
        gap: 14px;
    }

    .adm-hero {
        gap: 17px;
        padding: 19px;
        border-radius: 19px;
    }

    .adm-hero h2 {
        font-size: 22px;
    }

    .adm-hero p {
        font-size: 13px;
        line-height: 1.5;
    }

    .adm-hero-meta {
        display: grid;
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 8px;
        margin-top: 14px;
    }

    .adm-hero-meta > span {
        min-width: 0;
        padding: 8px 9px;
        font-size: 11px;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .adm-hero-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0,1fr));
        width: 100%;
        gap: 8px;
    }

    .adm-hero-actions .btn {
        min-height: 44px;
        padding: 10px 9px;
        font-size: 12px;
    }

    .adm-kpi-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 10px;
    }

    .adm-kpi-card {
        min-height: 112px;
        align-items: flex-start;
        gap: 10px;
        padding: 14px;
        border-radius: 16px;
    }

    .adm-kpi-icon {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        border-radius: 13px;
        font-size: 20px;
    }

    .adm-kpi-card small {
        font-size: 11px;
        white-space: normal;
        line-height: 1.25;
    }

    .adm-kpi-card strong {
        margin-top: 4px;
        font-size: 24px;
    }

    .adm-kpi-card em {
        font-size: 9px;
        line-height: 1.25;
    }

    .adm-layout-main,
    .adm-layout-secondary {
        gap: 14px;
    }

    .panel,
    .adm-dashboard .panel {
        padding: 16px;
        border-radius: 18px;
    }

    .panel-header {
        gap: 10px;
        margin-bottom: 14px;
    }

    .adm-dashboard .panel-header h2 {
        font-size: 18px;
    }

    .adm-dashboard .panel-header p {
        font-size: 12px;
    }

    .adm-attention-item {
        grid-template-columns: 38px minmax(0,1fr) auto;
        gap: 9px;
        padding: 10px;
    }

    .adm-attention-icon {
        width: 38px;
        height: 38px;
        font-size: 18px;
    }

    .adm-attention-item strong {
        font-size: 13px;
    }

    .adm-attention-item p {
        font-size: 11px;
    }

    .adm-process-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 8px;
    }

    .adm-process-grid > div {
        grid-template-columns: 34px minmax(0,1fr);
        padding: 10px;
    }

    .adm-process-grid span {
        width: 34px;
        height: 34px;
    }

    .adm-process-grid strong {
        font-size: 18px;
    }

    .adm-quick-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 8px;
    }

    .adm-quick-grid > a {
        grid-template-columns: 35px minmax(0,1fr);
        gap: 8px;
        padding: 10px;
    }

    .adm-quick-grid > a > span {
        width: 35px;
        height: 35px;
        font-size: 17px;
    }

    .adm-quick-grid i {
        display: none;
    }

    .adm-module-grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .adm-module-card {
        grid-template-columns: 42px minmax(0,1fr) auto;
        gap: 9px;
        padding: 11px;
    }

    .adm-module-card > span {
        width: 42px;
        height: 42px;
        font-size: 19px;
    }

    .adm-timeline-item {
        grid-template-columns: 38px minmax(0,1fr);
        gap: 9px;
    }

    .adm-timeline-icon {
        width: 38px;
        height: 38px;
    }

    .adm-review-table {
        min-width: 760px;
    }
}

@media (max-width: 430px) {
    .app-topbar p {
        display: none;
    }

    .app-topbar h1 {
        max-width: 44vw;
    }

    .notification-btn,
    .user-avatar {
        width: 38px;
        height: 38px;
    }

    .adm-hero-meta {
        grid-template-columns: 1fr;
    }

    .adm-hero-actions {
        grid-template-columns: 1fr;
    }

    .adm-kpi-card {
        min-height: 122px;
        flex-direction: column;
    }

    .adm-process-grid,
    .adm-quick-grid {
        grid-template-columns: 1fr;
    }
}

/* Curriculum catalog: specialty tabs and safe bulk clear */
.cci-tabs{
    display:flex;
    gap:10px;
    margin:0 0 18px;
    padding:8px;
    overflow-x:auto;
    background:#fff;
    border:1px solid #dde4f0;
    border-radius:16px;
    scrollbar-width:thin;
}
.cci-tab{
    min-width:max-content;
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 13px;
    color:#475569;
    text-decoration:none;
    border:1px solid transparent;
    border-radius:12px;
    transition:.18s ease;
}
.cci-tab:hover{background:#f1f5f9;color:#0f172a}
.cci-tab.is-active{color:#1e3a8a;background:#eaf0ff;border-color:#c7d2fe}
.cci-tab strong{font-size:13px;white-space:nowrap}
.cci-tab em{
    min-width:25px;
    height:25px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 7px;
    color:#475569;
    font-size:11px;
    font-style:normal;
    font-weight:800;
    background:#f1f5f9;
    border-radius:999px;
}
.cci-tab.is-active em{color:#1e3a8a;background:#fff}
.cci-filter-grid-extended{grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(190px,1fr))}
.cci-card-kickers{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:7px}
.cci-card-kickers>span:first-child{
    padding:4px 8px;
    color:#334155;
    font-size:11px;
    font-weight:800;
    background:#f1f5f9;
    border-radius:999px;
}
.cci-scope-badge,
.cci-scope-table-label{
    display:inline-flex;
    align-items:center;
    max-width:100%;
    padding:4px 9px;
    color:#075985;
    font-size:11px;
    font-weight:750;
    line-height:1.35;
    background:#e0f2fe;
    border:1px solid #bae6fd;
    border-radius:999px;
}
.cci-scope-table{min-width:1280px}
.cci-scope-table-label{white-space:normal;border-radius:10px}
.cci-empty-catalog{
    display:flex;
    gap:18px;
    align-items:center;
    padding:28px;
}
.cci-empty-catalog>span{
    width:68px;
    height:68px;
    flex:0 0 68px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:32px;
    background:#eff6ff;
    border-radius:20px;
}
.cci-empty-catalog h3{margin:0 0 6px;color:#0f172a}
.cci-empty-catalog p{margin:0 0 14px;color:#64748b}
.cci-danger-zone{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff7f7)}
.cci-danger-zone-head{display:flex;gap:16px;align-items:flex-start}
.cci-danger-zone-head>span{
    width:62px;
    height:62px;
    flex:0 0 62px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:29px;
    background:#fee2e2;
    border-radius:18px;
}
.cci-danger-zone-head h3{margin:2px 0 6px;color:#991b1b}
.cci-danger-zone-head p{margin:0;color:#7f1d1d}
.cci-clear-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin:20px 0;
}
.cci-clear-summary article{
    padding:15px;
    background:#fff;
    border:1px solid #fecaca;
    border-radius:14px;
}
.cci-clear-summary strong{display:block;color:#991b1b;font-size:23px}
.cci-clear-summary span{display:block;margin-top:4px;color:#64748b;font-size:12px;line-height:1.35}
.cci-clear-form{max-width:620px;padding-top:4px}
.cci-clear-form .btn-danger{margin-top:4px}

@media(max-width:1100px){
    .cci-filter-grid-extended{grid-template-columns:repeat(2,minmax(0,1fr))}
    .cci-filter-grid-extended .cci-search{grid-column:1/-1}
    .cci-clear-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
    .cci-tabs{margin-left:-4px;margin-right:-4px;border-radius:13px}
    .cci-filter-grid-extended{grid-template-columns:1fr}
    .cci-filter-grid-extended .cci-search{grid-column:auto}
    .cci-empty-catalog,.cci-danger-zone-head{flex-direction:column}
    .cci-clear-summary{grid-template-columns:1fr}
}


.schedule-constructor-cell.is-unavailable {
    background: #eef1f6;
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(148, 163, 184, 0.08),
        rgba(148, 163, 184, 0.08) 8px,
        rgba(255, 255, 255, 0.18) 8px,
        rgba(255, 255, 255, 0.18) 16px
    );
    text-align: center;
    vertical-align: middle;
}

.schedule-unavailable-mark {
    color: #94a3b8;
    font-size: 22px;
    font-weight: 700;
}

/* Shared journal lessons: compact co-teacher label inside the date column. */
.lesson-co-teachers {
    margin-top: 3px;
    max-width: 92px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 9px;
    line-height: 1.15;
    font-weight: 600;
    color: #475569;
}
.lesson-main-teacher {
    font-weight: 500;
    color: #64748b;
}

/* Деление занятий на подгруппы */
.lesson-subgroup {
    margin-top: 4px;
    padding: 2px 5px;
    border-radius: 999px;
    background: rgba(245, 158, 11, 0.14);
    color: #92400e;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.journal-marks-table td.student-other-subgroup-cell {
    background: #f8fafc;
}

.journal-marks-table td.student-other-subgroup-cell .student-not-enrolled-mark {
    color: #94a3b8;
    font-weight: 700;
}

.subgroup-pill {
    display: inline-flex;
    min-width: 30px;
    min-height: 28px;
    align-items: center;
    justify-content: center;
    padding: 3px 9px;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    font-weight: 700;
    border: 1px solid #fed7aa;
}

.subgroup-management-grid {
    display: grid;
    gap: 18px;
}
.subgroup-management-card {
    overflow: hidden;
}
.subgroup-management-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
}
.subgroup-management-head h3 {
    margin: 0 0 5px;
}
.subgroup-management-head p {
    margin: 0;
    color: #64748b;
}
.subgroup-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}
.subgroup-counts span {
    padding: 7px 10px;
    border-radius: 10px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
    white-space: nowrap;
}
@media (max-width: 760px) {
    .subgroup-management-head {
        flex-direction: column;
    }
    .subgroup-counts {
        justify-content: flex-start;
    }
}

/* Filters on the academic plans list. */
.academic-plan-filter-form {
    align-items: flex-end;
}

.academic-plan-filter-form .filter-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 180px;
}

.academic-plan-filter-form .filter-field-grow {
    flex: 1 1 320px;
}

.academic-plan-filter-form .filter-field label {
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.academic-plan-filter-form input,
.academic-plan-filter-form select {
    min-height: 44px;
    border: 1px solid #CBD5E1;
    border-radius: 12px;
    background: #FFFFFF;
    padding: 10px 14px;
    color: #0F172A;
    font: inherit;
}

.academic-plan-filter-form .filter-field-grow input {
    min-width: 0;
    width: 100%;
}

.academic-plan-filter-form .filter-buttons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

@media (max-width: 720px) {
    .academic-plan-filter-form .filter-field,
    .academic-plan-filter-form .filter-field-grow,
    .academic-plan-filter-form .filter-buttons {
        width: 100%;
        min-width: 0;
    }

    .academic-plan-filter-form .filter-buttons .btn {
        flex: 1;
        justify-content: center;
    }
}

/* ===== Academic plans: structural RUP problems ===== */
.academic-plan-problem-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.academic-plan-problem-stat {
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #dbe4f0;
    border-radius: 16px;
}

.academic-plan-problem-stat strong,
.academic-plan-problem-stat span {
    display: block;
}

.academic-plan-problem-stat strong {
    margin-bottom: 4px;
    color: #0f172a;
    font-size: 25px;
}

.academic-plan-problem-stat span {
    color: #64748b;
    font-size: 12px;
}

.academic-plan-problem-stat.danger {
    background: #fff7f7;
    border-color: #fecaca;
}

.academic-plan-problem-stat.danger strong { color: #b91c1c; }

.academic-plan-problem-stat.warning {
    background: #fffbeb;
    border-color: #fde68a;
}

.academic-plan-problem-stat.warning strong { color: #b45309; }

.academic-plan-problem-filter {
    align-items: end;
}

.academic-plan-problem-course-count {
    padding: 6px 10px;
    color: #475569;
    background: #f1f5f9;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.academic-plan-problem-plans {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.academic-plan-problem-plan {
    overflow: hidden;
    background: #fff;
    border: 1px solid #dbe4f0;
    border-radius: 15px;
}

.academic-plan-problem-plan > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
    background: #f8fafc;
}

.academic-plan-problem-plan > summary::-webkit-details-marker { display: none; }
.academic-plan-problem-plan > summary::after {
    content: '⌄';
    color: #64748b;
    font-weight: 700;
}
.academic-plan-problem-plan[open] > summary::after { content: '⌃'; }

.academic-plan-problem-plan-title {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 9px;
}

.academic-plan-problem-plan-title strong {
    color: #0f172a;
    font-size: 15px;
}

.academic-plan-problem-plan-title span {
    color: #64748b;
    font-size: 12px;
}

.academic-plan-problem-badges {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-left: auto;
}

.academic-plan-problem-badges > span {
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

.academic-plan-problem-badges .error { color: #991b1b; background: #fee2e2; }
.academic-plan-problem-badges .warning { color: #92400e; background: #fef3c7; }
.academic-plan-problem-badges .total { color: #334155; background: #e2e8f0; }

.academic-plan-problem-plan-body { padding: 14px; }

.academic-plan-problem-plan-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    color: #64748b;
    font-size: 12px;
}

.academic-plan-problem-list-v2 {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.academic-plan-problem-row {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 11px 12px;
    border: 1px solid #e2e8f0;
    border-left-width: 4px;
    border-radius: 12px;
}

.academic-plan-problem-row.error {
    background: #fffafa;
    border-left-color: #dc2626;
}

.academic-plan-problem-row.warning {
    background: #fffdf5;
    border-left-color: #d97706;
}

.academic-plan-problem-row-icon {
    font-size: 18px;
    text-align: center;
}

.academic-plan-problem-row-head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 7px;
}

.academic-plan-problem-type {
    padding: 3px 6px;
    color: #475569;
    background: #e2e8f0;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.academic-plan-problem-row-head strong { color: #0f172a; }
.academic-plan-problem-row-head span:not(.academic-plan-problem-type) { color: #334155; }

.academic-plan-problem-row-main p {
    margin: 5px 0 0;
    color: #64748b;
    line-height: 1.45;
    font-size: 12px;
}

.academic-plan-no-problems {
    display: flex;
    align-items: center;
    gap: 14px;
    color: #166534;
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.academic-plan-no-problems > span { font-size: 34px; }
.academic-plan-no-problems strong { display: block; margin-bottom: 4px; }
.academic-plan-no-problems p { margin: 0; color: #15803d; }

@media (max-width: 900px) {
    .academic-plan-problem-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .academic-plan-problem-row { grid-template-columns: 32px minmax(0, 1fr); }
    .academic-plan-problem-row-action { grid-column: 2; }
    .academic-plan-problem-plan-meta { align-items: flex-start; flex-direction: column; }
}

.plan-table .plan-row-final_attestation td { background:#fff7ed; border-top:2px solid #fb923c; }

/* Personnel supplemental reports: employee export + PCC summary */
.supplemental-report-modal .supplemental-modal-intro {
    margin: 0 0 16px;
    color: #64748B;
    line-height: 1.5;
}

.supplemental-employee-export-form {
    display: grid;
    gap: 14px;
}

.supplemental-employee-export-form .form-group {
    margin: 0;
}

.supplemental-employee-export-form select {
    width: 100%;
    min-height: 44px;
}

.supplemental-pcc-content {
    padding: 18px;
}

.supplemental-report-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.supplemental-report-kpis article {
    border: 1px solid #D7DDF2;
    border-radius: 14px;
    background: #F8FAFF;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 10px;
    align-items: center;
}

.supplemental-report-kpis article.warning {
    border-color: #FED7AA;
    background: #FFF7ED;
}

.supplemental-report-kpis article > span {
    grid-row: 1 / span 2;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: #E8EEFF;
    color: #2446A8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.supplemental-report-kpis article.warning > span {
    background: #FFEDD5;
    color: #C2410C;
}

.supplemental-report-kpis small {
    color: #64748B;
    font-size: 12px;
}

.supplemental-report-kpis strong {
    font-size: 24px;
    color: #0F172A;
}

.supplemental-pcc-table-wrap {
    max-height: 48vh;
    overflow: auto;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
}

.supplemental-pcc-table {
    margin: 0;
}

.supplemental-pcc-table th:nth-child(2),
.supplemental-pcc-table th:nth-child(3),
.supplemental-pcc-table td:nth-child(2),
.supplemental-pcc-table td:nth-child(3) {
    text-align: center;
    white-space: nowrap;
}

.supplemental-pcc-total-row td {
    background: #EEF3FF;
    color: #173A94;
}

.supplemental-modal-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 16px;
}

@media (max-width: 760px) {
    .supplemental-report-kpis {
        grid-template-columns: 1fr;
    }

    .page-header-actions {
        flex-wrap: wrap;
    }
}


/* Personnel supplemental: PCC -> employees grouped list */
.supplemental-pcc-groups {
    display: grid;
    gap: 14px;
    max-height: 50vh;
    overflow: auto;
    padding-right: 4px;
}

.supplemental-pcc-group {
    border: 1px solid #DCE4F5;
    border-radius: 14px;
    overflow: hidden;
    background: #FFFFFF;
}

.supplemental-pcc-group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 15px;
    background: #F3F6FF;
    border-bottom: 1px solid #E3E9F7;
}

.supplemental-pcc-group-head > div {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.supplemental-pcc-group-head strong {
    color: #173A94;
    font-size: 15px;
}

.supplemental-pcc-group-head small,
.supplemental-pcc-employee-name small {
    color: #64748B;
    font-size: 11px;
}

.supplemental-pcc-hours {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 6px 10px;
    background: #2446A8;
    color: #FFFFFF;
    font-weight: 700;
    white-space: nowrap;
}

.supplemental-pcc-employees {
    display: grid;
}

.supplemental-pcc-employee-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 11px 15px;
    border-top: 1px solid #EEF2F7;
}

.supplemental-pcc-employee-row:first-child {
    border-top: 0;
}

.supplemental-pcc-employee-row:hover {
    background: #FAFBFF;
}

.supplemental-pcc-employee-name {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.supplemental-pcc-employee-name strong {
    color: #0F172A;
    font-size: 13px;
}

.supplemental-pcc-employee-hours {
    color: #173A94;
    font-size: 14px;
    white-space: nowrap;
}

@media (max-width: 620px) {
    .supplemental-pcc-group-head,
    .supplemental-pcc-employee-row {
        align-items: flex-start;
    }

    .supplemental-pcc-employee-row {
        gap: 10px;
    }
}

/* Position module access and shared Conductor generation settings. */
.module-access-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 10px;
}

.module-access-card {
    display: grid;
    grid-template-columns: auto 38px 1fr;
    align-items: center;
    gap: 10px;
    min-height: 72px;
    padding: 12px;
    border: 1px solid #dfe5ef;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
}

.module-access-card.is-selected {
    border-color: #315cc5;
    background: #f2f6ff;
    box-shadow: 0 0 0 2px rgba(49, 92, 197, .08);
}

.module-access-card input { width: 17px; height: 17px; }
.module-access-icon { font-size: 24px; text-align: center; }
.module-access-card strong,
.module-access-card small { display: block; }
.module-access-card small { margin-top: 4px; color: #7b879a; font-size: 11px; }

.generation-week-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(200px, 1fr));
    gap: 10px;
}

.generation-week-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid #dfe5ef;
    border-radius: 12px;
    background: #fff;
}

.generation-week-card.is-transfer { background: #fff9eb; border-color: #f2d89a; }
.generation-week-card strong,
.generation-week-card small { display: block; }
.generation-week-card small { margin-top: 5px; color: #6d7788; }
.generation-week-card select { width: 100px; flex: 0 0 100px; }

.generation-blocks,
.generation-toggle-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.generation-blocks label {
    padding: 9px 13px;
    border: 1px solid #dfe5ef;
    border-radius: 10px;
    background: #f8faff;
}

.generation-toggle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(240px, 1fr));
    margin-top: 15px;
}

.generation-toggle-grid label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    padding: 13px;
    border: 1px solid #dfe5ef;
    border-radius: 12px;
}

.generation-toggle-grid strong,
.generation-toggle-grid small { display: block; }
.generation-toggle-grid small { margin-top: 4px; color: #6f7b8e; }
.generation-rules-panel li { margin: 7px 0; color: #40516c; }
.personnel-generation-password { max-width: 560px; margin-inline: auto; }

@media (max-width: 800px) {
    .generation-week-grid,
    .generation-toggle-grid { grid-template-columns: 1fr; }
}


/* Shared server-side pagination for large administrative lists. */
.list-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding-top: 16px;
}

.list-pagination-info {
    color: #66758c;
    font-size: 13px;
}

.list-pagination-info strong {
    color: #263752;
}

.list-pagination-links {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.pagination-link {
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dfe5ef;
    border-radius: 10px;
    background: #fff;
    color: #2e4f9c;
    font-weight: 700;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.pagination-link:hover {
    border-color: #9bb4ef;
    background: #f5f8ff;
}

.pagination-link.active {
    border-color: #315cc5;
    background: #315cc5;
    color: #fff;
}

.pagination-link.disabled {
    pointer-events: none;
    opacity: .42;
}

.pagination-ellipsis {
    min-width: 24px;
    text-align: center;
    color: #8a96a8;
}

@media (max-width: 640px) {
    .list-pagination {
        align-items: flex-start;
    }

    .list-pagination-info,
    .list-pagination-links {
        width: 100%;
    }

    .list-pagination-links {
        justify-content: flex-start;
    }
}

/* ========================================================================
   OQIIK SIDEBAR GROUPS — COLLAPSIBLE MODULE SECTIONS
   ======================================================================== */
.sidebar-group {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.sidebar-group-toggle {
    appearance: none;
    width: 100%;
    min-width: 0;
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 14px;
    border: 0;
    border-radius: 14px;
    color: rgba(255,255,255,.86);
    background: transparent;
    font: inherit;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, padding .22s ease, gap .22s ease;
}

.sidebar-group-toggle:hover,
.sidebar-group.is-active > .sidebar-group-toggle {
    background: rgba(64,103,211,.5);
    color: #fff;
}

.sidebar-group.is-open > .sidebar-group-toggle {
    background: rgba(255,255,255,.10);
    color: #fff;
}

.sidebar-group.is-active.is-open > .sidebar-group-toggle {
    background: #2446A8;
}

.sidebar-group-toggle > span:first-child {
    width: 25px;
    min-width: 25px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    line-height: 1;
}

/* Keep section titles readable instead of cutting them with an ellipsis. */
.sidebar-group-label {
    min-width: 0;
    flex: 1 1 auto;
    font-size: 15px;
    line-height: 1.18;
    white-space: normal;
    overflow-wrap: normal;
    font-weight: 700;
}

.sidebar-group-caret {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .72;
    transform: rotate(0deg);
    transition: transform .2s ease, opacity .2s ease;
}

.sidebar-group.is-open .sidebar-group-caret {
    transform: rotate(90deg);
    opacity: 1;
}

.sidebar-submenu {
    display: grid;
    gap: 3px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: max-height .28s ease, opacity .18s ease, transform .2s ease, visibility .18s ease;
}

.sidebar-group.is-open .sidebar-submenu {
    max-height: 1200px;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.sidebar-menu .sidebar-submenu a {
    position: relative;
    min-height: 42px;
    padding: 9px 12px 9px 20px;
    border-radius: 11px;
    gap: 9px;
    font-size: 13px;
    font-weight: 700;
    color: rgba(255,255,255,.76);
}

.sidebar-menu .sidebar-submenu a:hover,
.sidebar-menu .sidebar-submenu a.active {
    background: rgba(50,84,180,.8);
    color: #fff;
}

.sidebar-menu .sidebar-submenu a > span:first-child {
    width: 20px;
    min-width: 20px;
    height: 20px;
    font-size: 16px;
}

.sidebar-submenu-label {
    min-width: 0;
    overflow: hidden;
    white-space: normal;
    line-height: 1.25;
}

body.sidebar-collapsed .sidebar-group-toggle {
    justify-content: center;
    gap: 0;
    min-height: 48px;
    padding-left: 10px;
    padding-right: 10px;
}

body.sidebar-collapsed .sidebar-group-toggle > span:first-child {
    width: 28px;
    min-width: 28px;
}

body.sidebar-collapsed .sidebar-group-label,
body.sidebar-collapsed .sidebar-group-caret,
body.sidebar-collapsed .sidebar-submenu {
    display: none;
}

body.sidebar-collapsed .sidebar-group-toggle::after {
    content: attr(title);
    position: fixed;
    left: calc(var(--app-sidebar-collapsed-width) + 9px);
    z-index: 120;
    padding: 8px 10px;
    color: #fff;
    background: #0F1F55;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 700;
    opacity: 0;
    pointer-events: none;
    transform: translateX(-4px);
    transition: opacity .15s ease, transform .15s ease;
    white-space: nowrap;
    box-shadow: 0 8px 22px rgba(15,31,85,.25);
}

body.sidebar-collapsed .sidebar-group-toggle:hover::after {
    opacity: 1;
    transform: translateX(0);
}

@media (max-width: 900px) {
    .sidebar-group-toggle {
        min-height: 48px;
        padding: 12px 13px;
        border-radius: 13px;
        font-size: 15px;
    }

    .sidebar-menu .sidebar-submenu a {
        min-height: 43px;
        padding: 10px 11px 10px 18px;
        font-size: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sidebar-group-toggle,
    .sidebar-group-caret,
    .sidebar-submenu {
        transition: none !important;
    }
}


/* Admin: edit an existing journal lesson (topic/date/hours). */
.lesson-edit {
    position: absolute;
    left: 3px;
    top: 3px;
    border: 0;
    background: #DBEAFE;
    color: #1D4ED8;
    border-radius: 6px;
    cursor: pointer;
    width: 18px;
    height: 18px;
    padding: 0;
    font-size: 13px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
}

.lesson-edit:hover {
    background: #BFDBFE;
}

/* JOURNAL TABLE FULL WIDTH — info/action block stays above, journal grid spans the page */
body.journal-wide-page .journal-full-content {
    grid-column: 1 / -1;
    min-width: 0;
    width: 100%;
    max-width: none;
}

body.journal-wide-page .journal-main .journal-info-card {
    margin-bottom: 0;
}

body.journal-wide-page .journal-full-content .journal-filter-row,
body.journal-wide-page .journal-full-content #journalTableBox,
body.journal-wide-page .journal-full-content .journal-table-wrap {
    width: 100%;
    max-width: none;
}

@media (max-width: 1200px) {
    body.journal-wide-page .journal-full-content {
        grid-column: 1;
    }
}
