
/* =========================================================
   DEMO SA | SCHOOL
   Визуальная база взята из реального интерфейса пользователя:
   style.css + inline styles главных кабинетов и сайдбаров.
   ========================================================= */


/* SA | SCHOOL — счётчики домашних работ */
.student-cabinet-sidebar .mock-exam-menu-link .sidebar-menu-badge-pending{
    background:#7A2528 !important;
    color:#FFFFFF !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;
    color:#FFFFFF !important;
    box-shadow:0 7px 16px rgba(47,125,74,.18) !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;
}

/* SA | SCHOOL — сворачиваемое левое меню ученика */
.student-sidebar-collapse-toggle{
    position:fixed;
    top:26px;
    left:292px;
    z-index:160;
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border:1px solid #E7DACA;
    border-radius:14px;
    background:#FFFDF9;
    color:#7A2528;
    box-shadow:0 10px 26px rgba(75,52,32,.14);
    cursor:pointer;
    transition:left .28s ease,transform .2s ease,background .2s ease;
}
.student-sidebar-collapse-toggle:hover{
    background:#F7F2EA;
    transform:translateY(-1px);
}
.student-sidebar-collapse-toggle svg{
    width:20px;
    height:20px;
    transition:transform .28s ease;
}
.student-cabinet-sidebar{
    transition:width .3s ease,flex-basis .3s ease,padding .3s ease,
               transform .3s ease,opacity .22s ease,border-color .3s ease,
               box-shadow .3s ease;
}
.student-cabinet-sidebar ~ .content{
    min-width:0;
    transition:padding .3s ease,width .3s ease;
}
body.student-sidebar-collapsed .student-cabinet-sidebar{
    width:0 !important;
    min-width:0 !important;
    flex:0 0 0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    border-right-color:transparent !important;
    box-shadow:none !important;
    transform:translateX(-100%);
    opacity:0;
    pointer-events:none;
    overflow:hidden;
}
body.student-sidebar-collapsed .student-sidebar-collapse-toggle{
    left:16px;
}
body.student-sidebar-collapsed .student-sidebar-collapse-toggle svg{
    transform:rotate(180deg);
}
body.student-sidebar-collapsed .student-cabinet-sidebar ~ .content{
    width:100%;
    padding-left:38px;
    padding-right:38px;
}
@media(max-width:1200px) and (min-width:981px){
    .student-sidebar-collapse-toggle{left:258px;}
}
@media(max-width:980px){
    .student-sidebar-collapse-toggle{display:none !important;}
    body.student-sidebar-collapsed .student-cabinet-sidebar{
        width:100% !important;
        flex-basis:auto !important;
        padding:14px 16px !important;
        transform:none !important;
        opacity:1 !important;
        pointer-events:auto !important;
        overflow:visible !important;
    }
    body.student-sidebar-collapsed .student-cabinet-sidebar ~ .content{
        padding-left:18px !important;
        padding-right:18px !important;
    }
}

.student-cabinet-sidebar .menu a{
    margin-bottom:10px;
}

.student-cabinet-sidebar .menu a:last-child{
    margin-bottom:0;
}

.student-cabinet-sidebar .menu a .sidebar-menu-label{
    line-height:1.25;
}




.student-motivation-card{
    position:relative;
    display:flex;
    align-items:center;
    gap:20px;
    overflow:hidden;
    margin-bottom:22px;
    padding:24px 27px;
    border:1px solid #E3D4BC;
    border-radius:20px;
    background:
        linear-gradient(
            135deg,
            #FFF9ED 0%,
            #F8F0E3 100%
        );
    box-shadow:0 14px 34px rgba(55,43,35,.05);
}

.student-motivation-card::after{
    content:"“";
    position:absolute;
    right:24px;
    top:-24px;
    color:rgba(184,155,94,.12);
    font-family:Georgia,serif;
    font-size:132px;
    line-height:1;
    pointer-events:none;
}

.student-motivation-icon{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 52px;
    width:52px;
    height:52px;
    border-radius:16px;
    color:#7A2528;
    background:#FFFDF8;
    border:1px solid #E5D7C3;
    font-size:23px;
}

.student-motivation-content{
    position:relative;
    z-index:1;
    min-width:0;
}

.student-motivation-content span{
    display:block;
    margin-bottom:5px;
    color:#B89B5E;
    font-size:9px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.student-motivation-content strong{
    display:block;
    color:#2B2724;
    font-size:19px;
    font-weight:600;
    line-height:1.42;
}

.student-schedule-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:20px;
    padding:12px;
    border:1px solid #E8DDCE;
    border-radius:18px;
    background:#FBF7F1;
}

.student-schedule-week-button{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 46px;
    width:46px;
    height:46px;
    border:1px solid #E0D2BF;
    border-radius:15px;
    color:#7A2528;
    text-decoration:none;
    background:#FFFDFC;
    font-size:24px;
    font-weight:650;
    line-height:1;
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.student-schedule-week-button:hover{
    transform:translateY(-1px);
    border-color:#CBB081;
    box-shadow:0 10px 22px rgba(75,55,39,.07);
}

.student-schedule-week-center{
    min-width:0;
    text-align:center;
}

.student-schedule-week-center strong{
    display:block;
    color:#2B2724;
    font-size:16px;
    font-weight:650;
}

.student-schedule-week-center span{
    display:block;
    margin-top:4px;
    color:#8A8179;
    font-size:11px;
    font-weight:550;
}

.student-schedule-current-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:8px;
    padding:6px 10px;
    border-radius:999px;
    color:#7A2528;
    text-decoration:none;
    background:#F3E8D8;
    font-size:9px;
    font-weight:650;
}

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

