*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:'Montserrat',sans-serif;
}

body{

background:#F7F2EA;
display:flex;
min-height:100vh;

}

.sidebar{

width:260px;
background:white;
padding:40px 30px;
box-shadow:0 0 30px rgba(0,0,0,.06);

}

.logo{

font-size:26px;
font-weight:800;
color:#7A2528;
margin-bottom:50px;

}

.menu a{

display:block;
text-decoration:none;
color:#444;
font-weight:600;

padding:16px 18px;

border-radius:14px;

margin-bottom:12px;

transition:.25s;

}

.menu-badge-link{
display:grid !important;
grid-template-columns:minmax(0,1fr) auto;
align-items:center;
gap:10px;
padding-right:18px;
}

.menu-badge-link span{
display:block;
min-width:0;
}

.menu-badge-link b{
min-width:34px;
height:34px;
display:flex;
align-items:center;
justify-content:center;
border-radius:11px;
background:#7A2528;
color:white;
font-size:15px;
font-weight:800;
line-height:1;
box-shadow:0 8px 18px rgba(122,37,40,.18);
}

.menu a:hover{

background:#7A2528;
color:white;

}

.menu-badge-link:hover b{
background:white;
color:#7A2528;
}

.content{

flex:1;

padding:50px 76px 50px 50px;

}

.header{

display:flex;
justify-content:space-between;
align-items:center;

margin-bottom:45px;

}

.header h1{

font-size:42px;
color:#2E2A28;

}

.user{

font-size:18px;
font-weight:700;
color:#7A2528;

}

.cards{

display:grid;
grid-template-columns:repeat(3,1fr);
gap:25px;

margin-bottom:45px;

}

.card{

background:white;
border-radius:22px;

padding:35px;

box-shadow:0 10px 30px rgba(0,0,0,.06);

}

.card h2{

font-size:18px;
margin-bottom:15px;
color:#666;

}

.number{

font-size:44px;
font-weight:800;
color:#7A2528;

}

.actions{

display:flex;
gap:20px;

flex-wrap:wrap;

}

.student-row-actions{
justify-content:flex-end;
}

.student-actions-heading,
.student-actions-cell{
text-align:right;
}

.student-actions-heading{
width:52%;
}

.button{

background:#7A2528;

color:white;

padding:16px 28px;

border-radius:14px;

text-decoration:none;

font-weight:700;

transition:.2s;

display:inline-flex;
align-items:center;
justify-content:center;
line-height:1.2;

}

.button:hover{

background:#5d1b1d;

}

@media(max-width:900px){

body{

flex-direction:column;

}

.sidebar{

width:100%;

}

.cards{

grid-template-columns:1fr;

}

}

.container{
    max-width:1200px;
    margin:auto;
}

.table{
    background:white;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 15px 35px rgba(0,0,0,.06);
}

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

th{
    background:#7A2528;
    color:white;
    padding:20px;
    text-align:left;
    font-size:16px;
}

td{
    padding:18px 20px;
    border-bottom:1px solid #eee;
    font-size:15px;
}

tr:hover{
    background:#faf7f5;
}

.edit{
    background:#B89B5E;
    color:white;
    padding:10px 16px;
    border-radius:10px;
    text-decoration:none;
    font-weight:700;
}

.delete{
    background:#C94A4A;
    color:white;
    padding:10px 16px;
    border-radius:10px;
    text-decoration:none;
    font-weight:700;
}

.empty{
    padding:45px;
    text-align:center;
    font-size:20px;
    color:#777;
}

.student-card{

    background:#fff;

    border-radius:24px;

    padding:35px;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

    width:100%;
    max-width:1000px;

}

.student-name{

    font-size:34px;

    font-weight:800;

    margin-bottom:35px;

    color:#1E1C1A;

}

.student-section{

    margin-bottom:35px;

    padding-bottom:25px;

    border-bottom:1px solid #ececec;

}

.student-section:last-of-type{

    border-bottom:none;

}

.student-section h2{

    margin-bottom:18px;

    color:#7A2528;

}

.student-section p{

    margin:10px 0;

    font-size:18px;

}

.student-buttons{

    display:flex;

    gap:20px;

    margin-top:30px;

    flex-wrap:wrap;

}

.student-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:35px;

}

.student-homework-top-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
    flex-wrap:wrap;
}

.student-card form.student-homework-complete-form{
    max-width:none;
}

.student-homework-complete-form .button{
    background:#7A2528;
}

.student-homework-complete-form .button:hover{
    background:#5d1b1d;
}

.homework-leave-reminder{
    position:fixed;
    inset:0;
    z-index:1000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(30,28,26,.42);
}

.homework-leave-reminder.active{
    display:flex;
}

.homework-leave-reminder-card{
    width:min(620px,100%);
    padding:30px;
    border-radius:24px;
    background:#FFF6DF;
    box-shadow:0 24px 70px rgba(0,0,0,.18);
    border:1px solid #EFE6D7;
}

.homework-leave-reminder-card strong{
    display:block;
    color:#7A2528;
    font-size:28px;
    line-height:1.2;
    margin-bottom:10px;
}

.homework-leave-reminder-card p{
    color:#777;
    font-size:17px;
    font-weight:700;
    line-height:1.45;
}

.homework-leave-reminder-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:24px;
}

.homework-leave-reminder-actions .button{
    min-height:48px;
}

.reminder-exit-button{
    background:#C33A3A;
}

.reminder-exit-button:hover{
    background:#A83232;
}

.student-subtitle{

    color:#888;

    margin-top:8px;

}

.info-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:20px;

    margin-bottom:40px;

}

.info-box{

    background:#F7F2EA;

    border-radius:18px;

    padding:24px;

}

.info-box span{

    display:block;

    color:#888;

    font-size:14px;

    margin-bottom:12px;

}

.info-box strong{

    font-size:22px;

    color:#2E2A28;

}

.student-detail-card{
    padding:26px 30px;
    max-width:none;
}

.student-detail-card .student-header{
    margin-bottom:22px;
}

.student-detail-card .student-name{
    font-size:30px;
    margin-bottom:6px;
}

.student-detail-card .student-subtitle{
    font-size:15px;
}

.student-detail-card > .student-header .button{
    padding:12px 20px;
    border-radius:13px;
    font-size:15px;
}

.student-detail-card .info-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:26px;
}

.student-detail-card .info-box{
    min-height:96px;
    padding:16px 18px;
    border-radius:16px;
}

.student-detail-card .info-box span{
    font-size:13px;
    margin-bottom:10px;
}

.student-detail-card .info-box strong{
    font-size:20px;
    line-height:1.15;
    word-break:break-word;
}

.dashboard-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:18px;

    margin-top:26px;

}

.dashboard-box{

    background:#F7F2EA;

    border-radius:18px;

    padding:24px 26px;

    min-height:185px;

    display:flex;

    flex-direction:column;

    align-items:flex-start;

}

.dashboard-box h2{

    color:#7A2528;

    margin-bottom:16px;

    font-size:24px;

}

.dashboard-box p{

    font-size:16px;

    line-height:1.55;

    margin-bottom:6px;

}

.dashboard-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:auto;
    padding-top:20px;
    width:100%;
}

.dashboard-actions .button{
    min-height:48px;
    padding:13px 20px;
    border-radius:13px;
    font-size:15px;
    white-space:normal;
    text-align:center;
}

.dashboard-box > br{
    display:none;
}

.dashboard-box > .button{
    display:flex;
    width:fit-content;
    max-width:100%;
    min-height:48px;
    margin-top:16px;
    padding:13px 20px;
    border-radius:13px;
    font-size:15px;
    line-height:1.2;
    text-align:center;
    white-space:normal;
    clear:both;
}

.dashboard-box > .button + .button{
    margin-top:10px;
}

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

.form-group label{
    display:block;
    margin-bottom:8px;
    font-size:16px;
    font-weight:600;
    color:#2E2A28;
}

.student-tracks-block{
    display:grid;
    gap:14px;
    margin:10px 0 24px;
}

.student-tracks-block > label{
    margin-bottom:0;
    font-size:18px;
    font-weight:900;
    color:#2E2A28;
}

.student-track-card{
    display:grid;
    grid-template-columns:minmax(220px,1fr) minmax(300px,1.4fr);
    gap:16px;
    align-items:center;
    padding:16px;
    border:1px solid #EFE6D7;
    border-radius:16px;
    background:#FFFDF8;
}

.student-track-main{
    display:flex !important;
    align-items:center;
    gap:12px;
    margin:0 !important;
}

.student-track-main input{
    width:22px;
    height:22px;
    accent-color:#7A2528;
}

.student-track-main strong{
    color:#2E2A28;
    font-size:18px;
    line-height:1.2;
}

.student-track-controls{
    display:grid;
    grid-template-columns:minmax(160px,.8fr) minmax(180px,1fr);
    gap:12px;
}

.student-track-badges{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.student-track-badges strong{
    display:inline-flex;
    width:fit-content;
    padding:8px 11px;
    border-radius:999px;
    background:#FFF6DF;
    color:#7A2528;
    font-size:13px !important;
    line-height:1.2;
}

.student-tracks-info-box{
    grid-column:span 2;
}

.field-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:8px;
}

.field-heading label{
    margin-bottom:0;
}

.text-action{
    color:#7A2528;
    font-size:14px;
    font-weight:800;
    text-decoration:none;
    white-space:nowrap;
}

.text-action:hover{
    color:#5d1b1d;
}

.form-control{
    width:100%;
    padding:14px 18px;
    border:1px solid #ddd;
    border-radius:14px;
    background:#F7F2EA;
    font-size:16px;
    outline:none;
    transition:.2s;
}

.form-control:focus{
    border-color:#7A2528;
}

textarea.form-control{
    resize:vertical;
    min-height:140px;
}

.student-card form{
    max-width:700px;
}

.hidden-form{
    display:none;
}

button.button{
    border:none;
    cursor:pointer;
}

.success-message,
.error-message{
    padding:16px 18px;
    border-radius:14px;
    margin-bottom:24px;
    font-weight:700;
}

.success-message{
    background:#E5F6EA;
    color:#21753B;
}

.error-message{
    background:#FBE7E7;
    color:#A33232;
}

.homework-empty{
    margin-bottom:24px;
}

.homework-type,
.status-badge{
    display:inline-block;
    padding:8px 12px;
    border-radius:10px;
    font-size:14px;
    font-weight:700;
}

.homework-type{
    background:#F7F2EA;
    color:#7A2528;
}

.status-badge{
    background:#E5F6EA;
    color:#21753B;
}

.secondary-button{
    background:#B89B5E;
}

.secondary-button:hover{
    background:#9F844F;
}

.homework-month{
    margin-bottom:35px;
}

.homework-month h2{
    color:#7A2528;
    font-size:24px;
    margin-bottom:16px;
}

.chat-card{
    max-width:none;
}

.chat-room-tabs{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:12px;
    margin-bottom:24px;
}

.chat-room-tabs a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:16px 18px;
    border-radius:16px;
    background:#F7F2EA;
    color:#2E2A28;
    text-decoration:none;
    font-weight:800;
}

.chat-room-tabs a.active{
    background:#7A2528;
    color:white;
}

.chat-room-tabs b{
    min-width:30px;
    height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#7A2528;
    color:white;
    font-size:14px;
}

.chat-room-tabs a.active b{
    background:white;
    color:#7A2528;
}

.chat-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:20px;
}

.chat-heading h2{
    color:#2E2A28;
    font-size:30px;
    line-height:1.15;
}

.chat-heading p{
    margin-top:6px;
    color:#777;
    font-weight:700;
}

.chat-clear-form,
.student-card form.chat-clear-form{
    max-width:none;
    margin:0;
}

.chat-manage-form,
.student-card form.chat-manage-form{
    max-width:none;
}

.chat-manage-toolbar{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
    margin-bottom:12px;
}

.chat-select-all{
    display:flex;
    align-items:center;
    gap:8px;
    color:#777;
    font-weight:800;
}

.chat-select-all input{
    width:18px;
    height:18px;
    accent-color:#7A2528;
}

.chat-messages{
    display:flex;
    flex-direction:column;
    gap:12px;
    min-height:320px;
    max-height:520px;
    overflow:auto;
    padding:18px;
    border-radius:20px;
    background:#F7F2EA;
    margin-bottom:18px;
}

.chat-message{
    width:min(680px,86%);
    padding:14px 16px;
    border-radius:16px;
    background:white;
    box-shadow:0 8px 18px rgba(0,0,0,.04);
}

.chat-message.own{
    align-self:flex-end;
    background:#FFF6DF;
    border:1px solid #EFE6D7;
}

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

.chat-message-top div{
    min-width:0;
    flex:1;
}

.chat-message-check{
    display:flex;
    align-items:center;
    justify-content:center;
}

.chat-message-check input{
    width:18px;
    height:18px;
    accent-color:#7A2528;
}

.chat-message-delete{
    width:28px;
    height:28px;
    border:0;
    border-radius:9px;
    background:#FBE7E7;
    color:#7A2528;
    cursor:pointer;
    font-size:20px;
    font-weight:800;
    line-height:1;
}

.chat-message-delete:hover{
    background:#7A2528;
    color:white;
}

.chat-message strong{
    color:#7A2528;
    font-size:15px;
}

.chat-message span{
    color:#999;
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
}

.chat-message p{
    color:#2E2A28;
    font-size:16px;
    line-height:1.45;
}

.student-card form.chat-form{
    max-width:none;
    display:grid;
    grid-template-columns:1fr auto;
    gap:14px;
    align-items:end;
}

.chat-form textarea.form-control{
    min-height:76px;
}

.time-badge{
    display:inline-block;
    padding:8px 12px;
    border-radius:10px;
    font-size:14px;
    font-weight:700;
}

.time-badge-ontime{
    background:#E5F6EA;
    color:#21753B;
}

.time-badge-late{
    background:#FFF0C2;
    color:#8A6500;
}

.time-badge-waiting{
    background:#EAF0FB;
    color:#305A96;
}

.time-badge-missing{
    background:#FBE7E7;
    color:#A33232;
}

.secondary-action{
    background:#B89B5E;
    color:white;
    padding:10px 16px;
    border-radius:10px;
    text-decoration:none;
    font-weight:700;
}

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

.inline-action-form,
.student-card form.inline-action-form{
    max-width:none;
    margin:0;
}

.danger-button{
    background:#b93535;
    color:#fff;
}

.danger-button:hover{
    background:#962828;
}

.grade-selector{
    display:flex;
    gap:12px;
    margin-top:10px;
}

.grade-item input{
    display:none;
}

.grade-item span{

    width:54px;
    height:54px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:14px;

    background:#f6f1e8;

    font-size:22px;
    font-weight:700;

    cursor:pointer;

    transition:.2s;

    border:2px solid transparent;

}

.grade-item span:hover{

    transform:translateY(-2px);

}

.grade-item input:checked + span{

    background:#7A2528;
    color:white;
    border-color:#7A2528;

}

.grade-hints{

    display:flex;
    justify-content:space-between;

    margin-top:10px;

    color:#8b8b8b;

    font-size:14px;

}

.choice-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
    margin-bottom:28px;
}

.choice-card input{
    display:none;
}

.choice-card span{
    display:block;
    padding:16px 18px;
    border-radius:14px;
    background:#F7F2EA;
    border:2px solid transparent;
    color:#2E2A28;
    font-weight:700;
    text-align:center;
    cursor:pointer;
    transition:.2s;
    min-height:58px;
}

.choice-card input:checked + span{
    background:#7A2528;
    border-color:#7A2528;
    color:white;
}

.students-section{
    margin-bottom:50px;
}

.section-title{
    margin-bottom:22px;
    border-bottom:2px solid rgba(122,37,40,.15);
    padding-bottom:14px;
}

.section-title h2{
    color:#7A2528;
    font-size:28px;
    text-transform:uppercase;
}

.student-group-section{
    margin-bottom:30px;
}

.student-group-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:14px;
}

.student-group-title h3,
.mini-group-card h3,
.group-card h2,
.groups-form-card h2{
    color:#2E2A28;
}

.student-group-title span{
    min-width:38px;
    padding:8px 12px;
    border-radius:10px;
    background:white;
    color:#7A2528;
    font-weight:800;
    text-align:center;
}

.compact-empty{
    background:white;
    border-radius:18px;
    padding:24px;
    font-size:16px;
    margin-bottom:20px;
}

.mini-groups-grid,
.groups-list{
    display:grid;
    gap:24px;
}

.mini-group-card,
.group-card,
.groups-form-card{
    max-width:none;
}

.group-card-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:22px;
}

.group-card-header p{
    color:#777;
    margin-top:8px;
    font-weight:600;
    font-size:15px;
}

.group-title-link{
    display:block;
    color:inherit;
    text-decoration:none;
}

.group-title-link h2,
.group-title-link h3{
    transition:.2s;
}

.group-title-link:hover h2,
.group-title-link:hover h3{
    color:#7A2528;
}

.group-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.compact-button{
    padding:12px 18px;
    border-radius:12px;
    font-size:15px;
}

.groups-form-card{
    margin-bottom:24px;
    padding:28px 32px;
    background:#FFF6DF;
    border:1px solid #E8D39D;
    box-shadow:0 15px 35px rgba(184,155,94,.18);
}

.group-card{
    padding:28px 32px;
}

.group-card > .group-card-header:last-child,
.mini-group-card > .group-card-header:last-child{
    margin-bottom:0;
}

.groups-form-card h2,
.group-card h2{
    font-size:26px;
    margin-bottom:0;
}

.groups-form-card .form-control{
    background:white;
    border-color:#DEC88E;
}

.groups-form-card .group-card-header p{
    color:#7A6842;
}

.group-create-form,
.student-card form.group-create-form{
    display:grid;
    grid-template-columns:minmax(280px,1fr) 220px auto;
    gap:16px;
    align-items:end;
    max-width:none;
}

.group-edit-form,
.student-card form.group-edit-form{
    display:grid;
    grid-template-columns:minmax(260px,1fr) 220px auto;
    gap:16px;
    align-items:end;
    max-width:none;
    padding-top:18px;
    border-top:1px solid #eee;
}

.group-create-form .form-group,
.group-edit-form .form-group{
    margin-bottom:0;
}

.group-create-form .button,
.group-edit-form .button{
    min-height:54px;
    padding:14px 20px;
}

.group-detail-card{
    max-width:none;
    margin-bottom:24px;
    padding:28px 32px;
}

.group-detail-card .student-header{
    gap:18px;
}

.group-detail-card .group-edit-form{
    margin-top:12px;
}

.group-month-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:22px;
}

.group-month-toolbar h2{
    color:#2E2A28;
}

.group-month-toolbar p{
    margin-top:8px;
    color:#777;
    font-weight:700;
}

.group-month-period{
    min-height:0;
    min-width:260px;
    background:#F7F2EA;
}

.group-marks-form,
.student-card form.group-marks-form{
    max-width:none;
}

.group-marks-form .button{
    margin-top:20px;
}

.group-marks-form .table{
    overflow-x:auto;
}

.group-marks-form table{
    min-width:880px;
}

.payment-check{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-weight:800;
    color:#2E2A28;
}

.payment-check input{
    width:20px;
    height:20px;
}

.compact-control{
    min-width:180px;
    padding:12px 14px;
    border-radius:12px;
}

.group-status-link{
    display:inline-flex;
    flex-direction:column;
    gap:4px;
    min-width:170px;
    padding:12px 14px;
    border-radius:14px;
    text-decoration:none;
    font-weight:800;
    transition:.2s;
}

.group-status-link strong{
    font-size:15px;
}

.group-status-link span{
    color:inherit;
    font-size:13px;
    opacity:.78;
}

.group-status-link:hover{
    transform:translateY(-2px);
}

.group-status-link.paid{
    background:#E8F5E9;
    color:#236A30;
}

.group-status-link.waiting{
    background:#FFF6DF;
    color:#7A2528;
}

.group-status-link.attendance{
    background:#EAF0FB;
    color:#305A96;
}

.subscription-period{
    width:fit-content;
    margin-bottom:24px;
}

.group-subscription-form,
.student-card form.group-subscription-form{
    display:grid;
    grid-template-columns:minmax(260px,1fr) minmax(220px,320px);
    gap:18px;
    max-width:760px;
}

.group-subscription-form .button{
    justify-self:start;
}

.subscription-toggle{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    gap:12px;
    width:fit-content;
    padding:16px 18px;
    border-radius:16px;
    background:#F7F2EA;
    color:#2E2A28;
    font-weight:800;
}

.subscription-toggle input{
    width:22px;
    height:22px;
}

.attendance-days-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(110px,1fr));
    gap:12px;
    margin-bottom:24px;
}

.attendance-day-card{
    display:grid;
    gap:8px;
    padding:12px;
    border-radius:16px;
    background:#F7F2EA;
}

.attendance-day-card > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

.attendance-day-card strong{
    color:#2E2A28;
    font-size:22px;
}

.attendance-day-card > div span{
    color:#888;
    font-weight:800;
}

.attendance-choice input{
    display:none;
}

.attendance-choice span{
    display:block;
    padding:8px 10px;
    border-radius:10px;
    background:white;
    color:#777;
    font-size:13px;
    font-weight:800;
    text-align:center;
    cursor:pointer;
}

.attendance-choice.present input:checked + span{
    background:#E8F5E9;
    color:#236A30;
}

.attendance-choice.absent input:checked + span{
    background:#FBE7E7;
    color:#A33232;
}

.attendance-choice.clear input:checked + span{
    background:#2E2A28;
    color:white;
}

.student-list{
    display:grid;
    gap:12px;
}

.student-list-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:16px;
    border-radius:14px;
    background:#F7F2EA;
}

.student-list-row span{
    display:block;
    color:#777;
    margin-top:5px;
}

.student-delete-form,
.student-card form.student-delete-form{
    max-width:none;
    margin:0;
}

.student-delete-form .button{
    min-height:auto;
}

.group-delete-form,
.student-card form.group-delete-form{
    max-width:none;
    margin:0;
}

.group-delete-form .button{
    min-height:auto;
}

.group-preview{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    min-height:0;
    margin-top:-6px;
    margin-bottom:28px;
    padding:12px 14px;
    border-radius:14px;
    background:#F7F2EA;
    color:#777;
    font-weight:600;
    font-size:14px;
}

.group-preview span{
    display:inline-flex;
    padding:7px 11px;
    border-radius:10px;
    background:white;
    color:#2E2A28;
    font-weight:700;
}

.homework-target-panel{
    margin-bottom:8px;
}

.students-page-counter{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    max-width:none;
    margin-bottom:28px;
    padding:18px 22px;
    border:1px solid #EFE6D7;
}

.students-page-counter div{
    padding:14px 16px;
    border-radius:14px;
    background:#F7F2EA;
}

.students-page-counter span,
.students-page-counter strong{
    display:block;
}

.students-page-counter span{
    color:#777;
    font-size:14px;
    font-weight:800;
    margin-bottom:8px;
}

.students-page-counter strong{
    color:#7A2528;
    font-size:30px;
    line-height:1;
}

.homework-action-cell{
    text-align:right;
}

.student-card form.homework-form{
    max-width:820px;
}

.homework-form .form-group{
    margin-bottom:26px;
}

.trainer-homework-builder{
    display:block;
    margin:4px 0 28px;
    padding:26px;
    border-radius:24px;
    background:#FFF6DC;
    border:1px solid #E8D49F;
}

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

.trainer-homework-builder-header span,
.trainer-homework-builder-header strong{
    display:block;
}

.trainer-homework-builder-header span{
    color:#777;
    font-size:16px;
    font-weight:800;
    margin-bottom:6px;
}

.trainer-homework-builder-header strong{
    color:#7A2528;
    font-size:30px;
    line-height:1.1;
}

.trainer-homework-builder-header p{
    max-width:420px;
    margin:0;
    color:#777;
    font-size:16px;
    font-weight:700;
    line-height:1.45;
}

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

.trainer-homework-row{
    display:grid;
    grid-template-columns:48px 72px 48px minmax(0,1fr);
    align-items:center;
    gap:10px;
    padding:12px;
    border-radius:18px;
    background:#fff;
}

.trainer-count-button{
    width:48px;
    height:48px;
    border:1px solid #EFE6D7;
    border-radius:50%;
    background:#F7F2EA;
    color:#7A2528;
    font-size:28px;
    line-height:1;
    font-weight:800;
    cursor:pointer;
}

.trainer-count-input{
    width:72px;
    height:48px;
    padding:0 8px;
    border:0;
    border-radius:10px;
    background:#F1EEE8;
    color:#2E2A28;
    font-size:24px;
    font-weight:800;
    text-align:center;
}

.trainer-homework-task{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
    min-width:0;
}

.trainer-homework-task span{
    color:#7A2528;
    font-size:20px;
    font-weight:900;
}

.trainer-homework-task strong{
    min-width:0;
    color:#2E2A28;
    font-size:18px;
    line-height:1.25;
}

.trainer-homework-task small{
    color:#777;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
}

.trainer-homework-summary{
    margin-top:22px;
    padding:20px 22px;
    border-radius:18px;
    background:#FFF6DC;
    border:1px solid #E8D49F;
}

.trainer-homework-summary h2{
    margin:0 0 12px;
    color:#7A2528;
    font-size:28px;
}

.trainer-homework-summary-list{
    display:grid;
    gap:10px;
}

.trainer-homework-summary-item{
    display:flex;
    justify-content:space-between;
    gap:18px;
    padding:12px 14px;
    border-radius:14px;
    background:#fff;
    color:#2E2A28;
    font-weight:800;
}

.trainer-homework-summary-item span{
    color:#777;
    white-space:nowrap;
}

.trainer-bank-start-card{
    margin-top:22px;
    padding:22px;
    border-radius:20px;
    background:#F7F2EA;
}

.trainer-bank-start-card p{
    margin:0 0 16px;
    color:#777;
    font-weight:700;
}

.homework-month-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:18px;
    margin-bottom:32px;
}

.homework-season-list{
    display:flex;
    flex-direction:column;
    gap:28px;
}

.homework-season-block h3{
    color:#7A2528;
    font-size:22px;
    margin-bottom:14px;
    text-transform:uppercase;
}

.homework-season-grid{
    grid-template-columns:repeat(3,minmax(220px,1fr));
    margin-bottom:0;
}

.homework-month-card{
    display:block;
    padding:22px;
    border-radius:18px;
    background:white;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 12px 28px rgba(0,0,0,.05);
    border:2px solid transparent;
    transition:.2s;
}

.homework-month-card:hover,
.homework-month-card.active{
    border-color:#7A2528;
    transform:translateY(-2px);
}

.homework-month-card.muted{
    opacity:.72;
}

.homework-month-card strong{
    display:block;
    font-size:22px;
    margin-bottom:10px;
}

.homework-month-card span,
.homework-month-card small{
    display:block;
    color:#777;
    font-weight:700;
    line-height:1.5;
}

.month-homework-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin:8px 0 20px;
    flex-wrap:wrap;
}

.month-homework-header h2{
    color:#2E2A28;
    font-size:28px;
}

.homework-week-grid{
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}

@media(max-width:1100px){
    .homework-season-grid{
        grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    }
}

.homework-schedule-subtitle{
    margin-top:8px;
    color:#777;
    font-weight:700;
}

.homework-schedule-card{
    overflow:auto;
}

.homework-calendar-cell{
    cursor:default;
}

.homework-calendar-cell:hover{
    background:white;
}
.homework-calendar-lesson{
    position:absolute;
    left:5px;
    width:calc(100% - 10px);
    z-index:2;
    overflow:hidden;
    padding:7px 8px;
    border-left:3px solid #7A2528;
    border-radius:10px;
    box-shadow:0 8px 18px rgba(122,37,40,.08);
}

.homework-calendar-lesson.waiting{
    background:#FFECEC;
    border-color:#7A2528;
    color:#7A2528;
}

.homework-calendar-lesson.assigned{
    background:#E8F7E9;
    border-color:#2E9D52;
    color:#1F7F3D;
}

.homework-calendar-lesson.rescheduled{
    box-shadow:inset 0 0 0 2px rgba(8,114,175,.18), 0 8px 18px rgba(8,114,175,.08);
}

.student-card form.preparation-calendar-lesson{
    max-width:none;
}

.preparation-calendar-lesson{
    cursor:pointer;
}

.homework-calendar-lesson b{
    display:inline-flex;
    margin-bottom:5px;
    padding:3px 7px;
    border-radius:999px;
    background:white;
    color:#0872AF;
    font-size:11px;
    line-height:1.2;
}

.homework-calendar-lesson strong,
.homework-calendar-lesson small{
    display:block;
}

.homework-calendar-lesson strong{
    font-size:13px;
    line-height:1.25;
    margin-bottom:4px;
}

.homework-calendar-lesson small{
    font-size:11px;
    font-weight:800;
}

.homework-lesson-actions{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:6px;
    margin-top:7px;
    align-items:center;
}

.homework-lesson-actions a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    padding:4px 8px;
    border-radius:8px;
    background:white;
    color:#7A2528;
    text-decoration:none;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
}

.homework-lesson-actions form{
    margin:0;
    max-width:none;
}

.homework-lesson-actions label{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    color:inherit;
    font-size:10px;
    font-weight:800;
    cursor:pointer;
    min-width:0;
    white-space:nowrap;
}

.homework-lesson-actions input{
    width:13px;
    height:13px;
    flex:0 0 auto;
}

.homework-lesson-actions span{
    overflow:hidden;
    text-overflow:ellipsis;
}

.lesson-plan-summary{
    max-width:none;
    margin-bottom:24px;
    display:grid;
    grid-template-columns:220px 1fr 80px;
    gap:22px;
    align-items:center;
}

.lesson-plan-summary h2{
    color:#2E2A28;
    margin-bottom:8px;
}

.lesson-plan-summary p{
    color:#777;
    font-weight:700;
}

.plan-progress{
    height:16px;
    border-radius:999px;
    background:#F7F2EA;
    overflow:hidden;
}

.plan-progress div{
    height:100%;
    border-radius:999px;
    background:#7A2528;
}

