 :root{--rrb-blue:#3c8dbc;--rrb-dark:#333;--cbt-green:#26a65b;--cbt-red:#d9534f;--cbt-purple:#8e44ad;--cbt-white:#fff;--bg-glass:rgba(255,255,255,.096)}*{margin:0;padding:0;box-sizing:border-box;font-family:'Arial',sans-serif;user-select:none}body{height:100vh;overflow:hidden;background:#0f172a;color:#333}#canvas-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1}#start-screen{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:100}.login-box{background:rgba(255,255,255,.9);backdrop-filter:blur(10px);padding:40px;width:90%;max-width:500px;border-radius:10px;box-shadow:0 0 30px rgba(0,0,0,.5);text-align:center}.login-box h2{color:var(--rrb-blue);margin-bottom:20px}.instructions{text-align:left;font-size:.9rem;margin-bottom:20px;line-height:1.6}.login-input{width:100%;padding:12px;margin:15px 0;border:2px solid #ddd;border-radius:5px;font-size:1rem}.btn-start{background:var(--cbt-green);color:#fff;border:none;padding:12px 30px;font-size:1.1rem;border-radius:5px;cursor:pointer;font-weight:700;width:100%}#exam-interface{display:none;flex-direction:column;height:100%;background:rgba(255,255,255,.98);position:relative;z-index:10}.cbt-header{height:60px;background:#fff;border-bottom:1px solid #ccc;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.timer-box{background:#333;color:#fff;padding:5px 15px;border-radius:4px;font-weight:700;font-family:monospace;font-size:1.2rem}.exam-body{display:flex;flex:1;overflow:hidden}.question-area{flex:1;display:flex;flex-direction:column;border-right:1px solid #ddd}.q-top-bar{background:var(--rrb-blue);color:#fff;padding:10px 20px;font-weight:700;display:flex;justify-content:space-between}.q-scroll-area{flex:1;padding:30px;overflow-y:auto;font-size:1.1rem}.q-text{margin-bottom:20px;line-height:1.5;font-weight:600}.option-label{display:flex;align-items:center;padding:10px;margin-bottom:10px;border:1px solid #ccc;border-radius:5px;cursor:pointer;transition:.2s}.option-label:hover{background:#f0f8ff;border-color:var(--rrb-blue)}.option-label input{margin-right:15px;width:18px;height:18px;accent-color:var(--rrb-blue)}.cbt-footer{height:60px;border-top:1px solid #ddd;background:#f9f9f9;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.btn{padding:8px 20px;border:none;border-radius:4px;font-weight:700;cursor:pointer}.btn-save{background:var(--cbt-green);color:#fff}.btn-review{background:var(--cbt-purple);color:#fff}.btn-clear{background:#e0e0e0;color:#333;border:1px solid #ccc}.palette-area{width:320px;display:flex;flex-direction:column;background:#f4f6f9}.palette-info{padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#fff;border-bottom:1px solid #ddd;font-size:.8rem}.legend-item{display:flex;align-items:center;gap:5px}.dot{width:20px;height:20px;color:#fff;display:flex;align-items:center;justify-content:center;border-radius:3px;font-size:10px}.palette-grid{padding:10px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;overflow-y:auto;flex:1}.p-btn{height:35px;border:1px solid #ccc;background:#fff;cursor:pointer;font-weight:700;position:relative}.p-btn.active{border:2px solid blue}.p-btn.ans{background:var(--cbt-green);color:#fff;border-color:var(--cbt-green)}.p-btn.not-ans{background:var(--cbt-red);color:#fff;border-color:var(--cbt-red)}.p-btn.mark{background:var(--cbt-purple);color:#fff;border-color:var(--cbt-purple)}.submit-container{padding:10px;background:#fff;border-top:1px solid #ddd;text-align:center}.btn-submit{background:var(--cbt-green);color:#fff;width:100%;padding:10px;font-size:1rem}#result-screen{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(244,246,249,.98);z-index:200;overflow-y:auto}.result-container{max-width:900px;margin:40px auto;background:#fff;padding:30px;border-radius:10px;box-shadow:0 0 20px rgba(0,0,0,.1)}.score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:30px 0;text-align:center}.score-box h3{font-size:2.5rem;margin-bottom:5px}.analysis-card{border:1px solid #ddd;padding:15px;margin-bottom:15px;border-radius:5px;border-left:5px solid #ccc}.analysis-card.correct{border-left-color:var(--cbt-green)}.analysis-card.wrong{border-left-color:var(--cbt-red)}.expl-text{background:#f0f0f0;padding:10px;margin-top:10px;font-size:.9rem;color:#444}.palette-info{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;background:#fff;border-bottom:1px solid #ddd}.legend-item{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:#444}.status-box{width:30px;height:25px;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff;font-weight:700;font-size:.8rem}.status-box.ans{background-color:#26a65b}.status-box.not-ans{background-color:#d9534f}.status-box.rev{background-color:#8e44ad}.status-box.skip{background-color:#fff;color:#333;border:1px solid #ccc}#palette-toggle{display:none;background:#3c8dbc;color:#fff;border:none;padding:6px 12px;border-radius:4px;font-size:1.2rem;cursor:pointer}@media (max-width:768px){.cbt-header{padding:0 10px;height:55px;justify-content:space-between}.logo-text{font-size:.9rem!important;max-width:120px;overflow:hidden;white-space:nowrap}.timer-box{position:absolute;left:50%;transform:translateX(-50%);font-size:1rem!important;padding:2px 8px}.desktop-user-info,.fa-user-circle{display:none!important}#palette-toggle{display:block}.palette-area{position:fixed;top:55px;right:-100%;width:80%;height:calc(100% - 55px);z-index:1000;transition:right .3s ease;box-shadow:-5px 0 15px rgba(0,0,0,.2)}.palette-area.active{right:0}.question-area{width:100%;border-right:none}.q-scroll-area{padding:15px}.q-text{font-size:1rem;margin-bottom:15px;line-height:1.6}.cbt-footer{padding:8px}.btn{flex:1;padding:10px 0;font-size:.9rem}.btn-save{flex:1.5}}:root {
    --rrb-blue: #3c8dbc;       /* Official RRB Blue */
    --rrb-dark: #333;
    --cbt-green: #26a65b;      /* Answered */
    --cbt-red: #d9534f;        /* Not Answered */
    --cbt-purple: #8e44ad;     /* Mark for Review */
    --cbt-white: #ffffff;      /* Not Visited */
    --bg-color: #f4f6f9;       /* Clean Light Gray Background */
    --border-color: #ddd;
    --text-main: #333;
}

* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
    font-family: 'Arial', sans-serif; 
    user-select: none; /* Prevent copy-paste */
}

body { 
    height: 100vh; 
    overflow: hidden; 
    background-color: var(--bg-color);
    color: var(--text-main);
    display: flex;
    flex-direction: column;
}

/* --- 1. START SCREEN (Login Page) --- */
#start-screen {
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    background: rgba(0, 0, 0, 0.5); /* Semi-transparent overlay */
    display: flex; 
    justify-content: center; 
    align-items: center;
    z-index: 2000;
}

.login-box {
    background: #fff;
    padding: 40px;
    width: 90%; 
    max-width: 500px;
    border-radius: 8px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.2);
    text-align: center;
}

.login-box h2 { 
    color: var(--rrb-blue); 
    margin-bottom: 20px; 
    border-bottom: 2px solid var(--rrb-blue);
    padding-bottom: 10px;
}

.instructions { 
    text-align: left; 
    font-size: 0.95rem; 
    margin-bottom: 20px; 
    line-height: 1.6; 
    background: #f9f9f9;
    padding: 15px;
    border-radius: 5px;
    border: 1px solid #eee;
}

.login-input {
    width: 100%; 
    padding: 12px; 
    margin: 15px 0;
    border: 1px solid #ccc; 
    border-radius: 5px; 
    font-size: 1rem;
}

.btn-start {
    background: var(--cbt-green); 
    color: white; 
    border: none; 
    padding: 12px 30px;
    font-size: 1.1rem; 
    border-radius: 5px; 
    cursor: pointer; 
    font-weight: bold; 
    width: 100%;
    transition: background 0.2s;
}

.btn-start:hover { background: #219150; }

/* --- 2. EXAM INTERFACE --- */
#exam-interface {
    display: flex; 
    flex-direction: column; 
    height: 100%;
    width: 100%;
    background: #fff;
}

