body {

    margin:0;

    background:#f2f3f5;

    font-family:Arial, sans-serif;

}



/* =====================
   ШАПКА
===================== */


.header {

    position:fixed;

    top:0;
    left:0;

    width:100%;

    height:70px;

    background:#1976d2;

    display:flex;

    align-items:center;

    justify-content:center;

    z-index:1500;

}


.header-title {

    color:white;

    text-align:center;

    font-size:20px;

    font-weight:bold;

}


.year {

    font-size:15px;

    opacity:.9;

}



/* =====================
   КНОПКА МЕНЮ
===================== */


.menu-btn {

    position:fixed;

    top:20px;

    left:20px;

    width:35px;

    height:35px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    gap:5px;

    cursor:pointer;

    z-index:2000;

}


.menu-btn span {

    width:28px;

    height:3px;

    background:white;

    border-radius:5px;

}





/* =====================
   БОКОВОЕ МЕНЮ
===================== */


.sidebar {

    position:fixed;

    top:0;

    left:-100%;

    width:30%;

    height:100vh;

    background:white;

    padding-top:90px;

    box-shadow:5px 0 20px rgba(0,0,0,.15);

    transition:.35s;

    z-index:1000;

}


.sidebar.open {

    left:0;

}



.sidebar a {

    display:block;

    padding:18px 25px;

    text-decoration:none;

    color:#222;

    font-size:18px;

    border-bottom:1px solid #eee;

}



.sidebar a:hover {

    background:#f2f2f2;

}




.overlay {

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.35);

    opacity:0;

    visibility:hidden;

    transition:.3s;

    z-index:900;

}



.overlay.open {

    opacity:1;

    visibility:visible;

}






/* =====================
   КОНТЕЙНЕР
===================== */


.container {

    max-width:1100px;

    margin:100px auto 30px;

}






/* =====================
   КНОПКИ ПК
===================== */


.desktop-week-buttons {


    display:flex;

    justify-content:center;

    gap:15px;

    margin-top:90px;

    margin-bottom:20px;


}



.desktop-week-buttons a {


    background:#333;

    color:white;

    text-decoration:none;

    padding:10px 20px;

    border-radius:10px;


}







/* =====================
   ТАБЛИЦА
===================== */


.table-header {

    display:grid;

    grid-template-columns:90px 40px 180px 1fr;

    background:#222;

    color:white;

    padding:15px;

    border-radius:10px 10px 0 0;

    font-weight:bold;

}



.day-row {

    display:grid;

    grid-template-columns:90px 1fr;

    background:white;

    margin-top:10px;

    border-radius:10px;

    overflow:hidden;

}



.day {


    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    font-size:18px;

    font-weight:bold;

    padding:15px;

    border-right:1px solid #ddd;


}



.lessons {

    display:flex;

    flex-direction:column;

}






.lesson {


    display:grid;

    grid-template-columns:40px 180px 1fr;

    min-height:50px;

    border-bottom:1px solid #ddd;


}



.lesson:last-child {

    border-bottom:none;

}




.lesson > div {


    padding:12px;

    border-right:1px solid #ddd;

}




.subject {

    font-weight:500;

}



.homework {


    outline:none;

    cursor:text;

}



.homework:focus {


    background:#f7f7f7;

}








/* =====================
   МОБИЛЬНАЯ ВЕРСИЯ
===================== */


@media(max-width:400px){


.sidebar {

    width:80%;

}



.container {

    margin-top:90px;

}



.desktop-week-buttons {

    display:none;

}



.table-header {

    display:grid;

    grid-template-columns:70px 35px 120px 1fr;

    font-size:12px;

    padding:10px;

}



.day-row {

    grid-template-columns:70px 1fr;

}



.day {

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    background:#fafafa;

    padding:10px;

    font-size:16px;

}




.lesson {

    grid-template-columns:35px 120px 1fr;

}



.lesson > div {


    padding:10px;

    font-size:14px;


}



}


.container {

    max-width:1100px;

    margin:100px auto 30px;

    transition:0.3s ease;

}


.container.slide-out {

    transform:translateX(-80px);

    opacity:0;

}


.page {

    transition: transform .35s ease;

}


.page.next {

    transform:translateX(-100%);

}


.page.prev {

    transform:translateX(100%);

}



/* =====================
   DARK THEME
===================== */


body.dark {

    background:#111827;

    color:#eee;

}



body.dark .header {

    background:#0b3558;

}



body.dark .day-row {

    background:#1f2937;

}



body.dark .day {

    background:#172033;

    color:white;

}



body.dark .lesson > div {

    border-color:#374151;

    color:#eee;

}



body.dark .table-header {

    background:#0f172a;

}



body.dark .sidebar {

    background:#1f2937;

}



body.dark .sidebar a {

    color:white;

    border-color:#374151;

}



body.dark .sidebar a:hover {

    background:#374151;

}



body.dark .homework:focus {

    background:#334155;

}




.about {

    background:white;

    padding:30px;

    border-radius:15px;

    margin-top:120px;

    font-size:18px;

    line-height:1.6;

}



