:root{--gap: 12px;--radius: 8px;font-family:system-ui,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f7f7f7;color:#111}a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}nav{background:#111;color:#fff;padding:16px}nav h1{font-size:18px;margin:0 0 12px}nav .role{font-size:12px;opacity:.8;margin-bottom:16px}nav ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}nav li a{display:block;padding:8px 10px;border-radius:6px;background:#1a1a1a}nav li a.active{background:#2d6cdf}header{padding:12px 16px;background:#fff;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;align-items:center}main{padding:16px}.card{background:#fff;border:1px solid #e5e5e5;border-radius:var(--radius);padding:16px}.grid{display:grid;gap:var(--gap)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.row{display:flex;gap:var(--gap);align-items:center}label{font-size:12px;color:#444}input,select,textarea{width:100%;padding:8px;border:1px solid #ccc;border-radius:6px;background:#fff}button{padding:8px 12px;border:1px solid #222;background:#222;color:#fff;border-radius:6px;cursor:pointer}button.secondary{background:#fff;color:#222}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{border:1px solid #e5e5e5;padding:8px;text-align:left}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid #ccc}.ok{background:#e6f8ed;border-color:#2fb171}.warn{background:#fff5e6;border-color:#e0a800}.bad{background:#fdeaea;border-color:#c82333}.muted{color:#666;font-size:12px}.section-title{margin:16px 0 8px;font-weight:600}.code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#f1f1f1;padding:2px 6px;border-radius:4px}.candidate-app{display:grid;grid-template-rows:auto auto 1fr;min-height:100vh;background:#f2f4f8}.candidate-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#102542;color:#fff}.candidate-nav{display:flex;gap:12px;padding:12px 24px;background:#1a365d}.candidate-nav a{color:#fff;padding:6px 12px;border-radius:6px}.candidate-nav a.active{background:#2d6cdf}.candidate-main{padding:24px;max-width:960px;margin:0 auto 48px;width:100%}.exam-section{border-top:1px solid #e2e6ed;padding-top:16px;margin-top:16px}.exam-text{white-space:pre-line;background:#f8fafc;padding:12px;border-radius:8px;border:1px solid #e2e6ed}.exam-question{margin-top:12px}.exam-section,.exam-question{width:100%}.exam-options{display:flex;flex-direction:column;gap:var(--gap);width:100%}.exam-option{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border:1px solid #d9dde6;border-radius:10px;background:#fff;width:100%;max-width:100%;box-shadow:0 1px 3px #1025421f;box-sizing:border-box}.exam-option input{margin-top:3px;flex-shrink:0;width:16px;min-width:16px}.exam-option span{flex:1;display:block;line-height:1.5;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;min-width:0;max-width:100%}.exam-option.correct{border-color:#2fb171;background:#e6f8ed}.exam-audio{margin:16px 0}.anno{background:#fff8c5;border-bottom:1px dashed #c98a00;position:relative}.anno-mark{color:#9a6700;font-weight:600;margin-left:2px}.timer-large{font-size:42px;font-weight:700;letter-spacing:1px;margin:8px 0 12px}.phase-banner{border:1px solid #e2e6ed;border-radius:8px;background:#f8fafc;padding:12px;margin-top:12px}.phase-banner.ok{border-color:#2fb17133;background:#e6f8ed}.phase-banner.warn{border-color:#e0a80033;background:#fff5e6}.cert-serial{font-family:monospace;font-size:11px;color:#666}@media print{nav,header,.no-print,button,select{display:none!important}.app{display:block}main{padding:0}body{background:#fff}.card{border:none;box-shadow:none}.cert-container{page-break-inside:avoid;padding:40px}.cert-container h2{font-size:22pt}.cert-container table{font-size:12pt}.cert-qr{position:absolute;bottom:40px;right:40px}@page{margin:20mm;size:A4}}
