
/* TypingTutor.Online Typing Race v17.8.92 */
.typing-race-shell{max-width:1500px}.typing-race-hero{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin:12px 0 20px;padding:24px 28px;border:1px solid var(--border,#dbe4f0);border-radius:28px;background:linear-gradient(135deg,var(--surface,#fff),var(--surface-2,#f8fafc));box-shadow:0 16px 42px rgba(15,23,42,.06)}.typing-race-hero h1{margin:6px 0 8px;font-size:clamp(32px,5vw,52px)}.typing-race-hero p{max-width:780px;margin:0;color:var(--muted,#64748b);line-height:1.65}.typing-race-hero-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:430px}.typing-race-hero-badges span{padding:8px 11px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:800;white-space:nowrap}.typing-race-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.typing-race-card{min-width:0;padding:22px;border-radius:28px;border:1px solid var(--border,#dbe4f0);background:var(--surface,#fff);box-shadow:0 20px 55px rgba(15,23,42,.08)}.typing-race-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.typing-race-settings label,.typing-race-custom label{display:grid;gap:6px;color:var(--muted,#64748b);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.typing-race-settings select,.typing-race-settings input,.typing-race-custom textarea,.typing-race-passage-panel textarea{width:100%;border:1px solid var(--border,#cbd5e1);border-radius:13px;background:var(--surface,#fff);color:var(--text,#0f172a);font:inherit}.typing-race-settings select,.typing-race-settings input{min-height:44px;padding:10px 12px}.typing-race-settings input{font-weight:700}.typing-race-custom{margin-top:14px;padding:15px;border:1px solid var(--border,#dbe4f0);border-radius:18px;background:var(--surface-2,#f8fafc)}.typing-race-custom textarea{padding:12px;resize:vertical;line-height:1.55}.typing-race-custom small{display:block;margin-top:7px;color:var(--muted,#64748b)}.typing-race-topbar{display:flex;gap:14px;justify-content:space-between;align-items:center;margin:18px 0 14px}.typing-race-live-metrics{display:grid;grid-template-columns:repeat(6,minmax(76px,1fr));gap:8px;flex:1}.typing-race-live-metrics>div{padding:10px 8px;border:1px solid var(--border,#dbe4f0);border-radius:14px;background:var(--surface-2,#f8fafc);text-align:center}.typing-race-live-metrics span{display:block;color:var(--muted,#64748b);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.typing-race-live-metrics strong{display:block;margin-top:4px;font-size:20px;color:var(--text,#0f172a)}.typing-race-live-metrics>div:nth-child(1) strong,.typing-race-live-metrics>div:nth-child(2) strong{color:#1769ff}.typing-race-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.typing-race-actions .game-button{white-space:nowrap}.typing-race-arena{position:relative;padding:14px;border:1px solid var(--border,#dbe4f0);border-radius:24px;background:linear-gradient(180deg,#f8fbff,#eef4fb);overflow:hidden}.typing-race-arena::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 15%,rgba(23,105,255,.08),transparent 28%),radial-gradient(circle at 85% 90%,rgba(14,165,233,.08),transparent 26%);pointer-events:none}.typing-race-countdown{position:absolute;z-index:20;inset:0;display:grid;place-items:center;background:rgba(15,23,42,.36);backdrop-filter:blur(3px);font-size:clamp(58px,10vw,110px);font-weight:900;color:#fff;text-shadow:0 8px 30px rgba(15,23,42,.35)}.typing-race-countdown[hidden]{display:none}.typing-race-lanes{position:relative;display:grid;gap:8px}.typing-race-lane{position:relative;display:grid;grid-template-columns:128px minmax(0,1fr) 62px;gap:10px;align-items:center;min-height:56px;padding:7px 9px;border-radius:15px;background:rgba(255,255,255,.78);border:1px solid rgba(203,213,225,.85)}.typing-race-lane.is-user{border-color:#93c5fd;background:rgba(239,246,255,.94);box-shadow:0 0 0 1px rgba(59,130,246,.08)}.typing-race-lane.is-ghost{border-style:dashed;opacity:.85}.typing-race-racer-label strong,.typing-race-racer-label small{display:block}.typing-race-racer-label strong{font-size:13px}.typing-race-racer-label small{margin-top:2px;color:var(--muted,#64748b);font-size:10px}.typing-race-track{position:relative;height:38px;border-radius:11px;background:repeating-linear-gradient(90deg,#dbe5ef 0,#dbe5ef 28px,#e9eff5 28px,#e9eff5 56px);overflow:hidden;border:1px solid #cbd5e1}.typing-race-track::after{content:"";position:absolute;right:5px;top:0;bottom:0;width:10px;background:repeating-conic-gradient(#111 0 25%,#fff 0 50%) 50%/8px 8px;opacity:.72}.typing-race-vehicle{position:absolute;z-index:2;left:calc(var(--race-progress,0) * (100% - 54px));top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:30px;border-radius:10px;background:linear-gradient(135deg,#1769ff,#60a5fa);box-shadow:0 5px 12px rgba(15,23,42,.18);transition:left .18s linear}.typing-race-lane:nth-child(2n) .typing-race-vehicle{background:linear-gradient(135deg,#7c3aed,#a78bfa)}.typing-race-lane:nth-child(3n) .typing-race-vehicle{background:linear-gradient(135deg,#059669,#34d399)}.typing-race-lane:nth-child(4n) .typing-race-vehicle{background:linear-gradient(135deg,#ea580c,#fb923c)}.typing-race-lane:nth-child(5n) .typing-race-vehicle{background:linear-gradient(135deg,#be123c,#fb7185)}.typing-race-lane.is-ghost .typing-race-vehicle{background:linear-gradient(135deg,#64748b,#cbd5e1);opacity:.72}.typing-race-vehicle::before{content:"";width:25px;height:10px;border-radius:8px 12px 4px 4px;background:rgba(255,255,255,.9);box-shadow:-8px 10px 0 -5px #0f172a,8px 10px 0 -5px #0f172a}.typing-race-lane-place{text-align:right;font-size:13px;font-weight:900;color:var(--text,#0f172a)}.typing-race-passage-panel{margin-top:14px;padding:18px;border:1px solid var(--border,#dbe4f0);border-radius:22px;background:var(--surface,#fff)}.typing-race-passage-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:11px}.typing-race-passage-head>div span,.typing-race-passage-head>div strong{display:block}.typing-race-passage-head>div span{font-weight:800;color:#1769ff}.typing-race-passage-head>div strong{margin-top:2px;color:var(--muted,#64748b);font-size:11px}.typing-race-status{color:var(--muted,#64748b);font-size:12px;text-align:right}.typing-race-passage{height:190px;overflow:auto;padding:18px;border-radius:17px;background:var(--surface-2,#f8fafc);border:1px solid var(--border,#dbe4f0);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(17px,1.7vw,22px);line-height:1.85;letter-spacing:.01em;scroll-behavior:smooth}.typing-race-passage span{border-radius:3px}.typing-race-passage .done{color:#15803d;background:rgba(34,197,94,.08)}.typing-race-passage .current{color:#fff;background:#1769ff;box-shadow:0 0 0 3px rgba(23,105,255,.14)}.typing-race-passage .future{color:var(--text,#334155)}.typing-race-passage.is-error .current{background:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.14)}.typing-race-input-label{display:block;margin:13px 0 6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#64748b)}.typing-race-passage-panel textarea{min-height:58px;padding:14px 15px;resize:none;font-size:16px;line-height:1.5}.typing-race-passage-panel textarea:focus{outline:3px solid rgba(23,105,255,.13);border-color:#1769ff}.typing-race-input-help{display:block;margin-top:7px;color:var(--muted,#64748b);line-height:1.45}.typing-race-results{margin-top:15px;padding:20px;border-radius:22px;border:1px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#f8fafc)}.typing-race-result-head{display:flex;gap:16px;justify-content:space-between;align-items:center}.typing-race-result-head span{font-size:40px}.typing-race-result-head h2{margin:0;font-size:28px}.typing-race-result-head p{margin:4px 0 0;color:var(--muted,#64748b)}.typing-race-result-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:16px 0}.typing-race-result-grid>div{padding:12px;border-radius:15px;background:rgba(255,255,255,.84);border:1px solid #dbeafe;text-align:center}.typing-race-result-grid span{display:block;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase}.typing-race-result-grid strong{display:block;margin-top:4px;font-size:21px}.typing-race-result-note{margin:0 0 13px;line-height:1.55;color:#334155}.typing-race-result-actions{display:flex;flex-wrap:wrap;gap:8px}.typing-race-side{display:grid;gap:14px;position:sticky;top:86px}.typing-race-profile-card>p{margin-bottom:0}.typing-race-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.typing-race-record-grid>div{padding:11px;border-radius:13px;background:var(--surface-2,#f8fafc);border:1px solid var(--border,#dbe4f0);text-align:center}.typing-race-record-grid span{display:block;color:var(--muted,#64748b);font-size:10px;text-transform:uppercase;font-weight:800}.typing-race-record-grid strong{display:block;margin-top:3px;font-size:19px}.typing-race-content{margin-top:20px}.typing-race-content p{line-height:1.75}
html[data-theme=dark] .typing-race-hero-badges span{background:#172554;color:#bfdbfe}html[data-theme=dark] .typing-race-arena{background:linear-gradient(180deg,#111827,#0f172a)}html[data-theme=dark] .typing-race-lane{background:rgba(17,24,39,.88);border-color:#334155}html[data-theme=dark] .typing-race-lane.is-user{background:rgba(30,58,138,.25);border-color:#3b82f6}html[data-theme=dark] .typing-race-track{background:repeating-linear-gradient(90deg,#1e293b 0,#1e293b 28px,#273449 28px,#273449 56px);border-color:#475569}html[data-theme=dark] .typing-race-results{background:linear-gradient(135deg,#172554,#111827);border-color:#1d4ed8}html[data-theme=dark] .typing-race-result-grid>div{background:rgba(15,23,42,.72);border-color:#1e3a8a}html[data-theme=dark] .typing-race-result-note{color:#cbd5e1}
@media(prefers-color-scheme:dark){html[data-theme=system] .typing-race-hero-badges span{background:#172554;color:#bfdbfe}html[data-theme=system] .typing-race-arena{background:linear-gradient(180deg,#111827,#0f172a)}html[data-theme=system] .typing-race-lane{background:rgba(17,24,39,.88);border-color:#334155}html[data-theme=system] .typing-race-lane.is-user{background:rgba(30,58,138,.25);border-color:#3b82f6}html[data-theme=system] .typing-race-track{background:repeating-linear-gradient(90deg,#1e293b 0,#1e293b 28px,#273449 28px,#273449 56px);border-color:#475569}html[data-theme=system] .typing-race-results{background:linear-gradient(135deg,#172554,#111827);border-color:#1d4ed8}html[data-theme=system] .typing-race-result-grid>div{background:rgba(15,23,42,.72);border-color:#1e3a8a}html[data-theme=system] .typing-race-result-note{color:#cbd5e1}}
@media(max-width:1180px){.typing-race-layout{grid-template-columns:1fr}.typing-race-side{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}.typing-race-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.typing-race-topbar{align-items:flex-start;flex-direction:column}.typing-race-actions{justify-content:flex-start}.typing-race-live-metrics{width:100%}}
@media(max-width:820px){.typing-race-hero{align-items:flex-start;flex-direction:column}.typing-race-hero-badges{justify-content:flex-start}.typing-race-side{grid-template-columns:1fr}.typing-race-live-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.typing-race-lane{grid-template-columns:96px minmax(0,1fr) 48px}.typing-race-result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.typing-race-card{padding:14px}.typing-race-settings{grid-template-columns:1fr}.typing-race-live-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.typing-race-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.typing-race-actions .game-button:first-child{grid-column:1/-1}.typing-race-lane{grid-template-columns:76px minmax(0,1fr) 36px;padding:6px}.typing-race-racer-label strong{font-size:11px}.typing-race-racer-label small{font-size:9px}.typing-race-passage{height:220px;padding:13px;font-size:17px}.typing-race-passage-head{align-items:flex-start;flex-direction:column}.typing-race-status{text-align:left}.typing-race-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.typing-race-result-head{align-items:flex-start}.typing-race-result-head span{font-size:32px}}


/* v17.8.95 — compact race-first layout + level progression */
body[data-game-type="typing-race"] .typing-race-shell{padding-top:8px}
body[data-game-type="typing-race"] .typing-race-hero{margin:0 0 9px;padding:9px 13px;border-radius:17px;align-items:center;box-shadow:none}
body[data-game-type="typing-race"] .typing-race-hero .games-eyebrow{display:none}
body[data-game-type="typing-race"] .typing-race-hero h1{margin:0;font-size:23px;line-height:1.2}
body[data-game-type="typing-race"] .typing-race-hero p{display:none}
body[data-game-type="typing-race"] .typing-race-hero-badges{gap:5px;max-width:none}
body[data-game-type="typing-race"] .typing-race-hero-badges span{padding:5px 8px;font-size:10px}
body[data-game-type="typing-race"] .typing-race-layout{grid-template-columns:minmax(0,1fr) 245px;gap:12px}
body[data-game-type="typing-race"] .typing-race-card{padding:12px;border-radius:20px}
body[data-game-type="typing-race"] .typing-race-settings{gap:7px}
body[data-game-type="typing-race"] .typing-race-settings label{gap:3px;font-size:9px}
body[data-game-type="typing-race"] .typing-race-settings select,
body[data-game-type="typing-race"] .typing-race-settings input{min-height:35px;padding:7px 8px;border-radius:9px;font-size:11px}
body[data-game-type="typing-race"] .typing-race-topbar{margin:9px 0;gap:8px}
body[data-game-type="typing-race"] .typing-race-live-metrics{gap:5px}
body[data-game-type="typing-race"] .typing-race-live-metrics>div{padding:6px 5px;border-radius:10px}
body[data-game-type="typing-race"] .typing-race-live-metrics span{font-size:8px}
body[data-game-type="typing-race"] .typing-race-live-metrics strong{font-size:16px;margin-top:1px}
body[data-game-type="typing-race"] .typing-race-actions{gap:5px}
body[data-game-type="typing-race"] .typing-race-actions .game-button{padding:8px 10px;border-radius:10px;font-size:11px;box-shadow:none}
body[data-game-type="typing-race"] .typing-race-arena{padding:9px;border-radius:16px}
body[data-game-type="typing-race"] .typing-race-lanes{gap:5px}
body[data-game-type="typing-race"] .typing-race-lane{grid-template-columns:100px minmax(0,1fr) 48px;gap:7px;min-height:43px;padding:4px 6px;border-radius:11px}
body[data-game-type="typing-race"] .typing-race-track{height:30px}
body[data-game-type="typing-race"] .typing-race-vehicle{width:38px;height:25px}
body[data-game-type="typing-race"] .typing-race-passage-panel{margin-top:9px;padding:11px;border-radius:16px}
body[data-game-type="typing-race"] .typing-race-passage{height:145px;padding:12px;font-size:clamp(15px,1.5vw,19px);line-height:1.65}
body[data-game-type="typing-race"] .typing-race-side{gap:8px;top:72px}
.typing-race-level-result{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 0;padding:8px 10px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;font-size:12px}
.typing-race-level-result strong{color:#1e40af}.typing-race-level-result span{color:#475569}
html[data-theme=dark] .typing-race-level-result{background:#172554;border-color:#1e40af}html[data-theme=dark] .typing-race-level-result strong{color:#bfdbfe}html[data-theme=dark] .typing-race-level-result span{color:#cbd5e1}
@media(prefers-color-scheme:dark){html[data-theme=system] .typing-race-level-result{background:#172554;border-color:#1e40af}html[data-theme=system] .typing-race-level-result strong{color:#bfdbfe}html[data-theme=system] .typing-race-level-result span{color:#cbd5e1}}
@media(max-width:1180px){body[data-game-type="typing-race"] .typing-race-layout{grid-template-columns:1fr}body[data-game-type="typing-race"] .typing-race-side{grid-template-columns:repeat(3,minmax(0,1fr));position:static}}
@media(max-width:720px){body[data-game-type="typing-race"] .typing-race-hero-badges{display:none}body[data-game-type="typing-race"] .typing-race-settings{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-game-type="typing-race"] .typing-race-topbar{display:block}body[data-game-type="typing-race"] .typing-race-actions{margin-top:7px;justify-content:flex-start}body[data-game-type="typing-race"] .typing-race-side{grid-template-columns:1fr}}
