:root{font-family:'Segoe UI',Arial,sans-serif;color:#24344c;background:#f3f5f9;font-size:15px;font-synthesis:none;--primary:#245caa;--ink:#173963;--muted:#6f7d91;--line:#dfe5ee;--soft:#f5f7fb;--success:#147a55}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}h1,h2,h3,p{margin-top:0}h1{font-size:1.8rem;font-weight:650;letter-spacing:-.5px;margin-bottom:8px}h2{font-size:1.17rem;font-weight:650}h3{font-size:1.04rem}p{line-height:1.6}small,.small{font-size:.87rem}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:1.2px;font-size:.78rem;font-weight:700;color:var(--muted);margin:0 0 10px}.brand{display:flex;align-items:center;gap:10px;font-size:1.3rem;font-weight:700;letter-spacing:-.4px}.brand svg{width:30px;height:30px}.shell{min-height:100vh;display:grid;grid-template-columns:228px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:#fff;padding:28px 18px;display:flex;flex-direction:column}.sidebar .brand{padding:0 10px 30px}.sidebar .eyebrow{color:#9db1cc;padding:0 13px;margin-top:10px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{display:flex;align-items:center;gap:12px;background:none;color:#c7d4e7;border:0;border-radius:7px;padding:12px 13px;text-align:left;font-size:.95rem}.nav button:hover,.nav button.active{background:#2a4c75;color:#fff}.icon{width:19px;height:19px;flex-shrink:0}.sidebar-footer{margin-top:auto;padding:18px 10px 0;border-top:1px solid #ffffff20}.sidebar-footer p{margin:4px 0;color:#b3c5dc;font-size:.85rem}.workspace{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar-label{color:var(--muted);font-size:.92rem}.identity{display:flex;align-items:center;gap:10px}.avatar{width:35px;height:35px;border-radius:50%;background:#e9f0fc;color:var(--primary);display:grid;place-items:center;font-weight:650}.content{padding:32px 36px;max-width:1460px;margin:auto}.pagehead{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.pagehead p{margin-bottom:0;color:var(--muted)}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{justify-content:space-between}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:9px 15px;border:1px solid #d5deea;border-radius:6px;background:#fff;color:#34455e;font-weight:600;text-decoration:none;white-space:nowrap}.btn:hover{background:#f0f4fa}.btn.primary{background:var(--primary);border-color:var(--primary);color:white}.btn.primary:hover{background:#1b4d94}.btn.danger{color:#b63535;border-color:#e9bebe;background:#fff8f8}.btn.ghost{border-color:transparent;background:transparent}.btn.small{min-height:32px;padding:6px 10px;font-size:.87rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stat,.card{background:#fff;border:1px solid var(--line);border-radius:9px}.stat{padding:20px;display:flex;gap:14px;align-items:center}.stat-icon{width:42px;height:42px;background:#edf3fe;color:#3d6da9;border-radius:9px;display:grid;place-items:center}.stat strong{font-size:1.6rem;display:block;font-weight:650}.stat span{font-size:.9rem;color:var(--muted)}.card-header{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;border-bottom:1px solid var(--line);gap:12px}.card-header h2{margin:0}.card-body{padding:22px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{background:#f8f9fc;color:#6a788b;font-size:.82rem;letter-spacing:.3px;font-weight:600;padding:13px 20px;white-space:nowrap}td{padding:15px 20px;border-top:1px solid #eef1f6;font-size:.94rem}td strong{font-weight:600}td .muted{display:block;font-size:.85rem;margin-top:5px}tr:hover td{background:#fbfcfe}.badge{display:inline-flex;padding:4px 9px;border-radius:5px;background:#edf1f6;color:#627185;font-size:.8rem;font-weight:600;white-space:nowrap}.badge.live,.badge.verified{background:#e7f5ed;color:#18784e}.badge.entry{background:#fff3dc;color:#9c6e18}.badge.closed{background:#eaf0fe;color:#4966a7}.toolbar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.toolbar input{max-width:350px}.empty{text-align:center;padding:46px 24px;color:var(--muted)}.empty .icon{width:36px;height:36px;color:#99adc9;margin-bottom:12px}.empty h3{color:#41536f;margin-bottom:8px}.empty p{max-width:450px;margin:0 auto 16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.notice{padding:13px 16px;background:#eef4fd;border:1px solid #d4e1f5;border-radius:6px;color:#375b87;font-size:.92rem;line-height:1.6;margin-bottom:18px}.notice.warning{background:#fff7e8;border-color:#efd9ad;color:#89641f}.notice.error{background:#fff0f0;border-color:#f0cccc;color:#a43d3d}.notice.success{background:#eaf7ef;border-color:#c7e8d1;color:#277246}label.field{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:.9rem;margin-bottom:17px}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid #ced8e6;border-radius:6px;background:#fff;color:#24344c;padding:10px 12px;min-height:41px}input:focus,textarea:focus,select:focus{border-color:#4f82cb;box-shadow:0 0 0 3px #245caa12;outline:0}textarea{resize:vertical;min-height:95px}input[type=checkbox],input[type=radio]{accent-color:var(--primary);width:17px;height:17px;flex-shrink:0}label.check{display:flex;align-items:center;gap:9px;font-size:.94rem;line-height:1.5;margin:12px 0;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:18px;border-top:1px solid var(--line);margin-top:12px}.form-error{color:#b33131;background:#fff1f1;padding:11px 13px;border-radius:5px;margin-bottom:14px;font-size:.92rem}.form-error:empty{display:none}dialog{width:min(670px,calc(100% - 32px));max-height:90vh;padding:0;border:0;border-radius:10px;box-shadow:0 24px 90px #13294640;color:#24344c}dialog.wide{width:min(940px,calc(100% - 32px))}dialog::backdrop{background:#172c4d70;backdrop-filter:blur(2px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}.modal-head h2{margin:0}.modal-body{padding:23px 24px}.modal-body .grid2{gap:16px}.close{font-size:1.4rem;border:0;background:transparent;color:#6e7b8f;cursor:pointer;line-height:1}.question-pick{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:6px;margin-bottom:9px;cursor:pointer}.question-pick:has(input:checked){background:#edf4ff;border-color:#769ddd}.question-pick p{margin:0 0 6px;line-height:1.5}.question-pick input{margin-top:3px}.question-list{max-height:340px;overflow:auto;margin-bottom:14px}.qcard{padding:20px;border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:14px}.qcard h3{line-height:1.6}.qcard img{max-width:100%;max-height:250px;object-fit:contain;display:block;margin:14px 0}.option-preview{margin:8px 0;padding:10px 12px;background:#f5f7fa;border-radius:5px;font-size:.93rem}.option-preview.correct{background:#e8f5ec;color:#246a45}.code-box{background:#edf3fd;border:1px solid #cdddf4;padding:24px;border-radius:8px;text-align:center}.code{font-size:2.5rem;letter-spacing:8px;font-weight:700;font-variant-numeric:tabular-nums;color:#224f8f}.code-box p{margin:10px 0 0;font-size:.9rem}.test-panel{display:grid;grid-template-columns:1fr 290px;gap:22px;margin-bottom:22px}.test-meta{display:flex;gap:24px;flex-wrap:wrap;margin:22px 0}.test-meta strong{display:block;margin-top:5px}.tabline{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabline button{padding:12px 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted)}.tabline button.active{color:var(--primary);border-bottom-color:var(--primary)}.auth{min-height:100vh;display:grid;grid-template-columns:42% 58%}.auth-aside{background:var(--ink);color:#fff;padding:55px;display:flex;flex-direction:column;justify-content:space-between}.auth-aside h1{font-size:2.7rem;line-height:1.2;max-width:350px;font-weight:600}.auth-aside p{color:#c2d2e8;max-width:330px}.auth-steps{display:grid;gap:17px;margin-top:30px}.auth-step{display:flex;align-items:center;gap:12px;color:#d2dff0}.step-no{width:27px;height:27px;border:1px solid #7796bb;border-radius:50%;display:grid;place-items:center;font-size:.83rem}.auth-main{display:grid;place-items:center;padding:36px}.auth-form{width:100%;max-width:420px}.auth-form h1{font-size:1.8rem}.auth-form .btn.primary{width:100%;margin-top:8px}.auth-footer{font-size:.87rem;color:var(--muted);margin-top:25px;line-height:1.6}.student-shell{max-width:1040px;margin:auto;padding:24px}.student-header{padding:16px 24px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;align-items:center}.student-card{padding:26px;margin-bottom:20px}.join-form{display:flex;gap:10px;max-width:440px;margin-top:20px}.join-form input{letter-spacing:5px;font-size:1.2rem}.test-tile{padding:22px;margin-bottom:14px}.waiting{padding:50px 26px;text-align:center}.waiting .avatar{margin:0 auto 18px;width:65px;height:65px;font-size:1.7rem}.waiting h1{font-size:1.5rem}.student-id{background:#edf3fc;padding:18px;border-radius:7px;max-width:350px;margin:24px auto}.student-id strong{font-size:1.3rem;display:block;margin-bottom:7px}.exam-layout{display:grid;grid-template-columns:1fr 230px;gap:20px}.exam-top{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:22px}.timer{font-size:1.5rem;font-weight:650;color:var(--primary);font-variant-numeric:tabular-nums}.answer-option{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid #d8e0ec;border-radius:7px;margin:10px 0;cursor:pointer;line-height:1.5}.answer-option:has(input:checked){background:#eaf2ff;border-color:#5d88c7;color:#1f4f8f}.question-nav{display:flex;gap:8px;flex-wrap:wrap}.question-nav button{width:35px;height:35px;border:1px solid var(--line);border-radius:5px;background:white}.question-nav button.answered{background:#e7f5ee;color:#18784e;border-color:#b9ddca}.question-nav button.current{border:2px solid var(--primary);color:var(--primary)}.progress{height:5px;background:#e6ecf4;border-radius:4px;margin:16px 0;overflow:hidden}.progress progress{width:100%;height:100%;display:block;accent-color:var(--primary)}.score{font-size:3rem;color:var(--primary);font-weight:650;margin:16px 0}.loading{display:grid;place-items:center;min-height:70vh;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#173963;color:white;padding:13px 22px;border-radius:7px;z-index:10;box-shadow:0 4px 20px #0002;max-width:90vw;display:none}#toast.visible{display:block}.hidden{display:none!important}.option-editor{display:grid;grid-template-columns:26px 1fr;align-items:center;gap:8px;margin-bottom:9px}.chipline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.credential{font-family:Consolas,monospace;user-select:all;background:#edf3fd;padding:5px 8px;border-radius:4px}.help{font-size:.88rem;color:var(--muted);line-height:1.5}.mobile-brand{display:none}button:focus-visible,a:focus-visible{outline:3px solid #87adf0}pre{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1050px){.content{padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.test-panel{grid-template-columns:1fr}.code-box{max-width:none}.grid3{grid-template-columns:1fr 1fr}.auth-aside{padding:35px}.auth-aside h1{font-size:2.2rem}}
@media(max-width:760px){.shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:12px 15px}.sidebar .brand,.sidebar .eyebrow,.sidebar-footer{display:none}.nav{flex-direction:row;overflow-x:auto;gap:4px}.nav button{padding:10px;font-size:.88rem;white-space:nowrap}.nav .icon{display:none}.topbar{height:auto;min-height:64px;padding:12px 18px}.topbar-label{display:none}.mobile-brand{display:block;color:var(--ink);font-weight:700}.content{padding:22px 16px}.pagehead{align-items:flex-start;flex-direction:column;margin-bottom:20px}.pagehead .row{width:100%}h1{font-size:1.55rem}.stats{gap:10px;margin-bottom:20px}.stat{padding:14px;gap:10px}.stat-icon{display:none}.stat strong{font-size:1.4rem}.stat span{font-size:.84rem}.grid2,.grid3{grid-template-columns:1fr}.card-header{padding:16px;flex-wrap:wrap}.card-body{padding:17px}.auth{display:block}.auth-aside{padding:22px}.auth-aside>div:nth-child(2),.auth-aside>p{display:none}.auth-main{padding:32px 22px}.modal-body{padding:20px}.modal-head{padding:18px 20px}.modal-body .grid2{gap:0}.student-header{padding:14px 16px}.student-header .brand{font-size:1.12rem}.student-shell{padding:18px 14px}.student-card{padding:20px}.exam-layout{display:flex;flex-direction:column-reverse}.exam-layout aside .help{display:none}.exam-layout aside .card-body{padding:14px}.exam-top{align-items:flex-start}.timer{font-size:1.25rem;white-space:nowrap}.qcard{padding:17px}.join-form{flex-wrap:wrap}.join-form input{flex:1;min-width:150px}.question-nav{gap:6px}.question-nav button{width:32px;height:32px}.test-meta{gap:18px}.form-actions{flex-wrap:wrap}.student-header .identity .muted{display:none}.code{font-size:2rem}.toolbar input{max-width:none}}
.spaced{margin-top:20px}
/* Delivery Register visual language */
@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(https://fonts.gstatic.com/s/manrope/v20/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2')}
:root{font-family:Manrope,'Segoe UI',Arial,sans-serif;color:#17332f;background:#f3f7f6;font-size:16px;--primary:#087565;--ink:#17332f;--muted:#69807c;--line:#dce8e5;--soft:#f3f7f6;--success:#087565}
body{background:#f3f7f6;color:#17332f}h1{font-weight:700}h2,h3{font-weight:700}.eyebrow{font-weight:800}.brand{font-weight:800}.sidebar{background:#17332f}.sidebar .eyebrow{color:#98b1ac}.sidebar-footer p{color:#bcd0cc}.nav button{color:#c8d9d6;border-radius:10px}.nav button:hover,.nav button.active{background:#254942;color:#fff}.topbar{border-color:#dce8e5}.avatar,.stat-icon{background:#e4f2ef;color:#087565}.card,.stat{border-color:#dce8e5;border-radius:14px}.card{box-shadow:0 8px 28px rgba(22,65,58,.045)}.stat-icon{border-radius:11px}.btn{min-height:43px;padding:11px 16px;border-color:#cbdad7;border-radius:11px;color:#24443e;font-weight:700;font-size:.9rem}.btn:hover{background:#edf5f3}.btn.primary{background:#087565;border-color:#087565;color:#fff}.btn.primary:hover{background:#06675a}.btn.danger{color:#a02a22;border-color:#f1cbc8;background:#fff1f0}.btn.small{min-height:36px;padding:8px 12px}.badge{border-radius:8px;background:#edf3f2;color:#58716c;padding:5px 9px}.badge.live,.badge.verified{background:#dff1ec;color:#087565}.badge.entry{background:#fff4dc;color:#936414}.badge.closed{background:#e9f2f0;color:#376d64}th{background:#f6f9f8;color:#607773}tr:hover td{background:#f8fbfa}.notice{background:#eaf5f2;border-color:#cce5df;color:#35675f;border-radius:10px}.notice.warning{background:#fff7e7;border-color:#edd9ae;color:#85621f}.notice.error,.form-error{background:#fff1f0;color:#a02a22;border-color:#f1cbc8;border-radius:10px}.notice.success{background:#e6f4ef;border-color:#c6e4da;color:#087565}label.field{font-size:.82rem;font-weight:700;gap:8px}input:not([type=checkbox]):not([type=radio]),select,textarea{border-color:#cbdad7;border-radius:11px;padding:13px 14px;min-height:48px;color:#17332f}input:focus,textarea:focus,select:focus{border-color:#087565;box-shadow:0 0 0 3px rgba(8,117,101,.11)}input[type=checkbox],input[type=radio]{accent-color:#087565}.question-pick{border-color:#dce8e5;border-radius:11px;padding:15px}.question-pick:hover{background:#f7faf9}.question-pick:has(input:checked){background:#e7f3f0;border-color:#73ab9f}.qcard{border-color:#dce8e5;border-radius:13px;box-shadow:0 5px 20px rgba(22,65,58,.035)}.option-preview{background:#f3f7f6;border-radius:9px}.option-preview.correct{background:#e1f2ed;color:#087565}.answer-option{border-color:#cbdad7;border-radius:11px}.answer-option:hover{background:#f7faf9}.answer-option:has(input:checked){background:#e3f2ee;border-color:#5c9c8f;color:#086457}.question-nav button{border-color:#dce8e5;border-radius:8px}.question-nav button.answered{background:#dff1ec;color:#087565;border-color:#add6cc}.question-nav button.current{border-color:#087565;color:#087565}.progress progress{accent-color:#087565}.timer,.score,.code{color:#087565}.code-box{background:#edf6f4;border-color:#cbe2dd;border-radius:14px}.student-id{background:#edf6f4;border-radius:11px}dialog{border:1px solid #dce8e5;border-radius:20px;box-shadow:0 20px 55px rgba(22,65,58,.16)}dialog::backdrop{background:rgba(23,51,47,.58)}.modal-head{padding:21px 25px}.modal-body{padding:24px 25px}.auth{display:grid;place-items:center;min-height:100vh;background:#f3f7f6;padding:24px}.auth-aside{display:none}.auth-main{display:block;width:min(420px,100%);padding:0}.auth-form{max-width:none;background:#fff;border:1px solid #dce8e5;border-radius:20px;padding:34px;box-shadow:0 20px 55px rgba(22,65,58,.11)}.auth-form:before{content:'PX';width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#087565;color:#fff;font-weight:800;margin-bottom:22px}.auth-form h1{font-size:25px;margin:0 0 7px}.auth-form>p.muted{margin:0 0 26px}.auth-form label.field{margin:17px 0 7px}.auth-form .btn.primary{margin-top:22px;min-height:49px}.student-header{border-color:#dce8e5}
.badge.blocked{background:#fff0ef;color:#a02a22}
.bulk-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:12px 22px;border-bottom:1px solid var(--line);background:#fbfdfc}.bulk-actions label.check{margin:0}.student-select{display:flex;align-items:center;gap:11px}.student-select>input{flex:0 0 auto}
.class-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px;border:1px solid var(--line);border-radius:11px;max-height:230px;overflow:auto}.class-picker label.check{margin:0;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff}.class-picker label.check:has(input:checked){background:#e7f3f0;border-color:#73ab9f}.class-picker small{display:block;color:var(--muted);margin-top:3px}@media(max-width:700px){.class-picker{grid-template-columns:1fr}}
@media(prefers-reduced-motion:no-preference){dialog[open]{animation:appear .15s ease-out}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
.auth{grid-template-columns:1fr}
.people-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:24px;padding-bottom:10px}.people-tabs button{display:flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:10px;padding:11px 16px;background:transparent;color:var(--muted);font-weight:700}.people-tabs button:hover{background:#eaf3f0;color:var(--ink)}.people-tabs button[aria-selected=true]{background:#e0f0eb;border-color:#b9d9d0;color:var(--primary)}.people-tab-count{min-width:25px;padding:3px 7px;border-radius:6px;background:#fff;font-size:.8rem;font-variant-numeric:tabular-nums}.people-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.people-filters label.field{flex:1 1 150px;min-width:0;margin:0}.people-filters label.people-search{flex:2 1 240px}.people-filters>.btn{min-height:48px}.people-filters select{max-width:100%}@media(max-width:500px){.people-tabs{gap:3px}.people-tabs button{gap:6px;padding:10px 9px;font-size:.85rem}.people-filters label.people-search{flex-basis:100%}.people-filters>.btn{width:100%}}
