@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#20352e;background:#f6f7f2;font-size:15px}*{box-sizing:border-box}body{margin:0}header{height:88px;display:flex;align-items:center;gap:30px;border-bottom:1px solid #dce2d9;padding:0 5%}header a:last-child{margin-left:auto}a{color:#234e3f;text-decoration:none}.brand{font:800 28px Manrope;background:#204f3e;color:white;border-radius:12px;padding:8px 14px}.brand span{background:#f6f7f2;color:#20352e;margin-left:12px;padding:10px}.tag,.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:#668172}main{max-width:1280px;margin:auto;padding:48px 5%}.welcome{max-width:670px;margin:45px auto}h1{font:800 clamp(36px,5vw,62px)/1.13 Manrope;letter-spacing:-2px;margin:22px 0}h2{font:800 25px Manrope}h3{font:700 18px Manrope}p{line-height:1.7;color:#64756c}small{display:block;line-height:1.6;color:#738078;margin-top:20px}form{display:grid;gap:18px}label{display:grid;gap:8px;font-weight:600}input,textarea,select{width:100%;font:inherit;padding:13px;border:1px solid #d6dfd5;border-radius:8px;background:white;color:inherit}textarea{min-height:110px;resize:vertical}button,.button{font:600 14px 'DM Sans';border:0;border-radius:8px;background:#245c46;color:white;padding:13px 20px;cursor:pointer}button:hover{background:#183e30}button:disabled{opacity:.5;cursor:wait}.secondary{background:#e6ece3;color:#294a3b}.danger{background:#96463a}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.toolbar h1{font-size:36px;margin-right:auto}.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{background:white;border:1px solid #e0e5db;border-radius:16px;padding:26px;margin-bottom:24px}.section-editor{border-top:1px solid #e5e9e1;padding:20px 0;display:grid;gap:12px}.section-editor textarea{font-family:monospace}.badge{display:inline-block;padding:5px 10px;border-radius:30px;font-size:12px;background:#eaf0e6;color:#3b6846}.blocked{background:#fbe8df;color:#9a4935}.working{background:#deeee5}.submitted{background:#e1e8f8;color:#435a95}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:14px 8px;border-bottom:1px solid #edf0e9;font-size:13px}.scroll{overflow:auto}iframe{width:100%;height:480px;border:1px solid #d9e1d6;border-radius:12px;background:white}canvas{border:1px solid #cad6c7;max-width:100%;touch-action:none;background:white;border-radius:8px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#263e33;color:white;padding:14px 24px;border-radius:10px;display:none;z-index:100}.overlay{position:fixed;inset:0;background:#f6f7f2;z-index:30;display:grid;place-content:center;text-align:center;padding:30px}.hidden{display:none!important}.note{background:#edf0e5;border-left:3px solid #89a279;padding:15px;line-height:1.6}.exam-head{display:flex;align-items:center;gap:15px;margin-bottom:25px}.exam-head h2{margin-right:auto}.question-builder{display:grid;gap:12px}.question-builder select{max-width:250px}@media(max-width:800px){.grid{grid-template-columns:1fr}header{gap:12px}.tag{display:none}main{padding:24px 5%}.welcome{margin-top:25px}td button{padding:8px}}
input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:#245c46;flex-shrink:0}input[type=range]{padding:0;accent-color:#245c46}body:has(.admin-layout) main{max-width:1700px;padding:32px 3%}.dashboard-heading{margin-bottom:24px}.dashboard-heading>div{margin-right:auto}.admin-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px}.exam-library{padding:18px;align-self:start;position:sticky;top:20px}.exam-library>button{width:100%}.exam-item{display:grid;gap:10px;text-align:left;width:100%;margin:10px 0;background:#f5f7f0;color:#294a3b;padding:14px}.exam-item:hover,.exam-item.selected{background:#e5eee0;outline:1px solid #7e9e7d}.exam-item small{margin:0;font-weight:400}.exam-item .badge{justify-self:start}.admin-main{min-width:0}.tabs{display:flex;gap:8px;margin-bottom:16px}.tabs button{background:transparent;color:#607365;border-radius:0;border-bottom:3px solid transparent}.tabs button.active{color:#245c46;border-color:#245c46}.editor-workspace{display:grid;grid-template-columns:245px minmax(0,1fr);border-top:1px solid #e2e8dc;margin:12px -8px;padding-top:22px;gap:24px}.question-sidebar{border-right:1px solid #e2e8dc;padding-right:18px}.question-sidebar>small{margin:0 0 18px}.question-sidebar>label{margin-top:20px}.question-sidebar>button{width:100%;margin-top:12px}.question-list-item{display:flex;align-items:center;border:1px solid #e1e7db;border-radius:9px;margin:10px 0;background:#f8f9f5;overflow:hidden;min-width:0}.question-list-item.selected{border-color:#7d9d7d;background:#edf3e7}.question-select{background:transparent!important;color:#294a3b;flex:1;text-align:left;padding:12px 4px;min-width:0}.question-select strong{display:block;font-size:12px;overflow-wrap:anywhere}.question-select small{margin:5px 0 0;font-size:10px}.drag-handle{cursor:grab;font-size:24px;padding:8px;color:#91a28d}.reorder{display:grid;gap:4px;padding:5px}.reorder button{padding:4px 7px;background:transparent;color:#56704c}.drop-target{outline:2px dashed #245c46!important;background:#edf4e5!important}.question-editor{min-width:0}#question-fields{display:grid;gap:16px}.points-field{max-width:90px}.format-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.format-controls label{font-size:12px;flex:1;min-width:125px}.check-label{display:flex;align-items:center}.order-settings{padding:16px;background:#f3f6ed;border-radius:10px;display:flex;flex-wrap:wrap;gap:20px}.order-settings label{display:flex;align-items:center;font-size:13px}.option-row{display:flex;gap:8px;align-items:center;margin:10px 0}.option-row input{min-width:0}.option-row button{padding:8px 10px}.option-row .drag-handle{padding:2px}.image-settings{padding:20px;border:1px solid #e1e7db;border-radius:12px;display:grid;gap:14px}.image-settings h3{margin:0}.optional{font-size:12px;color:#83907d;font-weight:400}.image-drop{border:2px dashed #cdd9c6;border-radius:10px;min-height:145px;display:grid;place-content:center;text-align:center;padding:20px;cursor:pointer;background:#fafbf7}.image-drop span{font-size:30px;color:#6d8b61}.image-drop small{margin:5px 0}.image-drop img{max-width:100%;max-height:170px;object-fit:contain}.preview-title{display:flex;align-items:center;justify-content:space-between;margin:32px 0 15px;font-size:12px;color:#6d8165}#question-preview{background:#f4f6ed;padding:18px;border-radius:12px}.question-card{margin:0 0 24px}.question-meta{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:#84947d;margin-bottom:20px}.question-layout{display:flex;flex-direction:column;gap:18px;margin-bottom:24px}.question-text{white-space:pre-wrap;line-height:1.7;overflow-wrap:anywhere}.question-image{margin:0;width:var(--image-width);align-self:center}.question-image img{display:block;width:100%;max-height:400px;object-fit:var(--image-fit);border-radius:10px}.question-image:has(img){overflow:hidden}.question-image[style*="cover"] img{aspect-ratio:16/9}.image-left,.image-right{flex-direction:row;align-items:center}.image-left .question-image,.image-right .question-image{width:min(var(--image-width),60%);flex-shrink:0}.image-left .question-text,.image-right .question-text{flex:1;min-width:0}.image-right .question-image{order:2}.image-bottom .question-image{order:2}.answer-options{display:grid;gap:10px}.answer-option{display:flex;gap:12px;align-items:center;border:1px solid #dce4d6;padding:14px;border-radius:9px;font-weight:400;cursor:pointer}.answer-option:has(input:checked){background:#edf5e6;border-color:#749c63}.question-card textarea{min-height:140px}.question-card canvas{width:100%;display:block;margin-bottom:12px}.roster-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:24px}.code{font-family:monospace;font-size:16px;letter-spacing:3px}.exam-instructions{white-space:pre-wrap}#join input{text-transform:uppercase;letter-spacing:4px}#exam-editor>label textarea{min-height:75px}#signature{display:block;margin-bottom:16px}.saved-files{display:flex;flex-wrap:wrap;gap:12px}@media(max-width:1100px){.admin-layout{grid-template-columns:190px minmax(0,1fr)}.editor-workspace{grid-template-columns:190px minmax(0,1fr)}.card{padding:20px}.format-controls label{min-width:100px}.option-row{flex-wrap:wrap}.option-row input{flex:1}}@media(max-width:850px){.admin-layout{grid-template-columns:1fr}.exam-library{position:static}#exam-library-list{display:flex;overflow:auto;gap:12px}.exam-item{min-width:180px;max-width:230px}.editor-workspace{grid-template-columns:1fr}.question-sidebar{border-right:0;border-bottom:1px solid #e2e8dc;padding-bottom:20px}#question-list{display:flex;gap:10px;overflow:auto}.question-list-item{min-width:200px}.roster-grid{grid-template-columns:1fr}.image-left,.image-right{flex-direction:column}.image-right .question-image{order:0}.image-left .question-image,.image-right .question-image{width:var(--image-width)}header a{font-size:12px}}
#question-list{max-height:560px;overflow-y:auto}@media(max-width:850px){#question-list{max-height:none}}
form{min-width:0;grid-template-columns:minmax(0,1fr)}label,.question-sidebar,.editor-workspace{min-width:0}.question-sidebar,#question-list{max-width:100%}#question-list{min-width:0}@media(max-width:850px){.editor-workspace{grid-template-columns:minmax(0,1fr)}.admin-layout{grid-template-columns:minmax(0,1fr)}}
.rubric-settings{border-top:1px solid #dce4d5;padding-top:24px}.rubric-image{display:block;width:100%;height:auto;margin:20px auto}.rubric-canvas{display:block;max-width:100%;margin:18px auto;height:auto}.rubric-card h3{margin-top:0}.correction-main{max-width:1700px}.correction-main>.toolbar>div{margin-right:auto}.correction-main h1{font-size:36px}.correction-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:22px}.correction-sidebar{align-self:start;position:sticky;top:15px;min-width:0}#paper-list{max-height:65vh;overflow:auto}.correction-workspace{min-width:0}.correction-workspace .toolbar{gap:8px}.correction-workspace button{padding:10px 13px}.correction-workspace label{font-size:12px;max-width:95px}.correction-workspace label input,.correction-workspace label select{padding:8px}#correction-tools .active{background:#ad2222;color:white}.page-controls{margin:18px 0}#pdf-scroll{overflow:auto;background:#e6e9e2;min-height:400px;max-height:75vh;padding:18px;border-radius:10px}#pdf-stage{position:relative;margin:0 auto;box-shadow:0 3px 18px #0002}#pdf-stage canvas{position:absolute;inset:0;max-width:none;border:0;border-radius:0;background:transparent}#paper-canvas{background:white!important}#annotation-canvas{cursor:crosshair;touch-action:none}#empty-paper{text-align:center;padding:80px 20px}dialog{border:1px solid #d5dfcc;border-radius:14px;max-width:520px;width:90%;padding:25px}dialog::backdrop{background:#20352e66}#annotation-text{color:#d90000}#cache-status{font-size:12px}.correction-sidebar .exam-item{overflow-wrap:anywhere}.correction-layout button:disabled{cursor:default}@media(max-width:850px){.correction-layout{grid-template-columns:minmax(0,1fr)}.correction-sidebar{position:static}#paper-list{display:flex;gap:12px;max-height:none}.correction-sidebar .exam-item{min-width:160px;max-width:230px}.correction-main h1{font-size:28px}#pdf-scroll{max-height:65vh}}
.rubric-sheet{margin:24px 0 36px}.rubric-page-label{font-size:12px;color:#70816a}.rubric-sheet canvas{box-shadow:0 2px 8px #0001}.exam-trash{border-top:1px solid #dce4d6;margin-top:18px;padding-top:15px}.exam-trash summary{cursor:pointer;color:#7b504b}.exam-trash>div{padding:8px 0}.exam-trash p{font-size:12px}
