:root{--primary:#0f9b7a;--primary-hover:#0d8368;--primary-soft:#e6f5f0;--primary-dark:#0b6b55;--bg:#f2f6f5;--surface:#fff;--text:#12211d;--text-muted:#5f7269;--border:#d6e2dd;--danger:#d64545;--warning-bg:#fff7e6;--warning-text:#93610c;--shadow:0 1px 3px #12211d0f, 0 8px 24px #12211d12;--radius:14px}*{box-sizing:border-box}@media (width>=768px){html{font-size:17px}.card{--pad-y:2.4rem;--pad-x:2.2rem;max-width:700px}.card.exam-room{max-width:940px}.question-body{font-size:1.28rem}}html,body{overflow-x:hidden}body{background:radial-gradient(50rem 26rem at 110% -10%, #0f9b7a1a, transparent 60%), radial-gradient(40rem 22rem at -10% 110%, #0f9b7a14, transparent 60%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}.app{justify-content:center;align-items:flex-start;min-height:100dvh;padding:clamp(.75rem,6vh,4rem) 1rem 3rem;display:flex}.card{--pad-y:2rem;--pad-x:1.75rem;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad-y) var(--pad-x);width:100%;min-width:0;max-width:660px}.meta-pills{justify-content:center;gap:.6rem;margin-bottom:1.25rem;display:flex}.pill{background:var(--primary-soft);color:var(--primary-dark);border-radius:999px;padding:.4rem .95rem;font-size:.88rem;font-weight:700}.start-btn{width:100%;margin-top:1.25rem;padding:1rem;font-size:1.05rem}.timer-notice{border:1px solid #f0dcdc;border-left:4px solid var(--danger);color:#4a3535;background:#fdf7f7;border-radius:12px;gap:.9rem;padding:1.05rem 1.15rem;font-size:.92rem;line-height:1.75;display:flex}.timer-notice-icon{width:36px;height:36px;color:var(--danger);background:#fdeaea;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.timer-notice p{margin:0 0 .6rem}.timer-notice p:last-child{margin-bottom:0}.timer-notice p[lang=ml]{line-height:2}.card.center{text-align:center}h1{letter-spacing:-.02em;margin:0 0 1rem;font-size:1.35rem;font-weight:700}.brand-head{text-align:center;margin:calc(-1 * var(--pad-y)) calc(-1 * var(--pad-x)) 1.6rem;border-radius:var(--radius) var(--radius) 0 0;background:linear-gradient(135deg,#12a181 0%,#0b6b55 60%,#094f40 100%);flex-direction:column;align-items:center;gap:.9rem;padding:1.9rem 1.25rem;display:flex}.brand-head h1{color:#fff;margin:0}.hero-logo{background:#fff;border-radius:18px;justify-content:center;align-items:center;width:74px;height:74px;padding:7px;display:inline-flex;box-shadow:0 6px 18px #06302659}.hero-logo img{object-fit:contain;border-radius:10px;max-width:100%;max-height:100%}form{flex-direction:column;gap:1rem;display:flex}label{color:#2c423a;flex-direction:column;gap:.4rem;font-size:.87rem;font-weight:600;display:flex}input,select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:10px;width:100%;padding:.75rem .9rem;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0f9b7a29}button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.85rem 1.4rem;font-family:inherit;font-size:1rem;font-weight:700;transition:background .15s}button:hover{background:var(--primary-hover)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{color:var(--text);background:#e8efec}button.secondary:hover{background:#dce7e2}a{color:var(--primary-dark);font-weight:600}.error{color:var(--danger);margin:0;font-size:.9rem}.notice{background:var(--warning-bg);color:var(--warning-text);border-radius:10px;padding:.85rem 1rem;font-size:.92rem}.hint{color:var(--text-muted);margin:0;font-size:.9rem}.instructions{color:var(--text-muted);margin-top:1.25rem;font-size:.92rem;line-height:1.7}.intro{color:#2c423a;margin-bottom:1.25rem;line-height:2}.intro p{margin:0 0 .9rem}.exam-header{background:var(--surface);z-index:5;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:.4rem 0;display:flex;position:sticky;top:0}.exam-header .q-count{color:var(--text-muted);font-size:.92rem;font-weight:700}.timer{font-variant-numeric:tabular-nums;color:var(--primary-dark);background:var(--primary-soft);border-radius:10px;padding:.3rem .75rem;font-size:1.25rem;font-weight:800}.timer-low{color:#fff;background:var(--danger);animation:1s ease-in-out infinite blink}@keyframes blink{50%{opacity:.75}}progress{appearance:none;background:#e3ece8;border:none;border-radius:3px;width:100%;height:6px;margin-bottom:1.25rem;overflow:hidden}progress::-webkit-progress-bar{background:#e3ece8}progress::-webkit-progress-value{background:var(--primary)}progress::-moz-progress-bar{background:var(--primary)}.question-body{margin:0 0 1.25rem;font-size:1.18rem;font-weight:600;line-height:1.9}.options{flex-direction:column;gap:.7rem;margin:0 0 1.5rem;display:flex}.option{border:1.5px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:row;align-items:center;gap:.85rem;padding:.95rem 1.1rem;font-size:1.02rem;font-weight:500;line-height:1.6;transition:border-color .12s,background .12s;display:flex;position:relative}.option:hover{border-color:var(--primary)}.option input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.opt-letter{border:1.5px solid var(--border);width:32px;height:32px;color:var(--text-muted);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.opt-text{min-width:0}.option.selected{border-color:var(--primary);background:var(--primary-soft)}.option.selected .opt-letter{background:var(--primary);border-color:var(--primary);color:#fff}.kbd-hint{margin-bottom:1rem;display:none}.exam-footer{justify-content:space-between;gap:.75rem;display:flex}.exam-footer button{min-width:120px}.register-number{background:var(--primary-soft);border:2px dashed var(--primary);border-radius:14px;flex-direction:column;gap:.35rem;margin:1.25rem 0;padding:1.4rem;display:flex}.register-number span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;font-size:.8rem;font-weight:700}.register-number strong{color:var(--primary-dark);letter-spacing:.02em;font-size:2.4rem}.student-chip{border:1px solid var(--border);background:#f7faf9;border-radius:12px;align-items:center;gap:.9rem;margin-bottom:1.25rem;padding:.9rem 1.1rem;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#1aa583,#0b6b55);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.05rem;font-weight:800;display:inline-flex}.student-chip-info{flex-direction:column;gap:.15rem;min-width:0;display:flex}.result-list{flex-direction:column;gap:.9rem;display:flex}.result-card{border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.2rem;display:flex}.result-main{flex-direction:column;gap:.3rem;min-width:0;display:flex}.result-exam{font-weight:700;line-height:1.5}.sheet-link{color:#6247c9;margin-top:.15rem;font-size:.88rem;font-weight:700;text-decoration:none}.sheet-link:hover{text-decoration:underline}.score-ring{flex-shrink:0;width:64px;height:64px;position:relative}.score-ring-text{color:var(--primary-dark);justify-content:center;align-items:center;font-size:1.05rem;font-weight:800;display:flex;position:absolute;inset:0}.score-ring-text em{color:var(--text-muted);margin-top:.35rem;font-size:.7rem;font-style:normal;font-weight:600}.mark-pill{background:var(--primary-soft);color:var(--primary-dark);letter-spacing:-.02em;border-radius:14px;flex-shrink:0;padding:.65rem 1.05rem;font-size:1.3rem;font-weight:800}.sheet-question{border-bottom:1px solid #e8efec;padding:1.1rem 0}.sheet-question .q{margin-bottom:.6rem;font-weight:600;line-height:1.8}.sheet-options{flex-direction:column;gap:.4rem;display:flex}.sheet-option{border:1px solid #0000;border-radius:8px;padding:.55rem .8rem;font-size:.95rem;line-height:1.6}.sheet-option.correct{background:var(--primary-soft);border-color:var(--primary);font-weight:600}.sheet-option.wrong-pick{border-color:var(--danger);background:#fdeaea}.sheet-tag{text-transform:uppercase;letter-spacing:.04em;margin-left:.5rem;font-size:.72rem;font-weight:800}.sheet-option.correct .sheet-tag{color:var(--primary-dark)}.sheet-option.wrong-pick .sheet-tag{color:var(--danger)}.score-banner{background:var(--primary-soft);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem 1.25rem;display:flex}.score-banner strong{color:var(--primary-dark);font-size:1.6rem}.center-text{text-align:center}.exam-subtitle{margin:-.5rem 0 1.25rem}.exam-list{flex-direction:column;gap:.9rem;display:flex}.exam-item{border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:.4rem;padding:1.35rem 1.2rem 1.1rem;display:flex;position:relative}.exam-item-info{flex-direction:column;gap:.25rem;min-width:0;display:flex}.exam-item-name{font-weight:700;line-height:1.5}.level-tag{color:#55636f;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;background:#eef1f4;border-radius:999px;margin-left:.5rem;padding:.15rem .5rem;font-size:.7rem;font-weight:800;display:inline-block}.status-tag{border:2px solid var(--surface);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .85rem;font-size:.88rem;font-weight:700;display:inline-flex;position:absolute;top:-15px;left:14px;box-shadow:0 1px 3px #12211d14}.status-tag i{background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite blink}.status-tag.open{background:var(--primary-soft);color:var(--primary-dark)}.status-tag.upcoming{color:#2b5fb8;background:#e7effc}.status-tag.results-out{color:#6247c9;background:#f0edfb}.exam-item-actions{flex-wrap:wrap;gap:.5rem;display:flex}.btn-link{background:var(--primary);color:#fff;white-space:nowrap;border-radius:9px;padding:.55rem 1rem;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-block}.btn-link:hover{background:var(--primary-hover)}.btn-link.register{color:#2b5fb8;background:#e7effc}.btn-link.register:hover{background:#d8e5f9}.btn-link.results{color:#6247c9;background:#f0edfb}.btn-link.results:hover{background:#e5e0f7}@media (width<=560px){.card{--pad-y:1.4rem;--pad-x:1.1rem}.exam-footer button{flex:1;min-width:0}.exam-item{margin-top:0;padding-top:1.1rem}.exam-item-actions{flex-wrap:nowrap;width:100%}.exam-item-actions .btn-link{text-align:center;flex:1;padding:.6rem .4rem;font-size:.85rem}.status-tag,.status-tag.open,.status-tag.upcoming,.status-tag.results-out{box-shadow:none;background:0 0;border:none;border-radius:0;order:-1;align-self:flex-start;margin:0 0 .4rem;padding:0;position:static}}.check-another{width:100%;margin-top:1.25rem}@media (width>=768px){.kbd-hint{display:block}}.exam-title{border-bottom:1px solid #e8efec;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.4rem;padding-bottom:.7rem;display:flex}.exam-title-name{min-width:0;font-size:.95rem;font-weight:700}.exam-title-meta{color:var(--text-muted);white-space:nowrap;font-size:.85rem;font-weight:600}.exam-title-left{flex-direction:column;gap:.15rem;min-width:0;display:flex}.exam-title-student{color:var(--text-muted);font-size:.83rem;font-weight:600}.exam-title-right{align-items:center;gap:.7rem;display:flex}.exit-btn{color:var(--danger);background:#fdeaea;border-radius:8px;padding:.35rem .85rem;font-size:.85rem}.exit-btn:hover{background:var(--danger);color:#fff}.modal-overlay{z-index:50;background:#0f1e1a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:14px;width:100%;max-width:420px;padding:1.5rem;box-shadow:0 16px 50px #0a19144d}.modal h2{margin:0 0 .6rem;font-size:1.15rem}.modal p{color:var(--text-muted);margin:0 0 1.25rem;font-size:.95rem;line-height:1.7}.modal-actions{justify-content:flex-end;gap:.7rem;display:flex}.danger-btn{background:var(--danger)}.danger-btn:hover{background:#b83a3a}.qnav{flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;display:flex}.qnav-chip{border:1.5px solid #0000;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:.85rem;font-weight:700;transition:transform .1s;display:inline-flex}.qnav-chip:hover{transform:scale(1.08)}.qnav-chip.done{background:var(--primary-soft);color:var(--primary-dark);border-color:#b9dfd2}.qnav-chip.done:hover{background:#d5eee5}.qnav-chip.todo{color:#b05252;background:#fdf1f1;border-color:#f0d4d4}.qnav-chip.todo:hover{background:#f9e3e3}.qnav-chip.current{box-shadow:0 0 0 2.5px var(--primary)}@media (width<=560px){.qnav{scrollbar-width:none;flex-wrap:nowrap;margin-left:-4px;margin-right:-4px;padding:4px 4px .35rem;overflow-x:auto}.qnav::-webkit-scrollbar{display:none}}button,.btn-link{justify-content:center;align-items:center;gap:.45rem;display:inline-flex}.timer{align-items:center;gap:.4rem;display:inline-flex}.complete-icon{color:var(--primary);margin-bottom:.75rem}.complete-card .brand-head{padding:2.3rem 1.25rem}.complete-icon{color:var(--primary);margin:.75rem 0 1rem}.complete-msg{margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.complete-card .hint{margin-bottom:1.5rem}.complete-results-btn{width:100%;padding:.85rem 1rem;font-size:1rem}.info-notice{text-align:left;border:1px solid var(--border);border-left:4px solid var(--primary);background:#f7faf9;border-radius:12px;align-items:flex-start;gap:.85rem;margin-top:1rem;padding:1rem 1.1rem;display:flex}.info-notice-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.info-notice p{color:#33473f;margin:0;font-size:.93rem;line-height:1.7}
