.dashboard-flex {
    display: flex;
    gap: 32px;
    max-width: 1200px;
    margin: 40px auto 0 auto;
    align-items: flex-start;
}

.dashboard-sidebar {
    background: linear-gradient(120deg, #15305D 60%, #FFD700 100%);
    color: #FFFFFF;
    border-radius: 24px;
    box-shadow: 0 8px 32px rgba(21, 48, 93, 0.3), 0 1.5px 0 #FFD700 inset;
    padding: 32px 20px 24px 20px;
    min-width: 220px;
    max-width: 260px;
    position: relative;
    z-index: 2;
    transform: translateZ(20px);
}
.dashboard-sidebar h3 {
    color: #FFFFFF;
    margin-bottom: 22px;
    font-size: 1.25rem;
    letter-spacing: 1px;
    text-align: left;
}
.dashboard-sidebar .actions-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.dashboard-action {
    background: #FFFFFF;
    color: #15305D;
    padding: 12px 18px;
    border-radius: 16px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.08rem;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s, transform 0.2s;
    box-shadow: 0 2px 12px rgba(21, 48, 93, 0.2), 0 1.5px 0 #FFD700 inset;
    border: 2px solid transparent;
    text-align: left;
    will-change: transform;
}
.dashboard-action:hover, .dashboard-action:focus {
    background: #FFD700;
    color: #15305D;
    border: 2px solid #15305D;
}

.dashboard-container {
    flex: 1;
    max-width: 800px;
    background: #fff;
    border-radius: 32px;
    box-shadow: 0 8px 32px rgba(21, 48, 93, 0.2), 0 1.5px 0 #FFD700 inset;
    padding: 40px 32px 32px 32px;
    position: relative;
    z-index: 1;
    transform: translateZ(0);
}

.dashboard-welcome {
    display: flex;
    align-items: center;
    gap: 32px;
    margin-bottom: 32px;
    flex-wrap: wrap;
}
.dashboard-3d-avatar {
    position: relative;
    width: 90px;
    height: 90px;
    margin-right: 12px;
    flex-shrink: 0;
}
.avatar-3d {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: linear-gradient(135deg, #FFD700 60%, #FFFFFF 100%);
    box-shadow: 0 8px 32px rgba(21, 48, 93, 0.3), 0 2px 0 #15305D inset;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    z-index: 2;
    transform: perspective(120px) rotateY(-10deg) scale(1.04);
    animation: avatarFloat 2.5s ease-in-out infinite alternate;
}
.avatar-3d img {
    width: 70px;
    height: 70px;
    object-fit: contain;
    border-radius: 50%;
    filter: drop-shadow(0 2px 8px rgba(21, 48, 93, 0.3));
}
.avatar-shadow {
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 60px;
    height: 18px;
    background: radial-gradient(ellipse at center, rgba(21, 48, 93, 0.3) 60%, transparent 100%);
    transform: translateX(-50%) scaleY(0.7);
    z-index: 1;
    opacity: 0.7;
}
@keyframes avatarFloat {
    0% { transform: perspective(120px) rotateY(-10deg) scale(1.04) translateY(0);}
    100% { transform: perspective(120px) rotateY(-10deg) scale(1.04) translateY(-10px);}
}

.dashboard-welcome h2 {
    color: #15305D;
    margin-bottom: 4px;
    font-size: 2.1rem;
    font-weight: 800;
    letter-spacing: 1px;
}
.welcome-desc {
    color: #15305D;
    margin-bottom: 0;
    font-size: 1.1rem;
    font-style: italic;
}

.teacher-info-cards {
    display: flex;
    gap: 24px;
    margin-bottom: 36px;
    flex-wrap: wrap;
    justify-content: flex-start;
}
.info-card {
    background: linear-gradient(120deg, #FFD700 60%, #FFFFFF 100%);
    border-radius: 18px;
    box-shadow: 0 2px 16px rgba(21, 48, 93, 0.2);
    padding: 22px 18px;
    min-width: 150px;
    flex: 1 1 150px;
    display: flex;
    align-items: center;
    gap: 14px;
    transition: transform 0.2s, box-shadow 0.2s;
    will-change: transform;
    border: 2px solid #fff;
    position: relative;
}
.info-card:hover {
    box-shadow: 0 8px 32px rgba(21, 48, 93, 0.3);
    border: 2px solid #15305D;
}
.info-icon {
    font-size: 2rem;
    color: #15305D;
    margin-right: 2px;
}
.info-label {
    font-size: 0.98rem;
    color: #15305D;
    font-weight: 500;
}
.info-value {
    font-size: 1.15rem;
    color: #15305D;
    font-weight: 700;
}

.dashboard-main-actions {
    display: flex;
    gap: 28px;
    margin-top: 18px;
    flex-wrap: wrap;
    justify-content: flex-start;
}
.main-action-card {
    background: linear-gradient(120deg, #FFFFFF 60%, #FFD700 100%);
    border-radius: 22px;
    box-shadow: 0 2px 16px rgba(21, 48, 93, 0.2);
    padding: 32px 24px;
    min-width: 220px;
    flex: 1 1 220px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
    will-change: transform;
    border: 2px solid #fff;
    position: relative;
}
.main-action-card:hover {
    box-shadow: 0 8px 32px rgba(21, 48, 93, 0.3);
    border: 2px solid #15305D;
}
.main-action-card h3 {
    color: #15305D;
    margin-bottom: 10px;
    font-size: 1.15rem;
    font-weight: 700;
}
.main-action-card p {
    color: #15305D;
    font-size: 1rem;
    margin-bottom: 18px;
}
.main-action-btn {
    display: inline-block;
    background: #15305D;
    color: #FFFFFF;
    padding: 10px 28px;
    border-radius: 20px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.08rem;
    box-shadow: 0 2px 8px rgba(21, 48, 93, 0.2);
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    border: 2px solid transparent;
}
.main-action-btn:hover, .main-action-btn:focus {
    background: #FFD700;
    color: #15305D;
    border: 2px solid #15305D;
    box-shadow: 0 4px 18px rgba(21, 48, 93, 0.3);
}

.dashboard-next-class {
    margin-bottom: 32px;
    margin-top: 0;
    display: flex;
    justify-content: flex-start;
}
.next-class-card {
    background: linear-gradient(120deg, #FFD700 60%, #FFFFFF 100%);
    border-radius: 20px;
    box-shadow: 0 2px 16px rgba(21, 48, 93, 0.2);
    padding: 24px 22px 18px 22px;
    min-width: 260px;
    max-width: 350px;
    margin-right: 24px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border: 2px solid #fff;
    transition: box-shadow 0.2s, border 0.2s;
}
.next-class-card:hover {
    box-shadow: 0 6px 24px rgba(21, 48, 93, 0.3);
    border: 2px solid #15305D;
}
.next-class-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.next-class-icon {
    font-size: 1.5rem;
    color: #15305D;
}
.next-class-title {
    color: #15305D;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 1px;
}
.next-class-details {
    color: #15305D;
    font-size: 1.05rem;
    margin-bottom: 14px;
    line-height: 1.6;
}
.timetable-btn {
    background: #15305D;
    color: #FFFFFF;
    border: none;
    border-radius: 16px;
    padding: 8px 22px;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    box-shadow: 0 2px 8px rgba(21, 48, 93, 0.2);
    margin-top: 6px;
}
.timetable-btn:hover, .timetable-btn:focus {
    background: #FFD700;
    color: #15305D;
    box-shadow: 0 4px 16px rgba(21, 48, 93, 0.3);
}

.question-cards {
    display: flex;
    gap: 50px; /* Increased gap for more space between cards */
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-top: 24px;
}

.question-card {
    background: #FFD700;
    color: #15305D;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(21, 48, 93, 0.2);
    width: 230px;
    height: 160px;
    perspective: 1000px;
    cursor: pointer;
    position: relative;
    margin-bottom: 16px; /* Add vertical spacing between rows of cards */
}

.question-card:hover .question-front {
    transform: rotateY(180deg);
}

.question-card:hover .question-back {
    transform: rotateY(0);
}

.question-front, .question-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-shadow: 0 2px 8px rgba(21, 48, 93, 0.2);
    transition: transform 0.6s;
}

.question-front {
    background: #FFD700;
    color: #15305D;
    transform: rotateY(0);
}

.question-back {
    background: #15305D;
    color: #FFFFFF;
    transform: rotateY(180deg);
}

@media (max-width: 1100px) {
    .dashboard-flex {
        flex-direction: column;
        gap: 0;
        max-width: 98vw;
    }
    .dashboard-sidebar {
        max-width: 100%;
        min-width: 0;
        margin-bottom: 24px;
        border-radius: 18px;
        padding: 18px 8vw 12px 8vw;
    }
    .dashboard-container {
        max-width: 100%;
        padding: 18px 4vw;
        border-radius: 18px;
    }
    .teacher-info-cards, .dashboard-main-actions {
        flex-direction: column;
        gap: 18px;
    }
    .dashboard-next-class {
        justify-content: center;
    }
    .next-class-card {
        margin-right: 0;
        margin-bottom: 18px;
    }
}
@media (max-width: 600px) {
    .dashboard-sidebar {
        padding: 12px 4vw 8px 4vw;
    }
    .dashboard-container {
        padding: 10px 2vw;
    }
    .dashboard-action {
        font-size: 0.98rem;
        padding: 8px 10px;
    }
    .dashboard-3d-avatar {
        width: 60px;
        height: 60px;
    }
    .avatar-3d {
        width: 60px;
        height: 60px;
    }
    .avatar-3d img {
        width: 44px;
        height: 44px;
    }
    .next-class-card {
        padding: 14px 6vw 10px 6vw;
        border-radius: 12px;
        min-width: 0;
        max-width: 100vw;
    }
}
