@import url('https://fonts.googleapis.com/css2?family=VT323&family=Share+Tech+Mono&display=swap');
*{margin:0;padding:0;box-sizing:border-box}
body{background:#0a0a0a;color:#ff3333;font-family:'VT323',monospace;min-height:100vh}
.container{max-width:700px;margin:0 auto;padding:20px}
a{text-decoration:none}
.logo-wrap{text-align:center;padding:20px 0;border-bottom:2px solid #ff3333;margin-bottom:20px}
.logo{width:120px;height:120px}
.progress-bg{background:#1a1a1a;border:1px solid #333;height:20px;margin-bottom:15px}
.progress-fill{height:100%;background:#ff3333;transition:width .3s}
.stats{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:18px;flex-wrap:wrap;gap:6px}
.q-box{background:#111;border:2px solid #ff3333;padding:20px;margin-bottom:15px;display:none}
.q-box.show{display:block}
.phase{font-size:14px;color:#ff6666;background:#1a0000;padding:2px 8px;display:inline-block;margin-bottom:8px}
.qnum{font-size:14px;color:#ff3333;margin-bottom:8px}
.qtxt{font-size:22px;color:#fff;margin-bottom:12px}
.hint-btn{font-family:'VT323',monospace;font-size:14px;padding:5px 10px;border:1px solid #666;background:transparent;color:#666;cursor:pointer;margin-bottom:12px}
.hint-btn:hover{background:#222}
.hint-btn.used{border-color:#f90;color:#f90;cursor:default}
.hint{font-size:16px;color:#f90;margin-bottom:12px;border-left:3px solid #f90;padding-left:10px;display:none}
.hint.show{display:block}
.solution{font-size:18px;color:#0f0;margin:12px 0;padding:10px;background:#001a00;border:1px solid #0f0;display:none;font-family:'Share Tech Mono',monospace;word-break:break-all}
.solution.show{display:block}
.inp{width:100%;padding:10px;font-family:'Share Tech Mono',monospace;font-size:18px;background:#0a0a0a;border:2px solid #333;color:#0f0;outline:none}
.inp:focus{border-color:#ff3333}
.inp::placeholder{color:#444}
.inp:disabled{opacity:.5}
.fb{padding:8px;margin-top:10px;display:none;font-size:16px}
.fb.ok{display:block;background:#001a00;border:1px solid #0f0;color:#0f0}
.fb.no{display:block;background:#1a0000;border:1px solid #f33;color:#f33}
.btn{font-family:'VT323',monospace;font-size:18px;padding:10px 20px;border:2px solid #ff3333;background:transparent;color:#ff3333;cursor:pointer;margin-top:12px;margin-right:8px}
.btn:hover{background:#ff3333;color:#000}
.btn:disabled{opacity:.5;cursor:default}
.btn:disabled:hover{background:transparent;color:#ff3333}
.btn-reveal{border-color:#f90;color:#f90}
.btn-reveal:hover{background:#f90;color:#000}
.btn-next{border-color:#0f0;color:#0f0}
.btn-next:hover{background:#0f0;color:#000}
.notes{background:#0a0a0a;border:1px solid #333;margin-top:15px}
.notes-hdr{background:#1a1a1a;padding:6px 10px;font-size:14px;color:#666;border-bottom:1px solid #333}
.notes-txt{width:100%;min-height:80px;padding:8px;font-family:'Share Tech Mono',monospace;font-size:14px;background:transparent;border:none;color:#888;resize:vertical;outline:none}
.results{display:none;text-align:center;padding:30px}
.results.show{display:block}
.results h1{font-size:24px;color:#ff3333;margin-bottom:20px}
.fscore{font-size:24px;color:#fff;margin-bottom:20px}
.start{text-align:center;padding:40px 20px}
.start .logo{width:140px;height:140px;margin-bottom:25px}
.start p{font-size:18px;color:#888;margin-bottom:25px;max-width:450px;margin-left:auto;margin-right:auto}
.start .inp{max-width:300px;margin:0 auto 15px;display:block}
/* Admin */
.admin-wrap{max-width:860px;margin:0 auto;padding:20px}
.admin-wrap h2{font-size:26px;color:#ff3333;border-bottom:2px solid #ff3333;padding-bottom:8px;margin-bottom:20px}
.kpi-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.kpi{flex:1;min-width:100px;background:#111;border:1px solid #ff3333;padding:12px;text-align:center}
.kpi-v{font-size:36px;color:#0f0;display:block}
.kpi-l{font-size:12px;color:#666}
.u-tbl{width:100%;border-collapse:collapse;font-size:16px}
.u-tbl th{background:#1a0000;color:#ff3333;padding:8px;text-align:left;border-bottom:2px solid #ff3333}
.u-tbl td{padding:6px 8px;border-bottom:1px solid #1a1a1a;color:#888;vertical-align:middle}
.u-tbl tr:hover td{background:#0a0000}
.pbar-bg{background:#1a1a1a;height:8px;border-radius:4px;overflow:hidden;min-width:60px}
.pbar-fill{height:100%;background:#ff3333;border-radius:4px}
.gate{max-width:320px;margin:4em auto;text-align:center}
.gate h2{font-size:22px;color:#ff3333;margin-bottom:16px}
.ref-note{font-size:13px;color:#444;font-family:'Share Tech Mono',monospace;background:#111;border:1px solid #222;padding:8px 12px;margin-bottom:16px}
.section-hdr{font-size:14px;color:#ff3333;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid #222;padding-bottom:4px;margin:16px 0 8px}
.danger-box{border:1px solid #600;background:#0a0000;padding:14px}
.flash-ok{background:#001a00;border:1px solid #0f0;color:#0f0;padding:8px 12px;font-size:16px;margin-bottom:12px}
.flash-err{background:#1a0000;border:1px solid #f33;color:#f33;padding:8px 12px;font-size:16px;margin-bottom:12px}
.export-ta{width:100%;background:#0a0a0a;border:1px solid #333;color:#555;font-family:'Share Tech Mono',monospace;font-size:12px;padding:8px;resize:vertical;outline:none;min-height:80px}
.q-row-hdr{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-bottom:1px solid #111;background:#060606}
.q-row-hdr:hover{background:#0d0d0d}
.q-edit{display:none;background:#070707;padding:14px;border-bottom:2px solid #111}
.q-field{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}
.q-lbl{font-size:12px;color:#555;min-width:70px;padding-top:9px;flex-shrink:0}
.q-edit .inp{padding:6px;font-size:14px}
.badge-mod{font-size:11px;color:#f90;border:1px solid #f90;padding:1px 5px;margin-left:6px;vertical-align:middle}
