
*{box-sizing:border-box;margin:0;padding:0;}
:root{--blue:#143185;--gold:#EDB115;--border:#e0e5f0;}
body{font-family:'Lexend',sans-serif;background:#f4f6fb;color:#1a1a2e;min-height:100vh;}

/* Utility Classes */
.flex-center{display:flex;align-items:center;justify-content:center;}
.flex-col{display:flex;flex-direction:column;}
.gap-8{gap:8px;}
.gap-12{gap:12px;}
.gap-14{gap:14px;}
.gap-16{gap:16px;}
.gap-20{gap:20px;}

/* Cover Page */
.cover-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#143185 0%,#1e4ab8 100%);}
.cover-card{background:#fff;border-radius:20px;padding:48px 56px;max-width:620px;width:90%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,0.25);}
.cover-logo{font-size:50px;margin-bottom:14px;}
.cover-title{font-size:26px;font-weight:700;color:#143185;margin:0 0 6px;}
.cover-subtitle{font-size:15px;color:#555;margin-bottom:26px;line-height:1.6;}
.cover-info{background:#f4f6fb;border-radius:12px;padding:16px 20px;margin-bottom:26px;text-align:left;}
.cover-info-item{font-size:14px;color:#444;margin-bottom:8px;line-height:1.5;}
.cover-info-item:last-child{margin-bottom:0;}
.cover-info-item strong{color:#143185;}
.name-input-wrap{margin-bottom:22px;text-align:left;}
.name-input-label{font-size:13px;font-weight:600;color:#143185;margin-bottom:7px;display:block;}
.name-input-field{width:100%;border:2px solid #c8d0e8;border-radius:10px;padding:12px 16px;font-family:'Lexend',sans-serif;font-size:15px;color:#1a1a2e;background:#fff;transition:border-color 0.15s;}
.name-input-field:focus{outline:none;border-color:#143185;background:#f9faff;}
.btn-start{background:#EDB115;color:#143185;border:none;padding:16px 44px;font-size:18px;font-weight:700;font-family:'Lexend',sans-serif;border-radius:50px;cursor:pointer;transition:all 0.2s;box-shadow:0 4px 15px rgba(237,177,21,0.4);}
.btn-start:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(237,177,21,0.5);}

/* Section Page */
.section-page{max-width:860px;margin:0 auto;padding:28px 18px 56px;}
.section-header{border-radius:16px;padding:22px 28px;margin-bottom:26px;display:flex;align-items:center;gap:16px;}
.section-header.non-calc{background:#143185;color:#fff;}
.section-header.calc{background:#EDB115;color:#143185;}
.section-header-icon{font-size:30px;flex-shrink:0;}
.section-header-title{font-size:20px;font-weight:700;}
.section-header-sub{font-size:13px;opacity:0.85;margin-top:3px;}
.timer-display{margin-left:auto;text-align:right;flex-shrink:0;background:rgba(255,255,255,0.15);border-radius:10px;padding:8px 14px;}
.timer-label{font-size:11px;opacity:0.75;text-transform:uppercase;letter-spacing:0.5px;}
.timer-value{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px;}

/* Question Cards */
.question-card{background:#fff;border-radius:14px;padding:22px 26px;margin-bottom:18px;box-shadow:0 2px 12px rgba(0,0,0,0.07);border-left:4px solid #143185;position:relative;}
.question-card.extended{border-left:4px solid #EDB115;}
.question-card.flagged{background:#fffbeb;border-left:4px solid #f59e0b;box-shadow:0 2px 12px rgba(245,158,11,0.25);}
.q-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.q-number{width:34px;height:34px;border-radius:50%;background:#143185;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;}
.q-number.extended{background:#EDB115;color:#143185;}
.q-title{font-weight:600;color:#143185;font-size:15px;flex:1;}
.q-marks{background:#e8edf8;color:#143185;font-size:12px;font-weight:600;padding:3px 10px;border-radius:12px;white-space:nowrap;}
.q-marks.multi{background:#143185;color:#fff;}
.btn-flag{background:none;border:2px solid #e0e5f0;border-radius:8px;padding:4px 9px;font-size:14px;cursor:pointer;transition:all 0.15s;color:#aaa;white-space:nowrap;}
.btn-flag:hover{border-color:#f59e0b;background:#fffbeb;color:#f59e0b;}
.btn-flag.active{border-color:#f59e0b;background:#fef3c7;color:#b45309;}
.btn-flag.disabled-flag{pointer-events:none;opacity:0.5;}
.partial-note{font-size:11px;color:#b45309;background:#fef3c7;border-radius:6px;padding:3px 9px;display:inline-block;margin-bottom:10px;}
.q-scenario{background:#f0f4ff;border-left:3px solid #143185;border-radius:0 8px 8px 0;padding:13px 15px;margin-bottom:13px;font-size:14px;line-height:1.7;color:#2d3a6b;}
.q-text{font-size:15px;line-height:1.6;color:#1a1a2e;margin-bottom:15px;font-weight:500;}
.q-text.after-scenario{margin-top:0;}
.box-label{font-size:11px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:5px;}
.working-section{margin-bottom:13px;}
.working-area{width:100%;border:2px dashed #c8d0e8;border-radius:8px;background:#fafbff;font-family:'Lexend',sans-serif;font-size:14px;color:#1a1a2e;padding:10px 12px;resize:vertical;}
.working-area.standard{min-height:80px;}
.working-area.extended{min-height:130px;}
.working-area:focus{outline:none;border-color:#143185;background:#f0f4ff;}
.working-area:disabled{opacity:0.55;pointer-events:none;background:#efefef;}
.text-input{width:100%;border:2px solid #c8d0e8;border-radius:8px;padding:12px 14px;font-family:'Lexend',sans-serif;font-size:15px;color:#1a1a2e;background:#fff;transition:border-color 0.15s;}
.text-input:focus{outline:none;border-color:#143185;background:#f9faff;}
.text-input:disabled{opacity:0.55;background:#efefef;pointer-events:none;}
.mc-options{display:flex;flex-direction:column;gap:9px;}
.mc-option{display:flex;align-items:center;gap:12px;padding:11px 15px;border:2px solid #e0e5f0;border-radius:10px;cursor:pointer;transition:all 0.15s;background:#fff;-webkit-user-select:none;user-select:none;}
.mc-option:hover{border-color:#143185;background:#f0f4ff;}
.mc-option.selected{border-color:#143185;background:#e8edf8;}
.mc-option.disabled{pointer-events:none;opacity:0.65;}
.mc-radio{width:19px;height:19px;border-radius:50%;border:2px solid #c0c8e0;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.15s;}
.mc-option.selected .mc-radio{border-color:#143185;background:#143185;}
.mc-radio-dot{width:7px;height:7px;border-radius:50%;background:#fff;display:none;}
.mc-option.selected .mc-radio-dot{display:block;}
.mc-label{font-size:14px;color:#1a1a2e;}
.submit-box{text-align:center;margin-top:34px;padding:26px 28px;background:#fff;border-radius:16px;box-shadow:0 2px 12px rgba(0,0,0,0.07);}
.submit-box-title{font-size:17px;font-weight:700;color:#143185;margin-bottom:6px;}
.submit-box-sub{font-size:14px;color:#666;margin-bottom:18px;}
.flag-warning{font-size:13px;color:#b45309;background:#fef3c7;border-radius:8px;padding:8px 14px;margin-bottom:14px;display:none;}
.btn-submit{border:none;padding:15px 42px;font-size:17px;font-weight:700;font-family:'Lexend',sans-serif;border-radius:50px;cursor:pointer;transition:all 0.2s;}
.btn-submit.blue{background:#143185;color:#fff;box-shadow:0 4px 15px rgba(20,49,133,0.3);}
.btn-submit.blue:hover{background:#0f2468;transform:translateY(-2px);}
.btn-submit.gold{background:#EDB115;color:#143185;box-shadow:0 4px 15px rgba(237,177,21,0.3);}
.btn-submit.gold:hover{background:#d4a010;transform:translateY(-2px);}

/* Results Page */
.results-page{max-width:860px;margin:0 auto;padding:28px 18px 56px;}
.results-header{background:linear-gradient(135deg,#143185,#1e4ab8);color:#fff;border-radius:16px;padding:28px;text-align:center;margin-bottom:22px;}
.results-header h1{font-size:20px;margin-bottom:12px;}
.score-display{font-size:50px;font-weight:700;line-height:1;}
.score-label{font-size:14px;opacity:0.85;margin-top:5px;}
.level-box{background:#fff;border:3px solid #EDB115;border-radius:14px;padding:22px;text-align:center;margin-bottom:22px;box-shadow:0 2px 12px rgba(0,0,0,0.07);}
.level-box h2{font-size:16px;color:#143185;margin-bottom:9px;}
.level-rec{font-size:28px;font-weight:700;margin-bottom:5px;}
.level-sub{font-size:14px;color:#666;line-height:1.5;}
.rag-section{background:#fff;border-radius:14px;padding:22px;box-shadow:0 2px 12px rgba(0,0,0,0.07);margin-bottom:22px;}
.rag-section h2{font-size:17px;font-weight:700;color:#143185;margin-bottom:14px;}
.rag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:11px;}
.rag-card{border-radius:11px;padding:15px;text-align:center;}
.rag-card.green{background:#f0fdf4;border:2px solid #22c55e;}
.rag-card.amber{background:#fffbeb;border:2px solid #f59e0b;}
.rag-card.red{background:#fff5f5;border:2px solid #ef4444;}
.rag-icon{font-size:20px;margin-bottom:4px;}
.rag-name{font-size:12px;font-weight:600;color:#333;margin-bottom:6px;}
.rag-score{font-size:18px;font-weight:700;}
.rag-card.green .rag-score{color:#22c55e;}
.rag-card.amber .rag-score{color:#f59e0b;}
.rag-card.red .rag-score{color:#ef4444;}
.rag-bar-bg{height:5px;background:#e0e0e0;border-radius:3px;margin-top:7px;}
.rag-bar-fill{height:5px;border-radius:3px;}
.rag-card.green .rag-bar-fill{background:#22c55e;}
.rag-card.amber .rag-bar-fill{background:#f59e0b;}
.rag-card.red .rag-bar-fill{background:#ef4444;}
.breakdown-section{background:#fff;border-radius:14px;padding:22px;box-shadow:0 2px 12px rgba(0,0,0,0.07);margin-bottom:22px;}
.breakdown-section h2{font-size:17px;font-weight:700;color:#143185;margin-bottom:14px;}
.bi{padding:13px;border-radius:9px;margin-bottom:9px;}
.bi.full{background:#f0fdf4;border-left:4px solid #22c55e;}
.bi.partial{background:#fffbeb;border-left:4px solid #f59e0b;}
.bi.wrong{background:#fff5f5;border-left:4px solid #ef4444;}
.bi-top{display:flex;align-items:center;gap:7px;margin-bottom:5px;flex-wrap:wrap;}
.bi-qnum{font-size:11px;font-weight:700;color:#666;background:#e8e8e8;padding:2px 7px;border-radius:7px;}
.bi-marks{font-size:12px;font-weight:700;padding:2px 8px;border-radius:7px;}
.bi.full .bi-marks{background:#dcfce7;color:#16a34a;}
.bi.partial .bi-marks{background:#fef3c7;color:#b45309;}
.bi.wrong .bi-marks{background:#fee2e2;color:#dc2626;}
.bi-q{font-size:13px;color:#333;line-height:1.5;margin-bottom:4px;}
.bi-answers{font-size:13px;line-height:1.6;}
.bi-your{color:#e53e3e;}
.bi-correct-ans{color:#16a34a;font-weight:600;}
.bi-expl{font-size:12px;color:#666;font-style:italic;margin-top:4px;line-height:1.5;}
.bi-working-note{font-size:12px;color:#b45309;margin-top:3px;}
.action-bar{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:4px;}
.btn-pdf{background:#143185;color:#fff;border:none;padding:13px 30px;font-size:15px;font-weight:700;font-family:'Lexend',sans-serif;border-radius:50px;cursor:pointer;box-shadow:0 4px 15px rgba(20,49,133,0.3);transition:all 0.2s;}
.btn-pdf:hover{background:#0f2468;transform:translateY(-2px);}
.btn-restart{background:#fff;color:#143185;border:2px solid #143185;padding:12px 28px;font-size:15px;font-weight:700;font-family:'Lexend',sans-serif;border-radius:50px;cursor:pointer;transition:all 0.2s;}
.btn-restart:hover{background:#f0f4ff;}
.btn-review-mode{background:#22c55e;color:#fff;border:none;padding:13px 30px;font-size:15px;font-weight:700;font-family:'Lexend',sans-serif;border-radius:50px;cursor:pointer;box-shadow:0 4px 15px rgba(34,197,94,0.3);transition:all 0.2s;}
.btn-review-mode:hover{background:#16a34a;transform:translateY(-2px);}
.chart-section{background:#fff;border-radius:14px;padding:22px;box-shadow:0 2px 12px rgba(0,0,0,0.07);margin-bottom:22px;}
.chart-section h2{font-size:17px;font-weight:700;color:#143185;margin-bottom:16px;}
canvas.topic-chart{width:100%!important;max-height:280px;}

/* Accessibility */
.access-toolbar{position:fixed;bottom:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.btn-access{background:#fff;color:#143185;border:2px solid #143185;padding:10px 16px;font-size:13px;font-weight:700;font-family:'Lexend',sans-serif;border-radius:30px;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,0.15);transition:all 0.2s;white-space:nowrap;}
.btn-access:hover{background:#f0f4ff;}
.btn-access.active{background:#143185;color:#fff;}
body.access-mode{background:#fff;color:#000;font-size:20px;}
body.access-mode .cover-page{background:#000080;}
body.access-mode .cover-card{background:#fff;border:3px solid #000;}
body.access-mode .cover-title{color:#000080;font-size:30px;}
body.access-mode .cover-subtitle{font-size:18px;color:#000;}
body.access-mode .cover-info{background:#e8e8ff;border:2px solid #000080;}
body.access-mode .cover-info-item{font-size:17px;color:#000;}
body.access-mode .name-input-field{font-size:18px;border:3px solid #000080;}
body.access-mode .section-header.non-calc{background:#000080;}
body.access-mode .section-header.calc{background:#cc8800;color:#000;}
body.access-mode .section-header-title{font-size:24px;}
body.access-mode .section-header-sub{font-size:16px;}
body.access-mode .timer-value{font-size:28px;}
body.access-mode .question-card{background:#fffff0;border:3px solid #000080;border-left:6px solid #000080;box-shadow:none;}
body.access-mode .question-card.extended{border-left:6px solid #cc8800;}
body.access-mode .question-card.flagged{background:#fff3cc;border:3px solid #cc8800;}
body.access-mode .q-title{font-size:18px;}
body.access-mode .q-text{font-size:19px;}
body.access-mode .q-scenario{font-size:17px;background:#e8e8ff;}
body.access-mode .working-area{font-size:17px;border:2px solid #555;}
body.access-mode .text-input{font-size:19px;border:3px solid #000080;}
body.access-mode .mc-label{font-size:17px;}
body.access-mode .mc-option{border:2px solid #555;font-size:17px;}
body.access-mode .mc-option.selected{background:#d0d8ff;border-color:#000080;}
body.access-mode .submit-box{background:#e8e8ff;border:3px solid #000080;box-shadow:none;}
body.access-mode .submit-box-title{font-size:20px;}
body.access-mode .submit-box-sub{font-size:16px;}
body.access-mode .partial-note{font-size:14px;}
body.access-mode .q-marks{font-size:14px;padding:4px 12px;}
body.access-mode .box-label{font-size:14px;}

/* Review Overlay */
.review-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);z-index:2000;align-items:center;justify-content:center;}
.review-overlay.open{display:flex;}
.review-modal{background:#fff;border-radius:20px;padding:32px;max-width:720px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,0.35);}
.review-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.review-title{font-size:18px;font-weight:700;color:#143185;}
.review-counter{font-size:14px;color:#666;background:#f0f4ff;padding:5px 12px;border-radius:20px;}
.review-q-card{background:#f8f9ff;border-radius:12px;padding:20px;margin-bottom:16px;border-left:4px solid #143185;}
.review-q-card.correct{border-left-color:#22c55e;background:#f0fdf4;}
.review-q-card.wrong{border-left-color:#ef4444;background:#fff5f5;}
.review-q-card.partial{border-left-color:#f59e0b;background:#fffbeb;}
.review-q-label{font-size:12px;font-weight:700;color:#888;margin-bottom:10px;}
.review-scenario{font-size:13px;background:#e8edf8;border-radius:8px;padding:10px 14px;margin-bottom:12px;line-height:1.6;color:#2d3a6b;}
.review-q-text{font-size:16px;font-weight:600;color:#1a1a2e;margin-bottom:14px;line-height:1.5;}
.review-answer-row{display:flex;gap:14px;margin-bottom:12px;flex-wrap:wrap;}
.review-answer-box{flex:1;min-width:160px;border-radius:9px;padding:12px 15px;}
.review-answer-box.yours{background:#fee2e2;border:2px solid #ef4444;}
.review-answer-box.yours.correct{background:#dcfce7;border-color:#22c55e;}
.review-answer-box-label{font-size:11px;font-weight:700;color:#888;margin-bottom:4px;text-transform:uppercase;}
.review-answer-box-val{font-size:16px;font-weight:700;}
.review-answer-box.yours .review-answer-box-val{color:#dc2626;}
.review-answer-box.yours.correct .review-answer-box-val{color:#16a34a;}
.review-answer-box.model{background:#dcfce7;border:2px solid #22c55e;}
.review-answer-box.model .review-answer-box-val{color:#16a34a;}
.review-expl{font-size:13px;color:#555;background:#fffde7;border-radius:8px;padding:10px 14px;line-height:1.5;font-style:italic;}
.review-marks-badge{font-size:13px;font-weight:700;padding:4px 12px;border-radius:12px;margin-bottom:12px;display:inline-block;}
.review-marks-badge.full{background:#dcfce7;color:#16a34a;}
.review-marks-badge.partial{background:#fef3c7;color:#b45309;}
.review-marks-badge.wrong{background:#fee2e2;color:#dc2626;}
.review-nav{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:10px;}
.btn-review-nav{border:none;padding:12px 24px;font-size:15px;font-weight:700;font-family:'Lexend',sans-serif;border-radius:30px;cursor:pointer;transition:all 0.2s;}
.btn-review-nav.prev{background:#f0f4ff;color:#143185;}
.btn-review-nav.prev:hover{background:#e0e8ff;}
.btn-review-nav.next{background:#143185;color:#fff;}
.btn-review-nav.next:hover{background:#0f2468;}
.btn-review-close{background:#fff;color:#666;border:2px solid #ddd;padding:11px 20px;font-size:14px;font-weight:700;font-family:'Lexend',sans-serif;border-radius:30px;cursor:pointer;}
.btn-review-close:hover{border-color:#999;color:#333;}

/* Diagrams */
.q-diagram{margin:10px 0 6px;padding:0;}
.q-diagram svg{border-radius:8px;}