.student-profile-card{
    margin-bottom:34px;
    padding:24px 28px;
}

.student-profile-card .student-header{
    margin-bottom:18px;
}

.student-profile-card .student-name{
    font-size:26px;
    margin-bottom:6px;
}

.student-profile-card .student-subtitle{
    font-size:15px;
}

.profile-mini-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}

.profile-mini-grid div{
    background:#F7F2EA;
    border-radius:14px;
    padding:14px 16px;
}

.profile-mini-grid span,
.profile-mini-grid strong{
    display:block;
}

.profile-mini-grid span{
    color:#888;
    font-size:13px;
    margin-bottom:6px;
}

.profile-mini-grid strong{
    color:#2E2A28;
    font-size:18px;
}

.student-cabinet-layout{
    display:grid;
    grid-template-columns:minmax(520px,1.35fr) minmax(300px,.65fr);
    gap:24px;
    align-items:start;
}

.student-info-column{
    display:grid;
    gap:20px;
}

.student-cabinet-layout .student-profile-card{
    margin-bottom:0;
}

.student-cabinet-layout .profile-mini-grid{
    grid-template-columns:1fr;
}

.student-homework-alert{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    max-width:none;
    margin-bottom:22px;
    padding:22px 26px;
    border:1px solid #EFE6D7;
    background:#FFF6DF;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 18px 42px rgba(122,37,40,.08);
}

.student-homework-alert span,
.student-homework-alert small{
    display:block;
    color:#777;
    font-weight:800;
}

.student-homework-alert strong{
    display:block;
    margin:8px 0 6px;
    color:#7A2528;
    font-size:28px;
    line-height:1.15;
}

.student-homework-alert b{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:10px 22px;
    border-radius:14px;
    background:#7A2528;
    color:white;
    white-space:nowrap;
}

.student-zoom-strip{
    display:flex;
    align-items:center;
    justify-content:center;
    max-width:none;
    margin-bottom:22px;
    padding:22px 26px;
    border-radius:24px;
    background:#7A2528;
    color:white;
    text-decoration:none;
    box-shadow:0 18px 42px rgba(122,37,40,.16);
    transition:.2s;
}

.student-zoom-strip:hover{
    background:#5d1b1d;
    transform:translateY(-2px);
}

.student-zoom-strip span{
    font-size:24px;
    font-weight:900;
    line-height:1.2;
    text-align:center;
}

.student-plan-strip{
    display:grid;
    grid-template-columns:minmax(220px,auto) 1fr auto;
    gap:20px;
    align-items:center;
    max-width:none;
    margin-bottom:22px;
    padding:18px 24px;
    border:1px solid #EFE6D7;
    color:#2E2A28;
    text-decoration:none;
}

.student-plan-strip span,
.student-plan-strip strong{
    display:block;
}

.student-plan-strip span{
    color:#777;
    font-weight:800;
    margin-bottom:5px;
}

.student-plan-strip strong{
    color:#2E2A28;
    font-size:18px;
}

.student-plan-strip b{
    color:#7A2528;
    font-size:28px;
}

.student-plan-strip-progress{
    height:12px;
    border-radius:999px;
    background:#F7F2EA;
    overflow:hidden;
}

.student-plan-strip-progress div{
    height:100%;
    border-radius:999px;
    background:#7A2528;
}

.student-schedule-card{
    max-width:none;
    padding:26px 30px;
    border:1px solid #EFE6D7;
}

.student-schedule-list{
    display:grid;
    gap:12px;
}

.student-schedule-item{
    display:grid;
    grid-template-columns:82px 1fr auto;
    gap:16px;
    align-items:center;
    padding:16px 18px;
    border-radius:16px;
    background:#F7F2EA;
    border-left:4px solid #7A2528;
}

.student-schedule-item.rescheduled{
    background:#E3F1FF;
    border-left-color:#1686C7;
}

.student-schedule-date{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:58px;
    border-radius:14px;
    background:white;
}

.student-schedule-date strong{
    color:#7A2528;
    font-size:22px;
    line-height:1;
}

.student-schedule-date span{
    margin-top:4px;
    color:#777;
    font-weight:800;
}

.student-schedule-item div:nth-child(2) strong,
.student-schedule-item div:nth-child(2) span,
.student-schedule-item div:nth-child(2) small{
    display:block;
}

.student-schedule-item div:nth-child(2) strong{
    color:#2E2A28;
    font-size:18px;
    margin-bottom:5px;
}

.student-schedule-item div:nth-child(2) span{
    color:#7A2528;
    font-weight:800;
}

.student-schedule-item div:nth-child(2) small{
    margin-top:4px;
    color:#777;
    font-weight:700;
}

.student-schedule-item > b{
    padding:7px 11px;
    border-radius:999px;
    background:white;
    color:#0872AF;
    font-size:13px;
    white-space:nowrap;
}

.student-cabinet-sidebar{
    width:290px;
    padding:42px 28px;
    border-right:1px solid #EFE6D7;
    box-shadow:14px 0 34px rgba(122,37,40,.05);
}

.student-cabinet-sidebar .logo{
    margin-bottom:54px;
    font-size:28px;
    letter-spacing:.02em;
}

.student-cabinet-sidebar .menu{
    display:grid;
    gap:14px;
}

.student-cabinet-sidebar .menu a{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    align-items:center;
    gap:14px;
    margin-bottom:0;
    padding:18px 22px;
    border-radius:14px;
    font-size:17px;
    color:#2E2A28;
    background:transparent;
}

.student-cabinet-sidebar .menu .menu-badge-link{
    grid-template-columns:44px minmax(0,1fr) auto;
}

.student-cabinet-sidebar .menu a > span:not(.sidebar-menu-icon){
    display:block;
    min-width:0;
    line-height:1.25;
}

.sidebar-menu-icon{
    width:44px;
    height:38px;
    display:block;
    position:relative;
    border-radius:12px;
    color:#1F1E1D;
    background:transparent;
    transition:.25s;
}

.sidebar-menu-icon::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:12px;
    background:transparent;
    transition:.25s;
}

.sidebar-menu-icon::before{
    content:"";
    width:24px;
    height:24px;
    display:block;
    position:absolute;
    left:10px;
    top:50%;
    z-index:1;
    transform:translate(var(--icon-x,0),-50%);
    background:currentColor;
    -webkit-mask:var(--sidebar-icon) center / contain no-repeat;
    mask:var(--sidebar-icon) center / contain no-repeat;
}

.sidebar-menu-icon.icon-home{
    --icon-x:0;
}

.sidebar-menu-icon.icon-calendar{
    --icon-x:0;
}

.sidebar-menu-icon.icon-chat{
    --icon-x:1px;
}

.sidebar-menu-icon.icon-homework{
    --icon-x:-1px;
}

.sidebar-menu-icon.icon-materials{
    --icon-x:0;
}

.sidebar-menu-icon.icon-training{
    --icon-x:-1px;
}

.sidebar-menu-icon.icon-logout{
    --icon-x:-1px;
}

.student-cabinet-sidebar .menu a:hover,
.student-cabinet-sidebar .menu a.active{
    background:#F7F2EA;
    color:#2E2A28;
    box-shadow:inset 0 0 0 1px #EFE6D7;
}

.student-cabinet-sidebar .menu a.active{
    color:#7A2528;
}

.student-cabinet-sidebar .menu a:hover .sidebar-menu-icon,
.student-cabinet-sidebar .menu a.active .sidebar-menu-icon{
    color:#B88B2E;
}

.student-cabinet-sidebar .menu a:hover .sidebar-menu-icon::after,
.student-cabinet-sidebar .menu a.active .sidebar-menu-icon::after{
    background:#FBF5E8;
}

.student-cabinet-sidebar .menu-badge-link:hover b,
.student-cabinet-sidebar .menu-badge-link.active b{
    background:#7A2528;
    color:white;
}

.student-dashboard{
    max-width:1280px;
}

.student-dashboard-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-bottom:30px;
}

.student-dashboard-top h1{
    color:#1F1E1D;
    font-size:44px;
    line-height:1.12;
}

.student-dashboard-role{
    display:flex;
    align-items:center;
    gap:16px;
    color:#7A2528;
    font-weight:800;
    font-size:18px;
}

.student-dashboard-role b{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    border:1px solid #D8C094;
    background:#FFFDF8;
    color:#B88B2E;
    box-shadow:0 12px 26px rgba(122,37,40,.08);
}

.student-next-lesson-card,
.student-dashboard-notice,
.student-dashboard-stat-card,
.student-dashboard-week-card,
.student-dashboard-schedule,
.student-dashboard-quick-links a{
    border:1px solid #EFE6D7;
    background:rgba(255,255,255,.88);
    box-shadow:0 18px 44px rgba(122,37,40,.08);
}

.student-next-lesson-card{
    display:grid;
    grid-template-columns:82px minmax(0,1fr) minmax(280px,420px);
    align-items:center;
    gap:28px;
    padding:36px 40px;
    margin-bottom:22px;
    border-radius:22px;
}

.student-dashboard-icon{
    width:70px;
    height:70px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#FBF5E8;
    border:1px solid #DFC799;
    color:#B88B2E;
    font-size:30px;
}

.student-dashboard-icon.small{
    width:62px;
    height:62px;
    font-size:30px;
}

.student-next-lesson-info span,
.student-dashboard-stat-card span,
.student-dashboard-week-card > span,
.student-dashboard-notice span{
    display:block;
    color:#B88B2E;
    font-size:13px;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.student-next-lesson-info strong{
    display:block;
    margin:10px 0 8px;
    color:#1F1E1D;
    font-size:25px;
    line-height:1.2;
}

.student-next-lesson-info p,
.student-next-lesson-info small,
.student-dashboard-notice small{
    display:block;
    color:#777;
    font-size:16px;
    font-weight:700;
    line-height:1.45;
}

.student-next-lesson-info small{
    margin-top:4px;
}

.student-next-lesson-button{
    min-height:70px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    padding:16px 24px;
    border-radius:12px;
    background:#7A2528;
    color:white;
    text-decoration:none;
    font-size:18px;
    font-weight:800;
    box-shadow:0 16px 34px rgba(122,37,40,.2);
    transition:.2s;
}

.student-next-lesson-button:hover{
    background:#5d1b1d;
    transform:translateY(-2px);
}

.student-next-lesson-button span{
    font-size:28px;
    line-height:1;
}

.student-dashboard-notice{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-bottom:22px;
    padding:24px 30px;
    border-radius:20px;
    background:#FFF6DF;
    text-decoration:none;
}

.student-dashboard-notice strong{
    display:block;
    margin:8px 0 4px;
    color:#7A2528;
    font-size:26px;
    line-height:1.18;
}

.student-dashboard-notice b{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    padding:12px 28px;
    border-radius:13px;
    background:#7A2528;
    color:white;
}

.student-dashboard-stats{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(340px,.62fr);
    gap:22px;
    margin-bottom:26px;
}

.student-dashboard-stat-card{
    display:grid;
    grid-template-columns:76px minmax(0,1fr) auto;
    align-items:center;
    gap:20px;
    min-height:118px;
    padding:24px 28px;
    border-radius:20px;
    text-decoration:none;
    color:#2E2A28;
}

.student-dashboard-progress-info strong{
    display:block;
    margin:9px 0 12px;
    color:#2E2A28;
    font-size:18px;
}

.student-dashboard-progress{
    height:7px;
    border-radius:999px;
    background:#EFE6D7;
    overflow:hidden;
}

.student-dashboard-progress div{
    height:100%;
    border-radius:999px;
    background:#B88B2E;
}

.student-dashboard-stat-card > b{
    color:#B88B2E;
    font-size:28px;
}

.student-dashboard-week-card{
    min-height:118px;
    padding:24px 28px;
    border-radius:20px;
}

.student-week-metrics{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-top:18px;
}

.student-week-metrics div{
    display:grid;
    grid-template-columns:48px 1fr;
    column-gap:14px;
    align-items:center;
}

.student-week-metrics div + div{
    border-left:1px solid #EFE6D7;
    padding-left:18px;
}

.student-week-metrics i{
    grid-row:span 2;
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#F7F2EA;
    color:#7A2528;
    font-style:normal;
    font-weight:900;
}

.student-week-metrics strong{
    color:#1F1E1D;
    font-size:24px;
}

.student-week-metrics small{
    color:#777;
    font-size:14px;
    font-weight:700;
}

.student-dashboard-schedule{
    padding:0;
    border-radius:20px;
    overflow:hidden;
    margin-bottom:22px;
}

.student-dashboard-section-title{
    padding:26px 32px 14px;
}

.student-dashboard-section-title h2{
    color:#1F1E1D;
    font-size:26px;
    line-height:1.2;
}

.student-dashboard-section-title p{
    margin-top:6px;
    color:#888;
    font-size:16px;
    font-weight:600;
}

.student-dashboard-schedule .student-schedule-list{
    padding:0 30px 30px;
}

.student-dashboard-schedule .student-schedule-item{
    grid-template-columns:82px minmax(0,1fr) auto;
    padding:18px 22px;
    border-radius:14px;
    background:#FFFDF8;
    border:1px solid #EFE6D7;
    border-left:5px solid #B88B2E;
    box-shadow:none;
}

.student-dashboard-schedule .student-schedule-item.rescheduled{
    background:#E3F1FF;
    border-left-color:#1686C7;
}

.student-dashboard-schedule .student-schedule-item div:nth-child(2) strong{
    font-size:20px;
}

.student-dashboard-schedule .student-schedule-item div:nth-child(2) span{
    margin-top:5px;
}

.student-dashboard-quick-links{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}

.student-dashboard-quick-links a{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    align-items:center;
    gap:16px;
    min-height:108px;
    padding:22px 24px;
    border-radius:18px;
    color:#2E2A28;
    text-decoration:none;
    transition:.2s;
}

.student-dashboard-quick-links a:hover{
    transform:translateY(-2px);
    box-shadow:0 22px 50px rgba(122,37,40,.12);
}

.student-dashboard-quick-links a > span{
    grid-row:span 2;
    width:58px;
    height:58px;
    display:block;
    position:relative;
    border-radius:50%;
    background:#FBF5E8;
    color:#B88B2E;
}

.student-dashboard-quick-links .quick-action-icon::before{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:28px;
    height:28px;
    transform:translate(-50%,-50%);
    background:currentColor;
    -webkit-mask:var(--quick-icon) center / contain no-repeat;
    mask:var(--quick-icon) center / contain no-repeat;
}

.student-dashboard-quick-links strong,
.student-dashboard-quick-links small{
    display:block;
}

.student-dashboard-quick-links strong{
    font-size:17px;
    line-height:1.2;
}

.student-dashboard-quick-links small{
    margin-top:5px;
    color:#777;
    font-size:13px;
    font-weight:600;
    line-height:1.35;
}

.student-dashboard-quick-links b{
    grid-column:3;
    grid-row:1 / span 2;
    color:#7A2528;
    font-size:30px;
    line-height:1;
}

.lesson-plan-student-card{
    margin-top:0;
    border:1px solid #EFE6D7;
    box-shadow:0 18px 42px rgba(122,37,40,.08);
}

.lesson-plan-student-card .student-header{
    margin-bottom:26px;
}

.student-plan-count{
    margin:16px 0 24px;
    color:#777;
    font-weight:700;
}

.student-plan-timeline{
    display:grid;
    gap:24px;
    margin-top:8px;
}

.student-plan-month h2{
    color:#7A2528;
    font-size:22px;
    margin-bottom:12px;
}

.student-plan-lessons{
    display:grid;
    gap:10px;
}

.student-plan-lesson{
    display:grid;
    grid-template-columns:150px 1fr;
    gap:16px;
    padding:16px;
    border-radius:16px;
    background:#F7F2EA;
    border:1px solid #EFE6D7;
}

.student-plan-lesson.done{
    background:#F4FAF5;
    border-color:#D3ECD8;
}

.student-plan-date strong,
.student-plan-date span,
.student-plan-topic strong,
.student-plan-topic p{
    display:block;
}

.student-plan-date strong{
    color:#7A2528;
    font-size:18px;
    margin-bottom:8px;
}

.student-plan-date span{
    color:#777;
    font-size:13px;
    font-weight:800;
}
.student-plan-topic strong{
    color:#2E2A28;
    font-size:18px;
    line-height:1.35;
}

.student-plan-topic p{
    color:#777;
    font-weight:600;
    line-height:1.5;
    margin-top:8px;
}

.lesson-plan-add-form,
.student-card form.lesson-plan-add-form{
    display:grid;
    grid-template-columns:170px 180px minmax(260px,1fr) 110px auto;
    gap:16px;
    align-items:end;
    max-width:none;
}

.lesson-plan-add-form .form-group{
    margin-bottom:0;
}

.lesson-plan-notes-field{
    grid-column:1 / -1;
}

.lesson-month-block{
    margin-bottom:34px;
}

.lesson-month-block h2{
    color:#7A2528;
    margin-bottom:16px;
}

.lesson-plan-list{
    display:grid;
    gap:16px;
}

.lesson-plan-item{
    max-width:none;
    padding:22px;
    position:relative;
}

.lesson-plan-item.done{
    background:#F4FAF5;
    border:1px solid #D3ECD8;
}

.lesson-plan-row{
    display:grid;
    grid-template-columns:180px minmax(260px,1fr) 170px;
    gap:22px;
    align-items:center;
}

.lesson-plan-row-date,
.lesson-plan-row-topic{
    display:grid;
    gap:6px;
}

.lesson-plan-row-date span,
.lesson-plan-row-topic span{
    color:#888;
    font-size:15px;
    font-weight:700;
}

.lesson-plan-row-date strong,
.lesson-plan-row-topic strong{
    color:#2E2A28;
    font-size:22px;
    line-height:1.25;
}

.lesson-plan-item-grid{
    display:grid;
    grid-template-columns:120px 150px 170px minmax(220px,1fr) 100px auto;
    gap:14px;
    align-items:end;
}

.lesson-plan-item-grid .form-group{
    margin-bottom:0;
}

.plan-check{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:52px;
    font-weight:800;
    color:#2E2A28;
}

.plan-check input{
    width:20px;
    height:20px;
}

.lesson-plan-actions{
    display:flex;
    align-items:end;
}

.lesson-plan-program-form{
    margin-bottom:22px;
}

.lesson-plan-program-select{
    grid-column:span 2;
}

.lesson-plan-empty-program{
    background:#fff;
    border:1px solid #E6DED2;
    border-radius:18px;
    color:#777;
    font-weight:700;
    margin-bottom:22px;
    padding:18px 20px;
}

.form-divider{
    width:100%;
    height:1px;
    background:#E6DED2;
    margin:8px 0 22px;
}

.work-program-tabs{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:16px;
    margin-bottom:24px;
}

.work-program-tabs a{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:22px 24px;
    border-radius:18px;
    background:white;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 18px 35px rgba(0,0,0,.06);
}

.work-program-tabs a.active{
    background:#7A2528;
    color:white;
}

.work-program-tabs span{
    color:#777;
    font-size:14px;
    font-weight:800;
}

.work-program-tabs a.active span{
    color:#F7F2EA;
}

.work-program-tabs strong{
    font-size:22px;
    line-height:1.2;
}

.work-program-add-form,
.student-card form.work-program-add-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) 130px;
    gap:16px;
    max-width:none;
}

.work-program-description-field{
    grid-column:1 / -1;
}

.work-program-list{
    display:grid;
    gap:14px;
}

.work-program-item{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:14px;
    align-items:end;
}

.work-program-edit-form,
.student-card form.work-program-edit-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) 110px auto;
    gap:14px;
    max-width:none;
    align-items:end;
}

.work-program-edit-form .form-group{
    margin-bottom:0;
}

.delete-plan-form,
.student-card form.delete-plan-form{
    max-width:none;
    margin-top:12px;
    display:flex;
    justify-content:flex-end;
}

.plan-percent{
    color:#7A2528;
    font-size:28px;
}

.student-plan-preview{
    display:grid;
    gap:12px;
}

.student-plan-preview div{
    padding:16px;
    border-radius:14px;
    background:#F7F2EA;
}

.student-plan-preview strong,
.student-plan-preview span{
    display:block;
}

.student-plan-preview span{
    color:#777;
    margin-top:6px;
    font-weight:700;
}

.inline-form,
.student-card form.inline-form{
    display:grid;
    grid-template-columns:1fr 240px auto;
    gap:16px;
    align-items:end;
    max-width:none;
}

.inline-form .form-group{
    margin-bottom:0;
}

.teacher-dashboard-stats{
    display:grid;
    grid-template-columns:280px minmax(320px,1fr);
    gap:22px;
    margin-bottom:28px;
}

.teacher-students-mini-card,
.teacher-income-widget,
.teacher-schedule-card{
    max-width:none;
}

.teacher-students-mini-card{
    padding:22px 24px;
    border:1px solid #EFE6D7;
}

.teacher-students-mini-card h2,
.teacher-schedule-card h2{
    color:#2E2A28;
    margin-bottom:14px;
}

.teacher-students-total{
    color:#7A2528;
    font-size:46px;
    line-height:1;
    font-weight:800;
    margin-bottom:14px;
}

.teacher-students-breakdown{
    display:grid;
    gap:8px;
    color:#777;
    font-weight:700;
}

.teacher-students-breakdown strong{
    color:#2E2A28;
}

.teacher-income-mini-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    width:100%;
    max-width:none;
    min-height:0;
    margin-bottom:26px;
    padding:18px 24px;
    border:1px solid #EFE6D7;
    background:#FFF6DF;
    color:#2E2A28;
    text-decoration:none;
    transition:.2s;
}

.teacher-income-mini-card:hover{
    transform:translateY(-2px);
    border-color:#7A2528;
}

.teacher-income-mini-card span,
.teacher-income-mini-card small{
    color:#777;
    font-weight:800;
}

.teacher-income-mini-card span{
    font-size:18px;
}

.teacher-income-mini-card strong{
    display:block;
    margin-left:auto;
    color:#7A2528;
    font-size:34px;
    line-height:1;
    white-space:nowrap;
}

.teacher-income-mini-card small{
    font-size:14px;
    margin-right:auto;
}

.teacher-income-widget{
    display:grid;
    grid-template-columns:190px minmax(260px,1fr);
    grid-template-rows:auto 1fr;
    gap:12px;
    padding:18px;
    border-radius:24px;
    background:#C7FF45;
    color:#171717;
    box-shadow:0 18px 42px rgba(119,160,26,.18);
}

.teacher-income-switch{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    padding:6px;
    border-radius:18px;
    background:rgba(255,255,255,.35);
}

.teacher-income-switch div{
    padding:12px 10px;
    border-radius:14px;
    text-align:center;
    font-weight:800;
}

.teacher-income-switch .active{
    background:#1F1F1F;
    color:white;
}

.teacher-income-period{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:86px;
    padding:16px;
    border-radius:26px;
    background:rgba(255,255,255,.28);
}

.teacher-income-period a{
    color:#171717;
    font-size:34px;
    line-height:1;
    text-decoration:none;
    font-weight:700;
}

.teacher-income-period strong{
    text-align:center;
    font-size:22px;
    line-height:1.15;
}

.teacher-income-main{
    grid-row:1 / 3;
    grid-column:2;
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:20px;
    padding:24px 28px;
    border-radius:24px 24px 52px 24px;
    background:rgba(255,255,255,.2);
}

.teacher-income-main div{
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.teacher-income-main span,
.teacher-income-month span{
    display:block;
    color:#1F1F1F;
    font-size:20px;
    line-height:1.2;
    font-weight:700;
}

.teacher-income-main strong{
    display:block;
    margin-top:18px;
    color:#171717;
    font-size:42px;
    line-height:1;
}

.teacher-income-main small,
.teacher-income-month small{
    display:block;
    margin-top:10px;
    color:#4A4A4A;
    font-size:14px;
    font-weight:800;
}

.teacher-income-month{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 18px;
    border-radius:18px;
    background:rgba(255,255,255,.42);
}

.teacher-income-month strong{
    color:#7A2528;
    font-size:28px;
    line-height:1;
    white-space:nowrap;
}

.teacher-income-month div{
    text-align:right;
}

.teacher-dashboard-actions{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
    margin-bottom:28px;
}

.teacher-dashboard-actions .button{
    width:100%;
}

.income-year-toolbar{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    margin-bottom:24px;
}

.income-year-toolbar strong{
    color:#2E2A28;
    font-size:30px;
}

.income-month-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:16px;
    margin-bottom:24px;
}

.income-month-card{
    display:block;
    padding:18px 20px;
    border-radius:18px;
    background:white;
    border:2px solid transparent;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 12px 28px rgba(0,0,0,.05);
    transition:.2s;
}

.income-month-card:hover,
.income-month-card.active{
    border-color:#7A2528;
    background:#FFF6DF;
    transform:translateY(-2px);
}

.income-month-card strong,
.income-month-card span{
    display:block;
}

.income-month-card strong{
    margin-bottom:10px;
    font-size:18px;
}

.income-month-card span{
    color:#7A2528;
    font-size:22px;
    font-weight:800;
}

.income-detail-card{
    max-width:none;
    margin-bottom:24px;
    padding:28px 32px;
}

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

.income-detail-header h2{
    color:#2E2A28;
    font-size:30px;
}

.income-detail-header p{
    margin-top:8px;
    color:#777;
    font-weight:700;
}

.income-detail-header > strong{
    color:#7A2528;
    font-size:42px;
    line-height:1;
    white-space:nowrap;
}

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

.income-breakdown-grid div{
    padding:18px;
    border-radius:16px;
    background:#F7F2EA;
}

.income-breakdown-grid span,
.income-breakdown-grid small{
    display:block;
    color:#777;
    font-weight:800;
}

.income-breakdown-grid strong{
    display:block;
    margin:12px 0 8px;
    color:#7A2528;
    font-size:28px;
    line-height:1;
}

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

.income-list-card{
    max-width:none;
    padding:26px 28px;
}

.income-list-card h2{
    color:#2E2A28;
    margin-bottom:18px;
}

.income-list{
    display:grid;
    gap:12px;
}

.income-list-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:14px 16px;
    border-radius:14px;
    background:#F7F2EA;
}

.income-list-row strong,
.income-list-row span{
    display:block;
}

.income-list-row span{
    margin-top:6px;
    color:#777;
    font-size:14px;
    font-weight:700;
}

.income-list-row b{
    color:#7A2528;
    font-size:20px;
    white-space:nowrap;
}

.teacher-schedule-card{
    margin-bottom:24px;
    padding:28px 32px;
}

.teacher-schedule-form,
.student-card form.teacher-schedule-form{
    display:grid;
    grid-template-columns:minmax(260px,1fr) 170px 130px 110px 140px auto;
    gap:16px;
    align-items:end;
    max-width:none;
}

.teacher-schedule-form .form-group,
.teacher-schedule-edit-form .form-group{
    margin-bottom:0;
}

.teacher-schedule-note{
    grid-column:1 / -1;
}

.teacher-schedule-list{
    display:grid;
    gap:16px;
}

.teacher-schedule-item{
    padding:18px;
    border-radius:16px;
    background:#F7F2EA;
    border:1px solid #EFE6D7;
}

.teacher-schedule-item.canceled{
    background:#F5ECEC;
    border-color:#E5C7C7;
}

.teacher-schedule-edit-form,
.student-card form.teacher-schedule-edit-form{
    display:grid;
    grid-template-columns:minmax(220px,1fr) 155px 120px 100px 130px 120px auto;
    gap:12px;
    align-items:end;
    max-width:none;
}

.teacher-schedule-status{
    min-height:52px;
    display:flex;
    align-items:center;
}

.teacher-schedule-status span{
    display:inline-flex;
    padding:8px 10px;
    border-radius:10px;
    background:white;
    color:#7A2528;
    font-size:13px;
    font-weight:800;
}

.teacher-schedule-actions{
    display:flex;
    align-items:end;
}

.teacher-cancel-form,
.student-card form.teacher-cancel-form{
    max-width:none;
    margin-top:12px;
    display:flex;
    justify-content:flex-end;
}

.teacher-calendar-card{
    max-width:none;
    padding:20px 34px 26px 24px;
    margin-bottom:24px;
}

.teacher-calendar-toolbar{
    display:grid;
    grid-template-columns:1fr auto;
    gap:18px;
    align-items:center;
    margin-bottom:18px;
}

.teacher-calendar-period{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
    color:#2E2A28;
    font-size:22px;
}

.calendar-arrow{
    width:36px;
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#7A2528;
    background:#F7F2EA;
    text-decoration:none;
    font-size:30px;
    line-height:1;
}

.teacher-calendar-days{
    display:grid;
    grid-template-columns:68px repeat(7,minmax(118px,1fr));
    border-bottom:1px solid #E6DED2;
}

.teacher-calendar-days div{
    min-height:62px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    color:#2E2A28;
}

.teacher-calendar-days strong,
.teacher-calendar-days span{
    display:block;
}

.teacher-calendar-days strong{
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    font-size:20px;
}

.teacher-calendar-days span{
    margin-top:2px;
    font-size:15px;
    font-weight:800;
}

.teacher-calendar-days .today strong{
    background:#7A2528;
    color:white;
}

.teacher-calendar-grid{
    display:grid;
    grid-template-columns:68px repeat(7,minmax(118px,1fr));
    overflow:auto;
}

.teacher-calendar-time{
    min-height:96px;
    display:flex;
    align-items:flex-start;
    justify-content:flex-end;
    padding:10px 12px 0 0;
    color:#999;
    font-weight:800;
    font-size:14px;
    border-right:2px solid #2E2A28;
    border-bottom:1px solid #E6DED2;
}

.teacher-calendar-cell{
    min-height:96px;
    padding:5px;
    border:0;
    border-right:1px solid #EFE6D7;
    border-bottom:1px solid #E6DED2;
    background:white;
    cursor:pointer;
    text-align:left;
    position:relative;
    transition:.15s;
}

.teacher-calendar-cell:hover{
    background:#FFF6DF;
}

