.full-page{
    width:min(1180px, calc(100% - 28px));
    margin:0 auto;
    padding:28px 0 70px;
}

.back-home{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:20px;
    padding:10px 15px;
    border-radius:8px;
    background:#ffffff;
    color:#23468a;
    text-decoration:none;
    font-weight:800;
    box-shadow:0 10px 22px rgba(5,16,40,.14);
}

.back-home::before{
    content:"\2190";
    margin-right:8px;
}

.full-heading{
    margin-bottom:22px;
}

.full-heading h1{
    margin:0 0 8px;
    text-align:left;
    color:#ffffff;
    font-size:38px;
}

.full-heading p{
    color:#dbeafe;
    font-size:16px;
    font-weight:700;
}

.full-status{
    padding:22px;
    border-radius:8px;
    background:#ffffff;
    color:#23468a;
    font-weight:800;
}

.timetable-scroll{
    max-height:calc(100vh - 245px);
    overflow:auto;
    border-radius:8px;
    border:1px solid #bfdbfe;
    background:#ffffff;
    box-shadow:0 18px 45px rgba(5,16,40,.16);
}

.weekly-table{
    min-width:780px;
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    table-layout:fixed;
}

.weekly-table th,
.weekly-table td{
    border-right:1px solid #d7e5fb;
    border-bottom:1px solid #d7e5fb;
    vertical-align:top;
}

.day-head,
.time-head{
    position:sticky;
    top:0;
    z-index:4;
    min-width:132px;
    padding:12px 10px;
    background:#23468a;
    color:#ffffff;
    font-size:13px;
    letter-spacing:0;
    text-align:center;
}

.time-head,
.time-cell{
    width:82px;
    min-width:82px;
    max-width:82px;
}

.sticky-corner{
    left:0;
    z-index:7;
    background:#17366f;
}

.time-cell{
    position:sticky;
    left:0;
    z-index:3;
    padding:14px 10px;
    background:#17366f;
    color:#ffffff;
    font-size:13px;
    font-weight:800;
    text-align:center;
}

.subject-cell{
    min-width:132px;
    height:82px;
    padding:8px;
    background:#f8fbff;
    color:#172554;
}

.subject-stack{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.subject-item{
    padding:8px;
    border-radius:8px;
    background:#eaf2ff;
    border:1px solid #bfdbfe;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.subject-item strong{
    display:block;
    color:#153c88;
    font-size:12px;
    line-height:1.25;
}

.subject-item small{
    display:block;
    margin-top:4px;
    color:#52647e;
    font-size:11px;
    line-height:1.3;
}

.free-cell{
    background:#f8fafc;
    color:#94a3b8;
    text-align:center;
    vertical-align:middle;
    font-weight:700;
}

.continued-cell .subject-item{
    background:#f1f6ff;
    border-style:dashed;
}

.continued-label,
.day-marker{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
}

.continued-label{
    align-self:flex-start;
    padding:3px 7px;
    background:#dbeafe;
    color:#23468a;
}

.day-marker{
    margin-left:6px;
    padding:3px 6px;
    background:#ffffff;
    color:#23468a;
}

.day-head.today-column,
.day-head.next-working-column{
    background:#1d4ed8;
}

.subject-cell.today-column{
    background:#eff6ff;
}

.subject-cell.current-cell{
    background:#dbeafe;
    box-shadow:inset 0 0 0 3px #1d4ed8;
}

.subject-cell.current-cell .subject-item{
    background:#ffffff;
    border-color:#1d4ed8;
}

@media(max-width:768px){
    .full-page{
        width:min(100% - 20px, 1180px);
        padding-top:20px;
    }

    .full-heading h1{
        font-size:30px;
    }

    .timetable-scroll{
        max-height:calc(100vh - 220px);
    }

    .weekly-table{
        min-width:760px;
    }

    .day-head,
    .subject-cell{
        min-width:128px;
    }

    .time-head,
    .time-cell{
        width:72px;
        min-width:72px;
        max-width:72px;
    }
}

@media(max-width:430px){
    .subject-cell{
        height:78px;
        padding:7px;
    }

    .subject-item{
        padding:7px;
    }
}
