/*==========================
Hero
==========================*/

.practice-hero{

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:40px;

    padding:35px;

    background:linear-gradient(135deg,#0f4cdb,#2563eb);

    border-radius:18px;

    color:#fff;

    margin-bottom:30px;

    box-shadow:0 12px 35px rgba(37,99,235,.18);

}

.hero-left{

    flex:1;

}

.hero-badge{

    display:inline-block;

    padding:6px 14px;

    background:#ffffff20;

    border:1px solid rgba(255,255,255,.3);

    border-radius:50px;

    font-size:13px;

    font-weight:600;

    margin-bottom:18px;

}

.hero-left h1{

    font-size:34px;

    font-weight:700;

    margin-bottom:10px;

}

.hero-left h2{

    font-size:22px;

    font-weight:500;

    line-height:1.5;

    margin-bottom:18px;

}

.hero-date{

    font-size:14px;

    opacity:.9;

}

.hero-right{

    width:240px;

    background:#fff;

    color:#222;

    border-radius:16px;

    padding:25px;

    text-align:center;

}

.hero-stat{

    margin-bottom:20px;

}

.hero-stat .number{

    display:block;

    font-size:42px;

    font-weight:700;

    color:#2563eb;

}

.hero-stat .label{

    font-size:14px;

    color:#777;

}

.hero-info{

    display:flex;

    justify-content:space-between;

    border-top:1px solid #eee;

    padding-top:18px;

}

.hero-info strong{

    display:block;

    font-size:15px;

    color:#222;

}

.hero-info small{

    color:#777;

    font-size:12px;

}

/* Mobile */

@media(max-width:768px){

.practice-hero{

    flex-direction:column;

    text-align:center;

    padding:25px;

}

.hero-right{

    width:100%;

}

.hero-left h1{

    font-size:28px;

}

.hero-left h2{

    font-size:18px;

}

}




















/*==========================
Instructions
==========================*/

.instruction-card{

    background:#fff;

    border:1px solid #e5e7eb;

    border-radius:18px;

    padding:30px;

    margin-bottom:35px;

    box-shadow:0 6px 18px rgba(0,0,0,.05);

}

.section-title{

    display:flex;

    align-items:center;

    gap:16px;

    margin-bottom:28px;

}

.title-icon{

    width:52px;

    height:52px;

    border-radius:14px;

    background:#eff6ff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:24px;

}

.section-title h3{

    font-size:22px;

    font-weight:700;

    color:#111827;

    margin:0;

}

.section-title p{

    margin:4px 0 0;

    color:#6b7280;

    font-size:14px;

}

.instruction-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:18px;

}

.instruction-item{

    display:flex;

    gap:15px;

    align-items:flex-start;

    padding:18px;

    border:1px solid #eef2f7;

    border-radius:14px;

    transition:.3s;

}

.instruction-item:hover{

    border-color:#2563eb;

    transform:translateY(-2px);

    box-shadow:0 8px 18px rgba(37,99,235,.08);

}

.instruction-icon{

    width:36px;

    height:36px;

    min-width:36px;

    border-radius:50%;

    background:#2563eb;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:16px;

    font-weight:700;

}

.instruction-item h5{

    margin:0 0 6px;

    font-size:16px;

    font-weight:600;

    color:#111827;

}

.instruction-item p{

    margin:0;

    color:#6b7280;

    font-size:14px;

    line-height:1.6;

}

/* Mobile */

@media(max-width:768px){

.instruction-grid{

    grid-template-columns:1fr;

}

.section-title{

    align-items:flex-start;

}

}















/*==========================
Question Card
==========================*/

.question-card{

    background:#fff;

    border:1px solid #e5e7eb;

    border-radius:18px;

    padding:28px;

    margin-bottom:30px;

    box-shadow:0 6px 20px rgba(0,0,0,.05);

}

.question-header{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:20px;

    margin-bottom:25px;

    padding-bottom:20px;

    border-bottom:1px solid #eef2f7;

}

