/* ===========================================================
   CAT CBT EXAM
   =========================================================== */

body{
    background:#f5f7fb;
    font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;
}

/* Card */

.exam-card{
    background:#fff;
    border:none;
    border-radius:12px;
    box-shadow:0 5px 18px rgba(0,0,0,.08);
}

.exam-card-header{
    padding:15px 20px;
    border-bottom:1px solid #ececec;
    font-weight:600;
}

.exam-card-body{
    padding:20px;
}

/* Nomor Soal */

.question-grid{
    display:grid;
    grid-template-columns:repeat(5, 38px);
    justify-content:center;
    gap:6px;
}

.question-number{
    width:38px;
    height:38px;
    padding:0;
    margin:0;
    border:none;
    border-radius:8px;
    font-size:14px;
    font-weight:600;
    line-height:38px;
    text-align:center;
}

.question-number:hover{

    transform:translateY(-2px);

}

/* BELUM */

.question-number.unanswered{

    background:#ececec;

    color:#444;

}

/* SUDAH */

.question-number.answered{

    background:#7c3aed;

    color:#fff;

}

/* RAGU */

.question-number.review{

    background:#f59e0b;

    color:#fff;

}

/* AKTIF */

.question-number.current{

    background:#2563eb;

    color:#fff;

    box-shadow:0 0 0 3px rgba(37,99,235,.18);

}

/* Jawaban */

.answer-item{

    border:1px solid #ddd;

    border-radius:10px;

    margin-bottom:12px;

    padding:15px;

    cursor:pointer;

    transition:.25s;

}

.answer-item:hover{

    background:#f8f8ff;

}

.answer-item.active{

    border-color:#7c3aed;

    background:#ede9fe;

}

.answer-option{

    cursor:pointer;

    transition:.2s;

}

.answer-option:hover{

    background:#f8f9fa;

}

.answer-option.border-primary{

    border:2px solid #0d6efd!important;

}

.question-grid{

    display:grid;

    grid-template-columns:repeat(5,1fr);

    gap:8px;

}

.btn-number{

    height:45px;

    font-weight:700;

}

.question-card{

    min-height:650px;

}

.border-primary{

    background:#eef6ff;

}

/* Timer */

.timer-box{

    background:#dc2626;

    color:#fff;

    padding:10px 18px;

    border-radius:10px;

    font-weight:bold;

    font-size:18px;

}

/* Progress */

.progress{

    height:10px;

    border-radius:10px;

}

/* Tombol */

.btn-nav{

    min-width:120px;

}

:root{

--primary:#2563eb;
--success:#16a34a;
--warning:#f59e0b;
--danger:#dc2626;
--bg:#eef3f9;
--card:#ffffff;
--radius:16px;

}

body.exam-body{

margin:0;
background:var(--bg);
font-family:Inter,Poppins,sans-serif;

}

.exam-wrapper{

padding:20px;

}

.exam-main{

display:grid;

grid-template-columns:minmax(0,1fr) 330px;

gap:24px;

align-items:start;

}

.exam-left{

min-width:0;

}

.exam-right{

position:sticky;

top:20px;

}

.card{

border:none!important;

border-radius:16px!important;

box-shadow:0 8px 24px rgba(0,0,0,.08)!important;

}

.card-header{

border-radius:16px 16px 0 0!important;

}

@media(max-width:992px){

.exam-main{

grid-template-columns:1fr;

}

.exam-right{

position:relative;

top:auto;

}

}

/* ================= HEADER ================= */

.exam-header{

display:flex;

justify-content:space-between;

align-items:center;

padding:20px 25px;

background:#fff;

border-radius:18px;

box-shadow:0 10px 30px rgba(0,0,0,.08);

margin-bottom:20px;

}

.exam-header-left{

display:flex;

align-items:center;

gap:18px;

}

.exam-logo{

width:62px;

height:62px;

border-radius:16px;

background:#2563eb;

display:flex;

align-items:center;

justify-content:center;

font-size:28px;

color:#fff;

}

.exam-title{

margin:0;

font-size:24px;

font-weight:700;

color:#1e293b;

}

.exam-info{

display:flex;

gap:25px;

margin-top:6px;

font-size:14px;

color:#64748b;

flex-wrap:wrap;

}

.exam-header-right{

text-align:right;

}

.timer-label{

font-size:13px;

color:#64748b;

margin-bottom:6px;

}

.timer-box{

background:#dc2626;

color:#fff;

padding:12px 24px;

border-radius:14px;

font-size:30px;

font-weight:700;

letter-spacing:2px;

min-width:190px;

text-align:center;

}

@media(max-width:768px){

.exam-header{

flex-direction:column;

align-items:flex-start;

gap:20px;

}

.exam-header-right{

width:100%;

text-align:left;

}

.timer-box{

width:100%;

}

}

/* ================= SIDEBAR ================= */

.exam-sidebar{

position:sticky;
top:20px;

}

