
/* index */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Fira Sans', sans-serif;
}

body {
    background: #F8F9FE;
    color: #313364;
}

.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

.header {
    background: #313364;
    padding: 15px 0;
}

.nav {
    display: flex;
    justify-content: center;
    gap: 40px;
}

.nav a {
    color: #F8F9FE;
    text-decoration: none;
    font-size: 14px;
    transition: 0.3s;
}

.nav a:hover {
    opacity: 0.7;
}

.hero {
    background: url('./images/hero.svg') center / cover no-repeat;
    min-height: 500px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero-content {
    color: #F8F9FE;
    max-width: 600px;
    text-align: center;
    margin: 0 auto;
}

.hero h1 {
    font-size: 32px;
    margin-bottom: 15px;
}

.hero p {
    margin-bottom: 20px;
    line-height: 1.5;
}

.hero ul {
    text-align: left;
    display: inline-block;
    opacity: 0.9;
}

.hero li {
    margin: 6px 0;
}

.directions {
    padding: 70px 0;
    text-align: center;
}

.directions h2 {
    margin-bottom: 40px;
    font-size: 24px;
}

.cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    margin-bottom: 40px;
}

.card {
    background: #F8F9FE;
    border-radius: 14px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 15px;
    border: 1px solid #A371D0;
    transition: 0.3s;
    font-size: 16px;
    box-shadow: 0 4px 4px #A371D0;
}

.card img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.card:hover {
    transform: translateY(-5px);
}

.btn {
    padding: 12px 28px;
    background: #313364;
    color: #F8F9FE;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    font-size: 14px;
    transition: 0.3s;
    font-weight: 500;
}

.btn:hover {
    background: #575aaa;
}

.faq {
    padding: 60px 0;
}

.faq h2 {
    text-align: center;
    margin-bottom: 30px;
}

.faq-item {
    background: #F3EFFD;
    margin: 12px auto;
    max-width: 800px;
    border-radius: 12px;
    padding: 18px;
    cursor: pointer;
    transition: 0.25s ease;
}

.faq-item:hover {
    transform: scale(1.03);
}

.faq-question {
    font-weight: bold;
}

.faq-answer {
    display: none;
    margin-top: 10px;
    font-size: 14px;
    color: #313364;
}

.faq-item.active .faq-answer {
    display: block;
}

.faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.faq-question::after {
    content: "";
    width: 16px;
    height: 16px;
    background: url('./images/Vector.svg') center/contain no-repeat;
    transition: 0.3s;
}

.faq-item.active .faq-question::after {
    transform: rotate(180deg);
}

.blog {
    padding: 70px 0;
    text-align: center;
}

.blog h2 {
    margin-bottom: 40px;
    font-size: 24px;
}

.blog-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.blog-card {
    background: #fff;
    border-radius: 14px;
    padding: 25px;
    text-align: left;
    box-shadow: 0 4px 4px #A371D0;
    transition: 0.3s;
}

.blog-card:hover {
    transform: translateY(-5px);
}

.blog-type {
    font-size: 13px;
    color: #313364;
    display: block;
    margin-bottom: 10px;
}

.blog-card h3 {
    font-size: 16px;
    margin-bottom: 10px;
    color: #313364;
}

.blog-card p {
    font-size: 14px;
    color: #313364;
    margin-bottom: 20px;
}

.footer {
    background-color: #A371D0;
    color: #fff;
    padding: 40px 0;
}

.footer-content {
    text-align: center;
}

.footer-top {
    margin-bottom: 30px;
    font-size: 14px;
}

.footer-bottom {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 100px;
    flex-wrap: wrap;
    margin-top: 20px;
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-align: left; 
}

.footer-contacts {
    text-align: right;
}

.footer-links a {
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    opacity: 0.9;
    transition: 0.3s;
}

.footer-links a:hover {
    opacity: 1;
}

.footer-contacts p {
    margin-bottom: 8px;
}


/* catalog */


