.practice-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.practice-toolbar button{min-height:44px}.practice-feedback{white-space:pre-line;overflow-wrap:anywhere;color:#386b42;min-height:28px}.recording-panel{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:18px;background:#f6faed}.recording-panel audio{max-width:100%;width:100%}.stroke-stage{width:min(280px,100%);aspect-ratio:1;margin:18px auto;background:linear-gradient(transparent 49.5%,#e5e9d9 50%,transparent 50.5%),linear-gradient(90deg,transparent 49.5%,#e5e9d9 50%,transparent 50.5%);border:1px solid #dce7cb;touch-action:none}.account-grid{display:grid;gap:10px;margin:16px 0}.account-grid input{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px}.sync-status{font-size:12px;overflow-wrap:anywhere;margin:10px 0}.modal{max-height:90dvh;overflow-y:auto}.modal button,.writing-card .text-btn,.tab,.pagination button,.audio-btn,.mark-btn{min-height:44px}.audio-btn{min-width:44px}.writing-card .practice-toolbar{justify-content:center}.writing-card .practice-toolbar .secondary{padding:8px;font-size:13px}.lesson-grid{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.lesson-grid button{min-width:44px;min-height:44px;border-radius:12px;background:#edf5e4}.lesson-grid .active{background:var(--green);color:white}.question-progress{font-size:14px;margin:10px 0}.source-note a{color:#247845}.safe-file{margin:12px 0}.safe-file input{display:block;max-width:100%;margin-top:8px}.parent-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.parent-summary div{background:#f0f6e8;padding:12px;border-radius:12px}button.busy{opacity:.6}.writing-grid{min-width:0}.module-heading{min-width:0}.answers{min-width:0}.answers button{overflow-wrap:anywhere}.recording-consent{display:flex;align-items:flex-start;gap:10px;margin-top:10px;font-size:13px}.recording-consent input{width:18px;min-width:18px;height:18px;flex:none;margin:4px 0}.modal h2{padding-right:36px}
@media(max-width:600px){.main{padding:12px}.topbar{padding:10px 12px}.top-actions{gap:5px}.top-actions .circle-btn{width:40px}.module-heading{max-width:100%;gap:10px}.module-heading h1{font-size:26px}.module-header{padding:20px 15px}.module-daily{display:none}.module-heading .module-symbol{width:48px;height:52px}.module-header .module-art{opacity:.12}.module-heading .muted{overflow-wrap:anywhere}.panel{padding:18px}.question{font-size:22px}.writing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.writing-card{padding:10px}.poem{padding:18px 10px}.poem-lines{font-size:22px}.poem-lines ruby{margin:0 1px}.poem-lines rt{font-size:10px}.tabs .tab{padding:9px 12px}.game-layout{grid-template-columns:minmax(0,1fr)}.parent-summary{grid-template-columns:1fr}.modal{padding:22px;width:calc(100vw - 24px)}.progress-line{gap:8px}.recording-panel{padding:12px}.phonics-reading .letter-display{font-size:72px}.hero h2{font-size:27px}.hero-copy{width:100%}.hero-art{opacity:.22;pointer-events:none}.hero{padding:24px}.hero-copy p{max-width:95%}.footer{flex-wrap:wrap;gap:8px}.topbar .status-pill{display:none}.pinyin-toggle{padding:7px;min-width:56px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep the freehand guide inside each grid cell at every card width. */
.tian{container-type:inline-size;overflow:hidden}.char{font-size:110px;font-size:80cqw}
.footer{flex-wrap:wrap;gap:8px}.footer>span{min-width:0;max-width:100%}.footer .motto-text{display:block}

/* Keep seven calendar days visible on narrow phones. */
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(2px,1vw,7px)}
.day{min-width:0}
.day-circle{width:min(36px,100%);height:auto;aspect-ratio:1}
/* Annotated button labels stay together beside their icon. */
.primary{max-width:100%}
.auto-pinyin-text{min-width:0;overflow-wrap:anywhere}
.primary .icon{flex-shrink:0}