.about h1 {

    margin-top:0;

}







/* тёмная тема */

body.dark .about {

    background:#1f2937;

    color:white;

}


body.dark .back-btn {

    background:#0b3558;

}



/* ======================
   РАСПИСАНИЕ
====================== */


.schedule-page {

    margin-top:120px;

}



.schedule-card {


    background:white;

    padding:30px;

    border-radius:20px;

    box-shadow:0 5px 20px rgba(0,0,0,.08);

}



.schedule-card h1 {

    margin-top:0;

}



.description {

    color:#666;

    margin-bottom:25px;

}




.schedule-item {


    display:flex;

    align-items:center;

    gap:20px;

    margin-bottom:12px;


}



.lesson-number {


    width:100px;

    font-weight:bold;

    color:#555;


}



.schedule-item input {


    flex:1;

    padding:12px 15px;

    border-radius:10px;

    border:1px solid #ddd;

    font-size:16px;


}



.schedule-item input:focus {


    outline:none;

    border-color:#1976d2;


}



.save-btn {


    margin-top:25px;

    width:100%;

    padding:14px;

    border:0;

    border-radius:12px;

    background:#1976d2;

    color:white;

    font-size:18px;

    cursor:pointer;


}



.save-btn:hover {

    opacity:.9;

}




/* Тёмная тема */


body.dark .schedule-card {

    background:#1f2937;

    color:white;

}



body.dark .description {

    color:#bbb;

}



body.dark .lesson-number {

    color:#ddd;

}



body.dark .schedule-item input {

    background:#111827;

    color:white;

    border-color:#374151;

}





.day-title {

    margin-top:30px;

    padding:12px 15px;

    background:#1976d2;

    color:white;

    border-radius:12px 12px 0 0;

    font-size:22px;

}



.day-block {

    border-bottom:2px solid #ddd;

    padding-bottom:20px;

    margin-bottom:20px;

}




.day-divider {

    margin-top:25px;

    padding:10px 15px;

    background:#1976d2;

    color:white;

    font-size:18px;

    font-weight:bold;

    border-radius:10px;

}



.day-divider {

    margin-top:25px;

    padding:12px 15px;

    background:#1976d2;

    color:white;

    font-size:20px;

    font-weight:bold;

    border-radius:12px 12px 0 0;

}


.day-lessons {

    border-bottom:2px solid #ddd;

    padding-bottom:15px;

}




/* ==========================
   СТРАНИЦА РАСПИСАНИЯ
========================== */


.schedule-page {

    margin-top:110px;

}



.schedule-card {

    background:white;

    padding:25px;

    border-radius:20px;

    box-shadow:0 5px 20px rgba(0,0,0,.08);

}



.schedule-card h1 {

    margin-top:0;

}




.description {

    color:#777;

    margin-bottom:25px;

}





.day-title {

    margin-top:30px;

    margin-bottom:10px;

    padding-bottom:8px;

    border-bottom:2px solid #1976d2;

    color:#1976d2;

}





.day-lessons {

    display:flex;

    flex-direction:column;

}





.schedule-item {

    display:flex;

    align-items:center;

    gap:20px;

    margin-bottom:10px;

}





.lesson-number {

    width:90px;

    font-weight:bold;

}





.schedule-item input {

    flex:1;

    padding:12px;

    border-radius:10px;

    border:1px solid #ddd;

    font-size:16px;

}





.schedule-item input:focus {

    outline:none;

    border-color:#1976d2;

}





.save-btn {


    margin-top:25px;

    width:100%;

    padding:15px;

    border:0;

    border-radius:12px;

    background:#1976d2;

    color:white;

    font-size:18px;

    cursor:pointer;


}




.save-btn:hover {

    opacity:.9;

}



/* Тёмная тема */


body.dark .schedule-card {

    background:#1d2733;

    color:white;

}



body.dark .description {

    color:#aaa;

}



body.dark .schedule-item input {

    background:#111827;

    color:white;

    border-color:#374151;

}



body.dark .day-title {

    color:#64b5f6;

    border-color:#64b5f6;

}





/* Телефон */


@media(max-width:700px){


.schedule-card {

    padding:15px;

}



.schedule-item {

    gap:10px;

}



.lesson-number {

    width:70px;

}



.schedule-item input {

    font-size:14px;

}



}




.day-line {

    height:2px;

    background:#ddd;

    margin:15px 0;

}



.actions-container{

max-width:900px;
margin:100px auto;
padding:20px;

}


.action-card{

background:white;
border-radius:15px;
padding:20px;
margin-bottom:15px;

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

}


.action-time{

color:#777;
font-size:14px;

}


.action-title{

font-size:20px;
font-weight:bold;
margin:10px 0;

}


.change{

display:grid;
grid-template-columns:1fr 1fr;
gap:15px;

}


.old,
.new{

padding:15px;
border-radius:10px;

}


.old{

background:#ffecec;

}


.new{

background:#e8fff0;

}