@font-face{font-family:LocalSans;src:local("HarmonyOS Sans SC"),local("PingFang SC"),local("Microsoft YaHei");font-display:swap}
:root{--paper:#f7f5ef;--card:#fffefa;--ink:#233e3b;--muted:#63746d;--line:#dfE4d9;--accent:#a9402e;--accent-light:#f6e5dc;--green:#315e50;--mint:#e9efdf;--yellow:#f2d278;--shadow:0 12px 40px #233e3b09}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:LocalSans,system-ui,sans-serif;font-size:15px;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;touch-action:manipulation}button:disabled{opacity:.5;cursor:default}a{color:var(--accent);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c58c31;outline-offset:3px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(28px,3.2vw,44px);line-height:1.32;letter-spacing:-1px;font-weight:650}h2{font-size:24px;line-height:1.4}h3{font-size:18px;margin-bottom:8px}p{margin-bottom:12px}small{font-size:12px}label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}input,select,textarea{width:100%;background:var(--card);border:1px solid #cbd2c5;border-radius:12px;padding:11px 13px;color:var(--ink);min-height:46px}textarea{resize:vertical;line-height:1.6}input[type=checkbox]{width:19px;min-height:19px;accent-color:var(--green)}.app-shell{max-width:1680px;margin:auto;min-height:100dvh;display:block;padding-left:240px}.sidebar{padding:38px 24px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column;position:fixed;top:0;left:max(0px,calc((100vw - 1680px)/2));width:240px;height:100dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;z-index:5;background:#f0f1e9}.sidebar::-webkit-scrollbar{display:none}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-size:24px;font-weight:700;letter-spacing:2px}.brand-icon{background:var(--green);color:#f9e9bd;font-size:42px;line-height:1;border-radius:16px;width:46px;height:48px;text-align:center;font-family:Georgia,serif}.brand small{display:block;font-size:9px;letter-spacing:2.4px;font-weight:500;margin-top:2px}.side-note{color:var(--muted);font-size:12px;margin:25px 0 38px}.desktop-nav{display:grid;gap:10px}.desktop-nav button{background:transparent;text-align:left;padding:13px 16px;border-radius:12px;font-size:14px}.desktop-nav button span{font-size:22px;margin-right:14px;vertical-align:-1px}.desktop-nav button.active{background:var(--green);color:white}.desktop-nav button:not(.active):hover{background:#e4e8dc}.side-bottom{margin-top:auto;display:grid;gap:20px}.side-bottom small{font-size:11px;color:var(--muted)}.level-note{border:1px solid #d5dccd;padding:14px;border-radius:12px;font-size:12px}.level-note b{display:block;font-size:17px}.plain{background:transparent;padding:0}.settings-link{text-align:left;font-size:13px}.topbar{height:83px;margin:0 48px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.top-actions{display:flex;gap:14px;align-items:center}.chip{font-size:12px;border:1px solid #d8ddcf;background:#fffefa;border-radius:24px;padding:6px 13px}.status-dot:before{content:"";display:inline-block;background:#658264;width:6px;height:6px;border-radius:50%;margin-right:6px}.status-dot.offline:before{background:#a9402e}.mobile-brand,.mobile-nav{display:none}main{padding:37px 48px 48px;max-width:1260px;margin:auto}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:700;color:var(--muted)}.greeting{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:30px;gap:15px}.greeting h1{margin:8px 0 10px}.muted{color:var(--muted)}.greeting p{margin:0;font-size:14px}.date-mark{font-family:Georgia,serif;font-size:42px;text-align:center;line-height:1}.date-mark small{font-size:10px;display:block;margin-top:9px;letter-spacing:1px;font-family:system-ui}.hero{display:grid;grid-template-columns:minmax(0,1fr) 220px;background:var(--green);color:#fff9e9;padding:30px 34px;border-radius:22px;overflow:hidden;position:relative;gap:12px}.hero h2{font-size:28px;font-weight:500;margin:9px 0}.hero p{color:#e0e8d9;max-width:490px;font-size:14px}.hero .eyebrow{color:#e6d9af}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;min-height:160px}.hero-art .sun{width:115px;height:115px;border-radius:50%;background:var(--yellow);position:absolute;right:4px;top:0}.speech-art{position:relative;background:#fff6dd;border-radius:40px 40px 40px 6px;color:var(--green);font:italic 38px Georgia,serif;padding:20px 27px;transform:rotate(-8deg);box-shadow:10px 15px 0 #203f3260}.hero-art:after{content:"✦";position:absolute;bottom:0;left:15px;color:var(--yellow);font-size:39px}.primary,.secondary,.text-button{border-radius:11px;min-height:44px;padding:10px 19px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:var(--accent);color:#fff}.primary:hover{background:#913725}.hero .primary{background:var(--yellow);color:#2b4139}.secondary{background:var(--card);border:1px solid #d8ddcf}.secondary:hover{background:#eceee3}.text-button{background:transparent;padding:7px 10px;font-weight:500;min-height:36px;color:var(--green)}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0 32px}.stat{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:16px 21px}.stat b{font:30px Georgia,serif;display:block;margin-bottom:3px}.stat span{font-size:12px;color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:26px 0 14px;gap:10px}.section-head h2{font-size:20px;margin:0}.stage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stage-card{padding:16px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);text-align:left;position:relative}.stage-card.selected{border:1.5px solid var(--green);background:var(--mint)}.stage-card b{font-size:16px;display:block}.stage-card small{color:var(--muted);font-size:11px;display:block;margin-top:4px}.stage-card.selected:after{content:"✓";position:absolute;right:12px;top:12px;font-size:13px}.mode-picker{display:flex;gap:5px;padding:5px;background:#e9ebdf;border-radius:13px;width:fit-content;margin:22px 0 0}.mode-picker button{padding:9px 14px;border-radius:9px;background:transparent;font-size:13px}.mode-picker button.selected{background:var(--card);box-shadow:0 2px 6px #233e3b0a}.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.scenario{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:21px;text-align:left;display:flex;flex-direction:column;min-height:166px}.scenario:hover{border-color:#9ba98f;transform:translateY(-2px)}.scenario-icon{display:flex;align-items:center;justify-content:center;background:var(--mint);border-radius:12px;width:42px;height:42px;margin-bottom:15px;font-size:23px}.scenario:nth-child(2n) .scenario-icon{background:#f5e7d2}.scenario h3{font-size:16px;margin-bottom:5px}.scenario p{font-size:12px;color:var(--muted);margin:0}.scenario .arrow{margin-left:auto;font-size:20px;line-height:1}.home-footer{font-size:12px;color:var(--muted);margin-top:24px;border-left:2px solid #cdd8bf;padding-left:12px}.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:23px;margin-bottom:18px}.notice{padding:13px 16px;background:#f5ead4;border:1px solid #e8d6b3;border-radius:12px;font-size:13px;margin-bottom:16px;color:#67532f}.notice a{color:#754529}.notice.error{background:#f9e9e3;border-color:#e9c4b6;color:#843b2d}.notice.success{background:#eaf0e3;border-color:#cbd9bb;color:var(--green)}.empty-state{padding:50px 25px;text-align:center;background:var(--card);border:1px dashed #cbd2c5;border-radius:20px}.empty-state .big{font-size:48px;display:block;color:#9ba88c;margin-bottom:15px}.empty-state p{font-size:14px;color:var(--muted)}.talk-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:20px}.chat-card{border:1px solid var(--line);border-radius:19px;background:var(--card);overflow:hidden;min-width:0;display:flex;flex-direction:column}.chat-header{padding:16px 21px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.chat-header h2{font-size:17px;margin:0}.chat-header small{color:var(--muted)}.chat-toolbar{padding:10px 15px;background:#f4f5ec;border-bottom:1px solid var(--line);display:flex;gap:5px;flex-wrap:wrap}.chat-toolbar button{font-size:12px;padding:7px 10px;background:transparent;border-radius:8px}.chat-toolbar button.on{background:var(--green);color:white}.message-list{height:min(52dvh,540px);min-height:300px;overflow-y:auto;padding:22px 20px;overscroll-behavior:contain;scroll-behavior:smooth}.message{margin-bottom:21px;max-width:94%;animation:appear .18s ease}.message.user{margin-left:auto;max-width:85%}.message-label{font-size:10px;letter-spacing:.7px;color:var(--muted);margin-bottom:6px}.message.user .message-label{text-align:right}.bubble{border-radius:0 16px 16px 16px;padding:14px 16px;background:#eef1e7;font-size:17px;overflow-wrap:anywhere;white-space:pre-wrap}.message.user .bubble{background:var(--green);color:white;border-radius:16px 0 16px 16px}.translation{font-size:13px;color:var(--muted);margin:9px 0 0;white-space:pre-wrap}.message-actions{display:flex;gap:3px;margin-top:5px}.message-actions button{background:transparent;font-size:11px;padding:5px 8px;border-radius:7px;color:var(--muted)}.feedback{font-size:13px;margin-top:10px;padding:12px 14px;border-left:3px solid #bb9550;background:#fbf2df;border-radius:0 9px 9px 0;white-space:pre-wrap}.feedback .corrected{font-size:15px;color:var(--ink);font-weight:600}.feedback button{font-size:12px;margin-top:8px}.compose{padding:14px 16px 17px;border-top:1px solid var(--line);background:var(--card)}.compose textarea{font-size:16px;min-height:76px;max-height:160px;background:#fbfcf8}.compose .row{margin-top:9px}.compose .voice{font-size:12px;padding:9px 10px;min-height:40px}.compose .send{margin-left:auto;padding:9px 20px}.compose-note{font-size:11px;color:var(--muted);margin-top:8px}.compose-note:empty{display:none}.chat-error{margin:12px 16px 0}.coach-panel{background:#edf0e4;border-radius:17px;padding:20px;height:fit-content;position:sticky;top:20px}.coach-panel h3{font-size:15px;margin:0 0 12px}.hint-text{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.hint-step{font-size:10px;letter-spacing:1px;color:var(--muted);margin:15px 0 5px}.coach-panel .secondary{width:100%;margin:14px 0;font-size:13px}.coach-panel .example{font-size:15px;padding:10px;background:#fffaf0;border-radius:10px;white-space:pre-wrap}.coach-panel hr{border:0;border-top:1px solid #d4dccb;margin:19px 0}.coach-tip{font-size:12px;color:var(--muted)}.icon-btn{width:38px;height:38px;min-width:38px;background:#eef0e6;border-radius:50%;font-size:24px;line-height:1}.list-card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:19px 22px;margin-bottom:13px}.list-card h3{font-size:17px;margin:0 0 8px;white-space:pre-wrap;overflow-wrap:anywhere}.list-card p{font-size:13px;color:var(--muted);white-space:pre-wrap;margin-bottom:10px;overflow-wrap:anywhere}.list-card .meta{font-size:11px;color:var(--muted)}.tag{display:inline-block;padding:3px 9px;background:var(--mint);border-radius:7px;font-size:11px;margin-right:7px}.review-front{font-size:28px;margin:25px 0 18px}.review-back{font-size:17px;color:var(--muted);white-space:pre-wrap}.review-progress{height:4px;background:#e5e8dc;border-radius:9px;overflow:hidden;margin-bottom:23px}.review-progress span{display:block;height:100%;background:var(--green)}.search-row{display:flex;gap:10px;align-items:center;margin:0 0 20px}.search-row input{max-width:400px}.field{margin-bottom:19px}.field small{display:block;color:var(--muted);margin-top:6px;line-height:1.7}.check-field{display:flex;align-items:center;gap:10px;margin:13px 0}.check-field label{margin:0;font-weight:400;font-size:14px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.divider{height:1px;background:var(--line);margin:25px 0}.settings-section h3{font-size:17px}.settings-section p,.settings-section li{font-size:13px;color:var(--muted)}.settings-section ol{padding-left:22px}.capability{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.capability b{font-size:12px;max-width:60%;text-align:right}.support-note{font-size:12px;color:var(--muted);line-height:1.8}.warning-color{color:#a14831}.recording{background:#a9402e!important;color:#fff!important;animation:pulse 1.4s infinite}.audio-row{margin-top:9px}.audio-row audio{width:100%;height:38px}.dialog-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.dialog-header h2{margin:5px 0 0}dialog{border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--ink);padding:28px;max-width:660px;width:calc(100% - 30px);max-height:90dvh;overflow-y:auto;box-shadow:0 30px 100px #152e3740}dialog::backdrop{background:#1b302c77;backdrop-filter:blur(3px)}#confirm-dialog{max-width:450px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#233e3b;color:#fffefa;padding:12px 20px;border-radius:12px;font-size:13px;max-width:min(90vw,540px);z-index:1000;box-shadow:var(--shadow)}.summary-stats{display:flex;gap:35px;margin:25px 0}.summary-stats b{display:block;font:32px Georgia,serif}.summary-stats small{color:var(--muted)}.transcript{border-left:2px solid var(--line);padding-left:15px;margin-bottom:15px;white-space:pre-wrap;overflow-wrap:anywhere}.transcript small{color:var(--muted);display:block}.transcript p{font-size:14px;margin:4px 0 0}.loading{font-size:13px;color:var(--muted);padding:10px 0}.loading:after{content:" …";animation:pulse 1.2s infinite}.hidden{display:none!important}body.dialog-open{overflow:hidden}@keyframes pulse{50%{opacity:.5}}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
@media(min-width:1500px){main{padding-top:45px}.hero{padding:38px}.scenario{min-height:185px}}
@media(max-width:1150px){.topbar{margin:0 28px}main{padding:30px 28px}.hero{grid-template-columns:1fr 150px;padding:26px}.hero-art .sun{width:95px;height:95px}.speech-art{font-size:28px;padding:20px}.talk-layout{grid-template-columns:1fr}.coach-panel{position:static}.coach-panel hr{margin:12px 0}.coach-tip{margin:0}.message-list{height:45dvh}}
@media(max-width:760px){body{font-size:14px}.app-shell{display:block;padding-left:0}.sidebar{display:none}.topbar{height:64px;margin:0 20px}.desktop-only{display:none}.mobile-brand{display:block;text-decoration:none;color:var(--ink);font-size:20px;font-weight:700}.top-actions{gap:9px}.status-dot{font-size:10px}.chip{font-size:10px;padding:5px 10px}main{padding:26px 20px 103px}.greeting{margin-bottom:23px}.greeting h1{font-size:30px}.greeting p{font-size:13px}.date-mark{font-size:32px;min-width:40px}.hero{grid-template-columns:1fr;padding:24px;border-radius:18px}.hero-art{display:none}.hero h2{font-size:24px}.hero p{font-size:13px}.hero .primary{margin-top:3px}.stats{gap:9px;margin:14px 0 26px}.stat{padding:14px 12px;border-radius:12px}.stat b{font-size:26px}.stat span{font-size:10px}.stage-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stage-card{padding:13px}.stage-card b{font-size:14px}.scenario-grid{grid-template-columns:repeat(2,1fr);gap:11px}.scenario{padding:17px 14px;min-height:165px}.scenario h3{font-size:15px}.scenario p{font-size:11px}.scenario-icon{margin-bottom:13px;width:38px;height:38px}.section-head h2{font-size:18px}.mobile-nav{display:flex;position:fixed;z-index:20;bottom:0;left:0;width:100%;background:#fffefaed;border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom));backdrop-filter:blur(14px);justify-content:space-around}.mobile-nav button{background:transparent;font-size:23px;width:19%;line-height:1.3;border-radius:10px;padding:2px 0;color:var(--muted)}.mobile-nav button span{display:block;font-size:10px;margin-top:3px}.mobile-nav button.active{color:var(--accent);background:#f4e8dd}.talk-layout{gap:14px}.chat-header{padding:13px 15px}.chat-header h2{font-size:16px}.chat-header .text-button{font-size:12px;padding:6px}.chat-toolbar{padding:7px 9px}.chat-toolbar button{font-size:11px;padding:7px}.message-list{padding:18px 13px;height:42dvh;min-height:250px}.bubble{padding:12px 14px;font-size:16px}.message{max-width:97%}.compose{padding:12px}.compose .row{gap:6px}.compose .voice{font-size:11px;padding:8px}.compose .send{font-size:12px;padding:8px 15px}.coach-panel{padding:17px}.coach-panel h3{margin-bottom:5px}.coach-panel .secondary{width:auto;margin:10px 0}.panel{padding:19px}.field-grid{gap:10px}.list-card{padding:17px}.list-card .row{gap:7px}dialog{padding:23px 20px;border-radius:18px;max-height:88dvh}.dialog-header{margin-bottom:20px}.dialog-header h2{font-size:21px}#toast{bottom:95px}.review-front{font-size:24px}.mode-picker{width:100%;justify-content:stretch}.mode-picker button{flex:1;padding:9px 6px;font-size:12px}.home-footer{font-size:11px}}
@media(max-width:370px){main{padding-left:14px;padding-right:14px}.topbar{margin:0 14px}.greeting h1{font-size:26px}.stat span{font-size:9px}.compose .send{width:100%;margin:0}.field-grid{grid-template-columns:1fr}}

.top-actions{flex-wrap:wrap;justify-content:flex-end}#sync-status{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#cloud-audio-player{margin:12px 0}.saved-recording-player{margin-top:10px}@media(max-width:760px){#sync-status{max-width:125px;font-size:9px}.topbar{height:auto;min-height:64px;padding:10px 0;gap:8px}.top-actions{gap:5px}.top-actions .status-dot{display:none}}