.student-schedule-item{
    position:relative;
    grid-template-columns:82px minmax(0,1fr) auto !important;
    gap:17px !important;
    align-items:center;
    margin:0 !important;
    padding:17px 18px !important;
    border:1px solid #E7D9C7;
    border-left:5px solid #B89B5E !important;
    border-radius:18px !important;
    background:linear-gradient(135deg,#FFF9ED 0%,#FBF4E8 100%) !important;
    box-shadow:0 10px 24px rgba(66,49,36,.045);
}

.student-schedule-item.is-past{
    border-color:#E1DEDA;
    border-left-color:#B7B2AC !important;
    background:#F2F1EF !important;
    box-shadow:none;
    opacity:.82;
}

.student-schedule-item.is-current{
    border-color:#BCD6C4;
    border-left-color:#4D8A65 !important;
    background:#EEF7F0 !important;
}

.student-schedule-item.rescheduled{
    border-color:#C7DBE8;
    border-left-color:#4384A9 !important;
    background:#F0F7FB !important;
}

.student-schedule-item.is-past.rescheduled{
    border-left-color:#9AA9B1 !important;
    background:#F0F1F2 !important;
}

.student-schedule-item.is-past .student-schedule-date,
.student-schedule-item.is-past .student-schedule-topic{
    background:#E7E5E2;
}

.student-schedule-item.is-current .student-schedule-date,
.student-schedule-item.is-current .student-schedule-topic{
    background:#FFFFFF;
}

.student-schedule-main{
    min-width:0;
}

.student-schedule-main > strong,
.student-schedule-main > span,
.student-schedule-main > small{
    display:block;
}

.student-schedule-main > strong{
    margin-bottom:5px;
    color:#2E2A28;
    font-size:17px;
    font-weight:600;
}

.student-schedule-main > span{
    color:#7A2528;
    font-size:12px;
    font-weight:650;
}

.student-schedule-main > small{
    margin-top:4px;
    color:#77716B;
    font-size:10px;
    font-weight:550;
}

.student-schedule-topic{
    margin-top:11px;
    padding:10px 12px;
    border:1px solid rgba(184,155,94,.18);
    border-radius:13px;
    background:rgba(255,255,255,.64);
}

.student-schedule-topic > span{
    display:block;
    margin-bottom:4px;
    color:#B89B5E;
    font-size:8px;
    font-weight:750;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.student-schedule-topic > strong{
    display:block !important;
    margin:0 !important;
    color:#3A332E !important;
    font-size:12px !important;
    font-weight:600 !important;
    line-height:1.45;
}

.student-schedule-topic > strong + strong{
    margin-top:4px !important;
}

.student-schedule-topic > em{
    color:#9A928B;
    font-size:10px;
    font-style:normal;
    font-weight:550;
}

.student-schedule-statuses{
    display:flex;
    align-items:flex-end;
    flex-direction:column;
    gap:7px;
}

.student-schedule-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:7px 10px;
    border-radius:999px;
    color:#7A2528;
    background:#FFFDFC;
    font-size:9px;
    font-weight:650;
    white-space:nowrap;
}

.student-schedule-status.past{
    color:#77716B;
    background:#E4E1DE;
}

.student-schedule-status.current{
    color:#3F7651;
    background:#DDEEE2;
}

.student-schedule-status.rescheduled{
    color:#317493;
    background:#DDECF4;
}

.student-schedule-empty-week{
    padding:32px 22px;
    border:1px dashed #DDCFBD;
    border-radius:18px;
    color:#8D847C;
    background:#FBF7F1;
    text-align:center;
    font-size:12px;
    font-weight:550;
}

@media(max-width:720px){
    .student-schedule-toolbar{
        gap:9px;
        padding:9px;
    }

    .student-schedule-week-button{
        flex-basis:42px;
        width:42px;
        height:42px;
        border-radius:14px;
    }

    .student-schedule-week-center strong{
        font-size:14px;
    }

    .student-schedule-week-center span{
        font-size:10px;
    }

    .student-schedule-item{
        grid-template-columns:68px minmax(0,1fr) !important;
        gap:13px !important;
        padding:14px !important;
    }

    .student-schedule-statuses{
        grid-column:1 / -1;
        align-items:flex-start;
        flex-direction:row;
        flex-wrap:wrap;
        padding-left:81px;
    }
}

.student-schedule-item{
    margin:0 !important;
}

@media(max-width:680px){
    .student-motivation-card{
        align-items:flex-start;
        padding:20px 18px;
    }

    .student-motivation-icon{
        flex-basis:44px;
        width:44px;
        height:44px;
        border-radius:14px;
        font-size:20px;
    }

    .student-motivation-content strong{
        font-size:16px;
    }
}

/*
 * Более лёгкая типографика только на главной странице ученика.
 * Общие стили сайта не затрагиваются.
 */
.container > .header h1{
    font-weight:650;
}

.container > .header .user{
    font-weight:600;
}

.student-motivation-content span{
    font-weight:700;
}

.student-motivation-content strong{
    font-weight:600;
}

.student-homework-alert span,
.student-homework-alert small{
    font-weight:600;
}

.student-homework-alert strong{
    font-weight:600;
}

.student-homework-alert b{
    font-weight:600;
}

.student-plan-strip span{
    font-weight:600;
}

.student-plan-strip strong{
    font-weight:500;
}

.student-plan-strip b{
    font-weight:600;
}

.student-schedule-card .student-name{
    font-weight:650;
}

.student-schedule-date strong{
    font-weight:650;
}

.student-schedule-date span{
    font-weight:600;
}

.student-schedule-item div:nth-child(2) strong{
    font-weight:600;
}

.student-schedule-item div:nth-child(2) span{
    font-weight:600;
}

.student-schedule-item div:nth-child(2) small{
    font-weight:500;
}

.student-payment-reminders-heading span,
.student-payment-reminders-heading h2,
.student-payment-reminder-content strong,
.student-payment-reminder-pay-button{
    font-weight:600;
}


.student-plan-blocks-card{
    display:block;
    max-width:none;
    margin-bottom:22px;
    padding:21px 24px;
    border:1px solid #E8DDCE;
    color:#2E2A28;
    text-decoration:none;
}

.student-plan-blocks-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:14px;
}

.student-plan-blocks-header span{
    display:block;
    margin-bottom:5px;
    color:#777;
    font-size:13px;
    font-weight:600;
}

.student-plan-blocks-header strong{
    color:#2E2A28;
    font-size:18px;
    font-weight:550;
}

.student-plan-blocks-header b{
    flex:0 0 auto;
    padding:7px 10px;
    border-radius:10px;
    color:#7A2528;
    background:#F8EFE5;
    font-size:10px;
    font-weight:650;
}

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

