.keyboard-keys{display:grid;grid-template-columns:repeat(26,minmax(0,1fr));gap:4px}.keycap{display:flex;align-items:center;justify-content:center;height:38px;min-width:0;overflow:hidden;border:1px solid var(--border-strong);border-radius:0;background-color:var(--surface);color:var(--muted);font-family:var(--font-mono);font-size:12px;font-weight:700;line-height:1;text-transform:uppercase;box-shadow:inset 0 -2px 0 var(--border);opacity:0.76}.keycap.is-flashing{animation:keycap-flash var(--key-flash-duration,320ms) var(--ease)}@keyframes keycap-flash{0%,100%{border-color:var(--border-strong);background-color:var(--surface);color:var(--muted);opacity:0.76}14%,58%{border-color:var(--key-press-border);background-color:var(--key-press-bg);color:var(--key-press-text);opacity:1}}.test-toolbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:16px 22px;padding:18px 24px;border-bottom:1px solid var(--border)}.control-group{display:flex;flex-direction:column;gap:7px;min-width:0;width:100%}.control-label{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;font-weight:600;line-height:1;letter-spacing:0.14em;text-transform:uppercase;white-space:nowrap}.control-icon,.meta-icon{width:13px;height:13px;flex:0 0 auto}.theme-icon{width:16px;height:16px;flex:0 0 auto}.restart-icon{width:18px;height:18px;flex:0 0 auto}.restart-icon-cancel{display:none}#restart[data-action="cancel"] .restart-icon-restart{display:none}#restart[data-action="cancel"] .restart-icon-cancel{display:block}.segmented,.toggle-row{display:flex;width:100%;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:0;background-color:var(--surface-2)}.segmented button,.toggle-button{display:inline-flex;flex:1 1 0;align-items:center;justify-content:center;height:32px;min-width:0;padding:0 11px;border:1px solid transparent;border-radius:0;background-color:transparent;color:var(--muted);font-family:var(--font-ui);font-size:12px;font-weight:500;line-height:1;letter-spacing:0.01em;white-space:nowrap;transition:background-color 140ms var(--ease),border-color 140ms var(--ease),color 140ms var(--ease),box-shadow 140ms var(--ease)}.segmented button:hover:not(:disabled),.toggle-button:hover:not(:disabled){color:var(--text)}.segmented button[aria-pressed="true"]{border-color:var(--border);background-color:var(--control-selected-bg);color:var(--text);box-shadow:0 1px 2px var(--control-selected-shadow)}.toggle-button[aria-pressed="true"]{border-color:var(--accent-border);background-color:var(--accent-soft);color:var(--accent-strong)}.segmented button:disabled,.toggle-button:disabled{opacity:0.45}.segmented button:disabled[aria-pressed="true"],.toggle-button:disabled[aria-pressed="true"]{opacity:0.7}.theme-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:0;background-color:transparent;color:var(--muted);transition:background-color 140ms var(--ease),border-color 140ms var(--ease),color 140ms var(--ease)}.theme-button:hover{background-color:var(--surface-2);color:var(--text)}html[data-theme="light"] .theme-button[data-theme-choice="light"],html[data-theme="dark"] .theme-button[data-theme-choice="dark"]{border-color:var(--text);background-color:var(--text);color:var(--surface)}.test-meta{display:flex;align-items:flex-end;gap:24px;padding:18px 24px 0}.meta-stat{display:flex;flex-direction:column;gap:5px;min-width:0}.meta-label{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;font-weight:600;line-height:1;letter-spacing:0.14em;text-transform:uppercase;white-space:nowrap}.meta-value{color:var(--text);font-size:26px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}.meta-unit{margin-left:4px;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:0.04em;text-transform:uppercase}.live-speed{padding-left:24px;border-left:1px solid var(--border)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin-left:auto;padding:0;border:1px solid var(--border);border-radius:0;background-color:transparent;color:var(--muted);transition:background-color 140ms var(--ease),border-color 140ms var(--ease),color 140ms var(--ease)}.icon-button:hover{border-color:var(--border-strong);background-color:var(--surface-2);color:var(--text)}.progress-track{height:3px;background-color:transparent;opacity:0;transition:opacity 140ms var(--ease)}.typing-stage.is-running + .progress-track,.typing-stage.is-finished + .progress-track{opacity:1}.progress-fill{width:100%;height:100%;background-color:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform 120ms linear}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:0 16px;border:1px solid transparent;border-radius:0;font-family:var(--font-ui);font-size:13px;font-weight:600;line-height:1;letter-spacing:0.01em;white-space:nowrap;transition:background-color 140ms var(--ease),border-color 140ms var(--ease),color 140ms var(--ease),box-shadow 140ms var(--ease)}.button-primary{border-color:var(--accent);background-color:var(--accent);color:var(--surface);box-shadow:0 1px 2px rgba(20,22,18,0.08)}.button-primary:hover{border-color:var(--accent-strong);background-color:var(--accent-strong)}.button-secondary{border-color:var(--border-strong);background-color:transparent;color:var(--text)}.button-secondary:hover{border-color:var(--text-soft);background-color:var(--surface-2)}@media (width>640px){.test-toolbar{grid-template-columns:repeat(6,minmax(0,1fr))}.control-group:nth-child(-n + 3){grid-column:span 2}.control-group:nth-child(n + 4){grid-column:span 3}}@media (width>=1024px){.test-toolbar{grid-template-columns:repeat(5,minmax(0,1fr))}.test-toolbar>.control-group{grid-column:span 1}}@media (width <=640px){.test-toolbar{gap:12px 16px;padding:16px}.segmented button,.toggle-button{height:34px;padding:0 10px}.test-meta{gap:16px;padding:16px 16px 0}.meta-value{font-size:23px}.live-speed{padding-left:16px}.icon-button{width:36px;height:36px}}@media (width < 768px){.keyboard-keys{grid-template-columns:repeat(13,minmax(0,1fr));gap:6px 4px}.keycap{height:32px;font-size:11px}}@media (width <=480px){.keyboard-keys{gap:5px 3px}.keycap{height:30px;font-size:10px}.test-toolbar{gap:11px 12px}.segmented button,.toggle-button{padding:0 8px;font-size:11px}.meta-value{font-size:21px}}