/** AI 推荐:呼吸感圆环生成态 + 拼图结果卡 + 悬浮玻璃操作条 **/ .page-flex { height: 100vh; display: flex; flex-direction: column; overflow: hidden; } .scroll-body { flex: 1; height: 0; } /* 生成中 */ .ai-gen { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 var(--pad) 120rpx; } .ai-ring { width: 216rpx; height: 216rpx; border-radius: 50%; box-shadow: inset 0 0 0 1rpx var(--hairline-2); display: flex; align-items: center; justify-content: center; animation: aiBreath 2.4s var(--ease) infinite; } .ai-ring-core { width: 152rpx; height: 152rpx; border-radius: 50%; background: var(--paper-2); display: flex; align-items: center; justify-content: center; color: var(--ink-2); } .ai-ring-core .icon { width: 56rpx; height: 56rpx; } @keyframes aiBreath { 0%, 100% { transform: scale(.96); opacity: .6; } 50% { transform: scale(1); opacity: 1; } } .ai-gen-t { margin-top: 64rpx; font-family: var(--serif); font-size: 42rpx; font-weight: 500; letter-spacing: -.005em; } .ai-gen-d { margin-top: 18rpx; font-size: 25rpx; color: var(--ink-2); } /* 异步轮询期间的心跳:让慢生成看得见进度,避免误以为卡死 */ .ai-gen-elapsed { margin-top: 16rpx; font-size: 23rpx; color: var(--ink-3); letter-spacing: .02em; } /* 结果 */ .ai-cover { padding: 40rpx var(--pad) 0; } .ai-info { padding: 48rpx var(--pad) 0; } .ai-tags { display: flex; flex-wrap: wrap; gap: 12rpx; margin-top: 26rpx; } .ai-desc { margin-top: 28rpx; } .ai-items { margin-top: 64rpx; } .ai-items-scroll { white-space: nowrap; } .ai-items-row { display: inline-flex; gap: 28rpx; padding: 0 var(--pad); } .ai-chip { display: flex; flex-direction: column; width: 160rpx; } .ai-thumb { width: 160rpx; height: 160rpx; background: var(--paper-2); border-radius: var(--r-img); overflow: hidden; display: flex; align-items: center; justify-content: center; } .ai-thumb .ph { width: 52%; height: 52%; color: var(--art); } .ai-thumb .pic { width: 100%; height: 100%; } .ai-chip-n { margin-top: 14rpx; font-size: 22rpx; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ai-reroll-tip { padding-bottom: 20rpx; text-align: center; font-size: 22rpx; color: var(--ink-3); } /* 第二行说明:换一套后旧结果仍可在「AI 穿搭」找回 */ .ai-reroll-sub { margin-top: -10rpx; color: var(--ink-4); } /* AI 生成内容标识:细字 + 线稿图标,弱于内容与操作区 */ .ai-note { display: flex; align-items: center; gap: 10rpx; font-size: 21rpx; line-height: 1.5; letter-spacing: .02em; color: var(--ink-3); } .ai-note .icon { width: 24rpx; height: 24rpx; color: var(--ink-4); flex-shrink: 0; } /* 场景抽屉内:居中,与主按钮留出呼吸区间 */ .ai-note--sheet { justify-content: center; margin-top: 24rpx; } /* 结果页:跟在标签行下方,左对齐 */ .ai-note--result { margin-top: 22rpx; } /* 场景抽屉底部:进入 AI 穿搭管理页的文字入口 */ .sheet-more { display: flex; align-items: center; justify-content: center; gap: 8rpx; padding-top: 30rpx; font-size: 25rpx; color: var(--ink-2); transition: opacity .18s var(--ease); } .sheet-more:active { opacity: .55; } .sheet-more .icon { width: 24rpx; height: 24rpx; color: var(--ink-4); } .dock-row .btn { flex: 1; } /* 场景抽屉 */ .scene-card { position: relative; margin: 0 var(--pad) 20rpx; padding: 32rpx; border-radius: var(--r-ctrl); background: var(--fill); transition: background .18s var(--ease); } .scene-card.is-on { background: var(--paper); box-shadow: inset 0 0 0 1rpx var(--ink); } .scene-name { font-family: var(--serif); font-size: 32rpx; font-weight: 500; } .scene-desc { margin-top: 10rpx; font-size: 23rpx; color: var(--ink-2); } .scene-check { position: absolute; top: 32rpx; right: 32rpx; width: 34rpx; height: 34rpx; color: var(--ink); } .scene-input { margin: 0 var(--pad) 20rpx; width: auto; display: block; }