.student-plan-preview-row{
    display:grid;
    grid-template-columns:minmax(170px,1fr) minmax(130px,.8fr) auto;
    gap:12px;
    align-items:center;
    padding:11px 13px;
    border-radius:12px;
    background:#F8F3EC;
}

.student-plan-preview-name span{
    display:block;
    margin-bottom:3px;
    color:#B89B5E;
    font-size:8px;
    font-weight:700;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.student-plan-preview-name strong{
    display:block;
    overflow:hidden;
    color:#322D29;
    font-size:11px;
    font-weight:600;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.student-plan-preview-progress{
    height:8px;
    overflow:hidden;
    border-radius:999px;
    background:#EDE5DB;
}

.student-plan-preview-progress div{
    height:100%;
    border-radius:inherit;
    background:#7A2528;
}

.student-plan-preview-status{
    min-width:78px;
    color:#796F67;
    font-size:8px;
    font-weight:650;
    text-align:right;
}

.student-plan-preview-empty{
    color:#7A736D;
    font-size:10px;
    font-weight:550;
}

@media(max-width:680px){
    .student-plan-blocks-header{
        flex-direction:column;
    }

    .student-plan-preview-row{
        grid-template-columns:1fr;
    }

    .student-plan-preview-status{
        text-align:left;
    }
}

.student-lesson-actions{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:16px;
    margin:0 0 22px;
}

.student-lesson-action{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    min-width:0;
    padding:20px 22px;
    border:1px solid #E4D5BE;
    border-radius:20px;
    color:#2D2926;
    text-decoration:none;
    background:#FFFDFC;
    box-shadow:0 12px 30px rgba(55,43,35,.045);
    transition:transform .18s ease,box-shadow .18s ease;
}

.student-lesson-action:hover{
    transform:translateY(-2px);
    box-shadow:0 18px 36px rgba(55,43,35,.08);
}

.student-lesson-action-text{
    min-width:0;
}

.student-lesson-action-text span{
    display:block;
    margin-bottom:5px;
    color:#B89B5E;
    font-size:9px;
    font-weight:700;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.student-lesson-action-text strong{
    display:block;
    color:#2D2926;
    font-size:16px;
    font-weight:650;
    line-height:1.35;
}

.student-lesson-action-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 72px;
    width:72px;
    height:52px;
    overflow:hidden;
    border:1px solid #D6E0E8;
    border-radius:16px;
    background:#F1F5F7;
}

.student-lesson-action-icon img{
    display:block;
    width:54px;
    max-width:100%;
    height:auto;
    max-height:28px;
    object-fit:contain;
}

.student-lesson-action.board .student-lesson-action-icon{
    border-color:#DDD2E4;
    background:#F5F0F7;
}

.student-lesson-action.board
.student-lesson-action-icon img{
    width:56px;
    max-height:29px;
}

.student-lesson-action-arrow{
    flex:0 0 auto;
    color:#7A2528;
    font-size:22px;
    font-weight:500;
}

@media(max-width:680px){
    .student-lesson-actions{
        grid-template-columns:1fr;
    }

    .student-lesson-action{
        padding:17px 18px;
    }

    .student-lesson-action-icon{
        flex-basis:62px;
        width:62px;
        height:48px;
    }

    .student-lesson-action-icon img{
        width:47px;
        max-height:25px;
    }

    .student-lesson-action.board
    .student-lesson-action-icon img{
        width:49px;
        max-height:26px;
    }

    .student-lesson-action-text strong{
        font-size:15px;
    }
}


.student-dashboard-profile{
    display:flex;
    align-items:center;
    gap:12px;
    padding:7px 10px 7px 7px;
    border-radius:16px;
    color:#1E1C1A;
    text-align:left;
}

.student-dashboard-profile__avatar{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(184,155,94,.13);
    border:1px solid rgba(184,155,94,.24);
    color:#7A2528;
    font-size:16px;
    font-weight:700;
}

.student-dashboard-profile__name{
    display:block;
    color:#2B2724;
    font-size:15px;
    font-weight:700;
}

.student-dashboard-profile__role{
    display:block;
    margin-top:2px;
    color:#8B837C;
    font-size:12px;
    font-weight:500;
}

.student-dashboard-profile__caret{
    color:#7A2528;
    font-size:14px;
    font-weight:700;
}

.student-quick-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin-bottom:18px;
}

.student-quick-links.is-single{
    grid-template-columns:1fr;
}

.student-quick-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    min-width:0;
    min-height:126px;
    padding:24px 26px;
    border:1px solid #E4D5BE;
    border-radius:22px;
    color:#2D2926;
    text-decoration:none;
    background:#FFFDFC;
    box-shadow:0 12px 30px rgba(55,43,35,.045);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.student-quick-link:hover{
    transform:translateY(-2px);
    border-color:#D7C5AA;
    box-shadow:0 18px 36px rgba(55,43,35,.08);
}

.student-quick-link__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 82px;
    width:82px;
    height:66px;
    overflow:hidden;
    border:1px solid #D6E0E8;
    border-radius:18px;
    background:#F1F5F7;
}

.student-quick-link.board .student-quick-link__icon{
    border-color:#DDD2E4;
    background:#F5F0F7;
}

.student-quick-link__icon img{
    display:block;
    width:60px;
    max-width:100%;
    height:auto;
    max-height:31px;
    object-fit:contain;
}

.student-quick-link.board .student-quick-link__icon img{
    width:62px;
    max-height:32px;
}

.student-quick-link__text{
    min-width:0;
    flex:1 1 auto;
}