.courses {
    padding: 70px 0;
}

.courses h2 {
    margin-bottom: 10px;
}

.subtitle {
    color: #313364;
    margin-bottom: 40px;
}

.course-cards {
    display: grid;
    grid-template-columns: repeat(2, 430px);
    justify-content: center;
    gap: 150px;
}

.course-card {
    background: #fff;
    border-radius: 16px;
    padding: 25px;
    border: 1px solid #A371D0;
    box-shadow: 0 4px 4px #A371D0;
    transition: 0.3s;
}

.course-card:hover {
    transform: translateY(-5px);
}

.course-top {
    display: flex;
    gap: 15px;
    margin-bottom: 15px;
}

.course-img {
    width: 120px;
}

.teacher {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 15px 0;
}

.teacher img {
    width: 55px;
    height: 55px;
}

.course-list li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 6px;
    list-style: none;
}

.course-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 14px;
    height: 14px;
    background: url('./images/checkmark.svg') center/contain no-repeat;
}

.course-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
}

.price {
    font-weight: bold;
    font-size: 18px;
}

.muted {
    color: #7E7E87;
    font-size: 14px;
}

.small {
    font-size: 12px;
}

.teacher-name {
    font-weight: 500;
}

.course-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #7E7E87;
    font-size: 14px;
    margin-top: 10px;
}

.course-badge img {
    width: 16px;
    height: 16px;
}


/* student_cab */


.cabinet {
    padding: 40px 0;
}

.cabinet-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 40px;
}

.sidebar {
    display: flex;
    flex-direction: column;
}

.sidebar h2 {
    margin-bottom: 25px;
}

.sidebar-menu {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sidebar-menu .active {
    background: #3b3a6b;
    color: #fff;
}

.support {
    margin-top: 50px;
    padding: 25px 20px;
    background: #fff;
    border-radius: 18px;
    text-align: center;
    border: 1px solid #ece8ff;
    box-shadow: 0 4px 4px #A371D0;
}

.support img {
    width: 65px;
    margin-bottom: 15px;
}

.support-title {
    font-weight: 500;
    margin-bottom: 5px;
}

.cabinet-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
}

.link {
    color: #A371D0;
    cursor: pointer;
}

.cabinet-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

.cabinet-card {
    display: flex;
    gap: 20px;
    padding: 25px 30px;
    background: #fff;
    border-radius: 18px;
    border: 1px solid #ece8ff;
    box-shadow: 0 4px 4px #A371D0;
}

.cabinet-card img {
    width: 65px;
    height: 65px;
}   

.badge {
    display: inline-block;
    background: #F3EFFD;
    color: #313364;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    margin-bottom: 8px;
}

.badge.done {
    background: #E7F5F3;
    color: #3B847C;
}

.progress {
    height: 6px;
    background: #F3EFFD;
    border-radius: 10px;
    margin: 10px 0;
}

.progress div {
    height: 100%;
    background: #313364;
    border-radius: 10px;
}

.cabinet-bottom {
    display: grid;
    grid-template-columns: 2fr 1.5fr;
    gap: 25px;
}

.progress-box {
    background: #fff;
    padding: 20px;
    border-radius: 14px;
}

.progress.big {
    height: 8px;
}

.next img {
    width: 25px;
}

.btn.light {
    background: #fff;
    color: #313364;
    border: 3px solid #F3EFFD;
    margin-top: 110px;
}

.btn.light:hover {
    background: #F3EFFD;
}

.cabinet-info h4 {
    margin: 5px 0;
    font-size: 16px;
}

.progress-text {
    font-weight: 500;
    margin: 5px 0;
}

.plan, .progress-box {
    background: #fff;
    padding: 25px;
    border-radius: 10px;
    box-shadow: 0 4px 4px #A371D0;
}

.plan h4 {
    margin-bottom: 15px;
}

.support .btn {
    margin-top: 20px;
}

html {
    scroll-behavior: smooth;
}