.teacher-calendar-cell.drag-over{
    background:#FFF0C2;
    outline:2px solid #7A2528;
    outline-offset:-2px;
}

.teacher-calendar-lesson{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    width:calc(100% - 10px);
    position:absolute;
    left:5px;
    z-index:1;
    overflow:hidden;
    padding:8px 9px;
    border-left:3px solid #7A2528;
    border-radius:10px;
    background:#F0DFF7;
    color:#5C0FB0;
    box-shadow:0 8px 18px rgba(122,37,40,.08);
    cursor:grab;
    user-select:none;
}

.teacher-calendar-lesson.dragging{
    opacity:.62;
    cursor:grabbing;
}

.teacher-calendar-lesson strong,
.teacher-calendar-lesson small,
.teacher-calendar-lesson em{
    display:block;
}

.teacher-calendar-lesson strong{
    font-size:14px;
    line-height:1.25;
    margin-bottom:7px;
}

.teacher-calendar-lesson small{
    font-size:12px;
    font-weight:800;
}

.teacher-calendar-lesson em{
    margin-top:4px;
    color:#7A2528;
    font-style:normal;
    font-weight:800;
    font-size:12px;
}

.teacher-calendar-lesson.color-purple{
    background:#F0DFF7;
    border-color:#7A2528;
    color:#5C0FB0;
}

.teacher-calendar-lesson.color-blue{
    background:#E3F1FF;
    border-color:#1686C7;
    color:#0872AF;
}

.teacher-calendar-lesson.color-green{
    background:#E7F6EA;
    border-color:#2E9D52;
    color:#1F7F3D;
}

.teacher-calendar-lesson.color-yellow{
    background:#FFF4C7;
    border-color:#D39B18;
    color:#8A6100;
}

.teacher-calendar-lesson.color-pink{
    background:#FFE6F0;
    border-color:#D83B77;
    color:#B51F5D;
}

.teacher-calendar-lesson.color-gray{
    background:#F1F1F1;
    border-color:#999;
    color:#777;
}

.teacher-calendar-lesson.rescheduled{
    background:#DDEEFF;
    border-color:#0872AF;
    color:#075C90;
}

.teacher-calendar-lesson.canceled{
    background:#F1F1F1;
    border-color:#999;
    color:#888;
    text-decoration:line-through;
    z-index:0;
}

.teacher-calendar-lesson-badge{
    display:block;
    width:max-content;
    max-width:100%;
    margin-bottom:5px;
    padding:3px 7px;
    border-radius:999px;
    background:white;
    color:#0872AF;
    font-size:11px;
    line-height:1.2;
}

.schedule-modal{
    position:fixed;
    inset:0;
    z-index:50;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(46,42,40,.42);
}

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

.schedule-modal-panel{
    width:min(760px,100%);
    max-height:90vh;
    overflow:auto;
    padding:30px;
    border-radius:18px;
    background:white;
    box-shadow:0 24px 70px rgba(0,0,0,.25);
}

.schedule-modal-form,
.student-card form.schedule-modal-form{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    max-width:none;
}

.schedule-modal-form .form-group{
    margin-bottom:0;
}

.schedule-target-type{
    grid-column:1 / -1;
}

.schedule-choice-grid{
    margin-bottom:0;
}
#scheduleGroupField{
    display:none;
}

.schedule-modal-note{
    grid-column:1 / -1;
}

.schedule-modal-form .button{
    justify-self:start;
}

.schedule-modal-cancel-form,
.student-card form.schedule-modal-cancel-form,
.schedule-modal-delete-form,
.student-card form.schedule-modal-delete-form{
    max-width:none;
    margin-top:14px;
    display:none;
    justify-content:flex-end;
}

.schedule-modal-delete-form{
    margin-top:10px;
    gap:12px;
    flex-wrap:wrap;
}

.materials-category-grid,
.materials-page-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:20px;
    margin-bottom:28px;
}

.materials-category-card,
.materials-page-card{
    display:grid;
    gap:10px;
    color:#2E2A28;
    text-decoration:none;
}

.materials-category-card span,
.materials-page-card span,
.material-item-card span{
    color:#777;
    font-size:15px;
    font-weight:800;
}

.materials-category-card strong,
.materials-page-card strong{
    color:#2E2A28;
    font-size:28px;
    line-height:1.15;
}

.materials-category-card small,
.materials-page-card small,
.material-item-card small{
    color:#777;
    font-size:15px;
    font-weight:700;
    line-height:1.35;
}

.materials-page-card.active{
    background:#FFF6D9;
    border:1px solid #E9D18A;
}

.chat-room-tabs{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:22px;
}

.chat-room-tabs a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:10px 18px;
    border-radius:14px;
    background:#F7F2EA;
    color:#2E2A28;
    font-weight:900;
    text-decoration:none;
}

.chat-room-tabs a.active{
    background:#7A2528;
    color:white;
}

.materials-page-card > a{
    display:grid;
    gap:10px;
    color:inherit;
    text-decoration:none;
}

.materials-page-card form{
    margin-top:14px;
}

.materials-page-form,
.student-card form.materials-page-form{
    display:grid;
    grid-template-columns:minmax(260px,1fr) 160px auto;
    gap:16px;
    align-items:end;
    max-width:none;
}

.materials-wide-field{
    grid-column:1 / -1;
}

.materials-add-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.materials-add-form,
.student-card form.materials-add-form{
    background:#F8F3EA;
    border-radius:22px;
    display:grid;
    gap:14px;
    margin:0;
    max-width:none;
    padding:22px;
}

.materials-add-form h3{
    color:#7A2528;
    font-size:24px;
    margin:0;
}

.materials-list{
    display:grid;
    gap:16px;
}

.material-item-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.material-item-card > div:first-child{
    display:grid;
    gap:8px;
}

.material-item-card strong{
    color:#2E2A28;
    font-size:24px;
    line-height:1.2;
}

.material-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex-wrap:wrap;
}

.material-actions form{
    margin:0;
}

.materials-student-header{
    margin-top:8px;
}

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

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

    .student-next-lesson-card{
        grid-template-columns:70px minmax(0,1fr);
    }

    .student-next-lesson-button{
        grid-column:1 / -1;
    }

    .student-dashboard-stats,
    .student-dashboard-quick-links{
        grid-template-columns:1fr;
    }

    .student-cabinet-layout .profile-mini-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .teacher-dashboard-stats,
    .teacher-dashboard-actions,
    .teacher-schedule-form,
    .student-card form.teacher-schedule-form,
    .teacher-schedule-edit-form,
    .student-card form.teacher-schedule-edit-form{
        grid-template-columns:1fr;
    }

    .teacher-calendar-toolbar{
        grid-template-columns:1fr;
    }

    .teacher-calendar-period{
        justify-content:flex-start;
    }

    .teacher-income-widget{
        grid-template-columns:1fr;
    }

    .teacher-income-main{
        grid-row:auto;
        grid-column:auto;
    }

    .teacher-income-month{
        grid-column:auto;
    }

    .income-breakdown-grid,
    .income-columns{
        grid-template-columns:1fr;
    }
}

@media(max-width:900px){
    .choice-grid,
    .inline-form,
    .group-create-form,
    .student-card form.group-create-form,
    .group-edit-form,
    .student-card form.group-edit-form{
        grid-template-columns:1fr;
    }

    .group-card-header,
    .student-list-row{
        flex-direction:column;
        align-items:flex-start;
    }

    .group-actions{
        justify-content:flex-start;
    }

    .lesson-plan-summary,
    .lesson-plan-add-form,
    .student-card form.lesson-plan-add-form,
    .lesson-plan-row,
    .lesson-plan-item-grid,
    .work-program-add-form,
    .student-card form.work-program-add-form,
    .work-program-item,
    .work-program-edit-form,
    .student-card form.work-program-edit-form,
    .dashboard-grid,
    .teacher-dashboard-actions,
    .student-plan-lesson,
    .profile-mini-grid,
    .students-page-counter,
    .student-track-card,
    .student-track-controls{
        grid-template-columns:1fr;
    }

    .lesson-plan-program-select,
    .work-program-description-field{
        grid-column:auto;
    }

    .dashboard-box{
        min-height:auto;
    }

    .dashboard-actions .button{
        width:100%;
    }

    .student-detail-card{
        padding:22px;
    }

    .student-detail-card .student-header{
        flex-direction:column;
        align-items:flex-start;
        gap:14px;
    }

    .student-detail-card .info-grid{
        grid-template-columns:1fr;
    }

    .student-tracks-info-box{
        grid-column:auto;
    }

    .student-cabinet-layout .profile-mini-grid{
        grid-template-columns:1fr;
    }

    .student-dashboard-top,
    .student-homework-alert,
    .student-dashboard-notice,
    .student-plan-strip,
    .student-schedule-item{
        grid-template-columns:1fr;
    }

    .student-dashboard-top{
        align-items:flex-start;
    }

    .student-dashboard-top h1{
        font-size:34px;
    }

    .student-next-lesson-card{
        grid-template-columns:1fr;
        padding:26px 22px;
    }

    .student-dashboard-stat-card{
        grid-template-columns:1fr;
        align-items:flex-start;
    }

    .student-dashboard-week-card{
        padding:22px;
    }

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

    .student-week-metrics div + div{
        border-left:0;
        border-top:1px solid #EFE6D7;
        padding-left:0;
        padding-top:16px;
    }

    .student-dashboard-notice{
        flex-direction:column;
        align-items:flex-start;
    }

    .student-dashboard-schedule .student-schedule-list{
        padding:0 18px 22px;
    }

    .student-dashboard-quick-links a{
        grid-template-columns:52px minmax(0,1fr) auto;
    }

    .student-homework-alert{
        flex-direction:column;
        align-items:flex-start;
    }

    .student-plan-strip{
        gap:14px;
    }

    .student-schedule-item{
        align-items:flex-start;
    }

    .student-schedule-date{
        width:82px;
    }

    .teacher-income-main{
        grid-template-columns:1fr;
        gap:14px;
        padding:20px;
    }

    .teacher-income-mini-card{
        flex-direction:column;
        align-items:flex-start;
    }

    .teacher-income-mini-card strong{
        margin-left:0;
    }

    .teacher-income-mini-card small{
        margin-right:0;
    }

    .teacher-income-main strong{
        font-size:34px;
    }

    .teacher-income-month{
        flex-direction:column;
        align-items:flex-start;
    }

    .teacher-income-month div{
        text-align:left;
    }

    .income-detail-header,
    .income-list-row{
        flex-direction:column;
        align-items:flex-start;
    }

    .income-detail-header > strong{
        white-space:normal;
    }

    .group-month-toolbar{
        flex-direction:column;
        align-items:flex-start;
    }

    .group-month-period{
        width:100%;
        min-width:0;
    }

    .teacher-calendar-card{
        padding:20px;
    }

    .teacher-calendar-days,
    .teacher-calendar-grid{
        grid-template-columns:58px repeat(7,132px);
    }

    .teacher-calendar-time,
    .teacher-calendar-cell{
        min-height:88px;
    }

    .schedule-modal-form,
    .student-card form.schedule-modal-form{
        grid-template-columns:1fr;
    }

    .schedule-modal-note{
        grid-column:auto;
    }

    .group-subscription-form,
    .student-card form.group-subscription-form{
        grid-template-columns:1fr;
    }

    .subscription-toggle{
        grid-column:auto;
    }

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

    .student-card form.chat-form{
        grid-template-columns:1fr;
    }

    .chat-message{
        width:100%;
    }

    .materials-page-form,
    .student-card form.materials-page-form,
    .materials-add-grid{
        grid-template-columns:1fr;
    }

    .material-item-card{
        align-items:flex-start;
        flex-direction:column;
    }

    .material-actions{
        justify-content:flex-start;
        width:100%;
    }

    .materials-wide-field{
        grid-column:auto;
    }
}

/* =========================================================
   ДОМАШНЕЕ ЗАДАНИЕ ИЗ БАНКА — ОБНОВЛЁННОЕ ОФОРМЛЕНИЕ
   ========================================================= */

.content{
    min-width:0;
}

.trainer-homework-page{
    width:100%;
    max-width:1240px;
}

.trainer-homework-page-card{
    max-width:none;
    padding:42px;
    border:1px solid #EFE6D7;
    box-shadow:0 22px 60px rgba(122,37,40,.09);
}

.trainer-homework-page-header{
    align-items:flex-start;
    gap:28px;
    margin-bottom:34px;
    padding-bottom:28px;
    border-bottom:1px solid #EFE6D7;
}

.trainer-homework-heading{
    min-width:0;
}

.trainer-homework-eyebrow{
    display:block;
    margin-bottom:10px;
    color:#B88B2E;
    font-size:13px;
    font-weight:900;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.trainer-homework-page-header .student-name{
    margin:0 0 10px;
    font-size:36px;
    line-height:1.15;
    overflow-wrap:anywhere;
}

.trainer-homework-page-header .student-subtitle{
    margin:0;
    color:#888;
    font-size:17px;
    font-weight:600;
    line-height:1.5;
}

.trainer-homework-back-button{
    flex:0 0 auto;
    min-width:124px;
    min-height:52px;
    padding:14px 24px;
}

.trainer-homework-feedback{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:6px;
    margin:0 0 30px;
    padding:20px 24px;
    border-radius:18px;
    font-size:17px;
    line-height:1.55;
}

.trainer-homework-feedback-title{
    font-size:19px;
}

.trainer-homework-explanation{
    flex-basis:100%;
    margin-top:10px;
    padding-top:12px;
    border-top:1px solid rgba(0,0,0,.08);
    font-weight:600;
}

.trainer-homework-summary{
    margin:0 0 34px;
    padding:28px;
    border-radius:22px;
    background:#FFF7E1;
    border:1px solid #E8D49F;
}

.trainer-homework-section-heading,
.trainer-homework-progress-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
}

.trainer-homework-section-heading{
    margin-bottom:20px;
}

.trainer-homework-section-heading > div > span,
.trainer-homework-progress-heading > div > span{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:13px;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.trainer-homework-section-heading h2,
.trainer-homework-progress-heading h2{
    margin:0;
    color:#7A2528;
    font-size:31px;
    line-height:1.15;
}

.trainer-homework-section-heading > b{
    flex:0 0 auto;
    padding:9px 13px;
    border-radius:999px;
    background:white;
    color:#7A2528;
    font-size:14px;
    white-space:nowrap;
}

.trainer-homework-summary-list{
    gap:12px;
}

.trainer-homework-summary-item{
    min-height:60px;
    align-items:center;
    padding:16px 18px;
    border:1px solid rgba(232,212,159,.55);
    border-radius:16px;
    font-size:16px;
    line-height:1.4;
}

.trainer-homework-summary-item strong{
    min-width:0;
}

.trainer-homework-summary-item span{
    flex:0 0 auto;
    padding-left:12px;
}

.trainer-homework-progress-section{
    margin:0;
    padding:0;
    border:0;
}

.trainer-homework-progress-heading{
    margin-bottom:16px;
}

.trainer-homework-progress-heading > strong{
    color:#7A2528;
    font-size:30px;
    line-height:1;
}

.trainer-homework-progress-track{
    width:100%;
    height:12px;
    margin-bottom:22px;
    overflow:hidden;
    border-radius:999px;
    background:#F1EBE2;
}

.trainer-homework-progress-track div{
    height:100%;
    border-radius:999px;
    background:#B88B2E;
    transition:width .3s ease;
}

.trainer-homework-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-bottom:32px;
}

.trainer-homework-stat-card{
    min-height:112px;
    padding:20px 22px;
    border:1px solid #EFE6D7;
    border-radius:18px;
    background:#FFFDF9;
}

.trainer-homework-stat-card span,
.trainer-homework-stat-card strong{
    display:block;
}

.trainer-homework-stat-card span{
    margin-bottom:12px;
    color:#888;
    font-size:14px;
    font-weight:800;
}

.trainer-homework-stat-card strong{
    color:#2E2A28;
    font-size:34px;
    line-height:1;
}

.trainer-homework-stat-card small{
    color:#888;
    font-size:15px;
    font-weight:800;
}

.trainer-homework-stat-correct{
    background:#F1FAF3;
    border-color:#D3ECD8;
}

.trainer-homework-stat-correct strong{
    color:#21753B;
}

.trainer-homework-stat-wrong{
    background:#FFF3F3;
    border-color:#F1D3D3;
}

.trainer-homework-stat-wrong strong{
    color:#A33232;
}

.trainer-homework-question-card{
    padding:30px;
    border:1px solid #E9DFD1;
    border-radius:22px;
    background:#F8F3EB;
}

.trainer-homework-question-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:24px;
    padding-bottom:20px;
    border-bottom:1px solid #E6DCCF;
}

