:root{--qk-correct:#1b7a1b;--qk-error:#b00020;--qk-pending:#6b6b6b;--qk-caret:#1a56db}body{margin:1rem;font-family:system-ui,sans-serif}.typing-area{border:1px solid var(--qk-pending);cursor:text;max-width:60rem;padding:.5rem;position:relative}.typing-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.typing-text{white-space:pre-wrap;max-height:9em;margin:0;font-family:ui-monospace,monospace;font-size:1.4rem;line-height:1.8;overflow:hidden}.ch.pending{color:var(--qk-pending)}.ch.correct{color:var(--qk-correct)}.ch.incorrect,.ch.extra,.ch.missed{color:var(--qk-error);text-decoration:underline}.ch.extra{text-decoration:line-through}.ch.missed{text-decoration-style:dotted}.sep.incorrect{-webkit-text-decoration:underline wavy var(--qk-error);text-decoration:underline wavy var(--qk-error)}.caret,.caret-end{box-shadow:inset 2px 0 0 var(--qk-caret)}.hint{color:var(--qk-pending);margin:.25rem 0 0}table{border-collapse:collapse;margin-top:1rem}th,td{border:1px solid var(--qk-pending);text-align:left;padding:.2rem .5rem}nav button[aria-pressed=true]{font-weight:700;text-decoration:underline}.course .suggested td{font-weight:700}.keyboard{margin-top:.75rem}.kb{flex-direction:column;gap:.2rem;font-family:ui-monospace,monospace;display:inline-flex}.kb-row{gap:.2rem;display:flex}.kb-row:nth-child(3){margin-left:.6rem}.kb-row:nth-child(4){margin-left:0}.key{border:1px solid var(--qk-pending);text-align:center;min-width:2.2rem;padding:.35rem .3rem}.key.row-space{min-width:18rem;margin-left:9rem}.key.bump{text-decoration:underline}.key.marked{border-width:2px}.key.next{outline:3px solid var(--qk-caret);font-weight:700}.key.shift-next{outline:3px dashed var(--qk-caret)}.kb-hint{margin:.3rem 0 0}