.question-number{

    display:inline-block;

    padding:6px 14px;

    background:#eff6ff;

    color:#2563eb;

    border-radius:30px;

    font-size:13px;

    font-weight:600;

    margin-bottom:12px;

}

.question-header h2{

    margin:0;

    font-size:22px;

    font-weight:700;

    color:#111827;

}

.question-badges{

    display:flex;

    gap:10px;

    flex-wrap:wrap;

}

.question-badges span{

    background:#f8fafc;

    border:1px solid #dbe3ec;

    padding:7px 14px;

    border-radius:30px;

    font-size:13px;

    font-weight:600;

    color:#374151;

}

.question-label{

    font-size:13px;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:1px;

    color:#2563eb;

    margin-bottom:10px;

}

.question-text{

    font-size:17px;

    line-height:1.8;

    color:#1f2937;

}

.question-stats{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:18px;

    margin-top:28px;

}

.stat-box{

    border:1px solid #eef2f7;

    border-radius:14px;

    padding:20px;

    text-align:center;

    background:#fafcff;

}

.stat-box small{

    display:block;

    color:#6b7280;

    font-size:13px;

    margin-bottom:10px;

}

.stat-box strong{

    display:block;

    font-size:28px;

    color:#2563eb;

    margin-bottom:5px;

}

.stat-box span{

    font-size:13px;

    color:#6b7280;

}

.writing-tips{

    margin-top:28px;

    background:#f8fafc;

    border-left:4px solid #2563eb;

    padding:20px;

    border-radius:10px;

}

.writing-tips h4{

    font-size:17px;

    margin-bottom:15px;

    color:#111827;

}

.writing-tips ul{

    margin:0;

    padding-left:18px;

}

.writing-tips li{

    margin-bottom:8px;

    color:#4b5563;

    font-size:14px;

    line-height:1.7;

}

/* Mobile */

@media(max-width:768px){

.question-header{

    flex-direction:column;

}

.question-header h2{

    font-size:19px;

}

.question-stats{

    grid-template-columns:1fr;

}

.question-text{

    font-size:16px;

}

}


/*==========================
Navigation
==========================*/

.practice-navigation{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    background:#fff;

    border:1px solid #e5e7eb;

    border-radius:16px;

    padding:22px;

    margin-bottom:35px;

    box-shadow:0 5px 18px rgba(0,0,0,.05);

}

.nav-item{

    flex:1;

}

.nav-btn{

    display:flex;

    align-items:center;

    gap:14px;

    text-decoration:none;

    border:1px solid #dbe3ec;

    padding:14px 18px;

    border-radius:12px;

    color:#111827;

    transition:.3s;

}

.nav-btn:hover{

    background:#eff6ff;

    border-color:#2563eb;

    color:#2563eb;

}

.nav-btn small{

    display:block;

    color:#6b7280;

    font-size:12px;

}

.nav-btn strong{

    font-size:15px;

}

.nav-arrow{

    font-size:22px;

}

.disabled{

    opacity:.55;

    pointer-events:none;

}

.nav-center{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:10px;

}

.day-badge{

    background:#2563eb;

    color:#fff;

    padding:8px 22px;

    border-radius:30px;

    font-size:14px;

    font-weight:600;

}

.part-badge{

    background:#f8fafc;

    color:#374151;

    border:1px solid #dbe3ec;

    padding:7px 20px;

    border-radius:30px;

    font-size:13px;

    font-weight:600;

}

.archive-btn{

    display:flex;

    justify-content:center;

    align-items:center;

    text-decoration:none;

    background:#111827;

    color:#fff;

    padding:14px;

    border-radius:12px;

    font-size:14px;

    font-weight:600;

    transition:.3s;

}

.archive-btn:hover{

    background:#2563eb;

    color:#fff;

}

@media(max-width:768px){

.practice-navigation{

    flex-direction:column;

}

.nav-item{

    width:100%;

}

.archive-btn{

    width:100%;

}

}




/*==========================
Submission Form
==========================*/

