:root{color-scheme:light;--ink:#203c39;--muted:#6d7974;--green:#184a45;--line:#dce3db;--paper:#f5f5ee;--accent:#b78b4c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:15px;line-height:1.7}header{max-width:1240px;margin:auto;padding:28px 36px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--green);font-size:24px;font-weight:800;letter-spacing:-1px}.brand span{font-weight:400;letter-spacing:4px;font-size:13px;margin-left:6px}.badge{border:1px solid #cbd7c9;padding:4px 14px;border-radius:30px;font-size:12px;color:#536a5e}main{max-width:1168px;margin:auto;padding:0 0 30px}.intro{padding:56px 0 36px}.eyebrow{font-size:12px;letter-spacing:4px;font-weight:600;color:#778375}h1{font-family:Georgia,"Songti SC","SimSun",serif;font-size:44px;font-weight:500;line-height:1.35;letter-spacing:1px;margin:15px 0 20px}.intro>p{color:var(--muted);max-width:640px;margin-bottom:20px}.status{font-size:12px;display:flex;align-items:center;gap:8px;color:var(--muted)}#status-dot{background:#b09f76;width:7px;height:7px;border-radius:50%}#status-dot.ready{background:#49826a}.workspace{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:24px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:4px;padding:28px}.section-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}.step{font-size:12px;line-height:28px;width:28px;flex-shrink:0;text-align:center;border:1px solid #b9cbc0;border-radius:50%;color:#527265}h2{font-size:20px;font-weight:600;margin:0}.section-top p{margin:4px 0 0;color:var(--muted);font-size:12px}.reading{font-size:19px;line-height:1.95;letter-spacing:.1px}.reading p{margin:0 0 17px}.note{font-size:12px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted)}.right-column{display:grid;gap:20px}.login-row{display:flex;gap:10px;margin-top:8px}input[type=password],input[type=number]{border:1px solid #bbc8bf;border-radius:3px;padding:11px;font:inherit;min-width:0;width:100%;background:#fff;color:var(--ink)}input:focus,button:focus-visible,summary:focus-visible{outline:2px solid #b68a47;outline-offset:3px}button{border:0;border-radius:3px;padding:12px 22px;background:var(--green);color:#fff;font:inherit;cursor:pointer;white-space:nowrap}button:disabled{opacity:.5;cursor:wait}label{font-size:13px}button:hover:not(:disabled){background:#286257}.file-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:24px 10px;border:1px dashed #aabfb1;background:#f6f9f4;cursor:pointer;text-align:center}.file-box>span:last-of-type{font-size:12px;color:var(--muted)}.file-symbol{font-size:28px;color:#5a7b65}.file-box input{width:100%;font-size:12px;margin-top:12px;max-width:285px}.file-box strong{word-break:break-all}audio{width:100%;margin-top:20px}details{margin:18px 0;border-top:1px solid var(--line);padding-top:15px}summary{font-size:13px;cursor:pointer}.fields{display:flex;gap:14px}.fields label{flex:1}.fields input{margin-top:5px}.check{display:flex;align-items:flex-start;gap:10px;line-height:1.65;margin-top:18px}.check input{margin-top:5px;accent-color:var(--green);flex-shrink:0}.subtle{font-size:12px;line-height:1.65;color:var(--muted)}.primary{width:100%;display:flex;justify-content:space-between;margin-top:20px}.message{font-size:13px;color:#9b422f;min-height:0;margin-bottom:0}.job{padding:18px 0;border-top:1px solid var(--line)}.job:first-child{padding-top:0;border-top:0}.job-meta{font-size:11px;color:var(--muted);word-break:break-all}.score-row{display:flex;align-items:center;justify-content:space-between;margin:14px 0}.score{font-family:Georgia,serif;font-size:48px;line-height:1;color:var(--green)}.score small{font-family:inherit;font-size:18px;color:#809087}.prediction{font-weight:600;padding:5px 12px;border:1px solid #9fb4a6;background:#f2f6f1}.prediction.positive{color:#a2582f;border-color:#d1b69e;background:#fbf4ed}.score-meter{height:6px;background:#e8ece5;position:relative;margin:20px 0 14px}.score-fill{height:100%;background:#648c78}.threshold-mark{position:absolute;width:1px;height:16px;top:-5px;background:#a87d47;left:51.5419047619%}.job button{font-size:12px;background:#edf2eb;color:var(--green);padding:6px 12px}.next{display:flex;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin-top:36px;font-size:13px;color:var(--muted)}.next span{color:var(--accent);white-space:nowrap}.next p{margin:0}footer{padding-top:30px;color:var(--muted);font-size:12px}footer>span{font-weight:600;color:#526b5b}footer p{margin:10px 0}footer small{font-size:11px}[hidden]{display:none!important}@media(min-width:1000px){.passage{position:sticky;top:24px}}@media(max-width:1240px){main{padding:0 36px 30px}}@media(max-width:760px){header{padding:20px 22px}main{padding:0 20px 24px}.intro{padding:36px 0 26px}h1{font-size:34px}.workspace{grid-template-columns:minmax(0,1fr)}.card{padding:22px}.reading{font-size:18px}.section-top{margin-bottom:20px}.next{gap:16px}.score{font-size:42px}}
.job button:hover:not(:disabled){background:#dce8dc;color:var(--green)}
.header-actions{display:flex;align-items:center;gap:12px}.quiet{background:transparent;color:var(--green);border:1px solid var(--line);font-size:12px;padding:7px 12px}.quiet:hover:not(:disabled){color:white}.small-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.small-actions button,#use-suggestion{font-size:11px;padding:7px 10px;background:#edf2eb;color:var(--green)}.small-actions button:hover:not(:disabled),#use-suggestion:hover:not(:disabled){background:#dce8dc;color:var(--green)}.delete{color:#9b422f!important}.examples{padding:32px 0;margin-top:30px;border-top:1px solid var(--line)}.example-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.example-grid h3{margin:0;font-size:17px}.example-grid audio{margin:6px 0 14px}.privacy{font-size:12px;line-height:1.8;color:var(--muted)}#waveform{display:block;width:100%;height:72px;background:#f5f8f3;margin:16px 0}#recorder-panel{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.recorder-info{display:flex;justify-content:space-between;gap:20px}#record-time{font-variant-numeric:tabular-nums}#mic-level{width:100%;height:9px;margin-top:10px}.recorder-buttons{display:flex;gap:10px;flex-wrap:wrap}.recorder-buttons button{font-size:13px;padding:10px 16px}#record-stop{background:#a3422e}.recording-mode{padding-bottom:230px}.recording-mode .intro,.recording-mode .right-column,.recording-mode .examples,.recording-mode .privacy,.recording-mode footer,.recording-mode #logout{display:none}.recording-mode .workspace{display:block;margin-top:24px}.recording-mode .passage{position:static;max-width:760px;margin:auto}.recording-mode #recorder-panel{position:fixed;z-index:20;left:0;right:0;bottom:0;max-width:760px;margin:0 auto;background:#fff;padding:18px 28px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -4px 24px #183c3912;border:1px solid var(--line)}.transcript-text{font-size:13px;line-height:1.9;overflow-wrap:anywhere}@media(max-width:760px){.example-grid{grid-template-columns:1fr}.recording-mode #recorder-panel{padding-left:20px;padding-right:20px}.recording-mode .workspace{margin-top:16px}.recording-mode .reading{font-size:19px}.score-row{gap:10px}.prediction{font-size:13px}.header-actions{gap:8px}}

/* v0.3: compact interface and independent passage controls */
.voice-page main{padding-top:30px}.reading-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.segmented{display:flex;gap:0}.segmented button{font-size:12px;padding:7px 14px;border:1px solid var(--line);background:transparent;color:var(--green)}.segmented button[aria-pressed=true]{background:var(--green);color:white}.reading{line-height:2.7;letter-spacing:0}.reading.no-pinyin{line-height:1.95}.reading p{margin-bottom:12px}.reading ruby{ruby-align:center}.reading rt{font:10px "Segoe UI",sans-serif;color:#697970;letter-spacing:0;padding:0 1px}.reading.no-pinyin rt{display:none}.meaning{border-top:1px solid var(--line);margin-top:24px;padding-top:14px;color:var(--muted);font-size:13px;line-height:1.8}.meaning h3{font-size:12px;margin:0 0 8px;font-weight:600}.meaning p{margin:0}select{font:inherit;font-size:12px;border:1px solid var(--line);border-radius:3px;color:var(--green);background:white;padding:8px 10px;max-width:100%}select:focus-visible,.file-box:focus-visible{outline:2px solid #b68a47;outline-offset:3px}.report-language{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);margin:16px 0 8px}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.voice-page #open-recorder{margin-top:0;margin-bottom:16px;justify-content:center}.voice-page .primary{justify-content:center}.construction{min-height:100vh;display:grid;place-items:center;text-align:center}.construction main{margin:auto;padding:32px}.construction h1{font:500 28px "Microsoft YaHei",sans-serif;letter-spacing:2px}.construction p{color:var(--muted);font-size:16px}@media(max-width:760px){.voice-page main{padding-top:20px}.reading-controls{gap:6px}.voice-page .score-row{flex-wrap:wrap}.voice-page header{padding-left:20px;padding-right:20px}.voice-page .card{padding:20px}.voice-page .reading{font-size:20px}.voice-page .reading rt{font-size:10px}.voice-page .recording-mode .reading{font-size:20px}.header-actions select{max-width:122px}}

/* Passage width must not depend on pinyin visibility. */
.workspace>.passage,.right-column,.right-column>.card{min-width:0}.reading{max-width:100%;overflow-wrap:break-word}

/* Compact example choices inside Record or upload. */
.example-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:-4px 0 18px}.example-actions button{white-space:normal;font-size:12px;line-height:1.4;min-height:42px;padding:9px 10px;background:#edf2eb;color:var(--green);border:1px solid var(--line)}.example-actions button:hover:not(:disabled){background:#dce8dc}

/* Direct language choices and managed visitor verification. */
.reading-sentence{display:grid;grid-template-columns:1.2em minmax(0,1fr);column-gap:.35em;align-items:baseline}.sentence-number{font-size:14px;color:#77877d;font-variant-numeric:tabular-nums;user-select:none}.sentence-text{min-width:0}.example-status{font-size:12px;line-height:1.7;color:var(--green);margin:-6px 0 18px;display:flex;align-items:center;gap:8px}.example-status[data-loading=true]::before{content:"";width:13px;height:13px;flex-shrink:0;border:2px solid #dce3db;border-top-color:var(--green);border-radius:50%;animation:example-spin .9s linear infinite}@keyframes example-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.example-status[data-loading=true]::before{animation:none}}
.language-buttons button{padding:7px 10px;min-height:36px}.language-buttons button:hover:not([aria-pressed=true]){background:#dce8dc;color:var(--green)}.voice-page header{gap:12px;flex-wrap:wrap}.voice-page .header-actions{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}#verification-widget{width:100%;min-height:65px}#verification-retry{margin-top:14px}@media(max-width:380px){.voice-page .brand{font-size:21px}.voice-page .brand span{font-size:11px;letter-spacing:2px}.language-buttons button{padding:7px 8px}.voice-page .header-actions{gap:6px}.voice-page header{column-gap:6px}}