.sidebar-menu a {
    text-decoration: none;
    color: #313364;
    font-size: 15px;
    border-radius: 10px;
    cursor: pointer;
    padding: 12px 15px;
    transition: 0.2s;
    display: block;
}

.sidebar-menu a.active {
    background: #313364;
    color: #fff;
}

.plan-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.current-badge {
    background: #F3EFFD;
    color: #313364;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
}

.lesson {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
}

.lesson-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lesson-icon {
    width: 22px;
    height: 22px;
}

.lesson-time {
    font-size: 13px;
    color: #313364;
}

.lesson p {
    margin: 0;
    font-size: 15px;
}

.progress-stats {
    display: flex;
    justify-content: space-between;
    text-align: center;
    margin: 20px 0;
}

.progress-stats p {
    font-size: 13px;
    margin-bottom: 5px;
}

.progress-stats strong {
    font-size: 16px;
}

.next-box {
    display: flex;
    gap: 15px;
    background: #F3EFFD;
    padding: 18px;
    border-radius: 14px;
    align-items: flex-start;
}

.next-box img {
    width: 35px;
}

.next-title {
    font-weight: 600;
    margin-bottom: 5px;
}

.next-box .btn {
    margin-top: 12px;
}

.tasks-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 600px;
}
.task-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
    padding: 20px 25px;
    border-radius: 10px;
    box-shadow: 0 4px 4px #A371D0;
}

.task-card.overdue {
    box-shadow: 0 4px 4px #D04D5C;
}

.task-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

.task-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.task-icon img {
    width: 24px;
    height: 24px;
}

.task-card h4 {
    margin-bottom: 4px;
    font-size: 16px;
}

.muted {
    color: #313364;
    font-size: 14px;
}

.cabinet-content {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.deadline {
    margin-top: 8px;
    font-size: 14px;
    color: #313364;
}

.task-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
}

.status {
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    background: #F3EFFD;
    color: #313364;
}

.status.overdue {
    background: #FEEBED;
    color: #D04D5C;
}

.task-btn {
    text-decoration: none;
    padding: 10px 18px;
    border-radius: 10px;
    border: 1px solid #A371D0;
    color: #313364;
    font-size: 14px;
    transition: 0.2s;
}

.task-btn:hover {
    background: #F3EFFD;
}

.grades-card {
    width: 520px;
    background: #fff;
    border-radius: 10px;
    padding: 15px;
    font-family: sans-serif;
}

.grades-header {
    display: grid;
    grid-template-columns: 2fr 1fr 2fr;
    color: #313364;
    font-size: 14px;
    padding: 10px;
    background: #F3EFFD;
}

.grades-row {
    display: grid;
    grid-template-columns: 2fr 1fr 2fr;
    padding: 18px 10px;
    border-top: 1px solid #F3EFFD;
    align-items: center;
    color: #313364;
}

.grade {
    font-weight: 600;
}

.green {
    color: #3B847C;
}

.orange {
    color: #F98F29;
}

.grades-result {
    margin-top: 15px;
    background: #F3EFFD;
    border-radius: 10px;
    padding: 12px 15px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.grades-result img {
    width: 30px;
    height: 30px;
}

.result-text {
    display: flex;
    justify-content: space-between;
    width: 100%;
    color: #313364;
}


/* transition */


.role-select {
    padding: 80px 0;
}

.role-select .container {
    max-width: 1000px;
    margin: 0 auto;
}

.role-select h2,
.role-select .subtitle {
    text-align: left;
}

.role-select h2 {
    font-size: 24px;
    margin-bottom: 10px;
    color: #313364;
}

.roles {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.role-btn {
    display: block; 
    width: 420px;
    padding: 20px 0;
    text-align: center;
    text-decoration: none; 
    color: #fff;
    font-size: 18px;
    border-radius: 10px;
    background-color: #A371D0;
    transition: 0.25s ease;
}

.role-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 4px #A371D0;
}


/* teacher_cab */


.groups-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.group-card {
    background: #fff;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 4px #A371D0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.group-card h4 {
    margin-bottom: 5px;
    font-size: 18px;
    color: #313364;
}

.group-card .btn {
    margin-top: 15px;
    align-self: flex-end;
}

.journal-filters {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
}

.journal-filters select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding: 12px 18px;
    font-size: 16px;
    min-width: 250px;
    border-radius: 10px;
    border: 1px solid #A371D0;
    background: #fff url("images/arrow.svg") no-repeat right 15px center;
    cursor: pointer;
    background-size: 20px;
}

