.model-selector{border:1px solid var(--line);background:#fffaf1e6;border-radius:8px;grid-template-columns:auto 1fr 1fr auto;align-items:stretch;gap:8px;width:min(520px,100%);padding:8px;display:grid}.model-selector-title{color:var(--moss-dark);white-space:nowrap;align-items:center;gap:7px;padding:0 8px;font-size:13px;font-weight:800;display:inline-flex}.model-control-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.model-control-group.effort{min-width:110px}.model-choice{border:1px solid var(--line);background:var(--surface);min-height:46px;color:var(--ink);text-align:center;border-radius:7px;place-items:center;gap:1px;padding:5px 8px;display:grid}.model-choice span{align-items:center;gap:5px;font-size:13px;font-weight:800;line-height:1.1;display:inline-flex}.model-choice small{color:var(--muted);font-size:11px;line-height:1.1}.model-choice.active{border-color:var(--moss);color:var(--moss-dark);background:#e3ebd8}.model-choice:disabled{cursor:not-allowed;opacity:.45}@media (width<=720px){.model-selector{grid-template-columns:1fr;width:100%}.model-selector-title{justify-content:center;min-height:30px}}@media (width<=520px){.model-selector{gap:7px;padding:7px}.model-choice{min-height:44px;padding:5px 7px}}.theme-toggle{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--moss-dark);white-space:nowrap;border-radius:8px;justify-content:center;align-self:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:800;display:inline-flex}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--moss);outline:none}@media (width<=760px){.theme-toggle{width:100%}}:root{--paper:#f7f1e8;--surface:#fffaf1;--surface-strong:#efe2d0;--ink:#1f2522;--muted:#6e756e;--line:#dac9b5;--moss:#556b4f;--moss-dark:#30462e;--coral:#c8644a;--teal:#2f6f73;--amber:#d69b3a;--shadow:0 22px 60px #2f373024;--font-main:"Microsoft YaHei UI", "Segoe UI", sans-serif;--font-display:Georgia, "Times New Roman", serif;color:var(--ink);background:var(--paper);font-family:var(--font-main);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:0;margin:0;overflow-x:hidden}button,textarea,select{font:inherit}button{cursor:pointer}.app-shell{background:linear-gradient(90deg, #556b4f1c 1px, transparent 1px), linear-gradient(0deg, #556b4f14 1px, transparent 1px), var(--paper);background-size:42px 42px;grid-template-columns:minmax(300px,380px) minmax(0,1fr);min-height:100vh;display:grid}.workbench,.topbar>*,.content-grid>*,.training-card,.coach-panel,.mode-tab,.option-button,.cue-button,.chat-bubble{min-width:0}.side-rail{border-right:1px solid var(--line);background:#fffaf1db;flex-direction:column;gap:28px;padding:34px;display:flex}.brand-mark{width:58px;height:58px;color:var(--surface);background:var(--moss-dark);box-shadow:8px 8px 0 var(--surface-strong);border:1px solid #20321f;border-radius:8px;place-items:center;display:grid}.eyebrow{color:var(--coral);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:800}h1,h2,h3,p{margin-top:0}h1{font-family:var(--font-display);letter-spacing:0;margin-bottom:14px;font-size:46px;line-height:1.02}h2{letter-spacing:0;margin-bottom:8px;font-size:24px}h3{letter-spacing:0;margin-bottom:0;font-size:24px;line-height:1.2}.lead,.topbar p,.workflow-footer,.path-list,.scenario-box p,.result-panel,.coach-panel{color:var(--muted);line-height:1.72}.path-panel,.training-card,.coach-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1eb;border-radius:8px}.path-panel{padding:20px}.section-title{color:var(--moss-dark);align-items:center;gap:10px;display:flex}.section-title h2{margin:0;font-size:18px}.path-list{margin:18px 0 0;padding-left:22px}.path-list li+li{margin-top:10px}.strategy-strip{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.strategy-strip div{border:1px solid var(--line);background:#efe7da;border-radius:8px;min-height:74px;padding:12px}.strategy-strip strong,.strategy-strip span{display:block}.strategy-strip span{color:var(--muted);margin-top:4px;font-size:13px}.workbench{flex-direction:column;gap:20px;padding:30px;display:flex}.topbar,.card-heading,.result-score,.card-actions,.workflow-footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.card-actions{flex-wrap:wrap;margin-top:18px}.topbar{border-bottom:1px solid var(--line);padding-bottom:18px}.topbar-tools{justify-content:flex-end;align-items:center;gap:10px;width:100%;max-width:680px;display:flex}.model-pill,.relationship-tag,.coach-source,.score-badge{white-space:nowrap;border:1px solid var(--line);background:var(--surface);color:var(--moss-dark);border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:800;display:inline-flex}.mode-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.mode-tab{border:1px solid var(--line);min-height:74px;color:var(--ink);text-align:left;background:#fffaf1db;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;padding:14px;display:grid}.mode-tab small{color:var(--muted);grid-column:2}.mode-tab span,.mode-tab small,.option-button span:last-child,.cue-button strong,.chat-bubble p,.sample-reply p,.coach-content p,.coach-content li,.result-panel dd,.nvc-map p{overflow-wrap:anywhere}.mode-tab.active{border-color:var(--moss);background:#e3ebd8;box-shadow:inset 0 -4px #556b4f2e}.content-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);align-items:start;gap:18px;display:grid}.training-card,.coach-panel{padding:22px}.scenario-box,.observation-prompt,.result-panel,.meter-panel,.roleplay-context,.sample-reply,.error-box,.empty-state{border:1px solid var(--line);background:#f4eadc;border-radius:8px;margin-top:18px;padding:16px}.observation-prompt strong{color:var(--ink);line-height:1.6;display:block}.observation-prompt p{margin:8px 0 0}.cue-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.cue-button{border:1px solid var(--line);background:var(--surface);min-height:92px;color:var(--ink);text-align:left;border-radius:8px;align-content:center;gap:8px;padding:14px;display:grid}.cue-button span{color:var(--coral);font-size:12px;font-weight:800}.cue-button strong{font-size:16px;line-height:1.35}.cue-button.selected{border-color:var(--teal);background:#e6f0ed}.cue-button.correct{box-shadow:inset 0 -5px #2f6f7340}.cue-button.wrong{border-color:var(--coral);background:#f8dfd5;box-shadow:inset 0 -5px #c8644a3b}.cue-feedback{gap:10px;margin-top:14px;display:grid}.cue-feedback div{border-top:1px solid var(--line);padding-top:10px}.cue-feedback span{color:var(--coral);font-size:12px;font-weight:800}.cue-feedback p{color:var(--ink);margin:4px 0 0}.observation-scoring-toggle,.observation-feedback-note{align-items:flex-start;gap:12px;margin-top:16px;display:flex}.observation-scoring-toggle{border:1px solid var(--line);cursor:pointer;background:#fffaf1b8;border-radius:8px;padding:14px 16px}.observation-scoring-toggle input{width:16px;height:16px;accent-color:var(--moss-dark);margin-top:3px}.observation-note-tip{color:var(--muted);font-size:13px;font-weight:400;line-height:1.6}.observation-score-breakdown{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.observation-score-breakdown span,.insight-pill-row span{border:1px solid var(--line);color:var(--moss-dark);background:#fffaf1c7;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.note-feedback{border:1px solid var(--line);background:#fffaf1b8;border-radius:12px;gap:12px;margin-top:14px;padding:14px;display:grid}.note-feedback-heading,.insight-focus-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.note-feedback-heading span{color:var(--coral);font-size:13px;font-weight:800}.note-feedback-list{gap:8px;display:grid}.note-feedback-list p,.insight-focus p{margin:0;line-height:1.6}.note-feedback-list.muted p{color:var(--muted)}.observation-scoring-toggle span,.observation-feedback-note strong,.observation-feedback-note p{display:block}.observation-scoring-toggle strong,.observation-feedback-note strong{color:var(--ink)}.observation-scoring-toggle small{color:var(--muted);margin-top:4px;line-height:1.6}.observation-feedback-note p{color:var(--muted);margin:4px 0 0}.nvc-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.nvc-map div{border:1px solid var(--line);background:#fffaf1b8;border-radius:8px;padding:12px}.insights-panel{margin-top:18px}.insights-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.insights-grid div,.insight-focus{border:1px solid var(--line);background:#fffaf1b8;border-radius:12px;padding:12px}.insights-grid span{color:var(--muted);font-size:12px;display:block}.insights-grid strong{color:var(--ink);margin-top:6px;font-size:20px;display:block}.insights-grid small{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.4;display:block}.insight-focus{gap:10px;margin-top:12px;display:grid}.insight-focus.accent{background:#e2ede7e0}.insight-pill-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.nvc-map span,.roleplay-context small,.meter-panel small{color:var(--coral);font-size:12px;font-weight:800}.nvc-map p{color:var(--ink);margin:5px 0 0;line-height:1.55}blockquote{border-left:4px solid var(--coral);color:var(--ink);margin:14px 0 0;padding-left:16px;font-size:19px;line-height:1.65}.option-list{gap:12px;margin-top:18px;display:grid}.option-button{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);text-align:left;border-radius:8px;grid-template-columns:34px 1fr;align-items:center;gap:12px;padding:14px;display:grid}.option-button.selected{border-color:var(--teal);background:#e6f0ed}.option-index{background:var(--moss-dark);width:34px;height:34px;color:var(--surface);border-radius:8px;place-items:center;font-weight:800;display:grid}.result-panel dl{gap:12px;margin:14px 0 0;display:grid}.result-panel dt{color:var(--coral);font-weight:800}.result-panel dd{color:var(--ink);margin:4px 0 0}.ghost-button,.solid-button,.icon-button{border:1px solid var(--moss-dark);border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;display:inline-flex}.ghost-button{color:var(--moss-dark);background:0 0}.solid-button,.icon-button{background:var(--moss-dark);color:var(--surface)}.wide{width:100%;margin-top:16px}.compact-actions{justify-content:flex-end}.field-block{color:var(--moss-dark);gap:8px;margin-top:18px;font-weight:800;display:grid}textarea,select{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);resize:vertical;border-radius:8px;padding:12px}select{max-width:140px}.scenario-select{max-width:min(100%,320px)}.reply-scenario-picker .scenario-select{max-width:none}.meter-track{background:#ded1bf;border-radius:999px;height:10px;overflow:hidden}.meter-track span{border-radius:inherit;background:linear-gradient(90deg, var(--coral), var(--amber), var(--teal));height:100%;display:block}.roleplay-context small,.meter-panel small{align-items:center;gap:6px;margin-top:8px;display:inline-flex}.chat-window{gap:12px;max-height:360px;margin-top:18px;padding-right:4px;display:grid;overflow:auto}.chat-bubble{border:1px solid var(--line);background:#f5ecdf;border-radius:8px;max-width:86%;padding:12px}.chat-bubble.user{background:#e5efe5;margin-left:auto}.chat-bubble span,.sample-reply span{color:var(--coral);font-size:12px;font-weight:800}.chat-bubble p,.sample-reply p,.coach-content p,.meter-panel p{margin:6px 0 0}.composer{grid-template-columns:1fr 52px;gap:10px;margin-top:16px;display:grid}.coach-panel{position:sticky;top:24px}.coach-content h3{margin-top:14px}.coach-meta-row{flex-wrap:wrap;gap:8px;display:flex}.coach-content ul{padding-left:20px}.error-box{color:#8e2c1d;background:#f8dfd5}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1120px){.app-shell,.content-grid{grid-template-columns:1fr}.side-rail{border-right:none;border-bottom:1px solid var(--line)}.coach-panel{position:static}}@media (width<=960px){.topbar{flex-direction:column;align-items:stretch}.topbar-tools{justify-content:flex-start;max-width:none}.mode-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.topbar-tools{flex-direction:column;align-items:stretch}}@media (width<=680px){.side-rail,.workbench{padding:18px}h1{font-size:34px}h2{font-size:22px}h3{font-size:21px}.card-heading,.card-actions,.workflow-footer{flex-direction:column;align-items:stretch}.strategy-strip,.cue-grid,.nvc-map,.insights-grid{grid-template-columns:1fr}.training-card,.coach-panel,.path-panel{padding:18px}.relationship-tag,.coach-source,.score-badge{white-space:normal;justify-content:center;max-width:100%}select{max-width:none}blockquote{font-size:17px}.ghost-button,.solid-button,.icon-button{width:100%;min-height:46px}}@media (width<=520px){.side-rail,.workbench{padding:14px}h1{font-size:30px}h2,h3{font-size:20px}.brand-mark{width:50px;height:50px}.mode-tabs{grid-template-columns:1fr}.mode-tab{min-height:64px;padding:12px}.training-card,.coach-panel,.path-panel,.scenario-box,.observation-prompt,.result-panel,.meter-panel,.roleplay-context,.sample-reply,.error-box,.empty-state{padding:14px}.option-button{grid-template-columns:30px 1fr;gap:10px;padding:12px}.option-index{width:30px;height:30px}.cue-button{min-height:84px}.chat-window{max-height:320px;padding-right:0}.chat-bubble{max-width:100%}.composer{grid-template-columns:1fr}.workflow-footer{line-height:1.6}}:root[data-theme=dark]{--paper:#131713;--surface:#20261f;--surface-strong:#2d362c;--ink:#f0eadf;--muted:#b8c0b2;--line:#46503f;--moss:#9dbb8e;--moss-dark:#d9ead0;--coral:#f29a7e;--teal:#84c4c0;--amber:#e9bd69;--shadow:0 22px 60px #00000061;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] body{background:var(--paper)}:root[data-theme=dark] .app-shell{background:linear-gradient(90deg, #9dbb8e1f 1px, transparent 1px), linear-gradient(0deg, #84c4c014 1px, transparent 1px), var(--paper)}:root[data-theme=dark] .side-rail,:root[data-theme=dark] .path-panel,:root[data-theme=dark] .training-card,:root[data-theme=dark] .coach-panel,:root[data-theme=dark] .model-selector{background:#20261feb}:root[data-theme=dark] .strategy-strip div,:root[data-theme=dark] .scenario-box,:root[data-theme=dark] .observation-prompt,:root[data-theme=dark] .result-panel,:root[data-theme=dark] .note-feedback,:root[data-theme=dark] .insights-grid div,:root[data-theme=dark] .insight-focus,:root[data-theme=dark] .meter-panel,:root[data-theme=dark] .roleplay-context,:root[data-theme=dark] .sample-reply,:root[data-theme=dark] .empty-state{background:#252d24}:root[data-theme=dark] .mode-tab,:root[data-theme=dark] .option-button,:root[data-theme=dark] .cue-button,:root[data-theme=dark] textarea,:root[data-theme=dark] select,:root[data-theme=dark] .model-choice,:root[data-theme=dark] .theme-toggle,:root[data-theme=dark] .nvc-map div,:root[data-theme=dark] .observation-score-breakdown span,:root[data-theme=dark] .insight-pill-row span{background:#1b211b}:root[data-theme=dark] .mode-tab.active,:root[data-theme=dark] .model-choice.active,:root[data-theme=dark] .option-button.selected,:root[data-theme=dark] .cue-button.selected,:root[data-theme=dark] .chat-bubble.user{background:#263a31}:root[data-theme=dark] .chat-bubble{background:#252d24}:root[data-theme=dark] .cue-button.wrong,:root[data-theme=dark] .error-box{background:#40251f}
