:root{--green:#075c3b;--green2:#0b7a4e;--gold:#e5af2c;--ink:#17251f;--muted:#6b7771;--line:#dde5e1;--bg:#f4f7f5;--white:#fff;--danger:#c84437;--shadow:0 18px 55px rgba(18,55,40,.12)}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--bg)}button,input{font:inherit}button{cursor:pointer}.login-page{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr}.login-brand{position:relative;overflow:hidden;background:linear-gradient(145deg,#06472f,#08754a);color:white;padding:64px 8vw;display:flex;flex-direction:column;justify-content:center}.login-brand:before,.login-brand:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.login-brand:before{width:520px;height:520px;right:-180px;top:-180px}.login-brand:after{width:360px;height:360px;left:-180px;bottom:-150px}.brand-logo{width:118px;height:118px;object-fit:contain;background:white;border-radius:50%;padding:8px;box-shadow:0 8px 30px rgba(0,0,0,.2);position:relative}.eyebrow{font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:#f5c74e;margin:32px 0 14px}.login-brand h1{font:700 clamp(32px,4vw,58px)/1.1 'Libre Baskerville',serif;max-width:700px;margin:0}.login-brand p{font-size:18px;max-width:600px;line-height:1.7;color:#d7ebe2}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px;background:white}.login-card{width:min(420px,100%)}.login-card h2{font-size:32px;margin:0 0 8px}.sub{color:var(--muted);margin:0 0 30px}.field{display:block;margin:18px 0}.field span{display:block;font-weight:600;font-size:14px;margin-bottom:8px}.field input{width:100%;border:1px solid #cad5cf;border-radius:10px;padding:14px 15px;outline:none}.field input:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(11,122,78,.12)}.primary{width:100%;border:0;border-radius:10px;padding:15px;background:var(--green);color:white;font-weight:700}.primary:hover{background:var(--green2)}.login-error{min-height:22px;color:var(--danger);font-size:14px}.secure-note{display:flex;gap:8px;color:var(--muted);font-size:13px;margin-top:22px}.exam-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{background:#073d2b;color:white;padding:24px 20px;display:flex;flex-direction:column;gap:18px}.side-brand{display:flex;align-items:center;gap:11px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.14)}.side-brand img{width:48px;height:48px;object-fit:contain;background:white;border-radius:50%;padding:3px}.side-brand strong{display:block;font-size:14px}.side-brand span{font-size:11px;color:#b8d5c9}.candidate-card,.camera-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px}.candidate-card img,.camera-frame{width:100%;height:168px;object-fit:cover;border-radius:8px;background:#021d14}.candidate-card h3{font-size:15px;margin:11px 0 4px}.candidate-card p{font-size:12px;color:#bdd6cc;margin:0}.camera-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:9px}.live-dot{width:8px;height:8px;background:#43db83;display:inline-block;border-radius:50%;margin-right:5px;box-shadow:0 0 0 4px rgba(67,219,131,.12)}video{transform:scaleX(-1)}.camera-fallback{height:168px;display:grid;place-items:center;text-align:center;color:#adc5bb;font-size:12px}.exam-main{display:flex;flex-direction:column;min-width:0}.exam-topbar{height:78px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:5}.exam-topbar h1{font-size:17px;margin:0}.exam-topbar p{font-size:12px;color:var(--muted);margin:4px 0 0}.timer{background:#fff7df;border:1px solid #f1d98c;border-radius:10px;padding:10px 15px;text-align:right}.timer span{display:block;font-size:10px;text-transform:uppercase;color:#806216}.timer strong{font-size:20px;color:#5e480d;font-variant-numeric:tabular-nums}.question-area{padding:32px 36px 18px;flex:1}.question-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.question-count{color:var(--green);font-weight:700}.subject-pill{background:#eaf5ef;color:var(--green);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:700}.question-card{background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 28px rgba(18,55,40,.05);padding:28px 32px}.question-card h2{font:700 20px/1.55 'Libre Baskerville',serif;margin:0 0 25px}.option{display:flex;align-items:flex-start;gap:13px;border:1px solid var(--line);border-radius:11px;padding:14px;margin:11px 0;transition:.16s}.option:hover{border-color:#83b19c;background:#f8fcfa}.option.selected{border-color:var(--green2);background:#edf8f2;box-shadow:0 0 0 2px rgba(11,122,78,.08)}.option input{margin-top:3px;accent-color:var(--green)}.option-letter{font-weight:700;color:var(--green)}.nav-row{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.nav-btn{border:1px solid #cad6d0;background:white;color:var(--ink);border-radius:9px;padding:11px 18px;font-weight:700}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.next{background:var(--green);color:white;border-color:var(--green)}.finish{background:var(--gold);border-color:var(--gold);color:#3d2c02}.palette-wrap{background:white;border-top:1px solid var(--line);padding:14px 36px 20px}.palette-label{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:10px}.palette{display:flex;flex-wrap:wrap;gap:7px}.qdot{width:31px;height:31px;border:1px solid #d8e1dd;background:white;border-radius:7px;font-size:11px;color:#66736d}.qdot.answered{background:#dff2e8;border-color:#8ac2a6;color:var(--green);font-weight:700}.qdot.current{background:var(--green);color:white;border-color:var(--green)}.modal-backdrop{position:fixed;inset:0;background:rgba(3,24,16,.68);display:grid;place-items:center;z-index:20;padding:20px}.modal{width:min(460px,100%);background:white;border-radius:18px;padding:30px;box-shadow:var(--shadow)}.modal h2{margin:0 0 10px}.modal p{color:var(--muted);line-height:1.6}.modal-actions{display:flex;gap:10px;margin-top:24px}.modal-actions button{flex:1}.result-page{min-height:100vh;background:linear-gradient(180deg,#073d2b 0 300px,var(--bg) 300px);padding:42px 20px}.result-wrap{width:min(850px,100%);margin:auto}.result-header{color:white;text-align:center}.result-header img{width:76px;height:76px;object-fit:contain;background:white;border-radius:50%;padding:5px}.result-header h1{font:700 28px 'Libre Baskerville',serif;margin:16px 0 5px}.result-header p{color:#c8ddd4;margin:0}.result-card{background:white;margin-top:28px;border-radius:18px;box-shadow:var(--shadow);padding:34px}.result-student{display:flex;align-items:center;gap:18px;padding-bottom:25px;border-bottom:1px solid var(--line)}.result-student img{width:76px;height:76px;border-radius:50%;object-fit:cover}.result-student h2{font-size:18px;margin:0 0 4px}.result-student p{color:var(--muted);font-size:13px;margin:0}.score-section{display:grid;grid-template-columns:170px 1fr;gap:35px;align-items:center;padding:30px 0}.score-ring{width:160px;height:160px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) var(--score),#e5ece8 0);position:relative}.score-ring:before{content:"";position:absolute;inset:12px;border-radius:50%;background:white}.score-ring div{position:relative;text-align:center}.score-ring strong{display:block;font-size:38px;color:var(--green)}.score-ring span{font-size:12px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{border:1px solid var(--line);border-radius:11px;padding:17px}.stat strong{display:block;font-size:24px}.stat span{font-size:11px;color:var(--muted)}.status{padding:14px;border-radius:10px;background:#eaf7ef;color:var(--green);font-weight:700}.restart{width:auto;margin-top:22px;padding:12px 22px}@media(max-width:850px){.login-page{grid-template-columns:1fr}.login-brand{padding:42px 28px}.login-brand h1{font-size:34px}.login-form-wrap{padding:38px 24px}.exam-shell{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;padding:12px}.side-brand{grid-column:1/-1}.candidate-card img,.camera-frame,.camera-fallback{height:120px}.exam-topbar{padding:0 18px}.question-area{padding:20px 15px}.question-card{padding:22px 18px}.palette-wrap{padding:12px 15px 18px}.score-section{grid-template-columns:1fr}.score-ring{margin:auto}.stats{grid-template-columns:1fr 1fr 1fr}}@media(max-width:500px){.stats{grid-template-columns:1fr}.result-card{padding:24px 18px}.exam-topbar h1{max-width:180px}.sidebar{grid-template-columns:1fr 1fr}.candidate-card h3{font-size:12px}.question-card h2{font-size:17px}}
.dashboard{min-height:100vh;background:var(--bg)}.dash-header{height:82px;background:#073d2b;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,6vw)}.dash-brand{display:flex;align-items:center;gap:13px}.dash-brand img{width:52px;height:52px;background:white;border-radius:50%;padding:4px;object-fit:contain}.dash-brand strong,.dash-brand span{display:block}.dash-brand span{font-size:12px;color:#bcd5cb;margin-top:3px}.logout-btn,.side-logout{border:1px solid rgba(255,255,255,.35);background:transparent;color:white;border-radius:9px;padding:10px 16px;font-weight:700}.logout-btn:hover,.side-logout:hover{background:rgba(255,255,255,.1)}.dash-content{width:min(1100px,calc(100% - 40px));margin:40px auto}.welcome{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(120deg,#fff,#f4fbf7);border:1px solid var(--line);border-radius:18px;padding:28px 34px;margin-bottom:25px}.welcome .eyebrow{color:var(--green2);font-size:11px;margin:0 0 8px}.welcome h1{font:700 28px 'Libre Baskerville',serif;margin:0 0 8px}.welcome p{color:var(--muted);margin:0}.welcome img{width:78px;height:78px;border-radius:50%;object-fit:cover;border:4px solid white;box-shadow:0 5px 18px rgba(0,0,0,.12)}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.course-card{position:relative;background:white;border:1px solid var(--line);border-radius:15px;padding:22px;display:grid;grid-template-columns:48px 1fr auto;gap:16px;align-items:center;box-shadow:0 6px 22px rgba(18,55,40,.05)}.course-icon{width:48px;height:48px;border-radius:11px;background:#e7f4ed;color:var(--green);display:grid;place-items:center;font-weight:700}.course-info span{font-size:10px;color:var(--green2);font-weight:700;letter-spacing:.1em}.course-info h2{margin:4px 0 7px;font-size:20px}.course-info p{color:var(--muted);font-size:12px;margin:0 0 4px}.course-info strong{font-size:13px}.start-btn{border:0;background:var(--green);color:white;border-radius:9px;padding:11px 14px;font-weight:700}.start-btn:disabled{background:#dce3df;color:#8b9690;cursor:not-allowed}.course-status{grid-column:2/-1;color:var(--muted);font-size:11px}.timezone-note{text-align:center;color:var(--muted);font-size:12px;margin-top:22px}.side-logout{margin-top:auto;width:100%}.narrow{max-width:500px}.result-gate{margin-top:35px}.logout-link{width:100%;margin-top:13px;border:0;background:transparent;color:var(--green);padding:10px;font-weight:700}@media(max-width:750px){.course-grid{grid-template-columns:1fr}.welcome{padding:22px}.dash-header{padding:0 18px}.dash-brand strong{font-size:13px}}@media(max-width:460px){.course-card{grid-template-columns:42px 1fr}.start-btn{grid-column:1/-1}.course-status{grid-column:1/-1}.welcome img{display:none}.dash-brand span{display:none}}
.dash-actions{display:flex;align-items:center;gap:10px}.result-nav-btn{border:1px solid var(--gold);background:var(--gold);color:#3d2c02;border-radius:9px;padding:10px 16px;font-weight:700}
.page-link{display:block;text-align:center;margin-top:18px;color:var(--green);font-weight:700;text-decoration:none}.inline-button{display:inline-block;text-align:center;text-decoration:none}.preview-banner{position:relative;z-index:30;background:var(--gold);color:#3d2c02;text-align:center;padding:8px;font-size:11px;font-weight:700;letter-spacing:.08em}.preview-banner+.exam-shell{min-height:calc(100vh - 31px)}
.submission-card{text-align:center;padding:46px 34px}.submission-check{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;background:#eaf7ef;color:var(--green);font-size:38px;font-weight:700}.submission-card h2{margin:0 0 10px}.submission-card p{max-width:480px;margin:0 auto 25px;color:var(--muted);line-height:1.6}
.grade-summary{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding:14px;border-radius:12px;background:#fff8e6;border:1px solid #f0d887}.grade-letter{width:58px;height:58px;border-radius:12px;display:grid;place-items:center;background:var(--gold);color:#3d2c02;font-size:30px;font-weight:700}.grade-summary span,.grade-summary strong,.grade-summary small{display:block}.grade-summary span{font-size:10px;color:var(--muted);letter-spacing:.1em}.grade-summary strong{font-size:18px;margin:2px 0}.grade-summary small{color:var(--muted)}
.answer-page{min-height:100vh;background:var(--bg)}.answer-header{background:#073d2b;color:white;min-height:90px;padding:16px max(22px,5vw);display:flex;align-items:center;gap:14px}.answer-header img{width:58px;height:58px;border-radius:50%;background:white;padding:4px;object-fit:contain}.answer-header div{flex:1}.answer-header span{font-size:10px;color:#bcd5cb;letter-spacing:.1em}.answer-header h1{font:700 21px 'Libre Baskerville',serif;margin:4px 0}.answer-header a{color:white;text-decoration:none;border:1px solid rgba(255,255,255,.35);padding:9px 13px;border-radius:8px;font-size:12px;font-weight:700}.answer-content{width:min(950px,calc(100% - 32px));margin:28px auto 60px}.answer-summary{display:grid;grid-template-columns:repeat(3,1fr);background:white;border:1px solid var(--line);border-radius:14px;padding:20px;gap:20px}.answer-summary div+div{border-left:1px solid var(--line);padding-left:20px}.answer-summary span,.answer-summary strong,.answer-summary small{display:block}.answer-summary span{font-size:10px;color:var(--muted);letter-spacing:.09em}.answer-summary strong{margin:5px 0;font-size:17px}.answer-summary small{color:var(--muted)}.answer-legend{display:flex;flex-wrap:wrap;gap:20px;margin:20px 0;color:var(--muted);font-size:12px}.answer-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.legend-correct{background:#1b925a}.legend-choice{background:#e5af2c}.legend-wrong{background:#c84437}.answer-list{display:grid;gap:16px}.review-question{background:white;border:1px solid var(--line);border-left:5px solid #aeb9b3;border-radius:13px;padding:22px}.review-question.correct{border-left-color:#1b925a}.review-question.incorrect{border-left-color:#c84437}.review-qhead{display:flex;justify-content:space-between;align-items:center}.review-qhead span{font-size:11px;color:var(--green);font-weight:700;text-transform:uppercase}.review-qhead strong{font-size:11px;padding:5px 9px;border-radius:99px;background:#eef2f0;color:var(--muted)}.review-question.correct .review-qhead strong{background:#e8f6ef;color:#087044}.review-question.incorrect .review-qhead strong{background:#fbeceb;color:#ad3429}.review-question h2{font:700 16px/1.5 'Libre Baskerville',serif;margin:13px 0}.review-options{display:grid;gap:7px}.review-option{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:10px 12px;border:1px solid #e2e8e5;border-radius:8px;font-size:13px}.review-letter{width:25px;height:25px;border-radius:6px;display:grid;place-items:center;background:#eef2f0;font-weight:700}.review-option.correct-answer{border-color:#74bd98;background:#eff9f4}.review-option.correct-answer .review-letter{background:#16804d;color:white}.review-option.candidate-answer:not(.correct-answer){border-color:#db8179;background:#fff3f2}.review-option.candidate-answer:not(.correct-answer) .review-letter{background:#c84437;color:white}.review-tag{font-size:10px;font-weight:700;color:var(--muted)}.correct-answer .review-tag{color:#087044}.candidate-answer:not(.correct-answer) .review-tag{color:#ad3429}.answer-empty{width:min(520px,calc(100% - 32px));margin:70px auto;background:white;border-radius:14px;padding:35px;text-align:center;box-shadow:var(--shadow)}.answer-empty p{color:var(--muted)}@media(max-width:650px){.answer-summary{grid-template-columns:1fr}.answer-summary div+div{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:14px}.review-option{grid-template-columns:28px 1fr}.review-tag{grid-column:2}.answer-header h1{font-size:16px}.answer-header a{font-size:10px}}
.portal-home{min-height:100vh;background:linear-gradient(180deg,#073d2b 0 330px,var(--bg) 330px)}.portal-header{height:96px;padding:0 max(24px,6vw);display:flex;align-items:center;justify-content:space-between;color:white;border-bottom:1px solid rgba(255,255,255,.13)}.portal-brand{display:flex;align-items:center;gap:14px}.portal-brand img{width:62px;height:62px;border-radius:50%;background:white;padding:4px;object-fit:contain}.portal-brand span{font-size:10px;color:#bed8cd;letter-spacing:.1em}.portal-brand h1{font:700 21px 'Libre Baskerville',serif;margin:4px 0}.portal-session{font-size:12px;border:1px solid rgba(255,255,255,.25);border-radius:99px;padding:8px 12px}.portal-hero{color:white;text-align:center;padding:42px 20px 34px}.portal-hero .eyebrow{margin:0 0 10px;font-size:10px}.portal-hero h2{font:700 clamp(28px,4vw,42px) 'Libre Baskerville',serif;margin:0 0 10px}.portal-hero>p:last-child{color:#c9ddd5;margin:0 auto;max-width:650px}.exam-types{width:min(1040px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.exam-type{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:15px;box-shadow:0 7px 25px rgba(18,55,40,.07)}.exam-type.available{grid-column:1/-1;border-color:#79b899;background:linear-gradient(110deg,#fff,#eff9f4)}.type-number{width:46px;height:46px;border-radius:10px;background:#edf2ef;color:var(--muted);display:grid;place-items:center;font-weight:700}.available .type-number{background:var(--green);color:white}.exam-type span{font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--green2)}.exam-type h3{margin:4px 0;font-size:18px}.exam-type p{margin:0;color:var(--muted);font-size:12px}.exam-type button,.exam-type a{border:0;border-radius:9px;padding:11px 14px;font-weight:700;text-decoration:none;font-size:12px}.exam-type button{background:#e4e9e6;color:#98a19c;cursor:not-allowed}.exam-type a{background:var(--green);color:white}.portal-footer{text-align:center;color:var(--muted);font-size:11px;padding:32px 20px}.course-card.course-finished{background:#f0f2f1;box-shadow:none;opacity:.75}.course-card.course-finished .start-btn{background:#a5ada9;color:white}.course-card.course-finished .course-icon{background:#d9dddb;color:#67706b}@media(max-width:700px){.exam-types{grid-template-columns:1fr}.exam-type.available{grid-column:auto}.portal-session{display:none}.exam-type{grid-template-columns:42px 1fr}.exam-type button,.exam-type a{grid-column:1/-1;text-align:center}.portal-brand h1{font-size:16px}}
