:root{color-scheme:light;--navy:#101c30;--ink:#1c2c43;--muted:#61738c;--line:#d8e1ec;--bg:#f0f4f9;--paper:#fff;--accent:#245aca;--light:#edf3ff;--green:#086a45;--danger:#b83c42;--yellow:#936319}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #80b4ff;outline-offset:3px}button:disabled{opacity:.4;cursor:default}h1,h2,h3{line-height:1.24;margin:0 0 13px}h1{font-size:27px}h2{font-size:20px}p{margin:0 0 17px}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#8db8ff;margin:0 0 6px}.small{font-size:12px}.micro{color:var(--muted);font-size:12px}.muted{color:var(--muted)}
.top{background:var(--navy);color:white;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px max(20px,calc((100vw - 1390px)/2))}.top strong{font-size:18px;display:block}.top small{display:block;color:#a7c1e1;margin-top:2px}.top-right,.bar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pill,.tag{font-size:11px;font-weight:700;letter-spacing:.03em;border-radius:999px;padding:6px 11px;background:#edf4ff;color:#2957a9}.pill.warn{background:#29344a;color:#f6c972}.timer{font-variant-numeric:tabular-nums;display:inline-block;padding:8px 12px;background:#273b59;border-radius:10px;font-size:21px;font-weight:750;min-width:77px;text-align:center}main{max-width:1390px;padding:28px 18px 70px;margin:auto}.center-card{max-width:560px;margin:40px auto;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:36px;box-shadow:0 14px 44px #1530510d}.entry-icon{height:53px;width:53px;border-radius:16px;background:var(--light);color:var(--accent);display:grid;place-items:center;font-size:28px;margin-bottom:21px}.center-card .eyebrow{color:var(--accent)}label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}#studentName{padding:12px 13px;border:1px solid #b6c5d8;border-radius:9px;width:100%;margin-bottom:12px}button{border:0;border-radius:9px;padding:11px 15px;font-weight:700}.primary{background:var(--accent);color:white}.secondary{background:#e8edf4;color:#263954}.danger{background:#fff0ef;border:1px solid #dfabac;color:#a5252c}.center-card button{width:100%;margin-bottom:13px}.workspace-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}.workspace-bar h1{margin-bottom:3px}.layout{display:grid;grid-template-columns:minmax(215px,260px) minmax(0,1fr);gap:16px;align-items:start}.sidebar,.question-panel,.results .result-hero{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:0 3px 11px #21365706}.sidebar{position:sticky;top:14px}.sidebar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.nav-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.nav-button{border:1px solid #c6d4e5;background:#f6f9fd;min-height:37px;border-radius:8px;padding:5px;position:relative}.nav-button.current{outline:3px solid #9bbaff;background:#e8f0ff}.nav-button.answered{background:#e6f6ed;border-color:#9cd7b6}.nav-button.flagged::after{content:'◆';color:#cd8426;font-size:8px;position:absolute;top:1px;right:3px}.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:12px 0}.dot{display:inline-block;height:9px;width:9px;border-radius:50%;margin-right:4px}.dot.answered{background:#4da878}.dot.flagged{background:#d6a145}.question-panel{min-height:490px}.question-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:18px}.question-panel h2{font-size:21px;line-height:1.4;max-width:1000px}.answer-options{margin:20px 0 28px;display:grid;gap:10px}.answer-option{display:flex;gap:13px;align-items:flex-start;border:1px solid #d4dfed;padding:15px;border-radius:10px;cursor:pointer;background:#fff}.answer-option:hover{border-color:#779fe5;background:#fafcff}.answer-option.selected{border-color:var(--accent);background:var(--light)}.answer-option input{margin-top:4px;accent-color:var(--accent);flex-shrink:0}.answer-option strong{padding-right:9px}.question-actions{display:flex;gap:8px;justify-content:space-between;margin-top:30px;padding-top:17px;border-top:1px solid var(--line)}.question-actions button{min-width:105px}.pbq-card{border:1px solid var(--line);border-radius:14px;padding:18px;margin-top:16px;background:#fafdff}.pbq-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:15px}.hardware{display:grid;grid-template-columns:1fr 1fr;gap:12px}.device{background:#19283b;color:#e0ebfa;padding:14px;border-radius:11px}.device h3{font-size:13px;margin-bottom:9px;color:#c4d7f0}.ports{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.port{background:#263c55;color:#daeaff;padding:9px 2px;border:2px solid #455b78;font:700 13px ui-monospace,monospace;min-height:38px}.port.selected{border-color:#ffcb6b;background:#71552e;color:white}.port.connected{background:#1d534e;border-color:#49ad95}.pbq-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:17px 0}.pbq-controls>div{min-width:120px}.pbq-controls select{padding:10px;border-radius:8px;border:1px solid #aebfd5;background:white}.pbq-controls button{min-width:100px}.connection-line{display:block;margin:7px 0 0;padding:10px;background:#eaf1fa;border-radius:8px}.connection-line button{float:right;padding:3px 8px;font-size:12px}.test-result{background:#f0f5fb;border:1px solid #cbd9e9;padding:12px;margin:7px 0;border-radius:9px}.test-result.pass{border-color:#9bdab8;background:#ecf9f2}.test-result.fail{border-color:#e4b4b4;background:#fff0f0}.question-hint{border-left:3px solid #8eb7ee;padding:8px 12px;background:#f1f6ff;font-size:12px;color:#415773}.results{max-width:950px;margin:auto}.result-hero{background:var(--navy)!important;color:#fff!important;border-color:transparent!important;padding:26px!important}.result-hero .micro{color:#b5c8e7}.stat-row{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.stat-row>div{flex:1;min-width:130px;padding:14px;background:#ffffff14;border:1px solid #ffffff29;border-radius:12px}.stat-row strong{display:block;font-size:27px}.stat-row span{font-size:11px;color:#c2d5f2}.review-actions{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 30px}.results h2{margin:24px 0 12px}.domain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.domain-card,.review-item{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px}.domain-card strong{display:block;font-size:22px}.domain-card small{color:var(--muted)}.review-item{margin-bottom:12px}.review-item h3{font-size:16px}.review-item p{font-size:13px;white-space:pre-wrap}.review-item .score{font-weight:800;color:var(--green)}.review-item .score.partial{color:#a87024}.review-item .score.zero{color:var(--danger)}.modal-shade{position:fixed;inset:0;background:#0e1d31bb;z-index:10;display:grid;place-items:center;padding:20px}.modal-shade[hidden]{display:none}.modal{background:#fff;padding:28px;border-radius:16px;max-width:420px;box-shadow:0 15px 50px #0005}.modal .bar-actions{justify-content:flex-end}footer{text-align:center;color:#74859b;font-size:11px;padding:25px}section[hidden]{display:none!important}
@media(max-width:800px){main{padding:13px 10px 40px}.layout{grid-template-columns:1fr}.sidebar{position:static;padding:12px}.nav-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.question-panel{padding:15px}.top{padding:14px 12px}.top-right .pill{display:none}.workspace-bar{align-items:start;flex-wrap:wrap}.workspace-bar h1{font-size:22px}.hardware{grid-template-columns:1fr}.center-card{margin:12px auto;padding:24px}.question-actions{flex-wrap:wrap}.question-actions button{flex:1}.answer-option{padding:12px}.pbq-card{padding:13px}}
/* Firewall rule PBQ: responsive, accessible list editor */
.acl-table{display:grid;gap:10px;margin:14px 0}.acl-row{display:grid;grid-template-columns:24px repeat(4,minmax(100px,1fr)) auto;align-items:end;gap:7px;background:white;border:1px solid #d8e1ec;border-radius:12px;padding:12px}.acl-index{font-weight:800;padding-bottom:8px}.acl-field{font-size:11px;color:#61738c;margin:0}.acl-field select{display:block;width:100%;padding:9px 6px;border:1px solid #b5c9de;border-radius:8px;margin-top:5px;background:white}.acl-row-controls{display:flex;gap:4px}.acl-row-controls button{padding:8px}.acl-test{border-top:1px solid #cbd9e9;margin-top:18px;padding-top:13px}.acl-test select{display:block;width:100%;max-width:520px;padding:10px;border-radius:8px;margin-bottom:10px}.acl-test button{margin:0 8px 9px 0}
@media(max-width:1050px){.acl-row{grid-template-columns:25px repeat(2,minmax(0,1fr))}.acl-row-controls{grid-column:2/-1}.acl-field select{min-width:0}}

/* PBQs occupy numbered question positions 1–3 in fixed exam forms. */
.nav-button.pbq{border-color:#6294dc;background:#e9f0ff;color:#123d76;font-weight:900}.nav-button.pbq.current{outline-color:#245aca}.nav-button.pbq::before{content:"P";position:absolute;top:0;left:3px;font-size:8px;color:#3d68a9}.nav-button.pbq.answered{background:#d4f3e4}

/* Wi-Fi survey PBQ: interactive indoor site plan + keyboard mount alternatives */
.rf-map{position:relative;width:100%;height:280px;border:2px solid #b9cee4;border-radius:13px;background:repeating-linear-gradient(0deg,#f7fbff 0,#f7fbff 39px,#e6f0f9 40px),repeating-linear-gradient(90deg,transparent 0,transparent 39px,#e6f0f9 40px);overflow:hidden}.rf-wall{position:absolute;top:0;bottom:0;left:51%;width:11px;background:#bdccdc;border-left:2px solid #7892ab;border-right:2px solid #7892ab;writing-mode:vertical-rl;text-align:center;font-size:10px;letter-spacing:.3em;color:#456181;pointer-events:none}.rf-mount{position:absolute;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:999px;padding:0;border:2px solid #5276a6;background:#fff;color:#245aca;font-size:17px;z-index:3}.rf-mount.rf-a{background:#245aca;color:white}.rf-mount.rf-b{background:#0c7d60;color:white}.rf-client{position:absolute;transform:translate(-50%,30%);font-size:10px;font-weight:800;border-radius:7px;padding:2px 5px;z-index:2;white-space:nowrap;pointer-events:none}.rf-client.rf-good{color:#06774b;background:#d5f8e2}.rf-client.rf-poor{color:#9c2630;background:#ffe1e3}.rf-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:18px 0}.rf-panel label{font-size:11px}.rf-panel select{display:block;width:100%;padding:10px 6px;border-radius:7px;border:1px solid #c2d1e0;background:white}.rf-map+.rf-panel{margin-top:20px}@media(max-width:800px){.rf-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-map{height:250px}}

/* Preserve mobile review width when student-generated ACL JSON has long unbroken tokens. */
.review-item p,.review-item h3{overflow-wrap:anywhere;word-break:normal;}

/* M4 original PBQs: console, alert timeline, and split-horizon DNS editor. */
.m4-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.m4-panel{border:1px solid #c5d6e7;background:#fff;border-radius:12px;padding:14px;min-width:0}.m4-panel h3{font-size:15px;margin:3px 0 10px}.m4-command,.m4-field input,.m4-field select{display:block;width:100%;max-width:100%;margin:5px 0 12px;padding:10px;border:1px solid #b1c8e0;border-radius:8px;font:inherit}.m4-command,.m4-log{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.m4-log{background:#0d2439;color:#e2f8ec;padding:12px;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:250px;overflow:auto}.m4-signal{padding:9px 0;border-bottom:1px solid #e1eaf2}.m4-field{display:block;font-size:12px;font-weight:650;margin-bottom:7px}.m4-field input[type=checkbox]{display:inline-block;width:auto;margin-right:9px}.m4-chip{margin:4px 7px 7px 0;padding:8px 11px;background:#edf5fc;border:1px solid #9ebedf;border-radius:8px;color:#28466d}.m4-panel button.primary{margin:6px 8px 10px 0}.m4-output{border-top:1px solid #ccdcec;padding-top:11px;margin-top:13px}@media(max-width:850px){.m4-layout{grid-template-columns:1fr}.m4-panel{padding:11px}}

.preview-consent{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.6;margin:12px 0 19px}.preview-consent input{flex:0 0 auto;margin-top:4px}#emailDeliveryStatus,#resultEmailStatus{padding:11px 18px;border-left:3px solid #ac8249;background:#f6f1e7}
