:root{--green:#176348;--green2:#23835f;--ink:#172b25;--muted:#65766e;--line:#d8e5de;--bg:#f4f8f5;--red:#a12f36;--amber:#a36508}
*{box-sizing:border-box}body{margin:0;font:15px/1.55 system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}body>header{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:14px max(20px,calc((100vw - 1180px)/2));gap:12px}.logo{background:var(--green);color:#fff;padding:8px 10px;border-radius:10px;font-weight:900;font-size:19px}.logodot{color:#bde3bc;font-size:10px;vertical-align:top}.headertext{font-weight:800}.headertext span{color:var(--green2)}.headertrail{margin-left:auto;color:var(--muted);font-size:13px}.wrap{max-width:1180px;padding:34px 18px 70px;margin:auto;min-height:80vh}.wide{width:100%}.narrow{max-width:650px;margin:20px auto}.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:25px;box-shadow:0 8px 28px rgba(8,55,34,.05);margin-bottom:18px}h1{font-size:28px;line-height:1.18;margin:0 0 9px}h2{font-size:20px;margin:0 0 12px}h3{font-size:16px;margin:0 0 8px}p{margin:8px 0 14px}.muted{color:var(--muted)}.lead{font-size:17px;color:var(--muted)}button,.button{display:inline-block;background:var(--green);color:#fff;border:1px solid var(--green);border-radius:8px;cursor:pointer;font:inherit;font-weight:700;padding:10px 15px;text-decoration:none;touch-action:manipulation}button:hover,.button:hover{background:#0e4b35}button:disabled{opacity:.65;cursor:not-allowed}button[aria-busy="true"]{cursor:progress}.secondary{background:#fff;color:var(--green);border-color:#b5d0c2}.secondary:hover{background:#eaf5ef}.toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:18px 0}.stats article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.stats strong{display:block;font-size:25px}.stats span{color:var(--muted);font-size:13px}.link-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.link-grid article{border:1px solid var(--line);border-radius:11px;padding:16px}.copy-row{display:flex;gap:8px}.copy-row input{flex:1;min-width:0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#edf4ef}.tag{display:inline-block;border-radius:20px;padding:3px 9px;background:#e7f3ec;color:var(--green);font-weight:700}.tag.danger{background:#fbe8e9;color:var(--red)}.review-answer{padding:12px;border-left:4px solid var(--line);margin:10px 0;background:#f8faf9}.review-answer.correct{border-color:var(--green2)}.review-answer.incorrect{border-color:var(--red)}label{display:block;font-size:13px;font-weight:700;margin:12px 0 6px}input{width:100%;padding:10px 12px;border:1px solid #c8d8cf;border-radius:8px;font:inherit;background:#fff}.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}.check input{width:auto;margin-top:5px}.alert,#form-error,#unlock-error{color:var(--red);background:#fff0f1;border:1px solid #efc5c8;border-radius:8px;padding:10px;margin:10px 0}.registration{max-width:980px;margin:auto}.registration-grid{display:grid;grid-template-columns:1fr 360px;gap:28px}.camera-setup{border-left:1px solid var(--line);padding-left:26px}.camera-setup video,.proctor-panel video,.lock-card video{width:100%;aspect-ratio:4/3;background:#18211e;border-radius:11px;object-fit:cover;transform:scaleX(-1)}#camera-state{display:block;margin-top:9px;color:var(--green);font-weight:700}.exam-shell{position:relative}.exam-bar{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:#fff;border-radius:12px 12px 0 0;padding:14px 20px}.exam-bar span{display:block;font-size:12px;opacity:.8}.timer{font-size:26px;font-weight:850;font-variant-numeric:tabular-nums}.timer.large{font-size:38px;color:var(--green)}.exam-layout{display:grid;grid-template-columns:1fr 280px;gap:18px;background:#fff;border:1px solid var(--line);border-top:0;padding:22px;border-radius:0 0 12px 12px}.question-card h1{font-size:22px;white-space:pre-wrap}.eyebrow{color:var(--green);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.05em}.choice{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:10px;padding:13px;margin:10px 0;cursor:pointer;font-size:15px}.choice:hover,.choice.selected{background:#edf7f1;border-color:var(--green2)}.choice input{width:auto;margin-top:5px}.choice strong{width:20px}.question-actions{display:flex;justify-content:space-between;margin-top:22px}.proctor-panel{border-left:1px solid var(--line);padding-left:18px}.live-badge{display:block;color:#b32129;font-size:12px;font-weight:850;margin:8px 0}.proctor-panel p{font-size:13px;color:var(--muted)}.lock-screen{position:fixed;z-index:50;inset:0;background:rgba(16,31,25,.95);display:grid;place-items:center;padding:20px}.lock-card{background:#fff;border-radius:16px;padding:28px;width:min(500px,100%);text-align:center;box-shadow:0 20px 70px #0008}.lock-card video{max-width:250px}.lock-card label{text-align:left}.danger-text{color:var(--red);font-weight:850;font-size:18px}.complete{text-align:center}.result-score{font-size:58px;font-weight:900;color:var(--green)}footer{text-align:center;padding:20px;color:#73887b;border-top:1px solid var(--line);font-size:12px}
@media(max-width:800px){.registration-grid,.exam-layout,.link-grid{grid-template-columns:1fr}.camera-setup,.proctor-panel{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.stats{grid-template-columns:1fr 1fr}.toolbar{align-items:flex-start;flex-direction:column}.headertrail{display:none}.wrap{padding-top:18px}.card{padding:18px}}

/* Administrator workspace */
body:has(.admin-shell)>.wrap{max-width:none;padding:0;min-height:calc(100vh - 67px)}body:has(.admin-shell)>footer{display:none}.admin-shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 67px)}.admin-nav{background:#123d30;color:#fff;padding:24px 15px;display:flex;flex-direction:column;gap:7px}.admin-brand{font-size:21px;font-weight:850;padding:3px 12px 20px}.admin-nav button{background:transparent;border-color:transparent;text-align:left;color:#dcece5}.admin-nav button:hover,.admin-nav button.active{background:#245744;color:#fff}.admin-nav .signout{margin-top:auto;border-color:#527a6b}.admin-main{padding:32px;min-width:0;max-width:1500px;width:100%}.page-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.page-title h1{margin-bottom:5px}.page-title p{color:var(--muted);margin:0}.hidden{display:none!important}.position-list{display:grid;gap:18px}.position-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.position-head{display:flex;justify-content:space-between;gap:20px}.position-head p{color:var(--muted);margin:4px 0}.position-actions,.tile-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.danger-button{background:#fff3f3;color:var(--red);border-color:#e5b9bc}.assessment-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.assessment-tile{border:1px solid var(--line);border-radius:11px;padding:16px;background:#f9fbfa}.assessment-tile h4{margin:7px 0;font-size:16px}.assessment-tile p{color:var(--muted);font-size:13px}.test-type{text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:850;color:var(--green)}.status{display:inline-block;border-radius:20px;padding:3px 9px;background:#edf1ef;color:#53645c;font-size:12px;font-weight:750}.status.on{background:#dff3e7;color:var(--green)}.status.off{background:#fae8e9;color:var(--red)}.status-line{margin:8px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.span-2{grid-column:1/-1}textarea,select{width:100%;padding:10px 12px;border:1px solid #c8d8cf;border-radius:8px;font:inherit;background:#fff}.filter-bar{display:flex;align-items:end;gap:15px;flex-wrap:wrap}.filter-bar label{min-width:220px;margin:0}.editor{max-width:1000px}.import-row{display:grid;grid-template-columns:1fr 240px auto;gap:12px;align-items:center}.question-edit{border:1px solid var(--line);border-radius:10px;padding:15px;margin:12px 0;background:#fbfcfb}.question-number{font-weight:850;display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.question-number button{padding:5px 9px;font-size:12px}.q-prompt{font-weight:650}.option-edit{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.option-edit label{display:flex;align-items:center;gap:7px;margin:0}.option-edit label>span{width:20px;color:var(--green);font-weight:850}.option-edit select{max-width:90px}.admin-login{margin-top:60px}.proctor-panel [data-face-state]{display:block;font-size:12px;color:var(--green);margin:5px 0}
body:has(.admin-shell)>.wrap{max-width:none;padding:0;min-height:calc(100vh - 67px)}body:has(.admin-shell)>footer{display:none}.admin-shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 67px)}.admin-nav{background:#123d30;color:#fff;padding:24px 15px;display:flex;flex-direction:column;gap:7px}.admin-brand{font-size:21px;font-weight:850;padding:3px 12px 20px}.admin-nav button{background:transparent;border-color:transparent;text-align:left;color:#dcece5}.admin-nav button:hover,.admin-nav button.active{background:#245744;color:#fff}.admin-nav .signout{margin-top:auto;border-color:#527a6b}.admin-main{padding:32px;min-width:0;max-width:1500px;width:100%}.page-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.page-title h1{margin-bottom:5px}.page-title p{color:var(--muted);margin:0}.hidden{display:none!important}.position-list{display:grid;gap:18px}.position-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.position-head{display:flex;justify-content:space-between;gap:20px}.position-head p{color:var(--muted);margin:4px 0}.position-actions,.tile-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.danger-button{background:#fff3f3;color:var(--red);border-color:#e5b9bc}.assessment-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.assessment-tile{border:1px solid var(--line);border-radius:11px;padding:16px;background:#f9fbfa}.assessment-tile h4{margin:7px 0;font-size:16px}.assessment-tile p{color:var(--muted);font-size:13px}.test-type{text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:850;color:var(--green)}.status{display:inline-block;border-radius:20px;padding:3px 9px;background:#edf1ef;color:#53645c;font-size:12px;font-weight:750}.status.on{background:#dff3e7;color:var(--green)}.status.off{background:#fae8e9;color:var(--red)}.status-line{margin:8px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.span-2{grid-column:1/-1}textarea,select{width:100%;padding:10px 12px;border:1px solid #c8d8cf;border-radius:8px;font:inherit;background:#fff}.filter-bar{display:flex;align-items:end;gap:15px;flex-wrap:wrap}.filter-bar label{min-width:220px;margin:0}.editor{max-width:1000px}.import-row{display:grid;grid-template-columns:1fr 240px auto;gap:12px;align-items:center}.question-edit{border:1px solid var(--line);border-radius:10px;padding:15px;margin:12px 0;background:#fbfcfb}.question-number{font-weight:850;display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.question-number button{padding:5px 9px;font-size:12px}.q-prompt{font-weight:650}.option-edit{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.option-edit label{display:flex;align-items:center;gap:7px;margin:0}.option-edit label>span{width:20px;color:var(--green);font-weight:850}.option-edit select{max-width:90px}.admin-login{margin-top:60px}.proctor-panel [data-face-state]{display:block;font-size:12px;color:var(--green);margin:5px 0}.save-state{display:block;color:var(--green);font-size:12px;font-weight:800;margin:10px 0}.save-state.save-error{color:var(--red)}
@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-nav{position:static;flex-direction:row;align-items:center;overflow:auto}.admin-brand{padding:0 12px;white-space:nowrap}.admin-nav .signout{margin:0 0 0 auto}.admin-main{padding:20px}.assessment-grid,.form-grid,.option-edit{grid-template-columns:1fr}.span-2{grid-column:auto}.import-row{grid-template-columns:1fr}.position-head,.page-title{flex-direction:column}.admin-nav button{white-space:nowrap}}
