.tool-typing-speed-test{color:var(--fg);max-width:860px;margin:0 auto}
.tool-typing-speed-test *{box-sizing:border-box}
.tool-typing-speed-test .ty-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.tool-typing-speed-test .ty-seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.tool-typing-speed-test .ty-seg button{font:inherit;color:var(--fg);background:transparent;border:0;padding:10px 16px;cursor:pointer;min-height:44px}
.tool-typing-speed-test .ty-seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg)}
.tool-typing-speed-test .ty-live{display:flex;gap:18px;font-size:1.1rem}
.tool-typing-speed-test .ty-live b{font-size:1.5rem;color:var(--accent);font-variant-numeric:tabular-nums}
.tool-typing-speed-test .ty-box{--fs:1.35rem;height:calc(var(--fs) * 5.4 + 24px);overflow:hidden;position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;font-size:var(--fs);line-height:1.8em;font-family:ui-monospace,Menlo,Consolas,monospace}
.tool-typing-speed-test .ty-words{position:relative;overflow-wrap:break-word}
.tool-typing-speed-test .ty-w{display:inline-block;margin-right:.6em;padding:0 2px;border-radius:4px;color:var(--muted)}
.tool-typing-speed-test .ty-w.cur{background:var(--surface-2);color:var(--fg)}
.tool-typing-speed-test .ty-w.bad{text-decoration:underline wavy var(--danger)}
.tool-typing-speed-test .ty-c.ok{color:var(--ok)}
.tool-typing-speed-test .ty-c.no{color:var(--danger)}
.tool-typing-speed-test .ty-c.extra{color:var(--danger);opacity:.7}
.tool-typing-speed-test .ty-input{display:block;width:100%;margin-top:10px;font:inherit;font-size:1.2rem;color:var(--fg);background:var(--surface-2);border:2px solid var(--border);border-radius:var(--radius);padding:12px;min-height:48px}
.tool-typing-speed-test .ty-input:focus{outline:none;border-color:var(--accent)}
.tool-typing-speed-test .ty-input:disabled{opacity:.6}
.tool-typing-speed-test .ty-hint,.tool-typing-speed-test .ty-muted{color:var(--muted)}
.tool-typing-speed-test .ty-btn{font:inherit;color:var(--fg);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;cursor:pointer;min-height:44px}
.tool-typing-speed-test .ty-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:700}
.tool-typing-speed-test .ty-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.tool-typing-speed-test .ty-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin:14px 0}
.tool-typing-speed-test h2{font-size:1.1rem;margin:0 0 8px}
.tool-typing-speed-test .ty-hist h2{margin-top:16px}
.tool-typing-speed-test .ty-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:0}
.tool-typing-speed-test .ty-grid div{background:var(--surface-2);border-radius:var(--radius);padding:8px}
.tool-typing-speed-test .ty-grid dt{color:var(--muted);font-size:.85rem}
.tool-typing-speed-test .ty-grid dd{margin:0;font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}
@media (max-width:480px){.tool-typing-speed-test .ty-box{--fs:1.1rem}}