.trainer-homework-question-heading span{
    flex:0 0 auto;
    padding:8px 11px;
    border-radius:999px;
    background:#7A2528;
    color:white;
    font-size:12px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.trainer-homework-question-heading strong{
    min-width:0;
    color:#2E2A28;
    font-size:20px;
    line-height:1.4;
    text-align:right;
}

.trainer-homework-question-text{
    padding:24px 26px;
    border:1px solid #EEE5D8;
    border-radius:18px;
    background:white;
    color:#2E2A28;
    font-size:18px;
    font-weight:500;
    line-height:1.78;
}

.student-card form.trainer-homework-answer-form{
    max-width:none;
    margin-top:26px;
}

.trainer-homework-answer-form .form-group{
    max-width:680px;
    margin-bottom:18px;
}

.trainer-homework-answer-form .form-control{
    min-height:56px;
    background:white;
    font-size:17px;
}

.trainer-homework-answer-form .button{
    min-height:52px;
    padding:14px 26px;
}

.trainer-homework-complete-card,
.trainer-homework-empty-card{
    margin-top:6px;
    padding:26px 28px;
    border-radius:20px;
}

.trainer-homework-complete-card{
    display:grid;
    grid-template-columns:64px minmax(0,1fr);
    align-items:center;
    gap:20px;
    border:1px solid #CFE8D5;
    background:#E7F7EB;
}

.trainer-homework-complete-icon{
    width:64px;
    height:64px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#21753B;
    color:white;
    font-size:32px;
    font-weight:900;
}

.trainer-homework-complete-card span,
.trainer-homework-complete-card strong{
    display:block;
}

.trainer-homework-complete-card span{
    margin-bottom:6px;
    color:#21753B;
    font-size:13px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.trainer-homework-complete-card strong{
    color:#185D2D;
    font-size:22px;
    line-height:1.3;
}

.trainer-homework-complete-card p{
    margin:8px 0 0;
    color:#42734E;
    font-size:16px;
    font-weight:650;
    line-height:1.55;
}

.trainer-homework-empty-card{
    border:1px solid #E8D49F;
    background:#FFF7E1;
}

.trainer-homework-empty-card strong{
    display:block;
    margin-bottom:8px;
    color:#7A2528;
    font-size:20px;
}

.trainer-homework-empty-card p{
    margin:0;
    color:#777;
    font-size:16px;
    font-weight:650;
    line-height:1.55;
}


/* =========================================================
   БОКОВОЕ МЕНЮ УЧЕНИКА — СЧЁТЧИКИ БЕЗ НАЛОЖЕНИЯ
   ========================================================= */

.student-cabinet-sidebar{
    width:320px;
    flex:0 0 320px;
    padding:42px 22px;
}

.student-cabinet-sidebar .menu{
    gap:10px;
}

.student-cabinet-sidebar .menu a{
    width:100%;
    min-width:0;
    grid-template-columns:40px minmax(0,1fr);
    gap:12px;
    padding:17px 14px;
}

.student-cabinet-sidebar .menu .menu-badge-link{
    grid-template-columns:40px minmax(0,1fr) auto;
    column-gap:12px;
}

.student-cabinet-sidebar .sidebar-menu-icon{
    width:40px;
}

.student-cabinet-sidebar .sidebar-menu-icon::before{
    left:8px;
}

.student-cabinet-sidebar .sidebar-menu-label{
    display:block;
    min-width:0;
    color:inherit;
    line-height:1.28;
    overflow-wrap:normal;
    word-break:normal;
}

.student-cabinet-sidebar .sidebar-menu-badge{
    position:static !important;
    inset:auto !important;
    transform:none !important;
    flex:0 0 auto;
    min-width:38px;
    height:38px;
    margin:0;
    padding:0 8px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#7A2528;
    color:white;
    font-size:14px;
    font-weight:900;
    line-height:1;
    white-space:nowrap;
    box-shadow:0 8px 18px rgba(122,37,40,.18);
}

.student-cabinet-sidebar .menu-badge-link:hover .sidebar-menu-badge,
.student-cabinet-sidebar .menu-badge-link.active .sidebar-menu-badge{
    background:#7A2528;
    color:white;
}

@media(max-width:1200px){
    .student-cabinet-sidebar{
        width:286px;
        flex-basis:286px;
        padding-left:18px;
        padding-right:18px;
    }

    .trainer-homework-page-card{
        padding:34px;
    }
}

@media(max-width:900px){
    body{
        display:block;
    }

    .student-cabinet-sidebar{
        width:100%;
        max-width:none;
        flex-basis:auto;
        padding:24px;
        border-right:0;
        border-bottom:1px solid #EFE6D7;
        box-shadow:0 12px 28px rgba(122,37,40,.05);
    }

    .student-cabinet-sidebar .logo{
        margin-bottom:24px;
    }

    .student-cabinet-sidebar .menu{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .content{
        width:100%;
        padding:30px 22px;
    }

    .trainer-homework-page-card{
        padding:26px;
    }

    .trainer-homework-page-header{
        flex-direction:column;
    }

    .trainer-homework-page-header .student-name{
        font-size:30px;
    }

    .trainer-homework-back-button{
        min-width:0;
    }

    .trainer-homework-stats{
        grid-template-columns:1fr;
    }

    .trainer-homework-question-heading{
        flex-direction:column;
    }

    .trainer-homework-question-heading strong{
        text-align:left;
    }
}

@media(max-width:620px){
    .student-cabinet-sidebar .menu{
        grid-template-columns:1fr;
    }

    .content{
        padding:22px 14px;
    }

    .trainer-homework-page-card{
        padding:20px;
        border-radius:20px;
    }

    .trainer-homework-section-heading,
    .trainer-homework-progress-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .trainer-homework-section-heading h2,
    .trainer-homework-progress-heading h2{
        font-size:27px;
    }

    .trainer-homework-summary{
        padding:20px;
    }

    .trainer-homework-summary-item{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }

    .trainer-homework-summary-item span{
        padding-left:0;
    }

    .trainer-homework-question-card{
        padding:20px;
    }

    .trainer-homework-question-text{
        padding:20px;
        font-size:16px;
        line-height:1.7;
    }

    .trainer-homework-complete-card{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   SA | SCHOOL — ФИНАЛЬНАЯ КОРРЕКТИРОВКА ЛК УЧЕНИКА
   Компактная типографика, ровный счётчик меню,
   заметный счётчик невыполненных ДЗ на карточке месяца
   ========================================================= */

/* ---------- Главная страница ученика: более компактный шрифт ---------- */

.student-dashboard-top h1,
.student-dashboard .student-dashboard-top h1{
    margin:0 !important;
    font-size:32px !important;
    font-weight:700 !important;
    line-height:1.16 !important;
    letter-spacing:-.025em !important;
}

.student-dashboard-role{
    font-size:14px !important;
    font-weight:700 !important;
}

.student-dashboard-role b{
    width:46px !important;
    height:46px !important;
    font-size:20px !important;
}

.student-next-lesson-card{
    padding:30px 34px !important;
    gap:24px !important;
}

.student-next-lesson-info span,
.student-dashboard-notice span,
.student-dashboard-stat-card span,
.student-dashboard-week-card > span{
    font-size:11px !important;
    font-weight:800 !important;
    line-height:1.3 !important;
    letter-spacing:.12em !important;
}

.student-next-lesson-info strong{
    margin:7px 0 8px !important;
    font-size:20px !important;
    font-weight:700 !important;
    line-height:1.25 !important;
    letter-spacing:-.015em !important;
}

.student-next-lesson-info p,
.student-next-lesson-info small{
    font-size:13px !important;
    font-weight:600 !important;
    line-height:1.5 !important;
}

.student-next-lesson-button{
    min-height:58px !important;
    padding:14px 22px !important;
    font-size:15px !important;
    font-weight:700 !important;
}

.student-next-lesson-button span{
    font-size:21px !important;
}

.student-dashboard-notice{
    padding:24px 28px !important;
}

.student-dashboard-notice strong{
    margin:6px 0 4px !important;
    font-size:20px !important;
    font-weight:700 !important;
    line-height:1.25 !important;
    letter-spacing:-.01em !important;
}

.student-dashboard-notice small{
    font-size:13px !important;
    font-weight:600 !important;
    line-height:1.45 !important;
}

.student-dashboard-notice b{
    min-height:46px !important;
    padding:10px 22px !important;
    font-size:14px !important;
    font-weight:700 !important;
}

.student-dashboard-progress-info strong{
    margin:7px 0 10px !important;
    font-size:15px !important;
    font-weight:700 !important;
}

.student-dashboard-stat-card > b{
    font-size:24px !important;
    font-weight:700 !important;
}

.student-week-metrics strong{
    font-size:19px !important;
    font-weight:700 !important;
}

.student-week-metrics small{
    font-size:12px !important;
    font-weight:600 !important;
}

.student-dashboard-section-title h2{
    font-size:21px !important;
    font-weight:700 !important;
    line-height:1.25 !important;
}

.student-dashboard-section-title p{
    font-size:13px !important;
    font-weight:500 !important;
    line-height:1.45 !important;
}

.student-dashboard-schedule .student-schedule-item div:nth-child(2) strong{
    font-size:16px !important;
    font-weight:700 !important;
}

.student-schedule-item div:nth-child(2) span{
    font-size:13px !important;
}

.student-schedule-item div:nth-child(2) small{
    font-size:12px !important;
}

.student-dashboard-quick-links strong{
    font-size:14px !important;
    font-weight:700 !important;
}

.student-dashboard-quick-links small{
    font-size:12px !important;
    font-weight:500 !important;
}

/* ---------- Боковое меню: число строго по центру ---------- */

.student-cabinet-sidebar .menu a{
    font-size:15px !important;
}

.student-cabinet-sidebar .menu a.menu-badge-link{
    display:grid !important;
    grid-template-columns:40px minmax(0,1fr) 44px !important;
    align-items:center !important;
    column-gap:12px !important;
    min-height:76px !important;
    padding:15px 16px !important;
}

.student-cabinet-sidebar .menu a.menu-badge-link > .sidebar-menu-label{
    min-width:0 !important;
    align-self:center !important;
    font-size:15px !important;
    line-height:1.28 !important;
}

.student-cabinet-sidebar .menu a.menu-badge-link > .sidebar-menu-badge{
    position:static !important;
    inset:auto !important;
    transform:none !important;
    justify-self:end !important;
    align-self:center !important;

    width:44px !important;
    min-width:44px !important;
    max-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;

    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:13px !important;

    display:grid !important;
    place-items:center !important;

    background:#7A2528 !important;
    color:#FFFFFF !important;

    font-family:'Montserrat',sans-serif !important;
    font-size:14px !important;
    font-weight:800 !important;
    font-style:normal !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    text-align:center !important;
    text-indent:0 !important;
    white-space:nowrap !important;
    font-variant-numeric:tabular-nums !important;

    box-shadow:0 8px 18px rgba(122,37,40,.16) !important;
    overflow:hidden !important;
}

.student-cabinet-sidebar .menu a.menu-badge-link:hover > .sidebar-menu-badge,
.student-cabinet-sidebar .menu a.menu-badge-link.active > .sidebar-menu-badge{
    background:#7A2528 !important;
    color:#FFFFFF !important;
}

/* ---------- Страница месяцев: счётчик справа сверху ---------- */

.homework-month-card{
    position:relative !important;
    min-height:150px !important;
    padding:26px 82px 26px 28px !important;
}

.homework-month-card-title{
    display:block !important;
    margin:0 0 12px !important;
    padding:0 !important;
    color:#2E2A28 !important;
    font-size:22px !important;
    font-weight:700 !important;
    line-height:1.22 !important;
    letter-spacing:-.015em !important;
}

.homework-month-card .homework-month-meta{
    display:block !important;
    margin:0 0 5px !important;
    color:#777 !important;
    font-size:14px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
}

.homework-month-card small{
    display:block !important;
    color:#777 !important;
    font-size:13px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
}

.homework-month-card > .homework-month-pending-badge{
    position:absolute !important;
    top:24px !important;
    right:24px !important;
    z-index:3 !important;

    width:46px !important;
    min-width:46px !important;
    max-width:46px !important;
    height:46px !important;
    min-height:46px !important;
    max-height:46px !important;

    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:14px !important;

    display:grid !important;
    place-items:center !important;

    background:#7A2528 !important;
    color:#FFFFFF !important;

    font-family:'Montserrat',sans-serif !important;
    font-size:14px !important;
    font-weight:800 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    text-align:center !important;
    text-indent:0 !important;
    white-space:nowrap !important;
    font-variant-numeric:tabular-nums !important;

    box-shadow:0 9px 20px rgba(122,37,40,.18) !important;
}

.homework-month-card.has-pending{
    border-color:#E6D9C7 !important;
}

.homework-month-card.has-pending:hover,
.homework-month-card.has-pending.active{
    border-color:#7A2528 !important;
}

.homework-month-grid{
    gap:18px !important;
}

.header h1{
    font-size:34px !important;
    font-weight:700 !important;
    line-height:1.16 !important;
    letter-spacing:-.02em !important;
}

/* ---------- Адаптив ---------- */

@media(max-width:1100px){
    .student-dashboard-top h1,
    .student-dashboard .student-dashboard-top h1{
        font-size:29px !important;
    }

    .student-next-lesson-card{
        padding:26px !important;
    }
}

@media(max-width:700px){
    .student-dashboard-top h1,
    .student-dashboard .student-dashboard-top h1{
        font-size:26px !important;
    }

    .header h1{
        font-size:28px !important;
    }

    .student-cabinet-sidebar .menu a.menu-badge-link{
        grid-template-columns:40px minmax(0,1fr) 40px !important;
        padding:14px !important;
    }

    .student-cabinet-sidebar .menu a.menu-badge-link > .sidebar-menu-badge{
        width:40px !important;
        min-width:40px !important;
        max-width:40px !important;
        height:40px !important;
        min-height:40px !important;
        max-height:40px !important;
        border-radius:12px !important;
        font-size:13px !important;
    }

    .homework-month-card{
        min-height:138px !important;
        padding:22px 70px 22px 22px !important;
    }

    .homework-month-card-title{
        font-size:20px !important;
    }

    .homework-month-card > .homework-month-pending-badge{
        top:20px !important;
        right:20px !important;
        width:42px !important;
        min-width:42px !important;
        max-width:42px !important;
        height:42px !important;
        min-height:42px !important;
        max-height:42px !important;
        border-radius:13px !important;
        font-size:13px !important;
    }
}
/* =========================================================
   SA | SCHOOL — ПРОБНЫЕ ЭКЗАМЕНЫ
   ========================================================= */

.sidebar-menu-icon.icon-mock-exam{
    --icon-x:0;
}

.mock-exams-page{
    max-width:1280px;
}

.mock-exams-page-header{
    margin-bottom:28px;
}

.mock-exams-page-header h1{
    margin-bottom:8px;
}

.mock-exams-page-header p{
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.5;
}

.mock-exam-month-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:18px;
    margin-bottom:34px;
}

.mock-exam-month-card{
    position:relative;
    display:block;
    min-height:150px;
    padding:26px 82px 26px 28px;
    border:2px solid transparent;
    border-radius:20px;
    background:#FFFFFF;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 14px 34px rgba(0,0,0,.055);
    transition:.2s;
}

.mock-exam-month-card:hover,
.mock-exam-month-card.active{
    border-color:#7A2528;
    transform:translateY(-2px);
}

.mock-exam-month-card.has-pending{
    border-color:#E6D9C7;
}

.mock-exam-month-title{
    display:block;
    margin-bottom:12px;
    color:#2E2A28;
    font-size:22px;
    font-weight:700;
    line-height:1.22;
    letter-spacing:-.015em;
}

.mock-exam-month-card > span,
.mock-exam-month-card > small{
    display:block;
    color:#777;
    font-weight:600;
    line-height:1.45;
}

.mock-exam-month-card > span{
    margin-bottom:5px;
    font-size:14px;
}

.mock-exam-month-card > small{
    font-size:13px;
}

.mock-exam-month-badge{
    position:absolute;
    top:24px;
    right:24px;
    z-index:2;
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    margin:0;
    padding:0;
    border-radius:14px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:14px;
    font-weight:800;
    line-height:1;
    font-variant-numeric:tabular-nums;
    box-shadow:0 9px 20px rgba(122,37,40,.18);
}

.mock-exam-selected-header{
    margin:8px 0 20px;
}

.mock-exam-selected-header h2{
    color:#2E2A28;
    font-size:26px;
    line-height:1.2;
}

.mock-exam-list{
    display:grid;
    gap:16px;
}

.mock-exam-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:24px;
    align-items:center;
    padding:26px 28px;
    border:1px solid #EFE6D7;
    border-radius:20px;
    background:#FFFFFF;
    box-shadow:0 14px 32px rgba(122,37,40,.055);
}

.mock-exam-card.is-pending{
    background:#FFFDF8;
    border-left:5px solid #7A2528;
}

.mock-exam-card-main{
    min-width:0;
}

.mock-exam-card-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:14px;
}

.mock-exam-kicker{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.mock-exam-card h3{
    color:#2E2A28;
    font-size:20px;
    font-weight:700;
    line-height:1.3;
}

.mock-exam-description{
    max-width:760px;
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

.mock-exam-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:fit-content;
    min-height:34px;
    padding:7px 12px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    line-height:1.2;
    white-space:nowrap;
}

.mock-exam-status-waiting{
    background:#FFF0C2;
    color:#8A6500;
}

.mock-exam-status-late{
    background:#FBE7E7;
    color:#A33232;
}

.mock-exam-status-submitted{
    background:#EAF0FB;
    color:#305A96;
}

.mock-exam-status-reviewed{
    background:#E5F6EA;
    color:#21753B;
}

.mock-exam-meta{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:18px;
}

.mock-exam-meta > div{
    min-width:150px;
    padding:12px 14px;
    border-radius:14px;
    background:#F7F2EA;
}

.mock-exam-meta span,
.mock-exam-meta strong{
    display:block;
}

.mock-exam-meta span{
    margin-bottom:6px;
    color:#888;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.mock-exam-meta strong{
    color:#2E2A28;
    font-size:14px;
    font-weight:700;
}

.mock-exam-open-button{
    min-width:124px;
    min-height:48px;
    padding:13px 20px;
    font-size:14px;
}

.mock-exam-empty-state{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:330px;
    padding:50px 30px;
    border:1px solid #EFE6D7;
    border-radius:24px;
    background:#FFFFFF;
    text-align:center;
    box-shadow:0 18px 42px rgba(122,37,40,.06);
}

.mock-exam-empty-icon{
    width:66px;
    height:66px;
    display:grid;
    place-items:center;
    margin-bottom:18px;
    border:1px solid #DFC799;
    border-radius:50%;
    background:#FBF5E8;
    color:#B88B2E;
    font-size:28px;
}

.mock-exam-empty-state h2{
    margin-bottom:10px;
    color:#2E2A28;
    font-size:22px;
}

.mock-exam-empty-state p{
    max-width:580px;
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

/* Страница отдельного пробника */

.mock-exam-view-card{
    max-width:1120px;
    padding:32px;
}

.mock-exam-view-header{
    align-items:flex-start;
    gap:24px;
}

.mock-exam-view-header .student-name{
    margin-bottom:8px;
    font-size:28px;
    line-height:1.22;
}

.mock-exam-view-grid{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
    gap:22px;
    align-items:start;
}

.mock-exam-view-main{
    display:grid;
    gap:18px;
}

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

.mock-exam-view-info > div{
    min-height:94px;
    padding:16px 18px;
    border-radius:16px;
    background:#F7F2EA;
}

.mock-exam-view-info > div > span{
    display:block;
    margin-bottom:9px;
    color:#888;
    font-size:12px;
    font-weight:800;
}

.mock-exam-view-info > div > strong:not(.mock-exam-status){
    color:#2E2A28;
    font-size:18px;
    line-height:1.2;
}

.mock-exam-description-box,
.mock-exam-link-box,
.mock-exam-submit-panel{
    padding:22px;
    border:1px solid #EFE6D7;
    border-radius:20px;
    background:#FFFDF8;
}

.mock-exam-description-box h2{
    margin-bottom:12px;
    color:#7A2528;
    font-size:20px;
}

.mock-exam-description-box p{
    color:#2E2A28;
    font-size:15px;
    line-height:1.65;
}

.mock-exam-link-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    background:#FFF6DF;
}

.mock-exam-link-box > span{
    color:#7A2528;
    font-size:15px;
    font-weight:800;
}

.mock-exam-link-button{
    min-width:180px;
}

.mock-exam-submit-panel{
    position:sticky;
    top:24px;
    background:#FFFFFF;
    box-shadow:0 16px 38px rgba(122,37,40,.07);
}

.mock-exam-submit-panel h2{
    margin-bottom:10px;
    color:#2E2A28;
    font-size:21px;
    line-height:1.28;
}

.mock-exam-submit-panel > p{
    margin-bottom:20px;
    color:#777;
    font-size:13px;
    font-weight:600;
    line-height:1.5;
}

.student-card form.mock-exam-submit-form{
    max-width:none;
}

.mock-exam-submit-form .form-control{
    background:#F7F2EA;
}

.mock-exam-submit-form .button{
    width:100%;
    min-height:50px;
}

.mock-exam-sent-state{
    text-align:center;
}

.mock-exam-sent-icon{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    margin:0 auto 16px;
    border-radius:50%;
    background:#E5F6EA;
    color:#21753B;
    font-size:27px;
    font-weight:900;
}

.mock-exam-sent-state p{
    color:#777;
    font-size:13px;
    font-weight:600;
    line-height:1.5;
}

.mock-exam-student-comment{
    margin-top:18px;
    padding:16px;
    border-radius:14px;
    background:#F7F2EA;
    text-align:left;
}

.mock-exam-student-comment span{
    display:block;
    margin-bottom:7px;
    color:#888;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
}

.mock-exam-student-comment p{
    color:#2E2A28;
}

.mock-exam-teacher-comment{
    margin-top:24px;
}

@media(max-width:1000px){
    .mock-exam-view-grid{
        grid-template-columns:1fr;
    }

    .mock-exam-submit-panel{
        position:static;
    }
}

@media(max-width:760px){
    .mock-exam-card{
        grid-template-columns:1fr;
        padding:22px;
    }

    .mock-exam-card-heading{
        flex-direction:column;
    }

    .mock-exam-open-button{
        width:100%;
    }

    .mock-exam-view-info{
        grid-template-columns:1fr;
    }

    .mock-exam-link-box{
        align-items:flex-start;
        flex-direction:column;
    }

    .mock-exam-link-button{
        width:100%;
    }
}

@media(max-width:700px){
    .mock-exam-month-card{
        min-height:138px;
        padding:22px 70px 22px 22px;
    }

    .mock-exam-month-title{
        font-size:20px;
    }

    .mock-exam-month-badge{
        top:20px;
        right:20px;
        width:42px;
        height:42px;
        border-radius:13px;
        font-size:13px;
    }

    .mock-exam-view-card{
        padding:22px;
    }
}

/* =========================================================
   SA | SCHOOL — КАБИНЕТ ПРЕПОДАВАТЕЛЯ / ПРОБНЫЕ ЭКЗАМЕНЫ
   ========================================================= */

.teacher-mock-exams-page{
    max-width:1280px;
}

.teacher-mock-exams-header{
    margin-bottom:28px;
}

.teacher-mock-exams-header p{
    margin-top:8px;
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

.teacher-mock-exam-kicker{
    display:block;
    margin-bottom:8px;
    color:#B88B2E;
    font-size:11px;
    font-weight:900;
    line-height:1.3;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.teacher-mock-exam-hub{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.teacher-mock-exam-hub-card{
    position:relative;
    display:grid;
    grid-template-columns:64px minmax(0,1fr) 42px;
    align-items:center;
    gap:22px;
    min-height:240px;
    padding:34px;
    border:2px solid transparent;
    border-radius:24px;
    background:#FFFFFF;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 18px 42px rgba(122,37,40,.07);
    transition:.22s ease;
}

.teacher-mock-exam-hub-card:hover,
.teacher-mock-exam-hub-card.has-alert:hover{
    border-color:#7A2528;
    transform:translateY(-3px);
}

.teacher-mock-exam-hub-card.has-alert{
    border-color:#E6D9C7;
}

.teacher-mock-exam-hub-icon{
    width:64px;
    height:64px;
    display:grid;
    place-items:center;
    border:1px solid #DEC99D;
    border-radius:19px;
    background:#FBF5E8;
    color:#7A2528;
    font-size:30px;
    font-weight:700;
}

.teacher-mock-exam-hub-card > div:nth-child(2) > span{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:11px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.teacher-mock-exam-hub-card h2{
    margin-bottom:10px;
    color:#2E2A28;
    font-size:25px;
    font-weight:700;
    line-height:1.22;
}

.teacher-mock-exam-hub-card p{
    margin-bottom:17px;
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

.teacher-mock-exam-hub-card small{
    color:#7A2528;
    font-size:12px;
    font-weight:800;
}

.teacher-mock-exam-arrow{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:20px;
    font-weight:700;
}

.teacher-mock-exam-hub-badge{
    position:absolute;
    top:24px;
    right:24px;
    z-index:3;
    min-width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0 11px;
    border-radius:14px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:14px;
    font-weight:900;
    line-height:1;
    box-shadow:0 9px 20px rgba(122,37,40,.19);
}

/* Форма назначения */

.teacher-mock-exam-form-card{
    max-width:920px;
    padding:34px;
}

.teacher-mock-exam-form{
    max-width:none !important;
}

.teacher-mock-exam-field-note{
    display:block;
    margin-top:8px;
    color:#8A8279;
    font-size:12px;
    font-weight:600;
    line-height:1.45;
}

.teacher-mock-exam-submit-button{
    min-width:220px;
    min-height:52px;
}

/* Карточки учеников */

.teacher-mock-results-header{
    margin-bottom:24px;
}

.teacher-mock-results-alert{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:22px;
    padding:18px 20px;
    border:1px solid #E6D9C7;
    border-radius:18px;
    background:#FFF9ED;
}

.teacher-mock-results-alert > b{
    min-width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0 10px;
    border-radius:14px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:14px;
    font-weight:900;
}

.teacher-mock-results-alert strong,
.teacher-mock-results-alert span{
    display:block;
}

.teacher-mock-results-alert strong{
    margin-bottom:4px;
    color:#2E2A28;
    font-size:15px;
}

.teacher-mock-results-alert span{
    color:#777;
    font-size:12px;
    font-weight:600;
}

.teacher-mock-student-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
    gap:18px;
}

.teacher-mock-student-card{
    position:relative;
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:18px;
    min-height:210px;
    padding:26px;
    border:2px solid transparent;
    border-radius:22px;
    background:#FFFFFF;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 15px 36px rgba(122,37,40,.06);
    transition:.2s ease;
}

.teacher-mock-student-card.has-pending{
    border-color:#E6D9C7;
}

.teacher-mock-student-card:hover{
    border-color:#7A2528;
    transform:translateY(-2px);
}

.teacher-mock-student-avatar{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    border-radius:18px;
    background:#F7F2EA;
    color:#7A2528;
    font-size:22px;
    font-weight:800;
}

.teacher-mock-student-content{
    min-width:0;
    padding-right:46px;
}

.teacher-mock-student-content h2{
    margin-bottom:5px;
    color:#2E2A28;
    font-size:20px;
    font-weight:700;
    line-height:1.25;
}

.teacher-mock-student-content > p{
    margin-bottom:15px;
    color:#8A8279;
    font-size:13px;
    font-weight:600;
}

.teacher-mock-student-stats{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:16px;
}

.teacher-mock-student-stats span{
    padding:8px 10px;
    border-radius:11px;
    background:#F7F2EA;
    color:#777;
    font-size:12px;
    font-weight:600;
}

.teacher-mock-student-stats b{
    color:#2E2A28;
}

.teacher-mock-student-content small{
    color:#888;
    font-size:11px;
    font-weight:600;
}

.teacher-mock-student-badge{
    position:absolute;
    top:22px;
    right:22px;
    min-width:44px;
    height:44px;
    display:grid;
    place-items:center;
    padding:0 10px;
    border-radius:13px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:13px;
    font-weight:900;
    line-height:1;
}

.teacher-mock-student-open{
    position:absolute;
    right:24px;
    bottom:24px;
    color:#7A2528;
    font-size:12px;
    font-weight:800;
}

.teacher-mock-empty-state{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:330px;
    padding:48px 30px;
    border:1px solid #EFE6D7;
    border-radius:24px;
    background:#FFFFFF;
    text-align:center;
    box-shadow:0 18px 42px rgba(122,37,40,.06);
}

.teacher-mock-empty-state > div{
    width:64px;
    height:64px;
    display:grid;
    place-items:center;
    margin-bottom:17px;
    border-radius:50%;
    background:#FBF5E8;
    color:#B88B2E;
    font-size:27px;
}

.teacher-mock-empty-state h2{
    margin-bottom:9px;
    color:#2E2A28;
    font-size:22px;
}

.teacher-mock-empty-state p{
    max-width:560px;
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

/* Месяцы выбранного ученика */

.teacher-mock-month-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:18px;
    margin-bottom:32px;
}

.teacher-mock-month-card{
    position:relative;
    display:block;
    min-height:145px;
    padding:25px 76px 25px 26px;
    border:2px solid transparent;
    border-radius:20px;
    background:#FFFFFF;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 14px 34px rgba(122,37,40,.055);
    transition:.2s ease;
}

.teacher-mock-month-card.has-pending{
    border-color:#E6D9C7;
}

.teacher-mock-month-card:hover,
.teacher-mock-month-card.active{
    border-color:#7A2528;
    transform:translateY(-2px);
}

.teacher-mock-month-card > strong{
    display:block;
    margin-bottom:12px;
    font-size:21px;
    font-weight:700;
    line-height:1.25;
}

.teacher-mock-month-card > span,
.teacher-mock-month-card > small{
    display:block;
    color:#777;
    font-weight:600;
}

.teacher-mock-month-card > span{
    margin-bottom:5px;
    font-size:13px;
}

.teacher-mock-month-card > small{
    font-size:12px;
}

.teacher-mock-month-badge{
    position:absolute;
    top:22px;
    right:22px;
    min-width:44px;
    height:44px;
    display:grid;
    place-items:center;
    padding:0 10px;
    border-radius:13px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:13px;
    font-weight:900;
    line-height:1;
}

.teacher-mock-month-heading{
    margin-bottom:18px;
}

.teacher-mock-month-heading p{
    margin-top:6px;
    color:#777;
    font-size:13px;
    font-weight:600;
}

.teacher-mock-exam-list{
    display:grid;
    gap:15px;
}

.teacher-mock-exam-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:22px;
    align-items:center;
    padding:24px 26px;
    border:1px solid #EFE6D7;
    border-radius:19px;
    background:#FFFFFF;
    box-shadow:0 12px 30px rgba(122,37,40,.05);
}

.teacher-mock-exam-row.is-waiting{
    border-left:5px solid #7A2528;
    background:#FFFDF8;
}

.teacher-mock-exam-row-main{
    min-width:0;
}

.teacher-mock-exam-row-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:13px;
}

.teacher-mock-exam-type{
    display:block;
    margin-bottom:6px;
    color:#B88B2E;
    font-size:10px;
    font-weight:900;
    line-height:1.3;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.teacher-mock-exam-row h3{
    color:#2E2A28;
    font-size:19px;
    font-weight:700;
    line-height:1.3;
}

.teacher-mock-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:7px 11px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
    line-height:1.2;
    white-space:nowrap;
}

.teacher-mock-status.waiting{
    background:#FBE7E7;
    color:#A33232;
}

.teacher-mock-status.reviewed{
    background:#E5F6EA;
    color:#21753B;
}

.teacher-mock-exam-row-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.teacher-mock-exam-row-meta span{
    padding:9px 11px;
    border-radius:11px;
    background:#F7F2EA;
    color:#777;
    font-size:12px;
    font-weight:600;
}

.teacher-mock-exam-row-meta b{
    color:#2E2A28;
}

.teacher-mock-student-comment-preview{
    margin-top:13px;
    color:#777;
    font-size:13px;
    font-weight:600;
    line-height:1.5;
}

/* Проверка пробника */

.teacher-mock-review-card{
    max-width:1180px;
    padding:34px;
}

.teacher-mock-review-header{
    align-items:flex-start;
}

.teacher-mock-review-layout{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);
    gap:22px;
    align-items:start;
}

.teacher-mock-review-info{
    display:grid;
    gap:17px;
}

.teacher-mock-review-meta{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:11px;
}

.teacher-mock-review-meta > div{
    min-height:92px;
    padding:16px;
    border-radius:16px;
    background:#F7F2EA;
}

.teacher-mock-review-meta span,
.teacher-mock-review-meta strong{
    display:block;
}

.teacher-mock-review-meta span{
    margin-bottom:8px;
    color:#888;
    font-size:11px;
    font-weight:800;
}

.teacher-mock-review-meta strong{
    color:#2E2A28;
    font-size:14px;
    line-height:1.35;
}

.teacher-mock-review-block,
.teacher-mock-review-link,
.teacher-mock-review-form-panel{
    padding:21px;
    border:1px solid #EFE6D7;
    border-radius:19px;
    background:#FFFDF8;
}

.teacher-mock-review-block > span,
.teacher-mock-review-link span{
    display:block;
    margin-bottom:9px;
    color:#7A2528;
    font-size:12px;
    font-weight:800;
}

.teacher-mock-review-block p{
    color:#2E2A28;
    font-size:14px;
    line-height:1.65;
}

.teacher-mock-review-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    background:#FFF6DF;
}

.teacher-mock-review-link strong{
    display:block;
    color:#777;
    font-size:12px;
    font-weight:600;
}

.teacher-mock-review-form-panel{
    position:sticky;
    top:24px;
    background:#FFFFFF;
    box-shadow:0 16px 38px rgba(122,37,40,.07);
}

.teacher-mock-review-form-panel h2{
    margin-bottom:18px;
    color:#2E2A28;
    font-size:22px;
    line-height:1.25;
}

.student-card form.teacher-mock-review-form{
    max-width:none;
}

.teacher-mock-score-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px;
}

.teacher-mock-review-form .form-control{
    background:#F7F2EA;
}

.teacher-mock-review-form small{
    display:block;
    margin-top:7px;
    color:#888;
    font-size:11px;
    font-weight:600;
}

.teacher-mock-review-form .button{
    width:100%;
    min-height:50px;
}

/* Счётчик преподавателя всегда ровный */

.sidebar .menu .menu-badge-link{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 42px !important;
    align-items:center !important;
    gap:12px !important;
}

.sidebar .menu .menu-badge-link > span{
    min-width:0 !important;
    line-height:1.3 !important;
}

.sidebar .menu .menu-badge-link > b{
    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    display:grid !important;
    place-items:center !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:13px !important;
    background:#7A2528 !important;
    color:#FFFFFF !important;
    font-size:13px !important;
    font-weight:900 !important;
    line-height:1 !important;
    text-align:center !important;
    font-variant-numeric:tabular-nums !important;
}

.sidebar .menu .menu-badge-link:hover > b,
.sidebar .menu .menu-badge-link.active > b{
    background:#FFFFFF !important;
    color:#7A2528 !important;
}

@media(max-width:1050px){
    .teacher-mock-exam-hub{
        grid-template-columns:1fr;
    }

    .teacher-mock-review-layout{
        grid-template-columns:1fr;
    }

    .teacher-mock-review-form-panel{
        position:static;
    }
}

@media(max-width:760px){
    .teacher-mock-exam-hub-card{
        grid-template-columns:54px minmax(0,1fr);
        min-height:220px;
        padding:25px;
    }

    .teacher-mock-exam-hub-icon{
        width:54px;
        height:54px;
        border-radius:17px;
        font-size:26px;
    }

    .teacher-mock-exam-arrow{
        display:none;
    }

    .teacher-mock-student-card{
        grid-template-columns:50px minmax(0,1fr);
        padding:22px;
    }

    .teacher-mock-student-avatar{
        width:50px;
        height:50px;
        border-radius:16px;
        font-size:19px;
    }

    .teacher-mock-exam-row{
        grid-template-columns:1fr;
        padding:21px;
    }

    .teacher-mock-exam-row-heading{
        flex-direction:column;
    }

    .teacher-mock-exam-row .button{
        width:100%;
    }

    .teacher-mock-review-meta,
    .teacher-mock-score-grid{
        grid-template-columns:1fr;
    }

    .teacher-mock-review-link{
        align-items:flex-start;
        flex-direction:column;
    }

    .teacher-mock-review-link .button{
        width:100%;
    }

    .teacher-mock-review-card,
    .teacher-mock-exam-form-card{
        padding:22px;
    }
}

/* =========================================================
   SA | SCHOOL — ЕДИНЫЙ ДИЗАЙН КАБИНЕТА ПРЕПОДАВАТЕЛЯ
   Спокойная типографика, широкое меню, сдержанные иконки
   ========================================================= */

/* Единый шрифт во всём преподавательском кабинете */
.teacher-sidebar,
.teacher-sidebar *,
.teacher-sidebar ~ .content,
.teacher-sidebar ~ .content *{
    font-family:'Montserrat',Arial,sans-serif !important;
}

/* ---------- Левая часть ---------- */

body:has(.teacher-sidebar){
    align-items:stretch;
    background:#F7F2EA;
}

.teacher-sidebar{
    position:sticky !important;
    top:0 !important;
    flex:0 0 340px !important;
    width:340px !important;
    min-width:340px !important;
    height:100vh !important;
    padding:28px 24px 24px !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    background:#FFFFFF !important;
    border-right:1px solid #EEE4D6 !important;
    box-shadow:12px 0 36px rgba(91,66,42,.055) !important;
    z-index:20 !important;
}

.teacher-sidebar-logo{
    margin:0 10px 28px !important;
    color:#7A2528 !important;
    font-size:26px !important;
    font-weight:800 !important;
    line-height:1.15 !important;
    letter-spacing:.01em !important;
    white-space:nowrap !important;
}

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

.teacher-sidebar .teacher-menu-link{
    position:relative !important;
    display:grid !important;
    grid-template-columns:44px minmax(0,1fr) !important;
    align-items:center !important;
    column-gap:13px !important;

    width:100% !important;
    min-height:62px !important;
    margin:0 !important;
    padding:9px 13px !important;

    border:1px solid transparent !important;
    border-radius:17px !important;
    background:transparent !important;
    color:#2E2A28 !important;
    text-decoration:none !important;

    font-size:15px !important;
    font-weight:650 !important;
    line-height:1.28 !important;
    letter-spacing:-.01em !important;

    box-sizing:border-box !important;
    transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease !important;
}

.teacher-sidebar .teacher-menu-link.menu-badge-link{
    grid-template-columns:44px minmax(0,1fr) 42px !important;
    column-gap:12px !important;
}

.teacher-sidebar .teacher-menu-link:hover{
    background:#F8F3EA !important;
    border-color:#EADDCB !important;
    color:#7A2528 !important;
    transform:translateX(2px) !important;
}

.teacher-sidebar .teacher-menu-link.active{
    background:#F7F2EA !important;
    border-color:#E6D8C3 !important;
    color:#7A2528 !important;
    box-shadow:none !important;
}

.teacher-sidebar .teacher-menu-icon{
    width:44px !important;
    height:44px !important;
    display:grid !important;
    place-items:center !important;
    border-radius:14px !important;
    background:#FAF7F1 !important;
    color:#2E2A28 !important;
    flex:none !important;
}

.teacher-sidebar .teacher-menu-icon::before{
    content:"" !important;
    width:23px !important;
    height:23px !important;
    display:block !important;
    background:currentColor !important;
    -webkit-mask-image:var(--teacher-menu-icon) !important;
    mask-image:var(--teacher-menu-icon) !important;
    -webkit-mask-repeat:no-repeat !important;
    mask-repeat:no-repeat !important;
    -webkit-mask-position:center !important;
    mask-position:center !important;
    -webkit-mask-size:contain !important;
    mask-size:contain !important;
}

.teacher-sidebar .teacher-menu-link:hover .teacher-menu-icon,
.teacher-sidebar .teacher-menu-link.active .teacher-menu-icon{
    background:#FBF5E8 !important;
    color:#B88B2E !important;
}

.teacher-sidebar .teacher-menu-label{
    display:block !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;

    color:inherit !important;
    font-size:15px !important;
    font-weight:650 !important;
    line-height:1.28 !important;
    letter-spacing:-.01em !important;

    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    hyphens:none !important;
}

.teacher-sidebar .teacher-menu-badge{
    position:static !important;
    inset:auto !important;
    justify-self:end !important;
    align-self:center !important;

    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;

    display:grid !important;
    place-items:center !important;
    margin:0 !important;
    padding:0 !important;

    border:0 !important;
    border-radius:13px !important;
    background:#7A2528 !important;
    color:#FFFFFF !important;

    font-size:13px !important;
    font-weight:800 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    text-align:center !important;
    white-space:nowrap !important;
    font-variant-numeric:tabular-nums !important;

    box-shadow:0 7px 16px rgba(122,37,40,.15) !important;
}

.teacher-sidebar .teacher-menu-link:hover .teacher-menu-badge,
.teacher-sidebar .teacher-menu-link.active .teacher-menu-badge{
    background:#7A2528 !important;
    color:#FFFFFF !important;
}

/* ---------- Основная часть преподавательского кабинета ---------- */

.teacher-sidebar ~ .content{
    flex:1 1 auto !important;
    min-width:0 !important;
    width:auto !important;
    padding:34px 42px 48px !important;
    background:#F7F2EA !important;
}

.teacher-sidebar ~ .content > .container{
    width:100% !important;
    max-width:1080px !important;
    margin:0 auto !important;
}

.teacher-sidebar ~ .content .header{
    margin-bottom:28px !important;
}

.teacher-sidebar ~ .content .header h1{
    font-size:31px !important;
    font-weight:700 !important;
    line-height:1.18 !important;
    letter-spacing:-.025em !important;
}

.teacher-sidebar ~ .content .student-name{
    margin-bottom:9px !important;
    font-size:28px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    letter-spacing:-.022em !important;
}

.teacher-sidebar ~ .content .student-subtitle{
    font-size:13px !important;
    font-weight:550 !important;
    line-height:1.5 !important;
}

.teacher-sidebar ~ .content .student-card{
    max-width:100% !important;
    padding:28px !important;
    border:1px solid #EEE4D6 !important;
    border-radius:22px !important;
    box-shadow:0 13px 34px rgba(85,63,42,.06) !important;
}

.teacher-sidebar ~ .content .card{
    padding:26px !important;
    border-radius:20px !important;
}

.teacher-sidebar ~ .content .card h2{
    font-size:15px !important;
    line-height:1.35 !important;
}

.teacher-sidebar ~ .content .number{
    font-size:36px !important;
}

.teacher-sidebar ~ .content .button{
    min-height:44px !important;
    padding:12px 20px !important;
    border-radius:12px !important;
    font-size:13px !important;
    font-weight:700 !important;
}

.teacher-sidebar ~ .content .form-group label{
    font-size:13px !important;
    font-weight:700 !important;
    line-height:1.35 !important;
}

.teacher-sidebar ~ .content .form-control{
    min-height:46px !important;
    padding:12px 14px !important;
    border-radius:12px !important;
    font-size:13px !important;
    line-height:1.4 !important;
}

.teacher-sidebar ~ .content textarea.form-control{
    min-height:120px !important;
}

.teacher-sidebar ~ .content th{
    padding:15px 17px !important;
    font-size:13px !important;
}

.teacher-sidebar ~ .content td{
    padding:14px 17px !important;
    font-size:13px !important;
}

.teacher-sidebar ~ .content .section-title h2,
.teacher-sidebar ~ .content .month-homework-header h2{
    font-size:22px !important;
    font-weight:700 !important;
    line-height:1.25 !important;
}

.teacher-sidebar ~ .content .empty{
    padding:34px !important;
    font-size:15px !important;
}

/* Карточки нового раздела тоже немного компактнее */
.teacher-sidebar ~ .content .teacher-mock-exam-hub{
    gap:18px !important;
}

.teacher-sidebar ~ .content .teacher-mock-exam-hub-card{
    min-height:210px !important;
    padding:28px !important;
}

.teacher-sidebar ~ .content .teacher-mock-exam-hub-card h2{
    font-size:22px !important;
}

.teacher-sidebar ~ .content .teacher-mock-exam-hub-card p{
    font-size:13px !important;
}

.teacher-sidebar ~ .content .teacher-mock-student-card,
.teacher-sidebar ~ .content .teacher-mock-exam-row{
    padding:22px !important;
}

.teacher-sidebar ~ .content .teacher-mock-student-content h2,
.teacher-sidebar ~ .content .teacher-mock-exam-row h3{
    font-size:18px !important;
}

/* ---------- Адаптив ---------- */

@media(max-width:1280px){
    .teacher-sidebar{
        flex-basis:318px !important;
        width:318px !important;
        min-width:318px !important;
        padding-left:20px !important;
        padding-right:20px !important;
    }

    .teacher-sidebar ~ .content{
        padding:30px 30px 44px !important;
    }
}

@media(max-width:980px){
    body:has(.teacher-sidebar){
        display:block !important;
    }

    .teacher-sidebar{
        position:relative !important;
        width:100% !important;
        min-width:0 !important;
        height:auto !important;
        padding:22px !important;
        border-right:0 !important;
        border-bottom:1px solid #EEE4D6 !important;
    }

    .teacher-sidebar-menu{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;
    }

    .teacher-sidebar ~ .content{
        padding:26px 22px 40px !important;
    }
}

@media(max-width:620px){
    .teacher-sidebar-menu{
        grid-template-columns:1fr !important;
    }

    .teacher-sidebar .teacher-menu-link,
    .teacher-sidebar .teacher-menu-link.menu-badge-link{
        grid-template-columns:42px minmax(0,1fr) 40px !important;
        min-height:58px !important;
        padding:8px 11px !important;
    }

    .teacher-sidebar .teacher-menu-link:not(.menu-badge-link){
        grid-template-columns:42px minmax(0,1fr) !important;
    }

    .teacher-sidebar .teacher-menu-icon{
        width:42px !important;
        height:42px !important;
    }

    .teacher-sidebar .teacher-menu-badge{
        width:40px !important;
        min-width:40px !important;
        max-width:40px !important;
        height:40px !important;
        min-height:40px !important;
        max-height:40px !important;
        font-size:12px !important;
    }

    .teacher-sidebar ~ .content{
        padding:22px 15px 34px !important;
    }

    .teacher-sidebar ~ .content .student-card{
        padding:20px !important;
    }
}


/* =========================================================
   SA | SCHOOL — ОПОВЕЩЕНИЯ НА СТРАНИЦЕ ВЫПОЛНЕННЫХ ДЗ
   ========================================================= */

.teacher-completed-month-grid{
    gap:18px !important;
}

.teacher-completed-month-card{
    position:relative !important;
    min-height:150px !important;
    padding:26px 82px 26px 28px !important;
    overflow:hidden !important;
}

.teacher-completed-month-card > strong{
    display:block !important;
    margin:0 0 13px !important;
    padding:0 !important;
    color:#2E2A28 !important;
    font-size:22px !important;
    font-weight:700 !important;
    line-height:1.22 !important;
    letter-spacing:-.015em !important;
}

.teacher-completed-month-card > span{
    display:block !important;
    margin:0 0 5px !important;
    color:#777 !important;
    font-size:14px !important;
    font-weight:650 !important;
    line-height:1.42 !important;
}

.teacher-completed-month-card > small{
    display:block !important;
    color:#777 !important;
    font-size:13px !important;
    font-weight:600 !important;
    line-height:1.42 !important;
}

.teacher-completed-month-card.has-pending{
    border-color:#E6D8C3 !important;
    background:#FFFDF9 !important;
}

.teacher-completed-month-card.has-pending:hover,
.teacher-completed-month-card.has-pending.active{
    border-color:#7A2528 !important;
}

.teacher-completed-month-badge{
    position:absolute !important;
    top:23px !important;
    right:23px !important;
    z-index:4 !important;

    width:46px !important;
    min-width:46px !important;
    max-width:46px !important;
    height:46px !important;
    min-height:46px !important;
    max-height:46px !important;

    display:grid !important;
    place-items:center !important;

    margin:0 !important;
    padding:0 !important;

    border:0 !important;
    border-radius:14px !important;
    background:#7A2528 !important;
    color:#FFFFFF !important;

    font-family:'Montserrat',Arial,sans-serif !important;
    font-size:14px !important;
    font-weight:900 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    text-align:center !important;
    white-space:nowrap !important;
    font-variant-numeric:tabular-nums !important;

    box-shadow:0 9px 20px rgba(122,37,40,.18) !important;
}

.teacher-completed-table-badge{
    min-width:42px !important;
    height:36px !important;
    display:inline-grid !important;
    place-items:center !important;
    padding:0 10px !important;
    border-radius:12px !important;
    background:#7A2528 !important;
    color:#FFFFFF !important;
    font-size:12px !important;
    font-weight:900 !important;
    line-height:1 !important;
    font-variant-numeric:tabular-nums !important;
    box-shadow:0 6px 14px rgba(122,37,40,.14) !important;
}

.teacher-completed-table-done{
    color:#8A8279 !important;
    font-size:13px !important;
    font-weight:650 !important;
}

@media(max-width:700px){
    .teacher-completed-month-card{
        min-height:138px !important;
        padding:22px 70px 22px 22px !important;
    }

    .teacher-completed-month-card > strong{
        font-size:20px !important;
    }

    .teacher-completed-month-badge{
        top:20px !important;
        right:20px !important;
        width:42px !important;
        min-width:42px !important;
        max-width:42px !important;
        height:42px !important;
        min-height:42px !important;
        max-height:42px !important;
        border-radius:13px !important;
        font-size:13px !important;
    }
}

/* =========================================================
   SA | SCHOOL — НОВАЯ СТРУКТУРА ПРОБНЫХ ЭКЗАМЕНОВ УЧЕНИКА
   ========================================================= */

.student-mock-hub-page,
.student-mock-pending-page,
.student-mock-results-page{
    max-width:1220px;
}

.student-mock-page-header{
    margin-bottom:28px;
}

.student-mock-page-header p{
    margin-top:8px;
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.5;
}

/* Две главные карточки */

.student-mock-hub-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.student-mock-hub-card{
    position:relative;
    display:grid;
    grid-template-columns:62px minmax(0,1fr) 42px;
    align-items:center;
    gap:20px;
    min-height:230px;
    padding:32px;
    border:2px solid transparent;
    border-radius:24px;
    background:#FFFFFF;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 18px 42px rgba(122,37,40,.065);
    transition:.2s ease;
}

.student-mock-hub-card.has-pending{
    border-color:#E6D8C3;
    background:#FFFDF9;
}

.student-mock-hub-card:hover,
.student-mock-hub-card.has-pending:hover{
    border-color:#7A2528;
    transform:translateY(-3px);
}

.student-mock-hub-icon{
    width:62px;
    height:62px;
    display:grid;
    place-items:center;
    border:1px solid #DEC99D;
    border-radius:19px;
    background:#FBF5E8;
    color:#B88B2E;
    font-size:28px;
    font-weight:700;
}

.student-mock-hub-content{
    min-width:0;
}

.student-mock-hub-content > span{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:11px;
    font-weight:900;
    line-height:1.3;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.student-mock-hub-content h2{
    margin-bottom:10px;
    color:#2E2A28;
    font-size:24px;
    font-weight:700;
    line-height:1.22;
}

.student-mock-hub-content p{
    margin-bottom:17px;
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

.student-mock-hub-content small{
    color:#7A2528;
    font-size:12px;
    font-weight:800;
    line-height:1.4;
}

.student-mock-hub-arrow{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:20px;
    font-weight:700;
}

.student-mock-hub-badge{
    position:absolute;
    top:23px;
    right:23px;
    z-index:3;
    min-width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0 11px;
    border-radius:14px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:14px;
    font-weight:900;
    line-height:1;
    font-variant-numeric:tabular-nums;
    box-shadow:0 9px 20px rgba(122,37,40,.18);
}

/* Внутренние страницы */

.student-mock-inner-header{
    margin-bottom:26px;
    align-items:flex-start;
}

.student-mock-month-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(270px,1fr));
    gap:18px;
    margin-bottom:30px;
}

.student-mock-month-card{
    position:relative;
    display:block;
    min-height:145px;
    padding:25px 78px 25px 26px;
    border:2px solid transparent;
    border-radius:20px;
    background:#FFFFFF;
    color:#2E2A28;
    text-decoration:none;
    box-shadow:0 14px 34px rgba(122,37,40,.055);
    transition:.2s ease;
}

.student-mock-month-card.has-pending{
    border-color:#E6D8C3;
    background:#FFFDF9;
}

.student-mock-month-card:hover,
.student-mock-month-card.active{
    border-color:#7A2528;
    transform:translateY(-2px);
}

.student-mock-month-card > strong{
    display:block;
    margin-bottom:12px;
    color:#2E2A28;
    font-size:21px;
    font-weight:700;
    line-height:1.25;
}

.student-mock-month-card > span,
.student-mock-month-card > small{
    display:block;
    color:#777;
    font-weight:600;
    line-height:1.45;
}

.student-mock-month-card > span{
    margin-bottom:5px;
    font-size:13px;
}

.student-mock-month-card > small{
    font-size:12px;
}

.student-mock-month-badge{
    position:absolute;
    top:21px;
    right:21px;
    min-width:44px;
    height:44px;
    display:grid;
    place-items:center;
    padding:0 10px;
    border-radius:13px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:13px;
    font-weight:900;
    line-height:1;
    font-variant-numeric:tabular-nums;
    box-shadow:0 8px 18px rgba(122,37,40,.17);
}

.student-mock-month-card.result-month{
    padding-right:26px;
}

.student-mock-selected-month{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin:6px 0 18px;
}

.student-mock-selected-month h2{
    margin-bottom:6px;
    color:#2E2A28;
    font-size:24px;
    font-weight:700;
    line-height:1.25;
}

.student-mock-selected-month p{
    color:#777;
    font-size:13px;
    font-weight:600;
}

/* Список невыполненных */

.student-mock-pending-list,
.student-mock-result-list{
    display:grid;
    gap:15px;
}

.student-mock-pending-card,
.student-mock-result-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:22px;
    align-items:center;
    padding:24px 26px;
    border:1px solid #EFE6D7;
    border-radius:20px;
    background:#FFFFFF;
    box-shadow:0 13px 32px rgba(122,37,40,.05);
}

.student-mock-pending-card{
    border-left:5px solid #7A2528;
    background:#FFFDF9;
}

.student-mock-pending-main,
.student-mock-result-main{
    min-width:0;
}

.student-mock-pending-heading,
.student-mock-result-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}

