/* 创建页复用列表外壳，左侧表单、右侧形象；仅底部确认执行持久化。 */
.creation-content{max-width:1550px;padding-top:28px}.creation-heading{margin-bottom:22px}.creation-heading h1{font-size:28px}.creation-heading p{font-size:14px}.creation-grid{display:grid;grid-template-columns:minmax(0,1.43fr) minmax(310px,1fr);gap:20px;align-items:start}.settings-column{display:flex;flex-direction:column;gap:16px}.settings-card{min-width:0;background:#fff;border:1px solid #dce5ef;border-radius:11px;padding:24px}.settings-card h2{margin:0 0 23px;font-size:20px;line-height:1.3}.setting-row{display:flex;gap:14px;align-items:center;font-size:14px;min-width:0;margin-bottom:14px}.setting-row:last-child{margin-bottom:0}.setting-row>span:first-child,.personality-row legend{flex:0 0 78px;color:#354152}.setting-row input,.setting-row textarea,.setting-row select,.personality-text input{border:1px solid #dce3ed;border-radius:7px;background:#fff;min-height:42px;padding:10px 12px;width:100%;min-width:0;color:#303b4b}.input-stack{flex:1;display:flex;flex-direction:column;gap:7px}.input-stack small,.small-note{font-size:12px;color:#8a95a5;line-height:1.6;margin:0}.setting-row select{flex:1;cursor:pointer}.setting-row .outline{padding:8px 17px;min-height:40px;white-space:nowrap;font-size:13px}.blue{border-color:#269cff;color:#168bfa;background:#fff}.voice-text textarea{resize:vertical;font-size:13px;min-height:62px}.voice-text{align-items:flex-start}.voice-text>span{padding-top:12px}.voice-text button{margin-top:10px}#voice-audio{height:34px;width:100%;margin-top:12px}.personality-row{border:0;padding:0;margin:0 0 15px;display:flex;align-items:center;min-width:0;gap:10px}.personality-row legend{float:left;font-size:14px;padding:7px 0;margin-right:10px}.personality-choices{display:flex;gap:7px;flex-wrap:wrap;flex:1}.choice{position:relative;display:flex;align-items:center;gap:7px;white-space:nowrap;padding:8px 10px;border:1px solid #e3e8ef;border-radius:24px;font-size:12px;cursor:pointer;color:#495463}.choice:has(input:checked){background:#eaf4ff;border-color:#b6dcff;color:#168bfa}.choice input{accent-color:#168bfa;margin:0;width:16px;height:16px;flex:none}.personality-text{display:flex;align-items:center;gap:12px;font-size:14px;margin-top:12px}.personality-text>span{flex:0 0 78px}.personality-text input{font-size:13px}.personality-text:first-of-type{border-top:1px solid #edf0f5;padding-top:16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel-heading h2{margin:0}.draft-badge{font-size:12px;color:#2197fa;background:#e9f3ff;padding:5px 12px;border-radius:20px}.model-stage{position:relative;min-height:355px;height:clamp(355px,30vw,480px);background:radial-gradient(ellipse at 50% 100%,#e9e5fc,#f3f6ff 65%);border-radius:9px;overflow:hidden}.model-empty{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:22px}.model-empty .cube{width:68px;height:68px;stroke:#9bb4e8;stroke-width:1.8;fill:#e1eafa55;margin-bottom:18px}.model-empty h3{font-size:18px;color:#7085a5;font-weight:500;margin:0 0 10px}.model-empty p{font-size:12px;color:#98a5ba;margin:0}.model-help{text-align:center;padding:9px 0 14px}.customize-button{width:100%;border-radius:8px;min-height:45px}.generated-avatar{border-top:1px solid #e9edf4;margin-top:22px;padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:16px}.generated-avatar strong{font-size:14px;font-weight:500}.generated-avatar p{font-size:12px;color:#98a2b2;margin:7px 0 0}.generated-avatar .avatar{width:86px;height:86px;font-size:24px;flex:none}.appearance-save-note{text-align:center;margin-top:18px}#model-preview,model-viewer{width:100%;height:100%;display:block}model-viewer{min-height:355px;--progress-bar-color:#269cff}.creation-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid #e1e8f1;border-radius:10px;padding:17px 24px;margin-top:4px}.creation-actions>div{display:flex;gap:14px}.creation-actions button{min-width:120px}.creation-notice{font-size:14px;line-height:1.7;color:#72839b;background:#edf5ff;border:1px solid #dbeafb;border-radius:8px;padding:12px 16px;margin-bottom:16px}.creation-content>#retry-options{margin-bottom:18px}.text-button{border:0;background:none;color:#269cff;padding:10px;font:inherit;cursor:pointer;font-size:13px;width:100%}#creation-error:empty{min-height:0;margin:12px 0}#creator-dialog{width:min(1160px,calc(100vw - 40px));max-width:none;padding:22px 25px;max-height:calc(100dvh - 32px)}#creator-dialog .dialog-heading{margin-bottom:14px}#creator-dialog h2{font-size:21px}#creator-dialog .small-note{margin-top:6px}#creator-host{height:clamp(350px,65dvh,740px);position:relative;border:1px solid #e4eaf3;border-radius:9px;background:#f4f7fb;overflow:hidden}#creator-host iframe{border:0;width:100%;height:100%;display:block}#creator-host.capturing{pointer-events:none}#creator-host.capturing:after{content:"";position:absolute;inset:0;background:#f4f7fb40;cursor:wait}#creator-status{min-height:22px;margin:12px 0}#creator-dialog .dialog-actions{gap:12px}#creator-host:empty{display:grid;place-items:center}#creation-form[aria-busy=true]{cursor:progress}.creation-content.busy .settings-card{opacity:.85}
@media(min-width:1650px){.creation-content{padding:32px 42px}.choice{padding:9px 12px;font-size:13px}}
@media(max-width:1200px){.creation-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:16px}.settings-card{padding:19px}.setting-row{gap:10px}.setting-row>span:first-child,.personality-text>span{flex-basis:65px}.personality-row legend{flex-basis:65px;margin-right:4px}.choice{padding:7px 9px}.voice-text{flex-wrap:wrap}.voice-text textarea{flex:1}.voice-text button{margin-top:0;margin-left:75px}.model-stage{height:400px}}
@media(max-width:1000px){.creation-grid{grid-template-columns:1fr}.appearance-card{grid-row:1}.model-stage{height:360px}.generated-avatar{margin-top:15px;padding-top:13px}.appearance-card{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.appearance-card .panel-heading,.appearance-card .model-stage{grid-column:1/-1}.appearance-card .model-help{grid-column:1/-1}.appearance-card .generated-avatar{grid-column:2;grid-row:4/7;align-self:center;border:0;margin:0;padding:0}.appearance-card .customize-button,.appearance-card .appearance-save-note,.appearance-card #retry-model{grid-column:1}.creation-actions{padding:15px}.creation-actions button{min-width:100px}}
@media(max-width:560px){.creation-content{padding:21px 14px}.creation-heading h1{font-size:24px}.creation-heading p{line-height:1.7;font-size:12px}.settings-card{padding:18px 14px}.settings-card h2{font-size:18px;margin-bottom:18px}.appearance-card{display:block}.panel-heading h2{margin:0}.model-stage{height:330px;min-height:330px}.model-empty h3{font-size:16px}.generated-avatar{border-top:1px solid #edf0f5!important;margin-top:18px!important;padding-top:14px!important}.appearance-save-note{margin-top:14px}.setting-row{flex-wrap:wrap}.setting-row>span:first-child{flex-basis:100%}.setting-row .input-stack{flex-basis:100%}.setting-row select{max-width:calc(100% - 87px)}.setting-row .outline{padding:8px 12px}.voice-text textarea{flex-basis:100%}.voice-text button{margin:0}.personality-row{display:block;margin-bottom:20px}.personality-row legend{float:none;margin-bottom:7px;padding:0}.personality-text{display:block}.personality-text input{margin-top:8px}.choice{font-size:12px}.creation-actions{align-items:stretch;flex-direction:column;padding:14px;gap:10px}.creation-actions>div{width:100%}.creation-actions button{flex:1;min-width:0;padding:9px 12px}.creation-actions>span{text-align:center}#creator-dialog{width:calc(100vw - 14px);padding:16px 12px}#creator-dialog h2{font-size:18px}#creator-dialog .dialog-heading{gap:8px}#creator-host{height:65dvh;min-height:360px}#create-crumb{white-space:nowrap}}

/* 本人声音按步骤呈现，只突出当前操作；等待供应商时显示不定量状态，不虚构完成百分比。 */
.personal-voice{min-width:0;border:1px solid #d9e6f7;border-radius:12px;padding:20px;margin:22px 0;background:linear-gradient(145deg,#f7fbff,#fff)}.personal-voice legend{font-weight:650;font-size:16px;padding:0 8px;color:#263e61}.personal-voice .personal-intro{margin:0 0 16px;color:#63758e}.personal-steps{display:flex;list-style:none;padding:0;margin:0 0 20px;gap:8px}.personal-steps li{flex:1;text-align:center;border-radius:6px;padding:9px 5px;background:#eff3f8;color:#8693a6;font-size:12px}.personal-steps li[data-state=current]{background:#e4efff;color:#1765cb;font-weight:650}.personal-steps li[data-state=done]{background:#e5f5ef;color:#24745a}.personal-consent{display:flex!important;align-items:flex-start;gap:9px!important;font-size:12px;line-height:1.7;color:#63758e}.personal-consent input{width:16px!important;flex:0 0 16px;margin-top:3px!important;accent-color:#269cff}.personal-guide{font-size:13px;color:#52657f}.personal-voice blockquote{margin:15px 0;padding:18px;border:1px solid #e2eaf7;border-radius:8px;background:#fff;line-height:1.9;font-size:14px;color:#344b6c}.personal-actions{display:flex;gap:10px;flex-wrap:wrap}.personal-voice audio{width:100%;margin:6px 0}.personal-voice [hidden]{display:none!important}#personal-meter{display:flex;gap:12px;align-items:center;margin:12px 0}#personal-progress{flex:1;min-width:0;height:10px;accent-color:#269cff}#personal-seconds{font-size:12px;color:#63758e;white-space:nowrap}#personal-working{display:flex;align-items:center;gap:10px;padding:14px 0;color:#42688e;font-size:13px}.personal-spinner{width:18px;height:18px;flex:0 0 18px;border:2px solid #dce8f8;border-top-color:#269cff;border-radius:50%;animation:model-loading-spin .9s linear infinite}#personal-status{font-size:13px;line-height:1.7;color:#52657f;margin:12px 0}#personal-manage{border-top:1px solid #e4ebf5;margin-top:20px;padding-top:12px;font-size:12px;color:#7b8a9f}#personal-manage summary{cursor:pointer}#personal-manage .text-button{width:auto;color:#b85a61}#personal-review p{font-size:13px;line-height:1.7}@media(max-width:560px){.personal-voice{padding:14px}.personal-steps{gap:4px}.personal-steps li{font-size:11px}.personal-actions button{flex:1 1 auto}}@media(prefers-reduced-motion:reduce){.personal-spinner{animation:none}}

/* 保存进度使用不定量动画；接口返回前不显示虚构百分比，并尊重减少动态效果的系统设置。 */
.creation-actions>.creation-save-status{display:block;flex:1;min-width:0}.creation-save-status #creation-progress{color:#63758e}.creation-save-bar{height:7px;background:#e9effa;border-radius:8px;overflow:hidden;margin:10px 0 7px}.creation-save-bar>span{display:block;width:38%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#04c4e9,#388dff,#bf65ef);animation:creation-save-loading 1.6s ease-in-out infinite}.creation-save-status #creation-save-hint{overflow-wrap:anywhere}.creation-actions>div:last-child{flex-shrink:0}.creation-content.busy .creation-actions{border-color:#b6d8ff;box-shadow:0 2px 12px #269cff12}@keyframes creation-save-loading{from{transform:translateX(-110%)}to{transform:translateX(370%)}}@media(prefers-reduced-motion:reduce){.creation-save-bar>span{animation:none;width:100%;opacity:.65}}

/* 文本资料只提供纯文本预览，长文件名和 Markdown 原文均在卡片内换行。 */
.knowledge-upload{margin:15px 0}.knowledge-list{display:flex;flex-direction:column;gap:10px}.knowledge-file{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px;background:#f7faff;border:1px solid #e3ebf6;border-radius:8px}.knowledge-file>div:first-child{display:flex;flex-direction:column;gap:5px;min-width:0}.knowledge-file strong{font-size:14px;overflow-wrap:anywhere}.knowledge-file>div:nth-child(2){display:flex;align-items:center;gap:10px}.knowledge-file .text-button{width:auto;padding:6px 0;white-space:nowrap}.knowledge-file pre{grid-column:1/-1;max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.7;background:#fff;padding:10px;margin:0;border-radius:5px}#knowledge-error:empty{display:none}

/* 编辑页资料操作在窄屏换行，待删除状态只作用于草稿，保存前可撤销。 */
#existing-knowledge-list:not(:empty){margin-bottom:12px}.knowledge-file>div:nth-child(2){flex-wrap:wrap;justify-content:flex-end}.knowledge-file.pending-delete strong{text-decoration:line-through;color:#8a95a5}#reload-edit{margin-bottom:15px}@media(max-width:560px){#existing-knowledge-list .knowledge-file{grid-template-columns:minmax(0,1fr)}#existing-knowledge-list .knowledge-file>div:nth-child(2){justify-content:flex-start}}

/* 问答与文件共享知识卡片，弹窗只编辑内存草稿，确认数字人时才统一提交。 */
.knowledge-upload{display:flex;flex-wrap:wrap;gap:10px}#qa-list:not(:empty){margin-bottom:12px}#qa-dialog{width:min(640px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto}#qa-form textarea{width:100%;padding:10px 12px;border:1px solid #dce3ed;border-radius:7px;resize:vertical;min-height:70px;font:inherit;line-height:1.6}#qa-form .field{margin:14px 0}#qa-form small{color:#8a95a5;line-height:1.6}

/* 模型下载与渲染共用加载遮罩；成功、失败及离页均退出，低动态偏好下保留静态状态提示。 */
.model-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(ellipse at 50% 100%,#e9e5fc,#f3f6ff 65%);color:#7085a5;font-size:14px;pointer-events:none}.model-loading-spinner{display:block;width:44px;height:44px;border:3px solid #dbe5f8;border-top-color:#269cff;border-right-color:#a779ee;border-radius:50%;animation:model-loading-spin .9s linear infinite}@keyframes model-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.model-loading-spinner{animation:none}}

/* 定制器保持真实尺寸加载WebGL，遮罩覆盖默认页面且阻止点击；已有形象恢复就绪后再显示。 */
.creator-stage{position:relative}.creator-loading{border-radius:9px;pointer-events:auto}.creator-stage[aria-busy=true]{cursor:progress}

/* 拍照面板占用编辑器原有区域，小屏操作按钮换行，照片完整显示以便核对面部。 */
.camera-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}.camera-toolbar button{flex-shrink:0}.camera-panel{height:clamp(350px,65dvh,740px);overflow:auto;padding:12px;background:#f4f7fc}.camera-panel h3{margin:0 0 10px}.camera-preview{height:calc(100% - 155px);min-height:180px;max-height:480px;background:#182134;border-radius:8px;overflow:hidden}.camera-preview video,.camera-preview canvas{width:100%;height:100%;object-fit:contain}.camera-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.camera-panel .small-note{color:#42536b;margin-top:8px}@media(max-width:640px){.camera-preview{max-height:42vh}.camera-actions button{flex:1 1 auto}.camera-toolbar{gap:8px}}
