*{box-sizing:border-box}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:#f5f7fb;color:#172033}.shell{max-width:860px;margin:0 auto;padding:24px}.card{background:#fff;border:1px solid #dfe4ec;border-radius:14px;padding:22px;box-shadow:0 3px 14px rgba(0,0,0,.05);margin:16px 0}h1,h2,h3{margin-top:0}.muted{color:#667085}.row{display:flex;gap:12px;flex-wrap:wrap}.field{flex:1;min-width:220px}label{display:block;font-weight:600;margin-bottom:6px}input,select,textarea{width:100%;padding:11px;border:1px solid #cbd2dc;border-radius:8px;font:inherit}button,.btn{border:0;border-radius:9px;padding:11px 16px;font-weight:700;cursor:pointer;background:#172033;color:#fff;text-decoration:none;display:inline-block}button.secondary,.btn.secondary{background:#e7ebf1;color:#172033}button:disabled{opacity:.45;cursor:not-allowed}.status{padding:8px 10px;border-radius:8px;background:#eef2f6;margin:5px 0}.ok{background:#eaf7ee}.bad{background:#fdecec}.warn{background:#fff5df}.hidden{display:none!important}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.timer{font-size:1.35rem;font-weight:800}.sync{font-size:.9rem;padding:6px 9px;border-radius:999px;background:#edf2f7}.question{font-size:1.2rem;font-weight:700;line-height:1.45;margin:22px 0}.option{display:block;border:1px solid #d6dce5;border-radius:10px;padding:13px;margin:10px 0;cursor:pointer}.option:has(input:checked){border-color:#172033;background:#f0f3f8}.option input{width:auto;margin-right:10px}.progress{height:8px;background:#e7ebf1;border-radius:999px;overflow:hidden}.progress>div{height:100%;background:#172033}.alert{padding:14px;border-radius:10px;background:#fff2d7;border:1px solid #efcf89;margin:12px 0}.danger{background:#fde8e8;border-color:#efb2b2}.success{background:#e8f7ed;border-color:#acd9ba}.checkrow{display:flex;align-items:center;gap:8px}.checkrow input{width:auto}.footer-note{font-size:.88rem;color:#667085;margin-top:16px}.download-grid{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:600px){.shell{padding:12px}.card{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.question{font-size:1.1rem}}
.quiz-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.review{background:#eef3ff;border-color:#bdcaf3}.submit-confirm{margin-top:18px;padding:16px;border:1px solid #cbd2dc;border-radius:10px;background:#f8fafc}.submit-confirm p{margin:8px 0 14px}.quiz-actions button{min-width:150px}@media(max-width:600px){.quiz-actions button{flex:1;min-width:0}}

/* V1.0.5 question-status well: informational only; not navigation. */
.question-status-panel{margin:14px 0 8px;padding:12px 14px;border:1px solid #dfe4ec;border-radius:10px;background:#f8fafc}
.question-status-heading{font-size:.86rem;font-weight:700;color:#475467;margin-bottom:9px}
.question-status{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.q-status{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:750;line-height:1;user-select:none;pointer-events:none}
.q-status.unseen{background:#dfe3e8;color:#344054}
.q-status.skipped{background:#f3a7bd;color:#6b1f39}
.q-status.answered{background:#2f8f55;color:#fff}
.q-status.current{outline:3px solid #2474d2;outline-offset:2px}
.question-status-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:11px;font-size:.78rem;color:#667085}
.question-status-legend span{display:inline-flex;align-items:center;gap:6px}
.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.legend-dot.unseen{background:#dfe3e8}
.legend-dot.skipped{background:#f3a7bd}
.legend-dot.answered{background:#2f8f55}
.legend-dot.current{background:#fff;outline:2px solid #2474d2;outline-offset:1px}


/* V1.0.5 final-submission feedback. Keeps the student informed while the server round-trip completes. */
.submission-overlay{position:fixed;inset:0;z-index:9999;background:rgba(245,247,251,.94);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.submission-box{width:min(520px,100%);background:#fff;border:1px solid #dfe4ec;border-radius:16px;padding:30px;text-align:center;box-shadow:0 12px 38px rgba(23,32,51,.16)}
.submission-box h2{margin:14px 0 8px}.submission-box p{line-height:1.5}
.submission-spinner{width:46px;height:46px;border-radius:50%;border:5px solid #e3e8ef;border-top-color:#2474d2;margin:0 auto;animation:quiz-spin .85s linear infinite}
.submission-pulse{display:flex;gap:6px;justify-content:center;margin:18px 0 4px}
.submission-pulse span{width:7px;height:7px;border-radius:50%;background:#2474d2;animation:quiz-pulse 1.1s ease-in-out infinite}
.submission-pulse span:nth-child(2){animation-delay:.15s}.submission-pulse span:nth-child(3){animation-delay:.3s}
@keyframes quiz-spin{to{transform:rotate(360deg)}}
@keyframes quiz-pulse{0%,70%,100%{opacity:.28;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.submission-spinner,.submission-pulse span{animation:none}}

/* V1.1 mixed assessment */
.qualitative-label{font-weight:700;margin-bottom:8px}.qualitative-answer{min-height:220px;resize:vertical;line-height:1.55}.answer-count{text-align:right;font-size:.82rem;margin-top:5px}.option-admin{margin:12px 0}.rubric-row{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:8px;margin:8px 0;align-items:center}.answer-review{border-top:1px solid #e5e9ef;padding:16px 0}.answer-review:first-child{border-top:0}.faculty-grade{background:#f8fafc;border:1px solid #e1e6ed;border-radius:9px;padding:12px;margin-top:12px}.faculty-grade .row{flex-wrap:nowrap}.faculty-grade input{max-width:160px}.small-text{font-size:.78rem;color:#667085;max-width:320px;word-break:break-word}table{border-collapse:collapse}th,td{border-bottom:1px solid #edf0f4;vertical-align:top}@media(max-width:650px){.rubric-row{grid-template-columns:1fr 90px}.rubric-row button{grid-column:1/-1}.faculty-grade .row{flex-wrap:wrap}.small-text{max-width:180px}}

/* V1.1.1 response clearing */
button.clear-response{background:#fff;color:#8a2947;border:1px solid #e6a2b7}button.clear-response:hover{background:#fff3f7}.qualitative-answer:focus{outline:2px solid #2474d2;outline-offset:1px}

/* V1.1.3 human-readable admin event log */
.event-log-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.event-log-heading h2{margin-bottom:4px}.event-log-heading p{margin:0 0 14px}.event-table-wrap{overflow-x:auto}.event-table{width:100%;min-width:780px}.event-table th{font-size:.82rem;color:#475467;text-align:left;padding:10px 9px;background:#f8fafc}.event-table td{padding:12px 9px}.event-seq{width:54px;color:#667085}.event-time{min-width:170px;white-space:nowrap;font-size:.87rem;color:#475467}.event-details{min-width:300px;line-height:1.45}.event-badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.event-badge-neutral{background:#eef2f6;color:#344054}.event-badge-warning{background:#fff3d6;color:#7a4d00}.event-badge-violation{background:#fde8ed;color:#8a2947}.event-row-violation td:first-child{box-shadow:inset 3px 0 0 #c94c74}.event-row-warning td:first-child{box-shadow:inset 3px 0 0 #d59a24}.question-context{display:inline-block;font-size:.82rem;font-weight:650;white-space:nowrap;color:#344054}.technical-details{margin-top:6px;font-size:.76rem;color:#667085}.technical-details summary{cursor:pointer;user-select:none}.technical-details pre{white-space:pre-wrap;word-break:break-word;margin:7px 0 0;padding:8px;border-radius:7px;background:#f7f8fa;border:1px solid #e5e9ef;font-size:.72rem;color:#475467;max-width:440px}

/* V1.1.4 student instructions and successful result summary */
.lead-note{line-height:1.55;color:#344054;margin:0 0 16px}.instructions-box{margin:14px 0 20px;padding:16px 18px;border:1px solid #dfe4ec;border-radius:12px;background:#f8fafc}.instructions-box h3{margin:0 0 10px}.instruction-list{margin:0;padding-left:20px;line-height:1.5}.instruction-list li{margin:7px 0}.score-card{margin:18px 0;padding:20px;border:1px solid #b9d7c3;border-radius:12px;background:#f0faf3}.score-card-label{font-size:.9rem;font-weight:700;color:#475467}.score-card-value{font-size:2rem;font-weight:850;line-height:1.15;margin:5px 0;color:#176b3a}.score-card-note{font-size:.9rem;color:#475467}.qualitative-release{padding:14px 16px;border-left:4px solid #2474d2;background:#f3f7ff;border-radius:7px;line-height:1.5}.submission-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.submission-summary>div{padding:12px 14px;border:1px solid #e2e7ee;border-radius:9px;background:#fafbfc;display:flex;justify-content:space-between;gap:12px}.submission-summary span{color:#667085}.success-close-note{margin:18px 0}.submission-record{margin-top:22px;padding-top:18px;border-top:1px solid #e5e9ef}.submission-record h3{margin-bottom:5px}@media(max-width:600px){.submission-summary{grid-template-columns:1fr}.instructions-box{padding:14px}.instruction-list{padding-left:18px}}


/* V1.1.5 multi-part numerical questions */
.numerical-note{margin:0 0 12px}.numerical-parts{display:grid;gap:12px}.numerical-part{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);gap:16px;align-items:end;padding:14px;border:1px solid #dfe4ec;border-radius:10px;background:#fafbfc}.numerical-part label{margin:0;display:flex;justify-content:space-between;gap:12px;align-items:center}.numerical-part label small{font-weight:600;color:#667085;white-space:nowrap}.numerical-input-wrap{display:flex;align-items:stretch}.numerical-input-wrap input{border-radius:8px 0 0 8px}.numerical-unit{display:flex;align-items:center;padding:0 12px;border:1px solid #cbd2dc;border-left:0;border-radius:0 8px 8px 0;background:#eef2f6;color:#475467;min-width:58px}.numerical-unit:empty{display:none}.numerical-input-wrap:has(.numerical-unit:empty) input{border-radius:8px}.numerical-admin-row{display:grid;grid-template-columns:minmax(190px,1.5fr) 120px 130px 110px 90px auto;gap:8px;align-items:end;margin:10px 0;padding:12px;border:1px solid #e1e6ed;border-radius:9px;background:#fafbfc}.numerical-admin-row label{font-size:.78rem;color:#475467}.numerical-admin-row button{margin-bottom:1px}.numerical-review{margin-top:10px}.numerical-review-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #edf0f4}.numerical-review-row:last-of-type{border-bottom:0}@media(max-width:700px){.numerical-part,.numerical-review-row{grid-template-columns:1fr}.numerical-admin-row{grid-template-columns:1fr 1fr}.numerical-admin-row>div:first-child{grid-column:1/-1}.numerical-admin-row button{grid-column:1/-1}}

/* V1.1.6 rich question content */
.question.rich-question{font-size:1rem;font-weight:400;line-height:1.58;margin:20px 0;color:#172033}
.question.rich-question>h3,.question.rich-question>h4{font-weight:750;line-height:1.3;margin:0 0 12px;color:#172033}
.question.rich-question>h3{font-size:1.15rem}.question.rich-question>h4{font-size:1.05rem}
.question.rich-question p{margin:9px 0;font-weight:400}.question.rich-question strong,.question.rich-question b{font-weight:750}.question.rich-question em,.question.rich-question i{font-style:italic}
.question.rich-question ul,.question.rich-question ol{margin:9px 0 13px;padding-left:24px}.question.rich-question li{margin:5px 0;font-weight:400}
.question.rich-question .question-table-wrap{overflow-x:auto}
.question.rich-question table{width:100%;border-collapse:collapse;margin:14px 0 18px;font-size:.95rem;background:#fff}
.question.rich-question th,.question.rich-question td{border:1px solid #cfd6df;padding:9px 11px;text-align:left;vertical-align:top;font-weight:400}
.question.rich-question th{background:#f2f5f8;font-weight:750;color:#344054}.question.rich-question tr:nth-child(even) td{background:#fbfcfd}
.question.rich-question hr{border:0;border-top:1px solid #dfe4ec;margin:16px 0}.question.rich-question sup,.question.rich-question sub{font-size:.78em}
@media(max-width:600px){.question.rich-question{font-size:.98rem}.question.rich-question table{font-size:.88rem}.question.rich-question th,.question.rich-question td{padding:7px 8px}}

/* V1.1.9 simplified student completion screen */
.simplified-final{max-width:680px}.final-primary-message{font-size:1.08rem;line-height:1.55;margin:14px 0 18px;color:#172033}.final-secondary-message{font-size:1rem;line-height:1.55;margin:20px 0;color:#344054}.final-close-message{font-weight:700;margin:22px 0 26px}.simple-score-card{margin:14px 0 20px;padding:18px 20px;border:1px solid #b9d7c3;border-radius:12px;background:#f0faf3}.simple-score-label{font-size:.95rem;font-weight:700;color:#475467}.simple-score-value{font-size:2.15rem;font-weight:850;line-height:1.15;margin-top:5px;color:#176b3a}.simplified-record{margin-top:24px;padding-top:18px;border-top:1px solid #e5e9ef}.simplified-record h3{margin:0 0 12px}.danger-text{color:#9b1c31;font-weight:700}.simplified-record .download-grid{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:600px){.simplified-record .download-grid{flex-direction:column}.simplified-record .download-grid button{width:100%}}

/* V1.1.11 final evaluation, PDF and email delivery */
.result-admin-grid{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(180px,.8fr) minmax(220px,1fr);gap:16px;margin:18px 0;padding-top:14px;border-top:1px solid #e5e9ef}.result-admin-grid>div{padding:12px;border:1px solid #e2e7ee;border-radius:10px;background:#fafbfc}.inline-admin-form{display:flex;gap:8px;margin-top:8px}.inline-admin-form input{min-width:0}.result-admin-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.result-admin-actions form{margin:0}.finalized-badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#e7f6ec;color:#176b3a;font-size:.78rem;font-weight:800}.alert.success{background:#edf9f0;border-color:#b9d7c3;color:#176b3a}.alert.warn{background:#fff8e8;border-color:#ead9a2;color:#6b4e00}@media(max-width:760px){.result-admin-grid{grid-template-columns:1fr}.inline-admin-form{flex-direction:column}.result-admin-actions{align-items:stretch}.result-admin-actions>*{width:100%}.result-admin-actions .btn,.result-admin-actions button{width:100%;text-align:center}}