.student-mock-type{
    display:block;
    margin-bottom:6px;
    color:#B88B2E;
    font-size:10px;
    font-weight:900;
    line-height:1.3;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.student-mock-pending-heading h3,
.student-mock-result-heading h3{
    color:#2E2A28;
    font-size:20px;
    font-weight:700;
    line-height:1.3;
}

.student-mock-pending-description{
    max-width:760px;
    margin-bottom:15px;
    color:#777;
    font-size:13px;
    font-weight:600;
    line-height:1.55;
}

.student-mock-pending-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.student-mock-pending-meta > div{
    min-width:150px;
    padding:11px 13px;
    border-radius:13px;
    background:#F7F2EA;
}

.student-mock-pending-meta span,
.student-mock-pending-meta strong{
    display:block;
}

.student-mock-pending-meta span{
    margin-bottom:5px;
    color:#888;
    font-size:10px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.student-mock-pending-meta strong{
    color:#2E2A28;
    font-size:13px;
    font-weight:700;
}

.student-mock-open-button{
    min-width:124px;
}

/* Ожидание проверки */

.student-mock-waiting-review{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:22px;
    padding:18px 20px;
    border:1px solid #E6D8C3;
    border-radius:18px;
    background:#FFF9ED;
}

.student-mock-waiting-review > b{
    min-width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0 10px;
    border-radius:14px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:14px;
    font-weight:900;
}

.student-mock-waiting-review strong,
.student-mock-waiting-review span{
    display:block;
}

.student-mock-waiting-review strong{
    margin-bottom:4px;
    color:#2E2A28;
    font-size:15px;
}

.student-mock-waiting-review span{
    color:#777;
    font-size:12px;
    font-weight:600;
}

/* Статистика */

.student-mock-progress-section{
    margin-bottom:34px;
}

.student-mock-progress-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
    margin-bottom:18px;
}

.student-mock-progress-heading > div > span{
    display:block;
    margin-bottom:6px;
    color:#B88B2E;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.student-mock-progress-heading h2{
    color:#2E2A28;
    font-size:24px;
    font-weight:700;
    line-height:1.25;
}

.student-mock-progress-heading > p{
    max-width:430px;
    color:#777;
    font-size:12px;
    font-weight:600;
    line-height:1.5;
    text-align:right;
}

.student-mock-progress-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
    gap:18px;
}

.student-mock-progress-card{
    padding:25px;
    border:1px solid #EFE6D7;
    border-radius:22px;
    background:#FFFFFF;
    box-shadow:0 15px 36px rgba(122,37,40,.055);
}

.student-mock-progress-card-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:20px;
}

.student-mock-progress-card-header > div > span{
    display:block;
    margin-bottom:6px;
    color:#B88B2E;
    font-size:10px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.student-mock-progress-card-header h3{
    color:#2E2A28;
    font-size:19px;
    font-weight:700;
    line-height:1.3;
}

.student-mock-change{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:7px 11px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
    line-height:1.2;
    white-space:nowrap;
}

.student-mock-change.positive{
    background:#E5F6EA;
    color:#21753B;
}

.student-mock-change.negative{
    background:#FBE7E7;
    color:#A33232;
}

.student-mock-change.neutral{
    background:#F7F2EA;
    color:#777;
}

.student-mock-progress-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:22px;
}

.student-mock-progress-metrics > div{
    padding:13px 10px;
    border-radius:14px;
    background:#F7F2EA;
    text-align:center;
}

.student-mock-progress-metrics span,
.student-mock-progress-metrics strong{
    display:block;
}

.student-mock-progress-metrics span{
    margin-bottom:5px;
    color:#888;
    font-size:10px;
    font-weight:800;
}

.student-mock-progress-metrics strong{
    color:#7A2528;
    font-size:20px;
    font-weight:800;
    line-height:1.1;
}

.student-mock-progress-history{
    display:grid;
    gap:11px;
}

.student-mock-progress-month{
    display:grid;
    grid-template-columns:78px minmax(0,1fr) 42px 74px;
    align-items:center;
    gap:10px;
}

.student-mock-progress-month > span{
    color:#2E2A28;
    font-size:12px;
    font-weight:700;
}

.student-mock-progress-track{
    height:8px;
    overflow:hidden;
    border-radius:999px;
    background:#EEE5D8;
}

.student-mock-progress-track i{
    display:block;
    height:100%;
    border-radius:inherit;
    background:#B89B5E;
}

.student-mock-progress-month > strong{
    color:#7A2528;
    font-size:13px;
    font-weight:800;
    text-align:right;
}

.student-mock-progress-month > small{
    color:#888;
    font-size:10px;
    font-weight:600;
    text-align:right;
}

/* История результатов */

.student-mock-history-section{
    margin-top:10px;
}

.student-mock-result-card{
    align-items:stretch;
}

.student-mock-result-heading{
    margin-bottom:13px;
}

.student-mock-result-score{
    flex:0 0 auto;
    min-width:122px;
    padding:13px 15px;
    border-radius:15px;
    background:#F7F2EA;
    text-align:center;
}

.student-mock-result-score strong,
.student-mock-result-score span,
.student-mock-result-score small{
    display:block;
}

.student-mock-result-score strong{
    color:#7A2528;
    font-size:27px;
    font-weight:850;
    line-height:1.05;
}

.student-mock-result-score span{
    margin-top:3px;
    color:#777;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
}

.student-mock-result-score small{
    margin-top:7px;
    color:#2E2A28;
    font-size:11px;
    font-weight:700;
}

.student-mock-result-meta{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}
.student-mock-result-meta span{
    padding:8px 10px;
    border-radius:11px;
    background:#F7F2EA;
    color:#777;
    font-size:11px;
    font-weight:600;
}

.student-mock-result-meta b{
    color:#2E2A28;
}

.student-mock-result-comment{
    margin-top:13px;
    padding:14px 15px;
    border-left:3px solid #B89B5E;
    border-radius:0 13px 13px 0;
    background:#FFF9ED;
}

.student-mock-result-comment span{
    display:block;
    margin-bottom:6px;
    color:#B88B2E;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.student-mock-result-comment p{
    color:#2E2A28;
    font-size:12px;
    font-weight:600;
    line-height:1.5;
}

/* Пустые состояния */

.student-mock-empty-state{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:330px;
    padding:48px 30px;
    border:1px solid #EFE6D7;
    border-radius:24px;
    background:#FFFFFF;
    text-align:center;
    box-shadow:0 18px 42px rgba(122,37,40,.06);
}

.student-mock-empty-icon{
    width:64px;
    height:64px;
    display:grid;
    place-items:center;
    margin-bottom:17px;
    border:1px solid #DEC99D;
    border-radius:50%;
    background:#FBF5E8;
    color:#B88B2E;
    font-size:27px;
}

.student-mock-empty-state h2{
    margin-bottom:9px;
    color:#2E2A28;
    font-size:22px;
}

