/* Common lesson rhythm: content first, 44px primary targets, no decorative gaps. */
body[data-screen^="lab"] header,body[data-screen^="lesson"] header{height:56px;padding:8px 20px}body[data-screen^="lab"] .brand,body[data-screen^="lesson"] .brand{font-size:16px;gap:8px}body[data-screen^="lab"] .brand img,body[data-screen^="lesson"] .brand img{width:31px;height:31px}body[data-screen^="lab"] .brand small,body[data-screen^="lesson"] .brand small{font-size:7px;letter-spacing:2px}body[data-screen^="lab"] main,body[data-screen^="lesson"] main{min-height:0}body[data-screen^="lab"] footer,body[data-screen^="lesson"] footer{display:none}body[data-screen^="lab"] .letter-page-top{padding:3px 0;font-size:11px;min-height:30px}body[data-screen^="lab"] .letter-page-top .plain{padding:4px;min-height:30px;font-size:12px}#auto-play-fallback{text-align:center;padding:4px}#auto-play-fallback button{min-height:44px;font-size:14px;padding:7px 14px}
.compact-directory{padding-bottom:70px}.directory-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0 9px}.directory-heading h1{font-size:22px;margin:0;line-height:1.3}.directory-heading p{font-size:11px;color:var(--muted);margin:3px 0}.directory-heading .stage-reset{font-size:11px;min-height:36px;padding:5px 9px;flex-shrink:0}.sound-directory{margin:0}.sound-directory-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.sound-record{padding:1px 2px 2px;border-radius:9px;box-shadow:none;min-width:0}.sound-record-main{display:flex;align-items:center;min-width:0;gap:1px}.sound-record .directory-symbol{flex:1;width:0;min-width:0;height:44px;min-height:44px;font-size:25px;padding:0;line-height:1.1}.sound-record .detail-short{width:44px;min-width:44px;min-height:44px;padding:0;background:#edf3dc;border:1px solid #dce6c7;border-radius:7px;font-size:12px;text-decoration:none;color:#4b7140;touch-action:manipulation}.sound-record .practice-records{display:flex;flex-wrap:nowrap;gap:1px;justify-content:center;height:18px;margin-top:1px}.sound-record .letter-stat,.sound-record .clear-letter{font-size:10px;min-width:0;min-height:18px;height:18px;padding:0 2px;line-height:18px;border-radius:4px;white-space:nowrap}.sound-record .clear-letter{flex-basis:auto;text-decoration:none}.sound-record[data-group="双元音"]{border-color:#c9b9d9}.sound-record[data-group="组合发音"]{border-color:#dec18b}.lab-main-actions{position:fixed;left:0;right:0;bottom:0;z-index:8;display:flex;justify-content:center;gap:10px;padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom));background:#f7f8eef7;border-top:1px solid var(--border);box-shadow:0 -4px 12px #4666400a}.lab-main-actions>button{width:190px;min-height:44px;padding:9px 14px;font-size:16px}.consonant-directory{margin:0 auto;gap:4px}.consonant-directory>article{flex-wrap:nowrap;gap:6px;border-radius:10px;padding:3px 8px;box-shadow:none;min-height:52px}.consonant-directory .directory-letter{font-size:28px;min-height:44px;width:36px;padding:0;flex-shrink:0}.consonant-directory .mapping-symbols{flex:1;gap:3px;min-width:0}.consonant-directory .mapping-symbol{min-height:44px;min-width:35px;font-size:21px;padding:0 5px;border-radius:6px}.consonant-directory .practice-records{flex-basis:auto;flex-wrap:nowrap;margin:0;gap:2px}.consonant-directory .letter-stat,.consonant-directory .clear-letter{font-size:10px;min-width:0;min-height:25px;padding:0 3px;white-space:nowrap;line-height:25px}.consonant-directory .clear-letter{text-decoration:none}.consonant-directory .detail-short{position:static;width:44px;min-width:44px;min-height:44px;margin:0;padding:0;font-size:12px;background:#edf3dc;border-radius:7px;text-decoration:none}
.lab-learn-panel{max-width:650px;margin:4px auto;padding:12px 18px;text-align:center;border-radius:18px}.phoneme-focus .card-kicker{font-size:11px;margin:0}.lab-learn-panel .sound-symbol{font-size:56px;line-height:1.2;margin:2px 0 7px}.sound-controls,.mapping-sound-controls{display:flex;gap:6px;align-items:center;justify-content:center}.sound-controls>button,.mapping-sound-controls>button{min-height:44px;padding:7px 14px;font-size:14px}.original-audio{font-size:12px!important;padding:6px 10px!important;min-width:44px}.lab-learn-panel .example-row{margin:12px 0;padding:9px 12px;gap:8px}.lab-learn-panel .example-row strong{font-size:25px}.lab-learn-panel .example-row .ipa{font-size:20px}.lab-learn-panel .example-row .audio-button{min-height:44px;font-size:14px;padding:7px 12px}.lab-learn-panel .task-nav{margin:8px 0 0;padding-top:10px;border-top:1px solid var(--border);gap:8px}.lab-learn-panel .task-nav button{min-height:44px;padding:8px 13px;font-size:15px}.mouth-tip{border:1px solid #e3e8d1;border-radius:9px;background:#f5f7e8;margin:9px 0 0;text-align:left;padding:4px 9px}.mouth-tip summary{font-size:12px;color:#839065;cursor:pointer;min-height:27px;line-height:27px}.mouth-tip p{font-size:12px;line-height:1.6;color:#6e7e63;margin:5px 0 7px}.lab-learn-panel .consonant-big{font-size:58px;line-height:1.1;margin:0 0 8px}.lab-learn-panel .mapping-details{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;max-width:320px;margin:auto}.lab-learn-panel .mapping-details.multiple{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.lab-learn-panel .mapping-details>section{min-width:0;max-width:none;padding:10px 7px;border-radius:12px;margin:0}.mapping-detail-symbol{font-size:34px;line-height:1.2;margin-bottom:7px}.mapping-detail-symbol small{font-size:15px}.mapping-sound-controls{gap:4px}.mapping-sound-controls>button{font-size:13px;padding:7px 9px}.mapping-word{display:grid;justify-items:center;gap:2px;margin-top:9px}.mapping-word strong{font-size:24px;line-height:1.2}.mapping-word .ipa{font-size:18px;line-height:1.4}.mapping-word .audio-button{font-size:13px;padding:5px 12px;min-height:44px;margin-top:4px}
.lab-quiz-panel{max-width:650px;margin:4px auto;padding:14px 18px;border-radius:18px}.compact-quiz-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--border);padding-bottom:9px}.compact-quiz-heading h1{font-size:18px;line-height:1.4;margin:0}.compact-quiz-heading>span{font-size:12px;color:var(--muted);white-space:nowrap}.lab-quiz-panel .question-prompt{font-size:18px;margin:12px 0;line-height:1.6}.lab-quiz-panel>.audio-button{min-height:44px;font-size:15px;padding:7px 17px}.lab-quiz-panel .options{gap:9px;margin:13px 0 0}.lab-quiz-panel .option{min-height:62px;padding:7px;font-size:28px;border-radius:14px}.audible-option:before{content:'🔊';font-family:system-ui;font-size:11px;margin-right:7px;vertical-align:middle}.listening-option{background:#e5efc9!important;border-color:#769b4c!important;box-shadow:inset 0 0 0 1px #769b4c}.contextual-question{display:flex;justify-content:center;align-items:center;gap:5px;flex-wrap:wrap}.contextual-question>span{font-size:14px}.question-letter,.question-word-audio{background:#edf3de;border:1px solid #e0e7d0;border-radius:8px;min-height:44px;padding:2px 8px;color:var(--green);font-family:Andika,sans-serif;font-weight:700}.question-letter{font-size:31px;min-width:40px}.question-word-audio{font-size:24px}.option-listen-note{font-size:11px;color:#89957c;margin:-6px 0 3px}.compact-feedback{padding:8px 10px!important;border-radius:12px;margin-top:12px!important;text-align:center}.compact-feedback>div{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.compact-feedback strong{font-size:13px}.compact-feedback span{font-size:13px}.compact-feedback .ipa{font-size:21px}.feedback-audio{background:#eef3db;border:1px solid #d8e3c1;border-radius:8px;min-width:44px;min-height:44px;padding:0;font-size:17px}.lab-quiz-panel .compact-feedback .secondary{margin:6px auto 0;min-height:44px;padding:7px 13px;font-size:14px;width:100%}
@media(max-width:680px){body[data-screen^="lab"] header,body[data-screen^="lesson"] header{height:50px;padding:6px 12px}body[data-screen^="lab"] main,body[data-screen^="lesson"] main{padding:0 8px}.directory-heading{margin:2px 0 6px}.directory-heading h1{font-size:19px}.directory-heading p{font-size:10px}.directory-heading .stage-reset{font-size:10px;min-height:32px;padding:4px 7px}.sound-directory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.sound-record .directory-symbol{font-size:24px}.lab-main-actions{gap:8px;padding-left:10px;padding-right:10px}.lab-main-actions>button{flex:1;max-width:230px;width:auto;font-size:16px}.consonant-directory>article{gap:4px;padding:3px 4px}.consonant-directory .directory-letter{width:31px;min-width:31px}.consonant-directory .mapping-symbol{font-size:20px;min-width:32px;padding:0 4px}.consonant-directory .letter-stat,.consonant-directory .clear-letter{font-size:10px;padding:0 2px}.consonant-directory .practice-records{gap:1px}.lab-learn-panel{padding:10px 12px}.lab-learn-panel .sound-symbol{font-size:52px}.lab-learn-panel .consonant-big{font-size:53px}.lab-learn-panel .mapping-details>section{padding:8px 5px}.mapping-detail-symbol{font-size:31px}.mapping-sound-controls>button{font-size:12px;padding:6px 7px}.mapping-word strong{font-size:22px}.mapping-word .ipa{font-size:18px}.lab-quiz-panel{padding:12px}.lab-quiz-panel .option{min-height:60px;font-size:26px}.compact-quiz-heading h1{font-size:17px}.lab-quiz-panel .question-prompt{font-size:17px}.lab-learn-panel .example-row strong{font-size:24px}.lab-learn-panel .example-row .ipa{font-size:19px}}
/* Existing later lessons use the same compact spacing; long input tasks may scroll. */
body[data-screen^="lesson"] .lesson-top{padding:3px 0;font-size:11px;min-height:30px}body[data-screen^="lesson"] .lesson-top .plain{padding:4px;min-height:30px}body[data-screen^="lesson"] .lesson-progress{margin:4px 0 8px;gap:8px;font-size:10px}body[data-screen^="lesson"] .lesson-panel{padding:12px 15px;border-radius:17px}body[data-screen^="lesson"] .task-heading{padding-bottom:8px}body[data-screen^="lesson"] .task-heading h1{font-size:18px;margin:3px 0}body[data-screen^="lesson"] .task-heading .pill{font-size:10px;padding:2px 9px}body[data-screen^="lesson"] .learn-card{padding-top:6px;min-height:0}body[data-screen^="lesson"] .learn-card .card-kicker{margin:3px 0;font-size:11px}body[data-screen^="lesson"] .audio-status{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}body[data-screen^="lesson"] .task-nav{margin-top:10px;padding-top:10px}body[data-screen^="lesson"] .task-nav button{min-height:44px;padding:8px 13px;font-size:14px}body[data-screen^="lesson"] .big-tip{font-size:14px;line-height:1.7;margin:10px auto}body[data-screen^="lesson"] .rule-title{font-size:22px;margin:8px 0}body[data-screen^="lesson"] .rule-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}body[data-screen^="lesson"] .rule-word{max-width:none;min-width:0;padding:8px 3px}body[data-screen^="lesson"] .rule-word strong{font-size:21px}body[data-screen^="lesson"] .rule-word .ipa{font-size:16px}body[data-screen^="lesson"] .rule-word .audio-button{font-size:12px;min-height:44px;padding:5px}body[data-screen^="lesson"] .word-title{font-size:37px;margin:5px 0}body[data-screen^="lesson"] .word-ipa{font-size:23px;margin:3px 0}body[data-screen^="lesson"] .meaning{margin:3px 0;font-size:12px}body[data-screen^="lesson"] .chunks{margin:12px 0 6px;gap:5px}body[data-screen^="lesson"] .chunk{min-width:43px;min-height:65px;padding:4px 7px}body[data-screen^="lesson"] .chunk strong{font-size:23px}body[data-screen^="lesson"] .chunk span{font-size:17px}body[data-screen^="lesson"] .blend-equation{font-size:16px;margin:7px 0}body[data-screen^="lesson"] .audio-actions{margin:10px 0;gap:6px}body[data-screen^="lesson"] .audio-actions>button{min-height:44px;padding:7px 12px;font-size:14px}body[data-screen^="lesson"] .small-note{font-size:11px;margin:8px 0}body[data-screen^="lesson"] .rule-details{margin:8px 0;font-size:12px}body[data-screen^="lesson"] .save-note{display:none}body[data-screen^="lesson"] .info-mascot svg{max-height:115px}body[data-screen^="lesson"] .feedback{padding:10px;margin-top:12px}body[data-screen^="lesson"] .feedback p{font-size:12px;margin:6px 0}