.journal-card {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 4px #A371D0;
}

.journal-header {
    display: grid;
    grid-template-columns: 2fr 2fr 1fr;
    background: #F3EFFD;
    padding: 15px;
    color: #313364;
    font-size: 14px;
}

.journal-row {
    display: grid;
    grid-template-columns: 2fr 2fr 1fr;
    align-items: center;
    padding: 15px;
    border-top: 1px solid #7E7E87;
}

.student {
    display: flex;
    align-items: center;
    gap: 10px;
}

.student img {
    width: 35px;
    height: 35px;
    border-radius: 50%;
}

.grade.green {
    color: #3B847C;
    font-weight: 600;
}

.grade.orange {
    color: #F98F29;
    font-weight: 600;
}

.grade.red {
    color: #D04D5C;
    font-weight: 600;
}

.check-card {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    padding: 30px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 4px #A371D0;
}

.check-left h4 {
    margin-bottom: 20px;
}

.file {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
}

.file img {
    width: 40px;
}

.file-size {
    color: #A371D0;
    font-size: 14px;
}

.check-right {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 300px;
}

.check-right .date {
    color: #3B847C;
    font-weight: 500;
}

.check-right textarea {
    height: 60px;
    border-radius: 10px;
    border: 1px solid #7E7E87;
    padding: 10px;
    resize: none;
}

.check-right input {
    height: 40px;
    border-radius: 10px;
    border: 1px solid #7E7E87;
    padding: 0 10px;
    width: 80px;
}

.duty-card {
    background: #fff;
    border-radius: 10px;
    padding: 20px 30px;
    box-shadow: 0 4px 4px #A371D0;
    max-width: 600px;
}

.duty-row {
    display: flex;
    justify-content: space-between;
    padding: 15px 0;
}

.student {
    color: #313364;
    font-weight: 500;
}

.task {
    color: #D04D5C;
}

.rating-card {
    background: #fff;
    border-radius: 10px;
    padding: 20px 30px;
    box-shadow: 0 4px 4px #A371D0;
    max-width: 700px;
}

.rating-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 0;
}

.rating-row:not(:last-child) {
    border-bottom: 1px solid #fff;
}

.place {
    width: 30px;
    font-weight: 700;
    font-size: 18px;
}

.first {
    color: #F98F29;
}

.second {
    color: #3B847C;
}

.third {
    color: #313364;
}

.student {
    flex: 1;
    margin-left: 20px;
    color: #313364;
}

.score b {
    color: #3B847C;
}

.btn-primary {
    background: #3f3d72;
    color: #fff;
    margin-top: 10px;
    width: 160px;
}


/* admin_cab */


.admin-cards {
    display: flex;
    gap: 30px;
}

.admin-card {
    background: #fff;
    border-radius: 16px;
    padding: 25px;
    width: 260px;
    box-shadow: 0 4px 4px #A371D0;
    display: flex;
    flex-direction: column;
}

.admin-card img {
    width: 40px;
    margin-bottom: 15px;
}

.admin-card h4 {
    margin-bottom: 10px;
    color: #313364;
}

.admin-card p {
    color: #313364;
    font-size: 14px;
    margin-bottom: 20px;
}

.admin-card .btn {
    margin-top: auto;
}

.assign-card {
    background: #fff;
    border-radius: 16px;
    padding: 25px 30px;
    box-shadow: 0 4px 4px #A371D0;
}