.student-quick-link__text span{
    display:block;
    margin-bottom:6px;
    color:#B89B5E;
    font-size:10px;
    font-weight:700;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.student-quick-link__text strong{
    display:block;
    color:#2D2926;
    font-size:20px;
    font-weight:650;
    line-height:1.25;
}

.student-quick-link__text small{
    display:block;
    margin-top:7px;
    color:#7C746D;
    font-size:12px;
    font-weight:550;
    line-height:1.35;
}

.student-quick-link__arrow{
    flex:0 0 auto;
    color:#7A2528;
    font-size:24px;
    font-weight:500;
}

.student-dashboard-quote{
    width:100%;
    margin-bottom:22px;
}

.student-dashboard-quote.student-motivation-card{
    min-height:132px;
    margin-bottom:22px;
    padding:24px 28px;
}

.student-dashboard-quote .student-motivation-content strong{
    font-size:21px;
}

.student-plan-blocks-card{
    margin-bottom:18px;
}

.student-plan-blocks-card.is-empty .student-plan-blocks-header{
    margin-bottom:0;
}

.student-plan-blocks-header small{
    display:block;
    margin-top:8px;
    color:#7A736D;
    font-size:11px;
    font-weight:550;
    line-height:1.45;
}

.student-plan-preview-empty{
    font-size:11px;
}

@media(max-width:980px){
    .student-quick-links{
        grid-template-columns:1fr;
    }
}

@media(max-width:680px){
    .student-quick-link{
        min-height:0;
        padding:19px 18px;
    }

    .student-quick-link__icon{
        flex-basis:66px;
        width:66px;
        height:54px;
    }

    .student-quick-link__icon img{
        width:49px;
        max-height:26px;
    }

    .student-quick-link.board .student-quick-link__icon img{
        width:51px;
        max-height:27px;
    }

    .student-quick-link__text strong{
        font-size:17px;
    }

    .student-dashboard-quote.student-motivation-card{
        min-height:0;
        padding:20px;
    }

    .student-dashboard-quote .student-motivation-content strong{
        font-size:18px;
    }
}




/* SA | SCHOOL — сворачиваемое левое меню преподавателя */
.teacher-sidebar-collapse-toggle{
    position:fixed;
    top:26px;
    left:316px;
    z-index:170;
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border:1px solid #E7DACA;
    border-radius:14px;
    background:#FFFDF9;
    color:#7A2528;
    box-shadow:0 10px 26px rgba(75,52,32,.14);
    cursor:pointer;
    transition:left .3s ease,transform .2s ease,background .2s ease;
}
.teacher-sidebar-collapse-toggle:hover{
    background:#F7F2EA;
    transform:translateY(-1px);
}
.teacher-sidebar-collapse-toggle svg{
    width:20px;
    height:20px;
    transition:transform .3s ease;
}
.teacher-sidebar{
    transition:width .3s ease,flex-basis .3s ease,min-width .3s ease,
               padding .3s ease,transform .3s ease,opacity .22s ease,
               border-color .3s ease,box-shadow .3s ease;
}
.teacher-sidebar ~ .content{
    transition:padding .3s ease,width .3s ease,flex-basis .3s ease;
}
body.teacher-sidebar-collapsed .teacher-sidebar{
    flex:0 0 0 !important;
    width:0 !important;
    min-width:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    border-right-color:transparent !important;
    box-shadow:none !important;
    transform:translateX(-100%);
    opacity:0;
    pointer-events:none;
    overflow:hidden !important;
}
body.teacher-sidebar-collapsed .teacher-sidebar-collapse-toggle{
    left:16px;
}
body.teacher-sidebar-collapsed .teacher-sidebar-collapse-toggle svg{
    transform:rotate(180deg);
}
body.teacher-sidebar-collapsed .teacher-sidebar ~ .content{
    flex:1 1 100% !important;
    width:100% !important;
    padding-left:42px !important;
    padding-right:42px !important;
}
body.teacher-sidebar-collapsed .teacher-sidebar ~ .content > .container{
    width:100% !important;
    max-width:1480px !important;
}
@media(max-width:1280px) and (min-width:981px){
    .teacher-sidebar-collapse-toggle{
        left:294px;
    }
}
@media(max-width:980px){
    .teacher-sidebar-collapse-toggle{
        display:none !important;
    }
    body.teacher-sidebar-collapsed .teacher-sidebar{
        position:relative !important;
        width:100% !important;
        min-width:0 !important;
        height:auto !important;
        padding:22px !important;
        transform:none !important;
        opacity:1 !important;
        pointer-events:auto !important;
        overflow:visible !important;
        border-right:0 !important;
        border-bottom:1px solid #EEE4D6 !important;
    }
    body.teacher-sidebar-collapsed .teacher-sidebar ~ .content{
        width:auto !important;
        padding:26px 22px 40px !important;
    }
}



.teacher-sidebar .makeup-sidebar-badges{
    display:grid !important;
    justify-self:end !important;
    align-self:center !important;
    gap:6px !important;

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

    margin:0 !important;
    padding:0 !important;
}

.teacher-sidebar .makeup-sidebar-badge{
    position:static !important;
    inset:auto !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;

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

.teacher-sidebar .makeup-sidebar-badge.pending{
    background:#7A2528 !important;
    box-shadow:0 7px 16px rgba(
        122,
        37,
        40,
        .15
    ) !important;
}

.teacher-sidebar .makeup-sidebar-badge.submitted{
    background:#4D7A5D !important;
    box-shadow:0 7px 16px rgba(
        77,
        122,
        93,
        .15
    ) !important;
}

@media(max-width:900px){
    .teacher-sidebar .makeup-sidebar-badges{
        width:40px !important;
        min-width:40px !important;
        max-width:40px !important;
    }

    .teacher-sidebar .makeup-sidebar-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;
    }
}



/* SA | SCHOOL — иерархия быстрых действий на главной преподавателя */
.teacher-dashboard-actions{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    width:100%;
}

.teacher-dashboard-actions .teacher-dashboard-action{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    width:100%;
    min-height:62px;
    box-sizing:border-box;
    padding:0 26px;
    border-radius:16px;
    font-size:16px;
    font-weight:750;
    line-height:1.25;
    text-align:center;
    text-decoration:none;
    box-shadow:none;
    transition:
        transform .18s ease,
        background-color .18s ease,
        border-color .18s ease,
        color .18s ease,
        box-shadow .18s ease;
}

.teacher-dashboard-action svg{
    width:20px;
    height:20px;
    flex:none;
}

.teacher-dashboard-action--secondary{
    border:1px solid rgba(184,155,94,.34) !important;
    background:#FFFDF8 !important;
    color:#7A2528 !important;
}

.teacher-dashboard-action--secondary svg{
    color:#B89B5E;
}

.teacher-dashboard-action--neutral{
    border:1px solid rgba(184,155,94,.26) !important;
    background:#FFFDF8 !important;
    color:#2E2A28 !important;
}

.teacher-dashboard-action--neutral svg{
    color:#7A2528;
}

.teacher-dashboard-action--primary{
    border:1px solid #7A2528 !important;
    background:#7A2528 !important;
    color:#FFFFFF !important;
    box-shadow:0 8px 18px rgba(122,37,40,.10) !important;
}

.teacher-dashboard-action--primary svg{
    color:#FFFFFF;
}

.teacher-dashboard-actions .teacher-dashboard-action:hover{
    transform:translateY(-2px);
}

.teacher-dashboard-action--secondary:hover,
.teacher-dashboard-action--neutral:hover{
    border-color:rgba(184,155,94,.46) !important;
    background:#FCF7EE !important;
    box-shadow:0 9px 22px rgba(70,51,34,.065) !important;
}

.teacher-dashboard-action--primary:hover{
    border-color:#692023 !important;
    background:#692023 !important;
    box-shadow:0 11px 24px rgba(122,37,40,.16) !important;
}

.teacher-dashboard-actions .teacher-dashboard-action:active{
    transform:translateY(0);
}

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

.schedule-topic-card{
    display:none;
    margin:0 0 20px;
    padding:17px 19px;
    border:1px solid #E0D0B9;
    border-radius:17px;
    background:#FBF4E8;
}

.schedule-topic-card.active{
    display:block;
}

.schedule-topic-card > span{
    display:block;
    margin-bottom:6px;
    color:#B89B5E;
    font-size:10px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.schedule-topic-card > strong{
    display:block;
    color:#2B2724;
    font-size:18px;
    font-weight:800;
    line-height:1.45;
}

.schedule-topic-card > small{
    display:block;
    margin-top:7px;
    color:#81766D;
    font-size:11px;
    font-weight:650;
    line-height:1.55;
    white-space:pre-line;
}

.schedule-topic-card > a{
    display:inline-flex;
    align-items:center;
    margin-top:12px;
    color:#7A2528;
    font-size:11px;
    font-weight:800;
    text-decoration:none;
}

.schedule-topic-card.empty{
    background:#F6F2EC;
}

.schedule-topic-card.empty > strong{
    color:#766D66;
}



/* SA | SCHOOL — главная преподавателя, визуальная доработка пунктов 3–7 */
.teacher-dashboard-header{
    position:relative;
    align-items:center !important;
    gap:24px;
}

.teacher-dashboard-heading{
    min-width:0;
}

.teacher-dashboard-heading h1{
    margin:0;
}

.teacher-dashboard-subtitle{
    margin-top:8px;
    color:#817970;
    font-size:14px;
    font-weight:550;
    line-height:1.55;
}

.teacher-profile-wrap{
    position:relative;
    flex:none;
}

.teacher-profile-button{
    display:flex;
    align-items:center;
    gap:11px;
    min-height:54px;
    padding:6px 10px 6px 7px;
    border:1px solid transparent;
    border-radius:17px;
    background:transparent;
    color:#1E1C1A;
    cursor:pointer;
    text-align:left;
    transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.teacher-profile-button:hover,
.teacher-profile-button[aria-expanded="true"]{
    background:rgba(255,254,250,.84);
    border-color:rgba(184,155,94,.18);
    box-shadow:0 8px 22px rgba(70,51,34,.055);
}

.teacher-profile-avatar{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:none;
    border:1px solid rgba(184,155,94,.25);
    border-radius:50%;
    background:rgba(184,155,94,.13);
    color:#7A2528;
    font-size:16px;
    font-weight:800;
}

.teacher-profile-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.teacher-profile-name{
    max-width:190px;
    overflow:hidden;
    color:#2E2A28;
    font-size:15px;
    font-weight:750;
    line-height:1.2;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.teacher-profile-role{
    margin-top:3px;
    color:#8B837C;
    font-size:11px;
    font-weight:550;
    line-height:1.2;
}

.teacher-profile-chevron{
    width:16px;
    height:16px;
    color:#7A2528;
    transition:transform .18s ease;
}

.teacher-profile-button[aria-expanded="true"] .teacher-profile-chevron{
    transform:rotate(180deg);
}

.teacher-profile-menu{
    position:absolute;
    top:calc(100% + 9px);
    right:0;
    z-index:80;
    min-width:220px;
    padding:8px;
    border:1px solid rgba(184,155,94,.2);
    border-radius:17px;
    background:#FFFEFA;
    box-shadow:0 18px 42px rgba(70,51,34,.13);
}

.teacher-profile-menu[hidden]{
    display:none;
}

.teacher-profile-menu a{
    display:flex;
    align-items:center;
    min-height:43px;
    padding:10px 12px;
    border-radius:12px;
    color:#2E2A28;
    font-size:13px;
    font-weight:650;
    text-decoration:none;
    transition:background-color .16s ease,color .16s ease;
}

.teacher-profile-menu a:hover{
    background:#F7F2EA;
    color:#7A2528;
}

.teacher-profile-menu a:last-child{
    color:#7A2528;
}

.teacher-dashboard-summary{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:13px;
    margin:0 0 14px;
    padding:15px 19px;
    border:1px solid rgba(184,155,94,.17);
    border-radius:16px;
    background:rgba(255,254,250,.72);
    color:#716A64;
    box-shadow:0 8px 24px rgba(70,51,34,.035);
}

.teacher-dashboard-summary-item{
    display:inline-flex;
    align-items:baseline;
    gap:6px;
    color:#716A64;
    font-size:13px;
    font-weight:550;
    line-height:1.45;
    text-decoration:none;
}

.teacher-dashboard-summary-item[href]:hover{
    color:#7A2528;
}

.teacher-dashboard-summary-item strong{
    color:#1E1C1A;
    font-size:14px;
    font-weight:750;
}

.teacher-dashboard-summary-divider{
    width:4px;
    height:4px;
    flex:none;
    border-radius:50%;
    background:#B89B5E;
}

.teacher-calendar-days{
    border-bottom:1px solid rgba(184,155,94,.25) !important;
}

.teacher-calendar-time{
    border-right:1px solid rgba(30,28,26,.2) !important;
    border-bottom:1px solid rgba(184,155,94,.22) !important;
}

.teacher-calendar-cell{
    border-right:1px solid rgba(184,155,94,.2) !important;
    border-bottom:1px solid rgba(184,155,94,.22) !important;
    background:#FFFEFB !important;
}

.teacher-calendar-cell:hover{
    background:#FCF7EE !important;
}

.teacher-calendar-cell.drag-over{
    background:#FBF1DB !important;
    outline:2px solid rgba(122,37,40,.65) !important;
}

.teacher-calendar-card .teacher-calendar-lesson{
    padding:10px 11px;
    border:1px solid rgba(122,37,40,.1);
    border-left:4px solid #7A2528;
    border-radius:13px;
    background:rgba(201,169,166,.24);
    color:#1E1C1A;
    box-shadow:0 5px 15px rgba(70,51,34,.06);
}

.teacher-calendar-card .teacher-calendar-lesson strong{
    margin-bottom:7px;
    color:#1E1C1A;
    font-weight:750;
}

.teacher-calendar-card .teacher-calendar-lesson small{
    color:#7A2528;
    font-weight:750;
}

.teacher-calendar-card .teacher-calendar-lesson em{
    color:#625B55;
    font-weight:650;
}

.teacher-calendar-card .teacher-calendar-lesson.color-purple{
    background:rgba(201,169,166,.24);
    border-color:rgba(122,37,40,.12);
    border-left-color:#7A2528;
    color:#1E1C1A;
}

.teacher-calendar-card .teacher-calendar-lesson.color-blue{
    background:rgba(184,155,94,.13);
    border-color:rgba(184,155,94,.24);
    border-left-color:#B89B5E;
    color:#1E1C1A;
}

.teacher-calendar-card .teacher-calendar-lesson.color-green{
    background:rgba(104,128,100,.13);
    border-color:rgba(104,128,100,.2);
    border-left-color:#688064;
    color:#1E1C1A;
}

.teacher-calendar-card .teacher-calendar-lesson.color-yellow{
    background:rgba(205,177,111,.16);
    border-color:rgba(184,155,94,.22);
    border-left-color:#B88943;
    color:#1E1C1A;
}

.teacher-calendar-card .teacher-calendar-lesson.color-pink{
    background:rgba(201,169,166,.17);
    border-color:rgba(201,169,166,.28);
    border-left-color:#A86B6E;
    color:#1E1C1A;
}

.teacher-calendar-card .teacher-calendar-lesson.color-gray{
    background:#F1EDE7;
    border-color:#DED6CC;
    border-left-color:#9A9188;
    color:#49433F;
}

.teacher-calendar-card .teacher-calendar-lesson.rescheduled{
    background:#F9F0DE;
    border-color:rgba(184,155,94,.28);
    border-left-color:#B89B5E;
    color:#1E1C1A;
}

.teacher-calendar-card .teacher-calendar-lesson.canceled{
    background:#F1EDE7;
    border-color:#DED6CC;
    border-left-color:#9A9188;
    color:#817970;
    opacity:.78;
}

.teacher-calendar-card .teacher-calendar-lesson-badge{
    margin-bottom:6px;
    padding:3px 8px;
    background:rgba(255,254,250,.88);
    color:#7A2528;
    font-size:10px;
    font-weight:750;
}

/* Микроправки карточек занятий */
.teacher-calendar-card .teacher-calendar-lesson{
    transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}

.teacher-calendar-card .teacher-calendar-lesson:hover{
    z-index:5;
    transform:translateY(-2px);
    box-shadow:0 10px 22px rgba(70,51,34,.10);
}

.teacher-calendar-card .teacher-calendar-lesson strong{
    margin-bottom:5px;
    font-size:13px;
    font-weight:700;
    line-height:1.22;
}

.teacher-calendar-card .teacher-calendar-lesson small{
    font-size:11px;
    line-height:1.25;
}

.teacher-calendar-card .teacher-calendar-lesson em{
    margin-top:4px;
    font-size:10.5px;
    line-height:1.2;
}

.teacher-calendar-lesson-kind{
    display:block;
    margin-bottom:4px;
    color:#8A6D36;
    font-size:9px;
    font-weight:750;
    line-height:1.2;
    letter-spacing:.045em;
    text-transform:uppercase;
}

/* Чуть компактнее верх календаря */
.teacher-calendar-card{
    padding-top:18px;
}

.teacher-calendar-toolbar{
    margin-bottom:9px;
}

.teacher-calendar-days div{
    min-height:56px;
}

/* Варианты типа занятия должны доходить до краёв белой области */
.schedule-modal-panel .schedule-target-type,
.schedule-modal-panel .choice-grid,
.schedule-modal-panel .schedule-choice-grid{
    width:100%;
    max-width:none;
    box-sizing:border-box;
}

.schedule-modal-panel .choice-grid,
.schedule-modal-panel .schedule-choice-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
}

.schedule-modal-panel .choice-grid > *,
.schedule-modal-panel .schedule-choice-grid > *,
.schedule-modal-panel .choice-card,
.schedule-modal-panel .choice-card span{
    width:100%;
    min-width:0;
    max-width:none;
    box-sizing:border-box;
}

.schedule-modal-panel .choice-card{
    display:block;
    margin:0;
}

.schedule-modal-panel .choice-card span{
    height:100%;
}

@media(max-width:760px){
    .teacher-dashboard-header{
        align-items:flex-start !important;
    }

    .teacher-profile-copy{
        display:none;
    }

    .teacher-profile-button{
        padding:5px;
    }

    .teacher-profile-chevron{
        display:none;
    }

    .teacher-dashboard-summary{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
    }

    .teacher-dashboard-summary-divider{
        display:none;
    }
}


/* -------- demo-only safety / navigation -------- */
html{scroll-behavior:smooth}
body{padding-top:46px;}
.demo-ribbon{
    position:fixed;top:0;left:0;right:0;height:46px;z-index:99999;
    display:flex;align-items:center;justify-content:center;gap:10px;
    background:#7A2528;color:#fff;
    font-size:12px;font-weight:600;
    box-shadow:0 5px 18px rgba(75,30,30,.14);
}
.demo-ribbon::before{
    content:"";width:7px;height:7px;border-radius:50%;background:#D5B56F;
}
.demo-ribbon__right{
    position:absolute;right:18px;display:flex;gap:8px;
}
.demo-ribbon__right a{
    border:1px solid rgba(255,255,255,.28);border-radius:999px;
    color:#fff;text-decoration:none;padding:7px 11px;font-size:11px;
}
.demo-ribbon__right a:hover{background:rgba(255,255,255,.10)}

.demo-view{display:none;width:100%;}
.demo-view.active{display:block;}
.demo-no-write{
    position:fixed;right:24px;bottom:24px;z-index:100000;
    max-width:390px;padding:16px 18px;border-radius:15px;background:#2E2A28;color:#fff;
    font-size:12px;line-height:1.55;box-shadow:0 18px 50px rgba(0,0,0,.18);
    opacity:0;transform:translateY(10px);pointer-events:none;transition:.22s;
}
.demo-no-write.show{opacity:1;transform:none}

.demo-disabled{cursor:pointer}
.demo-disabled[aria-disabled="true"]{}
.demo-note{
    margin:0 0 24px;padding:14px 17px;border-radius:14px;
    border:1px solid #E8D9C7;background:#FFF9F0;color:#75675E;
    font-size:12px;line-height:1.6;
}
.demo-note strong{color:#7A2528;}

/* generic content that uses the real visual language */
.demo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.demo-card{
    background:#fff;border:1px solid #E7DDD0;border-radius:22px;padding:25px;
    box-shadow:0 12px 34px rgba(68,50,39,.05);
}
.demo-card h2,.demo-card h3{color:#2E2A28;margin:0 0 10px}
.demo-card h2{font-size:22px} .demo-card h3{font-size:18px}
.demo-card p{color:#7A726C;font-size:13px;line-height:1.65;margin:0 0 15px}
.demo-kicker{
    color:#B89B5E;font-size:11px;font-weight:800;text-transform:uppercase;
    letter-spacing:.08em;margin-bottom:8px;
}
.demo-list{display:grid;gap:12px}
.demo-list-row{
    background:#fff;border:1px solid #E8DED2;border-radius:18px;padding:18px 20px;
    display:grid;grid-template-columns:minmax(0,1.5fr) minmax(120px,.7fr) auto;
    align-items:center;gap:18px;
}
.demo-list-row strong{font-size:15px;color:#2E2A28}
.demo-list-row small{display:block;margin-top:5px;color:#847A72;font-size:11px;line-height:1.5}
.demo-status{
    display:inline-flex;padding:8px 11px;border-radius:999px;font-size:10px;font-weight:800;
    background:#F4EBDD;color:#7A2528;justify-self:start;
}
.demo-status.green{background:#E5F0E8;color:#4D7A5D}
.demo-status.red{background:#F5E5E5;color:#9C3B3E}
.demo-status.gold{background:#F2E9D9;color:#896C30}
.demo-progress{height:9px;border-radius:99px;background:#EEE5DB;overflow:hidden;margin-top:10px}
.demo-progress span{height:100%;display:block;background:#7A2528;border-radius:99px}
.demo-chart{height:210px;display:flex;align-items:flex-end;gap:14px;padding:36px 6px 30px;border-bottom:1px solid #EEE4D8}
.demo-bar{flex:1;position:relative;border-radius:12px 12px 3px 3px;background:#7A2528;min-width:28px}
.demo-bar b{position:absolute;top:-25px;left:50%;transform:translateX(-50%);font-size:11px}
.demo-bar small{position:absolute;bottom:-25px;left:50%;transform:translateX(-50%);font-size:9px;color:#847A72}
.demo-big-number{font-size:44px;font-weight:800;color:#7A2528;line-height:1}
.demo-finance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}
.demo-finance-card{background:#fff;border-radius:22px;padding:26px;border:1px solid #E7DDD0}
.demo-finance-card span{display:block;color:#8A817B;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.demo-finance-card strong{display:block;font-size:36px;color:#7A2528;margin-top:11px}
.demo-calendar-simple{display:grid;grid-template-columns:70px repeat(7,minmax(90px,1fr));border:1px solid #E6DDD2;border-radius:20px;overflow:auto;background:#fff}
.demo-calendar-simple > div{min-height:78px;padding:11px;border-right:1px solid #EEE5DA;border-bottom:1px solid #EEE5DA;font-size:11px}
.demo-calendar-simple .head{background:#FBF7F1;font-weight:800;text-align:center;min-height:54px}
.demo-calendar-simple .time{color:#887D75;font-weight:700;background:#FBF7F1}
.demo-lesson{display:block;border-radius:10px;background:#F2E7D5;color:#7A2528;padding:8px;font-size:10px;line-height:1.35;font-weight:700}
.demo-lesson.green{background:#E5F0E8;color:#4D7A5D}
.demo-lesson.purple{background:#EEE7F4;color:#705387}

.student-cabinet-sidebar .menu a,
.teacher-sidebar-menu .teacher-menu-link{
    cursor:pointer;
}
.student-cabinet-sidebar .menu a.active,
.teacher-sidebar-menu .teacher-menu-link.active{
    background:#7A2528 !important;color:#fff !important;
}
.student-cabinet-sidebar .menu a.active .sidebar-menu-icon::after,
.student-cabinet-sidebar .menu a.active .sidebar-menu-icon::before{
    filter:brightness(0) invert(1);
}
.teacher-sidebar-menu .teacher-menu-link.active .teacher-menu-icon{
    filter:none;
}

.demo-role-landing{
    min-height:calc(100vh - 46px);display:grid;grid-template-columns:1fr 1fr;background:#F7F2EA;
}
.demo-role-copy{padding:8vw 6vw;display:flex;flex-direction:column;justify-content:center}
.demo-role-brand{font-size:22px;font-weight:800;color:#7A2528;margin-bottom:60px}
.demo-role-copy h1{font-size:clamp(58px,7vw,116px);line-height:.9;letter-spacing:-.045em;color:#2E2A28;margin-bottom:25px}
.demo-role-copy p{max-width:650px;color:#756F6A;line-height:1.8;font-size:14px}
.demo-role-options{background:#7A2528;padding:7vw 5vw;display:flex;flex-direction:column;justify-content:center;gap:16px}
.demo-role-option{
    display:block;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:22px;padding:25px;text-decoration:none;transition:.2s
}
.demo-role-option:hover{background:#fff;color:#2E2A28;transform:translateX(-4px)}
.demo-role-option small{font-size:10px;text-transform:uppercase;letter-spacing:.12em;opacity:.65}
.demo-role-option h2{font-size:30px;margin:8px 0 5px}
.demo-role-option p{font-size:11px;line-height:1.6;opacity:.72;margin:0}
.demo-role-option:hover p{color:#746D68}

@media(max-width:1100px){
    .demo-grid{grid-template-columns:1fr 1fr}
    .demo-finance-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
    body{padding-top:42px}
    .demo-ribbon{height:42px;justify-content:flex-start;padding-left:14px;font-size:9px}
    .demo-ribbon__right{right:8px}
    .demo-ribbon__right a{font-size:9px;padding:5px 7px}
    .demo-role-landing{grid-template-columns:1fr}
    .demo-role-copy{padding:55px 25px}
    .demo-role-options{padding:40px 25px 55px}
}
@media(max-width:700px){
    .demo-grid,.demo-finance-grid{grid-template-columns:1fr}
    .demo-list-row{grid-template-columns:1fr}
}


/* ===== DEMO VIEW NAVIGATION ===== */
.demo-view{display:none !important;}
.demo-view.active{display:block !important;}

/* Before JS starts we still show the home screen, so the page is never blank. */
body:not(.demo-js-ready) #view-home{display:block !important;}

/* Main content remains visible beside the real sidebar. */
.student-cabinet-sidebar ~ .content,
.teacher-sidebar ~ .content{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    min-height:100vh !important;
}


/* ===== FIX 2: render sidebar icons as normal <img>, not CSS masks ===== */
.student-cabinet-sidebar .sidebar-menu-icon,
.teacher-sidebar .teacher-menu-icon{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
}

.student-cabinet-sidebar .sidebar-menu-icon::before,
.teacher-sidebar .teacher-menu-icon::before{
    display:none !important;
    content:none !important;
}

.student-cabinet-sidebar .sidebar-menu-icon img{
    display:block !important;
    width:24px !important;
    height:24px !important;
    max-width:none !important;
    opacity:1 !important;
    visibility:visible !important;
}

.teacher-sidebar .teacher-menu-icon img{
    display:block !important;
    width:22px !important;
    height:22px !important;
    max-width:none !important;
    opacity:1 !important;
    visibility:visible !important;
}

/* Student SVGs use currentColor, so normal IMG rendering keeps their own SVG defaults.
   On the active burgundy item we invert them to white. */
.student-cabinet-sidebar .menu a.active .sidebar-menu-icon img{
    filter:brightness(0) invert(1) !important;
}

/* Teacher SVGs have black strokes; make active item white. */
.teacher-sidebar-menu .teacher-menu-link.active .teacher-menu-icon img{
    filter:brightness(0) invert(1) !important;
}

/* Keep icon containers visually aligned with the real cabinet. */
.student-cabinet-sidebar .sidebar-menu-icon{
    width:40px !important;
    height:40px !important;
    border-radius:11px !important;
}

.teacher-sidebar .teacher-menu-icon{
    width:26px !important;
    height:26px !important;
}


/* ===== READ-ONLY PREVIEWS ===== */
.demo-preview-modal{
    position:fixed;
    inset:0;
    z-index:200000;
    display:grid;
    place-items:center;
    padding:22px;
    opacity:0;
    visibility:hidden;
    transition:.2s ease;
}
.demo-preview-modal.open{
    opacity:1;
    visibility:visible;
}
.demo-preview-backdrop{
    position:absolute;
    inset:0;
    background:rgba(38,31,28,.52);
    backdrop-filter:blur(7px);
}
.demo-preview-dialog{
    position:relative;
    width:min(760px,100%);
    max-height:86vh;
    overflow:auto;
    border-radius:24px;
    background:#FFFDF9;
    padding:30px;
    box-shadow:0 30px 90px rgba(0,0,0,.22);
}
.demo-preview-close{
    position:absolute;
    top:18px;
    right:18px;
    width:38px;
    height:38px;
    border-radius:50%;
    border:1px solid #E2D7CB;
    background:#fff;
    color:#7A2528;
    font-size:19px;
}
.demo-preview-kicker{
    color:#B89B5E;
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.demo-preview-dialog h2{
    margin:12px 50px 8px 0;
    color:#2E2A28;
    font-size:26px;
}
.demo-preview-dialog > p{
    color:#7F756E;
    font-size:11px;
    line-height:1.7;
}
.demo-preview-content{
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid #ECE2D8;
}
.demo-preview-line{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    padding:15px 0;
    border-bottom:1px solid #EFE6DD;
}
.demo-preview-line:last-child{border-bottom:0}
.demo-preview-line strong{
    display:block;
    color:#2E2A28;
    font-size:12px;
}
.demo-preview-line small{
    display:block;
    margin-top:5px;
    color:#887E77;
    font-size:9px;
    line-height:1.55;
}
.demo-preview-badge{
    padding:8px 10px;
    border-radius:999px;
    background:#F3E9DA;
    color:#7A2528;
    font-size:9px;
    font-weight:800;
    white-space:nowrap;
}
.demo-preview-badge.green{
    background:#E5F0E8;
    color:#4F765B;
}
.demo-preview-badge.red{
    background:#F5E4E4;
    color:#964247;
}
.demo-view .demo-card,
.demo-view .student-card{
    transition:transform .18s ease,box-shadow .18s ease;
}
.demo-view .demo-card:hover{
    transform:translateY(-2px);
    box-shadow:0 15px 36px rgba(68,50,39,.08);
}