.sidebar-card{

background:#fff;

border-radius:16px;

padding:18px;

box-shadow:0 8px 24px rgba(0,0,0,.08);

}

.sidebar-title{

font-size:17px;

font-weight:700;

margin-bottom:16px;

display:flex;

align-items:center;

gap:10px;

color:#1e293b;

}

.question-grid{

display:grid;

grid-template-columns:repeat(5,1fr);

gap:10px;

}

.question-number{

height:48px;

border:none;

border-radius:12px;

font-weight:700;

transition:.2s;

}

.question-number:hover{

transform:translateY(-2px);

}

.question-number.unanswered{

background:#e5e7eb;

color:#334155;

}

.question-number.current{

background:#2563eb;

color:#fff;

}

.question-number.answered{

background:#22c55e;

color:#fff;

}

.question-number.review{

background:#f59e0b;

color:#fff;

}

.stat-item{

display:flex;

justify-content:space-between;

padding:10px 0;

border-bottom:1px solid #edf2f7;

}

.legend-row{

display:flex;

align-items:center;

gap:10px;

margin:10px 0;

}

.legend{

width:16px;

height:16px;

border-radius:5px;

display:inline-block;

}

.legend.active{

background:#2563eb;

}

.legend.answered{

background:#22c55e;

}

.legend.review{

background:#f59e0b;

}

.legend.unanswered{

background:#d1d5db;

}

/* ================= QUESTION ================= */

.question-card{

background:#fff;

border-radius:18px;

padding:30px;

box-shadow:0 8px 24px rgba(0,0,0,.08);

}

.question-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:25px;

padding-bottom:15px;

border-bottom:1px solid #edf2f7;

}

.question-body{

font-size:18px;

line-height:1.8;

color:#1e293b;

}

.question-body img{

max-width:100%;

height:auto;

border-radius:10px;

margin:15px 0;

}

.option-item{

display:flex;

align-items:flex-start;

gap:15px;

padding:18px;

margin-top:15px;

border:2px solid #e5e7eb;

border-radius:14px;

cursor:pointer;

transition:.25s;

background:#fff;

}

.option-item:hover{

border-color:#2563eb;

background:#f8fbff;

transform:translateY(-2px);

}

.option-item.selected{

border-color:#2563eb;

background:#eff6ff;

}

.option-label{

width:42px;

height:42px;

border-radius:50%;

background:#2563eb;

color:#fff;

display:flex;

justify-content:center;

align-items:center;

font-weight:700;

flex-shrink:0;

}

.option-content{

flex:1;

font-size:16px;

line-height:1.7;

}

.navigation-card{

margin-top:20px;

display:flex;

justify-content:space-between;

align-items:center;

background:#fff;

padding:20px;

border-radius:18px;

box-shadow:0 8px 24px rgba(0,0,0,.08);

}

.question-loading{

text-align:center;

padding:80px;

font-size:20px;

color:#64748b;

}

@media(max-width:768px){

.navigation-card{

flex-direction:column;

gap:12px;

}

.navigation-card button{

width:100%;

}



}

.question-number.answered.current{
    background:#6f42c1 !important;
    color:#fff;
    box-shadow:0 0 0 3px #0d6efd inset;
}

.question-grid{

display:grid;

grid-template-columns:repeat(5,1fr);

gap:8px;

}

.question-grid .btn{

padding:10px;

font-weight:600;

}

.btn-number.active{

background:#0d6efd;

color:#fff;

border-color:#0d6efd;

transform:scale(1.05);

}

.answer-option{

cursor:pointer;

transition:.2s;

}

.answer-option:hover{

background:#eef5ff;

border-color:#0d6efd;

}

/* ==========================================
   CBT SECURITY
========================================== */

body{

    user-select:none;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;

    -webkit-touch-callout:none;

}

img{

    -webkit-user-drag:none;
    user-drag:none;

}

::selection{

    background:transparent;

}

/* ==============================
   SECURITY
============================== */

html,
body{
    -webkit-user-select:none;
    -moz-user-select:none;
    user-select:none;
}

img{
    -webkit-user-drag:none;
    user-drag:none;
    pointer-events:auto;
}

::selection{
    background:transparent;
}

::-moz-selection{
    background:transparent;
}

/* ==========================================
   STATUS NOMOR SOAL
========================================== */

.btn-number{

    transition:.2s;

}

.btn-number.not-answer{

    background:#f1f5f9;
    color:#334155;

}

.btn-number.answered{

    background:#22c55e;
    color:#fff;

}

.btn-number.active{

    border:3px solid #0d6efd;
    transform:scale(1.08);

}

.btn-number.answered.active{

    background:#22c55e;
    color:#fff;

}

.btn-number.answered{

    background:#22c55e !important;

    color:#fff !important;

    border-color:#22c55e !important;

}

.btn-number.active{

    background:#0d6efd !important;

    color:#fff !important;

}

.answer-option.border-primary{

    border:2px solid #0d6efd !important;

    background:#eef6ff;

}