/* Records sit beneath the symbol, beside a full 44px detail target. */
.sound-record{position:relative;height:49px;padding:1px 2px}.sound-record .directory-symbol{height:44px;min-height:44px;padding:0 0 12px;font-size:24px}.sound-record .practice-records{position:absolute;bottom:2px;left:2px;right:47px;height:13px;margin:0;gap:0;justify-content:space-around}.sound-record .letter-stat,.sound-record .clear-letter{font-size:8px;min-height:13px;height:13px;line-height:13px;min-width:0;padding:0;border:0;background:none;text-decoration:none}.sound-record .letter-stat.has-errors{color:#b15a3d}.sound-directory-grid{gap:3px}

body[data-screen^="lesson"] .word-lesson>.card-kicker{display:none}body[data-screen^="lesson"] .word-lesson .word-title{font-size:34px;line-height:1.15;margin:4px 0}body[data-screen^="lesson"] .word-lesson .word-ipa{font-size:22px;line-height:1.25;margin:2px 0}body[data-screen^="lesson"] .word-lesson .meaning{line-height:1.2;margin:3px 0}body[data-screen^="lesson"] .word-lesson .chunks{margin:9px 0 5px}body[data-screen^="lesson"] .word-lesson .chunk{min-height:59px}body[data-screen^="lesson"] .word-lesson .chunk strong{line-height:1.15}body[data-screen^="lesson"] .word-lesson .chunk span{line-height:1.3}body[data-screen^="lesson"] .word-lesson .small-note{margin:6px 0;line-height:1.5}body[data-screen^="lesson"] .word-lesson .rule-details{padding-top:6px;margin:5px 0}