.student-mock-empty-state p{
    max-width:570px;
    margin-bottom:18px;
    color:#777;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

/* Результат внутри отдельного пробника */

.student-mock-view-teacher-comment{
    padding:20px 22px;
    border-left:4px solid #B89B5E;
    border-radius:0 18px 18px 0;
    background:#FFF9ED;
}

.student-mock-view-teacher-comment > span{
    display:block;
    margin-bottom:8px;
    color:#B88B2E;
    font-size:11px;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.student-mock-view-teacher-comment p{
    color:#2E2A28;
    font-size:14px;
    font-weight:600;
    line-height:1.6;
}

.student-mock-view-result{
    text-align:center;
}

.student-mock-view-result h2{
    margin-bottom:18px;
}

.student-mock-view-score{
    padding:20px;
    margin-bottom:12px;
    border-radius:18px;
    background:#F7F2EA;
}

.student-mock-view-score strong,
.student-mock-view-score span{
    display:block;
}

.student-mock-view-score strong{
    color:#7A2528;
    font-size:46px;
    font-weight:850;
    line-height:1;
}

.student-mock-view-score span{
    margin-top:7px;
    color:#777;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
}

.student-mock-view-extra-score{
    margin-bottom:18px;
    color:#777;
    font-size:13px;
    font-weight:700;
}

.student-mock-view-extra-score b{
    color:#2E2A28;
}

/* Адаптив */

@media(max-width:1050px){
    .student-mock-hub-grid{
        grid-template-columns:1fr;
    }

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

@media(max-width:760px){
    .student-mock-hub-card{
        grid-template-columns:54px minmax(0,1fr);
        min-height:210px;
        padding:25px;
    }

    .student-mock-hub-icon{
        width:54px;
        height:54px;
        border-radius:17px;
        font-size:25px;
    }

    .student-mock-hub-arrow{
        display:none;
    }

    .student-mock-pending-card,
    .student-mock-result-card{
        grid-template-columns:1fr;
        padding:21px;
    }

    .student-mock-pending-heading,
    .student-mock-result-heading,
    .student-mock-progress-card-header{
        flex-direction:column;
    }

    .student-mock-result-score{
        width:100%;
    }

    .student-mock-open-button{
        width:100%;
    }

    .student-mock-progress-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .student-mock-progress-heading > p{
        text-align:left;
    }

    .student-mock-progress-metrics{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .student-mock-progress-month{
        grid-template-columns:64px minmax(0,1fr) 38px;
    }

    .student-mock-progress-month > small{
        display:none;
    }
}

@media(max-width:620px){
    .student-mock-month-card{
        min-height:136px;
        padding:22px 70px 22px 22px;
    }

    .student-mock-month-card.result-month{
        padding-right:22px;
    }

    .student-mock-month-card > strong{
        font-size:19px;
    }

    .student-mock-month-badge{
        top:19px;
        right:19px;
        width:40px;
        min-width:40px;
        height:40px;
        border-radius:12px;
        font-size:12px;
    }

    .student-mock-progress-card{
        padding:21px;
    }
}

/* =========================================================
   SA | SCHOOL — ЗЕЛЁНЫЙ СЧЁТЧИК НОВЫХ РЕЗУЛЬТАТОВ ПРОБНИКОВ
   ========================================================= */

/*
 * Бордовый счётчик — нужно выполнить пробник.
 * Зелёный счётчик — преподаватель прислал новый результат.
 */

.student-cabinet-sidebar .menu a.mock-exam-menu-link{
    display:grid !important;
    grid-template-columns:40px minmax(0,1fr) auto !important;
    align-items:center !important;
    column-gap:11px !important;
}

.student-cabinet-sidebar .mock-exam-menu-link > .sidebar-menu-badges{
    position:static !important;
    inset:auto !important;
    justify-self:end !important;
    align-self:center !important;

    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:7px !important;

    width:auto !important;
    min-width:0 !important;
    height:auto !important;

    margin:0 !important;
    padding:0 !important;

    background:transparent !important;
    color:inherit !important;
    box-shadow:none !important;
    overflow:visible !important;
}

.student-cabinet-sidebar .mock-exam-menu-link
.sidebar-menu-badges > .sidebar-menu-badge{
    position:static !important;
    inset:auto !important;
    transform:none !important;

    width:40px !important;
    min-width:40px !important;
    max-width:40px !important;
    height:40px !important;
    min-height:40px !important;
    max-height:40px !important;

    display:grid !important;
    place-items:center !important;

    margin:0 !important;
    padding:0 !important;

    border:0 !important;
    border-radius:12px !important;
    color:#FFFFFF !important;

    font-family:'Montserrat',Arial,sans-serif !important;
    font-size:12px !important;
    font-weight:900 !important;
    font-style:normal !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    text-align:center !important;
    text-indent:0 !important;
    white-space:nowrap !important;
    font-variant-numeric:tabular-nums !important;

    overflow:hidden !important;
}

.student-cabinet-sidebar .mock-exam-menu-link
.sidebar-menu-badge-pending{
    background:#7A2528 !important;
    box-shadow:0 7px 16px rgba(122,37,40,.16) !important;
}

.student-cabinet-sidebar .mock-exam-menu-link
.sidebar-menu-badge-result{
    background:#2F7D4A !important;
    box-shadow:0 7px 16px rgba(47,125,74,.18) !important;
}

.student-cabinet-sidebar .mock-exam-menu-link:hover
.sidebar-menu-badge-pending,
.student-cabinet-sidebar .mock-exam-menu-link.active
.sidebar-menu-badge-pending{
    background:#7A2528 !important;
    color:#FFFFFF !important;
}

.student-cabinet-sidebar .mock-exam-menu-link:hover
.sidebar-menu-badge-result,
.student-cabinet-sidebar .mock-exam-menu-link.active
.sidebar-menu-badge-result{
    background:#2F7D4A !important;
    color:#FFFFFF !important;
}

/* Зелёный счётчик на карточке «Результаты пробников» */

.student-mock-hub-card.has-new-result{
    border-color:rgba(47,125,74,.34) !important;
    background:#FCFFFD !important;
}

.student-mock-hub-card.has-new-result:hover{
    border-color:#2F7D4A !important;
}

.student-mock-hub-badge.student-mock-hub-badge-result{
    background:#2F7D4A !important;
    box-shadow:0 9px 20px rgba(47,125,74,.19) !important;
}

/* Уведомление при первом открытии новых результатов */

.student-mock-new-results-notice{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:22px;
    padding:18px 20px;

    border:1px solid rgba(47,125,74,.24);
    border-radius:18px;
    background:#F0FAF3;
}

.student-mock-new-results-notice > b{
    min-width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0 10px;
    border-radius:14px;

    background:#2F7D4A;
    color:#FFFFFF;

    font-size:14px;
    font-weight:900;
    line-height:1;
    font-variant-numeric:tabular-nums;
    box-shadow:0 7px 16px rgba(47,125,74,.17);
}

.student-mock-new-results-notice strong,
.student-mock-new-results-notice span{
    display:block;
}

.student-mock-new-results-notice strong{
    margin-bottom:4px;
    color:#245D38;
    font-size:15px;
    font-weight:800;
}

.student-mock-new-results-notice span{
    color:#557260;
    font-size:12px;
    font-weight:600;
    line-height:1.45;
}

@media(max-width:700px){
    .student-cabinet-sidebar .menu a.mock-exam-menu-link{
        grid-template-columns:40px minmax(0,1fr) auto !important;
        column-gap:9px !important;
    }

    .student-cabinet-sidebar .mock-exam-menu-link
    .sidebar-menu-badges > .sidebar-menu-badge{
        width:37px !important;
        min-width:37px !important;
        max-width:37px !important;
        height:37px !important;
        min-height:37px !important;
        max-height:37px !important;
        border-radius:11px !important;
        font-size:11px !important;
    }
}

/* =========================================================
   SA | SCHOOL — КОМПАКТНАЯ ПРОВЕРКА ДОМАШНЕГО ЗАДАНИЯ
   И ПОЛНЫЙ РАЗБОР ОТВЕТОВ УЧЕНИКА
   ========================================================= */

.teacher-homework-review-page{
    max-width:1120px !important;
}

.teacher-homework-review-card{
    padding:28px !important;
}

.teacher-homework-review-header{
    align-items:flex-start !important;
    gap:22px !important;
    margin-bottom:22px !important;
}

.teacher-homework-review-kicker{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    line-height:1.3;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.teacher-homework-review-header .student-name{
    margin-bottom:6px !important;
    font-size:27px !important;
    font-weight:700 !important;
    line-height:1.22 !important;
    letter-spacing:-.022em !important;
}

.teacher-homework-review-header .student-subtitle{
    color:#777 !important;
    font-size:13px !important;
    font-weight:600 !important;
}

.teacher-homework-review-actions{
    display:flex !important;
    flex-wrap:wrap !important;
    justify-content:flex-end !important;
    gap:8px !important;
}

.teacher-homework-review-actions .button{
    min-height:42px !important;
    padding:10px 15px !important;
    font-size:12px !important;
}

.teacher-homework-review-overview{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-bottom:20px;
}

.teacher-homework-review-info{
    min-height:82px;
    padding:14px 16px;
    border-radius:15px;
    background:#F7F2EA;
}

.teacher-homework-review-info > span,
.teacher-homework-review-info > strong{
    display:block;
}

.teacher-homework-review-info > span{
    margin-bottom:7px;
    color:#8A8279;
    font-size:10px;
    font-weight:800;
    line-height:1.25;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.teacher-homework-review-info > strong{
    color:#2E2A28;
    font-size:14px;
    font-weight:700;
    line-height:1.35;
}

.teacher-homework-status{
    width:fit-content;
    padding:6px 9px;
    border-radius:999px;
    font-size:11px !important;
    font-weight:800 !important;
}

.teacher-homework-status.checked{
    background:#E5F6EA;
    color:#21753B;
}

.teacher-homework-status.completed{
    background:#FFF0C2;
    color:#8A6500;
}

.teacher-homework-status.assigned{
    background:#FBE7E7;
    color:#A33232;
}

.teacher-homework-review-section{
    margin-top:16px;
    padding:21px;
    border:1px solid #EEE4D6;
    border-radius:19px;
    background:#FFFFFF;
}

.teacher-homework-section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:16px;
}

.teacher-homework-section-heading > div > span{
    display:block;
    margin-bottom:5px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.teacher-homework-section-heading h2{
    color:#2E2A28;
    font-size:20px;
    font-weight:700;
    line-height:1.25;
}

.teacher-homework-description-section > p{
    max-width:840px;
    color:#3C3936;
    font-size:14px;
    font-weight:500;
    line-height:1.65;
}

.teacher-homework-muted{
    color:#8A8279 !important;
}

.teacher-homework-link-button{
    margin-top:15px;
}

/* Сводка тренажёра */

.teacher-trainer-summary-section{
    background:#FFFDF9;
}

.teacher-trainer-stat-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}

.teacher-trainer-stat-grid > div{
    padding:14px;
    border-radius:14px;
    background:#F7F2EA;
}

.teacher-trainer-stat-grid span,
.teacher-trainer-stat-grid strong{
    display:block;
}

.teacher-trainer-stat-grid span{
    margin-bottom:5px;
    color:#8A8279;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.teacher-trainer-stat-grid strong{
    color:#2E2A28;
    font-size:22px;
    font-weight:750;
    line-height:1;
}

.teacher-trainer-stat-grid .correct{
    background:#EEF8F1;
}

.teacher-trainer-stat-grid .correct strong{
    color:#21753B;
}

.teacher-trainer-stat-grid .wrong{
    background:#FBEFEF;
}

.teacher-trainer-stat-grid .wrong strong{
    color:#A33232;
}

.teacher-trainer-task-list{
    display:grid;
    gap:8px;
}

.teacher-trainer-task-row{
    display:grid;
    grid-template-columns:36px minmax(0,1fr) auto;
    align-items:center;
    gap:11px;
    min-height:52px;
    padding:10px 13px;
    border:1px solid #EEE4D6;
    border-radius:13px;
    background:#FFFFFF;
}

.teacher-trainer-task-number{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#FBF5E8;
    color:#B88B2E;
    font-size:12px;
    font-weight:850;
}

.teacher-trainer-task-row strong{
    color:#2E2A28;
    font-size:13px;
    font-weight:650;
    line-height:1.35;
}

.teacher-trainer-task-row small{
    color:#777;
    font-size:11px;
    font-weight:700;
}

/* Фильтры ответов */

.teacher-answer-review-section{
    background:#FCFAF6;
}

.teacher-answer-review-heading{
    align-items:center;
}

.teacher-answer-filters{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.teacher-answer-filter{
    min-height:36px;
    padding:8px 12px;
    border:1px solid #E4D8C8;
    border-radius:11px;
    background:#FFFFFF;
    color:#655F59;
    font-family:'Montserrat',Arial,sans-serif;
    font-size:11px;
    font-weight:750;
    cursor:pointer;
    transition:.18s ease;
}

.teacher-answer-filter:hover{
    border-color:#B89B5E;
    color:#7A2528;
}

.teacher-answer-filter.active{
    border-color:#7A2528;
    background:#7A2528;
    color:#FFFFFF;
}

.teacher-answer-list{
    display:grid;
    gap:13px;
}

/* Карточка одного ответа */

.teacher-answer-card{
    padding:18px;
    border:1px solid #E9DFD1;
    border-left-width:4px;
    border-radius:17px;
    background:#FFFFFF;
}

.teacher-answer-card.correct{
    border-left-color:#3A8A55;
}

.teacher-answer-card.wrong{
    border-left-color:#A33232;
}

.teacher-answer-card[hidden]{
    display:none !important;
}

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

.teacher-answer-task-label{
    display:block;
    margin-bottom:5px;
    color:#8A8279;
    font-size:10px;
    font-weight:800;
    line-height:1.35;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.teacher-answer-card-header h3{
    color:#2E2A28;
    font-size:17px;
    font-weight:700;
    line-height:1.3;
}

.teacher-answer-result{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:31px;
    padding:6px 10px;
    border-radius:999px;
    font-size:10px;
    font-weight:850;
    line-height:1;
}

.teacher-answer-result.correct{
    background:#E5F6EA;
    color:#21753B;
}

.teacher-answer-result.wrong{
    background:#FBE7E7;
    color:#A33232;
}

.teacher-answer-question{
    margin-bottom:14px;
    padding:15px 16px;
    border-radius:14px;
    background:#F8F4ED;
    color:#2E2A28;
    font-size:13px;
    font-weight:500;
    line-height:1.65;
    white-space:normal;
}

.teacher-answer-comparison{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.teacher-answer-comparison > div{
    min-height:88px;
    padding:13px 14px;
    border-radius:13px;
}

.teacher-answer-comparison span,
.teacher-answer-comparison strong{
    display:block;
}

.teacher-answer-comparison span{
    margin-bottom:7px;
    font-size:9px;
    font-weight:850;
    line-height:1.3;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.teacher-answer-comparison strong{
    font-size:13px;
    font-weight:700;
    line-height:1.5;
    word-break:break-word;
}

.teacher-answer-comparison .student-answer{
    background:#FBEFEF;
}

.teacher-answer-card.correct .teacher-answer-comparison .student-answer{
    background:#EEF8F1;
}

.teacher-answer-comparison .student-answer span{
    color:#A33232;
}

.teacher-answer-card.correct .teacher-answer-comparison .student-answer span{
    color:#21753B;
}

.teacher-answer-comparison .student-answer strong{
    color:#2E2A28;
}

.teacher-answer-comparison .correct-answer{
    background:#EEF8F1;
}

.teacher-answer-comparison .correct-answer span{
    color:#21753B;
}

.teacher-answer-comparison .correct-answer strong{
    color:#245D38;
}

.teacher-answer-explanation{
    margin-top:11px;
    border:1px solid #E7DBC9;
    border-radius:12px;
    background:#FFF9ED;
}

.teacher-answer-explanation summary{
    padding:11px 13px;
    color:#7A2528;
    font-size:11px;
    font-weight:750;
    cursor:pointer;
    list-style:none;
}

.teacher-answer-explanation summary::-webkit-details-marker{
    display:none;
}

.teacher-answer-explanation summary::after{
    content:"+";
    float:right;
    color:#B88B2E;
    font-size:15px;
    line-height:1;
}

.teacher-answer-explanation[open] summary::after{
    content:"−";
}

.teacher-answer-explanation p{
    padding:0 13px 13px;
    color:#4D4843;
    font-size:12px;
    font-weight:500;
    line-height:1.6;
}

.teacher-answer-time{
    display:block;
    margin-top:10px;
    color:#999087;
    font-size:9px;
    font-weight:650;
}

.teacher-answer-empty,
.teacher-answer-empty-filter{
    padding:24px;
    border:1px dashed #DCCDB8;
    border-radius:14px;
    background:#FFFFFF;
    color:#817970;
    font-size:13px;
    font-weight:600;
    text-align:center;
}

/* Форма проверки */

.teacher-homework-check-section{
    background:#FFFDF9;
}

.teacher-homework-check-form{
    max-width:none !important;
}

.teacher-homework-check-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.teacher-homework-check-form .form-group{
    margin-bottom:14px !important;
}

.teacher-homework-check-form label{
    margin-bottom:7px !important;
    color:#393633 !important;
    font-size:12px !important;
    font-weight:700 !important;
}

.teacher-homework-check-form .form-control{
    min-height:44px !important;
    padding:11px 13px !important;
    border-radius:11px !important;
    background:#F7F2EA !important;
    font-size:13px !important;
    font-weight:500 !important;
}

.teacher-homework-check-form textarea.form-control{
    min-height:112px !important;
    line-height:1.55 !important;
}

.teacher-homework-save-button{
    min-width:190px;
    min-height:46px !important;
}

/* Адаптив */

@media(max-width:900px){
    .teacher-homework-review-overview{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .teacher-trainer-stat-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .teacher-answer-review-heading{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:700px){
    .teacher-homework-review-card{
        padding:20px !important;
    }

    .teacher-homework-review-header{
        flex-direction:column;
    }

    .teacher-homework-review-actions{
        width:100%;
        justify-content:flex-start !important;
    }

    .teacher-homework-review-overview,
    .teacher-homework-check-grid,
    .teacher-answer-comparison{
        grid-template-columns:1fr;
    }

    .teacher-homework-review-section{
        padding:17px;
    }

    .teacher-answer-card-header{
        flex-direction:column;
    }

    .teacher-answer-result{
        align-self:flex-start;
    }
}

/* =========================================================
   SA | SCHOOL — КОМПАКТНАЯ СТРАНИЦА ДОМАШНЕГО ЗАДАНИЯ УЧЕНИКА
   ========================================================= */

.student-homework-view-page{
    max-width:1080px;
}

.student-homework-view-card{
    padding:28px !important;
}

.student-homework-view-header{
    align-items:flex-start !important;
    gap:22px !important;
    margin-bottom:22px !important;
}

.student-homework-view-kicker{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    line-height:1.3;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.student-homework-view-header .student-name{
    margin-bottom:7px !important;
    font-size:29px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    letter-spacing:-.024em !important;
}

.student-homework-view-header .student-subtitle{
    color:#817A73 !important;
    font-size:13px !important;
    font-weight:600 !important;
}

.student-homework-view-header .student-homework-top-actions{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:8px;
}

.student-homework-view-header .button{
    min-height:43px !important;
    padding:10px 16px !important;
    font-size:12px !important;
}

.student-homework-description,
.student-homework-teacher-comment{
    margin-top:16px;
    padding:19px 21px;
    border:1px solid #EEE4D6;
    border-radius:17px;
    background:#FFFFFF;
}

.student-homework-description > span,
.student-homework-teacher-comment > span{
    display:block;
    margin-bottom:8px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.student-homework-description p,
.student-homework-teacher-comment p{
    margin:0;
    color:#3E3A36;
    font-size:14px;
    font-weight:500;
    line-height:1.65;
}

.student-homework-teacher-comment{
    border-left:4px solid #B89B5E;
    border-radius:0 17px 17px 0;
    background:#FFF9ED;
}

.student-homework-action-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:16px;
    padding:21px;
    border:1px solid #E7D7B8;
    border-radius:18px;
    background:#FFF9ED;
}

.student-homework-action-card span,
.student-homework-action-card strong{
    display:block;
}

.student-homework-action-card span{
    margin-bottom:5px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.student-homework-action-card strong{
    color:#2E2A28;
    font-size:16px;
    font-weight:700;
    line-height:1.35;
}

.student-homework-trainer-card{
    margin-top:16px;
    padding:21px;
    border:1px solid #E8D7AD;
    border-radius:19px;
    background:#FFF9E8;
}

.student-homework-trainer-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:14px;
}

.student-homework-trainer-heading span{
    display:block;
    margin-bottom:5px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.student-homework-trainer-heading h2{
    color:#7A2528;
    font-size:20px;
    font-weight:700;
    line-height:1.25;
}

.student-homework-trainer-heading > b{
    flex:0 0 auto;
    padding:7px 10px;
    border-radius:999px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:11px;
    font-weight:850;
    line-height:1;
}

.student-homework-trainer-list{
    display:grid;
    gap:8px;
}

.student-homework-trainer-row{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:11px;
    min-height:51px;
    padding:9px 12px;
    border:1px solid #EEE2CF;
    border-radius:13px;
    background:#FFFFFF;
}

.student-homework-trainer-row > span{
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#FBF5E8;
    color:#B88B2E;
    font-size:12px;
    font-weight:850;
}

.student-homework-trainer-row > strong{
    color:#2E2A28;
    font-size:13px;
    font-weight:650;
    line-height:1.4;
}

.student-homework-trainer-row > small{
    color:#777;
    font-size:11px;
    font-weight:700;
}

.student-homework-trainer-action{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #E8DCC8;
}

.student-homework-trainer-action p{
    margin:0;
    color:#777;
    font-size:12px;
    font-weight:600;
    line-height:1.5;
}

.student-homework-empty{
    margin-top:16px;
}

/* На случай старого HTML из кэша */
.student-homework-view-card > .info-grid{
    display:none !important;
}

/* Компактное завершение домашки */

.trainer-homework-finished-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:8px;
    padding:17px 18px;
    border:1px solid #D6E9DB;
    border-radius:15px;
    background:#F3FAF5;
}

.trainer-homework-finished-bar span{
    display:block;
    margin-bottom:4px;
    color:#21753B;
    font-size:13px;
    font-weight:800;
    line-height:1.35;
}

.trainer-homework-finished-bar p{
    margin:0;
    color:#5D7563;
    font-size:12px;
    font-weight:600;
    line-height:1.45;
}

.trainer-homework-finished-bar p b{
    color:#245D38;
}

.trainer-homework-finished-bar .button{
    flex:0 0 auto;
    min-height:41px !important;
    padding:10px 15px !important;
    font-size:12px !important;
}

/* Старый огромный блок принудительно делаем компактным */
.trainer-homework-complete-card{
    max-width:100% !important;
    margin-top:8px !important;
    padding:17px 18px !important;
    border-radius:15px !important;
}

@media(max-width:700px){
    .student-homework-view-card{
        padding:20px !important;
    }

    .student-homework-view-header{
        flex-direction:column;
    }

    .student-homework-view-header .student-homework-top-actions{
        width:100%;
        justify-content:flex-start;
    }

    .student-homework-action-card,
    .student-homework-trainer-action,
    .trainer-homework-finished-bar{
        align-items:flex-start;
        flex-direction:column;
    }

    .student-homework-action-card .button,
    .student-homework-trainer-action .button,
    .trainer-homework-finished-bar .button{
        width:100%;
    }
}

/* =========================================================
   SA | SCHOOL — ФИНАЛЬНАЯ КОМПАКТНАЯ ВЕРСИЯ ДОМАШКИ ИЗ ТРЕНАЖЁРА
   ========================================================= */

.trainer-homework-page{
    max-width:1060px !important;
}

.trainer-homework-page-card{
    padding:28px !important;
    border-radius:22px !important;
    box-shadow:0 14px 36px rgba(122,37,40,.065) !important;
}

.trainer-homework-page-header{
    gap:20px !important;
    margin-bottom:24px !important;
    padding-bottom:20px !important;
}

.trainer-homework-eyebrow{
    margin-bottom:7px !important;
    font-size:10px !important;
    font-weight:850 !important;
    letter-spacing:.11em !important;
}

.trainer-homework-page-header .student-name{
    margin-bottom:7px !important;
    font-size:29px !important;
    font-weight:700 !important;
    line-height:1.18 !important;
    letter-spacing:-.025em !important;
}

.trainer-homework-page-header .student-subtitle{
    font-size:13px !important;
    font-weight:600 !important;
    line-height:1.45 !important;
}

.trainer-homework-back-button{
    min-width:106px !important;
    min-height:43px !important;
    padding:10px 17px !important;
    border-radius:12px !important;
    font-size:12px !important;
}

/* Сообщение после ответа */

.trainer-homework-feedback{
    gap:5px !important;
    margin-bottom:18px !important;
    padding:14px 17px !important;
    border-radius:14px !important;
    font-size:13px !important;
    line-height:1.5 !important;
}

.trainer-homework-feedback-title{
    font-size:14px !important;
}

.trainer-homework-explanation{
    margin-top:8px !important;
    padding-top:9px !important;
    font-size:12px !important;
    font-weight:550 !important;
}

/* Состав домашней работы */

.trainer-homework-summary{
    margin-bottom:24px !important;
    padding:20px !important;
    border-radius:18px !important;
}

.trainer-homework-section-heading,
.trainer-homework-progress-heading{
    gap:16px !important;
}

.trainer-homework-section-heading{
    margin-bottom:14px !important;
}

.trainer-homework-section-heading > div > span,
.trainer-homework-progress-heading > div > span{
    margin-bottom:5px !important;
    font-size:10px !important;
    font-weight:850 !important;
    letter-spacing:.1em !important;
}

.trainer-homework-section-heading h2,
.trainer-homework-progress-heading h2{
    font-size:22px !important;
    font-weight:700 !important;
    line-height:1.22 !important;
}

.trainer-homework-section-heading > b{
    padding:7px 10px !important;
    font-size:11px !important;
    font-weight:800 !important;
}

.trainer-homework-summary-list{
    gap:8px !important;
}

.trainer-homework-summary-item{
    min-height:50px !important;
    padding:11px 13px !important;
    border-radius:13px !important;
    font-size:13px !important;
    line-height:1.4 !important;
}

.trainer-homework-summary-item strong{
    font-size:13px !important;
    font-weight:650 !important;
}

.trainer-homework-summary-item span{
    padding-left:10px !important;
    font-size:12px !important;
    font-weight:700 !important;
}

/* Прогресс */

.trainer-homework-progress-heading{
    margin-bottom:12px !important;
}

.trainer-homework-progress-heading > strong{
    font-size:25px !important;
    font-weight:750 !important;
}

.trainer-homework-progress-track{
    height:8px !important;
    margin-bottom:16px !important;
}

.trainer-homework-stats{
    gap:10px !important;
    margin-bottom:22px !important;
}

.trainer-homework-stat-card{
    min-height:86px !important;
    padding:14px 16px !important;
    border-radius:15px !important;
}

.trainer-homework-stat-card span{
    margin-bottom:8px !important;
    font-size:11px !important;
    font-weight:750 !important;
}

.trainer-homework-stat-card strong{
    font-size:27px !important;
    font-weight:750 !important;
}

.trainer-homework-stat-card small{
    font-size:12px !important;
    font-weight:700 !important;
}

/* Карточка текущего вопроса */

.trainer-homework-question-card{
    padding:21px !important;
    border-radius:18px !important;
}

.trainer-homework-question-heading{
    gap:14px !important;
    margin-bottom:16px !important;
    padding-bottom:14px !important;
}

.trainer-homework-question-heading span{
    padding:6px 9px !important;
    font-size:9px !important;
    font-weight:850 !important;
}

.trainer-homework-question-heading strong{
    font-size:15px !important;
    font-weight:650 !important;
    line-height:1.4 !important;
}

.trainer-homework-question-text{
    padding:17px 19px !important;
    border-radius:14px !important;
    font-size:14px !important;
    font-weight:500 !important;
    line-height:1.65 !important;
}

.student-card form.trainer-homework-answer-form{
    margin-top:18px !important;
}

.trainer-homework-answer-form .form-group{
    max-width:600px !important;
    margin-bottom:13px !important;
}

.trainer-homework-answer-form label{
    margin-bottom:6px !important;
    font-size:12px !important;
}

.trainer-homework-answer-form .form-control{
    min-height:45px !important;
    padding:11px 13px !important;
    border-radius:11px !important;
    font-size:13px !important;
}

.trainer-homework-answer-form .button{
    min-height:43px !important;
    padding:10px 18px !important;
    border-radius:12px !important;
    font-size:12px !important;
}

/* Завершённая домашка */

.trainer-homework-finished-bar{
    padding:14px 16px !important;
    border-radius:14px !important;
}

.trainer-homework-finished-bar span{
    font-size:12px !important;
}

.trainer-homework-finished-bar p{
    font-size:11px !important;
}

.trainer-homework-finished-bar .button{
    min-height:39px !important;
    padding:9px 14px !important;
    font-size:11px !important;
}

@media(max-width:900px){
    .trainer-homework-page-card{
        padding:24px !important;
    }

    .trainer-homework-page-header .student-name{
        font-size:27px !important;
    }
}

@media(max-width:620px){
    .trainer-homework-page-card{
        padding:18px !important;
    }

    .trainer-homework-section-heading h2,
    .trainer-homework-progress-heading h2{
        font-size:20px !important;
    }

    .trainer-homework-summary{
        padding:17px !important;
    }

    .trainer-homework-question-card{
        padding:17px !important;
    }

    .trainer-homework-question-text{
        padding:15px !important;
        font-size:13px !important;
    }
}

/* =========================================================
   SA | SCHOOL — ПРОВЕРКА ДОМАШКИ ОДНОЙ КНОПКОЙ ВВЕРХУ
   ========================================================= */

.teacher-homework-review-actions{
    align-items:center !important;
}

.teacher-homework-mark-checked-form{
    margin:0 !important;
    padding:0 !important;
}

.teacher-homework-mark-checked-button{
    min-height:42px !important;
    padding:10px 16px !important;
    border-radius:12px !important;
    background:#7A2528 !important;
    color:#FFFFFF !important;
    font-size:12px !important;
    font-weight:750 !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
    box-shadow:0 8px 18px rgba(122,37,40,.15) !important;
}

.teacher-homework-mark-checked-button:hover{
    background:#682023 !important;
    color:#FFFFFF !important;
    transform:translateY(-1px) !important;
}

.teacher-homework-checked-badge{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 15px;
    border:1px solid #CFE5D5;
    border-radius:12px;
    background:#EEF8F1;
    color:#21753B;
    font-size:12px;
    font-weight:800;
    line-height:1.2;
    white-space:nowrap;
}

/* Старый нижний блок проверки больше не нужен */
.teacher-homework-check-section{
    display:none !important;
}

@media(max-width:700px){
    .teacher-homework-mark-checked-form,
    .teacher-homework-mark-checked-button,
    .teacher-homework-checked-badge{
        width:100% !important;
    }
}

/* =========================================================
   SA | SCHOOL — РАЗДЕЛ «ФИНАНСЫ» ПРЕПОДАВАТЕЛЯ
   ========================================================= */

.teacher-finance-page{
    max-width:1040px !important;
}

.teacher-finance-header{
    margin-bottom:24px !important;
}

.teacher-finance-kicker{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    line-height:1.3;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.teacher-finance-header h1{
    margin:0 0 8px;
    color:#2E2A28;
    font-size:31px !important;
    font-weight:700 !important;
    line-height:1.18 !important;
    letter-spacing:-.025em !important;
}

.teacher-finance-header p{
    max-width:660px;
    margin:0;
    color:#777;
    font-size:13px;
    font-weight:600;
    line-height:1.55;
}

.teacher-finance-period-card{
    display:grid;
    grid-template-columns:46px minmax(0,1fr) 46px;
    align-items:center;
    gap:14px;
    margin-bottom:16px;
    padding:17px;
    border:1px solid #EEE4D6;
    border-radius:18px;
    background:#FFFFFF;
    box-shadow:0 12px 30px rgba(85,63,42,.05);
}

.teacher-finance-month-arrow{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border:1px solid #E5D7C3;
    border-radius:13px;
    background:#F8F3EA;
    color:#7A2528;
    font-size:25px;
    font-weight:500;
    line-height:1;
    text-decoration:none;
    transition:.18s ease;
}

.teacher-finance-month-arrow:hover{
    border-color:#B89B5E;
    background:#FBF5E8;
    transform:translateY(-1px);
}

.teacher-finance-period{
    text-align:center;
}

.teacher-finance-period span,
.teacher-finance-period strong{
    display:block;
}

.teacher-finance-period span{
    margin-bottom:4px;
    color:#8A8279;
    font-size:10px;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.teacher-finance-period strong{
    color:#2E2A28;
    font-size:19px;
    font-weight:700;
    line-height:1.3;
}

.teacher-finance-total-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    min-height:150px;
    padding:27px 30px;
    border:1px solid #E8D7AD;
    border-radius:21px;
    background:#FFF7DB;
    box-shadow:0 15px 36px rgba(122,37,40,.055);
}

.teacher-finance-total-card span{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.teacher-finance-total-card p{
    max-width:500px;
    margin:0;
    color:#777;
    font-size:13px;
    font-weight:600;
    line-height:1.5;
}

.teacher-finance-total-card > strong{
    flex:0 0 auto;
    color:#7A2528;
    font-size:38px;
    font-weight:750;
    line-height:1;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}

.teacher-finance-placeholder{
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:16px;
    padding:22px 24px;
    border:1px solid #EEE4D6;
    border-radius:18px;
    background:#FFFFFF;
}

.teacher-finance-placeholder-icon{
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    border-radius:15px;
    background:#F8F3EA;
    color:#B88B2E;
    font-size:20px;
    font-weight:800;
}

.teacher-finance-placeholder h2{
    margin:0 0 5px;
    color:#2E2A28;
    font-size:17px;
    font-weight:700;
    line-height:1.3;
}

.teacher-finance-placeholder p{
    max-width:700px;
    margin:0;
    color:#777;
    font-size:12px;
    font-weight:600;
    line-height:1.55;
}

@media(max-width:700px){
    .teacher-finance-total-card{
        align-items:flex-start;
        flex-direction:column;
        padding:23px;
    }

    .teacher-finance-total-card > strong{
        font-size:32px;
    }

    .teacher-finance-placeholder{
        align-items:flex-start;
    }
}

/* =========================================================
   SA | SCHOOL — ФИНАНСЫ: ОПЛАТЫ, АБОНЕМЕНТЫ И КАЛЕНДАРЬ
   ========================================================= */

.teacher-finance-payments-page{
    max-width:1180px !important;
}

.teacher-finance-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-bottom:18px;
}

.teacher-finance-summary-card{
    min-height:132px;
    padding:22px;
    border:1px solid #E9DFD1;
    border-radius:19px;
    background:#FFFFFF;
    box-shadow:0 12px 30px rgba(85,63,42,.045);
}

.teacher-finance-summary-card > span,
.teacher-finance-summary-card > strong,
.teacher-finance-summary-card > small{
    display:block;
}

.teacher-finance-summary-card > span{
    margin-bottom:12px;
    color:#8A8279;
    font-size:10px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.teacher-finance-summary-card > strong{
    margin-bottom:8px;
    color:#2E2A28;
    font-size:30px;
    font-weight:750;
    line-height:1;
    font-variant-numeric:tabular-nums;
}

.teacher-finance-summary-card > small{
    color:#817970;
    font-size:11px;
    font-weight:600;
    line-height:1.4;
}

.teacher-finance-summary-card.forecast{
    background:#FFF9E8;
    border-color:#E8D7AD;
}

.teacher-finance-summary-card.forecast > strong{
    color:#8B6820;
}

.teacher-finance-summary-card.actual{
    background:#F1FAF4;
    border-color:#CFE5D5;
}

.teacher-finance-summary-card.actual > strong{
    color:#21753B;
}

.teacher-finance-summary-card.remaining{
    background:#FDF2F2;
    border-color:#ECCFCF;
}

.teacher-finance-summary-card.remaining > strong{
    color:#A33232;
}

.teacher-finance-calendar-section,
.teacher-finance-subscriptions-section{
    margin-top:18px;
    padding:24px;
    border:1px solid #EEE4D6;
    border-radius:21px;
    background:#FFFFFF;
    box-shadow:0 13px 34px rgba(85,63,42,.05);
}

.teacher-finance-section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:17px;
}

.teacher-finance-section-heading > div > span{
    display:block;
    margin-bottom:5px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.teacher-finance-section-heading h2{
    color:#2E2A28;
    font-size:22px;
    font-weight:700;
    line-height:1.25;
}

.teacher-finance-legend{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:7px;
}

.teacher-finance-legend span{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:6px 9px;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
}

.teacher-finance-legend .paid{
    background:#E5F6EA;
    color:#21753B;
}

.teacher-finance-legend .unpaid{
    background:#FBE7E7;
    color:#A33232;
}

.teacher-finance-legend .future{
    background:#F7F2EA;
    color:#777;
}

.teacher-finance-legend .canceled{
    background:#ECECEC;
    color:#777;
}

.teacher-finance-week-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-bottom:15px;
}

.teacher-finance-week-tabs a{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 11px;
    border:1px solid #E3D6C4;
    border-radius:10px;
    background:#F8F3EA;
    color:#655E57;
    font-size:10px;
    font-weight:750;
    text-decoration:none;
}

.teacher-finance-week-tabs a:hover,
.teacher-finance-week-tabs a.active{
    border-color:#7A2528;
    background:#7A2528;
    color:#FFFFFF;
}

.teacher-finance-calendar-scroll{
    overflow-x:auto;
    padding-bottom:6px;
}

.teacher-finance-calendar-days,
.teacher-finance-calendar-grid{
    min-width:1030px;
    display:grid;
    grid-template-columns:58px repeat(7,minmax(132px,1fr));
}

.teacher-finance-calendar-days{
    border:1px solid #EADFD0;
    border-bottom:0;
    border-radius:15px 15px 0 0;
    overflow:hidden;
    background:#FAF7F1;
}

.teacher-finance-calendar-days > div{
    min-height:58px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-left:1px solid #EADFD0;
}

.teacher-finance-calendar-days > div:first-child{
    border-left:0;
}

.teacher-finance-calendar-days > div.outside-month{
    opacity:.4;
}

.teacher-finance-calendar-days strong{
    color:#2E2A28;
    font-size:15px;
    line-height:1;
}

.teacher-finance-calendar-days span{
    margin-top:5px;
    color:#8A8279;
    font-size:9px;
    font-weight:700;
}

.teacher-finance-calendar-grid{
    border-right:1px solid #EADFD0;
    border-bottom:1px solid #EADFD0;
}

.teacher-finance-calendar-time,
.teacher-finance-calendar-cell{
    min-height:86px;
    border-top:1px solid #EADFD0;
    border-left:1px solid #EADFD0;
}

.teacher-finance-calendar-time{
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding-top:10px;
    background:#FAF7F1;
    color:#8A8279;
    font-size:9px;
    font-weight:700;
}

.teacher-finance-calendar-cell{
    padding:5px;
    background:#FFFDF9;
}

.teacher-finance-calendar-cell form{
    margin:0 0 4px !important;
}

.teacher-finance-lesson{
    width:100%;
    min-height:54px;
    display:block;
    padding:8px 9px;
    border:1px solid transparent;
    border-radius:10px;
    font-family:'Montserrat',Arial,sans-serif;
    text-align:left;
    cursor:pointer;
    transition:.17s ease;
}

.teacher-finance-lesson:hover:not(:disabled){
    transform:translateY(-1px);
    filter:brightness(.98);
}

.teacher-finance-lesson strong,
.teacher-finance-lesson span,
.teacher-finance-lesson small{
    display:block;
}

.teacher-finance-lesson strong{
    margin-bottom:3px;
    font-size:10px;
    font-weight:800;
    line-height:1.25;
}

.teacher-finance-lesson span{
    margin-bottom:3px;
    font-size:8px;
    font-weight:650;
    line-height:1.3;
}

.teacher-finance-lesson small{
    font-size:8px;
    font-weight:750;
    line-height:1.3;
}

.teacher-finance-lesson.paid{
    border-color:#BFDCC7;
    background:#E8F7EC;
    color:#216B38;
}

.teacher-finance-lesson.unpaid{
    border-color:#E7BDBD;
    background:#FBEAEA;
    color:#9A2D2D;
}

.teacher-finance-lesson.future{
    border-color:#E3D8C9;
    background:#F7F2EA;
    color:#766F68;
}

.teacher-finance-lesson.canceled{
    border-color:#D8D8D8;
    background:#ECECEC;
    color:#888;
    text-decoration:line-through;
    cursor:default;
}

.teacher-finance-calendar-note{
    margin:12px 0 0;
    color:#817970;
    font-size:11px;
    font-weight:600;
    line-height:1.5;
}

.teacher-finance-subscription-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.teacher-finance-subscription-card{
    padding:18px;
    border:1px solid #E9DFD1;
    border-radius:17px;
    background:#FCFAF6;
}

.teacher-finance-subscription-header{
    margin-bottom:13px;
}

.teacher-finance-subscription-header span{
    display:block;
    margin-bottom:4px;
    color:#B88B2E;
    font-size:9px;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.teacher-finance-subscription-header h3{
    color:#2E2A28;
    font-size:17px;
    font-weight:700;
    line-height:1.3;
}

.teacher-finance-subscription-list,
.teacher-finance-group-list{
    display:grid;
    gap:8px;
}

.teacher-finance-group-block{
    padding:11px;
    border:1px solid #E7DCCB;
    border-radius:13px;
    background:#FFFFFF;
}

.teacher-finance-group-block h4{
    margin:0 0 8px;
    color:#7A2528;
    font-size:12px;
    font-weight:800;
}

.teacher-finance-subscription-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    min-height:58px;
    padding:10px 11px;
    border:1px solid #E6DCCF;
    border-radius:12px;
    background:#FFFFFF;
}

.teacher-finance-group-block .teacher-finance-subscription-row + .teacher-finance-subscription-row{
    margin-top:7px;
}

.teacher-finance-subscription-row.paid{
    border-color:#C6E0CD;
    background:#F0FAF3;
}

.teacher-finance-subscription-row.unpaid{
    border-color:#E8CACA;
    background:#FDF3F3;
}

.teacher-finance-subscription-row strong,
.teacher-finance-subscription-row span{
    display:block;
}

.teacher-finance-subscription-row strong{
    margin-bottom:4px;
    color:#2E2A28;
    font-size:12px;
    font-weight:750;
}

.teacher-finance-subscription-row span{
    color:#777;
    font-size:10px;
    font-weight:650;
}

.teacher-finance-subscription-row .button{
    min-height:36px !important;
    padding:8px 11px !important;
    border-radius:10px !important;
    font-size:9px !important;
}

.teacher-finance-subscription-row.paid .button{
    border-color:#2F7D4A !important;
    background:#2F7D4A !important;
    color:#FFFFFF !important;
}

.teacher-finance-empty{
    padding:18px;
    border:1px dashed #DCCDB8;
    border-radius:12px;
    color:#817970;
    font-size:11px;
    font-weight:600;
    text-align:center;
}

.teacher-finance-settings{
    margin-top:18px;
    border:1px solid #E8DCCB;
    border-radius:17px;
    background:#FFFFFF;
    overflow:hidden;
}

.teacher-finance-settings > summary{
    padding:16px 19px;
    color:#7A2528;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    list-style:none;
}

.teacher-finance-settings > summary::-webkit-details-marker{
    display:none;
}

.teacher-finance-settings > summary::after{
    content:"+";
    float:right;
    color:#B88B2E;
    font-size:18px;
    line-height:1;
}

.teacher-finance-settings[open] > summary::after{
    content:"−";
}

.teacher-finance-settings-list{
    display:grid;
    gap:8px;
    padding:0 16px 16px;
}

.teacher-finance-settings-row{
    display:grid;
    grid-template-columns:minmax(180px,1fr) minmax(190px,.9fr) minmax(150px,.7fr) auto;
    align-items:center;
    gap:9px;
    padding:10px;
    border:1px solid #EAE0D2;
    border-radius:12px;
    background:#FCFAF6;
}

.teacher-finance-settings-student strong,
.teacher-finance-settings-student span{
    display:block;
}

.teacher-finance-settings-student strong{
    margin-bottom:3px;
    color:#2E2A28;
    font-size:11px;
    font-weight:750;
}

.teacher-finance-settings-student span{
    color:#817970;
    font-size:9px;
    font-weight:650;
}

.teacher-finance-settings-row .form-control{
    min-height:40px !important;
    padding:9px 10px !important;
    border-radius:10px !important;
    font-size:10px !important;
}

.teacher-finance-settings-row .button{
    min-height:40px !important;
    padding:9px 12px !important;
    font-size:9px !important;
}

.teacher-finance-fixed-type{
    min-height:40px;
    display:flex;
    align-items:center;
    padding:9px 10px;
    border-radius:10px;
    background:#F1E9DC;
    color:#655E57;
    font-size:10px;
    font-weight:700;
}

@media(max-width:980px){
    .teacher-finance-summary-grid,
    .teacher-finance-subscription-columns{
        grid-template-columns:1fr;
    }

    .teacher-finance-settings-row{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:620px){
    .teacher-finance-calendar-section,
    .teacher-finance-subscriptions-section{
        padding:18px;
    }

    .teacher-finance-section-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .teacher-finance-legend{
        justify-content:flex-start;
    }

    .teacher-finance-settings-row{
        grid-template-columns:1fr;
    }

    .teacher-finance-settings-row .button{
        width:100%;
    }
}

/* =========================================================
   SA | SCHOOL — СИНХРОНИЗАЦИЯ ФИНАНСОВ С ОПЛАТАМИ ГРУПП
   ========================================================= */

a.teacher-finance-lesson{
    text-decoration:none !important;
}

.teacher-finance-group-block-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:9px;
}

.teacher-finance-group-block-header h4{
    margin:0 !important;
}

.teacher-finance-group-block-header > a{
    color:#7A2528;
    font-size:9px;
    font-weight:800;
    text-decoration:none;
}

.teacher-finance-group-block-header > a:hover{
    text-decoration:underline;
}

.teacher-finance-subscription-link{
    color:inherit;
    text-decoration:none;
    transition:.17s ease;
}

.teacher-finance-subscription-link:hover{
    transform:translateY(-1px);
}

.teacher-finance-group-payment-status{
    min-width:90px;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    padding:8px 10px;
    border-radius:10px;
    font-size:9px !important;
    font-weight:850 !important;
    line-height:1.2;
    text-align:center;
}

.teacher-finance-subscription-link.paid
.teacher-finance-group-payment-status{
    background:#2F7D4A;
    color:#FFFFFF;
}

.teacher-finance-subscription-link.unpaid
.teacher-finance-group-payment-status{
    background:#7A2528;
    color:#FFFFFF;
}

@media(max-width:620px){
    .teacher-finance-group-block-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .teacher-finance-group-payment-status{
        min-width:78px;
    }
}

/* =========================================================
   SA | SCHOOL — НАПОМИНАНИЯ ОБ ОПЛАТЕ
   ========================================================= */

.teacher-finance-lesson-actions{
    position:relative;
}

.teacher-finance-lesson-actions > form:first-child{
    margin:0 !important;
}

.teacher-payment-reminder-form{
    margin:0 !important;
}

.teacher-finance-lesson-actions
.teacher-payment-reminder-form{
    position:absolute;
    top:5px;
    right:5px;
    z-index:3;
}

.teacher-payment-reminder-button{
    position:relative;
    width:31px;
    height:31px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    padding:0;
    border:1px solid #D8C39A;
    border-radius:9px;
    background:#FFFDF7;
    color:#7A2528;
    cursor:pointer;
    box-shadow:0 5px 13px rgba(74,49,25,.08);
    transition:.16s ease;
}

.teacher-payment-reminder-button:hover{
    border-color:#B89B5E;
    background:#FFF5D9;
    transform:translateY(-1px);
}

.teacher-payment-reminder-button svg{
    width:15px;
    height:15px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.teacher-payment-reminder-button b{
    position:absolute;
    top:-7px;
    right:-7px;
    min-width:18px;
    height:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 4px;
    border:2px solid #FFF;
    border-radius:999px;
    background:#7A2528;
    color:#FFF;
    font-size:8px;
    font-weight:850;
    line-height:1;
}

.teacher-finance-row-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
}

.teacher-finance-row-actions form{
    margin:0 !important;
}

.teacher-finance-group-subscription-row{
    grid-template-columns:minmax(0,1fr) auto;
}

.teacher-finance-group-subscription-row
.teacher-finance-subscription-link{
    display:block;
    min-width:0;
}

.student-payment-reminders{
    margin-bottom:18px;
    padding:21px;
    border:1px solid #E6C9C9;
    border-radius:19px;
    background:#FFF7F6;
    box-shadow:0 12px 30px rgba(122,37,40,.055);
}

.student-payment-reminders-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:13px;
}

.student-payment-reminders-heading span{
    display:block;
    margin-bottom:4px;
    color:#A66E21;
    font-size:9px;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.student-payment-reminders-heading h2{
    margin:0;
    color:#2E2A28;
    font-size:18px;
    font-weight:700;
    line-height:1.25;
}

.student-payment-reminders-heading > b{
    min-width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 9px;
    border-radius:12px;
    background:#7A2528;
    color:#FFF;
    font-size:11px;
    font-weight:850;
}

.student-payment-reminders-list{
    display:grid;
    gap:8px;
}

.student-payment-reminder-item{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    align-items:center;
    gap:12px;
    padding:12px 13px;
    border:1px solid #EAD4D4;
    border-radius:13px;
    background:#FFF;
}

.student-payment-reminder-icon{
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    background:#F7E8E7;
    color:#7A2528;
    font-size:16px;
    font-weight:850;
}

.student-payment-reminder-item strong,
.student-payment-reminder-item span{
    display:block;
}

.student-payment-reminder-item strong{
    color:#2E2A28;
    font-size:12px;
    font-weight:700;
    line-height:1.45;
}

.student-payment-reminder-item span{
    margin-top:4px;
    color:#817970;
    font-size:9px;
    font-weight:600;
    line-height:1.4;
}

.student-payment-reminders-note{
    margin:11px 0 0;
    color:#817970;
    font-size:9px;
    font-weight:600;
    line-height:1.45;
}

@media(max-width:620px){
    .teacher-finance-row-actions{
        align-items:flex-end;
        flex-direction:column;
    }

    .student-payment-reminders{
        padding:17px;
    }

    .student-payment-reminder-item{
        grid-template-columns:34px minmax(0,1fr);
    }

    .student-payment-reminder-icon{
        width:34px;
        height:34px;
    }
}

/* =========================================================
   SA | SCHOOL — ФИНАНСЫ ОТДЕЛЬНОЙ ГРУППЫ
   ========================================================= */

.teacher-finance-group-lesson strong{
    padding-right:0 !important;
}

.teacher-finance-group-lesson small{
    margin-top:4px;
}

.teacher-finance-group-summary-list{
    display:grid;
    gap:9px;
}

.teacher-finance-group-summary-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto 24px;
    align-items:center;
    gap:14px;
    min-height:70px;
    padding:13px 14px;
    border:1px solid #E6DCCF;
    border-radius:13px;
    color:inherit;
    text-decoration:none;
    transition:.17s ease;
}

.teacher-finance-group-summary-card:hover{
    transform:translateY(-1px);
}

.teacher-finance-group-summary-card.paid{
    border-color:#C6E0CD;
    background:#F0FAF3;
}

.teacher-finance-group-summary-card.unpaid{
    border-color:#E8CACA;
    background:#FDF3F3;
}

.teacher-finance-group-summary-card > div > strong,
.teacher-finance-group-summary-card > div > span{
    display:block;
}

.teacher-finance-group-summary-card > div > strong{
    margin-bottom:5px;
    color:#2E2A28;
    font-size:12px;
    font-weight:800;
}

.teacher-finance-group-summary-card > div > span{
    color:#777;
    font-size:9px;
    font-weight:650;
}

.teacher-finance-group-summary-money{
    text-align:right;
}

.teacher-finance-group-summary-money strong{
    margin-bottom:3px !important;
    color:#7A2528 !important;
}

.teacher-finance-group-summary-card.paid
.teacher-finance-group-summary-money strong{
    color:#21753B !important;
}

.teacher-finance-group-summary-arrow{
    color:#7A2528;
    font-size:23px;
    font-weight:500;
    line-height:1;
}

.teacher-finance-group-page-header{
    align-items:flex-start !important;
}

.teacher-finance-group-page-header h1{
    margin:0 0 8px;
}

.teacher-finance-group-members-card{
    margin-top:18px;
    padding:24px;
    border:1px solid #EEE4D6;
    border-radius:21px;
    background:#FFFFFF;
    box-shadow:0 13px 34px rgba(85,63,42,.05);
}

.teacher-finance-group-members-list{
    display:grid;
    gap:9px;
}

.teacher-finance-group-member-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 130px auto;
    align-items:center;
    gap:16px;
    min-height:72px;
    padding:13px 14px;
    border:1px solid #E7DDD0;
    border-radius:14px;
}

.teacher-finance-group-member-row.paid{
    border-color:#C6E0CD;
    background:#F0FAF3;
}

.teacher-finance-group-member-row.unpaid{
    border-color:#E8CACA;
    background:#FDF3F3;
}

.teacher-finance-group-member-main strong,
.teacher-finance-group-member-main span,
.teacher-finance-group-member-status span,
.teacher-finance-group-member-status small{
    display:block;
}

.teacher-finance-group-member-main strong{
    margin-bottom:5px;
    color:#2E2A28;
    font-size:13px;
    font-weight:800;
}

.teacher-finance-group-member-main span{
    color:#777;
    font-size:10px;
    font-weight:650;
}

.teacher-finance-group-member-status{
    text-align:right;
}

.teacher-finance-group-member-status span{
    color:#7A2528;
    font-size:10px;
    font-weight:850;
}

.teacher-finance-group-member-row.paid
.teacher-finance-group-member-status span{
    color:#21753B;
}

.teacher-finance-group-member-status small{
    margin-top:4px;
    color:#777;
    font-size:9px;
    font-weight:650;
}

.teacher-finance-group-member-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
}

.teacher-finance-group-member-actions
.teacher-payment-reminder-form{
    margin:0 !important;
}
.teacher-finance-group-member-actions
.compact-button{
    min-height:36px !important;
    padding:8px 11px !important;
    font-size:9px !important;
}

@media(max-width:800px){
    .teacher-finance-group-member-row{
        grid-template-columns:minmax(0,1fr) auto;
    }

    .teacher-finance-group-member-actions{
        grid-column:1 / -1;
        justify-content:flex-start;
    }

    .teacher-finance-group-member-status{
        text-align:right;
    }
}

@media(max-width:620px){
    .teacher-finance-group-summary-card{
        grid-template-columns:minmax(0,1fr) 20px;
    }

    .teacher-finance-group-summary-money{
        grid-column:1 / -1;
        grid-row:2;
        text-align:left;
    }

    .teacher-finance-group-summary-arrow{
        grid-column:2;
        grid-row:1;
    }

    .teacher-finance-group-members-card{
        padding:18px;
    }

    .teacher-finance-group-member-row{
        grid-template-columns:1fr;
    }

    .teacher-finance-group-member-status{
        text-align:left;
    }

    .teacher-finance-group-member-actions{
        grid-column:auto;
        flex-wrap:wrap;
    }
}

/* =========================================================
   SA | SCHOOL — ОПЛАТА ИЗ УВЕДОМЛЕНИЯ УЧЕНИКА
   ========================================================= */

.student-payment-reminder-item{
    grid-template-columns:38px minmax(0,1fr) auto !important;
}

.student-payment-reminder-content{
    min-width:0;
}

.student-payment-reminder-pay-button{
    min-height:39px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 14px;
    border-radius:11px;
    background:#7A2528;
    color:#FFFFFF;
    font-size:10px;
    font-weight:800;
    line-height:1.2;
    text-decoration:none;
    white-space:nowrap;
    box-shadow:0 8px 18px rgba(122,37,40,.14);
    transition:.17s ease;
}

.student-payment-reminder-pay-button:hover{
    background:#672023;
    color:#FFFFFF;
    transform:translateY(-1px);
}

.student-payment-page{
    max-width:980px !important;
}

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

.student-payment-page-header > div > span{
    display:block;
    margin-bottom:7px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.student-payment-page-header h1{
    margin:0 0 8px;
    color:#2E2A28;
    font-size:31px;
    font-weight:700;
    line-height:1.18;
    letter-spacing:-.025em;
}

.student-payment-page-header p{
    max-width:610px;
    margin:0;
    color:#777;
    font-size:13px;
    font-weight:600;
    line-height:1.55;
}

.student-payment-layout{
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);
    gap:18px;
    align-items:stretch;
}

.student-payment-details-card,
.student-payment-qr-card,
.student-payment-unavailable{
    border:1px solid #E9DFD1;
    border-radius:21px;
    background:#FFFFFF;
    box-shadow:0 14px 36px rgba(85,63,42,.055);
}

.student-payment-details-card{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    padding:27px;
}

.student-payment-card-kicker{
    display:block;
    margin-bottom:10px;
    color:#B88B2E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.student-payment-amount{
    display:block;
    margin-bottom:17px;
    color:#7A2528;
    font-size:42px;
    font-weight:750;
    line-height:1;
    letter-spacing:-.035em;
    font-variant-numeric:tabular-nums;
}

.student-payment-amount.small{
    font-size:23px;
    line-height:1.25;
}

.student-payment-description{
    margin:0 0 14px;
    color:#2E2A28;
    font-size:14px;
    font-weight:650;
    line-height:1.65;
}

.student-payment-reminder-date{
    margin-bottom:24px;
    color:#817970;
    font-size:10px;
    font-weight:600;
    line-height:1.5;
}

.student-payment-bank-button{
    width:100%;
    min-height:48px !important;
    margin-top:auto;
    border-radius:13px !important;
    font-size:12px !important;
}

.student-payment-status-note{
    margin:14px 0 0;
    color:#817970;
    font-size:10px;
    font-weight:600;
    line-height:1.55;
}

.student-payment-qr-card{
    padding:25px;
    text-align:center;
}

.student-payment-qr-heading span{
    display:block;
    margin-bottom:5px;
    color:#B88B2E;
    font-size:9px;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.student-payment-qr-heading h2{
    margin:0 0 18px;
    color:#2E2A28;
    font-size:19px;
    font-weight:700;
    line-height:1.35;
}

.student-payment-qr-frame{
    width:min(100%,420px);
    margin:0 auto;
    padding:16px;
    border:1px solid #E7DCCB;
    border-radius:18px;
    background:#FFFFFF;
}

.student-payment-qr-frame img{
    width:100%;
    height:auto;
    display:block;
}

.student-payment-qr-card > p{
    max-width:430px;
    margin:16px auto 0;
    color:#777;
    font-size:11px;
    font-weight:600;
    line-height:1.5;
}

.student-payment-unavailable{
    display:grid;
    grid-template-columns:54px minmax(0,1fr) auto;
    align-items:center;
    gap:18px;
    padding:24px;
}

.student-payment-unavailable-icon{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:#EEF8F1;
    color:#21753B;
    font-size:22px;
    font-weight:850;
}

.student-payment-unavailable h2{
    margin:0 0 6px;
    color:#2E2A28;
    font-size:18px;
    font-weight:700;
}

.student-payment-unavailable p{
    margin:0;
    color:#777;
    font-size:11px;
    font-weight:600;
    line-height:1.5;
}

@media(max-width:820px){
    .student-payment-layout{
        grid-template-columns:1fr;
    }

    .student-payment-qr-card{
        order:-1;
    }
}

@media(max-width:620px){
    .student-payment-reminder-item{
        grid-template-columns:34px minmax(0,1fr) !important;
    }

    .student-payment-reminder-pay-button{
        grid-column:1 / -1;
        width:100%;
    }

    .student-payment-page-header{
        flex-direction:column;
    }

    .student-payment-page-header .button{
        width:100%;
    }

    .student-payment-details-card,
    .student-payment-qr-card{
        padding:19px;
    }

    .student-payment-amount{
        font-size:35px;
    }

    .student-payment-unavailable{
        grid-template-columns:1fr;
        text-align:center;
    }

    .student-payment-unavailable-icon{
        margin:0 auto;
    }

    .student-payment-unavailable .button{
        width:100%;
    }
}

/* =========================================================
   SA | SCHOOL — МЯГКАЯ БЛОКИРОВКА ДОМАШНИХ ЗАДАНИЙ ДО ОПЛАТЫ
   ========================================================= */

.student-homework-payment-lock-page{
    max-width:980px !important;
}

.student-homework-payment-lock{
    padding:28px;
    border:1px solid #E7CACA;
    border-radius:22px;
    background:#FFF8F7;
    box-shadow:0 16px 38px rgba(122,37,40,.06);
}

.student-homework-payment-lock-heading{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    align-items:start;
    gap:18px;
}

.student-homework-payment-lock-icon{
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:17px;
    background:#F5E4E3;
    color:#7A2528;
}

.student-homework-payment-lock-icon svg{
    width:25px;
    height:25px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.student-homework-payment-lock-heading span{
    display:block;
    margin-bottom:6px;
    color:#B07B25;
    font-size:10px;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.student-homework-payment-lock-heading h1{
    margin:0 0 9px;
    color:#2E2A28;
    font-size:27px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:-.025em;
}

.student-homework-payment-lock-heading p{
    max-width:700px;
    margin:0;
    color:#746E68;
    font-size:13px;
    font-weight:600;
    line-height:1.65;
}

.student-homework-payment-lock-message{
    margin:20px 0 14px;
    padding:12px 14px;
    border:1px solid #E9D6B0;
    border-radius:12px;
    background:#FFF9E9;
    color:#755A22;
    font-size:11px;
    font-weight:700;
    line-height:1.5;
}

.student-homework-payment-lock-list{
    display:grid;
    gap:9px;
}

.student-homework-payment-lock-item{
    display:grid;
    grid-template-columns:40px minmax(0,1fr) auto;
    align-items:center;
    gap:13px;
    padding:13px 14px;
    border:1px solid #E9D6D6;
    border-radius:14px;
    background:#FFFFFF;
}

.student-homework-payment-lock-item-icon{
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#F7E8E7;
    color:#7A2528;
    font-size:17px;
    font-weight:850;
}

.student-homework-payment-lock-item-content{
    min-width:0;
}

.student-homework-payment-lock-item-content strong,
.student-homework-payment-lock-item-content span{
    display:block;
}

.student-homework-payment-lock-item-content strong{
    color:#2E2A28;
    font-size:12px;
    font-weight:700;
    line-height:1.5;
}

.student-homework-payment-lock-item-content span{
    margin-top:4px;
    color:#817970;
    font-size:9px;
    font-weight:600;
    line-height:1.4;
}

.student-homework-payment-lock-button{
    min-height:39px !important;
    padding:9px 14px !important;
    border-radius:11px !important;
    font-size:10px !important;
    white-space:nowrap;
}

.student-homework-payment-lock-note{
    margin:14px 0 0;
    color:#817970;
    font-size:10px;
    font-weight:600;
    line-height:1.55;
}

@media(max-width:700px){
    .student-homework-payment-lock{
        padding:20px;
    }

    .student-homework-payment-lock-heading{
        grid-template-columns:46px minmax(0,1fr);
        gap:13px;
    }

    .student-homework-payment-lock-icon{
        width:46px;
        height:46px;
        border-radius:14px;
    }

    .student-homework-payment-lock-heading h1{
        font-size:23px;
    }

    .student-homework-payment-lock-item{
        grid-template-columns:36px minmax(0,1fr);
    }

    .student-homework-payment-lock-item-icon{
        width:36px;
        height:36px;
    }

    .student-homework-payment-lock-button{
        grid-column:1 / -1;
        width:100%;
    }
}

/* =========================================================
   SA | SCHOOL — РАЗОВЫЙ ДОСТУП ПРИ ОДНОМ НАПОМИНАНИИ
   ========================================================= */

.student-homework-grace{
    margin-top:18px;
    padding:20px;
    border:1px solid #E7D2A5;
    border-radius:17px;
    background:#FFF9E8;
}

.student-homework-grace-text{
    margin-bottom:14px;
    text-align:center;
}

.student-homework-grace-text strong{
    display:block;
    margin-bottom:6px;
    color:#2E2A28;
    font-size:14px;
    font-weight:750;
    line-height:1.4;
}

.student-homework-grace-text p{
    max-width:680px;
    margin:0 auto;
    color:#746E68;
    font-size:11px;
    font-weight:600;
    line-height:1.55;
}

.student-homework-grace form{
    margin:0 !important;
}

.student-homework-grace-button{
    width:100%;
    min-height:56px !important;
    padding:14px 20px !important;
    border-radius:14px !important;
    background:#7A2528 !important;
    color:#FFFFFF !important;
    font-size:14px !important;
    font-weight:800 !important;
    line-height:1.35 !important;
    box-shadow:0 10px 23px rgba(122,37,40,.16) !important;
}

.student-homework-grace-button:hover{
    background:#672023 !important;
    color:#FFFFFF !important;
    transform:translateY(-1px);
}

.student-homework-grace-unavailable{
    margin-top:18px;
    padding:13px 15px;
    border:1px solid #E7CACA;
    border-radius:13px;
    background:#FBECEC;
    color:#8E3333;
    font-size:11px;
    font-weight:700;
    line-height:1.5;
    text-align:center;
}

@media(max-width:620px){
    .student-homework-grace{
        padding:17px;
    }

    .student-homework-grace-button{
        min-height:52px !important;
        padding:13px 15px !important;
        font-size:12px !important;
    }
}

/* =========================================================
   SA | SCHOOL — ПОСЛЕДНЯЯ АКТИВНОСТЬ УЧЕНИКОВ
   ========================================================= */

.students-page-header-actions{
    display:flex;
    gap:15px;
    flex-wrap:wrap;
}

.students-activity-table table{
    min-width:850px;
}

.student-last-seen{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:28px;
    padding:6px 10px;
    border:1px solid #E4DDD4;
    border-radius:999px;
    background:#F8F5F0;
    color:#6F6964;
    font-size:9px;
    font-weight:750;
    line-height:1.25;
    white-space:nowrap;
}

.student-last-seen i{
    width:7px;
    height:7px;
    display:block;
    flex:0 0 auto;
    border-radius:50%;
    background:#A9A39D;
}

.student-last-seen.online{
    border-color:#BFDCC7;
    background:#EEF8F1;
    color:#21753B;
}

.student-last-seen.online i{
    background:#2B9A50;
    box-shadow:0 0 0 4px rgba(43,154,80,.11);
}

.student-last-seen.today{
    border-color:#E3D1A6;
    background:#FFF9E8;
    color:#8A6622;
}

.student-last-seen.today i{
    background:#B89B5E;
}

.student-last-seen.recent{
    border-color:#DED8CF;
    background:#F8F5F0;
    color:#625C57;
}

.student-last-seen.recent i{
    background:#7D7670;
}

.student-last-seen.offline{
    color:#756F69;
}

.student-last-seen.never{
    border-style:dashed;
    background:#FAF8F4;
    color:#9A938D;
}

.student-last-seen.never i{
    background:#C8C1BA;
}

.mini-group-card{
    overflow:hidden;
}

.mini-group-students-list{
    display:grid;
    gap:7px;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #EEE5D9;
}

.mini-group-student-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:10px 11px;
    border:1px solid #E9E1D6;
    border-radius:12px;
    background:#FCFAF7;
    color:inherit;
    text-decoration:none;
    transition:.16s ease;
}

.mini-group-student-row:hover{
    border-color:#D8C49C;
    background:#FFFDF9;
    transform:translateY(-1px);
}

.mini-group-student-person{
    min-width:0;
}

.mini-group-student-person strong,
.mini-group-student-person span{
    display:block;
}

.mini-group-student-person strong{
    overflow:hidden;
    color:#2E2A28;
    font-size:11px;
    font-weight:800;
    line-height:1.4;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.mini-group-student-person span{
    margin-top:3px;
    color:#8A837D;
    font-size:9px;
    font-weight:600;
}

.mini-group-no-students{
    margin-top:14px;
    padding:12px;
    border:1px dashed #E2D9CE;
    border-radius:12px;
    color:#928B84;
    font-size:10px;
    font-weight:650;
    text-align:center;
}

@media(max-width:760px){
    .mini-group-student-row{
        grid-template-columns:1fr;
    }

    .mini-group-student-row
    .student-last-seen{
        justify-self:start;
    }
}

/* =========================================================
   SA | SCHOOL — БЕЗОПАСНЫЕ ЧАСОВЫЕ ПОЯСА
   ========================================================= */

.timezone-field-note{
    display:block;
    margin-top:8px;
    color:#8B837D;
    font-size:10px;
    font-weight:600;
    line-height:1.55;
}

.student-schedule-local-time{
    display:block;
    margin-top:4px;
    color:#92783F !important;
    font-size:9px !important;
    font-weight:750 !important;
}

.student-schedule-teacher-time{
    display:block;
    margin-top:4px;
    color:#918A84 !important;
    font-size:9px !important;
    font-weight:600 !important;
}

.timezone-settings-card{
    max-width:760px;
}

.timezone-settings-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-bottom:28px;
    padding-bottom:22px;
    border-bottom:1px solid #EDE4D8;
}

.timezone-settings-heading > div:first-child span{
    display:block;
    margin-bottom:7px;
    color:#978F88;
    font-size:10px;
    font-weight:750;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.timezone-settings-heading h2{
    margin:0;
    color:#292522;
    font-size:22px;
    font-weight:800;
}

.timezone-current-clock{
    min-width:145px;
    padding:15px 18px;
    border:1px solid #E4D7C3;
    border-radius:16px;
    background:#FBF6EC;
    text-align:center;
}

.timezone-current-clock span,
.timezone-current-clock small{
    display:block;
    color:#8B8279;
    font-size:9px;
    font-weight:700;
}

.timezone-current-clock strong{
    display:block;
    margin:4px 0;
    color:#7A2528;
    font-size:28px;
    line-height:1;
}

.timezone-settings-explanation{
    margin:20px 0;
    padding:16px 18px;
    border-left:3px solid #B89B5E;
    border-radius:0 14px 14px 0;
    background:#FBF7EF;
}

.timezone-settings-explanation strong{
    display:block;
    margin-bottom:5px;
    color:#403A36;
    font-size:11px;
}

.timezone-settings-explanation p{
    margin:0;
    color:#756E68;
    font-size:10px;
    line-height:1.65;
}

@media(max-width:760px){
    .timezone-settings-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .timezone-current-clock{
        width:100%;
    }
}

/* =========================================================
   SA | SCHOOL — БУКВЫ УЧЕНИКА В ПРОВЕРКЕ ДОМАШНЕГО
   ========================================================= */

.teacher-letter-answer-review{
    margin-top:20px;
    padding:20px 22px;
    border:1px solid #E6D8C5;
    border-radius:17px;
    background:#FFFCF7;
}

.teacher-letter-answer-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:7px;
}

.teacher-letter-answer-heading span{
    display:block;
    margin-bottom:4px;
    color:#A07D34;
    font-size:9px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.teacher-letter-answer-heading strong{
    color:#2D2926;
    font-size:15px;
    font-weight:800;
}

.teacher-letter-answer-heading > b{
    flex:0 0 auto;
    padding:9px 12px;
    color:#7A2528;
    background:#F7EEE5;
    border-radius:11px;
    font-size:12px;
    font-weight:850;
}

.teacher-letter-answer-note{
    margin:0 0 16px;
    color:#7B736C;
    font-size:10px;
    font-weight:600;
    line-height:1.55;
}

.teacher-letter-answer-rows{
    display:grid;
    gap:9px;
}

.teacher-letter-answer-row{
    display:grid;
    grid-template-columns:28px minmax(0,1fr);
    gap:8px;
    color:#2B2724;
    font-size:14px;
    line-height:1.9;
}

.teacher-letter-answer-row > b{
    color:#7A2528;
    font-size:13px;
}

.teacher-letter-answer-word{
    display:inline;
    white-space:normal;
}

.teacher-letter-answer-word mark{
    margin:0 1px;
    padding:0;
    background:transparent;
    font-size:1.08em;
    font-weight:900;
}

.teacher-letter-answer-word mark.is-correct{
    color:#23984B;
}

.teacher-letter-answer-word mark.is-wrong{
    color:#D33B2F;
    text-decoration:underline;
    text-decoration-thickness:2px;
    text-underline-offset:3px;
}

.teacher-letter-answer-word small{
    display:inline-flex;
    align-items:center;
    gap:3px;
    margin:0 5px 0 3px;
    padding:2px 6px;
    color:#8A635D;
    background:#FBE9E6;
    border-radius:7px;
    font-size:8px;
    font-style:normal;
    font-weight:700;
    vertical-align:middle;
}

.teacher-letter-answer-word small strong{
    color:#23984B;
    font-size:10px;
    text-transform:lowercase;
}

.teacher-letter-answer-missing{
    margin-top:18px;
    padding:12px 14px;
    color:#8A635D;
    background:#FFF3F0;
    border:1px solid #F1D6D1;
    border-radius:12px;
    font-size:10px;
    font-weight:700;
}

@media(max-width:720px){
    .teacher-letter-answer-review{
        padding:17px 15px;
    }

    .teacher-letter-answer-heading{
        align-items:flex-start;
    }

    .teacher-letter-answer-row{
        grid-template-columns:24px minmax(0,1fr);
        font-size:12px;
        line-height:2;
    }
}

.telegram-settings-form{
    display:grid;
    gap:12px;
    margin-top:22px;
}

.telegram-setting-row{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    border-radius:16px;
    background:#F6F0E8;
    color:#2B2928;
    font-size:16px;
    font-weight:800;
}

.telegram-setting-row input{
    width:22px;
    height:22px;
    accent-color:#8C252A;
}

.telegram-disconnect-form{
    margin-top:14px;
}

.telegram-student-card{
    max-width:980px;
    margin-top:28px;
}

.notification-channel-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
    align-items:start;
    margin-top:28px;
}

.notification-channel-card{
    min-width:0;
}

.notification-channel-card .telegram-status-panel{
    grid-template-columns:1fr;
}

.notification-channel-card .telegram-bot-card{
    text-align:left;
}

.telegram-status-panel{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(240px,330px);
    gap:26px;
    align-items:stretch;
    margin-bottom:24px;
    padding-bottom:24px;
    border-bottom:1px solid #EDE4D8;
}

.telegram-status-main{
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.telegram-eyebrow{
    display:block;
    margin-bottom:8px;
    color:#978F88;
    font-size:10px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.telegram-status-main h2{
    margin:0 0 8px;
    color:#292522;
    font-size:26px;
    line-height:1.12;
    font-weight:850;
}

.telegram-status-main p{
    max-width:500px;
    margin:0;
    color:#817971;
    font-size:14px;
    line-height:1.55;
    font-weight:650;
}

.telegram-bot-card{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:96px;
    padding:18px 22px;
    border:1px solid #E4D7C3;
    border-radius:20px;
    background:#FBF6EC;
    text-align:center;
}

.telegram-bot-card span{
    display:block;
    margin-bottom:7px;
    color:#8B8279;
    font-size:10px;
    font-weight:800;
}

.telegram-bot-card strong{
    display:block;
    word-break:normal;
    overflow-wrap:break-word;
    color:#7A2528;
    font-size:22px;
    line-height:1.1;
    font-weight:850;
}

.telegram-connect-panel{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:20px;
    align-items:center;
    padding:18px 20px;
    border-radius:20px;
    background:#FBF6EC;
}

.telegram-connect-panel strong{
    display:block;
    margin-bottom:6px;
    color:#292522;
    font-size:16px;
    font-weight:850;
}

.telegram-connect-panel p{
    margin:0;
    color:#817971;
    font-size:13px;
    line-height:1.55;
    font-weight:650;
}

.telegram-connect-button{
    min-width:220px;
    padding:15px 24px;
    border-radius:16px;
    font-size:15px;
}

.telegram-info-bar{
    display:inline-flex;
    align-items:center;
    gap:10px;
    width:max-content;
    max-width:100%;
    margin-bottom:8px;
    padding:12px 16px;
    border-radius:16px;
    background:#F3FAF0;
    color:#237A3A;
}

.telegram-info-bar span{
    color:#6C8A71;
    font-size:11px;
    font-weight:800;
}

.telegram-info-bar strong{
    overflow-wrap:break-word;
    color:#237A3A;
    font-size:15px;
    font-weight:850;
}

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

    .telegram-status-panel,
    .telegram-connect-panel{
        grid-template-columns:1fr;
    }

    .telegram-bot-card{
        text-align:left;
    }

    .telegram-connect-button{
        width:100%;
    }
}

@media(max-width:620px){
    .telegram-status-main h2{
        font-size:22px;
    }

    .telegram-status-main p,
    .telegram-connect-panel p{
        font-size:13px;
    }

    .telegram-bot-card strong{
        font-size:19px;
    }
}

/* =========================================================
   SA | SCHOOL — АККУРАТНЫЙ ЭКРАН УВЕДОМЛЕНИЙ В НАСТРОЙКАХ
   ========================================================= */

.settings-notification-grid{
    gap:18px;
    margin-top:22px;
    margin-bottom:24px;
}

.settings-notification-card{
    max-width:none;
    padding:22px !important;
}

.settings-notification-card .timezone-settings-heading{
    gap:14px;
    margin-bottom:15px;
    padding-bottom:15px;
}

.container .settings-notification-card .timezone-settings-heading h2{
    max-width:240px;
    font-size:21px;
    line-height:1.08;
}

.container .settings-notification-card .timezone-current-clock{
    flex:0 1 230px;
    min-width:0;
    padding:12px 14px;
    border-radius:14px;
}

.container .settings-notification-card .timezone-current-clock strong{
    margin-top:5px;
    font-size:17px;
    line-height:1.08;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.settings-notification-card .student-subtitle{
    margin:0 0 14px;
    color:#7F7770;
    font-size:13px;
    line-height:1.5;
    font-weight:650;
}

.settings-notification-card .telegram-settings-form{
    gap:9px;
    margin-top:14px;
}

.container .settings-notification-card .telegram-setting-row{
    gap:10px;
    padding:9px 11px;
    border-radius:13px;
    font-size:12px;
    line-height:1.25;
}

.settings-notification-card .telegram-setting-row input{
    flex:0 0 auto;
    width:17px;
    height:17px;
}

.container .settings-notification-card .button{
    min-height:0;
    padding:11px 15px;
    border-radius:14px;
    font-size:12px;
    line-height:1.15;
}

.settings-notification-card .telegram-settings-form .button,
.settings-notification-card .telegram-disconnect-form .button,
.settings-notification-card > .button{
    width:100%;
}

.settings-notification-card .telegram-disconnect-form{
    margin-top:9px;
}

@media(max-width:1200px){
    .settings-notification-card .timezone-settings-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .settings-notification-card .timezone-current-clock{
        flex:0 1 auto;
        width:100%;
        text-align:left;
    }
}

/* =========================================================
   SA | SCHOOL — КОМПАКТНОЕ ПОДКЛЮЧЕНИЕ УВЕДОМЛЕНИЙ УЧЕНИКА
   ========================================================= */

.student-notification-connect-panel{
    display:flex;
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
    padding:18px;
}

.student-notification-connect-panel strong{
    margin-bottom:7px;
    font-size:18px;
    line-height:1.25;
}

.student-notification-connect-panel p{
    max-width:540px;
    font-size:14px;
    line-height:1.45;
}

.student-notification-connect-panel .telegram-connect-button{
    width:100%;
    min-width:0;
    max-width:360px;
    padding:14px 18px;
    border-radius:16px;
    font-size:15px;
}

@media(max-width:760px){
    .student-notification-connect-panel{
        padding:15px;
    }

    .student-notification-connect-panel strong{
        font-size:16px;
    }

    .student-notification-connect-panel p{
        font-size:13px;
    }

    .student-notification-connect-panel .telegram-connect-button{
        max-width:none;
    }
}

/* =========================================================
   SA | SCHOOL — МОБИЛЬНОЕ СКЛАДНОЕ МЕНЮ
   ========================================================= */

.mobile-sidebar-toggle,
.mobile-sidebar-bar{
    display:none;
}

@media(max-width:980px){
    body:has(.student-cabinet-sidebar),
    body:has(.teacher-sidebar){
        display:block !important;
    }

    .student-cabinet-sidebar,
    .teacher-sidebar{
        position:sticky !important;
        top:0 !important;
        z-index:100 !important;
        width:100% !important;
        min-width:0 !important;
        height:auto !important;
        padding:14px 16px !important;
        border-right:0 !important;
        border-bottom:1px solid #E9DDCD !important;
        background:#F7F2EA !important;
        box-shadow:0 12px 26px rgba(91,66,42,.08) !important;
        overflow:visible !important;
    }

    .student-cabinet-sidebar .logo,
    .teacher-sidebar-logo{
        display:none !important;
    }

    .mobile-sidebar-toggle{
        position:absolute;
        width:1px;
        height:1px;
        opacity:0;
        pointer-events:none;
    }

    .student-cabinet-sidebar .mobile-sidebar-bar,
    .teacher-sidebar .mobile-sidebar-bar{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) 56px;
        align-items:center;
        gap:10px;
        width:100%;
        padding:8px;
        border:1px solid #DED2C4;
        border-radius:24px;
        background:#3E3B38;
        box-shadow:0 12px 25px rgba(31,28,25,.14);
        cursor:pointer;
        user-select:none;
    }

    .mobile-sidebar-title{
        min-width:0;
        padding:0 18px;
        color:#FFFFFF;
        font-size:18px;
        font-weight:850;
        line-height:1;
        letter-spacing:.03em;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }

    .mobile-sidebar-button{
        display:grid;
        place-items:center;
        gap:5px;
        width:56px;
        height:56px;
        border-radius:18px;
        background:#8C252A;
        box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);
    }

    .mobile-sidebar-button span{
        display:block;
        width:22px;
        height:3px;
        border-radius:999px;
        background:#FFFFFF;
        transition:transform .18s ease,opacity .18s ease;
    }

    .student-cabinet-sidebar .menu,
    .teacher-sidebar-menu{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:8px !important;
        max-height:0 !important;
        margin-top:0 !important;
        padding-top:0 !important;
        overflow:hidden !important;
        opacity:0 !important;
        pointer-events:none !important;
        transition:max-height .25s ease,opacity .2s ease,margin .2s ease;
    }

    .student-mobile-menu-toggle:checked ~ .menu,
    .teacher-mobile-menu-toggle:checked ~ .teacher-sidebar-menu{
        max-height:78vh !important;
        margin-top:12px !important;
        padding:2px 0 6px !important;
        overflow-y:auto !important;
        opacity:1 !important;
        pointer-events:auto !important;
        -webkit-overflow-scrolling:touch;
    }

    .student-mobile-menu-toggle:checked
    ~ .mobile-sidebar-bar
    .mobile-sidebar-button span:nth-child(1),
    .teacher-mobile-menu-toggle:checked
    ~ .mobile-sidebar-bar
    .mobile-sidebar-button span:nth-child(1){
        transform:translateY(8px) rotate(45deg);
    }

    .student-mobile-menu-toggle:checked
    ~ .mobile-sidebar-bar
    .mobile-sidebar-button span:nth-child(2),
    .teacher-mobile-menu-toggle:checked
    ~ .mobile-sidebar-bar
    .mobile-sidebar-button span:nth-child(2){
        opacity:0;
    }

    .student-mobile-menu-toggle:checked
    ~ .mobile-sidebar-bar
    .mobile-sidebar-button span:nth-child(3),
    .teacher-mobile-menu-toggle:checked
    ~ .mobile-sidebar-bar
    .mobile-sidebar-button span:nth-child(3){
        transform:translateY(-8px) rotate(-45deg);
    }

    .student-cabinet-sidebar .menu a,
    .student-cabinet-sidebar .menu a.menu-badge-link,
    .teacher-sidebar .teacher-menu-link,
    .teacher-sidebar .teacher-menu-link.menu-badge-link{
        min-height:54px !important;
        border-radius:16px !important;
    }

    .student-cabinet-sidebar ~ .content,
    .teacher-sidebar ~ .content{
        width:100% !important;
        padding-top:22px !important;
    }
}

@media(max-width:520px){
    .student-cabinet-sidebar,
    .teacher-sidebar{
        padding:11px 12px !important;
    }

    .student-cabinet-sidebar .mobile-sidebar-bar,
    .teacher-sidebar .mobile-sidebar-bar{
        grid-template-columns:minmax(0,1fr) 50px;
        border-radius:22px;
    }

    .mobile-sidebar-title{
        padding:0 14px;
        font-size:16px;
    }

    .mobile-sidebar-button{
        width:50px;
        height:50px;
        border-radius:16px;
    }
}

/* =========================================================
   SA | SCHOOL — ПЛАНШЕТ И МОБИЛЬНЫЕ ЭКРАНЫ: ТАБЛИЦЫ И КАЛЕНДАРИ
   ========================================================= */

@media(max-width:980px){
    html,
    body{
        max-width:100%;
        overflow-x:hidden;
    }

    *,
    *::before,
    *::after{
        box-sizing:border-box;
    }

    body:has(.student-cabinet-sidebar) .content,
    body:has(.teacher-sidebar) .content{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        padding-left:18px !important;
        padding-right:18px !important;
        overflow-x:hidden;
    }

    body:has(.student-cabinet-sidebar) .container,
    body:has(.teacher-sidebar) .container{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .student-card,
    .card,
    .table,
    .parent-reports-toolbar,
    .parent-reports-summary,
    .parent-report-student-list{
        max-width:100% !important;
    }

    .table{
        width:100% !important;
        overflow-x:auto !important;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
    }

    .table table{
        min-width:760px;
    }

    .table th,
    .table td{
        padding:16px 18px;
        vertical-align:middle;
    }

    .table th:last-child,
    .table td:last-child{
        padding-right:22px;
    }

    .teacher-calendar-card{
        width:100% !important;
        max-width:100% !important;
        overflow-x:auto !important;
        overflow-y:visible;
        -webkit-overflow-scrolling:touch;
        padding-left:18px !important;
        padding-right:18px !important;
    }

    .teacher-calendar-days,
    .teacher-calendar-grid{
        width:100%;
        min-width:840px;
        grid-template-columns:60px repeat(7,minmax(104px,1fr)) !important;
    }

    .teacher-calendar-grid{
        overflow:visible !important;
    }

    .teacher-calendar-time,
    .teacher-calendar-cell{
        min-height:104px;
    }

    .teacher-calendar-time{
        padding-right:9px;
        font-size:13px;
    }

    .teacher-calendar-cell{
        padding:5px;
    }

    .teacher-calendar-lesson,
    .homework-calendar-lesson{
        left:5px !important;
        width:calc(100% - 10px) !important;
        max-width:none !important;
        padding:7px 8px !important;
        border-radius:10px !important;
    }

    .teacher-calendar-lesson strong,
    .homework-calendar-lesson b{
        font-size:12px !important;
        line-height:1.2 !important;
    }

    .teacher-calendar-lesson small,
    .teacher-calendar-lesson em,
    .homework-calendar-lesson strong,
    .homework-calendar-lesson small{
        font-size:10px !important;
        line-height:1.25 !important;
    }

    .teacher-calendar-toolbar{
        grid-template-columns:1fr;
        align-items:stretch;
    }

    .teacher-calendar-toolbar .button,
    .teacher-calendar-toolbar button{
        width:100%;
        max-width:100%;
    }

    .parent-reports-toolbar{
        align-items:stretch !important;
    }

    .parent-reports-tabs,
    .parent-reports-month,
    .parent-report-student-actions{
        max-width:100%;
    }

    .parent-reports-tab,
    .parent-reports-month .button,
    .parent-report-student-actions .button{
        white-space:normal;
    }

    .parent-report-student-actions{
        flex-wrap:wrap !important;
    }
}

@media(max-width:700px){
    body:has(.student-cabinet-sidebar) .content,
    body:has(.teacher-sidebar) .content{
        padding-left:14px !important;
        padding-right:14px !important;
    }

    h1{
        overflow-wrap:anywhere;
    }

    .table table{
        min-width:680px;
    }

    .table th,
    .table td{
        padding:14px 15px;
        font-size:13px;
    }

    .teacher-calendar-card{
        padding-left:12px !important;
        padding-right:12px !important;
    }

    .teacher-calendar-days,
    .teacher-calendar-grid{
        min-width:760px;
        grid-template-columns:54px repeat(7,minmax(98px,1fr)) !important;
    }

    .teacher-calendar-days div{
        min-height:54px;
    }

    .teacher-calendar-days strong{
        width:30px;
        height:30px;
        font-size:17px;
    }

    .teacher-calendar-days span{
        font-size:13px;
    }

    .teacher-calendar-time,
    .teacher-calendar-cell{
        min-height:98px;
    }

    .teacher-calendar-time{
        font-size:12px;
    }

    .teacher-calendar-lesson,
    .homework-calendar-lesson{
        padding:6px 7px !important;
    }

    .parent-reports-tabs{
        display:grid !important;
        grid-template-columns:1fr;
        width:100%;
    }
}

/* =========================================================
   SA | SCHOOL — ФИНАЛЬНОЕ ВЫРАВНИВАНИЕ ДЛЯ ПЛАНШЕТА И ТЕЛЕФОНА
   ========================================================= */

@media(max-width:980px){
    body:has(.teacher-sidebar) .content,
    body:has(.student-cabinet-sidebar) .content{
        overflow-x:hidden !important;
    }

    .teacher-dashboard-actions{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:14px !important;
        width:100% !important;
        align-items:stretch !important;
    }

    .teacher-dashboard-actions .button{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        min-height:58px !important;
        padding:14px 16px !important;
        justify-content:center !important;
        text-align:center !important;
        white-space:normal !important;
    }

    .teacher-calendar-card{
        overflow-x:hidden !important;
        padding-left:18px !important;
        padding-right:18px !important;
    }

    .teacher-calendar-toolbar{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) auto !important;
        gap:14px !important;
        align-items:center !important;
        width:100% !important;
    }

    .teacher-calendar-period{
        min-width:0 !important;
        display:flex !important;
        align-items:center !important;
        gap:10px !important;
        overflow:hidden !important;
    }

    .teacher-calendar-period strong{
        min-width:0 !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
        white-space:nowrap !important;
    }

    .teacher-calendar-toolbar .button,
    .teacher-calendar-toolbar button{
        width:auto !important;
        min-width:210px !important;
        max-width:100% !important;
        justify-self:end !important;
        white-space:normal !important;
    }

    .teacher-calendar-days,
    .teacher-calendar-grid{
        width:100% !important;
        min-width:0 !important;
        grid-template-columns:44px repeat(7,minmax(0,1fr)) !important;
    }

    .teacher-calendar-days div{
        min-width:0 !important;
    }

    .teacher-calendar-time,
    .teacher-calendar-cell{
        min-width:0 !important;
    }

    .teacher-calendar-lesson,
    .homework-calendar-lesson{
        overflow:hidden !important;
        word-break:break-word !important;
        overflow-wrap:anywhere !important;
    }

    .teacher-calendar-lesson strong,
    .teacher-calendar-lesson small,
    .teacher-calendar-lesson em,
    .homework-calendar-lesson b,
    .homework-calendar-lesson strong,
    .homework-calendar-lesson small{
        max-width:100% !important;
        overflow-wrap:anywhere !important;
        white-space:normal !important;
    }

    .parent-reports-toolbar{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:18px !important;
        align-items:stretch !important;
    }

    .parent-reports-tabs{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:12px !important;
        width:100% !important;
    }

    .parent-reports-tab{
        width:100% !important;
        min-width:0 !important;
        justify-content:center !important;
        text-align:center !important;
    }

    .parent-reports-month{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) 170px !important;
        gap:12px !important;
        align-items:end !important;
        width:100% !important;
    }

    .parent-reports-month .form-group,
    .parent-reports-month input{
        width:100% !important;
        min-width:0 !important;
    }

    .parent-reports-month .button{
        width:100% !important;
        min-width:0 !important;
        justify-content:center !important;
    }

    .parent-report-student-card{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) 140px !important;
        gap:14px !important;
        align-items:center !important;
    }

    .parent-report-student-actions{
        grid-column:1 / -1 !important;
        display:grid !important;
        grid-template-columns:repeat(4,minmax(0,1fr)) !important;
        gap:10px !important;
        width:100% !important;
        justify-content:stretch !important;
    }

    .parent-report-student-actions .button,
    .parent-report-delete-form{
        width:100% !important;
        min-width:0 !important;
    }

    .parent-report-student-actions .button{
        min-height:48px !important;
        padding:10px 12px !important;
        justify-content:center !important;
        text-align:center !important;
    }

    .teacher-answer-question,
    .trainer-homework-question-text,
    .makeup-question-text,
    .student-error-work-question,
    [class*="question-text"]{
        display:block !important;
        height:auto !important;
        max-height:none !important;
        min-height:0 !important;
        overflow:visible !important;
        color:#2B2724 !important;
        font-size:15px !important;
        line-height:1.6 !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:anywhere !important;
    }

    .teacher-answer-card,
    .trainer-homework-question-card,
    .makeup-question-card{
        overflow:visible !important;
    }
}

@media(max-width:720px){
    .teacher-dashboard-actions{
        grid-template-columns:1fr !important;
    }

    .teacher-dashboard-actions .button{
        min-height:54px !important;
    }

    .teacher-calendar-toolbar{
        grid-template-columns:1fr !important;
    }

    .teacher-calendar-toolbar .button,
    .teacher-calendar-toolbar button{
        width:100% !important;
        min-width:0 !important;
        justify-self:stretch !important;
    }

    .teacher-calendar-days,
    .teacher-calendar-grid{
        grid-template-columns:32px repeat(7,minmax(0,1fr)) !important;
    }

    .teacher-calendar-time{
        font-size:10px !important;
        padding-right:5px !important;
    }

    .teacher-calendar-days strong{
        width:28px !important;
        height:28px !important;
        font-size:15px !important;
    }

    .teacher-calendar-days span{
        font-size:11px !important;
    }

    .teacher-calendar-lesson,
    .homework-calendar-lesson{
        padding:5px 6px !important;
    }

    .teacher-calendar-lesson strong,
    .homework-calendar-lesson b{
        font-size:10px !important;
    }

    .teacher-calendar-lesson small,
    .teacher-calendar-lesson em,
    .homework-calendar-lesson strong,
    .homework-calendar-lesson small{
        font-size:9px !important;
    }

    .parent-reports-tabs,
    .parent-reports-month{
        grid-template-columns:1fr !important;
    }

    .parent-report-student-card{
        grid-template-columns:1fr !important;
    }

    .parent-report-state{
        width:100% !important;
    }

    .parent-report-student-actions{
        grid-template-columns:1fr 1fr !important;
    }
}

@media(max-width:460px){
    .parent-report-student-actions{
        grid-template-columns:1fr !important;
    }
}

/* =========================================================
   SA | SCHOOL — ЧИТАЕМОЕ РАСПИСАНИЕ НА ТЕЛЕФОНЕ
   ========================================================= */

@media(max-width:720px){
    .teacher-calendar-card{
        overflow-x:auto !important;
        overflow-y:visible !important;
        -webkit-overflow-scrolling:touch !important;
        padding-left:14px !important;
        padding-right:14px !important;
    }

    .teacher-calendar-card::-webkit-scrollbar{
        height:0;
    }

    .teacher-calendar-days,
    .teacher-calendar-grid{
        width:max-content !important;
        min-width:760px !important;
        grid-template-columns:46px repeat(7,96px) !important;
    }

    .teacher-calendar-days div,
    .teacher-calendar-time,
    .teacher-calendar-cell{
        min-width:0 !important;
    }

    .teacher-calendar-time{
        width:46px !important;
        min-width:46px !important;
        padding-right:7px !important;
        font-size:11px !important;
    }

    .teacher-calendar-cell{
        width:96px !important;
        min-width:96px !important;
        overflow:visible !important;
    }

    .teacher-calendar-lesson,
    .homework-calendar-lesson{
        left:5px !important;
        right:5px !important;
        width:calc(100% - 10px) !important;
        min-width:0 !important;
        max-width:calc(100% - 10px) !important;
        padding:7px 8px !important;
        border-radius:12px !important;
        overflow:hidden !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
        hyphens:none !important;
    }

    .teacher-calendar-lesson *,
    .homework-calendar-lesson *{
        word-break:normal !important;
        overflow-wrap:normal !important;
        hyphens:none !important;
    }

    .teacher-calendar-lesson strong,
    .homework-calendar-lesson b,
    .homework-calendar-lesson strong{
        display:block !important;
        max-width:100% !important;
        font-size:11px !important;
        line-height:1.15 !important;
        white-space:normal !important;
    }

    .teacher-calendar-lesson small,
    .teacher-calendar-lesson em,
    .homework-calendar-lesson small{
        display:block !important;
        max-width:100% !important;
        font-size:10px !important;
        line-height:1.2 !important;
        white-space:normal !important;
    }

    .teacher-calendar-lesson-badge,
    .teacher-calendar-lesson span,
    .homework-calendar-lesson span{
        display:inline-flex !important;
        width:auto !important;
        max-width:100% !important;
        padding:3px 6px !important;
        border-radius:999px !important;
        font-size:9px !important;
        line-height:1.1 !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }
}

@media(max-width:430px){
    .teacher-calendar-days,
    .teacher-calendar-grid{
        min-width:725px !important;
        grid-template-columns:42px repeat(7,93px) !important;
    }

    .teacher-calendar-time{
        width:42px !important;
        min-width:42px !important;
        font-size:10px !important;
    }

    .teacher-calendar-cell{
        width:93px !important;
        min-width:93px !important;
    }

    .teacher-calendar-lesson strong,
    .homework-calendar-lesson b,
    .homework-calendar-lesson strong{
        font-size:10px !important;
    }

    .teacher-calendar-lesson small,
    .teacher-calendar-lesson em,
    .homework-calendar-lesson small{
        font-size:9px !important;
    }
}

/* =========================================================
   SA | SCHOOL — МОБИЛЬНЫЙ ВЫБОР ЗАДАНИЙ ДЛЯ ДОМАШКИ
   ========================================================= */

@media(max-width:720px){
    .trainer-homework-builder{
        padding:18px !important;
        border-radius:20px !important;
        overflow:hidden !important;
    }

    .trainer-homework-builder-header,
    .homework-builder-section-title{
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:10px !important;
    }

    .trainer-homework-builder-header strong{
        font-size:22px !important;
    }

    .trainer-homework-builder-header p,
    .homework-builder-section-title p{
        max-width:none !important;
        font-size:13px !important;
        line-height:1.4 !important;
    }

    .trainer-homework-row{
        grid-template-columns:48px 72px 48px !important;
        grid-template-areas:
            "minus count plus"
            "task task task" !important;
        align-items:start !important;
        justify-content:start !important;
        gap:10px 12px !important;
        padding:14px !important;
        border-radius:16px !important;
        overflow:hidden !important;
    }

    .trainer-homework-row .trainer-count-button:first-of-type{
        grid-area:minus !important;
    }

    .trainer-homework-row .trainer-count-input{
        grid-area:count !important;
    }

    .trainer-homework-row .trainer-count-button:last-of-type{
        grid-area:plus !important;
    }

    .trainer-homework-task{
        grid-area:task !important;
        width:100% !important;
        min-width:0 !important;
        display:grid !important;
        grid-template-columns:auto minmax(0,1fr) !important;
        grid-template-areas:
            "num title"
            ". meta" !important;
        gap:5px 8px !important;
        align-items:start !important;
        overflow:hidden !important;
    }

    .trainer-homework-task span{
        grid-area:num !important;
        font-size:17px !important;
        line-height:1.25 !important;
    }

    .trainer-homework-task strong{
        grid-area:title !important;
        display:block !important;
        min-width:0 !important;
        max-width:100% !important;
        font-size:16px !important;
        line-height:1.25 !important;
        white-space:normal !important;
        overflow-wrap:anywhere !important;
        word-break:normal !important;
    }

    .trainer-homework-task small{
        grid-area:meta !important;
        display:block !important;
        min-width:0 !important;
        max-width:100% !important;
        font-size:11px !important;
        line-height:1.3 !important;
        white-space:normal !important;
        overflow-wrap:anywhere !important;
    }
}

@media(max-width:430px){
    .trainer-homework-builder{
        padding:14px !important;
    }

    .trainer-homework-row{
        grid-template-columns:42px 66px 42px !important;
        gap:9px 10px !important;
        padding:12px !important;
    }

    .trainer-count-button{
        width:42px !important;
        height:42px !important;
        font-size:24px !important;
    }

    .trainer-count-input{
        width:66px !important;
        height:42px !important;
        font-size:22px !important;
    }

    .trainer-homework-task span{
        font-size:16px !important;
    }

    .trainer-homework-task strong{
        font-size:15px !important;
    }
}