.submission-card{

    background:#fff;

    border:1px solid #e5e7eb;

    border-radius:18px;

    padding:30px;

    margin-bottom:35px;

    box-shadow:0 8px 24px rgba(0,0,0,.05);

}

.submission-header{

    margin-bottom:28px;

}

.submission-header h2{

    font-size:24px;

    margin-bottom:8px;

    color:#111827;

}

.submission-header p{

    color:#6b7280;

    font-size:14px;

    margin:0;

}

.form-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:20px;

}

.form-group{

    margin-bottom:22px;

}

.form-group label{

    display:block;

    margin-bottom:8px;

    font-size:14px;

    font-weight:600;

    color:#374151;

}

.form-group label span{

    color:#ef4444;

}

.form-group input,

.form-group textarea{

    width:100%;

    border:1px solid #d1d5db;

    border-radius:12px;

    padding:12px 14px;

    font-size:14px;

    transition:.3s;

    outline:none;

}

.form-group input:focus,

.form-group textarea:focus{

    border-color:#2563eb;

    box-shadow:0 0 0 3px rgba(37,99,235,.12);

}

.upload-box{

    border:2px dashed #cbd5e1;

    border-radius:14px;

    padding:25px;

    text-align:center;

    background:#f8fafc;

    margin-bottom:20px;

}

.upload-title{

    display:block;

    font-size:15px;

    font-weight:600;

    margin-bottom:15px;

    color:#111827;

}

.upload-box input{

    width:100%;

    margin-bottom:10px;

}

.upload-box small{

    color:#6b7280;

    font-size:13px;

}

.checkbox-row{

    display:flex;

    align-items:center;

    gap:10px;

    margin-bottom:25px;

    font-size:14px;

    color:#4b5563;

}

.submit-btn{

    background:#2563eb;

    color:#fff;

    border:none;

    border-radius:12px;

    padding:14px 28px;

    font-size:15px;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

.submit-btn:hover{

    background:#1d4ed8;

}

.success-box{

    background:#dcfce7;

    border:1px solid #86efac;

    color:#166534;

    padding:14px 18px;

    border-radius:10px;

    margin-bottom:20px;

}

@media(max-width:768px){

.form-grid{

    grid-template-columns:1fr;

}

.submit-btn{

    width:100%;

}

}


/*==========================
Discussion
==========================*/

.discussion-card{

    background:#fff;

    border:1px solid #e5e7eb;

    border-radius:18px;

    padding:30px;

    margin-bottom:35px;

    box-shadow:0 8px 24px rgba(0,0,0,.05);

}

.discussion-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:30px;

}

.discussion-header h2{

    font-size:22px;

    margin-bottom:5px;

}

.discussion-header p{

    color:#6b7280;

    font-size:14px;

    margin:0;

}

.comment-count{

    background:#2563eb;

    color:#fff;

    padding:8px 16px;

    border-radius:30px;

    font-size:13px;

    font-weight:600;

}

.discussion-item{

    display:flex;

    gap:18px;

    padding:25px 0;

    border-top:1px solid #edf2f7;

}

.discussion-item:first-child{

    border-top:none;

}

.user-avatar{

    width:48px;

    height:48px;

    border-radius:50%;

    background:#2563eb;

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:18px;

    font-weight:700;

    flex-shrink:0;

}

.discussion-content{

    flex:1;

}

.discussion-top{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:10px;

}

.discussion-top h5{

    margin:0;

    font-size:16px;

    font-weight:600;

}

.discussion-top small{

    color:#6b7280;

    font-size:13px;

}

.status-row{

    margin-bottom:15px;

}

.status{

    display:inline-block;

    padding:5px 12px;

    border-radius:30px;

    font-size:12px;

    font-weight:600;

}

.pending{

    background:#fef3c7;

    color:#92400e;

}

.evaluated{

    background:#dcfce7;

    color:#166534;

}

.student-comment{

    background:#f8fafc;

    border-radius:10px;

    padding:14px;

    font-size:14px;

    color:#374151;

    margin-bottom:15px;

    line-height:1.7;

}

