@font-face{font-family:Typing Test Mono;src:url(https://static.maerwen.com/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Typing Test Mono;src:url(https://static.maerwen.com/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}.tt-page{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f5f7f6;--white:#fff;--ink:#19392f;--ink-strong:#102e25;--muted:#68766f;--line:#e1e8e3;--line-strong:#cbd8d0;--green:#245a46;--green-hover:#164432;--mint:#b8edce;--mint-light:#eff8f1;--mint-ink:#246141;--panel:#163e30;--panel-muted:#c1d1c7;--panel-line:#466454;--red:#ad3934;--red-light:#fff0ed;--amber:#80551e;--amber-light:#fff7e8;--font-body:"PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-display:"PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono:"Typing Test Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:12px;--text-sm:14px;--text:16px;--text-lg:20px;--title:clamp(32px, 3.3vw, 44px);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--radius-sm:6px;--radius:12px;--radius-lg:16px;--pill:999px;--duration:.2s;--ease:cubic-bezier(.2, .65, .3, 1);--content:1184px;font-family:var(--font-body);color:var(--ink);background:var(--page);font-synthesis:none;--bg:#f5f7f6;--surface:#fff;--fg:#19392f;--border:#e1e8e3;--accent:#245a46;--accent-soft:#eff8f1;--pale:#fff}.xiaoma-app.is-typing-test{background:#f5f7f6}.xiaoma-app.is-typing-test>.xiaoma-main{max-width:1248px;padding:48px 32px 64px}.tt-page{font-family:var(--font-body);color:var(--ink);font-size:16px;font-weight:400;line-height:1.6}.tt-page *,.tt-page :before,.tt-page :after{box-sizing:border-box}.tt-page :where(h1,h2,h3,p){margin:0}.tt-page h1{letter-spacing:-.04em;font-size:max(32px,min(3.3vw,44px));font-weight:650;line-height:1.35}.tt-page h2{letter-spacing:-.02em;font-size:20px;font-weight:650;line-height:1.5}.tt-page h3{font-size:16px;font-weight:650}.tt-page :where(button,input,select){font:inherit}.tt-page :where(button){cursor:pointer;color:inherit}.tt-page button:disabled{cursor:not-allowed}.tt-page :where(a){color:inherit;text-decoration:none}.tt-page button:focus-visible{outline-offset:4px;outline:3px solid #438a61}.tt-page a:focus-visible{outline-offset:4px;outline:3px solid #438a61}.tt-page input:focus-visible{outline-offset:4px;outline:3px solid #438a61}.tt-page select:focus-visible{outline-offset:4px;outline:3px solid #438a61}.tt-page [tabindex]:focus-visible{outline-offset:4px;outline:3px solid #438a61}.tt-page svg{stroke-width:1.7px;flex:none}.tt-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.tt-muted{color:var(--muted)}.tt-small{font-size:14px}.tt-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tt-eyebrow{color:var(--mint-ink);font:600 11px/1.6 var(--font-mono);letter-spacing:.16em;margin-bottom:12px!important}.tt-page .tt-primary{color:var(--white)}.tt-link{color:var(--green);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:0}.tt-lock-note{color:var(--amber);font-size:13px;margin:12px 0 0!important}.tt-lock-note .tt-link{margin-left:8px}.tt-option-check{display:none}.tt-option[aria-pressed=true] .tt-option-check{display:block}.tt-course-note{border:1px solid var(--line);background:var(--white);border-radius:12px;margin-bottom:24px;padding:20px;font-size:14px}.tt-course-note h2{margin-bottom:8px}.tt-course-note a{text-decoration:underline}.tt-loading{text-align:center;color:var(--muted);padding:64px}.tt-load-error{color:var(--red);margin-bottom:20px!important}body.typing-test-running .is-typing-test>.xiaoma-main{padding-top:32px}.tt-page-head{justify-content:space-between;align-items:flex-end;gap:var(--s8);margin-bottom:var(--s8);display:flex}.tt-eyebrow{color:var(--mint-ink);letter-spacing:.16em;margin-bottom:var(--s3);font-size:11px;font-weight:600;line-height:1.6}.tt-intro-copy{color:var(--muted);margin-top:var(--s3)}.tt-text-button{padding:var(--s2) 0;justify-content:center;align-items:center;gap:var(--s2);font-size:var(--text-sm);min-height:44px;color:var(--muted);white-space:nowrap;background:0 0;border:0;font-weight:550;display:inline-flex}.tt-setup-grid{gap:var(--s6);grid-template-columns:minmax(0,1.85fr) minmax(300px,1fr);align-items:stretch;display:grid}.tt-settings-panel{padding:var(--s8);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg)}.tt-section-heading{align-items:center;gap:var(--s3);justify-content:space-between;display:flex}.tt-section-heading .tt-section-no{color:var(--muted);font:var(--text-xs) var(--font-mono);letter-spacing:.08em}.tt-settings-panel>.tt-small{margin-top:var(--s1)}.tt-options-group{margin:var(--s6) 0 0;border:0;min-width:0;padding:0}.tt-options-group legend{align-items:center;gap:var(--s2);margin-bottom:var(--s3);font-size:var(--text-sm);padding:0;font-weight:600;display:flex}.tt-duration-options,.tt-content-options{gap:var(--s3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tt-option{align-items:flex-start;gap:var(--s1);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);padding:var(--s4);text-align:left;transition:background var(--duration) var(--ease), border-color var(--duration) var(--ease);flex-direction:column;min-width:0;display:flex;position:relative}.tt-option[aria-pressed=true]{background:var(--mint-light);border-color:var(--green)}.tt-option-check{top:var(--s3);right:var(--s3);color:var(--green);place-items:center;display:grid;position:absolute}.tt-option[aria-pressed=false] .tt-option-check{display:none}.tt-duration-main{align-items:baseline;gap:var(--s1);white-space:nowrap;display:flex}.tt-duration-number{font-family:var(--font-mono);letter-spacing:-.06em;font-size:32px;font-weight:500;line-height:1.25}.tt-duration-unit{font-size:var(--text-xs)}.tt-option-caption{align-items:center;gap:var(--s1);color:var(--muted);font-size:var(--text-xs);display:flex}.tt-content-option{align-items:center;gap:var(--s3);padding:var(--s4) var(--s3);flex-direction:row;min-height:76px}.tt-content-option .tt-option-check{top:var(--s2);right:var(--s2)}.tt-option-copy{gap:var(--s1);display:grid}.tt-option-name{font-size:var(--text-sm);white-space:nowrap;font-weight:600;display:block}.tt-option-description{color:var(--muted);font-size:var(--text-xs);white-space:nowrap;display:block}.tt-setting-bottom{margin-top:var(--s8);padding-top:var(--s6);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:var(--s6);display:flex}.tt-begin-note{align-items:flex-start;gap:var(--s2);font-size:var(--text-xs);color:var(--muted);max-width:200px;display:flex}.tt-primary,.tt-secondary{justify-content:center;align-items:center;gap:var(--s3);min-height:48px;padding:var(--s3) var(--s6);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;transition:background var(--duration) var(--ease), border-color var(--duration) var(--ease);font-weight:600;display:inline-flex}.tt-primary{border:1px solid var(--green);background:var(--green);color:var(--white)}.tt-secondary{border:1px solid var(--line-strong);background:var(--white);color:var(--ink)}.tt-primary:disabled{color:#56665c;background:#e1e8e3;border-color:#e1e8e3}.tt-primary kbd{font:11px var(--font-mono);padding:var(--s1) var(--s2);border:1px solid #6c8a7a;border-radius:4px;line-height:1}.tt-start-button{min-width:240px;min-height:52px}.tt-speed-panel{padding:var(--s8);background:var(--panel);color:var(--white);border-radius:var(--radius-lg);flex-direction:column;min-width:0;display:flex;position:relative}.tt-speed-panel h2{font-size:var(--text);font-weight:500}.tt-status-chip{align-items:center;gap:var(--s1);border:1px solid var(--line);border-radius:var(--pill);padding:var(--s1) var(--s2);white-space:nowrap;font-size:11px;line-height:1.3;display:inline-flex}.tt-speed-panel .tt-status-chip{color:var(--panel-muted);border-color:var(--panel-line)}.tt-speed-value{align-items:baseline;gap:var(--s3);margin-top:var(--s8);display:flex}.tt-speed-number{font-family:var(--font-mono);letter-spacing:-.06em;font-size:max(64px,min(6vw,88px));font-weight:400;line-height:1}.tt-speed-unit{font-size:var(--text-sm);color:var(--panel-muted)}.tt-speed-caption{margin-top:var(--s3);font-size:var(--text-xs);color:var(--panel-muted)}.tt-speed-scale{gap:var(--s1);margin-top:var(--s8);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.tt-scale-cell{gap:var(--s2);text-align:center;min-width:0;display:grid}.tt-scale-bar{background:var(--panel-line);border-radius:2px;height:32px;display:block}.tt-scale-cell:nth-child(2) .tt-scale-bar{height:40px}.tt-scale-cell:nth-child(3) .tt-scale-bar{height:48px}.tt-scale-cell:nth-child(4) .tt-scale-bar{height:56px}.tt-scale-cell:nth-child(5) .tt-scale-bar{height:64px}.tt-scale-cell:nth-child(6) .tt-scale-bar{height:72px}.tt-scale-cell{align-content:end}.tt-scale-cell.is-active .tt-scale-bar{background:var(--mint)}.tt-scale-name{color:var(--panel-muted);font-size:11px;display:block}.tt-scale-cell.is-active .tt-scale-name{color:var(--white)}.tt-scale-min{font:10px var(--font-mono);color:var(--panel-muted);display:block}.tt-speed-panel-footer{border-top:1px solid var(--panel-line);padding-top:var(--s5);align-items:center;gap:var(--s2);font-size:var(--text-xs);color:var(--panel-muted);margin-top:auto;display:flex}.tt-personal-best{padding:var(--s6) var(--s8);margin-top:var(--s6);background:var(--white);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:var(--s6);grid-template-columns:180px repeat(3,minmax(0,1fr));display:grid}.tt-pb-label h2{font-size:var(--text)}.tt-pb-label p{color:var(--muted);font-size:var(--text-xs);margin-top:var(--s1)}.tt-pb-item{padding-left:var(--s8);border-left:1px solid var(--line);justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.tt-pb-duration{color:var(--muted);font-size:var(--text-sm);white-space:nowrap}.tt-pb-result{align-items:baseline;gap:var(--s2);white-space:nowrap;display:flex}.tt-pb-number{font:500 28px/1.3 var(--font-mono);letter-spacing:-.04em}.tt-pb-unit{font-size:var(--text-xs);color:var(--muted)}.tt-history-section{margin-top:var(--s10)}.tt-history-head{justify-content:space-between;align-items:center;gap:var(--s4);margin-bottom:var(--s4);display:flex}.tt-history-title{align-items:baseline;gap:var(--s3);display:flex}.tt-history-title h2{font-size:18px}.tt-history-title>span{color:var(--muted);font:var(--text-xs) var(--font-mono)}.tt-select-wrap{align-items:center;gap:var(--s2);color:var(--muted);font-size:var(--text-xs);display:flex}.tt-select-wrap select{border:1px solid var(--line);background:var(--white);border-radius:var(--radius-sm);padding:var(--s2) var(--s3);min-height:40px;color:var(--ink);font-size:var(--text-xs);cursor:pointer}.tt-history-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);table-layout:fixed}.tt-history-table th{text-align:left;color:var(--muted);font-weight:400;font-size:var(--text-xs);padding:var(--s3) var(--s5);border-block:1px solid var(--line);background:#edf2ee}.tt-history-table th:first-child{width:23%}.tt-history-table th:nth-child(2){width:22%}.tt-history-table th:nth-child(3){width:17%}.tt-history-table th:nth-child(4),.tt-history-table th:nth-child(5){width:14%}.tt-history-table th:last-child{text-align:right;width:10%}.tt-history-table td{padding:var(--s4) var(--s5);border-bottom:1px solid var(--line);vertical-align:middle}.tt-history-table td:last-child{text-align:right}.tt-history-table td .tt-text-button{min-height:32px;color:var(--green);padding:0}.tt-history-table .tt-status-chip{background:var(--mint-light);color:var(--mint-ink);border:0}.tt-history-table .tt-status-chip.is-off{color:var(--amber);background:var(--amber-light)}.tt-empty-history{justify-content:center;align-items:center;gap:var(--s4);border-bottom:1px solid var(--line);min-height:156px;display:flex}.tt-empty-symbol{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:44px;height:44px;color:var(--muted);background:var(--white);place-items:center;display:grid}.tt-empty-history h3{font-size:var(--text-sm);font-weight:500}.tt-empty-history p{font-size:var(--text-xs);color:var(--muted);margin-top:var(--s1)}.tt-history-foot{justify-content:space-between;align-items:center;gap:var(--s4);padding-top:var(--s3);color:var(--muted);font-size:var(--text-xs);display:flex}.tt-history-foot>span{align-items:center;gap:var(--s2);display:flex}.tt-history-foot .tt-text-button{font-size:var(--text-xs)}.tt-run-breadcrumb{justify-content:space-between;align-items:center;gap:var(--s4);margin-bottom:var(--s6);display:flex}.tt-run-label{align-items:center;gap:var(--s2);color:var(--muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.tt-run-label i{color:var(--line-strong);font-style:normal}.tt-run-title-row{justify-content:space-between;align-items:flex-start;gap:var(--s6);margin-bottom:var(--s6);display:flex}.tt-run-toggles{flex-wrap:wrap;align-items:center;gap:8px 18px;display:flex}.tt-run-title-row h1{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:max(24px,min(2.6vw,32px))}.tt-run-title-row p{font-size:var(--text-sm);color:var(--muted);margin-top:var(--s2)}.tt-toggle-label{align-items:center;gap:var(--s3);font-size:var(--text-sm);color:var(--muted);white-space:nowrap;cursor:pointer;min-height:44px;display:flex}.tt-toggle-label input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line-strong);border-radius:var(--pill);cursor:pointer;width:36px;height:20px;transition:background var(--duration);background:#dce4de;flex:none;position:relative}.tt-toggle-label input:after{content:"";background:var(--white);width:12px;height:12px;transition:transform var(--duration);border-radius:50%;position:absolute;top:3px;left:3px}.tt-toggle-label input:checked{background:var(--green);border-color:var(--green)}.tt-toggle-label input:checked:after{transform:translate(16px)}.tt-workspace{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg)}.tt-run-stats{gap:var(--s6);padding:var(--s6) var(--s8);grid-template-columns:1.1fr 1fr 1fr 1fr;align-items:center;display:grid}.tt-run-stat{border-left:1px solid var(--line);padding-left:var(--s8)}.tt-run-stat:first-child{border:0;padding-left:0}.tt-run-stat dt{font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--s1);gap:var(--s2);align-items:center;display:flex}.tt-run-stat dd{font:500 28px/1.3 var(--font-mono);letter-spacing:-.03em;white-space:nowrap;margin:0}.tt-run-stat dd small{margin-left:var(--s1);font:var(--text-xs) var(--font-body);color:var(--muted)}.tt-run-stat:first-child dd{font-size:40px}.tt-run-stat dd.is-low{color:var(--red)}.tt-timer-track{background:var(--line);transform-origin:0;height:3px;overflow:hidden}.tt-timer-fill{background:var(--green);transform-origin:0;width:100%;height:100%;transition:transform var(--duration) linear;transform:scaleX(0)}.tt-board-topline{justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s5) var(--s8) 0;font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;display:flex}.tt-board-legend{gap:var(--s4);display:flex}.tt-board-legend>span{align-items:center;gap:var(--s1);display:flex}.tt-board-legend .tt-error{color:var(--red)}@keyframes tt-ui-blink{50%{opacity:0}}.tt-board-footer{border-top:1px solid var(--line);padding:var(--s4) var(--s8);justify-content:space-between;align-items:center;gap:var(--s4);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:#fafcf9;display:flex}.tt-live-hint{align-items:center;gap:var(--s2);color:var(--muted);font-size:var(--text-xs);display:flex}.tt-live-hint.is-warn{color:var(--red)}.tt-live-dot{background:var(--green);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.tt-run-actions{align-items:center;gap:var(--s6);flex:none;display:flex}.tt-run-actions .tt-primary{min-width:100px;min-height:44px}.tt-run-actions .tt-text-button{font-size:var(--text-sm)}.tt-run-bottom-note{justify-content:space-between;align-items:center;gap:var(--s4);margin-top:var(--s5);font-size:var(--text-xs);color:var(--muted);display:flex}.xiaoma-app.is-typing-test:has(.tt-result)>.xiaoma-main{padding-top:20px}.tt-result-heading .tt-eyebrow{margin-bottom:6px!important}.tt-result-heading{margin-bottom:var(--s4);justify-content:space-between;align-items:center;gap:var(--s6);display:flex}.tt-result-heading h1{font-size:28px}.tt-result-heading .tt-intro-copy{font-size:var(--text-sm);margin-top:var(--s1)}.tt-result-actions{gap:var(--s3);flex-wrap:wrap;display:flex}.tt-result-sheet{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white)}.tt-result-main{gap:var(--s8);padding:var(--s4) var(--s5);grid-template-columns:1.1fr 1fr;align-items:center;display:grid}.tt-result-main>div:first-child{-moz-column-gap:var(--s3);align-items:center;column-gap:var(--s3);grid-template-columns:auto 1fr;display:grid}.tt-result-label,.tt-result-comparison{grid-column:1/-1}.tt-result-label{align-items:center;gap:var(--s2);font-size:var(--text-sm);color:var(--muted);display:flex}.tt-result-big{align-items:baseline;gap:var(--s3);margin-block-start:6px;margin-block-end:6px;display:flex}.tt-result-big strong{font:500 56px / 1.1 var(--font-mono);letter-spacing:-.07em}.tt-result-big>span{color:var(--muted);font-size:var(--text-sm)}.tt-result-badges{align-items:center;gap:var(--s2);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.tt-tier-badge{padding:var(--s1) var(--s3);background:var(--mint-light);color:var(--mint-ink);border-radius:var(--pill);font-weight:600}.tt-best-badge{align-items:center;gap:var(--s1);color:var(--mint-ink);display:flex}.tt-result-comparison{font-size:var(--text-xs);color:var(--muted);margin-top:var(--s2)}.tt-result-comparison b{color:var(--green);font-weight:600}.tt-result-scale{-moz-column-gap:var(--s3);align-items:center;column-gap:var(--s3);background:var(--page);border-radius:var(--radius);grid-template-columns:auto 1fr;padding:12px 16px;display:grid}.tt-result-scale h3{font-size:var(--text-sm)}.tt-result-scale>p{font-size:var(--text-xs);color:var(--muted);text-align:right;margin-top:0}.tt-page .tt-result-scale .tt-speed-scale{margin-top:var(--s2);grid-column:1/-1}.tt-result-scale .tt-scale-cell{gap:var(--s1)}.tt-result-scale .tt-scale-bar{background:#dfe7e1}.tt-result-scale .tt-scale-cell.is-active .tt-scale-bar{background:var(--green)}.tt-result-scale .tt-scale-name,.tt-result-scale .tt-scale-min{color:var(--muted)}.tt-result-scale .tt-scale-cell.is-active .tt-scale-name{color:var(--green);font-weight:650}.tt-result-metrics{gap:var(--s4);border-top:1px solid var(--line);padding:var(--s3) var(--s5);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.tt-result-metrics>div{padding-left:var(--s6);border-left:1px solid var(--line)}.tt-result-metrics>div:first-child{border:0;padding-left:0}.tt-result-metrics dt{font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--s1)}.tt-result-metrics dd{font:500 24px/1.3 var(--font-mono);letter-spacing:-.03em;margin:0}.tt-result-metrics dd small{font-size:var(--text-sm)}.tt-result-metrics .tt-metric-note{margin-top:var(--s1);font:11px var(--font-body);color:var(--muted);display:block}.tt-result-notice{color:var(--muted);font-size:var(--text-xs);align-items:flex-start;gap:6px;margin-top:10px;padding:0;display:flex}.tt-result-notice strong{font-weight:400}.tt-result-notice.is-off{color:var(--amber)}.tt-result>.result-replay{margin-top:var(--s5)}.tt-result>.achievement-unlocks{margin-top:var(--s8);margin-bottom:0}.tt-review-section{margin-top:var(--s8)}.tt-review-head{justify-content:space-between;align-items:center;gap:var(--s4);margin-bottom:var(--s4);display:flex}.tt-review-head h3{font-size:18px}.tt-review-tabs{gap:var(--s1);padding:var(--s1);border-radius:var(--radius-sm);border:1px solid var(--line);background:#eaf0eb;display:flex}.tt-review-tabs button{padding:var(--s2) var(--s4);color:var(--muted);font-size:var(--text-xs);white-space:nowrap;background:0 0;border:0;border-radius:4px}.tt-review-tabs button[aria-selected=true]{background:var(--white);color:var(--ink);box-shadow:0 1px 3px #19392f0a}.tt-comparison-panel{padding:var(--s6) var(--s8);border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}.tt-comparison-legend{align-items:center;gap:var(--s5);font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.tt-comparison-legend>span{align-items:center;gap:var(--s2);display:flex}.tt-comparison-legend .tt-wrong{color:var(--red);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.tt-comparison-legend .tt-correct{color:var(--green)}.tt-comparison-text{letter-spacing:.08em;word-break:break-all;font-size:18px;line-height:2.25}.tt-comparison-text p+p{margin-top:var(--s3)}.tt-comparison-text .tt-correct{color:var(--green)}.tt-comparison-text .tt-todo{color:#6b776f}.tt-wrong-char{padding:0 var(--s1);background:var(--red-light);color:var(--red);font:inherit;text-underline-offset:4px;line-height:inherit;cursor:pointer;border:0;border-radius:3px;margin:0;-webkit-text-decoration:underline wavy;text-decoration:underline wavy;display:inline}.tt-comparison-help{margin-top:var(--s4);font-size:var(--text-xs);color:var(--muted)}.tt-wrong-list{gap:var(--s3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.tt-wrong-item{gap:var(--s2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--s4);background:var(--white);text-align:left;display:grid}.tt-wrong-item>small{color:var(--muted);font-size:var(--text-xs);display:block}.tt-wrong-pair{justify-content:center;align-items:center;gap:var(--s4);font-size:24px;display:flex}.tt-wrong-pair del{color:var(--red)}.tt-next-step{justify-content:space-between;align-items:center;gap:var(--s6);margin-top:var(--s6);padding:var(--s6) 0;border-block:1px solid var(--line);display:flex}.tt-next-step .tt-eyebrow{margin-bottom:var(--s2);font-size:10px}.tt-next-step h3{font-size:var(--text)}.tt-next-step p{font-size:var(--text-sm);color:var(--muted);margin-top:var(--s1);max-width:64ch}.tt-next-step .tt-text-button{color:var(--green);flex:none}.tt-dialog-top{justify-content:space-between;align-items:center;gap:var(--s4);margin-bottom:var(--s5);display:flex}.tt-dialog-top h2{font-size:22px}.tt-icon-button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);width:36px;height:36px;color:var(--muted);flex:none;place-items:center;display:grid}.tt-dialog-copy{color:var(--muted);font-size:var(--text-sm);line-height:1.8}.tt-dialog-small{margin-top:var(--s4);font-size:var(--text-xs);color:var(--muted)}.tt-rule-section+.tt-rule-section{margin-top:var(--s6)}.tt-rule-section h3{margin-bottom:var(--s2);font-size:var(--text-sm)}.tt-rule-section p,.tt-rule-section li{font-size:var(--text-sm);color:var(--muted);line-height:1.8}.tt-rule-section ul{margin:var(--s2) 0 0;padding-left:var(--s5)}.tt-rule-tiers{gap:var(--s2);margin-top:var(--s3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tt-error-detail{align-items:center;gap:var(--s6);text-align:center;padding:var(--s6);background:var(--page);border-radius:var(--radius);grid-template-columns:1fr auto 1fr;display:grid}.tt-error-detail strong{font-size:44px;font-weight:500;display:block}.tt-error-detail small{font-size:var(--text-xs);color:var(--muted);display:block}.tt-error-detail .tt-typed-char{color:var(--red);text-decoration:line-through}.tt-error-detail .tt-expected-char{color:var(--green)}@media (hover:hover){.tt-text-button:hover{color:var(--green)}.tt-option:hover{border-color:var(--green);background:#f7faf7}.tt-option[aria-pressed=true]:hover{background:#e8f4ec}.tt-primary:hover{background:var(--green-hover);border-color:var(--green-hover);color:var(--white)}.tt-secondary:hover{border-color:var(--green);background:var(--mint-light);color:var(--ink)}.tt-icon-button:hover{color:var(--ink);border-color:var(--green)}.tt-wrong-char:hover,.tt-wrong-item:hover{outline:1px solid var(--red);outline-offset:1px}.tt-history-table tbody tr:hover{background:#eef4ee}}@media (min-width:1440px){.tt-setup-grid{grid-template-columns:minmax(0,1.9fr) minmax(320px,1fr)}.tt-settings-panel{padding:var(--s8) var(--s10)}}@media (max-width:1100px){.tt-setup-grid{gap:var(--s5);grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr)}.tt-settings-panel,.tt-speed-panel{padding:var(--s6)}.tt-content-option{align-items:flex-start;gap:var(--s2);flex-direction:column}.tt-content-option .tt-option-copy{gap:0}.tt-personal-best{padding:var(--s6);gap:var(--s4);grid-template-columns:148px repeat(3,minmax(0,1fr))}.tt-pb-item{padding-left:var(--s5);gap:var(--s1);flex-direction:column;align-items:flex-start}.tt-start-button{min-width:208px}.tt-begin-note{max-width:160px}.tt-run-stats{padding-inline:var(--s6)}.tt-run-stat{padding-left:var(--s6)}.tt-result-main{gap:var(--s8);padding:var(--s4) var(--s5)}.tt-result-metrics{padding-inline:var(--s6)}.tt-wrong-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:800px){.tt-page-head{align-items:flex-start}.tt-intro-copy{font-size:var(--text-sm)}.tt-setup-grid{gap:var(--s5);grid-template-columns:1fr}.tt-content-option{flex-direction:row;align-items:center}.tt-speed-panel{-moz-column-gap:var(--s8);column-gap:var(--s8);row-gap:var(--s2);grid-template-columns:1fr 1fr;display:grid}.tt-speed-panel .tt-section-heading{grid-column:1/-1}.tt-speed-value{margin-top:var(--s4)}.tt-speed-number{font-size:64px}.tt-speed-caption{grid-column:1;margin-top:0}.tt-speed-panel .tt-speed-scale{margin-top:var(--s3);grid-area:2/2/4}.tt-speed-panel-footer{margin-top:var(--s4);padding-top:var(--s3);grid-column:1/-1}.tt-personal-best{grid-template-columns:repeat(3,minmax(0,1fr))}.tt-pb-label{justify-content:space-between;align-items:baseline;gap:var(--s3);grid-column:1/-1;display:flex}.tt-pb-label p{margin:0}.tt-pb-item{padding-left:var(--s4)}.tt-pb-item:nth-child(2){border:0;padding-left:0}.tt-pb-item{flex-flow:wrap;align-items:center}.tt-history-table th:nth-child(5),.tt-history-table td:nth-child(5){display:none}.tt-history-table th:first-child{width:26%}.tt-history-table th:nth-child(2){width:24%}.tt-history-table th:nth-child(3){width:20%}.tt-history-table th:nth-child(4){width:18%}.tt-history-table th:last-child{width:12%}.tt-history-table th,.tt-history-table td{padding-inline:var(--s3);font-size:var(--text-xs)}.tt-result-heading{flex-direction:column;align-items:flex-start}.tt-result-heading h1{font-size:28px}.tt-result-main{gap:var(--s6);padding:var(--s4) var(--s5);grid-template-columns:1fr 1fr}.tt-result-metrics{padding-inline:var(--s5)}.tt-result-metrics>div{padding-left:var(--s4)}.tt-result-metrics dd{font-size:22px}.tt-run-stat{padding-left:var(--s4)}.tt-run-stats{gap:var(--s4);grid-template-columns:1.2fr 1fr 1fr}.tt-run-stat:last-child{display:none}.tt-run-title-row{gap:var(--s4)}.tt-board-topline,.tt-board-footer{padding-inline:var(--s6)}.tt-live-hint{max-width:320px}.tt-run-bottom-note>span{max-width:60%}.tt-wrong-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.tt-page{--title:30px}.xiaoma-app.is-typing-test:has(.tt-result)>.xiaoma-main{padding-top:16px}.tt-page-head{gap:var(--s3);margin-bottom:var(--s6);flex-wrap:wrap}.tt-eyebrow{font-size:10px}.tt-intro-copy{max-width:30ch;line-height:1.8}.tt-settings-panel{padding:var(--s5)}.tt-settings-panel h2{font-size:18px}.tt-section-no{display:none}.tt-settings-panel>.tt-small{font-size:var(--text-xs)}.tt-options-group{margin-top:var(--s5)}.tt-duration-options,.tt-content-options{gap:var(--s2)}.tt-option{padding:var(--s3)}.tt-duration-number{font-size:28px}.tt-option-check{top:var(--s2);right:var(--s2)}.tt-duration-unit,.tt-option-caption{font-size:10px}.tt-content-option{gap:var(--s2);flex-direction:column;align-items:flex-start;min-height:88px}.tt-option-name{font-size:var(--text-sm)}.tt-option-description{font-size:10px}.tt-setting-bottom{gap:var(--s3);margin-top:var(--s6);padding-top:var(--s5);flex-direction:column}.tt-begin-note{order:2;align-items:center;max-width:none;font-size:11px}.tt-begin-note br{display:none}.tt-start-button{width:100%}.tt-start-button kbd{display:none}.tt-speed-panel{padding:var(--s5);-moz-column-gap:var(--s4);column-gap:var(--s4)}.tt-speed-panel h2{font-size:var(--text-sm)}.tt-speed-number{font-size:56px}.tt-speed-unit{font-size:var(--text-xs)}.tt-speed-caption{max-width:20ch;font-size:10px}.tt-scale-name{font-size:10px}.tt-scale-min{font-size:9px}.tt-speed-panel .tt-scale-bar{height:24px!important}.tt-speed-panel .tt-scale-cell:nth-child(2) .tt-scale-bar{height:30px!important}.tt-speed-panel .tt-scale-cell:nth-child(3) .tt-scale-bar{height:36px!important}.tt-speed-panel .tt-scale-cell:nth-child(4) .tt-scale-bar{height:42px!important}.tt-speed-panel .tt-scale-cell:nth-child(5) .tt-scale-bar{height:48px!important}.tt-speed-panel .tt-scale-cell:nth-child(6) .tt-scale-bar{height:54px!important}.tt-speed-panel-footer{font-size:11px}.tt-personal-best{padding:var(--s5);gap:var(--s4) var(--s2)}.tt-pb-label h2{font-size:var(--text-sm)}.tt-pb-label p{font-size:10px}.tt-pb-item{align-items:flex-start;gap:var(--s1);padding-left:var(--s3);flex-direction:column;display:flex}.tt-pb-duration{font-size:var(--text-xs)}.tt-pb-number{font-size:24px}.tt-pb-unit{font-size:10px}.tt-history-section{margin-top:var(--s8)}.tt-history-title{gap:var(--s2)}.tt-history-title h2{font-size:var(--text)}.tt-history-title>span{font-size:10px}.tt-select-wrap select{padding:var(--s2);font-size:11px}.tt-history-table th:nth-child(2),.tt-history-table td:nth-child(2){display:none}.tt-history-table th:first-child{width:34%}.tt-history-table th:nth-child(3){width:26%}.tt-history-table th:nth-child(4){width:24%}.tt-history-table th:last-child{width:16%}.tt-history-table td,.tt-history-table th{padding-inline:var(--s2)}.tt-history-table td .tt-text-button{font-size:11px}.tt-empty-history{gap:var(--s3);min-height:140px}.tt-empty-history p{max-width:25ch}.tt-history-foot{align-items:flex-start}.tt-history-foot>span{max-width:21ch;font-size:10px}.tt-history-foot .tt-text-button{min-height:32px;font-size:11px}.tt-run-breadcrumb{margin-bottom:var(--s4)}.tt-run-breadcrumb .tt-text-button{font-size:var(--text-xs)}.tt-run-label{gap:var(--s1);font-size:10px}.tt-run-title-row{gap:var(--s2);margin-bottom:var(--s4);flex-direction:column}.tt-run-title-row h1{font-size:22px}.tt-run-title-row p{font-size:var(--text-xs)}.tt-toggle-label{min-height:36px;font-size:var(--text-xs);margin-left:auto}.tt-run-stats{padding:var(--s4);gap:var(--s3)}.tt-run-stat{padding-left:var(--s3)}.tt-run-stat dt{gap:var(--s1);font-size:10px}.tt-run-stat dd{font-size:24px}.tt-run-stat:first-child dd{font-size:32px}.tt-run-stat dd small{font-size:10px}.tt-board-topline{padding:var(--s4) var(--s4) 0;gap:var(--s2);font-size:10px}.tt-board-legend{gap:var(--s3)}.tt-board-footer{padding:var(--s3) var(--s4);gap:var(--s3);flex-wrap:wrap}.tt-live-hint{max-width:none;font-size:11px}.tt-run-actions{gap:var(--s5);margin-left:auto}.tt-run-actions .tt-primary{min-width:80px;min-height:40px;padding:var(--s2) var(--s4);font-size:var(--text-xs)}.tt-run-actions .tt-text-button{font-size:var(--text-xs)}.tt-run-bottom-note{align-items:flex-start;font-size:10px}.tt-run-bottom-note>span{max-width:60%}.tt-run-bottom-note .tt-text-button{min-height:24px;padding:0;font-size:10px}.tt-result-heading{gap:var(--s3)}.tt-result-heading .tt-eyebrow{display:none}.tt-result-heading h1{font-size:26px}.tt-result-actions{width:100%}.tt-result-actions .tt-primary{flex:1}.tt-result-actions .tt-primary kbd{display:none}.tt-result-actions .tt-secondary{padding-inline:var(--s4)}.tt-result-main{gap:var(--s3);padding:var(--s4);grid-template-columns:1fr 1.2fr}.tt-result-main>div:first-child{display:block}.tt-result-badges{gap:var(--s1);font-size:10px}.tt-tier-badge{padding:2px 8px}.tt-result-big strong{font-size:46px}.tt-result-scale{background:0 0;padding:0;display:block}.tt-result-scale h3{font-size:11px}.tt-result-scale>p,.tt-result-scale .tt-scale-name,.tt-result-scale .tt-scale-min{font-size:9px}.tt-result-scale>p{text-align:left;margin-top:var(--s1)}.tt-result-comparison.is-first{display:none}.tt-result-label,.tt-result-comparison{font-size:11px}.tt-result-big{flex-wrap:wrap;gap:4px}.tt-result-big>span{font-size:11px}.tt-result-metrics{gap:var(--s2);padding:var(--s3) var(--s4);grid-template-columns:repeat(4,minmax(0,1fr))}.tt-result-metrics>div{padding-left:var(--s2)}.tt-result-metrics dt{white-space:nowrap;font-size:10px}.tt-result-metrics dd{font-size:20px}.tt-result-metrics dd small{font-size:10px}.tt-result-metrics .tt-metric-note{display:none}.tt-result-notice{font-size:11px}.tt-review-head{align-items:flex-start}.tt-review-head h3{font-size:var(--text);padding-top:var(--s2)}.tt-review-tabs button{padding:var(--s2) var(--s3);font-size:11px}.tt-comparison-panel{padding:var(--s4)}.tt-comparison-legend{gap:var(--s3);font-size:10px}.tt-comparison-text{font-size:var(--text)}.tt-comparison-help{font-size:10px}.tt-next-step{align-items:flex-start;gap:var(--s2);flex-direction:column}.tt-next-step p{font-size:var(--text-xs)}.tt-dialog-top h2{font-size:var(--text-lg)}.tt-dialog-copy{font-size:var(--text-sm)}.tt-dialog-small{font-size:11px}}.tt-page .tt-speed-scale{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin-top:32px;display:grid}.tt-review-tabs button[data-state=active]{background:var(--white);color:var(--ink);box-shadow:0 1px 3px #19392f0a}.tt-review-tabs button[role=tab]{min-height:36px}.tt-comparison-panel[data-state=inactive]{display:none}.tt-result-notice>svg{flex:none;margin-top:2px}.tt-correct{color:var(--green)}.tt-wrong{color:var(--red);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.tt-todo{color:#6b776f}.tt-comparison-legend i{font-style:normal}.tt-guest-note{border:1px solid var(--line);background:var(--mint-light);border-radius:12px;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;padding:24px;display:flex}.tt-guest-note p{color:var(--muted);margin-top:4px;font-size:14px}.tt-dialog-overlay{z-index:100;background:#102e2570;position:fixed;top:0;bottom:0;left:0;right:0}.tt-dialog{z-index:101;border:1px solid var(--line);background:var(--white);border-radius:16px;width:min(480px,100vw - 32px);max-height:calc(100dvh - 48px);padding:32px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 24px 96px #102e2526}.tt-dialog-copy{margin-bottom:24px!important}.tt-rule-tiers>div{border:1px solid var(--line);border-radius:6px;gap:4px;padding:12px;font-size:12px;display:grid}.tt-rule-tiers>div span{color:var(--muted);font:11px var(--font-mono)}.tt-icon-button{cursor:pointer}.tt-run .tt-board{--tt-cell:40px;background:var(--white);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;border:0;border-radius:0;height:calc(100dvh - 440px);min-height:312px;max-height:480px;margin-top:12px;padding:16px 32px 32px}.tt-run .tt-pair{margin-bottom:24px}.tt-run .tt-cell{font-weight:400}.tt-run .tt-row--target .tt-cell{color:#64736b}.tt-run .tt-row--target .tt-cell.is-typed{color:var(--ink)}.tt-run .tt-row--input .tt-cell{border-bottom:1px solid var(--line)}.tt-run .tt-row--input .tt-cell.is-ok{color:var(--green)}.tt-run .tt-row--input .tt-cell.is-bad{background:var(--red-light);color:var(--red);text-underline-offset:5px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.tt-run .tt-row--input .tt-cell.is-cursor{border-bottom:2px solid var(--green);background:var(--mint-light)}.tt-run .tt-row--input .tt-cell.is-cursor:after{background:var(--green)}.tt-run .tt-blur-note{display:none}.tt-run .tt-compose{background:var(--white);color:var(--ink);border-color:var(--green);font-weight:400}.tt-run .tt-ime:focus-visible{outline:0}.tt-run-breadcrumb .tt-run-label{text-overflow:ellipsis;white-space:nowrap;max-width:60%;display:block;overflow:hidden}@media (max-width:800px){.xiaoma-app.is-typing-test>.xiaoma-main{padding:32px 24px 64px}.tt-run .tt-board{padding-inline-start:24px;padding-inline-end:24px}}@media (max-width:520px){.xiaoma-app.is-typing-test>.xiaoma-main{padding:24px 16px 72px}body.typing-test-running .is-typing-test>.xiaoma-main{padding-top:16px;padding-bottom:24px}.tt-page h1{font-size:30px}.tt-eyebrow{font-size:10px}.tt-dialog{padding:24px}.tt-run .tt-board{--tt-cell:30px;height:calc(100dvh - 410px);min-height:260px;max-height:400px;padding:12px 12px 24px}.tt-guest-note{flex-direction:column;align-items:flex-start;gap:16px;padding:20px}.tt-page .tt-start-button{min-width:0}.tt-page .tt-result-actions kbd{display:none}.tt-review-head{flex-wrap:wrap}.tt-page .tt-review-tabs button{padding:8px 12px}}@media (prefers-reduced-motion:reduce){.tt-page *,.tt-page :after{transition:none!important;animation:none!important}}.tt-options-group legend>span{color:var(--muted);font-size:12px;font-weight:400}@media (max-width:520px){.tt-run-breadcrumb .tt-run-label{display:none}}.tt-breadcrumb-meta{justify-content:flex-end;align-items:center;gap:24px;min-width:0;display:flex}.tt-run-breadcrumb .tt-breadcrumb-meta .tt-run-label{max-width:420px}@media (max-width:520px){.tt-breadcrumb-meta{gap:0}.tt-breadcrumb-meta .tt-text-button{font-size:12px}}body:has(.xiaoma-app.is-typing-test){background:#f5f7f6}
