@font-face{font-family:Handwriting Reference;src:url(/fonts/handwriting-reference-v1530.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;color:#243b36;background:#f6f5ef;font-synthesis:none;font-weight:400;--ink:#243b36;--muted:#7b8278;--line:#e4e5dc;--accent:#b87650;--paper:#fffefa}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b8765070;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:36px;letter-spacing:1px;line-height:1.3}h2{font-size:20px;font-weight:600;line-height:1.5}h3{font-size:16px;font-weight:600;line-height:1.6}p{font-size:14px;line-height:1.85;color:#6e776e}small{font-weight:400}input,select,textarea{display:block;width:100%;padding:12px 13px;background:#fffefa;border:1px solid #dfe2d7;border-radius:7px;color:var(--ink);min-width:0}textarea{resize:vertical}input[type=file]{padding:11px;font-size:12px}input[type=checkbox]{width:18px;height:18px;padding:0;accent-color:var(--ink);flex-shrink:0}label{display:block;font-size:13px;font-weight:500;margin-bottom:17px;line-height:1.7}label input,label select,label textarea{margin-top:7px}.primary,.secondary,.danger{display:inline-flex;justify-content:center;align-items:center;gap:18px;padding:13px 22px;min-height:46px;border-radius:7px;font-size:14px;font-weight:500;transition:.2s}.primary{background:var(--ink);color:#fffefa}.primary:hover:not(:disabled){background:#35544b;transform:translateY(-1px)}.secondary{background:var(--paper);border:1px solid #d9ded1;color:#405449}.secondary:hover{background:#eeeee3}.danger{background:#a24636;color:#fff;margin-top:12px}.wide{width:100%}.text-button{background:none;color:var(--accent);padding:10px 0;font-size:13px}.icon-button{width:36px;height:36px;border-radius:50%;font-size:23px;background:#efefe6;color:var(--ink)}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:#8b967e;display:block;margin-bottom:14px}.subtle{font-size:12px;color:#8d9386}.pill{display:inline-block;font-size:11px;color:#6a7b66;background:#edf0e4;padding:5px 10px;border-radius:5px;white-space:nowrap}.pill.light{color:#e1e9d9;background:#ffffff12;border:1px solid #ffffff18}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:26px}.section-line{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.section-line h2,.section-line h3{margin:0}.section-line>span{font-size:11px;color:#92998a}.alert{border:1px solid #e5ddba;background:#faf6e4;padding:13px 16px;font-size:13px;line-height:1.7;border-radius:8px;margin:15px 0;color:#786337}.alert.error{background:#fcf0eb;border-color:#eed3c7;color:#a24e3d}.alert.success{background:#f0f4e9;border-color:#d6e1ce;color:#56734f}.alert button{float:right}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:14px 25px;background:#243b36;box-shadow:0 8px 35px #132a3720;color:#fff;border-radius:8px;z-index:20;font-size:14px;max-width:90vw}.error-text{color:#ab5141;font-size:12px;margin-top:8px}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;width:43px;height:46px;border:1px solid #bcc6b7;font-family:Handwriting Reference,KaiTi,STKaiti,楷体,serif;font-size:32px;line-height:1;background:#eef0e6;color:#334c3c}.brand-mark:after{content:"";position:absolute;right:-4px;bottom:-4px;background:#b87650;width:10px;height:11px}.wordmark{display:flex;gap:16px;align-items:center;font-family:Microsoft YaHei,sans-serif;font-size:21px;font-weight:600;letter-spacing:3px}.wordmark small{font-size:9px;display:block;letter-spacing:1px;margin-top:7px;color:#99a18d}.app-layout{display:flex;min-height:100vh}.sidebar{width:235px;flex-shrink:0;padding:39px 26px 20px;background:#f0f1e7;border-right:1px solid #e3e5d8;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:5}.sidebar .wordmark{font-size:20px;gap:13px;letter-spacing:2px}.sidebar .wordmark small{font-size:9px;letter-spacing:1px}.nav-caption{font-size:10px;letter-spacing:2px;color:#9ca38e;margin:51px 12px 16px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar nav button{padding:15px;text-align:left;background:none;display:flex;align-items:center;gap:15px;border-radius:7px;color:#75816f;font-size:14px}.sidebar nav button small{font-size:8px;letter-spacing:1px;display:block;margin-top:5px;color:#a1aa96}.sidebar nav button.active{background:#e1e7d9;color:#334e37}.sidebar nav button.active small{color:#839577}.nav-icon{font-size:22px;width:25px;text-align:center}.nav-dot{width:5px;height:5px;background:#6d8b60;border-radius:50%;margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:40px}.daily-thought{padding:20px 12px;border-bottom:1px solid #dfe3d5;margin-bottom:19px}.daily-thought>span{font-size:11px;color:#8c967d}.daily-thought p{font-family:Handwriting Reference,KaiTi,STKaiti,楷体,serif;font-size:19px;line-height:1.8;color:#687a5c;margin:13px 0}.daily-thought i{font-size:9px;color:#a0a78f;font-style:normal;letter-spacing:2px}.account-button{display:flex;gap:11px;background:none;align-items:center;width:100%;text-align:left;font-size:12px;color:var(--ink)}.account-button small{display:block;font-size:9px;color:#8b967e;margin-top:4px}.account-button>span:last-child{margin-left:auto;color:#8b967e}.avatar{width:32px;height:32px;border-radius:50%;background:#d9e0cd;display:flex;align-items:center;justify-content:center;color:#789265}.main-content{margin-left:235px;flex:1;min-width:0}.topbar{height:77px;display:flex;align-items:center;justify-content:space-between;padding:0 45px;border-bottom:1px solid #e8e8df;font-size:11px;color:#929a8a}.topbar>div{display:flex;align-items:center;gap:21px}.separator{margin:0 13px;color:#c1c6b9}.privacy-tag{font-size:10px;color:#97a48b}.today-date{font-size:10px;color:#a0a695}.page-body{max-width:1400px;margin:auto;padding:35px 45px 40px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;gap:15px}.page-heading .eyebrow{font-size:9px;margin-bottom:10px;letter-spacing:2px}.page-heading h1{margin-bottom:9px;font-weight:600;font-size:32px}.heading-dot{color:var(--accent);margin-left:4px}.page-heading p{margin-bottom:0;font-size:12px;color:#8e9686;letter-spacing:.5px}.print-button{font-size:11px;background:transparent;min-height:36px;padding:8px 15px}.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:25px;align-items:start}.practice-main{min-width:0}.lesson-banner{background:#2c443a;color:#fffefa;border-radius:12px;padding:30px 30px 23px;overflow:hidden;position:relative;margin-bottom:27px;min-height:231px}.lesson-banner:after{content:"";width:250px;height:250px;position:absolute;right:-115px;top:-100px;border:1px solid #ffffff10;border-radius:50%;box-shadow:0 0 0 25px #ffffff03,0 0 0 50px #ffffff03}.lesson-banner>div:first-child{display:flex;align-items:center;gap:15px}.lesson-day{font-size:11px;letter-spacing:2px;color:#c6d7ba}.lesson-banner h2{font-family:Handwriting Reference,KaiTi,STKaiti,楷体,serif;font-size:30px;font-weight:400;letter-spacing:2px;margin:24px 0 11px;position:relative;z-index:1}.lesson-banner p{color:#afc1a5;font-size:11px;max-width:88%;margin:0;line-height:1.9}.banner-bottom{margin-top:23px;position:relative;display:flex;justify-content:space-between;align-items:center}.banner-bottom>span:first-child{font-size:10px;color:#a7b99c}.banner-bottom strong{color:#dae4d0;font-weight:400;margin-left:9px}.banner-ink{position:absolute;right:4px;bottom:-40px;color:#95ac7825;font-family:Handwriting Reference,KaiTi,楷体,serif;font-size:125px;transform:rotate(-9deg)}.practice-main>.section-line{margin-top:8px}.practice-main>.section-line h2{font-size:17px}.glyph-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.glyph-card{background:#fffefa;border:1px solid var(--line);border-radius:9px;padding:14px 10px 11px;text-align:center}.glyph-square{aspect-ratio:1;position:relative;border:1px solid #e8e5d8;display:flex;align-items:center;justify-content:center;background:linear-gradient(45deg,transparent calc(50% - .5px),#eae7db calc(50% - .5px),#eae7db calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(-45deg,transparent calc(50% - .5px),#eae7db calc(50% - .5px),#eae7db calc(50% + .5px),transparent calc(50% + .5px));margin-bottom:14px}.glyph-square:before,.glyph-square:after{content:"";position:absolute}.glyph-square:before{inset:0 50% 0 auto;border-left:1px dashed #e1dfd1}.glyph-square:after{inset:50% 0 auto;border-top:1px dashed #e1dfd1}.glyph-square>span{font-family:Handwriting Reference,KaiTi,STKaiti,楷体,SimSun,serif;font-size:clamp(38px,4.5vw,72px);position:relative;z-index:1;line-height:1;font-weight:400;color:#344338}.structure-label{font-size:9px;letter-spacing:1px;color:#9ba68e;display:block;margin-bottom:7px}.glyph-card p{font-size:10px;line-height:1.8;color:#818b77;margin:0;text-align:left}.font-disclaimer{font-size:10px;color:#a2a792;line-height:1.7;margin:13px 0 25px}.practice-flow{padding:23px 25px}.practice-flow .section-line h2{font-size:16px}.three-passes{display:grid;grid-template-columns:repeat(3,1fr);padding:4px 0 19px;gap:16px}.three-passes>div{padding-right:10px;border-right:1px solid #eeede2}.three-passes>div:last-child{border:0}.three-passes b{font-size:11px;letter-spacing:1px;font-weight:400;color:#b5a78a}.three-passes h3{font-size:13px;margin:8px 0 6px;font-weight:500}.three-passes p{font-size:10px;color:#939b86;margin:0}.practice-action{display:flex;justify-content:space-between;align-items:center;padding-top:18px;border-top:1px solid #efeee6;gap:12px}.practice-action .primary{font-size:11px;padding:12px 18px;min-height:40px}.timer{display:flex;gap:9px;align-items:center;font-size:9px;color:#9da58f}.timer strong{font-size:21px;font-weight:400;font-variant-numeric:tabular-nums;color:#5e7057;letter-spacing:1px}.timer-light{width:6px;height:6px;border-radius:50%;background:#bdc4b0}.timer-light.running{background:#80a06e;box-shadow:0 0 0 4px #87a77415}.upload-panel{margin-top:22px;padding:25px}.step-label{font-size:9px;color:#ad956d;display:block;margin-bottom:6px;letter-spacing:1px}.upload-panel h2{font-size:16px}.upload-panel>p{font-size:11px}.simple-icon{font-size:30px!important;color:#9fa88b!important}.upload-zone{border:1px dashed #ccd4bc;border-radius:8px;background:#f7f8f0;padding:22px;text-align:center;cursor:pointer;margin:0;position:relative;display:flex;align-items:center;flex-direction:column;gap:9px}.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;margin:0}.upload-zone>span{font-size:25px;font-weight:300;color:#859775}.upload-zone strong{font-size:12px;color:#617353;font-weight:500}.upload-zone small{font-size:10px;color:#abb29d}.upload-zone.disabled{opacity:.5}.practice-aside{display:flex;flex-direction:column;gap:22px}.journey-card{padding:24px 21px}.journey-card .eyebrow{font-size:9px;letter-spacing:1px}.journey-card h3{font-size:15px;margin-bottom:23px}.stat-pair{display:flex;margin-bottom:24px}.stat-pair>div{width:50%;display:flex;flex-direction:column;gap:5px}.stat-pair>div+div{border-left:1px solid #e8eade;padding-left:23px}.stat-pair strong{font-size:30px;font-weight:400;color:#56704d}.stat-pair span{font-size:9px;color:#9ca68b}.mini-progress{display:flex;gap:5px}.mini-progress span{height:4px;flex:1;background:#e9ede0;border-radius:2px}.mini-progress .done{background:#839970}.journey-card p{font-size:10px;margin:12px 0 0;color:#98a18b}.note-card{background:#efeddf;border:1px solid #e8e4d3;border-radius:10px;padding:25px 22px}.note-pin{font-size:22px;color:#b9a173}.note-card h3{font-size:12px;font-weight:500;margin:15px 0 13px;color:#8b805d}.note-card p{font-family:Handwriting Reference,KaiTi,楷体,serif;font-size:21px;color:#776d4d;line-height:1.8}.note-card>span:last-child{font-size:9px;color:#aaa085;line-height:1.9;display:block}.baseline-reminder{padding:22px}.baseline-reminder h3{font-size:13px}.baseline-reminder .eyebrow{font-size:9px;letter-spacing:1px}.baseline-reminder p{font-size:10px;color:#919b82}.baseline-reminder .text-button{font-size:10px}.aside-caption{font-size:9px;color:#b0b5a3;line-height:2;text-align:center}.app-footer{max-width:1400px;margin:auto;display:flex;justify-content:space-between;border-top:1px solid #e8e9de;padding:21px 45px 25px;font-size:9px;color:#acb39e;letter-spacing:1px}.crop-panel,.assessment-panel{margin-top:23px}.crop-panel>p{font-size:12px}.crop-tools{display:flex;align-items:center;gap:9px;margin-bottom:15px;flex-wrap:wrap}.crop-tools>span{font-size:11px;color:#89947b}.chip{padding:8px 12px;background:#f0f1e7;border:1px solid #e0e4d6;border-radius:5px;font-size:11px;color:#7e8d70}.chip.selected{background:#e0e8d7;border-color:#9aaa87;color:#385531}.photo-workspace{position:relative;width:100%;touch-action:none;line-height:0;border:1px solid #d8dece;border-radius:4px;overflow:hidden;-webkit-user-select:none;user-select:none}.photo-workspace>img{display:block;width:100%;height:auto;pointer-events:none}.sample-box{position:absolute;border:1px solid #607a5280;background:#b7d69212;pointer-events:none}.sample-box>span{background:#243b36bf;color:#fff;padding:3px;font-size:8px;line-height:1.2;position:absolute;top:0;left:0;white-space:nowrap}.sample-box.chosen{border:2px solid #d2874c;background:#e1a97215;z-index:2}.sample-box.chosen>span{background:#b87650}.point-marker{position:absolute;width:12px;height:12px;background:#b87650;border-radius:50%;transform:translate(-50%,-50%)}.sample-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:14px 0}.sample-picker button{padding:8px;color:#5c7051;border:1px solid #e0e5d6;border-radius:5px;background:#f6f7f0;font-size:16px}.sample-picker button small{margin-left:8px;font-size:9px;color:#929d85}.sample-picker button.selected{background:#e5ebdc;border-color:#859974}.sample-editor{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sample-editor label{font-size:10px;margin:0}.sample-editor input,.sample-editor select{padding:8px;font-size:12px}.check-row{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:#7c8b70;margin-top:22px}.check-row input{margin-top:3px}.assessment-panel>h2{margin-bottom:22px}.feedback-item{display:flex;gap:16px;padding:19px 0;border-bottom:1px solid #eceee3}.feedback-item h3{font-size:12px;margin:0 0 8px;color:#8e987f}.feedback-item p{font-size:13px;margin:0;color:#52694b}.feedback-symbol{width:29px;height:29px;flex-shrink:0;border-radius:50%;background:#f1e9dc;color:#ab8a57;display:flex;align-items:center;justify-content:center;font-size:19px}.feedback-symbol.positive{background:#e9efdf;color:#7d9666}.feedback-action{background:#eff3e7;padding:19px;margin:22px 0;border-left:3px solid #99ad7f}.feedback-action>span{font-size:10px;color:#8b9b77}.feedback-action p{margin:7px 0 0;color:#46603a;font-size:15px}.assessment-panel details{border-bottom:1px solid #e8ecdf;padding:0 0 18px;margin-bottom:24px;font-size:12px;color:#929c83}.assessment-panel summary{cursor:pointer}.assessment-panel details p{font-size:11px;margin:12px 0 0}.measurement{font-size:10px;line-height:1.8;margin-top:12px;overflow-wrap:anywhere}.form-section-title{font-size:14px}.outcome-options{display:flex;gap:8px;margin:15px 0 22px}.outcome-options button{flex:1;border:1px solid #dfe4d5;border-radius:6px;color:#9ba68c;padding:11px 6px;background:#f9faf5;font-size:12px}.outcome-options button.selected{background:#e5eddb;border-color:#8ca475;color:#48663a}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.completion-card{padding-top:15px}.completion-card>span{color:#74965d}.completion-card p{font-size:12px;margin-top:12px}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:25px}.summary-stats .panel{padding:23px}.summary-stats span{font-size:11px;color:#96a086;display:block}.summary-stats strong{font-size:35px;font-weight:400;display:block;margin-top:15px;color:#527346}.summary-stats small{font-size:11px;color:#a8b195}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:25px}.report-grid p{font-size:12px}.issue-toggle{display:flex;align-items:center;justify-content:space-between;padding-bottom:13px;border-bottom:1px solid #eceee5;font-size:13px}.issue-toggle select{width:116px;padding:8px;font-size:11px;margin:0}.review-list{padding-top:20px}.review-list h3{font-size:13px}.review-list .pill{margin:0 6px 7px 0}.baseline-image{width:100%;max-height:300px;object-fit:contain;margin-bottom:12px;background:#f4f5eb}.comparison-panel .section-line select{width:230px;font-size:11px}.comparison-panel>p{font-size:12px}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.comparison-grid h3{font-size:13px}.comparison-grid img{display:block;width:100%;max-height:650px;object-fit:contain;border:1px solid #e5e9dc;background:#f6f7ef}.empty{padding:55px 24px;text-align:center;color:#929e82}.empty p{color:#9aa48e;font-size:13px}.empty h2{font-size:20px;color:#647958}.empty.small{padding:60px 20px;background:#f7f8ef;font-size:12px;border-radius:7px}.empty-glyph{font-size:65px;font-family:Handwriting Reference,KaiTi,楷体,serif;color:#bcc7ac;margin-bottom:25px}.personal-text{margin-bottom:25px}.personal-text p{font-size:12px}.personal-text button{margin-top:15px;font-size:12px}.library-filter{display:flex;gap:15px;align-items:center}.library-filter>select{width:180px}.search-input{display:flex;align-items:center;flex:1;margin:0;border:1px solid #dfe3d4;border-radius:7px;background:#fffefa;padding:0 15px;gap:10px}.search-input span{font-size:25px;color:#9da98e}.search-input input{border:0;background:transparent;margin:0;font-size:13px;outline:none;padding-left:0}.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.library-card{padding:18px;display:flex;gap:17px;align-items:center}.library-card .glyph-square{width:76px;flex-shrink:0;margin:0}.library-card .glyph-square span{font-size:55px}.library-card h3{font-size:11px;font-weight:400;line-height:1.9;margin:0 0 8px;color:#688057}.library-card p{font-size:9px;margin:0;color:#a0aa91}.history-layout{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:23px}.history-list{display:flex;flex-direction:column;gap:13px}.history-card{display:flex;text-align:left;align-items:center;gap:20px;padding:23px;width:100%;color:#6d7d61}.history-card.selected{border-color:#9cae89;background:#fafcf5}.history-day{text-align:center;padding-right:20px;border-right:1px solid #e2e7d7}.history-day small{font-size:8px;letter-spacing:2px;display:block;color:#a8b296}.history-day strong{font-size:28px;font-weight:400;display:block;margin-top:4px}.history-info{flex:1}.history-info h3{font-size:13px;margin:0 0 9px}.history-info p{font-family:Handwriting Reference,KaiTi,楷体,serif;font-size:22px;margin:0 0 9px;line-height:1.5}.history-info>span{font-size:9px;color:#a2ad91}.history-detail{position:sticky;top:20px}.history-detail h2{font-size:17px}.history-detail>img{display:block;width:100%;max-height:650px;object-fit:contain;background:#f7f8ef;margin-bottom:20px}.history-detail>h3{font-size:13px;margin-top:20px}.history-detail>p{font-size:12px}.record-notes{border-top:1px solid #e2e8d8;padding-top:20px;margin-top:20px}.record-notes p{font-size:12px;margin:12px 0 0}.image-placeholder{min-height:150px;background:#f4f6eb;display:flex;align-items:center;justify-content:center;color:#a3ad93;font-size:11px}.modal-backdrop{position:fixed;inset:0;background:#17291ea6;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:520px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 15px 60px #13271930}.modal>p{font-size:12px}.danger-zone{border-top:1px solid #e7d9c8;padding-top:23px;margin-top:24px}.danger-zone h3{font-size:14px;color:#a95f4a}.danger-zone p{font-size:11px;color:#a8927b}.danger-zone input{font-size:12px}.mobile-nav,.mobile-account,.print-sheet{display:none}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.auth-story{background:#e8ecdd;padding:45px 65px;display:flex;flex-direction:column;overflow:hidden;min-height:100vh}.auth-story .subtle{margin:30px 0 0;font-size:10px}.auth-quote{margin:auto 0;padding:65px 0 30px;position:relative}.auth-quote h1{font-family:Handwriting Reference,KaiTi,STKaiti,楷体,serif;font-size:49px;font-weight:400;line-height:1.6;color:#375033;letter-spacing:4px;position:relative;z-index:1}.auth-quote>p{font-size:13px;line-height:2.1;color:#93a07d;position:relative;z-index:1}.auth-glyph{font-family:Handwriting Reference,KaiTi,楷体,serif;font-size:160px;color:#98ad7b50;margin:10px 0 0;text-align:right;line-height:1.3;position:relative}.auth-glyph>span{font-family:Microsoft YaHei,sans-serif;font-size:9px;letter-spacing:3px;display:block;color:#a2b38a;margin-right:15px}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:50px}.auth-form{width:360px;max-width:100%}.auth-form h2{font-size:27px;margin-bottom:12px}.auth-form>p{color:#9aa58c;font-size:12px;margin-bottom:35px}.auth-form label{font-size:12px;color:#7f8f71}.auth-form input{margin-top:9px;min-height:46px;background:#fffefa}.auth-form .primary{margin-top:7px}.auth-form .text-button{margin:11px 0 22px}.privacy-note{border-top:1px solid #e0e6d6;padding-top:23px;display:flex;gap:10px;color:#9cac87}.privacy-note p{font-size:10px;line-height:1.9;color:#a4ae96;margin:0}.privacy-note>span{font-size:19px}.offline{margin:15px 45px}@media(min-width:1550px){.page-body{padding-top:44px}.practice-layout{grid-template-columns:minmax(0,1fr) 285px;gap:32px}.glyph-grid{gap:16px}.glyph-card{padding:17px}.glyph-card p{font-size:12px}.glyph-square>span{font-size:78px}.lesson-banner h2{font-size:36px}.lesson-banner p{font-size:13px}.lesson-banner{padding:34px;min-height:258px}}@media(max-width:1200px){.sidebar{width:210px;padding:32px 19px 18px}.sidebar .wordmark{font-size:18px}.main-content{margin-left:210px}.topbar{padding:0 28px}.page-body{padding:30px 28px}.practice-layout{grid-template-columns:minmax(0,1fr) 210px;gap:18px}.practice-aside .panel{padding:20px 17px}.glyph-grid{gap:7px}.glyph-card{padding:11px 8px}.glyph-square{margin-bottom:10px}.glyph-card p{font-size:9px}.structure-label{font-size:8px}.stat-pair>div+div{padding-left:15px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-banner h2{font-size:27px}.app-footer{padding-left:28px;padding-right:28px}.history-layout{grid-template-columns:1fr}.history-detail{position:static}}@media(max-width:1000px){.practice-layout{grid-template-columns:1fr}.practice-aside{display:grid;grid-template-columns:1fr 1fr}.practice-aside .aside-caption{display:none}.practice-aside .baseline-reminder{grid-column:1/-1}.glyph-square>span{font-size:65px}.glyph-card p{font-size:11px}.report-grid{grid-template-columns:1fr}.auth-story{padding:35px}.auth-quote h1{font-size:37px}.auth-form-wrap{padding:35px}.summary-stats{gap:12px}.summary-stats .panel{padding:18px}}@media(max-width:760px){.sidebar{display:none}.main-content{margin:0}.topbar{height:57px;padding:0 20px;font-size:10px}.topbar .today-date{display:none}.topbar>div{gap:12px}.mobile-account{display:inline-flex;justify-content:center;align-items:center;width:29px;height:29px;font-size:17px}.page-body{padding:27px 20px 32px}.page-heading{margin-bottom:23px;align-items:flex-start}.page-heading h1{font-size:29px;margin-bottom:8px}.page-heading .eyebrow{font-size:8px;letter-spacing:1.4px}.page-heading p{font-size:11px}.print-button{font-size:10px;padding:8px 10px;margin-top:22px;white-space:nowrap}.lesson-banner{padding:25px 23px;min-height:215px;margin-bottom:26px}.lesson-banner h2{font-size:28px;letter-spacing:1px;margin-top:23px}.lesson-banner p{font-size:11px;max-width:95%}.lesson-day{font-size:10px}.pill.light{font-size:9px}.glyph-grid{gap:8px;grid-template-columns:repeat(5,minmax(0,1fr))}.glyph-card{padding:8px 5px;border-radius:6px}.glyph-square>span{font-size:clamp(27px,9vw,53px)}.glyph-square{margin-bottom:10px}.glyph-card p{font-size:9px;line-height:1.75}.structure-label{font-size:8px;letter-spacing:0;margin-bottom:6px}.font-disclaimer{font-size:9px;margin-bottom:20px}.practice-main>.section-line h2{font-size:16px}.practice-main>.section-line>span{font-size:10px}.practice-flow{padding:20px}.three-passes{gap:12px}.three-passes h3{font-size:12px}.three-passes p{font-size:9px}.practice-action{flex-wrap:wrap}.timer{gap:7px}.timer>span:last-child{font-size:8px}.timer strong{font-size:21px}.practice-action .primary{padding:11px 13px;font-size:10px;gap:12px}.upload-panel{padding:20px}.upload-panel h2{font-size:15px}.upload-zone{padding:22px 15px}.practice-aside{gap:15px}.practice-aside .eyebrow{font-size:8px}.note-card{padding:22px 17px}.note-card p{font-size:19px}.journey-card h3{font-size:14px}.journey-card .stat-pair{margin-bottom:20px}.app-footer{padding:20px 20px 95px;font-size:8px;letter-spacing:0}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;height:72px;padding-bottom:env(safe-area-inset-bottom);background:#fffefaf5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #dfe5d4;z-index:10;box-shadow:0 -5px 20px #354a2910}.mobile-nav button{flex:1;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;background:none;color:#a6af9a;font-size:10px}.mobile-nav button>span{font-size:20px;line-height:1.2}.mobile-nav button.active{color:#49613c;background:linear-gradient(#dfe8d333,transparent)}.crop-panel,.assessment-panel{padding:20px}.crop-panel h2,.assessment-panel h2{font-size:18px}.crop-panel>p{font-size:11px}.sample-editor{grid-template-columns:repeat(3,1fr)}.summary-stats{gap:8px;margin-bottom:18px}.summary-stats .panel{padding:15px 12px}.summary-stats span{font-size:9px}.summary-stats strong{font-size:29px;margin-top:10px}.summary-stats small{font-size:9px}.report-grid>.panel,.comparison-panel{padding:20px}.comparison-panel .section-line{align-items:flex-start;flex-direction:column}.comparison-panel .section-line select{width:100%}.comparison-grid{gap:12px}.comparison-grid h3{font-size:11px}.comparison-grid .empty{font-size:10px;padding:40px 12px}.comparison-panel>p{font-size:10px}.report-grid h2{font-size:18px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.library-card{padding:12px 10px;flex-direction:column;align-items:stretch;gap:12px}.library-card .glyph-square{width:100%;max-width:90px;margin:0 auto}.library-card .glyph-square span{font-size:65px}.library-card h3{font-size:11px}.library-card .structure-label{font-size:9px}.library-filter{gap:10px}.library-filter>select{font-size:11px;width:110px;padding:12px 8px}.search-input{padding:0 11px;gap:7px}.search-input input{font-size:11px}.personal-text{padding:20px}.personal-text h2{font-size:16px}.personal-text p{font-size:11px}.personal-text textarea{font-size:12px}.page-heading>.secondary{font-size:10px;padding:9px 12px;margin-top:23px;min-height:35px;white-space:nowrap}.history-card{padding:18px;gap:15px}.history-day{padding-right:15px}.history-info h3{font-size:12px}.history-info p{font-size:21px}.history-info>span{font-size:9px}.history-detail{padding:20px}.auth-layout{grid-template-columns:1fr;min-height:100vh}.auth-story{padding:25px 25px 20px;min-height:auto}.auth-story .wordmark{font-size:20px}.auth-quote{padding:35px 0 7px;margin:0}.auth-quote h1{font-size:35px;line-height:1.5;margin-bottom:15px;letter-spacing:2px}.auth-quote>p{font-size:11px;margin:0}.auth-quote .eyebrow{font-size:8px}.auth-glyph{position:absolute;right:-7px;bottom:8px;font-size:120px;color:#9bb57a35}.auth-glyph>span{display:none}.auth-story>.subtle{margin-top:20px;font-size:8px}.auth-form-wrap{padding:32px 25px 35px}.auth-form{width:100%}.auth-form h2{font-size:24px}.auth-form>p{margin-bottom:25px;font-size:11px}.auth-form>.eyebrow{font-size:9px}.privacy-note p{font-size:9px}.modal-backdrop{padding:15px}.modal{padding:23px;max-height:85vh}.modal h2{font-size:19px}.modal>p{font-size:11px}.modal .danger-zone p{font-size:11px}.toast{top:12px;font-size:12px;padding:13px 17px;width:max-content;max-width:calc(100vw - 30px)}.offline{margin:14px 20px;font-size:11px}.form-grid{gap:11px}.form-grid label{font-size:11px}.form-grid select,.feedback-item p{font-size:12px}.outcome-options button{font-size:11px;padding:10px 4px}.check-row{font-size:11px}}@media(max-width:380px){.page-body{padding-left:14px;padding-right:14px}.glyph-grid{gap:5px}.glyph-card{padding:7px 4px}.glyph-card p{font-size:8px}.glyph-square>span{font-size:36px}.print-button{padding:7px;font-size:9px}.practice-flow{padding:16px}.practice-action .primary{width:100%}.practice-aside{grid-template-columns:1fr}.practice-aside .baseline-reminder{grid-column:auto}.sample-picker button small{margin-left:4px;font-size:8px}}@media print{@page{size:A4 portrait;margin:0}body{background:#fff;color:#000}.app-layout,.auth-layout,.modal-backdrop,.loading-screen{display:none!important}.print-sheet{display:block;width:210mm;height:297mm;padding:18mm 20mm;position:relative;color:#111;font-family:Microsoft YaHei,sans-serif;overflow:hidden}.print-sheet header{height:42mm}.print-sheet h1{font-size:18pt;margin:0 0 5mm;letter-spacing:0}.print-sheet p{font-size:10pt;color:#222;line-height:1.5;margin-bottom:4mm}.print-sheet header div{font-size:9pt}.print-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(5,40mm);width:170mm;border-left:.3mm solid #555;border-top:.3mm solid #555}.print-cell{border-right:.3mm solid #555;border-bottom:.3mm solid #555;position:relative;padding:2mm}.print-cell>span{font-size:7pt;position:relative;z-index:2;background:#fff;padding-right:2mm}.print-cell i{display:block;position:absolute;width:26mm;height:26mm;top:10mm;left:15mm;border:.15mm solid #ddd;background:linear-gradient(90deg,transparent calc(50% - .1mm),#ddd calc(50% - .1mm),#ddd calc(50% + .1mm),transparent calc(50% + .1mm)),linear-gradient(0deg,transparent calc(50% - .1mm),#ddd calc(50% - .1mm),#ddd calc(50% + .1mm),transparent calc(50% + .1mm))}.print-sheet footer{font-size:7pt;line-height:1.7;margin-top:4mm;color:#555}}.progress-save{margin-top:22px}.progress-save .section-line{margin-bottom:10px}.progress-save .section-line h3{margin:0}.progress-save .secondary{padding:9px 14px;min-height:36px;font-size:11px}.progress-save label{margin-bottom:8px}.progress-save p{margin:0}.print-cell>span{font-family:Handwriting Reference,KaiTi,serif}@media(max-width:760px){p,label,input,select,textarea{font-size:14px}.page-heading p{font-size:14px;line-height:1.8}.page-heading .eyebrow{font-size:10px}.page-heading{gap:10px}.page-heading>.secondary,.print-button{font-size:12px;padding:10px;white-space:normal}.topbar,.privacy-tag{font-size:12px}.glyph-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.glyph-card{padding:17px 15px;text-align:left}.glyph-card .glyph-square{max-width:130px;margin:0 auto 16px}.glyph-card .glyph-square>span{font-size:72px}.structure-label,.glyph-card .structure-label{font-size:12px;letter-spacing:.5px;line-height:1.6}.glyph-card p{font-size:14px;line-height:1.85}.font-disclaimer{font-size:12px;line-height:1.8}.lesson-day,.pill,.pill.light{font-size:12px}.lesson-banner p{font-size:14px;line-height:1.85}.lesson-banner h2{line-height:1.5}.banner-bottom>span:first-child{font-size:12px;line-height:1.8}.practice-main>.section-line>span,.section-line>span{font-size:12px}.three-passes{gap:10px}.three-passes>div{padding-right:7px}.three-passes b{font-size:13px}.three-passes h3{font-size:14px;line-height:1.7}.three-passes p{font-size:13px;line-height:1.85}.three-passes p br{display:none}.practice-action .primary{font-size:14px;padding:12px 15px;min-height:46px}.timer>span:last-child{font-size:12px}.timer{flex-wrap:wrap}.timer strong{font-size:24px}.upload-panel>p,.crop-panel>p{font-size:14px}.upload-panel h2{font-size:18px}.step-label{font-size:12px}.upload-zone strong{font-size:14px}.upload-zone small{font-size:12px;line-height:1.7}.practice-aside .eyebrow{font-size:12px;letter-spacing:0}.journey-card p,.baseline-reminder p{font-size:14px}.journey-card h3{font-size:16px}.stat-pair span{font-size:12px}.stat-pair>div+div{padding-left:13px}.stat-pair strong{font-size:31px}.note-card h3{font-size:14px}.note-card p{font-size:22px}.note-card>span:last-child{font-size:13px}.baseline-reminder h3{font-size:16px}.baseline-reminder .text-button{font-size:14px}.practice-aside{grid-template-columns:1fr}.practice-aside .baseline-reminder{grid-column:auto}.chip{font-size:13px;padding:10px 13px}.crop-tools>span{font-size:12px}.sample-picker button{padding:11px 6px;font-size:19px}.sample-picker button small{font-size:12px;display:block;margin:4px 0 0}.sample-editor{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sample-editor label{font-size:13px}.sample-editor input,.sample-editor select{font-size:14px;min-height:43px}.check-row{font-size:14px;line-height:1.8}.error-text{font-size:13px}.feedback-item h3,.feedback-item p{font-size:14px}.feedback-action>span{font-size:13px}.feedback-action p{font-size:16px;line-height:1.8}.assessment-panel details{font-size:14px}.assessment-panel details p,.measurement{font-size:13px;line-height:1.8}.form-section-title{font-size:16px}.outcome-options button{font-size:14px;line-height:1.6;padding:12px 5px}.form-grid label,.form-grid select,.completion-card p{font-size:14px}.summary-stats span{font-size:12px;line-height:1.7}.summary-stats small{font-size:12px}.report-grid p,.comparison-panel>p{font-size:14px}.issue-toggle{font-size:14px}.issue-toggle select{font-size:13px;min-height:43px}.review-list h3{font-size:15px}.comparison-grid{grid-template-columns:1fr;gap:22px}.comparison-grid h3{font-size:15px}.comparison-grid .empty,.comparison-panel .section-line select{font-size:14px}.personal-text h2{font-size:18px}.personal-text p,.personal-text textarea,.personal-text button{font-size:14px}.library-filter{flex-wrap:wrap}.library-filter>select{font-size:14px;width:100%}.search-input{min-width:100%}.search-input input{font-size:14px;min-height:46px}.library-card{padding:16px 14px}.library-card .structure-label{font-size:12px}.library-card h3{font-size:14px;line-height:1.85}.library-card p{font-size:12px}.history-info h3{font-size:15px}.history-info>span{font-size:12px;line-height:1.8;display:block}.history-day small{font-size:12px;letter-spacing:0}.history-info p{font-size:24px}.history-card{gap:12px;padding:19px 15px}.history-day{padding-right:12px}.history-detail>h3{font-size:16px}.history-detail>p,.record-notes p{font-size:14px}.empty p,.empty.small{font-size:14px}.mobile-nav{height:78px}.mobile-nav button{font-size:14px;gap:6px}.app-footer{font-size:11px;line-height:1.8;padding-bottom:100px;gap:15px}.subtle{font-size:12px}.modal>p,.danger-zone p,.modal .danger-zone p{font-size:14px;line-height:1.85}.danger-zone h3{font-size:16px}.danger-zone input,.modal .text-button{font-size:14px}.offline,.alert{font-size:14px;line-height:1.8}.auth-quote>p{font-size:14px;line-height:1.9}.auth-form>p{font-size:14px}.auth-form label,.auth-form .text-button{font-size:14px}.privacy-note p{font-size:12px;line-height:1.9}.progress-save .secondary{font-size:14px;min-height:44px}.progress-save .subtle{font-size:12px}}@media print{.progress-save{display:none}}.photo-upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.upload-formats{margin:12px 0 0}.upload-zone:focus-within{outline:3px solid #b8765070;outline-offset:3px}.photo-workspace.scrollable{touch-action:pan-y pinch-zoom}.sample-navigation{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px}.sample-navigation>span{font-size:12px;text-align:center}.sample-navigation .secondary{padding:9px 13px;min-height:44px;font-size:12px}.modal{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal>.section-line{position:sticky;top:-26px;background:var(--paper);z-index:1;padding:12px 0}.account-button>span:nth-child(2){min-width:0;overflow-wrap:anywhere}@media(max-width:760px){html{scroll-padding-bottom:calc(95px + env(safe-area-inset-bottom,0px))}body{min-width:320px}.app-layout,.auth-layout{min-height:100dvh}.main-content,.page-heading>div,.section-line>div,.history-info{min-width:0}.page-body{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.topbar{min-height:62px;height:auto;padding-top:env(safe-area-inset-top,0px);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));gap:8px}.topbar>span{line-height:1.7}.topbar>div{gap:5px;flex-shrink:0}.topbar .separator{margin:0 5px}.mobile-account,.icon-button{width:44px;height:44px;flex-shrink:0}.primary,.secondary,.danger,.text-button,.chip{min-height:44px}input,select,textarea,.sample-editor input,.sample-editor select,.form-grid select,.issue-toggle select,.personal-text textarea,.search-input input,.auth-form input,.danger-zone input{font-size:16px!important;min-height:46px}input[type=file]{font-size:14px!important;line-height:1.7;white-space:normal;overflow:hidden}input[type=checkbox]{min-height:22px;width:22px;height:22px}.check-row{padding:10px 0;gap:12px}.check-row input{margin-top:3px}.mobile-nav{height:calc(78px + env(safe-area-inset-bottom,0px));padding:0 max(4px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(4px,env(safe-area-inset-left,0px))}.mobile-nav button{min-width:0;font-size:13px;min-height:60px}.app-footer{padding-bottom:calc(103px + env(safe-area-inset-bottom,0px));flex-wrap:wrap}.page-heading{flex-wrap:wrap}.page-heading>div{flex:1 1 210px}.page-heading>.secondary{margin-top:0}.section-line{flex-wrap:wrap}.section-line>span{line-height:1.8}.lesson-banner>div:first-child{flex-wrap:wrap;gap:9px}.lesson-banner{padding:23px 20px}.lesson-banner p{max-width:100%}.three-passes{grid-template-columns:1fr;gap:13px}.three-passes>div{border:0;border-bottom:1px solid #eeede2;padding:0 0 13px}.three-passes>div:last-child{padding-bottom:0}.three-passes b{float:left;margin:8px 13px 0 0}.three-passes h3{margin:0 0 5px}.three-passes p{padding-left:32px}.photo-upload-actions{gap:10px}.photo-upload-actions .upload-zone{padding:17px 10px;min-height:137px;justify-content:center}.upload-zone strong{line-height:1.7}.upload-zone small{font-size:12px}.crop-tools{gap:8px}.crop-tools>span{flex-basis:100%;line-height:1.8}.sample-navigation{flex-wrap:wrap;gap:8px}.sample-navigation .secondary{font-size:13px;padding:9px 10px}.sample-navigation>span{font-size:14px}.sample-box>span{font-size:10px;padding:2px}.sample-box:not(.chosen)>span{opacity:.65}.sample-picker button{min-height:64px}.sample-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.sample-editor label{min-width:0}.sample-editor input{padding-left:10px;padding-right:6px}.form-grid{grid-template-columns:1fr}.outcome-options{flex-wrap:wrap}.outcome-options button{min-width:80px;min-height:48px}.issue-toggle{gap:12px;flex-wrap:wrap}.issue-toggle select{width:130px;max-width:100%}.summary-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-stats .panel{padding:14px 9px}.summary-stats strong{font-size:27px}.summary-stats span{font-size:12px}.history-card{overflow-wrap:anywhere}.history-day{flex-shrink:0}.history-info h3{line-height:1.8}.history-info p{overflow-wrap:anywhere}.modal-backdrop{padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));align-items:center}.modal{max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);padding:20px}.modal>.section-line{top:-20px}.modal h2{font-size:18px}.modal .section-line{flex-wrap:nowrap}.toast{top:calc(12px + env(safe-area-inset-top,0px));overflow-wrap:anywhere}.auth-story{padding-left:max(22px,env(safe-area-inset-left,0px));padding-right:max(22px,env(safe-area-inset-right,0px));padding-top:calc(25px + env(safe-area-inset-top,0px))}.auth-form-wrap{padding-bottom:calc(35px + env(safe-area-inset-bottom,0px))}}@media(max-width:350px){.page-heading h1{font-size:28px}.page-heading .eyebrow{letter-spacing:.8px}.glyph-card{padding:15px 10px}.glyph-card .glyph-square>span{font-size:64px}.crop-panel,.assessment-panel,.report-grid>.panel,.comparison-panel{padding:17px}.sample-navigation>span{flex:1;font-size:12px}.sample-navigation .secondary{padding:9px 8px;font-size:12px}.summary-stats small{display:block}.summary-stats strong{margin-top:8px}.auth-quote h1{font-size:31px}}