.assign-card h3 {
    margin-bottom: 20px;
    color: #313364;
}

.assign-form {
    display: flex;
    align-items: flex-end;
    gap: 25px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-group select {
    appearance: none;
    padding: 14px 20px;
    min-width: 220px;
    border-radius: 12px;
    border: 1px solid #A371D0;
    background: #fff url("images/arrow.svg") no-repeat right 12px center;
    background-size: 12px;
}

.assign-form .btn {
    height: 48px;
    padding: 0 30px;
}

.library-card {
    background: #fff;
    border-radius: 16px;
    padding: 25px 30px;
    box-shadow: 0 4px 4px #A371D0;
}

.library-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.library-header h3 {
    color: #313364;
}

.library-tabs {
    display: flex;
    gap: 25px;
    margin-bottom: 20px;
    border-bottom: 1px solid #7E7E87;
}

.tab {
    padding-bottom: 10px;
    cursor: pointer;
    color: #313364;
    position: relative;
}

.tab.active {
    color: #313364;
    font-weight: 500;
}

.tab.active::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 2px;
    background: #A371D0;
}

.library-content p {
    margin-bottom: 12px;
    color: #313364;
}

.constructor-layout {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.constructor-left {
    width: 100%;
    max-width: 450px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.module-card,
.upload-card,
.date-card {
    background: #fff;
    border-radius: 16px;
    padding: 20px;
    border: 1px solid #ccc;
}

.module-card input {
    width: 100%;
    padding: 12px;
    border-radius: 10px;
    border: 1px solid #ccc;
    margin-bottom: 15px;
}

.type-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.type {
    padding: 10px;
    border-radius: 10px;
    border: none;
    background: #F3EFFD;
    cursor: pointer;
    transition: 0.25s ease;
}

.type:hover{
    background: #A371D0;
    color: #fff;
}

.type.active {
    background: #A371D0;
    color: #fff;
}

.upload-card {
    text-align: center;
    cursor: pointer;
}

.upload-card img {
    width: 30px;
    margin-bottom: 10px;
}

.date-row {
    display: flex;
    gap: 15px;
    margin: 10px 0;
}

.date-row input {
    padding: 8px;
    border-radius: 8px;
    border: 1px solid #ccc;
}

.reminder {
    margin-top: 10px;
}

.reminder-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
}

.add-module {
    text-align: center;
    color: #7E7E87;
    cursor: pointer;
}


.constructor-right {
    width: 100%;
    max-width: 350px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 20px;
    border-radius: 10px;
    padding: 20px;
    border: 1px solid #ccc;
}

.constructor-title {
    text-align: center;
    margin-bottom: 10px;
    margin-top: 20px;
}

.group-card {
    background: #fff;
    border-radius: 10px;
    padding: 20px;
    width: 100%;
    box-shadow: none;
    border: 1px solid #ccc;
}

.group-header {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.group-header img {
    width: 20px;
}

.group-header .arrow {
    margin-left: auto;
    transition: 0.3s;
}

.group-content {
    margin-top: 15px;
    display: none;
    flex-direction: column;
    gap: 10px;
}

.group-card.active .group-content {
    display: flex;
}

.group-card.active .arrow {
    transform: rotate(180deg);
}

.student {
    padding: 8px 0;
}

.add-btn {
    margin-top: 10px;
    background: none;
    border: none;
    color: #A371D0;
    cursor: pointer;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.upload-block {
    margin-top: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    cursor: pointer;
}

.upload-block img {
    width: 20px;
}

.download-card {
    background: #fff;
    border-radius: 10px;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    justify-content: center;
    width: 100%;
    border: 1px solid #ccc;
}


.download-card img {
    width: 20px;
}

.constructor-right .btn.light {
    margin: 0 auto;
    display: block;
}

.checkbox {
    width: 22px;
    height: 22px;
    cursor: pointer;
}