/* Header */
.cbt-header {
    height: 60px; 
    background: #fff; 
    border-bottom: 2px solid var(--rrb-blue);
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    padding: 0 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.logo-text {
    font-size: 1.3rem;
    font-weight: bold;
    color: var(--rrb-blue);
}

.timer-box { 
    background: #333; 
    color: #fff; 
    padding: 5px 15px; 
    border-radius: 4px; 
    font-weight: bold; 
    font-family: monospace; 
    font-size: 1.2rem;
    border: 2px solid #666;
}

/* Main Body Layout */
.exam-body { 
    display: flex; 
    flex: 1; 
    overflow: hidden; 
}

/* Left: Question Area */
.question-area { 
    flex: 1; 
    display: flex; 
    flex-direction: column; 
    border-right: 1px solid var(--border-color);
}

.q-top-bar { 
    background: var(--rrb-blue); 
    color: white; 
    padding: 10px 20px; 
    font-weight: bold; 
    display: flex; 
    justify-content: space-between;
    align-items: center;
}

.q-scroll-area { 
    flex: 1; 
    padding: 30px; 
    overflow-y: auto; 
    font-size: 1.1rem;
    background: #fff;
}

.q-text { 
    margin-bottom: 25px; 
    line-height: 1.6; 
    font-weight: 600; 
    color: #222;
    border-bottom: 1px solid #eee;
    padding-bottom: 15px;
}

.option-label {
    display: flex; 
    align-items: center; 
    padding: 12px 15px; 
    margin-bottom: 10px;
    border: 1px solid #ccc; 
    border-radius: 5px; 
    cursor: pointer; 
    transition: 0.2s;
    background: #fdfdfd;
}

.option-label:hover { 
    background: #eef7ff; 
    border-color: var(--rrb-blue); 
}

.option-label input { 
    margin-right: 15px; 
    width: 18px; 
    height: 18px; 
    accent-color: var(--rrb-blue); 
}

/* Footer */
.cbt-footer {
    height: 60px; 
    border-top: 1px solid var(--border-color); 
    background: #f9f9f9;
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    padding: 0 20px;
}

.btn { 
    padding: 8px 20px; 
    border: 1px solid #ccc; 
    border-radius: 4px; 
    font-weight: bold; 
    cursor: pointer; 
    font-size: 0.95rem;
    transition: all 0.2s;
}

.btn-save { background: var(--cbt-green); color: white; border: none; }
.btn-save:hover { background: #219150; }

.btn-review { background: var(--cbt-purple); color: white; border: none; }
.btn-review:hover { background: #732d91; }

.btn-clear { background: #fff; color: #333; }
.btn-clear:hover { background: #eee; }


/* Right: Palette Area */
.palette-area { 
    width: 320px; 
    display: flex; 
    flex-direction: column; 
    background: #f4f6f9;
    border-left: 1px solid var(--border-color);
    transition: right 0.3s ease;
}

/* Palette Status Legend */
.palette-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 10px;
    background: #fff;
    border-bottom: 1px solid var(--border-color);
}

.legend-item { 
    display: flex; 
    align-items: center; 
    gap: 8px; 
    font-size: 0.85rem; 
    font-weight: 600; 
    color: #444; 
}

.status-box {
    width: 30px; 
    height: 25px;
    display: flex; 
    align-items: center; 
    justify-content: center;
    border-radius: 4px; 
    color: white; 
    font-weight: bold; 
    font-size: 0.8rem;
}
.status-box.ans { background-color: var(--cbt-green); } 
.status-box.not-ans { background-color: var(--cbt-red); } 
.status-box.rev { background-color: var(--cbt-purple); } 
.status-box.skip { background-color: #fff; color: #333; border: 1px solid #ccc; }

/* Palette Buttons Grid */
.palette-grid { 
    padding: 15px; 
    display: grid; 
    grid-template-columns: repeat(5, 1fr); 
    gap: 10px; 
    overflow-y: auto; 
    flex: 1;
    align-content: start;
}

.p-btn {
    height: 40px; 
    width: 100%;
    border: 1px solid #ccc; 
    background: white; 
    cursor: pointer; 
    font-weight: bold; 
    border-radius: 4px;
}

.p-btn.ans { background: var(--cbt-green); color: white; border: none; }
.p-btn.not-ans { background: var(--cbt-red); color: white; border: none; }
.p-btn.mark { background: var(--cbt-purple); color: white; border: none; }
.p-btn.active { border: 2px solid blue; box-shadow: 0 0 5px rgba(0,0,255,0.5); transform: scale(1.05); }

.submit-container { 
    padding: 15px; 
    background: #fff; 
    border-top: 1px solid var(--border-color); 
    text-align: center; 
}
.btn-submit { 
    background: var(--cbt-green); 
    color: white; 
    width: 100%; 
    padding: 12px; 
    font-size: 1rem; 
    border: none; 
    border-radius: 4px; 
    cursor: pointer;
    font-weight: bold;
}

/* --- 3. RESULT SCREEN --- */
#result-screen {
    display: none; 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    background: #f4f6f9; 
    z-index: 2500; 
    overflow-y: auto;
    padding: 20px;
}

.result-container {
    max-width: 900px; 
    margin: 0 auto; 
    background: white; 
    padding: 30px;
    border-radius: 8px; 
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

.result-header-box {
    text-align: center; 
    border-bottom: 2px solid #eee; 
    padding-bottom: 20px; 
    margin-bottom: 30px;
}

.result-header-box h1 { color: var(--rrb-blue); margin-bottom: 10px; font-size: 2rem; }

.score-grid { 
    display: grid; 
    grid-template-columns: repeat(4, 1fr); 
    gap: 20px; 
    margin-bottom: 30px; 
    text-align: center; 
}

.score-box {
    padding: 20px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #eee;
}

.score-box h3 { font-size: 2rem; margin-bottom: 5px; }
.score-box p { color: #666; font-size: 0.9rem; font-weight: bold; text-transform: uppercase; }

/* Analysis Cards */
.analysis-card {
    border: 1px solid #eee; 
    padding: 20px; 
    margin-bottom: 20px; 
    border-radius: 5px; 
    border-left: 5px solid #ccc;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}
.analysis-card.correct { border-left-color: var(--cbt-green); }
.analysis-card.wrong { border-left-color: var(--cbt-red); }

/* Mobile Toggle Button */
#palette-toggle { 
    display: none; 
    background: var(--rrb-blue); 
    color: white; 
    border: none; 
    padding: 6px 12px; 
    border-radius: 4px; 
    font-size: 1.2rem; 
    cursor: pointer; 
}

/* --- MOBILE RESPONSIVENESS (Max Width 768px) --- */
@media (max-width: 768px) {
    /* Header */
    .cbt-header { 
        padding: 0 10px; 
        height: 55px; 
        position: relative;
    }
    .logo-text { 
        font-size: 0.9rem; 
        max-width: 110px; 
        overflow: hidden; 
        white-space: nowrap; 
        text-overflow: ellipsis;
    }
    .timer-box { 
        position: absolute; 
        left: 50%; 
        transform: translateX(-50%); 
        font-size: 1rem; 
        padding: 2px 8px; 
    }
    
    /* Hide unnecessary desktop elements */
    .desktop-user-info, .fa-user-circle { display: none !important; }
    
    /* Show Menu Button */
    #palette-toggle { display: block; }

    /* Sliding Palette Logic */
    .palette-area {
        position: fixed; 
        top: 55px; 
        right: -100%; /* Hidden by default */
        width: 85%; 
        height: calc(100% - 55px);
        z-index: 1500; 
        box-shadow: -5px 0 15px rgba(0,0,0,0.2);
    }
    .palette-area.active { right: 0; } /* Show when active */

    /* Question Area */
    .question-area { 
        width: 100%; 
        border-right: none; 
    }
    
    /* Adjust Scroll Area to fit Footer */
    .q-scroll-area { 
        padding: 15px; 
        padding-bottom: 10px;
    }
    .q-text { font-size: 1rem; }
    .option-label { padding: 10px; font-size: 0.95rem; }

    /* Mobile Footer - Stack Buttons or Flex Row */
    .cbt-footer { 
        padding: 8px; 
        height: auto; 
        min-height: 60px;
        flex-wrap: wrap; 
        gap: 5px;
    }
    
    .btn { 
        flex: 1; /* Buttons take equal width */
        padding: 10px 5px; 
        font-size: 0.85rem; 
        margin: 0;
        white-space: nowrap;
    }
    
    /* Make Save & Next slightly more prominent */
    .btn-save { 
        flex: 1.5; 
        font-size: 0.9rem;
    }

    /* Result Screen Mobile */
    .score-grid { 
        grid-template-columns: 1fr 1fr; /* 2 Columns on mobile */
        gap: 15px; 
    }
    .result-container { padding: 15px; width: 100%; margin: 0; border-radius: 0; min-height: 100vh; }
}