.file-box{

    margin-bottom:18px;

}

.file-box a{

    text-decoration:none;

    background:#eff6ff;

    color:#2563eb;

    padding:8px 14px;

    border-radius:8px;

    font-size:14px;

    font-weight:600;

}

.evaluation-box{

    border-left:4px solid #2563eb;

    background:#f9fafb;

    padding:18px;

    border-radius:10px;

}

.evaluation-box h6{

    margin-bottom:12px;

    font-size:15px;

}

.feedback{

    color:#374151;

    font-size:14px;

    line-height:1.8;

}

.waiting{

    background:#fef3c7;

    color:#92400e;

    padding:10px;

    border-radius:8px;

    font-size:14px;

}

.empty-discussion{

    text-align:center;

    padding:60px 20px;

}

.empty-icon{

    font-size:50px;

    margin-bottom:15px;

}

.empty-discussion h3{

    font-size:22px;

    margin-bottom:10px;

}

.empty-discussion p{

    color:#6b7280;

}

@media(max-width:768px){

.discussion-item{

    flex-direction:column;

}

.discussion-top{

    flex-direction:column;

    align-items:flex-start;

    gap:6px;

}

.discussion-header{

    flex-direction:column;

    align-items:flex-start;

    gap:15px;

}

}



/* ===================================
   Compact Professional Layout
=================================== */

/* Main page width */
.container{
    max-width:1100px;
}

/* Section spacing */
.practice-hero,
.instruction-card,
.question-card,
.practice-navigation,
.submission-card,
.discussion-card{
    margin-bottom:18px;
    padding:20px;
}

/* Hero */
.practice-hero{
    gap:24px;
}

.hero-left h1{
    font-size:28px;
    margin-bottom:6px;
}

.hero-left h2{
    font-size:18px;
    margin-bottom:10px;
}

.hero-badge{
    margin-bottom:10px;
    padding:5px 12px;
}

.hero-right{
    padding:18px;
}

.hero-stat{
    margin-bottom:12px;
}

.hero-stat .number{
    font-size:32px;
}

/* Section titles */
.section-title{
    margin-bottom:18px;
}

.section-title h3,
.submission-header h2,
.discussion-header h2{
    font-size:20px;
}

.section-title p,
.submission-header p,
.discussion-header p{
    font-size:13px;
}

/* Instruction */
.instruction-grid{
    gap:12px;
}

.instruction-item{
    padding:14px;
}

/* Question */
.question-header{
    margin-bottom:18px;
    padding-bottom:15px;
}

.question-header h2{
    font-size:19px;
}

.question-number{
    margin-bottom:8px;
}

.question-text{
    font-size:16px;
    line-height:1.6;
}

.question-stats{
    gap:12px;
    margin-top:18px;
}

.stat-box{
    padding:14px;
}

.stat-box strong{
    font-size:24px;
}

.writing-tips{
    margin-top:18px;
    padding:16px;
}

.writing-tips h4{
    margin-bottom:10px;
}

.writing-tips li{
    margin-bottom:4px;
}

/* Navigation */
.practice-navigation{
    padding:16px 20px;
}

.nav-btn{
    padding:10px 14px;
}

/* Submission */
.submission-header{
    margin-bottom:18px;
}

.form-group{
    margin-bottom:15px;
}

.form-grid{
    gap:14px;
}

.upload-box{
    padding:18px;
    margin-bottom:15px;
}

.checkbox-row{
    margin-bottom:18px;
}

.submit-btn{
    padding:12px 24px;
}

/* Discussion */
.discussion-header{
    margin-bottom:18px;
}

.discussion-item{
    padding:18px 0;
}

.student-comment{
    padding:10px 12px;
    margin-bottom:10px;
}

.evaluation-box{
    padding:14px;
}

.file-box{
    margin-bottom:10px;
}

/* Reduce all paragraphs */
p{
    margin-bottom:.6rem;
}

/* Lists */
ul{
    margin-bottom:0;
}