:root{font-family:HarmonyOS Sans SC,Microsoft YaHei,system-ui,sans-serif;color:#19352e;background:#f7fbf9;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#f7fbf9}body{min-width:320px;min-height:100vh;margin:0;font-size:24px;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}button,a{font:inherit;-webkit-tap-highlight-color:transparent}a:focus-visible{outline:5px solid #173f80;outline-offset:4px}.app-shell,.app-content{min-height:100vh}.app-content{width:100%}.home-page{width:min(100%,1180px);min-height:100vh;margin:0 auto;padding:clamp(32px,5vh,64px) clamp(28px,5vw,72px);display:flex;flex-direction:column;justify-content:flex-start;gap:clamp(24px,3.5vh,38px)}.home-header{position:relative;padding-top:64px;text-align:center}.logout-button{position:absolute;top:0;right:0;min-height:52px;padding:8px 17px;border:2px solid #cbdcd7;border-radius:16px;background:#fff;color:#3f5e56;cursor:pointer;font-size:19px;font-weight:700}.login-page{min-height:100vh;padding:clamp(24px,6vw,64px);display:grid;place-items:center;background:linear-gradient(160deg,#eff9f5,#f9f5ff)}.login-card{width:min(100%,620px);padding:clamp(28px,5vw,52px);border:2px solid #cfe3dd;border-radius:30px;background:#fff;box-shadow:0 18px 50px #1f4e421f;text-align:center}.login-icon{font-size:64px}.login-card h1{margin:16px 0 8px;color:#173f36;font-size:clamp(36px,5vw,52px)}.login-card>p,.login-card>small{color:#58726b}.login-card>p{margin:0 0 28px;font-size:clamp(22px,3vw,28px)}.login-card>small{display:block;margin-top:22px;font-size:18px}.login-form{display:grid;gap:12px;text-align:left}.login-form label{color:#284e44;font-size:23px;font-weight:750}.login-form input{width:100%;min-height:68px;margin-bottom:10px;padding:12px 16px;border:2px solid #a9cdc3;border-radius:16px;background:#fff;color:#1c3931;font:inherit;font-size:26px}.login-form input:focus{outline:4px solid rgba(47,131,108,.2)}.login-button{min-height:76px;margin-top:8px;border:0;border-radius:20px;background:#267c65;color:#fff;cursor:pointer;font-size:28px;font-weight:800}.login-button:disabled,.logout-button:disabled{cursor:wait;opacity:.7}.login-error{margin:0;padding:13px 16px;border-radius:14px;background:#fff0ed;color:#842d22;font-size:21px;text-align:center}.home-header h1,.home-header p{margin:0}.home-header h1{color:#173f36;font-size:clamp(42px,5.2vw,64px);font-weight:800;line-height:1.18;letter-spacing:.01em}.home-header p{margin-top:18px;color:#49665f;font-size:clamp(28px,3.2vw,38px);font-weight:600;line-height:1.35}.entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,3vw,32px)}.entry-card{min-height:156px;padding:28px 30px;display:flex;align-items:center;justify-content:flex-start;gap:24px;border:2px solid transparent;border-radius:28px;color:#173f36;box-shadow:0 10px 26px #244e4317;font-size:clamp(26px,3vw,34px);font-weight:750;line-height:1.35;text-decoration:none;touch-action:manipulation;transition:transform .12s ease,box-shadow .12s ease}.entry-card:active{transform:scale(.98);box-shadow:0 4px 12px #244e431a}.entry-icon{flex:0 0 auto;font-size:clamp(48px,6vw,68px);line-height:1}.entry-copy{min-width:0;display:grid;gap:8px}.entry-copy strong{font-size:inherit;line-height:1.25}.entry-copy small{color:#526d66;font-size:24px;font-weight:600;line-height:1.35}.entry-card--listen{background:#dff4ff;border-color:#b6e0f3}.entry-card--express{background:#e2f6e8;border-color:#bde4c9}.entry-card--patterns{background:#fff2d8;border-color:#f2dcae}.entry-card--help{background:#ffe7e3;border-color:#f1c5bd}.entry-card--practice{background:#eee8ff;border-color:#d3c4f1}.practice-page{width:min(100%,1080px);min-height:100vh;margin:0 auto;padding:clamp(28px,5vw,64px)}.practice-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.practice-header>div{text-align:right}.practice-header h1,.practice-header p{margin:0}.practice-header p{color:#6b5195;font-size:23px;font-weight:700}.practice-header h1{margin-top:6px;color:#173f36;font-size:clamp(36px,4.6vw,54px)}.practice-intro{margin:44px auto 0;color:#526d66;font-size:25px;line-height:1.65;text-align:center}.practice-entry-list{width:min(100%,900px);margin:34px auto 0;display:grid;gap:22px}.practice-entry-card{min-height:132px;padding:24px 30px;display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;column-gap:22px;border:2px solid #d3c4f1;border-radius:25px;background:#fff;color:#173f36;box-shadow:0 8px 22px #412c6514;text-decoration:none}.practice-entry-card>span{grid-row:1 / 3;font-size:58px}.practice-entry-card strong{align-self:end;font-size:clamp(27px,3vw,34px)}.practice-entry-card small{align-self:start;color:#65756f;font-size:21px;font-weight:600}.length-tabs{margin-top:42px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.length-tab{min-height:100px;padding:15px;display:grid;gap:7px;border:2px solid #cfc4e5;border-radius:20px;background:#fff;color:#4f3878;cursor:pointer}.length-tab strong{font-size:24px}.length-tab small{color:#6d6774;font-size:18px}.length-tab.is-active{border-color:#7451ac;background:#eee8ff}.practice-phrase-grid{margin-top:26px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.practice-phrase-grid button{min-height:138px;padding:24px;border:2px solid #b9ded3;border-radius:24px;background:#fff;color:#173f36;box-shadow:0 8px 22px #244e4314;cursor:pointer;font-size:clamp(27px,3vw,35px);font-weight:750;line-height:1.5}.reading-card{margin-top:48px;padding:clamp(28px,5vw,48px);border:3px solid #b9ded3;border-radius:28px;background:#fff;text-align:center}.reading-card>p:first-child{margin:0 0 18px;color:#55736b;font-size:23px}.reading-card>strong{display:block;color:#173f36;font-size:clamp(36px,5vw,58px);line-height:1.55}.speech-speed-hint{margin:18px 0 0;color:#526d66;font-size:20px;line-height:1.5}.reading-speed-actions,.reading-next-actions,.practice-action-row{margin-top:30px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.reading-next-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-primary-button,.practice-secondary-button,.practice-stop-button,.recording-optional-button,.practice-link-button{min-height:78px;padding:15px 22px;border:2px solid transparent;border-radius:20px;cursor:pointer;font-size:24px;font-weight:750}.practice-primary-button{background:#27836b;color:#fff}.practice-secondary-button{border-color:#b9ded3;background:#fff;color:#245d4e}.practice-stop-button{background:#a63d31;color:#fff}.practice-primary-button:disabled{cursor:wait;opacity:.65}.practice-primary-button.is-speaking,.practice-secondary-button.is-speaking{border-color:#6a489e;background:#6a489e;color:#fff;box-shadow:0 0 0 5px #6a489e29}.recording-optional-button,.practice-link-button{width:min(100%,620px);margin:28px auto 0;display:block;border-color:#cfc4e5;background:#f7f3fd;color:#593990}.practice-recorder{width:min(100%,820px);margin:30px auto 0;padding:28px;border:2px solid #d3c4f1;border-radius:26px;background:#fbf9ff;text-align:center}.practice-recorder h2{margin:0;color:#3f2d61;font-size:29px}.practice-step-label{width:fit-content;margin:0 auto 9px;padding:6px 14px;border-radius:999px;background:#eee8ff;color:#593990;font-size:19px;font-weight:800}.privacy-note{margin:14px 0 24px;color:#5f6f69;font-size:20px;line-height:1.55}.practice-record-status{margin:0 0 20px;color:#245d4e;font-size:21px;font-weight:700;line-height:1.55}.practice-audio{width:100%;margin-top:24px}.practice-success{margin:18px 0 0;color:#176b56;font-size:22px;font-weight:750}.common-practice-list,.saved-sample-list{margin-top:38px;display:grid;gap:17px}.practice-warning,.practice-empty-hint{margin:34px 0;padding:20px;border-radius:18px;background:#fff6e6;color:#70470f;font-size:22px;text-align:center}.common-practice-item{min-height:106px;padding:20px 24px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:8px 18px;border:2px solid #b9ded3;border-radius:22px;background:#fff;color:#173f36;text-decoration:none}.practice-rank{grid-row:1 / 3;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#e4f4ee;color:#176b56;font-weight:800}.common-practice-item strong{font-size:27px}.common-practice-item small{color:#65756f;font-size:19px}.common-practice-item>span:last-child{grid-column:3;grid-row:1 / 3;font-size:45px}.voice-phrase-picker,.saved-samples-section{margin-top:38px;padding:28px;border:2px solid #dbe9e4;border-radius:25px;background:#fff}.voice-phrase-picker h2,.saved-samples-section h2{margin:0;color:#173f36;font-size:29px}.voice-phrase-options{margin-top:22px;display:flex;flex-wrap:wrap;gap:12px}.voice-phrase-options button{min-height:58px;padding:10px 17px;border:2px solid #b9ded3;border-radius:17px;background:#fff;color:#245d4e;font-size:21px;font-weight:700}.voice-phrase-options button.is-active{border-color:#27836b;background:#e4f4ee}.custom-phrase-field{margin-top:24px;display:grid;gap:10px;color:#49665f;font-size:21px;font-weight:700}.custom-phrase-field input{min-height:66px;padding:13px 17px;border:2px solid #b9ded3;border-radius:17px;color:#173f36;font-size:23px}.saved-sample-card{padding:20px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1fr) auto;align-items:center;gap:16px;border:2px solid #dbe9e4;border-radius:20px;background:#f9fcfb}.saved-sample-card>div{display:grid;gap:6px}.saved-sample-card strong{font-size:23px}.saved-sample-card small{color:#65756f;font-size:17px}.saved-sample-card audio{width:100%}.saved-sample-card button{min-height:54px;padding:9px 14px;border:2px solid #edc3bb;border-radius:15px;background:#fff1ee;color:#8d3024;font-size:18px;font-weight:700}.history-entry{min-height:68px;margin:0 auto;padding:14px 26px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:2px solid #c8ded7;border-radius:20px;background:#fff;color:#245d4e;font-size:24px;font-weight:700;text-decoration:none;touch-action:manipulation}.conversation-page,.expression-list-page,.history-page{width:min(100%,1180px);min-height:100vh;margin:0 auto;padding:clamp(28px,4vw,56px) clamp(24px,5vw,64px)}.history-page{width:min(100%,1000px);margin:0 auto}.history-list{margin-top:34px;display:grid;gap:22px}.history-card{padding:26px;border:2px solid #c8ded7;border-radius:24px;background:#fff;box-shadow:0 8px 22px #244e4312}.history-meta{display:flex;align-items:center;justify-content:space-between;gap:18px;color:#55736b;font-size:21px;font-weight:650}.history-meta span{padding:7px 14px;border-radius:999px;background:#e4f4ee;color:#176b56}.history-input,.history-reply{margin:20px 0 0;color:#173f36;font-size:clamp(24px,2.8vw,31px);line-height:1.55}.history-input span,.history-reply span{display:block;margin-bottom:6px;color:#55736b;font-size:20px;font-weight:700}.history-reply{padding-top:18px;border-top:2px solid #e4efeb;font-weight:700}.history-empty{min-height:460px;display:grid;place-content:center;text-align:center}.history-empty>span{font-size:76px}.history-empty h2{margin:20px 0 0;font-size:34px}.history-empty p{margin:16px 0 0;color:#55736b;font-size:23px}.conversation-page{display:flex;flex-direction:column;gap:26px}.session-header{display:flex;align-items:center;justify-content:space-between;gap:24px}.session-title-group{display:flex;align-items:center;gap:20px}.session-title-group h1,.session-title-group p{margin:0}.session-title-group h1{margin-top:4px;color:#173f36;font-size:clamp(30px,3.6vw,44px);line-height:1.25}.session-icon{font-size:clamp(48px,6vw,68px);line-height:1}.session-status{color:#16745d;font-size:24px;font-weight:750}.end-button,.continue-button,.candidate-button{border:2px solid transparent;cursor:pointer;font-weight:750;touch-action:manipulation}.end-button{min-height:68px;padding:14px 26px;flex:0 0 auto;border-color:#edc3bb;border-radius:18px;background:#fff1ee;color:#8d3024;font-size:24px}.end-button:active{background:#fbded8}.session-progress{min-height:64px;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:18px;background:#eaf5f1;color:#235c4e;font-size:25px;font-weight:750}.progress-hint{color:#55736b;font-size:21px;font-weight:600}.progress-dots{display:flex;gap:12px}.progress-dots span{width:18px;height:18px;border:2px solid #9fbfb6;border-radius:50%;background:#fff}.progress-dots span.is-active{border-color:#27836b;background:#27836b}.question-section,.result-section,.expression-choice-section,.basic-ready-section{flex:1;min-height:390px;display:flex;flex-direction:column;justify-content:center}.rewrite-button,.restart-button{border:2px solid transparent;border-radius:22px;cursor:pointer;font-weight:750;touch-action:manipulation}.microphone-symbol.is-listening{animation:microphone-pulse 1.1s ease-in-out infinite}@keyframes microphone-pulse{50%{transform:scale(1.14);filter:drop-shadow(0 0 18px rgba(39,131,107,.45))}}.voice-recorder{flex:1;min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.voice-error-panel{width:min(100%,760px);margin:0 auto 24px;padding:18px 22px;display:grid;gap:8px;border:2px solid #e5a99e;border-radius:18px;background:#fff0ed;color:#7a2d24}.voice-error-panel strong{font-size:clamp(25px,3vw,32px)}.voice-error-panel span{font-size:clamp(20px,2.3vw,25px);line-height:1.5}.suggestion-error-panel{flex:1;width:min(100%,860px);min-height:390px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.suggestion-error-panel>span{color:#875db4;font-size:72px;line-height:1}.suggestion-error-panel h2{margin:18px 0;color:#51346f;font-size:clamp(30px,4vw,44px)}.suggestion-error-panel p{margin:7px 0;color:#4e625c;font-size:clamp(21px,2.6vw,27px);line-height:1.5}.suggestion-error-actions{width:min(100%,720px);margin-top:26px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.voice-state{margin:0 0 18px;color:#16745d;font-size:26px;font-weight:750}.microphone-symbol{font-size:clamp(72px,9vw,108px);line-height:1}.voice-recorder h2{margin:18px 0 28px;color:#173f36;font-size:clamp(34px,4.5vw,52px)}.microphone-button{width:min(100%,520px);min-height:128px;padding:24px 32px;border:3px solid #a8d2c6;border-radius:28px;background:#27836b;color:#fff;cursor:pointer;font-size:clamp(30px,3.7vw,42px);font-weight:800;touch-action:manipulation}.microphone-button--stop{border-color:#edc3bb;background:#a63d31}.microphone-button:disabled{cursor:wait;opacity:.7}.native-audio-input{display:none}.native-recorder-button{width:min(100%,520px);min-height:74px;margin-top:16px;padding:14px 24px;border:2px solid #9bbfb5;border-radius:20px;background:#f2f8f6;color:#245c4e;font-size:clamp(22px,2.8vw,28px);font-weight:750;touch-action:manipulation}.voice-hint{margin:20px 0 0;color:#5c746d;font-size:22px}.voice-recorder .inline-error{width:min(100%,760px);margin-top:24px}.heard-result{width:min(100%,880px);display:grid;gap:18px;text-align:center}.heard-result span{color:#285d98;font-size:26px;font-weight:750}.heard-result strong{padding:30px;border:3px solid #b9d5f2;border-radius:26px;background:#fff;color:#173f36;font-size:clamp(32px,4vw,48px);line-height:1.5}.heard-actions,.correction-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.confirm-heard-button,.listen-again-button{min-height:88px;border:2px solid transparent;border-radius:22px;cursor:pointer;font-size:28px;font-weight:750}.confirm-heard-button{background:#27836b;color:#fff}.listen-again-button{border-color:#b9d5f2;background:#edf6ff;color:#285d98}.recognized-result{width:min(100%,900px);margin:0 auto;padding:18px 24px;display:grid;gap:8px;border:2px solid #b9d5f2;border-radius:20px;background:#edf6ff;text-align:center}.recognized-result span{color:#285d98;font-size:20px;font-weight:750}.recognized-result strong{color:#173f36;font-size:clamp(25px,3vw,34px);line-height:1.45}.choice-help{margin:14px 0 0;color:#5c746d;font-size:22px;text-align:center}.rewrite-button{min-height:72px;margin:0;padding:14px 24px;border-color:#c8ded7;background:#f3f9f7;color:#245d4e;font-size:24px}.restart-button{min-height:72px;padding:14px 24px;border:2px solid #efd39f;border-radius:22px;background:#fff6e6;color:#70470f;cursor:pointer;font-size:24px;font-weight:750}.correction-actions{width:min(100%,680px);margin:22px auto 0}.result-section>.restart-button{width:min(100%,360px);margin-top:20px}.save-decision{width:min(100%,820px);margin-top:28px;text-align:center}.save-decision h2{margin:0;color:#173f36;font-size:clamp(28px,3.2vw,36px)}.save-decision-actions,.saved-detail-actions{margin-top:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.save-expression-button,.skip-save-button,.delete-expression-button,.confirm-delete-button,.cancel-delete-button{min-height:88px;padding:18px 24px;border:2px solid transparent;border-radius:22px;cursor:pointer;font-size:26px;font-weight:750;touch-action:manipulation}.save-expression-button{background:#27836b;color:#fff}.skip-save-button,.cancel-delete-button{border-color:#c8ded7;background:#fff;color:#245d4e}.save-decision .inline-error{margin-top:18px}.save-result-message{margin:24px 0 0;padding:14px 22px;border-radius:16px;background:#e4f4ee;color:#176b56;font-size:24px;font-weight:750}.save-result-message--muted{background:#f1f5f3;color:#55736b}.question-type-label{width:fit-content;margin:0 auto 16px;padding:8px 18px;border-radius:999px;background:#e4f4ee;color:#176b56;font-size:22px;font-weight:750}.question-section--feeling .question-type-label{background:#fff0d8;color:#8a5814}.question-section--reason .question-type-label{background:#e2efff;color:#285d98}.question-section--response .question-type-label{background:#eee8ff;color:#6446a3}.question-section--feeling .candidate-button{border-color:#efd39f;color:#70470f}.question-section--reason .candidate-button{border-color:#b9d5f2;color:#244f81}.question-section--response .candidate-button{border-color:#d3c4f1;color:#55398c}.question-context span{display:block;width:fit-content;margin:0 auto 10px;padding:7px 14px;border-radius:999px;background:#e2efff;color:#285d98;font-size:21px;font-weight:750}.basic-ready-section{align-items:center}.basic-expression{width:min(100%,900px);margin:20px 0 0;padding:clamp(26px,4vw,42px);border:3px solid #a9d8ca;border-radius:28px;background:#fff;color:#143d33;font-size:clamp(31px,4vw,48px);font-weight:700;line-height:1.55;text-align:center}.basic-ready-hint{margin:22px 0 0;color:#526d66;font-size:24px;line-height:1.5;text-align:center}.basic-ready-actions{width:min(100%,820px);margin-top:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.use-now-button,.enrich-button{min-height:124px;padding:22px;display:grid;place-content:center;gap:8px;border:2px solid transparent;border-radius:24px;cursor:pointer;touch-action:manipulation}.use-now-button{border-color:#a8d2c6;background:#27836b;color:#fff}.enrich-button{border-color:#cfbce9;background:#f1eaff;color:#593990}.use-now-button span,.enrich-button span{font-size:30px;font-weight:800}.use-now-button small,.enrich-button small{font-size:20px;font-weight:600}.expression-choice-section{align-items:center}.expression-choice-section h2{margin:10px 0 0;color:#173f36;font-size:clamp(30px,3.5vw,42px);text-align:center}.expression-option-grid{width:min(100%,980px);margin-top:28px;display:grid;gap:18px}.expression-option-button{min-height:120px;padding:24px 28px;display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:24px;border:2px solid #b9ded3;border-radius:24px;background:#fff;color:#173f36;box-shadow:0 8px 22px #244e4314;cursor:pointer;text-align:left;touch-action:manipulation}.expression-option-button>span{padding:10px 14px;border-radius:14px;background:#e4f4ee;color:#176b56;font-size:22px;font-weight:750;text-align:center}.expression-option-button .style-label--简短直接{background:#e2efff;color:#285d98}.expression-option-button .style-label--温和自然{background:#e4f4ee;color:#176b56}.expression-option-button .style-label--更有情感{background:#fff0d8;color:#8a5814}.expression-option-button strong{font-size:clamp(24px,2.7vw,31px);font-weight:650;line-height:1.65}.expression-option-button:active{border-color:#48a18a;background:#eff9f5}.question-section h2,.question-context,.result-label,.expression-result{margin:0;text-align:center}.question-section h2{color:#173f36;font-size:clamp(34px,4.5vw,52px);line-height:1.35}.question-context{margin-bottom:20px;color:#45665d;font-size:clamp(26px,3.1vw,34px);font-weight:650;line-height:1.5}.candidate-grid{width:min(100%,980px);margin:34px auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.candidate-option{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:2px solid #b9ded3;border-radius:24px;background:#fff;box-shadow:0 8px 22px #244e4314}.candidate-option .candidate-button{width:100%;border:0;border-radius:22px 22px 0 0;box-shadow:none}.candidate-button{min-height:120px;padding:24px;border-color:#b9ded3;border-radius:24px;background:#fff;color:#153e34;box-shadow:0 8px 22px #244e4314;font-size:clamp(26px,3vw,34px);line-height:1.35}.candidate-edit-button{min-height:58px;padding:10px 18px;border:0;border-top:1px solid #d8eae5;background:#f3f9f7;color:#2c6556;cursor:pointer;font-size:20px;font-weight:700;touch-action:manipulation}.expression-compose-tools{width:min(100%,980px);margin:28px auto 0;padding:24px;border:2px solid #d8c9ed;border-radius:24px;background:#faf7fe}.expression-compose-tools>p{margin:0 0 18px;color:#4e3c68;font-size:22px;font-weight:700;text-align:center}.expression-input-actions,.expression-compose-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.compose-action-button,.compose-final-button,.compose-suggest-button,.compose-cancel-button{min-height:72px;padding:14px 20px;border:2px solid #cbb9e7;border-radius:20px;cursor:pointer;font-size:clamp(21px,2.4vw,27px);font-weight:750;touch-action:manipulation}.compose-action-button,.compose-suggest-button{background:#eee6fa;color:#56368b}.expression-compose-panel{display:grid;gap:16px}.expression-compose-panel label{color:#3f3155;font-size:clamp(23px,2.7vw,30px);font-weight:750;text-align:center}.expression-compose-panel textarea{width:100%;min-height:130px;padding:18px 20px;border:2px solid #a989d3;border-radius:18px;background:#fff;color:#263a34;font:inherit;font-size:clamp(25px,3vw,32px);line-height:1.45;resize:vertical}.expression-compose-panel textarea:focus{outline:4px solid rgba(133,94,190,.2)}.expression-compose-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.compose-final-button{border-color:#78b9a8;background:#dff3ec;color:#194d40}.compose-cancel-button{border-color:#d7dedd;background:#fff;color:#52645f}.expression-compose-panel--voice>.voice-recorder{width:100%}.candidate-button:active{border-color:#48a18a;background:#dff3ec;transform:scale(.98)}.guided-expression-button{width:min(100%,720px);min-height:88px;margin:30px auto 0;padding:18px 26px;border:2px solid #cfbce9;border-radius:22px;background:#f5effd;color:#593990;font-size:clamp(24px,2.6vw,30px);font-weight:750}.refinement-panel{width:min(100%,900px);margin:34px auto 0;padding:24px;border:2px solid #d8c9ed;border-radius:24px;background:#f8f4fd;text-align:center}.refinement-panel>span{color:#6c4c9c;font-size:22px;font-weight:750}.refinement-panel h3{margin:10px 0 0;color:#402b63;font-size:clamp(27px,3vw,36px)}.refinement-grid{margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.refinement-button{min-height:82px;padding:16px 20px;border:2px solid #cfbce9;border-radius:19px;background:#fff;color:#4e3378;font-size:clamp(22px,2.5vw,28px);font-weight:700}.guided-expression-button:active,.refinement-button:active{background:#eadff8;transform:scale(.98)}.candidate-button:disabled,.end-button:disabled,.continue-button:disabled{cursor:wait;opacity:.65}.session-notice{flex:1;min-height:360px;display:grid;place-items:center;color:#45665d;font-size:clamp(28px,3.5vw,40px);font-weight:700;text-align:center}.session-notice--working{align-content:center;gap:14px}.session-notice--working strong{color:#173f36;font-size:clamp(32px,4vw,46px)}.session-notice--working span{color:#55736b;font-size:24px}.session-notice--error{align-content:center;gap:24px}.session-notice--error p{margin:0}.inline-error{margin:0;padding:14px 18px;border-radius:14px;background:#fff0ed;color:#8d3024;font-size:22px;font-weight:650;text-align:center}.selection-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#49665f;font-size:22px}.selection-summary p{margin:0 4px 0 0;font-weight:700}.selection-summary span{padding:9px 16px;border-radius:999px;background:#e9f3ef}.result-section{align-items:center}.result-label{color:#16745d;font-size:28px;font-weight:750}.expression-result{width:min(100%,900px);margin-top:22px;padding:clamp(28px,4vw,48px);border:3px solid #a9d8ca;border-radius:28px;background:#fff;color:#143d33;box-shadow:0 10px 28px #244e4317;font-size:clamp(34px,4.6vw,54px);font-weight:750;line-height:1.55}.result-actions{width:min(100%,760px);margin-top:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.continue-button,.end-button--large{min-height:96px;border-radius:22px;font-size:28px}.continue-button{background:#27836b;color:#fff}.continue-button:active{background:#1d6956}.list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}.list-header>div{flex:1;text-align:right}.list-header p,.list-header h1{margin:0}.list-header p{color:#6e623f;font-size:24px;font-weight:700}.list-header h1{margin-top:6px;color:#173f36;font-size:clamp(34px,4.5vw,52px)}.expression-list{width:min(100%,940px);margin:clamp(44px,8vh,80px) auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.expression-groups{width:min(100%,940px);margin:clamp(44px,8vh,80px) auto 0;display:grid;gap:38px}.expression-group{display:grid;gap:18px}.expression-group h2{margin:0;color:#315c52;font-size:clamp(25px,3vw,32px)}.expression-list--compact{width:100%;margin:0}.expression-list-button{min-height:130px;padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:2px solid #efd49c;border-radius:24px;background:#fff4dc;color:#3f3825;box-shadow:0 8px 22px #5a4c2b14;font-size:clamp(28px,3vw,36px);font-weight:750;text-decoration:none;touch-action:manipulation}.expression-list-button span:last-child{font-size:50px;font-weight:400}.expression-list-button:active{background:#f9e6bd;transform:scale(.98)}.saved-expressions-entry{width:100%;border-color:#b9ded3;background:#e8f6f1;color:#174f42}.saved-entry-copy{display:grid;gap:6px}.saved-entry-copy strong{font-size:clamp(28px,3vw,36px)}.saved-entry-copy small{color:#55736b;font-size:24px;font-weight:600}.saved-expression-list{width:min(100%,940px);margin:clamp(44px,8vh,80px) auto 0;display:grid;gap:20px}.saved-expression-button{min-height:112px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:2px solid #b9ded3;border-radius:24px;background:#fff;color:#173f36;box-shadow:0 8px 22px #244e4314;font-size:clamp(25px,2.8vw,32px);font-weight:700;line-height:1.55;text-decoration:none;touch-action:manipulation}.saved-expression-button span:last-child{flex:0 0 auto;font-size:48px;font-weight:400}.saved-empty-state{min-height:520px;display:grid;place-content:center;justify-items:center;text-align:center}.saved-empty-state>span{font-size:76px}.saved-empty-state h2{margin:20px 0 0;color:#173f36;font-size:34px}.saved-empty-state p{margin:16px 0 0;color:#55736b;font-size:24px}.saved-empty-action{min-width:min(100%,360px);min-height:80px;margin-top:28px;padding:16px 28px;display:inline-flex;align-items:center;justify-content:center;border-radius:20px;font-size:26px;text-decoration:none}.saved-detail-content{width:min(100%,900px);margin:clamp(50px,9vh,96px) auto 0;text-align:center}.saved-detail-label{margin:0;color:#55736b;font-size:26px;font-weight:700}.saved-detail-expression{margin:18px 0 0;padding:clamp(28px,4vw,46px);border:3px solid #a9d8ca;border-radius:28px;background:#fff;color:#143d33;box-shadow:0 10px 28px #244e4317;font-size:clamp(32px,4vw,48px);font-weight:700;line-height:1.6}.saved-detail-actions .continue-button{min-height:88px;border-radius:22px;font-size:26px}.delete-expression-button,.confirm-delete-button{border-color:#edc3bb;background:#fff1ee;color:#8d3024}.confirm-delete-button{background:#a63d31;color:#fff}.delete-confirmation{margin-top:30px;padding:26px;border:2px solid #edc3bb;border-radius:24px;background:#fff8f6}.delete-confirmation h2{margin:0;color:#7f3026;font-size:30px}.sub-page{width:min(100%,1100px);min-height:100vh;margin:0 auto;padding:clamp(28px,5vw,64px);display:flex;flex-direction:column}.home-button{width:fit-content;min-height:72px;padding:16px 28px;display:inline-flex;align-items:center;gap:12px;border:2px solid #c8ded7;border-radius:20px;background:#fff;color:#174f42;box-shadow:0 6px 18px #244e4314;font-size:26px;font-weight:700;text-decoration:none;touch-action:manipulation}.home-button:active{background:#e9f5f1}.sub-page-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 0 96px;text-align:center}.page-icon{margin-bottom:28px;font-size:clamp(72px,10vw,112px);line-height:1}.sub-page-content h1,.sub-page-content p{margin:0}.sub-page-content h1{color:#173f36;font-size:clamp(40px,5vw,60px);line-height:1.25}.sub-page-content p{max-width:720px;margin-top:24px;color:#526d66;font-size:clamp(24px,2.6vw,30px);line-height:1.7}@media(orientation:portrait){.home-page{justify-content:flex-start;padding-top:clamp(52px,8vh,96px)}.entry-grid{grid-template-columns:1fr}.entry-card{min-height:128px}.candidate-grid,.refinement-grid,.expression-list{grid-template-columns:1fr}.question-section,.result-section,.expression-choice-section,.basic-ready-section{justify-content:flex-start;padding-top:clamp(32px,8vh,80px)}}@media(max-width:600px){.home-page{padding:28px 20px;gap:28px}.entry-grid{gap:16px}.entry-card{min-height:120px;padding:22px;border-radius:22px}.sub-page{padding:24px 20px}.conversation-page,.expression-list-page,.history-page{padding:22px 18px}.history-card{padding:22px 20px}.history-meta{align-items:flex-start;flex-direction:column}.session-header,.list-header,.practice-header{align-items:stretch;flex-direction:column}.session-header .end-button,.home-button{width:100%;justify-content:center}.list-header>div{text-align:center}.practice-header>div{text-align:center}.length-tabs,.practice-phrase-grid,.reading-speed-actions,.reading-next-actions,.practice-action-row{grid-template-columns:1fr}.practice-page{padding:22px 18px}.practice-entry-card{grid-template-columns:58px minmax(0,1fr);padding:20px}.practice-entry-card>span{font-size:46px}.length-tab{min-height:78px}.practice-phrase-grid button{min-height:112px}.common-practice-item{grid-template-columns:44px minmax(0,1fr) auto;padding:18px 15px}.saved-sample-card{grid-template-columns:1fr}.voice-phrase-picker,.saved-samples-section,.practice-recorder{padding:21px 17px}.candidate-grid,.refinement-grid,.expression-list,.result-actions,.basic-ready-actions,.heard-actions,.correction-actions,.expression-input-actions,.expression-compose-actions,.suggestion-error-actions,.save-decision-actions,.saved-detail-actions,.expression-option-button{grid-template-columns:1fr}.candidate-button{min-height:120px}}@media(prefers-reduced-motion:reduce){.entry-card{transition:none}.microphone-symbol.is-listening{animation:none}}
