refactor: 清理未使用参数、移除死代码、聚焦电商核心模块

主要变更概述:
================

1. 清理未使用的函数参数 (TypeScript noUnusedParameters)
------------------------------------------------------
- AppShell.tsx: 移除未使用的 backendHealth prop 及 ServerConnectionHealth 导入
- canvasUtils.ts: 移除 resolveWorkflowVideoModel 的 workflowModel 参数
- canvasWorkflowDeserialize.ts: 同步更新调用方
- CanvasPage.tsx: 移除 resolveWorkflowVideoModel 未使用导入
- HomePage.tsx: 移除 onOpenTokenMonitor、onOpenImageTool 未使用 props
- ToolboxSection.tsx: 移除 onOpenImageTool 未使用 prop 及 WebImageWorkbenchTool 类型导入
- ScriptTokensPage.tsx: 移除 formatReportMarkdown 的 script 参数,更新 2 处调用
- TokenUsagePage.tsx: 移除 onOpenImageTool、onSelectView 未使用 props
- WorkbenchPage.tsx: 移除 renderComposerToolbar 的 showStop 参数,更新 2 处调用

2. 移除未使用的模块和死代码
--------------------------
删除以下未在电商模块中使用的功能模块:
- 画布模块 (canvas/): CanvasPage, canvasUtils, canvasWorkflow* 等
- 主页模块 (home/): HomePage, ToolboxSection, WelcomeSplash 等
- 工作台模块 (workbench/): WorkbenchPage, ConversationSidebar 等
- 社区模块 (community/, community-review/)
- 数字人模块 (digital-human/)
- 图片工作台 (image-workbench/)
- 其他独立工具页: agent, assets, beta-applications, character-mix,
  compliance, dialog-generator, more, profile, provider-health,
  report, resolution-upscale, script-tokens, settings, size-template,
  subtitle-removal, watermark-removal

3. 移除未使用的公共组件
----------------------
- AnimatedPanel, BeforeAfterCompare, BetaApplicationModal
- CookieConsentBanner, DropZone, EmptyState, NotFoundPage
- NotificationCenter, OnboardingTour, OptimizedImage
- PageTransition, RechargeModal, ShellIcon, Skeleton
- StudioToolLayout, TaskStatusBar, WorkspacePageShell

4. 移除未使用的 API 客户端
--------------------------
- betaApplicationClient, communityClient, conversationClient
- draftClient, modelCapabilitiesClient, notificationClient
- projectTaskClient, providerHealthClient, publicConfigClient
- referenceUploadService, reportClient, scriptEvalClient
- uploadWithProgress

5. 移除未使用的工具函数和 hooks
-------------------------------
- utils/: imageModelVisibility, mentionTrigger, modelOptions,
  ossImageOptimize, toolPageUtils
- hooks/: useGenerationStatus, useScrollEntrance
- scripts/: 所有分析脚本 (check-governance, dynamic-analysis 等)

6. 移除未使用的样式文件
----------------------
删除与已移除模块对应的 CSS 文件,保留电商模块专用样式

7. 新增电商模块功能文件
----------------------
+ src/api/generationRecordClient.ts (生成记录客户端)
+ src/features/ecommerce/ecommerceGenerationPersistence.ts (生成持久化)

验证:
- TypeScript 编译 (tsc --noEmit --noUnusedParameters) 零错误通过
- 所有保留文件的功能完整性未受影响
This commit is contained in:
2026-06-12 11:12:55 +08:00
parent 52e704375c
commit 6d93c2b9b8
184 changed files with 2146 additions and 89530 deletions
-1
View File
@@ -1 +0,0 @@
/* Agent page rules move here as they are retired from legacy-pages.css. */
-245
View File
@@ -1,245 +0,0 @@
/* Asset library page rules move here as they are retired from legacy-pages.css. */
.asset-context-menu {
position: fixed;
z-index: 200;
min-width: 140px;
padding: 4px;
background: #1a1a1a;
border: 1px solid #333;
border-radius: 8px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}
.asset-context-menu button {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
padding: 8px 12px;
border: 0;
border-radius: 6px;
background: transparent;
color: #ef4444;
font-size: 13px;
cursor: pointer;
transition: background 0.15s;
}
.asset-context-menu button:hover {
background: rgba(239, 68, 68, 0.1);
}
.asset-preview-modal {
position: fixed;
inset: 0;
z-index: 140;
display: grid;
place-items: center;
padding: 32px;
color: var(--fg-body);
}
.asset-preview-modal__backdrop {
position: absolute;
inset: 0;
border: 0;
background: rgba(0, 0, 0, 0.72);
cursor: zoom-out;
backdrop-filter: none;
animation: backdrop-in 150ms ease both;
}
.asset-preview-modal__panel {
position: relative;
z-index: 1;
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
width: min(1120px, calc(100vw - 64px));
animation: scale-in 200ms var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)) both;
max-height: min(820px, calc(100vh - 64px));
overflow: hidden;
border: 1px solid rgba(var(--accent-rgb), 0.22);
border-radius: 18px;
background: color-mix(in srgb, var(--bg-panel) 96%, transparent);
box-shadow: none;
}
.asset-preview-modal__head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
min-height: 58px;
padding: 12px 14px 12px 18px;
border-bottom: 1px solid var(--border-weak);
background: rgba(255, 255, 255, 0.035);
}
.asset-preview-modal__head > div {
display: grid;
gap: 4px;
min-width: 0;
}
.asset-preview-modal__head strong,
.asset-preview-modal__head span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.asset-preview-modal__head strong {
color: var(--fg-body);
font-size: 15px;
font-weight: 1000;
}
.asset-preview-modal__head span {
color: var(--fg-muted);
font-size: 12px;
font-weight: 800;
}
.asset-preview-modal__close {
display: inline-grid;
place-items: center;
width: 36px;
min-width: 36px;
height: 36px;
border: 1px solid var(--border-subtle);
border-radius: 10px;
background: var(--bg-inset);
color: var(--fg-muted);
cursor: pointer;
transition:
background 160ms ease,
border-color 160ms ease,
color 160ms ease,
transform 160ms ease;
}
.asset-preview-modal__close:hover {
border-color: rgba(var(--accent-rgb), 0.44);
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
transform: translateY(-1px);
}
.asset-preview-modal__body {
display: grid;
place-items: center;
min-height: 0;
padding: 20px;
background: var(--bg-shell);
}
.asset-preview-modal__body img,
.asset-preview-modal__body video {
display: block;
width: auto;
max-width: 100%;
height: auto;
max-height: calc(100vh - 210px);
border-radius: 12px;
object-fit: contain;
box-shadow: none;
}
.asset-preview-modal__empty {
display: grid;
justify-items: center;
gap: 10px;
color: var(--fg-muted);
text-align: center;
}
.asset-preview-modal__empty .anticon {
color: var(--accent);
font-size: 32px;
}
.asset-preview-modal__empty strong {
color: var(--fg-body);
font-size: 15px;
}
.asset-preview-modal__meta {
display: flex;
flex-wrap: wrap;
gap: 8px;
padding: 12px 18px;
border-top: 1px solid var(--border-weak);
background: rgba(255, 255, 255, 0.035);
}
.asset-preview-modal__meta span {
display: inline-flex;
align-items: center;
min-height: 24px;
padding: 0 9px;
border-radius: 999px;
background: var(--bg-inset);
color: var(--fg-soft);
font-size: 12px;
font-weight: 800;
}
.asset-card--desktop {
cursor: zoom-in;
}
.asset-card-wrapper {
position: relative;
display: inline-block;
}
.asset-card__delete {
position: absolute;
top: 6px;
right: 6px;
z-index: 2;
display: none;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
border: 0;
border-radius: 6px;
background: var(--bg-panel);
color: var(--fg-muted);
cursor: pointer;
font-size: 14px;
opacity: 0.85;
transition: opacity 150ms, color 150ms;
}
.asset-card-wrapper:hover .asset-card__delete {
display: flex;
}
.asset-card__delete:hover {
opacity: 1;
color: var(--fg-danger);
}
@media (max-width: 720px) {
.asset-preview-modal {
padding: 14px;
}
.asset-preview-modal__panel {
width: calc(100vw - 28px);
max-height: calc(100vh - 28px);
border-radius: 14px;
}
.asset-preview-modal__body {
padding: 12px;
}
.asset-preview-modal__body img,
.asset-preview-modal__body video {
max-height: calc(100vh - 190px);
}
}
File diff suppressed because it is too large Load Diff
-421
View File
@@ -1,421 +0,0 @@
.beta-admin-page__inner {
display: flex;
flex-direction: column;
gap: 18px;
width: min(1180px, calc(100vw - 48px));
margin: 0 auto;
height: 100%;
min-height: 0;
padding: 24px;
overflow: hidden;
}
.beta-admin-toolbar {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
}
.beta-admin-toolbar span {
color: var(--accent);
font-size: 12px;
font-weight: 850;
}
.beta-admin-toolbar h1 {
margin: 4px 0;
color: var(--text-primary);
font-size: 22px;
}
.beta-admin-toolbar p {
max-width: 620px;
margin: 0;
color: var(--text-muted);
font-size: 13px;
line-height: 1.7;
}
.beta-admin-toolbar button,
.beta-admin-status-tabs button,
.beta-admin-actions button,
.beta-admin-access button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
border: 1px solid var(--border-subtle);
border-radius: 8px;
background: var(--surface-elevated);
color: var(--text-primary);
cursor: pointer;
font-size: 13px;
font-weight: 800;
}
.beta-admin-toolbar button {
min-height: 36px;
padding: 0 14px;
}
.beta-admin-toolbar button:disabled,
.beta-admin-actions button:disabled {
opacity: 0.55;
cursor: wait;
}
.beta-admin-status-tabs {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.beta-admin-status-tabs button {
min-height: 34px;
padding: 0 14px;
color: var(--text-muted);
}
.beta-admin-status-tabs button.is-active {
border-color: rgba(var(--accent-rgb), 0.45);
background: rgba(var(--accent-rgb), 0.14);
color: var(--accent);
}
.beta-admin-error {
margin: 0;
color: var(--error, #ef4444);
font-size: 13px;
font-weight: 700;
}
.beta-admin-layout {
display: grid;
grid-template-columns: 300px minmax(0, 1fr);
gap: 16px;
flex: 1;
min-height: 0;
align-items: start;
}
.beta-admin-list {
display: flex;
flex-direction: column;
gap: 8px;
max-height: 100%;
overflow: auto;
padding-right: 4px;
}
.beta-admin-list__item {
display: grid;
gap: 6px;
width: 100%;
padding: 13px;
border: 1px solid var(--border-subtle);
border-radius: 8px;
background: var(--surface-card);
color: var(--text-primary);
text-align: left;
cursor: pointer;
}
.beta-admin-list__item.is-active {
border-color: rgba(var(--accent-rgb), 0.52);
background: rgba(var(--accent-rgb), 0.1);
}
.beta-admin-list__item strong {
overflow: hidden;
font-size: 14px;
text-overflow: ellipsis;
white-space: nowrap;
}
.beta-admin-list__item small {
overflow: hidden;
color: var(--text-muted);
font-size: 12px;
text-overflow: ellipsis;
white-space: nowrap;
}
.beta-admin-list__empty,
.beta-admin-detail--empty {
display: grid;
min-height: 180px;
place-items: center;
border: 1px dashed var(--border-subtle);
border-radius: 8px;
color: var(--text-muted);
font-size: 13px;
}
.beta-admin-status {
width: fit-content;
padding: 2px 8px;
border-radius: 999px;
font-size: 12px;
font-weight: 850;
}
.beta-admin-status--pending {
background: rgba(245, 158, 11, 0.16);
color: #f59e0b;
}
.beta-admin-status--approved {
background: rgba(16, 185, 129, 0.16);
color: #10b981;
}
.beta-admin-status--rejected {
background: rgba(239, 68, 68, 0.16);
color: #ef4444;
}
.beta-admin-detail {
display: flex;
flex-direction: column;
gap: 14px;
min-width: 0;
max-height: 100%;
min-height: 0;
overflow: auto;
padding-right: 4px;
}
.beta-admin-detail__header,
.beta-admin-form-card,
.beta-admin-review-box {
border: 1px solid var(--border-subtle);
border-radius: 8px;
background: var(--surface-card);
}
.beta-admin-detail__header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
padding: 18px;
}
.beta-admin-detail__header span {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--accent);
font-size: 12px;
font-weight: 850;
}
.beta-admin-detail__header h2 {
margin: 5px 0 8px;
color: var(--text-primary);
font-size: 20px;
}
.beta-admin-detail__header p {
display: -webkit-box;
overflow: hidden;
margin: 0;
color: var(--text-muted);
font-size: 13px;
line-height: 1.7;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}
.beta-admin-code {
flex-shrink: 0;
padding: 8px 10px;
border: 1px solid rgba(var(--accent-rgb), 0.35);
border-radius: 8px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
font-size: 13px;
}
.beta-admin-form-card {
padding: 16px;
}
.beta-admin-form-card h3 {
margin: 0 0 12px;
color: var(--text-primary);
font-size: 15px;
}
.beta-admin-field-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.beta-admin-field {
min-width: 0;
padding: 10px;
border: 1px solid var(--border-subtle);
border-radius: 6px;
background: var(--surface-elevated);
}
.beta-admin-field--wide {
grid-column: 1 / -1;
}
.beta-admin-field span {
display: block;
margin-bottom: 4px;
color: var(--text-muted);
font-size: 12px;
}
.beta-admin-field strong {
display: block;
overflow-wrap: anywhere;
color: var(--text-primary);
font-size: 13px;
line-height: 1.6;
white-space: pre-wrap;
}
.beta-admin-statement {
margin: 0 0 12px;
padding: 12px;
border: 1px solid var(--border-subtle);
border-radius: 6px;
background: var(--surface-elevated);
color: var(--text-primary);
font-size: 13px;
line-height: 1.8;
white-space: pre-wrap;
}
.beta-admin-review-box {
padding: 16px;
}
.beta-admin-review-box label {
display: grid;
gap: 8px;
}
.beta-admin-review-box label span {
color: var(--text-primary);
font-size: 13px;
font-weight: 850;
}
.beta-admin-review-box textarea {
width: 100%;
min-height: 92px;
resize: vertical;
border: 1px solid var(--border-subtle);
border-radius: 8px;
background: var(--surface-elevated);
color: var(--text-primary);
font: inherit;
font-size: 13px;
line-height: 1.7;
outline: none;
padding: 10px;
}
.beta-admin-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 12px;
}
.beta-admin-actions button {
min-height: 38px;
padding: 0 16px;
}
.beta-admin-actions button:first-child {
border-color: rgba(239, 68, 68, 0.35);
color: #ef4444;
}
.beta-admin-actions button:last-child {
border-color: rgba(16, 185, 129, 0.35);
background: rgba(16, 185, 129, 0.14);
color: #10b981;
}
.beta-admin-access {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 12px;
min-height: 420px;
color: var(--text-muted);
text-align: center;
}
.beta-admin-access svg {
color: var(--accent);
font-size: 28px;
}
.beta-admin-access h1 {
margin: 0;
color: var(--text-primary);
font-size: 20px;
}
.beta-admin-access p {
margin: 0;
font-size: 13px;
}
.beta-admin-access button {
min-height: 38px;
padding: 0 18px;
border-color: rgba(var(--accent-rgb), 0.38);
background: rgba(var(--accent-rgb), 0.14);
color: var(--accent);
}
@media (max-width: 900px) {
.beta-admin-page__inner {
width: min(100%, calc(100vw - 24px));
padding: 16px 12px;
overflow: auto;
}
.beta-admin-toolbar,
.beta-admin-detail__header {
flex-direction: column;
}
.beta-admin-layout {
grid-template-columns: 1fr;
overflow: visible;
}
.beta-admin-list {
max-height: none;
}
.beta-admin-detail {
max-height: none;
overflow: visible;
padding-right: 0;
}
}
@media (max-width: 640px) {
.beta-admin-field-grid {
grid-template-columns: 1fr;
}
.beta-admin-actions {
flex-direction: column;
}
}
-949
View File
@@ -1,949 +0,0 @@
.studio-canvas-project-bar {
position: absolute;
top: 14px;
right: 14px;
z-index: 80;
display: inline-flex;
align-items: center;
gap: 10px;
max-width: calc(100vw - 104px);
min-height: 44px;
padding: 6px 6px 6px 14px;
border: 1px solid var(--border-subtle);
border-radius: 14px;
background: var(--bg-panel);
color: var(--fg-muted);
box-shadow: var(--shadow-tight);
}
.studio-canvas .react-flow__attribution {
display: none;
}
.canvas-page .studio-canvas-video-player {
position: absolute;
inset: 0;
overflow: hidden;
border-radius: inherit;
background: #050806;
}
.canvas-page .studio-canvas-video-player video {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.canvas-page .studio-canvas-video-player__shade {
position: absolute;
inset: auto 0 0;
height: 38%;
background: rgba(0, 0, 0, 0.62);
pointer-events: none;
}
.canvas-page .studio-canvas-video-player__center,
.canvas-page .studio-canvas-video-player__button {
display: inline-grid;
place-items: center;
border: 1px solid rgba(255, 255, 255, 0.18);
background: rgba(0, 0, 0, 0.48);
color: rgba(255, 255, 255, 0.92);
cursor: pointer;
transition:
background 150ms ease,
border-color 150ms ease,
color 150ms ease,
opacity 150ms ease,
transform 150ms ease;
}
.canvas-page .studio-canvas-video-player__center {
position: absolute;
left: 50%;
top: 50%;
z-index: 8;
width: 46px;
height: 46px;
border-radius: 999px;
font-size: 22px;
transform: translate(-50%, -50%);
}
.canvas-page .studio-canvas-video-player.is-playing:not(:hover) .studio-canvas-video-player__center {
opacity: 0;
pointer-events: none;
transform: translate(-50%, -50%) scale(0.92);
}
.canvas-page .studio-canvas-video-player__controls {
position: absolute;
left: 10px;
right: 10px;
bottom: 10px;
z-index: 9;
display: grid;
grid-template-columns: 30px auto minmax(90px, 1fr) 30px;
align-items: center;
gap: 8px;
min-height: 34px;
padding: 5px 7px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 12px;
background: rgba(5, 9, 7, 0.58);
box-shadow: none;
backdrop-filter: none;
pointer-events: auto;
}
.canvas-page .studio-canvas-video-player__button {
width: 28px;
height: 28px;
border-radius: 9px;
font-size: 14px;
}
.canvas-page .studio-canvas-video-player__center:hover,
.canvas-page .studio-canvas-video-player__button:hover {
border-color: rgba(var(--accent-rgb), 0.48);
background: rgba(var(--accent-rgb), 0.18);
color: #fff;
transform: translateY(-1px);
}
.canvas-page .studio-canvas-video-player__center:hover {
transform: translate(-50%, -50%) scale(1.04);
}
.canvas-page .studio-canvas-video-player__time {
color: rgba(255, 255, 255, 0.86);
font-size: 11px;
font-weight: 900;
line-height: 1;
white-space: nowrap;
}
.canvas-page .studio-canvas-video-player__seek {
width: 100%;
min-width: 0;
height: 4px;
accent-color: var(--accent);
cursor: pointer;
}
.canvas-page .studio-canvas-video-player__seek::-webkit-slider-thumb {
width: 12px;
height: 12px;
border-radius: 999px;
}
.studio-canvas-project-bar__identity {
display: grid;
gap: 2px;
min-width: 0;
max-width: min(320px, 34vw);
}
.studio-canvas-project-bar__name {
display: flex;
align-items: center;
min-width: 0;
color: var(--fg-body);
font-size: 13px;
font-weight: 1000;
line-height: 1.2;
}
.studio-canvas-project-bar__name span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.studio-canvas-project-bar__name-form {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: min(260px, 32vw);
}
.studio-canvas-project-bar__name-form input {
width: min(220px, 28vw);
height: 30px;
padding: 0 10px;
border: 1px solid rgba(var(--accent-rgb), 0.42);
border-radius: 9px;
background: var(--bg-inset);
color: var(--fg-body);
font-size: 13px;
font-weight: 900;
}
.studio-canvas-project-bar__name-form button,
.studio-canvas-project-bar__rename {
display: inline-grid;
place-items: center;
width: 30px;
min-width: 30px;
height: 30px;
border: 1px solid var(--border-subtle);
border-radius: 9px;
background: var(--bg-inset);
color: var(--fg-muted);
cursor: pointer;
transition:
background 160ms ease,
border-color 160ms ease,
color 160ms ease,
transform 160ms ease;
}
.studio-canvas-project-bar__name-form button:hover,
.studio-canvas-project-bar__rename:hover {
border-color: rgba(var(--accent-rgb), 0.42);
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
transform: translateY(-1px);
}
.studio-canvas-project-bar__status {
max-width: min(360px, 42vw);
overflow: hidden;
font-size: 12px;
font-weight: 800;
text-overflow: ellipsis;
white-space: nowrap;
}
.studio-canvas-project-bar__status.is-success {
color: var(--accent);
}
.studio-canvas-project-bar__status.is-error {
color: var(--error);
}
.studio-canvas-project-bar__save {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 7px;
min-width: 84px;
min-height: 34px;
padding: 0 13px;
border: 1px solid var(--accent);
border-radius: 11px;
background: var(--accent);
color: #061014;
font-size: 13px;
font-weight: 900;
cursor: pointer;
transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.studio-canvas-project-bar__save:hover:not(:disabled) {
border-color: var(--accent-hover, var(--accent));
background: var(--accent-hover, var(--accent));
transform: translateY(-1px);
}
.studio-canvas-project-bar__save:disabled {
cursor: wait;
opacity: 0.72;
}
.studio-canvas-project-bar__autosave-status {
display: inline-flex;
align-items: center;
font-size: 11px;
font-weight: 500;
padding: 0 8px;
opacity: 0;
transition: opacity 0.3s ease;
}
.studio-canvas-project-bar__autosave-status--saving {
opacity: 1;
color: var(--fg-muted, #888);
}
.studio-canvas-project-bar__autosave-status--saved {
opacity: 1;
color: #10b981;
}
.studio-canvas-project-bar__autosave-status--error {
opacity: 1;
color: #ef4444;
}
.studio-canvas-project-bar__export,
.studio-canvas-project-bar__publish {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 7px;
min-height: 34px;
padding: 0 12px;
border-radius: 11px;
font-size: 13px;
font-weight: 900;
cursor: pointer;
transition:
background 160ms ease,
border-color 160ms ease,
color 160ms ease,
transform 160ms ease,
opacity 160ms ease;
}
.studio-canvas-project-bar__export {
border: 1px solid var(--border-subtle);
background: var(--bg-inset);
color: var(--fg-body);
}
.studio-canvas-project-bar__export:hover {
border-color: rgba(var(--accent-rgb), 0.44);
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
transform: translateY(-1px);
}
.studio-canvas-project-bar__publish {
border: 1px solid #35d27d;
background: #35d27d;
color: #06140b;
}
.studio-canvas-project-bar__publish:hover:not(:disabled) {
border-color: #4ade80;
background: #4ade80;
transform: translateY(-1px);
}
.studio-canvas-project-bar__publish:disabled {
cursor: wait;
opacity: 0.72;
}
.studio-canvas-project-bar__recent {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 7px;
min-height: 34px;
padding: 0 12px;
border: 1px solid var(--border-subtle);
border-radius: 11px;
background: var(--bg-inset);
color: var(--fg-body);
font-size: 13px;
font-weight: 900;
cursor: pointer;
transition:
background 160ms ease,
border-color 160ms ease,
color 160ms ease,
transform 160ms ease;
}
.studio-canvas-project-bar__recent em {
display: inline-grid;
place-items: center;
min-width: 18px;
height: 18px;
padding: 0 5px;
border-radius: 999px;
background: var(--accent);
color: #061014;
font-size: 11px;
font-style: normal;
font-weight: 1000;
}
.studio-canvas-project-bar__recent:hover,
.studio-canvas-project-bar__recent.is-active {
border-color: rgba(var(--accent-rgb), 0.44);
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
transform: translateY(-1px);
}
.studio-canvas-recent-drawer {
position: absolute;
top: 72px;
right: 14px;
z-index: 82;
display: grid;
grid-template-rows: 1fr;
width: min(360px, calc(100vw - 104px));
height: min(284px, calc(100vh - 92px));
min-height: 0;
overflow: hidden;
border: 1px solid var(--border-subtle);
border-radius: 16px;
background: color-mix(in srgb, var(--bg-panel) 94%, transparent);
color: var(--fg-body);
box-shadow: none;
backdrop-filter: none;
}
.studio-canvas-recent-drawer__list {
display: grid;
align-content: start;
gap: 10px;
min-height: 0;
height: 100%;
padding: 12px;
overflow-y: auto;
}
.studio-canvas-recent-project {
display: grid;
grid-template-columns: 76px 1fr;
gap: 12px;
width: 100%;
min-height: 84px;
padding: 9px;
border: 1px solid var(--border-subtle);
border-radius: 14px;
background: var(--bg-inset);
color: var(--fg-body);
text-align: left;
cursor: pointer;
transition:
background 160ms ease,
border-color 160ms ease,
transform 160ms ease;
}
.studio-canvas-recent-project:hover:not(:disabled) {
border-color: rgba(var(--accent-rgb), 0.46);
background: rgba(var(--accent-rgb), 0.1);
transform: translateX(-2px);
}
.studio-canvas-recent-project:disabled {
cursor: not-allowed;
opacity: 0.6;
}
.studio-canvas-recent-project img,
.studio-canvas-recent-project__thumb {
width: 76px;
height: 66px;
overflow: hidden;
border: 1px solid var(--border-subtle);
border-radius: 10px;
background: var(--bg-elevated);
}
.studio-canvas-recent-project img {
object-fit: cover;
}
.studio-canvas-recent-project__thumb {
display: grid;
place-items: center;
color: var(--accent);
font-size: 22px;
}
.studio-canvas-recent-project__body {
display: grid;
align-content: center;
gap: 4px;
min-width: 0;
}
.studio-canvas-recent-project__body strong,
.studio-canvas-recent-project__body small,
.studio-canvas-recent-project__body em {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.studio-canvas-recent-project__body strong {
color: var(--fg-body);
font-size: 13px;
font-weight: 1000;
}
.studio-canvas-recent-project__body small {
color: var(--fg-muted);
font-size: 12px;
font-weight: 800;
}
.studio-canvas-recent-project__body em {
color: var(--fg-soft);
font-size: 11px;
font-style: normal;
font-weight: 800;
}
.studio-canvas-recent-drawer__empty {
display: grid;
justify-items: center;
gap: 8px;
padding: 54px 20px;
color: var(--fg-muted);
text-align: center;
}
.studio-canvas-recent-drawer__empty .anticon {
color: var(--accent);
font-size: 30px;
}
.studio-canvas-recent-drawer__empty strong {
color: var(--fg-body);
font-size: 15px;
}
.studio-canvas-recent-drawer__empty span {
font-size: 12px;
font-weight: 800;
}
.studio-canvas-recent-drawer__community {
display: none;
min-height: 42px;
margin: 0 12px 12px;
border: 1px solid rgba(var(--accent-rgb), 0.44);
border-radius: 12px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
font-size: 13px;
font-weight: 1000;
cursor: pointer;
}
.studio-canvas-recent-drawer__community:hover {
background: var(--accent);
color: #061014;
}
.studio-tool-layout--canvas-empty {
grid-template-rows: minmax(0, 1fr);
grid-template-areas: "canvas";
}
.studio-canvas.is-empty-projects {
overflow: hidden;
}
.studio-canvas.is-empty-projects .react-flow__controls {
display: none;
}
.studio-canvas-empty-projects {
position: absolute;
inset: 0;
z-index: 84;
display: grid;
place-content: center;
justify-items: center;
gap: 18px;
padding: 32px;
color: var(--fg-body);
text-align: center;
pointer-events: none;
}
.studio-canvas-empty-projects strong {
max-width: min(560px, calc(100vw - 180px));
color: var(--fg-body);
font-size: clamp(20px, 2vw, 28px);
font-weight: 1000;
line-height: 1.35;
}
.studio-canvas-empty-projects__button {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 132px;
min-height: 42px;
padding: 0 22px;
border: 1px solid var(--accent);
border-radius: 12px;
background: var(--accent);
color: #061014;
font-size: 14px;
font-weight: 1000;
cursor: pointer;
pointer-events: auto;
box-shadow: none;
transition:
background 160ms ease,
border-color 160ms ease,
box-shadow 160ms ease,
transform 160ms ease;
}
.studio-canvas-empty-projects__button:hover {
border-color: var(--accent-hover, var(--accent));
background: var(--accent-hover, var(--accent));
box-shadow: none;
transform: translateY(-1px);
}
.studio-canvas-loading-spinner {
width: 36px;
height: 36px;
border: 3px solid rgba(var(--accent-rgb), 0.18);
border-top-color: var(--accent);
border-radius: 50%;
animation: canvas-spin 0.8s linear infinite;
}
@keyframes canvas-spin {
to { transform: rotate(360deg); }
}
@media (max-width: 640px) {
.studio-canvas-project-bar {
right: 10px;
left: 10px;
gap: 6px;
justify-content: space-between;
}
.studio-canvas-project-bar__status {
max-width: calc(100vw - 140px);
}
.studio-canvas-project-bar__identity {
max-width: none;
}
.studio-canvas-project-bar__name-form {
min-width: 0;
}
.studio-canvas-project-bar__name-form input {
width: min(180px, 42vw);
}
.studio-canvas-project-bar__recent span,
.studio-canvas-project-bar__export span,
.studio-canvas-project-bar__publish span {
display: none;
}
.studio-canvas-project-bar__export,
.studio-canvas-project-bar__publish,
.studio-canvas-project-bar__save,
.studio-canvas-project-bar__recent {
min-width: 34px;
padding: 0 9px;
}
.studio-canvas-recent-drawer {
top: 68px;
right: 10px;
left: 10px;
width: auto;
}
.studio-canvas-empty-projects strong {
max-width: calc(100vw - 48px);
font-size: 20px;
}
}
.studio-canvas-zoom-controls {
position: absolute;
bottom: 16px;
left: 16px;
z-index: 80;
display: inline-flex;
align-items: center;
gap: 2px;
padding: 4px;
border: 1px solid var(--border-subtle);
border-radius: 12px;
background: var(--bg-panel);
pointer-events: auto;
}
.studio-canvas-zoom-controls button {
display: inline-grid;
place-items: center;
min-width: 32px;
height: 30px;
padding: 0 8px;
border: none;
border-radius: 8px;
background: transparent;
color: var(--fg-muted);
font-size: 14px;
font-weight: 900;
cursor: pointer;
transition: background 140ms ease, color 140ms ease;
}
.studio-canvas-zoom-controls button:hover {
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
}
.studio-canvas-zoom-controls__pct {
min-width: 48px !important;
font-size: 12px !important;
font-variant-numeric: tabular-nums;
}
.studio-canvas-align-guides {
position: absolute;
inset: 0;
pointer-events: none;
z-index: 15;
}
.studio-canvas-align-guide {
position: absolute;
background: var(--accent);
opacity: 0.6;
}
.studio-canvas-align-guide--x {
top: -9999px;
bottom: -9999px;
width: 1px;
}
.studio-canvas-align-guide--y {
left: -9999px;
right: -9999px;
height: 1px;
}
/* ── Canvas drag-and-drop visual feedback ─────────────────────────── */
.studio-canvas.is-canvas-dragging::after {
content: "释放以上传图片";
position: absolute;
inset: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
background: rgba(33, 242, 154, 0.12);
border: 3px dashed #21f29a;
color: #111;
font-size: 20px;
font-weight: 700;
pointer-events: none;
}
.studio-canvas-text-composer.is-drag-over {
outline: 2px dashed #21f29a;
outline-offset: 2px;
background: rgba(33, 242, 154, 0.06);
}
.studio-canvas-text-composer.is-drag-over::after {
content: "释放图片以创建节点";
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 10;
color: #333;
font-size: 13px;
font-weight: 600;
pointer-events: none;
}
/* Tool Modal Overlay */
.studio-canvas-tool-modal-overlay {
position: fixed;
inset: 0;
z-index: 9000;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.55);
backdrop-filter: blur(4px);
}
.studio-canvas-tool-modal {
position: relative;
width: 90vw;
max-width: 720px;
max-height: 80vh;
overflow-y: auto;
border-radius: 16px;
background: var(--bg-panel);
border: 1px solid var(--border-subtle);
box-shadow: var(--shadow-heavy, 0 12px 40px rgba(0,0,0,0.4));
padding: 24px;
}
.studio-canvas-tool-modal__header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 16px;
}
.studio-canvas-tool-modal__title {
font-size: 16px;
font-weight: 600;
color: var(--fg-default);
}
.studio-canvas-tool-modal__close {
width: 32px;
height: 32px;
border-radius: 8px;
border: none;
background: var(--bg-subtle);
color: var(--fg-muted);
cursor: pointer;
font-size: 18px;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.15s;
}
.studio-canvas-tool-modal__close:hover {
background: var(--bg-hover);
}
/* Tool Panel Components */
.studio-canvas-tool-panel {
display: flex;
gap: 20px;
min-height: 280px;
}
.studio-canvas-tool-panel--inpaint {
flex-direction: column;
}
.studio-canvas-tool-panel__preview {
flex: 0 0 260px;
border-radius: 10px;
overflow: hidden;
background: var(--bg-subtle);
display: flex;
align-items: center;
justify-content: center;
}
.studio-canvas-tool-panel__preview img {
width: 100%;
height: 100%;
object-fit: contain;
}
.studio-canvas-tool-panel__controls {
flex: 1;
display: flex;
flex-direction: column;
gap: 12px;
}
.studio-canvas-tool-panel__label {
font-size: 13px;
font-weight: 500;
color: var(--fg-muted);
}
.studio-canvas-tool-panel__options {
display: flex;
gap: 8px;
}
.studio-canvas-tool-panel__options button {
padding: 6px 16px;
border-radius: 8px;
border: 1px solid var(--border-subtle);
background: var(--bg-subtle);
color: var(--fg-default);
cursor: pointer;
font-size: 13px;
transition: all 0.15s;
}
.studio-canvas-tool-panel__options button.is-active {
background: var(--accent);
border-color: var(--accent);
color: #fff;
}
.studio-canvas-tool-panel__textarea {
width: 100%;
min-height: 60px;
padding: 10px;
border-radius: 8px;
border: 1px solid var(--border-subtle);
background: var(--bg-subtle);
color: var(--fg-default);
font-size: 13px;
resize: vertical;
}
.studio-canvas-tool-panel__submit {
margin-top: auto;
padding: 10px 20px;
border-radius: 8px;
border: none;
background: var(--accent);
color: #fff;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: opacity 0.15s;
}
.studio-canvas-tool-panel__submit:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.studio-canvas-tool-panel__actions {
display: flex;
gap: 10px;
margin-top: auto;
}
.studio-canvas-tool-panel__reset {
padding: 10px 16px;
border-radius: 8px;
border: 1px solid var(--border-subtle);
background: var(--bg-subtle);
color: var(--fg-default);
font-size: 13px;
cursor: pointer;
}
.studio-canvas-tool-panel__canvas-wrap {
position: relative;
width: 100%;
max-height: 320px;
border-radius: 10px;
overflow: hidden;
background: var(--bg-subtle);
}
.studio-canvas-tool-panel__canvas-bg {
width: 100%;
height: auto;
display: block;
}
.studio-canvas-tool-panel__canvas {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
cursor: crosshair;
}
-119
View File
@@ -1,119 +0,0 @@
/* Community page rules move here as they are retired from legacy-pages.css. */
.community-page .community-case-card__preview {
grid-area: 1 / 1 / 2 / 2;
display: block;
width: 100%;
height: 100%;
min-height: 0;
margin: 0;
padding: 0;
border: 0;
border-radius: inherit;
background: transparent;
color: inherit;
box-shadow: none;
cursor: pointer;
overflow: hidden;
pointer-events: none;
}
.community-page .community-case-card__preview > img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.community-page .community-case-card__preview:hover,
.community-page .community-case-card__preview:focus-visible {
background: transparent;
box-shadow: none;
}
.community-page .community-carousel__slide--video {
padding: 0;
background: transparent;
cursor: default;
}
.community-page .community-carousel__slide--video::before,
.community-page .community-carousel__slide--video::after {
content: none;
display: none;
}
.community-page .community-carousel__video {
position: absolute;
inset: 0;
z-index: 1;
display: block;
width: 100%;
height: 100%;
background: transparent;
object-fit: cover;
}
.community-page .community-carousel__slide--video:not(.is-center) .community-carousel__video {
filter: brightness(0.72) saturate(0.9);
}
.community-case-empty {
position: relative;
display: grid;
justify-items: center;
gap: 10px;
width: 100%;
min-height: 260px;
overflow: hidden;
padding: 42px 24px;
border: 1px solid rgba(var(--accent-rgb, 0, 255, 136), 0.2);
border-radius: var(--radius-md, 8px);
background:
linear-gradient(135deg, rgba(var(--accent-rgb, 0, 255, 136), 0.1), transparent 34%),
linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015)),
var(--bg-surface, rgba(255, 255, 255, 0.04));
color: var(--fg-muted, #8b968f);
text-align: center;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.community-case-empty::before {
content: "";
position: absolute;
inset: 14px;
border: 1px dashed rgba(var(--accent-rgb, 0, 255, 136), 0.16);
border-radius: calc(var(--radius-md, 8px) - 2px);
pointer-events: none;
}
.community-case-empty__icon {
position: relative;
z-index: 1;
display: grid;
place-items: center;
width: 52px;
height: 52px;
border: 1px solid rgba(var(--accent-rgb, 0, 255, 136), 0.24);
border-radius: var(--radius-sm, 8px);
background: rgba(var(--accent-rgb, 0, 255, 136), 0.12);
color: var(--accent, #00ff88);
font-size: 22px;
}
.community-case-empty strong {
position: relative;
z-index: 1;
color: var(--fg-body, #f3f5f2);
font-size: 18px;
font-weight: 800;
}
.community-case-empty > span:not(.community-case-empty__icon) {
position: relative;
z-index: 1;
max-width: 360px;
font-size: 13px;
font-weight: 600;
line-height: 1.6;
}
-895
View File
@@ -1,895 +0,0 @@
.community-review-page,
.report-page {
min-height: 100%;
background: #0d0d0f;
color: var(--fg-body);
}
.community-review-page__inner,
.report-page__inner {
width: min(1180px, calc(100% - 48px));
margin: 0 auto;
padding: 34px 0 48px;
}
.community-review-toolbar,
.report-hero {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 18px;
}
.community-review-toolbar {
margin-bottom: 18px;
}
.community-review-toolbar span,
.report-hero p,
.community-review-meta,
.community-review-list__item small,
.community-review-note-preview,
.report-contact-strip span,
.report-form label,
.report-form__actions span {
color: var(--fg-muted);
}
.community-review-toolbar h1,
.report-hero h1 {
margin: 4px 0 6px;
color: var(--fg-body);
font-size: clamp(24px, 3vw, 34px);
line-height: 1.15;
}
.community-review-toolbar p,
.report-hero p {
margin: 0;
font-size: 14px;
line-height: 1.6;
}
.community-review-toolbar__actions,
.community-review-tabs,
.community-review-status-tabs,
.community-review-actions,
.report-form__actions {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
}
.community-review-toolbar__actions button,
.community-review-tabs button,
.community-review-status-tabs button,
.community-review-actions button,
.community-review-access button,
.report-form__actions button,
.report-success button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 38px;
padding: 0 14px;
border: 1px solid var(--border-subtle);
border-radius: 12px;
background: var(--bg-inset);
color: var(--fg-body);
font-weight: 800;
cursor: pointer;
transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.community-review-toolbar__actions button:hover,
.community-review-tabs button:hover,
.community-review-status-tabs button:hover,
.community-review-actions button:hover,
.community-review-access button:hover,
.report-form__actions button:hover,
.report-success button:hover {
border-color: rgba(var(--accent-rgb), 0.42);
background: var(--bg-hover);
transform: translateY(-1px);
}
.community-review-toolbar__actions button:first-child,
.community-review-tabs button.is-active,
.community-review-status-tabs button.is-active,
.community-review-actions button:last-child,
.community-review-access button,
.report-form__actions button,
.report-success button {
border-color: var(--accent);
background: var(--accent);
color: #061014;
}
.community-review-actions button:first-child {
border-color: rgba(255, 90, 95, 0.42);
background: rgba(255, 90, 95, 0.12);
color: #ff9a9d;
}
.community-review-toolbar__actions button:disabled,
.community-review-actions button:disabled,
.report-form__actions button:disabled {
opacity: 0.55;
cursor: not-allowed;
transform: none;
}
.community-review-tabs,
.community-review-status-tabs {
margin: 0 0 14px;
}
.community-review-tabs {
padding: 5px;
border: 1px solid var(--border-subtle);
border-radius: 16px;
background: var(--bg-inset);
}
.community-review-tabs button {
min-width: 112px;
border-color: transparent;
background: transparent;
}
.community-review-status-tabs button {
min-height: 34px;
padding: 0 12px;
}
.community-review-error,
.report-form__error {
margin: 0 0 14px;
padding: 12px 14px;
border: 1px solid rgba(255, 90, 95, 0.28);
border-radius: 12px;
background: rgba(255, 90, 95, 0.1);
color: #ff9a9d;
}
.community-case-add-success {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 0 0 14px;
padding: 12px 14px;
border: 1px solid rgba(var(--accent-rgb), 0.32);
border-radius: 12px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
font-weight: 800;
}
.community-review-layout {
display: grid;
grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
gap: 16px;
min-height: 580px;
}
.community-review-list,
.community-review-detail,
.community-case-add-form,
.community-case-add-preview,
.report-form,
.report-success,
.community-review-access {
border: 1px solid var(--border-subtle);
border-radius: 18px;
background: var(--bg-panel);
box-shadow: var(--shadow-tight);
}
.community-case-add-targets button {
gap: 8px;
}
.community-case-add-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
gap: 16px;
align-items: start;
}
.community-case-add-form {
display: grid;
gap: 16px;
padding: 22px;
}
.community-case-add-form__grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr 150px;
gap: 12px;
}
.community-case-add-form label,
.community-case-add-upload-row label {
display: grid;
gap: 8px;
min-width: 0;
color: var(--fg-muted);
font-size: 13px;
font-weight: 800;
}
.community-case-add-form input,
.community-case-add-form select,
.community-case-add-form textarea {
width: 100%;
border: 1px solid var(--border-default);
border-radius: 12px;
background: var(--bg-inset);
color: var(--fg-body);
font: inherit;
outline: none;
}
.community-case-add-form input,
.community-case-add-form select {
min-height: 42px;
padding: 0 12px;
}
.community-case-add-form textarea {
min-height: 132px;
padding: 12px;
resize: vertical;
}
.community-case-add-form input:focus,
.community-case-add-form select:focus,
.community-case-add-form textarea:focus {
border-color: rgba(var(--accent-rgb), 0.52);
box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}
.community-case-add-upload-row {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 12px;
align-items: end;
}
.community-case-add-upload-row > button,
.community-case-add-actions button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 42px;
padding: 0 14px;
border: 1px solid var(--border-subtle);
border-radius: 12px;
background: var(--bg-inset);
color: var(--fg-body);
font-weight: 800;
cursor: pointer;
transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.community-case-add-upload-row > button:hover,
.community-case-add-actions button:hover {
border-color: rgba(var(--accent-rgb), 0.42);
background: var(--bg-hover);
transform: translateY(-1px);
}
.community-case-add-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.community-case-add-actions button:first-child {
border-color: var(--accent);
background: var(--accent);
color: #061014;
}
.community-case-add-actions button:disabled {
opacity: 0.55;
cursor: not-allowed;
transform: none;
}
.community-case-add-preview {
position: sticky;
top: 24px;
display: grid;
gap: 12px;
padding: 18px;
}
.community-case-add-preview > span {
width: fit-content;
padding: 5px 9px;
border-radius: 999px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
font-size: 12px;
font-weight: 800;
}
.community-case-add-preview strong {
color: var(--fg-body);
font-size: 20px;
line-height: 1.25;
}
.community-case-add-preview p {
margin: 0;
color: var(--fg-muted);
line-height: 1.65;
}
.community-case-add-preview img,
.community-case-add-preview__empty {
width: 100%;
aspect-ratio: 16 / 10;
border: 1px solid var(--border-subtle);
border-radius: 14px;
background: var(--bg-inset);
object-fit: cover;
}
.community-case-add-preview__empty {
display: grid;
place-items: center;
color: var(--fg-muted);
font-size: 13px;
font-weight: 800;
}
.community-case-add-preview dl {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 8px 10px;
margin: 0;
color: var(--fg-muted);
font-size: 13px;
}
.community-case-add-preview dt {
font-weight: 800;
}
.community-case-add-preview dd {
min-width: 0;
margin: 0;
overflow: hidden;
color: var(--fg-body);
text-overflow: ellipsis;
white-space: nowrap;
}
.community-review-list {
min-height: 0;
max-height: calc(100svh - 230px);
padding: 10px;
overflow: auto;
}
.community-review-list__item {
display: grid;
grid-template-columns: 72px minmax(0, 1fr);
grid-template-areas:
"thumb status"
"thumb title"
"thumb meta";
gap: 4px 12px;
width: 100%;
min-height: 92px;
padding: 10px;
border: 1px solid transparent;
border-radius: 14px;
background: transparent;
text-align: left;
cursor: pointer;
}
.community-review-layout--reports .community-review-list__item {
grid-template-columns: 1fr;
grid-template-areas:
"status"
"title"
"meta";
min-height: 84px;
}
.community-review-list__item:hover,
.community-review-list__item.is-active {
border-color: rgba(var(--accent-rgb), 0.32);
background: var(--bg-hover);
}
.community-review-list__item img,
.community-review-list__thumb {
grid-area: thumb;
width: 72px;
height: 72px;
border-radius: 12px;
background: var(--bg-inset);
object-fit: cover;
}
.community-review-list__item > span:not(.community-review-list__thumb) {
grid-area: status;
justify-self: start;
padding: 2px 7px;
border-radius: 999px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
font-size: 11px;
font-weight: 800;
}
.community-review-list__item strong {
grid-area: title;
min-width: 0;
overflow: hidden;
color: var(--fg-body);
font-size: 14px;
text-overflow: ellipsis;
white-space: nowrap;
}
.community-review-list__item small {
grid-area: meta;
min-width: 0;
overflow: hidden;
font-size: 12px;
text-overflow: ellipsis;
white-space: nowrap;
}
.community-review-list__empty,
.community-review-detail--empty {
display: grid;
place-items: center;
min-height: 180px;
color: var(--fg-muted);
text-align: center;
}
.community-review-detail {
display: grid;
grid-template-columns: minmax(260px, 42%) minmax(0, 1fr);
overflow: hidden;
}
.community-review-layout--reports .community-review-detail {
grid-template-columns: 1fr;
}
.community-review-detail__cover {
position: relative;
min-height: 100%;
background: var(--bg-inset);
}
.community-review-detail__cover img {
width: 100%;
height: 100%;
min-height: 420px;
object-fit: cover;
}
.community-review-detail__cover span {
position: absolute;
top: 14px;
left: 14px;
padding: 6px 10px;
border-radius: 999px;
background: rgba(13, 13, 15, 0.78);
color: var(--accent);
font-size: 12px;
font-weight: 800;
}
.community-review-detail__body {
display: flex;
flex-direction: column;
gap: 16px;
min-width: 0;
padding: 22px;
}
.community-review-detail__body header span,
.report-hero__icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: fit-content;
min-height: 28px;
padding: 0 10px;
border-radius: 999px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
font-size: 12px;
font-weight: 800;
}
.community-review-detail__body h2 {
margin: 10px 0 8px;
color: var(--fg-body);
font-size: 24px;
}
.community-review-detail__body p {
margin: 0;
color: var(--fg-muted);
line-height: 1.7;
}
.community-review-meta {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
font-size: 13px;
}
.community-review-meta span,
.community-review-note-preview,
.community-review-report-raw {
min-width: 0;
padding: 10px 12px;
border: 1px solid var(--border-subtle);
border-radius: 12px;
background: var(--bg-inset);
}
.community-review-note {
display: grid;
gap: 8px;
color: var(--fg-muted);
font-size: 13px;
font-weight: 800;
}
.community-review-note textarea,
.report-form input,
.report-form select,
.report-form textarea {
width: 100%;
border: 1px solid var(--border-default);
border-radius: 12px;
background: var(--bg-inset);
color: var(--fg-body);
font: inherit;
outline: none;
}
.community-review-note textarea {
min-height: 118px;
padding: 12px;
resize: vertical;
}
.community-review-note textarea:focus,
.report-form input:focus,
.report-form select:focus,
.report-form textarea:focus {
border-color: rgba(var(--accent-rgb), 0.52);
box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}
.community-review-report-detail .community-review-detail__body {
padding: 26px;
}
.community-review-link {
display: inline-flex;
align-items: center;
justify-content: center;
width: fit-content;
min-height: 36px;
padding: 0 14px;
border: 1px solid rgba(var(--accent-rgb), 0.36);
border-radius: 12px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
text-decoration: none;
font-weight: 800;
}
.community-review-report-raw {
display: grid;
gap: 6px;
color: var(--fg-muted);
}
.community-review-report-raw span {
color: var(--fg-body);
font-weight: 800;
}
.community-review-access {
display: grid;
justify-items: center;
gap: 12px;
width: min(520px, calc(100% - 40px));
margin: 80px auto;
padding: 34px 28px;
text-align: center;
}
.community-review-access > .anticon {
display: grid;
place-items: center;
width: 52px;
height: 52px;
border-radius: 16px;
background: rgba(var(--accent-rgb), 0.14);
color: var(--accent);
font-size: 24px;
}
.community-review-access h1,
.report-success h2 {
margin: 0;
color: var(--fg-body);
}
.community-review-access p,
.report-success p {
margin: 0;
color: var(--fg-muted);
line-height: 1.7;
}
.report-page__inner {
width: min(920px, calc(100% - 48px));
}
.report-hero {
justify-content: flex-start;
margin-bottom: 18px;
}
.report-hero__icon {
flex: 0 0 52px;
width: 52px;
height: 52px;
border-radius: 16px;
font-size: 22px;
}
.report-contact-strip {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 18px;
}
.report-contact-strip span {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 34px;
padding: 0 12px;
border: 1px solid var(--border-subtle);
border-radius: 999px;
background: var(--bg-inset);
font-size: 13px;
}
.report-form {
display: grid;
gap: 16px;
padding: 22px;
}
.report-form label {
display: grid;
gap: 8px;
font-size: 13px;
font-weight: 800;
}
.report-form input,
.report-form select {
min-height: 42px;
padding: 0 12px;
}
.report-form textarea {
min-height: 132px;
padding: 12px;
resize: vertical;
}
.report-form__grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.report-success {
display: grid;
justify-items: center;
gap: 12px;
padding: 42px 24px;
text-align: center;
}
.report-success > .anticon {
color: var(--accent);
font-size: 42px;
}
.compliance-page {
min-height: 100%;
background: #0d0d0f;
color: var(--fg-body);
}
.compliance-page__inner {
width: min(940px, calc(100% - 48px));
margin: 0 auto;
padding: 40px 0 56px;
}
.compliance-hero {
display: flex;
align-items: flex-start;
gap: 16px;
margin-bottom: 18px;
}
.compliance-hero__icon {
display: grid;
place-items: center;
flex: 0 0 54px;
width: 54px;
height: 54px;
border: 1px solid rgba(var(--accent-rgb), 0.28);
border-radius: 16px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
font-size: 24px;
}
.compliance-hero__eyebrow {
color: var(--accent);
font-size: 12px;
font-weight: 900;
}
.compliance-hero h1 {
margin: 4px 0 8px;
font-size: clamp(26px, 4vw, 38px);
}
.compliance-hero p,
.compliance-section p,
.compliance-contact span {
color: var(--fg-muted);
line-height: 1.7;
}
.compliance-card,
.compliance-contact {
border: 1px solid var(--border-subtle);
border-radius: 18px;
background: var(--bg-panel);
box-shadow: var(--shadow-tight);
}
.compliance-card {
display: grid;
overflow: hidden;
}
.compliance-section {
display: grid;
grid-template-columns: 52px minmax(0, 1fr);
gap: 16px;
padding: 22px;
border-bottom: 1px solid var(--border-weak);
}
.compliance-section:last-child {
border-bottom: 0;
}
.compliance-section > span {
color: var(--accent);
font-size: 13px;
font-weight: 950;
}
.compliance-section h2,
.compliance-section p {
margin: 0;
}
.compliance-section h2 {
margin-bottom: 8px;
font-size: 18px;
}
.compliance-contact {
display: flex;
flex-wrap: wrap;
gap: 10px 16px;
margin-top: 16px;
padding: 16px 18px;
font-size: 13px;
}
@media (max-width: 900px) {
.community-review-page__inner,
.report-page__inner,
.compliance-page__inner {
width: min(100% - 28px, 720px);
padding-top: 24px;
}
.community-review-toolbar {
flex-direction: column;
}
.community-review-layout,
.community-review-detail,
.community-case-add-layout {
grid-template-columns: 1fr;
}
.community-case-add-form__grid {
grid-template-columns: 1fr;
}
.community-case-add-preview {
position: static;
}
.community-review-list {
max-height: none;
}
.community-review-detail__cover img {
min-height: 240px;
}
.community-review-meta,
.report-form__grid {
grid-template-columns: 1fr;
}
}
@media (max-width: 560px) {
.community-review-toolbar__actions,
.community-review-actions,
.community-case-add-upload-row,
.community-case-add-actions,
.report-form__actions {
align-items: stretch;
flex-direction: column;
}
.community-review-toolbar__actions button,
.community-review-actions button,
.community-case-add-upload-row > button,
.community-case-add-actions button,
.report-form__actions button {
width: 100%;
}
.community-review-tabs {
display: grid;
grid-template-columns: 1fr 1fr;
}
.compliance-hero,
.compliance-section {
grid-template-columns: 1fr;
}
}
-783
View File
@@ -1,783 +0,0 @@
.dialog-generator-page {
min-height: 100%;
overflow: auto;
background:
radial-gradient(ellipse 80% 60% at 50% 40%, rgba(0, 255, 136, 0.04) 0%, transparent 70%),
radial-gradient(ellipse 60% 50% at 80% 70%, rgba(42, 159, 212, 0.03) 0%, transparent 60%),
linear-gradient(180deg, #070b10 0%, #05080d 100%);
color: #e8eaef;
}
.dialog-generator-shell {
display: grid;
grid-template-columns: minmax(300px, 0.42fr) minmax(0, 0.58fr);
gap: clamp(18px, 2.8vw, 34px);
min-height: var(--shell-content-height, 100vh);
padding: clamp(24px, 4vw, 52px);
}
.dialog-generator-panel,
.dialog-generator-preview-card {
border: 1px solid rgba(0, 255, 136, 0.12);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
box-shadow:
0 24px 72px rgba(0, 0, 0, 0.28),
inset 0 1px 0 rgba(255, 255, 255, 0.04);
backdrop-filter: blur(18px);
}
.dialog-generator-panel {
display: grid;
align-content: start;
gap: 24px;
padding: clamp(22px, 2.6vw, 34px);
}
.dialog-generator-heading {
display: grid;
gap: 12px;
}
.dialog-generator-kicker {
color: #00ff88;
font-size: 12px;
font-weight: 900;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.dialog-generator-heading h1 {
margin: 0;
background: linear-gradient(135deg, #00ff88, #22f0c0, #4fc3f7);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
font-size: clamp(32px, 3.6vw, 56px);
font-weight: 950;
letter-spacing: 0;
line-height: 1.1;
}
.dialog-generator-heading p,
.dialog-generator-hint,
.dialog-generator-preview-head p {
margin: 0;
color: #9aa1b8;
font-size: 15px;
font-weight: 650;
line-height: 1.7;
}
.dialog-generator-section {
display: grid;
gap: 12px;
}
.dialog-generator-section h2 {
margin: 0;
color: #f6f8fb;
font-size: 18px;
font-weight: 900;
}
.dialog-generator-drop {
display: grid;
justify-items: center;
gap: 8px;
min-height: 168px;
border: 1px dashed rgba(0, 255, 136, 0.28);
border-radius: 8px;
background: rgba(0, 255, 136, 0.035);
color: #e8eaef;
padding: 24px;
cursor: pointer;
transition:
border-color 180ms ease,
background 180ms ease,
transform 180ms ease;
}
.dialog-generator-drop:hover {
border-color: rgba(0, 255, 136, 0.5);
background: rgba(0, 255, 136, 0.06);
transform: translateY(-1px);
}
.dialog-generator-drop-icon {
font-size: 42px;
}
.dialog-generator-drop strong {
font-size: 16px;
font-weight: 900;
}
.dialog-generator-drop small,
.dialog-generator-style small {
color: #62697f;
font-size: 13px;
font-weight: 700;
}
.dialog-generator-style-list {
display: grid;
gap: 10px;
}
.dialog-generator-color-picker {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
}
.dialog-generator-color {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 38px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
color: #dce3ed;
cursor: pointer;
font-size: 13px;
font-weight: 850;
transition:
border-color 180ms ease,
background 180ms ease,
transform 180ms ease;
}
.dialog-generator-color:hover,
.dialog-generator-color.is-active {
border-color: var(--text-color);
background: rgba(255, 255, 255, 0.08);
transform: translateY(-1px);
}
.dialog-generator-color span {
width: 14px;
height: 14px;
border: 1px solid rgba(255, 255, 255, 0.38);
border-radius: 50%;
background: var(--text-color);
box-shadow: 0 0 12px color-mix(in srgb, var(--text-color) 42%, transparent);
}
.dialog-generator-color strong {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dialog-generator-style {
display: grid;
grid-template-columns: 18px minmax(0, 1fr);
align-items: center;
gap: 14px;
border: 1px solid rgba(0, 255, 136, 0.08);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
color: #e8eaef;
padding: 15px 18px;
text-align: left;
cursor: pointer;
transition:
border-color 180ms ease,
background 180ms ease,
transform 180ms ease;
}
.dialog-generator-style:hover {
border-color: rgba(0, 255, 136, 0.28);
background: rgba(255, 255, 255, 0.06);
transform: translateX(3px);
}
.dialog-generator-style span:last-child {
display: grid;
gap: 4px;
min-width: 0;
}
.dialog-generator-style strong {
color: #f7fafc;
font-size: 16px;
font-weight: 900;
}
.dialog-generator-swatch {
width: 14px;
height: 14px;
border-radius: 4px;
}
.dialog-generator-swatch.is-white {
border: 1px solid #cbd5e1;
background: #ffffff;
}
.dialog-generator-swatch.is-blue {
background: #165dff;
}
.dialog-generator-swatch.is-amber {
background: #f59e0b;
}
.dialog-generator-swatch.is-gray {
background: #6b7280;
}
.dialog-generator-clear {
min-height: 48px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
background: rgba(255, 255, 255, 0.08);
color: #e8eaef;
cursor: pointer;
font-size: 15px;
font-weight: 900;
transition:
border-color 180ms ease,
background 180ms ease;
}
.dialog-generator-clear:hover {
border-color: rgba(255, 77, 103, 0.32);
background: rgba(255, 77, 103, 0.1);
}
.dialog-generator-preview-card {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: 16px;
min-width: 0;
min-height: 0;
padding: clamp(22px, 2.6vw, 34px);
}
.dialog-generator-preview-head {
display: flex;
align-items: end;
justify-content: space-between;
gap: 20px;
}
.dialog-generator-preview-head span {
color: #00ff88;
font-size: 12px;
font-weight: 900;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.dialog-generator-preview-head h2 {
margin: 4px 0 0;
color: #ffffff;
font-size: clamp(24px, 2vw, 34px);
font-weight: 950;
}
.dialog-generator-preview-head p {
max-width: 440px;
text-align: right;
}
.dialog-generator-preview {
position: relative;
min-height: 520px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
background:
linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
linear-gradient(180deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
rgba(5, 8, 13, 0.72);
background-size: 32px 32px, 32px 32px, auto;
touch-action: none;
}
.dialog-generator-image {
position: absolute;
inset: 0;
background-position: center;
background-repeat: no-repeat;
background-size: contain;
}
.dialog-generator-empty {
position: absolute;
inset: 0;
display: grid;
place-content: center;
gap: 12px;
color: #62697f;
text-align: center;
pointer-events: none;
}
.dialog-generator-empty span {
font-size: 52px;
}
.dialog-generator-empty p {
margin: 0;
font-size: 16px;
font-weight: 800;
}
.dialog-generator-bubble {
position: absolute;
z-index: 10;
min-width: 140px;
max-width: 280px;
border-radius: 12px;
padding: 12px 14px;
user-select: none;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
transition: box-shadow 0.2s;
}
.dialog-generator-bubble.is-confirmed {
min-width: 0;
max-width: min(420px, 80%);
border: 0;
border-radius: 0;
background: transparent;
padding: 0;
box-shadow: none;
cursor: move;
}
.dialog-generator-bubble:hover {
box-shadow: 0 6px 32px rgba(0, 0, 0, 0.18);
}
.dialog-generator-bubble.is-confirmed:hover {
box-shadow: none;
}
.dialog-generator-bubble.is-dragging {
z-index: 20;
box-shadow: 0 8px 40px rgba(0, 0, 0, 0.22);
}
.dialog-generator-bubble.is-confirmed.is-dragging {
box-shadow: none;
}
.dialog-generator-bubble.style1 {
border: 2px solid #cbd5e1;
background: rgba(255, 255, 255, 0.97);
}
.dialog-generator-bubble.style2 {
border: 2px solid #4f8aff;
border-radius: 16px 16px 4px 16px;
background: rgba(22, 93, 255, 0.95);
}
.dialog-generator-bubble.style3 {
border: 2px solid #f59e0b;
background: rgba(255, 247, 237, 0.97);
}
.dialog-generator-bubble.style4 {
border: 2px solid #6b7280;
border-radius: 4px;
background: rgba(248, 250, 252, 0.97);
}
.dialog-generator-bubble.is-confirmed.style1,
.dialog-generator-bubble.is-confirmed.style2,
.dialog-generator-bubble.is-confirmed.style3,
.dialog-generator-bubble.is-confirmed.style4 {
border: 0;
background: transparent;
}
.dialog-generator-delete {
position: absolute;
top: -8px;
right: -8px;
display: flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
border: 2px solid #fff;
border-radius: 50%;
background: #ef4444;
color: #fff;
cursor: pointer;
font-size: 13px;
line-height: 1;
opacity: 0;
transition: opacity 0.15s;
z-index: 5;
}
.dialog-generator-bubble:hover .dialog-generator-delete {
opacity: 1;
}
.dialog-generator-text,
.dialog-generator-text-display {
width: 100%;
border: 0;
outline: none;
background: transparent;
color: var(--dialog-text-color, #1e293b);
padding: 0;
resize: none;
font-family: inherit;
font-size: 14px;
line-height: 1.6;
white-space: pre-wrap;
}
.dialog-generator-text-display {
width: max-content;
max-width: min(420px, 80vw);
color: var(--dialog-text-color, #ffffff);
font-size: clamp(18px, 2.2vw, 30px);
font-weight: 900;
line-height: 1.35;
letter-spacing: 0;
overflow-wrap: anywhere;
text-shadow:
0 2px 8px rgba(0, 0, 0, 0.72),
0 0 1px rgba(0, 0, 0, 0.9);
}
.dialog-generator-text::placeholder {
color: rgba(0, 0, 0, 0.3);
}
.dialog-generator-bubble.style2 .dialog-generator-text,
.dialog-generator-bubble.style2 .dialog-generator-text-display {
color: var(--dialog-text-color, #fff);
}
.dialog-generator-bubble.is-confirmed.style2 .dialog-generator-text-display {
color: var(--dialog-text-color, #7fb4ff);
}
.dialog-generator-bubble.style2 .dialog-generator-text::placeholder {
color: rgba(255, 255, 255, 0.62);
}
.dialog-generator-bubble.style3 .dialog-generator-text,
.dialog-generator-bubble.style3 .dialog-generator-text-display {
color: var(--dialog-text-color, #92400e);
}
.dialog-generator-bubble.is-confirmed.style3 .dialog-generator-text-display {
color: var(--dialog-text-color, #ffd76a);
}
.dialog-generator-bubble.style3 .dialog-generator-text::placeholder {
color: rgba(146, 64, 14, 0.4);
}
.dialog-generator-bubble.style4 .dialog-generator-text,
.dialog-generator-bubble.style4 .dialog-generator-text-display {
color: var(--dialog-text-color, #1f2937);
}
.dialog-generator-bubble.is-confirmed.style4 .dialog-generator-text-display {
color: var(--dialog-text-color, #111827);
text-shadow:
0 1px 0 rgba(255, 255, 255, 0.72),
0 0 8px rgba(255, 255, 255, 0.58);
}
.dialog-generator-bubble-bottom {
display: flex;
align-items: center;
justify-content: flex-end;
margin-top: 6px;
}
.dialog-generator-confirm {
display: inline-flex;
align-items: center;
gap: 4px;
border: 0;
border-radius: 6px;
background: #165dff;
color: #fff;
cursor: pointer;
padding: 4px 12px;
font-size: 12px;
font-weight: 700;
transition:
filter 0.15s,
transform 0.15s;
}
.dialog-generator-confirm:hover {
filter: brightness(1.1);
transform: translateY(-1px);
}
.dialog-generator-bubble.style2 .dialog-generator-confirm {
background: #fff;
color: #165dff;
}
.dialog-generator-bubble.style3 .dialog-generator-confirm {
background: #f59e0b;
}
.dialog-generator-bubble.style4 .dialog-generator-confirm {
background: #6b7280;
}
.dialog-generator-edit-hint {
display: none;
color: rgba(0, 0, 0, 0.36);
font-size: 10px;
font-weight: 700;
}
.dialog-generator-bubble.is-confirmed .dialog-generator-confirm {
display: none;
}
.dialog-generator-bubble.is-confirmed .dialog-generator-edit-hint {
display: inline-block;
}
/* ── Generation controls ── */
.dialog-generator-mode-switch {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.dialog-generator-mode {
min-height: 42px;
border: 1px solid rgba(0, 255, 136, 0.16);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
color: #9aa1b8;
cursor: pointer;
font-size: 14px;
font-weight: 800;
transition:
border-color 180ms ease,
background 180ms ease,
color 180ms ease,
transform 180ms ease;
}
.dialog-generator-mode:hover {
border-color: rgba(0, 255, 136, 0.32);
color: #dce3ed;
transform: translateY(-1px);
}
.dialog-generator-mode.is-active {
border-color: rgba(0, 255, 136, 0.42);
background: rgba(0, 255, 136, 0.08);
color: #00ff88;
box-shadow: 0 0 16px rgba(0, 255, 136, 0.08);
}
.dialog-generator-controls {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
}
.dialog-generator-pills {
position: relative;
}
.dialog-generator-pill {
display: flex;
align-items: center;
gap: 6px;
min-height: 38px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
color: #dce3ed;
cursor: pointer;
padding: 0 12px;
font-size: 13px;
font-weight: 750;
transition:
border-color 180ms ease,
background 180ms ease,
color 180ms ease;
}
.dialog-generator-pill:hover {
border-color: rgba(0, 255, 136, 0.28);
color: #f6f8fb;
}
.dialog-generator-pill.is-open {
border-color: rgba(0, 255, 136, 0.38);
background: rgba(0, 255, 136, 0.08);
color: #00ff88;
}
.dialog-generator-pill .anticon {
font-size: 14px;
}
.dialog-generator-dropdown {
position: absolute;
z-index: 30;
top: calc(100% + 4px);
left: 0;
min-width: 148px;
border: 1px solid rgba(0, 255, 136, 0.18);
border-radius: 8px;
background: rgba(10, 16, 26, 0.96);
box-shadow:
0 12px 36px rgba(0, 0, 0, 0.42),
0 0 0 1px rgba(0, 255, 136, 0.06);
backdrop-filter: blur(18px);
padding: 4px;
overflow: hidden;
}
.dialog-generator-dropdown__item {
display: block;
width: 100%;
border: 0;
border-radius: 6px;
background: transparent;
color: #bcc4d6;
cursor: pointer;
padding: 9px 12px;
text-align: left;
font-size: 13px;
font-weight: 700;
transition:
background 120ms ease,
color 120ms ease;
}
.dialog-generator-dropdown__item:hover {
background: rgba(0, 255, 136, 0.08);
color: #e8eaef;
}
.dialog-generator-dropdown__item.is-active {
background: rgba(0, 255, 136, 0.12);
color: #00ff88;
font-weight: 850;
}
/* ── Video duration ── */
.dialog-generator-duration {
display: grid;
gap: 8px;
width: 100%;
}
.dialog-generator-duration__label {
color: #9aa1b8;
font-size: 13px;
font-weight: 750;
}
.dialog-generator-duration__options {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.dialog-generator-duration__btn {
min-width: 42px;
min-height: 34px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 6px;
background: rgba(255, 255, 255, 0.04);
color: #9aa1b8;
cursor: pointer;
padding: 0 8px;
font-size: 12px;
font-weight: 750;
transition:
border-color 180ms ease,
background 180ms ease,
color 180ms ease;
}
.dialog-generator-duration__btn:hover {
border-color: rgba(0, 255, 136, 0.28);
color: #dce3ed;
}
.dialog-generator-duration__btn.is-active {
border-color: rgba(0, 255, 136, 0.42);
background: rgba(0, 255, 136, 0.12);
color: #00ff88;
}
/* ── Generate button ── */
.dialog-generator-run {
min-height: 48px;
border: 1px solid rgba(0, 255, 136, 0.28);
border-radius: 8px;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.14) 0%, rgba(34, 240, 192, 0.08) 100%);
color: #00ff88;
cursor: pointer;
font-size: 16px;
font-weight: 900;
letter-spacing: 0.04em;
transition:
border-color 180ms ease,
background 180ms ease,
transform 180ms ease,
box-shadow 180ms ease;
}
.dialog-generator-run:hover:not(:disabled) {
border-color: rgba(0, 255, 136, 0.5);
background: linear-gradient(135deg, rgba(0, 255, 136, 0.2) 0%, rgba(34, 240, 192, 0.12) 100%);
transform: translateY(-1px);
box-shadow: 0 4px 24px rgba(0, 255, 136, 0.1);
}
.dialog-generator-run:disabled {
opacity: 0.52;
cursor: not-allowed;
}
@media (max-width: 980px) {
.dialog-generator-shell {
grid-template-columns: 1fr;
}
.dialog-generator-preview-head {
align-items: start;
flex-direction: column;
}
.dialog-generator-preview-head p {
max-width: none;
text-align: left;
}
}
@media (max-width: 560px) {
.dialog-generator-shell {
padding: 18px;
}
.dialog-generator-preview {
min-height: 420px;
}
}
+76
View File
@@ -31,6 +31,82 @@
display: none;
}
.product-clone-page[data-tool="clone"] .clone-ai-preview.has-main-video-workspace {
overflow: auto;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace {
position: relative;
grid-row: 2;
display: flex;
width: max-content;
min-width: 100%;
min-height: 360px;
align-items: center;
justify-content: center;
margin: 0 auto;
overflow: visible;
border: 0;
background: transparent;
box-shadow: none;
transform-origin: 0 0;
will-change: transform;
transition: transform 120ms ease-out;
}
.product-clone-page[data-tool="clone"] .clone-ai-preview.is-middle-panning .clone-ai-main-video-workspace {
transition: none;
}
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace .ecom-video-workspace {
display: block;
width: max-content;
height: auto;
min-height: 0;
overflow: visible;
background: transparent;
color: #dbe9f3;
}
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace .ecom-video-preview-head,
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace .ecom-video-flow-dock,
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace .ecom-video-flow-notice {
display: none;
}
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace .ecom-video-flow-canvas {
display: flex;
width: max-content;
min-width: 980px;
min-height: 340px;
align-items: center;
justify-content: center;
overflow: visible;
padding: 0;
background: transparent;
}
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace .ecom-video-tree {
margin: 0;
}
@media (max-width: 760px) {
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace {
width: 100%;
min-width: 100%;
min-height: 320px;
}
.product-clone-page[data-tool="clone"] .clone-ai-main-video-workspace .ecom-video-flow-canvas {
min-width: 760px;
min-height: 320px;
}
}
.ecom-video-flowbar {
position: relative;
z-index: 3;
+21 -97
View File
@@ -7805,7 +7805,7 @@
.product-set-preview-backdrop {
position: fixed;
inset: 0;
z-index: 24;
z-index: 100;
display: grid;
place-items: center;
background: rgb(17 24 39 / 58%);
@@ -8551,89 +8551,6 @@
.ecommerce-template-apple-carousel.is-resetting .ecommerce-template-apple-card img {
transition: none;
}
.clone-ai-video-outfit-upload {
position: relative;
display: grid;
gap: 8px;
margin-top: 6px;
}
.clone-ai-video-outfit-upload-btn {
display: flex;
width: 100%;
min-height: 118px;
flex-direction: column;
align-items: center;
justify-content: center;
border: 1.5px dashed var(--ecm-line, var(--border-subtle));
border-radius: var(--ecm-radius-md, 14px);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 65%),
var(--ecm-inset, var(--bg-inset));
color: var(--ecm-text, var(--fg-body));
font-size: 13px;
font-weight: 850;
line-height: 1.35;
cursor: pointer;
text-align: center;
transition:
border-color 150ms,
background 150ms,
color 150ms,
transform 150ms;
}
.clone-ai-video-outfit-upload-btn::before {
display: grid;
width: 38px;
height: 38px;
place-items: center;
margin-bottom: 8px;
border: 1px solid rgba(var(--ecm-accent-rgb, 0, 255, 136), 0.26);
border-radius: 999px;
background: rgba(var(--ecm-accent-rgb, 0, 255, 136), 0.08);
color: var(--ecm-accent, var(--accent));
content: "+";
font-size: 24px;
font-weight: 800;
line-height: 1;
}
.clone-ai-video-outfit-upload-btn:hover {
border-color: rgba(var(--ecm-accent-rgb, 0, 255, 136), 0.48);
background:
linear-gradient(180deg, rgba(var(--ecm-accent-rgb, 0, 255, 136), 0.08), transparent 72%),
var(--ecm-inset-hover, var(--bg-hover));
color: var(--ecm-text, var(--fg-body));
}
.clone-ai-video-outfit-upload-btn:active {
transform: scale(0.99);
}
.clone-ai-video-outfit-info {
position: absolute;
top: 10px;
right: 10px;
max-width: calc(100% - 20px);
padding: 4px 8px;
border: 1px solid rgba(var(--ecm-accent-rgb, 0, 255, 136), 0.28);
border-radius: 999px;
background: rgba(var(--ecm-accent-rgb, 0, 255, 136), 0.1);
font-size: 12px;
font-weight: 850;
color: var(--ecm-accent, var(--accent));
pointer-events: none;
}
.clone-ai-video-outfit-upload:has(.clone-ai-video-outfit-info) .clone-ai-video-outfit-upload-btn {
border-style: solid;
border-color: rgba(var(--ecm-accent-rgb, 0, 255, 136), 0.38);
background:
linear-gradient(180deg, rgba(var(--ecm-accent-rgb, 0, 255, 136), 0.075), transparent 74%),
var(--ecm-inset, var(--bg-inset));
}
/* Ecommerce generation page SaaS polish: visual-only refinement for the product creation workspace. */
.product-clone-page {
--ecm-page: #0e1012;
@@ -10356,19 +10273,6 @@
aspect-ratio: 16 / 9;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-asset-thumb--video::after {
position: absolute;
right: 4px;
bottom: 4px;
padding: 2px 4px;
border-radius: 4px;
color: #ffffff;
background: rgba(16, 32, 44, 0.68);
font-size: 10px;
font-weight: 900;
content: "视频";
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-asset-thumb > button {
position: absolute;
top: -8px;
@@ -10479,6 +10383,26 @@
transition: border-color 150ms ease, background 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-platform-logo-mark {
display: inline-grid;
width: 24px;
height: 24px;
flex: 0 0 auto;
place-items: center;
border: 1px solid rgba(30, 189, 219, 0.22);
border-radius: 6px;
background: rgba(30, 189, 219, 0.1);
color: #127284;
font-size: 12px;
font-weight: 900;
line-height: 1;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-platform-logo-mark--text-wide {
font-size: 10px;
letter-spacing: 0;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-popover button.is-active,
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-popover button:hover {
border-color: #1ebddb !important;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-56
View File
@@ -1,56 +0,0 @@
.not-found-page {
display: flex;
align-items: center;
justify-content: center;
min-height: calc(100vh - 60px);
padding: 48px 24px;
background: var(--app-bg, #0b0b0f);
}
.not-found-page__content {
text-align: center;
max-width: 420px;
}
.not-found-page__code {
font-size: 96px;
font-weight: 800;
line-height: 1;
letter-spacing: -0.03em;
color: var(--accent-teal, #2dd4bf);
margin-bottom: 12px;
}
.not-found-page h1 {
font-size: 22px;
font-weight: 600;
color: var(--text-primary, #f1f5f9);
margin: 0 0 8px;
}
.not-found-page p {
font-size: 14px;
color: var(--text-secondary, #94a3b8);
margin: 0 0 28px;
line-height: 1.6;
}
.not-found-page__button {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 24px;
border: 1px solid var(--border-default, #334155);
border-radius: 8px;
background: var(--surface-elevated, #1e293b);
color: var(--text-primary, #f1f5f9);
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: background 0.2s, border-color 0.2s;
}
.not-found-page__button:hover {
background: var(--surface-hover, #334155);
border-color: var(--accent-teal, #2dd4bf);
}
-452
View File
@@ -1,452 +0,0 @@
/* Profile page rules move here as they are retired from legacy-pages.css. */
/* ── 代表作滚动容器:固定3列,刚好显示9个(3行),超出可滚动,隐藏滚动条 ── */
.profile-page__works-scroll {
max-height: 390px; /* 3行卡片:3 × 120(min-height) + 2 × 10(gap) = 380px,留10px余量 */
overflow-y: auto;
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE/Edge */
}
.profile-page__works-scroll::-webkit-scrollbar {
display: none; /* Chrome/Safari/Edge */
}
.profile-page__works-scroll .profile-page__list-grid {
grid-template-columns: repeat(3, 1fr); /* 固定3列,刚好3×3=9个可见 */
}
/* Dashboard uses natural page scrolling instead of a nested works scroller. */
.profile-page--dashboard .profile-page__works-scroll {
max-height: none;
overflow: visible;
scrollbar-width: auto;
}
.profile-page__interactive-card {
cursor: pointer;
user-select: none;
}
.profile-page__interactive-card:focus-visible {
outline: 2px solid color-mix(in srgb, var(--accent) 72%, transparent);
outline-offset: 3px;
}
.profile-page__detail-overlay {
position: fixed;
inset: 0;
z-index: 120;
display: grid;
place-items: center;
padding: clamp(18px, 3vw, 32px);
isolation: isolate;
overscroll-behavior: contain;
}
.profile-page__detail-backdrop {
position: absolute;
inset: 0;
border: 0;
background: rgba(0, 0, 0, 0.62);
cursor: pointer;
}
.profile-page__detail-panel {
position: relative;
z-index: 1;
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
gap: 16px;
width: min(1080px, calc(100vw - 48px));
max-height: min(820px, calc(100dvh - 48px));
overflow: hidden;
padding: clamp(16px, 2vw, 22px);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 18px;
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018)),
color-mix(in srgb, var(--bg-panel) 94%, #000);
box-shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
}
.profile-page__detail-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 18px;
min-width: 0;
padding-bottom: 2px;
}
.profile-page__detail-head h2 {
max-width: 760px;
margin: 5px 0 0;
color: var(--text);
font-size: clamp(18px, 2vw, 25px);
line-height: 1.25;
}
.profile-page__detail-eyebrow {
color: var(--accent);
font-size: 12px;
font-weight: 800;
}
.profile-page__detail-close {
display: inline-grid;
flex: 0 0 38px;
place-items: center;
width: 38px;
height: 38px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 12px;
background: rgba(255, 255, 255, 0.04);
color: var(--text-muted);
cursor: pointer;
}
.profile-page__detail-close:hover,
.profile-page__detail-close:focus-visible {
border-color: rgba(255, 255, 255, 0.22);
background: rgba(255, 255, 255, 0.075);
color: var(--text);
outline: none;
}
.profile-page__detail-body {
display: grid;
grid-template-columns: minmax(0, 1.42fr) minmax(300px, 0.78fr);
gap: 18px;
min-width: 0;
min-height: 0;
overflow: hidden;
}
.profile-page__detail-preview {
display: grid;
place-items: center;
align-self: stretch;
min-height: min(500px, 54dvh);
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
background:
linear-gradient(135deg, rgba(var(--accent-rgb), 0.055), transparent 58%),
rgba(255, 255, 255, 0.024);
}
.profile-page__detail-media {
display: block;
width: 100%;
height: 100%;
max-height: min(640px, 56dvh);
object-fit: contain;
}
video.profile-page__detail-media {
height: 100%;
min-height: 320px;
background: #050607;
}
.profile-page__detail-placeholder {
display: grid;
justify-items: center;
gap: 10px;
color: var(--text-muted);
font-size: 13px;
}
.profile-page__detail-placeholder .anticon {
display: grid;
place-items: center;
width: 50px;
height: 50px;
border: 1px solid rgba(var(--accent-rgb), 0.2);
border-radius: 16px;
background: rgba(var(--accent-rgb), 0.08);
color: var(--accent);
font-size: 20px;
}
.profile-page__detail-info {
display: grid;
align-content: start;
gap: 14px;
min-width: 0;
min-height: 0;
overflow: auto;
padding-right: 4px;
scrollbar-gutter: stable;
}
.profile-page__detail-info p {
margin: 0;
max-height: min(230px, 28dvh);
overflow: auto;
padding: 13px 14px;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 13px;
background: rgba(255, 255, 255, 0.03);
color: var(--text-muted);
font-size: 14px;
line-height: 1.7;
word-break: break-word;
scrollbar-gutter: stable;
}
.profile-page__detail-info dl {
display: grid;
gap: 10px;
margin: 0;
}
.profile-page__detail-info dl div {
display: grid;
gap: 4px;
min-width: 0;
padding: 12px;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 13px;
background: rgba(255, 255, 255, 0.03);
}
.profile-page__detail-info dt {
color: var(--text-soft);
font-size: 11px;
font-weight: 760;
}
.profile-page__detail-info dd {
margin: 0;
overflow: hidden;
color: var(--text);
font-size: 13px;
font-weight: 700;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-page__detail-notice {
display: inline-flex;
width: fit-content;
max-width: 100%;
padding: 7px 10px;
border: 1px solid rgba(243, 170, 38, 0.28);
border-radius: 999px;
background: rgba(243, 170, 38, 0.08);
color: var(--warning);
font-size: 12px;
line-height: 1.3;
}
.profile-page__detail-actions {
display: grid;
grid-template-columns: minmax(0, 1fr) auto auto;
align-items: center;
justify-content: stretch;
gap: 10px;
min-width: 0;
padding-top: 14px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.profile-page__detail-action {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 7px;
min-height: 40px;
padding: 0 16px;
border: 1px solid rgba(var(--accent-rgb), 0.36);
border-radius: 12px;
background: rgba(var(--accent-rgb), 0.11);
color: var(--accent);
font-size: 13px;
font-weight: 750;
cursor: pointer;
}
.profile-page__detail-action--primary {
justify-self: start;
min-width: 132px;
}
.profile-page__detail-action--secondary,
.profile-page__detail-action--danger {
min-width: 118px;
}
.profile-page__detail-action:hover,
.profile-page__detail-action:focus-visible {
border-color: rgba(var(--accent-rgb), 0.54);
background: rgba(var(--accent-rgb), 0.16);
outline: none;
}
.profile-page__detail-action--danger {
border-color: rgba(255, 90, 95, 0.24);
background: rgba(255, 90, 95, 0.08);
color: #ffadb0;
}
.profile-page__detail-action--danger:hover,
.profile-page__detail-action--danger:focus-visible {
border-color: rgba(255, 90, 95, 0.42);
background: rgba(255, 90, 95, 0.13);
}
.profile-page__detail-action:disabled {
cursor: wait;
opacity: 0.62;
}
@media (max-width: 760px) {
.profile-page__detail-overlay {
align-items: end;
padding: 10px 10px 0;
}
.profile-page__detail-panel {
width: 100%;
max-height: calc(100dvh - 10px);
padding: 16px;
border-radius: 18px 18px 0 0;
}
.profile-page__detail-body {
grid-template-columns: 1fr;
gap: 14px;
overflow: auto;
padding-right: 0;
}
.profile-page__detail-preview {
align-items: start;
min-height: 260px;
max-height: 42dvh;
overflow: auto;
}
.profile-page__detail-media {
width: 100%;
height: auto;
max-height: none;
}
video.profile-page__detail-media {
align-self: center;
height: auto;
min-height: 220px;
max-height: 42dvh;
}
.profile-page__detail-info {
overflow: auto;
padding-right: 0;
}
.profile-page__detail-info p {
min-height: 96px;
max-height: 30dvh;
}
.profile-page__detail-info dl {
grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
gap: 8px;
}
.profile-page__detail-info dl div {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 7px;
min-height: 40px;
padding: 8px 10px;
}
.profile-page__detail-info dt {
display: none;
}
.profile-page__detail-info dd {
min-width: 0;
color: var(--text);
font-weight: 800;
text-align: left;
}
.profile-page__detail-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.profile-page__detail-action--primary {
grid-column: 1 / -1;
justify-self: stretch;
}
.profile-page__detail-action--secondary,
.profile-page__detail-action--danger {
min-width: 0;
}
}
@media (max-width: 420px) {
.profile-page__detail-overlay {
padding: 0;
}
.profile-page__detail-panel {
max-height: 94dvh;
padding: 14px;
border-right: 0;
border-bottom: 0;
border-left: 0;
border-radius: 18px 18px 0 0;
}
.profile-page__detail-head {
gap: 12px;
}
.profile-page__detail-head h2 {
font-size: 18px;
}
.profile-page__detail-close {
flex-basis: 36px;
width: 36px;
height: 36px;
}
.profile-page__detail-info dl {
gap: 8px;
}
.profile-page__detail-info p {
min-height: 108px;
}
.profile-page__detail-preview {
min-height: 240px;
max-height: 40dvh;
}
.profile-page__detail-info dl {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.profile-page__detail-actions {
grid-template-columns: 1fr;
}
.profile-page__detail-action--primary {
grid-column: auto;
}
.profile-page__detail-action {
min-height: 42px;
}
}
-166
View File
@@ -1,166 +0,0 @@
.provider-health-page__inner {
display: flex;
flex-direction: column;
gap: 24px;
padding: 24px;
max-width: 960px;
}
.provider-health-toolbar {
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.provider-health-toolbar h2 {
font-size: 18px;
margin: 0 0 4px;
}
.provider-health-toolbar p {
font-size: 13px;
color: var(--text-muted);
margin: 0;
}
.provider-health-toolbar button {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 14px;
border-radius: 8px;
border: 1px solid var(--border-subtle);
background: var(--surface-elevated);
color: var(--text-primary);
font-size: 13px;
cursor: pointer;
}
.provider-health-toolbar button:disabled {
opacity: 0.5;
cursor: wait;
}
.provider-health-access {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 12px;
padding: 80px 0;
text-align: center;
color: var(--text-muted);
}
.provider-health-access button {
padding: 8px 20px;
border-radius: 10px;
background: var(--accent);
color: #fff;
border: none;
cursor: pointer;
}
.provider-health-error {
color: var(--error, #ef4444);
font-size: 13px;
}
.provider-health-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 12px;
}
.provider-health-card {
padding: 16px;
border-radius: 14px;
background: var(--surface-card);
border: 1px solid var(--border-subtle);
display: flex;
flex-direction: column;
gap: 8px;
}
.provider-health-card__header {
display: flex;
align-items: center;
gap: 8px;
font-size: 15px;
}
.provider-health-card__status {
font-size: 12px;
padding: 2px 8px;
border-radius: 999px;
font-weight: 500;
}
.provider-health-card__status--healthy {
background: rgba(16, 185, 129, 0.15);
color: #10b981;
}
.provider-health-card__status--arrears,
.provider-health-card__status--denied,
.provider-health-card__status--error {
background: rgba(239, 68, 68, 0.15);
color: #ef4444;
}
.provider-health-card__status--timeout,
.provider-health-card__status--no_key {
background: rgba(245, 158, 11, 0.15);
color: #f59e0b;
}
.provider-health-card__status--unknown {
background: rgba(156, 163, 175, 0.15);
color: #9ca3af;
}
.provider-health-card__time {
font-size: 11px;
color: var(--text-muted);
}
.provider-health-card__error {
font-size: 12px;
color: var(--error, #ef4444);
margin: 0;
}
.provider-health-section {
display: flex;
flex-direction: column;
gap: 8px;
}
.provider-health-section h3 {
font-size: 14px;
margin: 0;
}
.provider-health-table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
.provider-health-table th {
text-align: left;
padding: 8px 12px;
border-bottom: 2px solid var(--border-subtle);
color: var(--text-muted);
font-size: 12px;
font-weight: 500;
}
.provider-health-table td {
padding: 6px 12px;
border-bottom: 1px solid var(--border-subtle);
}
.provider-health-table tr:hover td {
background: var(--surface-elevated);
}
-772
View File
@@ -1,772 +0,0 @@
/* ===== Script Review Showcase ===== */
.omni-script-review-showcase {
--srs-green: #00ff88;
--srs-mint: #22f0c0;
--srs-cyan: #4fc3f7;
--srs-red: #ff4d67;
--srs-amber: #d49319;
--srs-bg: #05070d;
--srs-panel: rgba(255, 255, 255, 0.04);
--srs-panel-strong: rgba(255, 255, 255, 0.06);
--srs-border: rgba(0, 255, 136, 0.08);
--srs-border-soft: rgba(0, 255, 136, 0.08);
--srs-text: #e8eaef;
--srs-muted: #9aa1b8;
--srs-dim: #62697f;
position: relative;
isolation: isolate;
container-type: inline-size;
display: grid;
grid-template-columns: minmax(300px, 0.72fr) minmax(0, 2.28fr);
gap: clamp(26px, 3.1cqw, 56px);
width: 100%;
height: 100%;
min-height: 0;
overflow: hidden;
border-radius: inherit;
background:
radial-gradient(ellipse 78% 58% at 50% 40%, rgba(0, 255, 136, 0.026) 0%, transparent 70%),
radial-gradient(ellipse 58% 46% at 80% 70%, rgba(42, 159, 212, 0.02) 0%, transparent 62%),
linear-gradient(180deg, #070b10 0%, #05080d 100%);
color: var(--srs-text);
font-family: "Inter", "Noto Sans SC", sans-serif;
padding: clamp(28px, 3.7cqw, 70px);
}
.omni-script-review-showcase::before,
.omni-script-review-showcase::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
}
.omni-script-review-showcase::before {
z-index: -2;
background: linear-gradient(180deg, rgba(0, 255, 136, 0.05), transparent 18%);
opacity: 0.22;
}
.omni-script-review-showcase::after {
z-index: -1;
opacity: 0.26;
background:
radial-gradient(circle at 14% 42%, rgba(255, 255, 255, 0.34) 0 1px, transparent 2px),
radial-gradient(circle at 72% 8%, rgba(79, 195, 247, 0.35) 0 1px, transparent 2px),
radial-gradient(circle at 98% 28%, rgba(255, 255, 255, 0.32) 0 1px, transparent 2px),
radial-gradient(circle at 34% 96%, rgba(0, 255, 136, 0.32) 0 1px, transparent 2px);
}
.srs-left-panel,
.srs-results-panel {
position: relative;
z-index: 1;
min-width: 0;
}
.srs-left-panel {
display: grid;
grid-template-rows: auto 1fr auto;
gap: clamp(22px, 2.4cqw, 44px);
min-height: 0;
padding-block: clamp(8px, 1.4cqw, 24px);
}
.srs-brand-section {
display: grid;
gap: clamp(22px, 2.3cqw, 38px);
}
.srs-brand-section h1 {
max-width: 8em;
margin: 0;
background: linear-gradient(135deg, var(--srs-green), var(--srs-mint), var(--srs-cyan));
-webkit-background-clip: text;
background-clip: text;
color: transparent;
font-size: clamp(38px, 3.7cqw, 72px);
font-weight: 950;
letter-spacing: 0;
line-height: 1.12;
}
.srs-brand-section p {
max-width: 430px;
margin: 0;
color: var(--srs-muted);
font-size: clamp(16px, 1.12cqw, 22px);
font-weight: 760;
letter-spacing: 0;
line-height: 1.9;
}
.srs-point-list {
display: grid;
align-content: center;
gap: clamp(12px, 1.1cqw, 20px);
min-height: 0;
}
.srs-point-card {
display: grid;
grid-template-columns: clamp(42px, 3cqw, 58px) minmax(0, 1fr);
align-items: center;
gap: clamp(14px, 1.1cqw, 20px);
min-height: clamp(78px, 5.4cqw, 108px);
border: 1px solid var(--srs-border);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.03);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
padding: clamp(14px, 1.2cqw, 22px);
}
.srs-point-icon {
display: grid;
width: clamp(42px, 3cqw, 58px);
height: clamp(42px, 3cqw, 58px);
place-items: center;
border: 1px solid var(--srs-border);
border-radius: 8px;
background: rgba(0, 255, 136, 0.08);
color: var(--srs-green);
font-size: clamp(16px, 1.2cqw, 24px);
font-weight: 900;
}
.srs-point-card h3 {
margin: 0 0 4px;
color: var(--srs-text);
font-size: clamp(16px, 1.18cqw, 22px);
font-weight: 900;
letter-spacing: 0;
line-height: 1.22;
}
.srs-point-card p {
margin: 0;
color: var(--srs-dim);
font-size: clamp(12px, 0.88cqw, 16px);
font-weight: 650;
letter-spacing: 0;
line-height: 1.5;
}
.srs-flow-card {
display: grid;
grid-template-columns: repeat(7, auto);
align-items: center;
justify-content: space-between;
gap: clamp(6px, 0.7cqw, 14px);
min-height: clamp(86px, 6.4cqw, 116px);
border: 1px solid var(--srs-border);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
color: var(--srs-muted);
padding: clamp(14px, 1.3cqw, 22px);
}
.srs-flow-card span {
display: grid;
justify-items: center;
gap: 4px;
color: var(--srs-text);
font-size: clamp(12px, 0.9cqw, 16px);
font-weight: 840;
letter-spacing: 0;
text-align: center;
white-space: nowrap;
}
.srs-flow-card span::after {
content: "Process";
color: var(--srs-dim);
font-size: clamp(10px, 0.72cqw, 13px);
font-weight: 650;
}
.srs-flow-card b {
color: var(--srs-green);
font-size: clamp(12px, 0.9cqw, 16px);
font-weight: 900;
}
.srs-results-panel {
display: grid;
grid-template-rows: minmax(96px, auto) minmax(320px, 1fr) minmax(180px, 0.86fr);
gap: clamp(14px, 1.25cqw, 24px);
min-height: 0;
}
/* Score Hero */
.srs-score-hero {
position: relative;
display: grid;
grid-template-columns: minmax(260px, 0.72fr) 1px minmax(0, 1.28fr);
align-items: center;
gap: clamp(18px, 1.8cqw, 34px);
min-height: clamp(112px, 7.6cqw, 150px);
overflow: hidden;
border: 1px solid var(--srs-border);
border-radius: 8px;
background:
linear-gradient(90deg, rgba(0, 255, 136, 0.14), rgba(79, 195, 247, 0.08)),
rgba(18, 23, 49, 0.88);
padding: clamp(18px, 1.7cqw, 30px);
box-shadow:
0 24px 58px rgba(0, 0, 0, 0.24),
inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.srs-score-circle {
display: grid;
flex: 0 0 auto;
width: clamp(82px, 5.8cqw, 118px);
height: clamp(82px, 5.8cqw, 118px);
place-items: center;
border-radius: 50%;
background: conic-gradient(var(--srs-green) 0deg, var(--srs-green) calc(77 * 3.6deg), rgba(255, 255, 255, 0.08) calc(77 * 3.6deg));
box-shadow: 0 0 34px rgba(0, 255, 136, 0.2);
animation: srs-glow 3s ease-in-out infinite;
}
@keyframes srs-glow {
0%,
100% {
box-shadow: 0 0 30px rgba(0, 255, 136, 0.16);
}
50% {
box-shadow: 0 0 42px rgba(0, 255, 136, 0.28);
}
}
.srs-score-circle-inner {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: calc(100% - 18px);
height: calc(100% - 18px);
border-radius: 50%;
background: rgba(18, 23, 49, 0.98);
}
.srs-score-num {
color: var(--srs-text);
font-size: clamp(30px, 2.3cqw, 44px);
font-weight: 950;
letter-spacing: 0;
line-height: 0.92;
}
.srs-score-left {
display: flex;
align-items: center;
gap: clamp(16px, 1.5cqw, 28px);
min-width: 0;
}
.srs-score-den {
color: var(--srs-dim);
font-size: clamp(10px, 0.78cqw, 14px);
font-weight: 720;
}
.srs-score-meta {
display: grid;
gap: clamp(8px, 0.7cqw, 12px);
min-width: 0;
}
.srs-score-grade {
color: var(--srs-green);
font-size: clamp(24px, 2.15cqw, 42px);
font-weight: 950;
letter-spacing: 0;
line-height: 1;
}
.srs-score-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.srs-score-tag {
display: inline-flex;
align-items: center;
min-height: clamp(24px, 1.5cqw, 30px);
border: 1px solid var(--srs-border);
border-radius: 6px;
background: rgba(0, 255, 136, 0.06);
color: var(--srs-green);
padding: 0 clamp(10px, 0.9cqw, 16px);
font-size: clamp(11px, 0.82cqw, 15px);
font-weight: 820;
white-space: nowrap;
}
.srs-score-divider {
width: 1px;
height: 78%;
background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.11), transparent);
}
.srs-score-right {
min-width: 0;
}
.srs-score-proj {
margin-bottom: clamp(8px, 0.7cqw, 12px);
color: var(--srs-dim);
font-size: clamp(12px, 0.96cqw, 17px);
font-weight: 800;
letter-spacing: 0;
}
.srs-score-summary {
color: var(--srs-muted);
font-size: clamp(15px, 1.12cqw, 22px);
font-weight: 750;
letter-spacing: 0;
line-height: 1.68;
}
/* Chart Card */
.srs-chart-card {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
min-height: 0;
border: 1px solid var(--srs-border);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
box-shadow:
0 4px 20px rgba(0, 0, 0, 0.18),
inset 0 1px 0 rgba(255, 255, 255, 0.03);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
padding: clamp(10px, 0.8cqw, 18px) clamp(24px, 2cqw, 42px) clamp(6px, 0.5cqw, 12px);
}
.srs-chart-title {
color: var(--srs-muted);
font-size: clamp(13px, 0.95cqw, 18px);
font-weight: 900;
letter-spacing: 0.08em;
line-height: 1.2;
text-transform: uppercase;
}
.srs-chart-body {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
align-items: end;
gap: clamp(22px, 3cqw, 64px);
min-height: 0;
padding-top: clamp(10px, 0.8cqw, 18px);
padding-bottom: 0;
}
.srs-chart-col {
display: grid;
grid-template-rows: minmax(100px, 1fr) auto;
align-items: end;
justify-items: center;
gap: 4px;
height: 100%;
min-width: 0;
}
.srs-chart-bar-wrap {
position: relative;
display: flex;
align-items: flex-end;
justify-content: center;
width: 100%;
height: 100%;
min-height: clamp(80px, 12cqw, 220px);
}
.srs-chart-bar-bg,
.srs-chart-bar-fill {
width: min(100%, clamp(60px, 4.8cqw, 96px));
border-radius: 10px 10px 0 0;
}
.srs-chart-bar-bg {
position: absolute;
left: 50%;
bottom: 0;
height: 100%;
background: rgba(255, 255, 255, 0.05);
transform: translateX(-50%);
}
.srs-chart-bar-fill {
position: relative;
z-index: 1;
background: linear-gradient(180deg, var(--srs-green), #08d879);
box-shadow: 0 0 32px rgba(0, 255, 136, 0.18);
transition: height 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.srs-chart-bar-fill.is-perfect {
background: linear-gradient(180deg, #00ff88, #04f28b);
box-shadow: 0 0 42px rgba(0, 255, 136, 0.32);
}
.srs-chart-bar-fill.is-low {
background: linear-gradient(180deg, #b98218, #7e5c21);
box-shadow: 0 0 22px rgba(212, 147, 25, 0.18);
}
.srs-chart-bar-score {
position: absolute;
top: -32px;
left: 50%;
display: inline-flex;
align-items: baseline;
gap: 2px;
color: #ffffff;
font-size: clamp(18px, 1.35cqw, 26px);
font-weight: 950;
letter-spacing: 0;
line-height: 1;
transform: translateX(-50%);
white-space: nowrap;
}
.srs-chart-bar-sub {
color: rgba(255, 255, 255, 0.7);
font-size: clamp(12px, 0.85cqw, 16px);
font-weight: 760;
}
.srs-chart-bar-star {
color: #ffffff;
font-size: clamp(12px, 0.9cqw, 16px);
}
.srs-chart-col-name {
overflow-wrap: anywhere;
max-width: 100%;
color: var(--srs-text);
font-size: clamp(13px, 1cqw, 18px);
font-weight: 920;
letter-spacing: 0;
line-height: 1.22;
}
.srs-chart-bar-fill {
position: relative;
z-index: 1;
background: linear-gradient(180deg, var(--srs-green), #08d879);
box-shadow: 0 0 32px rgba(0, 255, 136, 0.18);
transition: height 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.srs-chart-bar-fill.is-perfect {
background: linear-gradient(180deg, #00ff88, #04f28b);
box-shadow: 0 0 42px rgba(0, 255, 136, 0.32);
}
.srs-chart-bar-fill.is-low {
background: linear-gradient(180deg, #b98218, #7e5c21);
box-shadow: 0 0 22px rgba(212, 147, 25, 0.18);
}
/* Triple Section */
.srs-triple-section {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: clamp(14px, 1.25cqw, 24px);
min-height: 0;
}
.srs-section-card {
position: relative;
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: clamp(10px, 0.9cqw, 16px);
min-height: 0;
overflow: hidden auto;
scrollbar-width: none;
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
box-shadow:
0 2px 12px rgba(0, 0, 0, 0.15),
inset 0 1px 0 rgba(255, 255, 255, 0.02);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
padding: clamp(14px, 1.2cqw, 24px);
transition:
transform 220ms ease,
border-color 220ms ease,
box-shadow 220ms ease;
}
.srs-section-card::-webkit-scrollbar {
display: none;
}
.srs-section-card:hover {
transform: translateY(-2px);
}
.srs-section-card.is-highlight {
border-color: rgba(0, 255, 136, 0.18);
background:
linear-gradient(180deg, rgba(0, 255, 136, 0.08), transparent 42%),
rgba(9, 22, 19, 0.86);
}
.srs-section-card.is-highlight:hover {
box-shadow: 0 16px 42px rgba(0, 255, 136, 0.08);
}
.srs-section-card.is-weakness {
border-color: rgba(255, 77, 103, 0.22);
background:
linear-gradient(180deg, rgba(255, 77, 103, 0.08), transparent 42%),
rgba(20, 15, 23, 0.88);
}
.srs-section-card.is-weakness:hover {
box-shadow: 0 16px 42px rgba(255, 77, 103, 0.06);
}
.srs-section-card.is-optimize {
border-color: rgba(79, 195, 247, 0.22);
background:
linear-gradient(180deg, rgba(79, 195, 247, 0.08), transparent 42%),
rgba(12, 20, 30, 0.88);
}
.srs-section-card.is-optimize:hover {
box-shadow: 0 16px 42px rgba(79, 195, 247, 0.07);
}
.srs-section-header {
display: flex;
align-items: center;
gap: clamp(10px, 0.8cqw, 14px);
}
.srs-section-icon {
display: grid;
width: clamp(26px, 1.9cqw, 36px);
height: clamp(26px, 1.9cqw, 36px);
place-items: center;
border-radius: 8px;
font-size: clamp(12px, 0.86cqw, 16px);
font-weight: 900;
}
.is-highlight .srs-section-icon {
background: rgba(0, 255, 136, 0.1);
color: var(--srs-green);
}
.is-weakness .srs-section-icon {
background: rgba(217, 58, 82, 0.1);
color: var(--srs-red);
}
.is-optimize .srs-section-icon {
background: rgba(42, 159, 212, 0.1);
color: var(--srs-cyan);
}
.srs-section-label {
font-size: clamp(16px, 1.12cqw, 22px);
font-weight: 920;
letter-spacing: 0;
}
.is-highlight .srs-section-label {
color: var(--srs-green);
}
.is-weakness .srs-section-label {
color: var(--srs-red);
}
.is-optimize .srs-section-label {
color: var(--srs-cyan);
}
.srs-section-list {
display: grid;
gap: clamp(8px, 0.7cqw, 12px);
min-height: 0;
}
.srs-section-item {
display: grid;
gap: 6px;
min-width: 0;
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: 8px;
background: rgba(255, 255, 255, 0.03);
padding: clamp(10px, 0.9cqw, 16px);
}
.srs-section-item-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
min-width: 0;
}
.srs-section-item-dim {
min-width: 0;
overflow-wrap: anywhere;
color: var(--srs-text);
font-size: clamp(13px, 0.92cqw, 18px);
font-weight: 900;
letter-spacing: 0;
line-height: 1.18;
}
.srs-section-item-score {
flex: 0 0 auto;
font-size: clamp(12px, 0.88cqw, 16px);
font-weight: 900;
line-height: 1.18;
}
.srs-section-item-score.is-green {
color: var(--srs-green);
}
.srs-section-item-score.is-red {
color: var(--srs-red);
}
.srs-section-item-text {
display: -webkit-box;
overflow: hidden;
color: var(--srs-dim);
font-size: clamp(11px, 0.78cqw, 15px);
font-weight: 680;
letter-spacing: 0;
line-height: 1.42;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.srs-section-item-badge {
flex: 0 0 auto;
border-radius: 6px;
padding: 3px 8px;
font-size: clamp(10px, 0.72cqw, 13px);
font-weight: 850;
line-height: 1;
}
.srs-section-item-badge.badge-red {
background: rgba(255, 77, 103, 0.12);
color: var(--srs-red);
}
.srs-section-item-badge.badge-orange {
background: rgba(212, 147, 25, 0.13);
color: #ffbd35;
}
@container (max-width: 1120px) {
.omni-script-review-showcase {
grid-template-columns: 1fr;
gap: 18px;
overflow-y: auto;
}
.srs-left-panel {
grid-template-rows: auto auto auto;
gap: 16px;
padding-block: 0;
}
.srs-brand-section h1,
.srs-brand-section p {
max-width: none;
}
.srs-point-list {
grid-template-columns: repeat(3, minmax(0, 1fr));
align-content: stretch;
}
.srs-flow-card {
justify-content: start;
}
.srs-results-panel {
grid-template-rows: auto minmax(320px, auto) auto;
}
}
@media (max-width: 980px) {
.omni-script-review-showcase {
padding: 22px;
}
.srs-score-hero {
grid-template-columns: 1fr;
gap: 14px;
}
.srs-score-divider {
display: none;
}
.srs-chart-body,
.srs-triple-section,
.srs-point-list {
grid-template-columns: 1fr;
}
.srs-chart-col {
grid-template-columns: minmax(70px, 92px) minmax(0, 1fr);
grid-template-rows: auto;
align-items: center;
justify-items: stretch;
}
.srs-chart-bar-wrap {
min-height: 80px;
}
.srs-chart-col-label {
text-align: left;
}
}
@media (max-width: 560px) {
.omni-script-review-showcase {
padding: 16px;
}
.srs-flow-card {
grid-template-columns: 1fr;
justify-items: stretch;
}
.srs-flow-card b {
display: none;
}
.srs-score-left {
align-items: flex-start;
flex-direction: column;
}
}
-264
View File
@@ -1,264 +0,0 @@
/* ===== 剧本评测展示 ===== */
.omni-script-review-visual {
display: flex;
flex-direction: column;
gap: 16px;
width: 100%;
height: 100%;
padding: clamp(14px, 2vw, 24px);
justify-content: center;
}
/* Hero */
.omni-script-review-hero {
display: flex;
flex-direction: column;
gap: 6px;
}
.omni-script-review-score-row {
display: flex;
align-items: flex-end;
gap: 4px;
}
.omni-script-review-num {
font-size: clamp(36px, 5vw, 56px);
font-weight: 800;
color: var(--accent);
line-height: 1;
letter-spacing: -2px;
}
.omni-script-review-total {
font-size: 14px;
color: rgb(255 255 255 / 30%);
font-weight: 400;
margin-bottom: 6px;
}
.omni-script-review-grade {
display: inline-flex;
align-items: center;
gap: 5px;
margin-left: 12px;
margin-bottom: 8px;
padding: 2px 10px;
border-radius: 4px;
background: rgba(0, 255, 136, 0.08);
border: 1px solid rgba(0, 255, 136, 0.2);
font-size: 12px;
font-weight: 600;
color: var(--accent);
}
.omni-script-review-grade-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--accent);
animation: omni-sr-pulse 2s ease infinite;
}
@keyframes omni-sr-pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}
.omni-script-review-bar {
width: 100%;
max-width: 320px;
height: 3px;
border-radius: 2px;
background: rgba(255, 255, 255, 0.08);
overflow: hidden;
}
.omni-script-review-bar-fill {
height: 100%;
border-radius: 2px;
background: var(--accent);
transition: width 1.4s ease;
}
.omni-script-review-beat {
font-size: 11px;
color: rgb(255 255 255 / 30%);
}
.omni-script-review-beat b {
color: var(--accent);
font-weight: 600;
}
/* Chart */
.omni-script-review-chart {
display: flex;
flex-direction: column;
gap: 10px;
flex: 1;
min-height: 0;
}
.omni-script-review-chart-bars {
display: flex;
gap: 10px;
flex: 1;
align-items: flex-end;
min-height: 0;
}
.omni-script-review-bcol {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
cursor: pointer;
min-height: 0;
}
.omni-script-review-bbar-area {
flex: 1;
width: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
min-height: 0;
position: relative;
}
.omni-script-review-bseg {
width: 70%;
min-height: 0;
transition: height 1s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s, opacity 0.25s;
}
.omni-script-review-bseg.is-score {
background: linear-gradient(180deg, #33ffaa, var(--accent) 40%, #00cc6a);
border-radius: 5px 5px 2px 2px;
position: relative;
overflow: hidden;
}
.omni-script-review-bseg.is-score::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 50%;
bottom: 0;
background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), transparent);
border-radius: 5px 0 0 0;
pointer-events: none;
}
.omni-script-review-bseg.is-perfect {
border-radius: 5px;
}
.omni-script-review-bseg.is-loss {
background: rgba(255, 255, 255, 0.04);
border: 1px dashed rgba(255, 255, 255, 0.1);
border-bottom: none;
border-radius: 2px 2px 0 0;
}
.omni-script-review-bcol:hover .omni-script-review-bseg.is-score {
filter: brightness(1.15);
box-shadow: 0 0 10px rgba(0, 255, 136, 0.15);
}
.omni-script-review-bcol.is-active .omni-script-review-bseg.is-score {
filter: brightness(1.25);
box-shadow: 0 0 14px rgba(0, 255, 136, 0.25);
}
.omni-script-review-bcol.is-dimmed .omni-script-review-bseg {
opacity: 0.2;
}
.omni-script-review-blabel {
text-align: center;
}
.omni-script-review-blabel span {
font-size: clamp(8px, 0.9vw, 10px);
font-weight: 600;
color: rgb(255 255 255 / 55%);
white-space: nowrap;
}
.omni-script-review-bcol:hover .omni-script-review-blabel span,
.omni-script-review-bcol.is-active .omni-script-review-blabel span {
color: var(--accent);
}
.omni-script-review-diminfo {
display: flex;
align-items: center;
gap: 8px;
padding: 4px 0;
animation: omni-sr-fadeUp 0.25s ease;
}
@keyframes omni-sr-fadeUp {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: translateY(0); }
}
.omni-script-review-diminfo-name {
font-size: 12px;
font-weight: 700;
color: #fff;
}
.omni-script-review-diminfo-score {
font-size: 22px;
font-weight: 800;
color: var(--accent);
line-height: 1;
}
.omni-script-review-diminfo-score small {
font-size: 12px;
color: rgb(255 255 255 / 30%);
font-weight: 400;
}
.omni-script-review-legend {
display: flex;
gap: 14px;
justify-content: flex-end;
font-size: 9px;
color: rgb(255 255 255 / 30%);
}
.omni-script-review-legend-dot {
display: inline-block;
width: 6px;
height: 6px;
border-radius: 2px;
vertical-align: middle;
margin-right: 2px;
}
.omni-script-review-legend-dot.is-score {
background: var(--accent);
}
.omni-script-review-legend-dot.is-loss {
background: rgba(255, 255, 255, 0.04);
border: 1px dashed rgba(255, 255, 255, 0.15);
}
@media (max-width: 560px) {
.omni-script-review-chart-bars {
gap: 6px;
}
.omni-script-review-bseg {
width: 80%;
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-476
View File
@@ -1,476 +0,0 @@
.product-clone-page[data-tool="clone"].size-template-workbench {
--clone-settings-panel-width: 640px;
--size-green: #00ff88;
--size-cyan: #38bdf8;
--size-violet: #a78bfa;
--size-amber: #fbbf24;
}
.web-shell[data-view="sizeTemplate"] .product-clone-page[data-tool="clone"] {
padding-left: 92px;
}
.web-shell[data-view="sizeTemplate"] .product-clone-page[data-tool="clone"] > .product-clone-shell {
width: 100%;
grid-template-columns: var(--clone-settings-panel-width) minmax(0, 1fr);
}
.web-shell[data-view="sizeTemplate"] .product-clone-page[data-tool="clone"].is-settings-collapsed > .product-clone-shell {
grid-template-columns: 0 minmax(0, 1fr);
}
.size-template-workbench .product-clone-panel {
background: #15171c;
}
.size-template-workbench .size-template-settings-panel {
gap: 18px;
padding: 22px 22px;
}
.size-template-workbench .size-template-upload-card,
.size-template-workbench .size-template-generate-card {
border-color: #303540;
border-radius: 14px;
background: #1b1d23;
padding: 16px;
}
.size-template-workbench .size-template-upload-card h2,
.size-template-workbench .size-template-generate-card h2 {
margin-bottom: 11px;
color: #b8c0cd;
font-size: 12px;
font-weight: 900;
}
.size-template-workbench .size-template-upload-zone {
min-height: 174px;
border-radius: 10px;
}
.size-template-workbench .size-template-uploaded-files {
margin-top: 10px;
}
.size-template-empty-state.has-upload {
gap: 12px;
}
.size-template-empty-state__image {
width: min(72%, 420px);
max-height: min(46vh, 420px);
object-fit: contain;
border: 1px solid #303540;
border-radius: 14px;
background: #101115;
}
.size-template-workbench .size-template-category-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.size-template-workbench .size-template-category-grid button {
height: 54px;
padding: 0 12px;
font-size: 13px;
line-height: 1.2;
white-space: normal;
}
.size-template-workbench .clone-ai-settings-section {
gap: 10px;
}
.size-template-workbench .clone-ai-settings-section + .clone-ai-settings-section {
margin-top: 16px;
}
.size-template-workbench .clone-ai-select-group {
gap: 12px;
}
.size-template-workbench .size-template-static-field > button {
height: 66px;
padding: 10px 38px 10px 14px;
}
.size-template-workbench .size-template-static-field > button {
cursor: default;
}
.size-template-workbench .size-template-static-field.is-clickable > button {
cursor: pointer;
}
.size-template-workbench .size-template-static-field.is-clickable > button:hover,
.size-template-workbench .size-template-static-field.is-clickable > button[aria-expanded="true"] {
border-color: #00ff88;
background: #202c28;
}
.size-template-workbench .size-template-static-field > button:active {
transform: none;
}
.size-template-workbench .size-template-static-field > button i {
display: none;
}
.size-template-workbench .size-template-static-field.is-clickable > button i {
display: block;
}
.size-template-platform-dialog {
position: absolute;
z-index: 40;
top: calc(100% + 8px);
left: 0;
right: 0;
display: grid;
gap: 5px;
overflow: hidden;
border: 1px solid #303540;
border-radius: 10px;
background: #20232a;
padding: 6px;
box-shadow: 0 18px 40px rgb(0 0 0 / 34%);
animation: size-template-dialog-rise 150ms ease both;
}
.size-template-platform-dialog button {
min-height: 38px;
border: 0;
border-radius: 7px;
background: transparent;
color: #b7bfcc;
padding: 0 12px;
text-align: left;
font-size: 13px;
font-weight: 900;
cursor: pointer;
}
.size-template-platform-dialog button:hover,
.size-template-platform-dialog button.is-active {
background: #17352a;
color: #00ff88;
}
@keyframes size-template-dialog-rise {
from {
opacity: 0;
transform: translateY(-6px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.size-template-workbench .size-template-preset-panel {
max-height: none;
}
.size-template-workbench .size-template-preset-list button span {
display: block;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.size-template-workbench .size-template-option-panel {
flex: 1 1 auto;
min-height: 238px;
height: auto;
max-height: none;
gap: 12px;
padding: 14px;
}
.size-template-workbench .clone-ai-model-tabs {
gap: 10px;
}
.size-template-workbench .clone-ai-model-tabs button {
height: 42px;
font-size: 13px;
}
.size-template-workbench .clone-ai-model-scroll {
padding-right: 6px;
}
.size-template-workbench .size-template-option-grid {
align-content: start;
gap: 10px;
}
.size-template-workbench .size-template-option-grid button {
justify-content: flex-start;
min-height: 50px;
padding: 11px 12px;
font-size: 13px;
text-align: left;
line-height: 1.3;
}
.size-template-workbench .size-template-submit {
flex: 0 0 auto;
min-height: 58px;
margin-top: 0;
font-size: 16px;
}
.size-template-workbench .size-template-demo-board {
display: grid;
grid-template-columns: minmax(220px, 300px) 54px minmax(330px, 520px);
align-items: center;
gap: 20px;
width: min(100%, 930px);
}
.size-template-workbench .size-template-demo-board::before {
content: "";
display: block;
grid-column: 2;
grid-row: 1;
width: 54px;
height: 2px;
border-radius: 999px;
background: linear-gradient(90deg, #00ff88, rgb(52 211 153 / 0%));
box-shadow: 0 0 18px rgb(52 211 153 / 35%);
}
.size-template-main-frame {
--size-template-ratio: 1 / 1;
--size-tone: var(--size-green);
display: grid;
grid-column: 1;
grid-row: 1;
width: min(100%, 300px);
aspect-ratio: var(--size-template-ratio);
min-height: 180px;
max-height: 360px;
align-content: center;
justify-items: center;
gap: 10px;
overflow: hidden;
border: 1px solid color-mix(in srgb, var(--size-tone) 48%, #2c3038);
border-left: 6px solid var(--size-tone);
border-radius: 14px;
background:
linear-gradient(90deg, rgb(255 255 255 / 8%) 1px, transparent 1px),
linear-gradient(180deg, rgb(255 255 255 / 8%) 1px, transparent 1px),
linear-gradient(135deg, color-mix(in srgb, var(--size-tone) 18%, transparent), rgb(255 255 255 / 5%)),
#1b1d23;
background-size: 20px 20px, 20px 20px, auto, auto;
color: #eef2f6;
cursor: pointer;
box-shadow: 0 26px 70px rgb(0 0 0 / 35%);
}
.size-template-main-frame span {
color: #eef2f6;
font-size: clamp(42px, 6vw, 72px);
font-weight: 950;
line-height: 1;
}
.size-template-main-frame strong {
color: rgb(238 242 246 / 72%);
font-size: 15px;
font-weight: 900;
}
.size-template-main-frame.is-green {
--size-tone: var(--size-green);
}
.size-template-main-frame.is-cyan {
--size-tone: var(--size-cyan);
}
.size-template-main-frame.is-violet {
--size-tone: var(--size-violet);
}
.size-template-main-frame.is-amber {
--size-tone: var(--size-amber);
}
.size-template-spec-grid {
display: grid;
grid-column: 3;
grid-row: 1;
grid-template-columns: repeat(2, minmax(130px, 1fr));
gap: 12px;
}
.size-template-spec-grid span {
display: grid;
min-height: 112px;
align-content: center;
gap: 8px;
border: 1px solid #2c3038;
border-radius: 14px;
background: #1b1d23;
color: #8f98a8;
padding: 16px;
font-size: 13px;
font-weight: 850;
}
.size-template-spec-grid b {
color: #eef2f6;
font-size: 18px;
font-weight: 950;
}
.size-template-preview-note {
position: absolute;
left: 46px;
right: 46px;
bottom: 118px;
display: grid;
grid-template-columns: minmax(180px, auto) minmax(0, 1fr) auto;
align-items: center;
gap: 14px;
border: 1px solid #2c3038;
border-radius: 18px;
background: #1b1d23;
padding: 14px 16px;
}
.size-template-preview-note > div:first-child {
display: inline-flex;
align-items: center;
gap: 10px;
color: #eef2f6;
font-size: 14px;
font-weight: 900;
}
.size-template-preview-note > div:first-child .anticon {
color: #00ff88;
}
.size-template-preview-note p {
min-width: 0;
margin: 0;
overflow: hidden;
color: #8f98a8;
font-size: 13px;
font-weight: 750;
line-height: 1.5;
text-overflow: ellipsis;
white-space: nowrap;
}
.size-template-detail-card {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
width: min(100%, 930px);
}
.size-template-detail-card span {
display: flex;
min-height: 44px;
align-items: center;
border: 1px solid #2c3038;
border-radius: 12px;
background: #1b1d23;
color: #b7bfcc;
padding: 10px 12px;
font-size: 13px;
font-weight: 800;
line-height: 1.45;
}
.size-template-check-list {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
}
.size-template-check-list span {
display: inline-flex;
align-items: center;
gap: 6px;
min-height: 30px;
border: 1px solid #303540;
border-radius: 999px;
background: #22252d;
color: #b7bfcc;
padding: 0 10px;
font-size: 12px;
font-weight: 850;
white-space: nowrap;
}
.size-template-check-list .anticon {
color: #00ff88;
}
@media (max-width: 1320px) {
.size-template-workbench .size-template-demo-board {
grid-template-columns: minmax(180px, 260px) 44px minmax(280px, 1fr);
}
.size-template-preview-note {
left: 30px;
right: 30px;
}
.size-template-detail-card {
width: min(100%, 840px);
}
}
@media (max-width: 980px) {
.web-shell[data-view="sizeTemplate"] .product-clone-page[data-tool="clone"] {
--clone-settings-panel-width: 100%;
padding-left: 0;
}
.web-shell[data-view="sizeTemplate"] .product-clone-page[data-tool="clone"] > .product-clone-shell,
.web-shell[data-view="sizeTemplate"] .product-clone-page[data-tool="clone"].is-settings-collapsed > .product-clone-shell {
grid-template-columns: 1fr;
}
.web-shell[data-view="sizeTemplate"] .product-clone-page[data-tool="clone"].is-settings-collapsed .product-clone-panel {
display: none;
}
.size-template-workbench .size-template-demo-board {
grid-template-columns: 1fr;
max-width: 430px;
}
.size-template-workbench .size-template-demo-board::before {
display: none;
}
.size-template-main-frame,
.size-template-spec-grid {
grid-column: 1;
grid-row: auto;
}
.size-template-spec-grid,
.size-template-preview-note,
.size-template-detail-card {
grid-template-columns: 1fr;
}
.size-template-preview-note,
.size-template-detail-card {
position: static;
width: min(100%, 430px);
}
}
-774
View File
@@ -1,774 +0,0 @@
/* Unified studio layout — shared by Digital Human, Character Mix, and similar workspace pages. */
.studio-tool-layout {
display: grid;
grid-template-rows: 46px minmax(0, 1fr) 36px;
grid-template-columns: minmax(260px, 300px) minmax(0, 1fr) minmax(238px, 280px);
grid-template-areas:
"toolstrip toolstrip toolstrip"
"left canvas right"
"status status status";
width: 100%;
height: 100%;
min-height: 0;
overflow: hidden;
background: var(--bg-base);
}
.studio-tool-layout--no-left {
grid-template-columns: minmax(0, 1fr) minmax(238px, 280px);
grid-template-areas:
"toolstrip toolstrip"
"canvas right"
"status status";
}
.studio-tool-layout--no-right {
grid-template-columns: minmax(260px, 300px) minmax(0, 1fr);
grid-template-areas:
"toolstrip toolstrip"
"left canvas"
"status status";
}
.studio-tool-layout--no-left.studio-tool-layout--no-right {
grid-template-columns: minmax(0, 1fr);
grid-template-areas:
"toolstrip"
"canvas"
"status";
}
.studio-tool-layout--no-top {
grid-template-rows: minmax(0, 1fr) 36px;
grid-template-areas:
"left canvas right"
"status status status";
}
.studio-tool-layout--no-top.studio-tool-layout--no-left {
grid-template-areas:
"canvas right"
"status status";
}
.studio-tool-layout--no-top.studio-tool-layout--no-right {
grid-template-areas:
"left canvas"
"status status";
}
.studio-tool-layout--no-top.studio-tool-layout--no-left.studio-tool-layout--no-right {
grid-template-areas:
"canvas"
"status";
}
.studio-toolstrip {
grid-area: toolstrip;
display: flex;
align-items: center;
min-width: 0;
gap: 12px;
padding: 0 16px;
border-bottom: 1px solid var(--border-weak);
background:
linear-gradient(90deg, rgba(var(--accent-rgb), 0.14), transparent 48%),
var(--bg-panel);
}
.studio-toolstrip__left {
display: flex;
align-items: center;
min-width: 0;
gap: 12px;
}
.studio-toolstrip__breadcrumb {
color: var(--fg-body);
font-size: 14px;
font-weight: 750;
white-space: nowrap;
}
.studio-toolstrip__divider {
width: 1px;
height: 18px;
background: var(--border-subtle);
}
.studio-segmented {
display: flex;
align-items: center;
gap: 4px;
padding: 3px;
border: 1px solid var(--border-weak);
border-radius: var(--radius-xs);
background: var(--bg-inset);
}
.studio-segmented__btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 28px;
padding: 0 12px;
border: 1px solid transparent;
border-radius: 6px;
background: transparent;
color: var(--fg-muted);
font: inherit;
font-size: 12px;
font-weight: 700;
cursor: pointer;
transition: background 140ms ease, color 140ms ease, border-color 140ms ease;
}
.studio-segmented__btn:hover {
background: var(--bg-hover);
color: var(--fg-body);
}
.studio-segmented__btn.is-active {
border-color: rgba(var(--accent-rgb), 0.38);
background: rgba(var(--accent-rgb), 0.13);
color: var(--accent);
}
/* Panels */
.studio-panel {
grid-area: left;
display: grid;
align-content: start;
min-width: 0;
min-height: 0;
gap: 0;
overflow-y: auto;
padding: 14px;
border-right: 1px solid var(--border-weak);
background: var(--bg-panel);
scrollbar-color: rgba(var(--accent-rgb), 0.34) transparent;
}
.studio-panel--right {
grid-area: right;
border-right: 0;
border-left: 1px solid var(--border-weak);
}
.studio-panel__section {
display: grid;
gap: 10px;
padding: 14px 0;
border-bottom: 1px solid var(--border-weak);
}
.studio-panel__section:first-child {
padding-top: 0;
}
.studio-panel__section:last-child {
border-bottom: 0;
}
.studio-panel__section-head {
display: flex;
align-items: center;
justify-content: space-between;
min-width: 0;
gap: 10px;
}
.studio-panel__section-title {
color: var(--fg-body);
font-size: 13px;
font-weight: 750;
}
.studio-panel__section-chip {
display: inline-flex;
align-items: center;
min-height: 22px;
padding: 0 8px;
border-radius: 999px;
font-size: 11px;
font-weight: 700;
}
.studio-panel__section-chip--waiting {
background: var(--bg-inset);
color: var(--fg-muted);
}
.studio-panel__section-chip--ready {
background: rgba(var(--accent-rgb), 0.13);
color: var(--accent);
}
/* Upload slots */
.studio-upload-slot--empty,
.studio-upload-slot--filled {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 14px;
min-height: 100px;
padding: 16px;
border: 1px dashed rgba(var(--accent-rgb), 0.36);
border-radius: var(--radius-sm);
background:
linear-gradient(180deg, rgba(var(--accent-rgb), 0.06), transparent),
var(--bg-inset);
cursor: pointer;
transition: border-color 140ms ease, background 140ms ease;
}
.studio-upload-slot--empty:hover,
.studio-upload-slot--filled:hover {
border-color: rgba(var(--accent-rgb), 0.56);
background: var(--bg-hover);
}
.studio-upload-slot--filled {
border-style: solid;
border-color: rgba(var(--accent-rgb), 0.28);
}
.studio-upload-slot--empty input[type="file"],
.studio-upload-slot--filled input[type="file"] {
display: none;
}
.studio-upload-slot--empty__icon {
display: grid;
place-items: center;
width: 56px;
height: 56px;
border-radius: var(--radius-xs);
background: rgba(var(--accent-rgb), 0.13);
color: var(--accent);
font-size: 24px;
}
.studio-upload-slot--filled__thumb {
width: 72px;
height: 72px;
border-radius: var(--radius-xs);
object-fit: cover;
border: 1px solid var(--border-subtle);
}
.studio-upload-slot--filled__info {
display: grid;
gap: 3px;
min-width: 0;
}
.studio-upload-slot--filled__info strong {
color: var(--fg-body);
font-size: 13px;
font-weight: 700;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.studio-upload-slot--filled__info small {
color: var(--fg-muted);
font-size: 11px;
}
/* Canvas */
.studio-canvas {
grid-area: canvas;
position: relative;
display: grid;
place-items: center;
min-width: 0;
min-height: 0;
overflow: auto;
padding: 18px;
background:
radial-gradient(circle, rgba(var(--accent-rgb), 0.12) 1px, transparent 1.4px),
var(--bg-inset);
background-size: 22px 22px;
}
.studio-canvas-ghost {
display: grid;
justify-items: center;
gap: 10px;
padding: 32px;
text-align: center;
border-radius: 12px;
cursor: pointer;
transition: background 0.18s ease, outline 0.18s ease, transform 0.18s ease;
}
.studio-canvas-ghost:hover {
background: rgba(var(--accent-rgb), 0.05);
outline: 1px dashed rgba(var(--accent-rgb), 0.25);
}
.studio-canvas-ghost:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.studio-canvas-ghost.is-dragging {
background: rgba(var(--accent-rgb), 0.1);
outline: 2px dashed var(--accent);
transform: scale(1.02);
}
.studio-canvas-ghost__icon {
display: grid;
place-items: center;
width: 56px;
height: 56px;
border-radius: var(--radius-sm);
background: rgba(var(--accent-rgb), 0.22);
color: var(--accent);
font-size: 26px;
box-shadow: 0 0 20px rgba(var(--accent-rgb), 0.08);
}
.studio-canvas-ghost__title {
color: var(--fg-body);
font-size: 15px;
font-weight: 700;
}
.studio-canvas-ghost__hint {
max-width: 320px;
color: var(--fg-muted);
font-size: 12px;
line-height: 1.5;
}
.studio-canvas-image {
display: grid;
place-items: center;
}
.studio-canvas-image img {
display: block;
max-width: 100%;
max-height: 68vh;
border: 1px solid var(--border-subtle);
border-radius: var(--radius-sm);
object-fit: contain;
}
.studio-canvas-video {
position: relative;
display: grid;
place-items: center;
width: 100%;
}
.studio-canvas-video video {
display: block;
max-width: 100%;
max-height: 68vh;
border: 1px solid var(--border-subtle);
border-radius: var(--radius-sm);
}
.studio-result-caption {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
margin-top: 10px;
color: var(--fg-muted);
font-size: 12px;
}
.studio-result-caption strong {
color: var(--accent);
font-weight: 750;
}
.studio-result-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
margin-top: 8px;
}
.studio-result-actions button {
display: inline-flex;
min-width: 0;
min-height: 48px;
align-items: center;
justify-content: center;
gap: 8px;
border: 1px solid var(--border-subtle);
border-radius: var(--radius-xs);
background: var(--bg-inset);
color: var(--fg-body);
font: inherit;
font-size: 14px;
font-weight: 750;
cursor: pointer;
transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}
.studio-result-actions button:hover:not(:disabled) {
border-color: rgba(var(--accent-rgb), 0.42);
background: rgba(var(--accent-rgb), 0.11);
color: var(--accent);
}
.studio-result-actions button:disabled {
cursor: not-allowed;
opacity: 0.56;
}
.studio-canvas-pip {
position: absolute;
bottom: 14px;
right: 14px;
width: 96px;
height: 96px;
overflow: hidden;
border: 2px solid rgba(var(--accent-rgb), 0.42);
border-radius: var(--radius-xs);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}
.studio-canvas-pip img {
width: 100%;
height: 100%;
object-fit: cover;
}
/* Controls: toggles, generate button, audio preview */
.studio-toggle-row {
display: flex;
align-items: center;
justify-content: space-between;
min-width: 0;
gap: 12px;
padding: 10px 0;
}
.studio-toggle-row__copy {
display: grid;
gap: 2px;
min-width: 0;
}
.studio-toggle-row__title {
color: var(--fg-body);
font-size: 13px;
font-weight: 700;
}
.studio-toggle-row__desc {
color: var(--fg-muted);
font-size: 11px;
}
.studio-toggle {
position: relative;
flex: 0 0 auto;
width: 40px;
height: 22px;
border: 1px solid var(--border-subtle);
border-radius: 999px;
background: var(--bg-inset);
cursor: pointer;
transition: background 140ms ease, border-color 140ms ease;
}
.studio-toggle__thumb {
position: absolute;
top: 3px;
left: 3px;
width: 14px;
height: 14px;
border-radius: 50%;
background: var(--fg-muted);
transition: transform 140ms ease, background 140ms ease;
}
.studio-toggle.is-on {
border-color: rgba(var(--accent-rgb), 0.42);
background: rgba(var(--accent-rgb), 0.13);
}
.studio-toggle.is-on .studio-toggle__thumb {
background: var(--accent);
transform: translateX(18px);
}
.studio-generate-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 100%;
min-height: 40px;
margin-top: 8px;
border: 1px solid var(--accent);
border-radius: var(--radius-xs);
background: var(--accent);
color: #061014;
font: inherit;
font-size: 13px;
font-weight: 750;
cursor: pointer;
transition: opacity 140ms ease, transform 140ms ease;
}
.studio-generate-btn:hover {
opacity: 0.88;
transform: translateY(-1px);
}
.studio-generate-btn:disabled {
cursor: not-allowed;
opacity: 0.48;
}
.studio-audio-preview {
width: 100%;
height: 36px;
margin-top: 8px;
border-radius: var(--radius-xs);
}
/* Debug panel */
.studio-debug-panel__clear {
border: 1px solid var(--border-subtle);
border-radius: 999px;
background: var(--bg-inset);
color: var(--fg-muted);
font: inherit;
font-size: 11px;
font-weight: 700;
padding: 3px 8px;
cursor: pointer;
}
.studio-debug-panel__clear:hover {
color: var(--fg-body);
border-color: rgba(var(--accent-rgb), 0.36);
}
.studio-debug-panel__list {
display: grid;
gap: 8px;
max-height: 280px;
overflow-y: auto;
padding-right: 2px;
}
.studio-debug-panel__item {
display: grid;
gap: 5px;
padding: 9px 10px;
border: 1px solid var(--border-subtle);
border-left: 3px solid rgba(var(--accent-rgb), 0.42);
border-radius: var(--radius-xs);
background: var(--bg-inset);
}
.studio-debug-panel__item--success {
border-left-color: var(--accent);
}
.studio-debug-panel__item--error {
border-left-color: #ff5c7a;
}
.studio-debug-panel__item-head {
display: flex;
align-items: center;
justify-content: space-between;
min-width: 0;
gap: 8px;
}
.studio-debug-panel__item-head strong {
color: var(--fg-body);
font-size: 12px;
font-weight: 750;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.studio-debug-panel__item-head span,
.studio-debug-panel__empty {
color: var(--fg-muted);
font-size: 11px;
}
.studio-debug-panel__item p {
margin: 0;
color: var(--fg-muted);
font-size: 11px;
line-height: 1.45;
word-break: break-all;
}
/* Status bar */
.studio-status-bar {
grid-area: status;
display: flex;
align-items: center;
min-width: 0;
gap: 10px;
padding: 0 16px;
border-top: 1px solid var(--border-weak);
background: var(--bg-panel);
}
.studio-status-bar__badge {
display: inline-flex;
align-items: center;
min-height: 22px;
padding: 0 8px;
border-radius: 999px;
font-size: 11px;
font-weight: 750;
}
.studio-status-bar__badge--idle {
background: var(--bg-inset);
color: var(--fg-muted);
}
.studio-status-bar__badge--running {
background: rgba(var(--accent-rgb), 0.13);
color: var(--accent);
}
.studio-status-bar__text {
color: var(--fg-muted);
font-size: 12px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.studio-status-bar__meta {
margin-left: auto;
color: var(--accent);
font-size: 12px;
font-weight: 700;
white-space: nowrap;
}
/* Responsive */
@media (max-width: 1080px) {
.studio-tool-layout {
grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
grid-template-areas:
"toolstrip toolstrip"
"left canvas"
"status status";
}
.studio-panel--right {
display: none;
}
}
@media (max-width: 991px) {
.studio-tool-layout,
.studio-tool-layout--no-left,
.studio-tool-layout--no-right {
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto auto minmax(280px, 1fr) 36px;
grid-template-areas:
"toolstrip"
"left"
"canvas"
"status";
}
.studio-tool-layout--no-left {
grid-template-rows: auto minmax(280px, 1fr) 36px;
grid-template-areas:
"toolstrip"
"canvas"
"status";
}
.studio-tool-layout--no-right {
grid-template-areas:
"toolstrip"
"left"
"canvas"
"status";
}
.studio-toolstrip {
min-height: var(--toolbar-min-height);
flex-wrap: wrap;
align-content: center;
padding-block: var(--space-3);
}
.studio-toolstrip__left,
.studio-segmented {
min-width: 0;
flex-wrap: wrap;
}
.studio-panel,
.studio-panel--right {
display: grid;
max-height: 340px;
border-right: 0;
border-left: 0;
border-bottom: 1px solid var(--border-weak);
}
}
@media (max-width: 720px) {
.studio-tool-layout {
grid-template-columns: minmax(0, 1fr);
grid-template-rows: 46px auto minmax(260px, 1fr) 36px;
grid-template-areas:
"toolstrip"
"left"
"canvas"
"status";
}
.studio-panel {
border-right: 0;
border-bottom: 1px solid var(--border-weak);
max-height: 320px;
}
}
@media (max-width: 480px) {
.studio-toolstrip,
.studio-panel {
padding-inline: var(--space-5);
}
.studio-segmented {
width: 100%;
overflow-x: auto;
scrollbar-width: none;
}
.studio-segmented::-webkit-scrollbar {
display: none;
}
.studio-segmented__btn {
flex: 1 0 auto;
min-width: max-content;
}
.studio-status-bar {
padding-inline: var(--space-5);
}
}
-135
View File
@@ -1,135 +0,0 @@
.subtitle-removal-presets {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
margin-top: 8px;
}
.subtitle-removal-preset {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
padding: 10px 8px;
border: 1.5px solid var(--border-weak, #e5e5e5);
border-radius: 10px;
background: var(--bg-surface, #fff);
cursor: pointer;
transition: border-color 0.15s, background 0.15s;
}
.subtitle-removal-preset:hover {
border-color: var(--accent, #0d9488);
background: var(--bg-elevated, #f8f8f8);
}
.subtitle-removal-preset.is-active {
border-color: var(--accent, #0d9488);
background: color-mix(in srgb, var(--accent, #0d9488) 6%, transparent);
}
.subtitle-removal-preset strong {
font-size: 12px;
font-weight: 600;
}
.subtitle-removal-preset span {
font-size: 11px;
opacity: 0.55;
text-align: center;
}
.subtitle-removal-preset__visual {
position: relative;
width: 48px;
height: 32px;
border-radius: 4px;
background: var(--bg-page, #f0f0f0);
border: 1px solid var(--border-weak, #e0e0e0);
overflow: hidden;
}
.subtitle-removal-preset__region {
position: absolute;
left: 0;
right: 0;
top: var(--region-top);
height: var(--region-height);
background: color-mix(in srgb, var(--accent, #0d9488) 30%, transparent);
border-top: 1.5px dashed var(--accent, #0d9488);
border-bottom: 1.5px dashed var(--accent, #0d9488);
}
.subtitle-removal-preview {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
padding: 24px;
width: 100%;
height: 100%;
overflow: auto;
}
.subtitle-removal-preview__video-wrap {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
max-width: 100%;
}
.subtitle-removal-preview__video-wrap video {
max-width: 100%;
max-height: 40vh;
border-radius: 8px;
}
.subtitle-removal-preview__video-wrap h4 {
margin: 0 0 8px;
font-size: 13px;
opacity: 0.7;
}
.subtitle-removal-preview__region-overlay {
position: absolute;
left: 0;
right: 0;
top: var(--region-top);
height: var(--region-height);
background: rgba(13, 148, 136, 0.15);
border-top: 2px dashed rgba(13, 148, 136, 0.6);
border-bottom: 2px dashed rgba(13, 148, 136, 0.6);
pointer-events: none;
border-radius: 2px;
}
.subtitle-removal-preview__actions {
display: flex;
align-items: center;
gap: 8px;
margin-top: 12px;
}
.subtitle-removal-preview__actions button {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 6px 14px;
border: none;
border-radius: var(--radius-sm, 6px);
background: rgba(0, 0, 0, 0.7);
color: #fff;
font-size: 13px;
cursor: pointer;
transition: background 0.15s;
}
.subtitle-removal-preview__actions button:hover:not(:disabled) {
background: var(--accent, #0d9488);
}
.subtitle-removal-preview__actions button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
-891
View File
@@ -1,891 +0,0 @@
/* ===== 工具箱功能页 ===== */
.omni-home__toolbox-page {
--toolbox-green: #00ff88;
--toolbox-blue: #4fc3f7;
--toolbox-purple: #a855f7;
--toolbox-surface: rgba(255, 255, 255, 0.04);
--toolbox-elevated: rgba(255, 255, 255, 0.06);
--toolbox-highlight: rgba(28, 31, 68, 0.9);
--toolbox-border-subtle: rgba(0, 255, 136, 0.08);
--toolbox-border-default: rgba(0, 255, 136, 0.14);
--toolbox-border-hover: rgba(0, 255, 136, 0.28);
--toolbox-text-primary: #e8eaef;
--toolbox-text-secondary: #9aa1b8;
--toolbox-text-tertiary: #62697f;
position: relative;
isolation: isolate;
min-height: var(--home-section-min-height);
border-top: 1px solid rgb(255 255 255 / 8%);
background:
linear-gradient(180deg, #070b10 0%, #05080d 100%),
radial-gradient(ellipse 80% 60% at 50% 40%, rgba(0, 255, 136, 0.04) 0%, transparent 70%),
radial-gradient(ellipse 60% 50% at 80% 70%, rgba(42, 159, 212, 0.03) 0%, transparent 60%),
radial-gradient(ellipse 50% 40% at 20% 80%, rgba(168, 85, 247, 0.03) 0%, transparent 60%);
scroll-snap-align: start;
scroll-snap-stop: normal;
}
.omni-home__toolbox-shell {
position: relative;
z-index: 2;
display: flex;
gap: clamp(18px, 2.8vw, 36px);
padding: clamp(36px, 5.5vw, 68px) clamp(20px, 6vw, 76px);
min-height: var(--home-section-min-height);
align-items: center;
}
/* ===== Left Panel ===== */
.omni-home__toolbox-left {
width: clamp(320px, 30vw, 450px);
flex-shrink: 0;
display: flex;
flex-direction: column;
gap: 17px;
justify-content: flex-start;
padding-top: clamp(34px, 6vh, 84px);
}
.omni-home__toolbox-brand {
display: flex;
align-items: center;
gap: 12px;
}
.omni-home__toolbox-brand-icon {
width: 56px;
height: 56px;
background: var(--toolbox-green);
border-radius: 15px;
display: flex;
align-items: center;
justify-content: center;
color: #0a0b12;
font-size: 28px;
}
.omni-home__toolbox-brand-icon .anticon {
font-size: 30px;
}
.omni-home__toolbox-brand-text {
font-weight: 900;
font-size: 34px;
color: #fff;
letter-spacing: -0.5px;
}
.omni-home__toolbox-title {
font-weight: 900;
font-size: clamp(36px, 3.8vw, 50px);
line-height: 1.15;
background: linear-gradient(135deg, var(--toolbox-green), var(--toolbox-blue));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.omni-home__toolbox-subtitle {
font-size: 18px;
line-height: 1.55;
color: var(--toolbox-text-secondary);
max-width: 100%;
}
.omni-home__toolbox-list {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 8px;
}
.omni-home__toolbox-item {
display: flex;
align-items: flex-start;
gap: 17px;
padding: 17px 22px;
border-radius: 16px;
background: var(--toolbox-surface);
border: 1px solid var(--toolbox-border-subtle);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
animation: omni-toolbox-fadeSlideIn 0.6s ease both;
}
.omni-home__toolbox-item:nth-child(1) { animation-delay: 0.1s; }
.omni-home__toolbox-item:nth-child(2) { animation-delay: 0.2s; }
.omni-home__toolbox-item:nth-child(3) { animation-delay: 0.3s; }
.omni-home__toolbox-item:nth-child(4) { animation-delay: 0.4s; }
.omni-home__toolbox-item:hover {
border-color: var(--toolbox-border-hover);
transform: translateX(4px);
background: var(--toolbox-elevated);
}
.omni-home__toolbox-item-icon {
font-size: 29px;
flex-shrink: 0;
width: 50px;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 13px;
background: rgba(0, 255, 136, 0.08);
}
.omni-home__toolbox-item-info {
display: flex;
flex-direction: column;
gap: 5px;
min-width: 0;
}
.omni-home__toolbox-item-name {
font-weight: 700;
font-size: 19px;
color: var(--toolbox-text-primary);
}
.omni-home__toolbox-item-desc {
font-size: 16px;
color: var(--toolbox-text-tertiary);
line-height: 1.4;
}
@keyframes omni-toolbox-fadeSlideIn {
from { opacity: 0; transform: translateX(-12px); }
to { opacity: 1; transform: translateX(0); }
}
.omni-home__toolbox-workflow {
margin-top: auto;
padding: 19px 24px;
border-radius: 16px;
background: var(--toolbox-surface);
border: 1px solid var(--toolbox-border-subtle);
}
.omni-home__toolbox-workflow-label {
font-size: 16px;
font-weight: 700;
color: var(--toolbox-green);
margin-bottom: 12px;
letter-spacing: 0.5px;
text-transform: uppercase;
}
.omni-home__toolbox-workflow-steps {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 10px;
font-size: 16px;
color: var(--toolbox-text-tertiary);
}
.omni-home__toolbox-workflow-step {
color: var(--toolbox-text-secondary);
white-space: nowrap;
}
.omni-home__toolbox-workflow-arrow {
color: var(--toolbox-green);
font-size: 16px;
flex-shrink: 0;
}
/* ===== Grid Area ===== */
.omni-home__toolbox-grid {
flex: 1;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: repeat(2, minmax(0, 1fr));
gap: 16px;
min-height: clamp(560px, 52vw, 760px);
}
/* ===== Tool Cards ===== */
.omni-home__toolbox-card {
position: relative;
border-radius: 18px;
background: var(--toolbox-elevated);
border: 1px solid var(--toolbox-border-default);
backdrop-filter: blur(20px);
overflow: hidden;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
display: flex;
flex-direction: column;
cursor: pointer;
animation: omni-toolbox-cardIn 0.7s ease both;
}
.omni-home__toolbox-card:nth-child(1) { animation-delay: 0.15s; }
.omni-home__toolbox-card:nth-child(2) { animation-delay: 0.25s; }
.omni-home__toolbox-card:nth-child(3) { animation-delay: 0.35s; }
.omni-home__toolbox-card:nth-child(4) { animation-delay: 0.45s; }
.omni-home__toolbox-card:hover {
transform: translateY(-6px) scale(1.01);
border-color: var(--toolbox-border-hover);
box-shadow:
0 12px 40px rgba(0, 255, 136, 0.08),
0 0 60px rgba(0, 255, 136, 0.04);
}
@keyframes omni-toolbox-cardIn {
from { opacity: 0; transform: translateY(20px) scale(0.97); }
to { opacity: 1; transform: translateY(0) scale(1); }
}
.omni-home__toolbox-card-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 18px 0;
}
.omni-home__toolbox-card-header-left {
display: flex;
align-items: center;
gap: 10px;
}
.omni-home__toolbox-card-icon {
width: 32px;
height: 32px;
border-radius: 9px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
background: rgba(0, 255, 136, 0.1);
border: 1px solid rgba(0, 255, 136, 0.12);
}
.omni-home__toolbox-card-title {
font-weight: 900;
font-size: 14px;
color: var(--toolbox-text-primary);
}
.omni-home__toolbox-card-tag {
padding: 3px 10px;
border-radius: 20px;
font-size: 10px;
font-weight: 700;
color: var(--toolbox-green);
background: rgba(0, 255, 136, 0.1);
border: 1px solid rgba(0, 255, 136, 0.2);
letter-spacing: 0.3px;
}
.omni-home__toolbox-card-content {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 10px 18px;
}
.omni-home__toolbox-card-footer {
padding: 8px 18px 12px;
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
}
.omni-home__toolbox-card-feat {
padding: 2px 8px;
border-radius: 4px;
font-size: 10px;
color: var(--toolbox-text-tertiary);
background: rgba(255, 255, 255, 0.04);
}
.omni-home__toolbox-card-feat-sep {
color: rgba(0, 255, 136, 0.2);
font-size: 10px;
}
/* === Card 1: 图片工作室 === */
.toolbox-card1-content {
width: 100%;
height: 100%;
display: flex;
gap: 0;
position: relative;
}
.toolbox-card1-side {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 10px;
position: relative;
overflow: hidden;
padding: 6px;
}
.toolbox-card1-left {
background: rgba(255, 255, 255, 0.02);
margin-right: 1px;
}
.toolbox-card1-right {
background: rgba(0, 255, 136, 0.02);
margin-left: 1px;
}
.toolbox-card1-img {
width: 100%;
flex: 1;
border-radius: 8px;
position: relative;
overflow: hidden;
}
.toolbox-card1-img img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 8px;
}
.toolbox-card1-left .toolbox-card1-img {
box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.2);
}
.toolbox-card1-right .toolbox-card1-img {
box-shadow: 0 0 12px rgba(0, 255, 136, 0.06);
}
.toolbox-card1-label {
font-size: 10px;
color: var(--toolbox-text-tertiary);
margin-top: 6px;
font-weight: 700;
letter-spacing: 0.5px;
}
.toolbox-card1-left .toolbox-card1-label {
color: rgba(255, 255, 255, 0.35);
}
.toolbox-card1-right .toolbox-card1-label {
color: rgba(0, 255, 136, 0.5);
}
.toolbox-card1-divider {
width: 1px;
background: linear-gradient(to bottom, transparent, rgba(0, 255, 136, 0.3), transparent);
position: absolute;
left: 50%;
top: 8%;
height: 84%;
}
/* === Card 2: 镜头实验室 === */
.toolbox-card2-content {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 0 4px;
}
.toolbox-card2-frame {
flex: 1;
height: 85%;
border-radius: 8px;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
background: linear-gradient(180deg, #1a1d42 0%, #141230 100%);
border: 1px solid rgba(0, 255, 136, 0.06);
transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.toolbox-card2-frame:hover {
border-color: rgba(0, 255, 136, 0.2);
box-shadow: 0 0 16px rgba(0, 255, 136, 0.08);
transform: scale(1.04);
}
.toolbox-card2-product {
position: absolute;
top: 14%;
left: 50%;
transform: translateX(-50%);
width: 55%;
height: 50%;
border-radius: 6px;
transition: all 0.3s;
}
.toolbox-card2-frame:nth-child(1) .toolbox-card2-product {
background: repeating-linear-gradient(0deg, #6b9b7a 0px, #6b9b7a 2px, #d4dfc8 2px, #d4dfc8 4px);
}
.toolbox-card2-frame:nth-child(2) .toolbox-card2-product {
background: repeating-linear-gradient(0deg, #6b9b7a 0px, #6b9b7a 2px, #d4dfc8 2px, #d4dfc8 4px);
transform: translateX(-50%) perspective(200px) rotateY(25deg);
width: 48%;
}
.toolbox-card2-frame:nth-child(3) .toolbox-card2-product {
background: repeating-linear-gradient(90deg, #6b9b7a 0px, #6b9b7a 2px, #d4dfc8 2px, #d4dfc8 4px);
width: 50%;
height: 40%;
border-radius: 50%;
}
.toolbox-card2-frame:nth-child(4) .toolbox-card2-product {
background: repeating-linear-gradient(0deg, #6b9b7a 0px, #6b9b7a 2px, #d4dfc8 2px, #d4dfc8 4px);
width: 58%;
transform: translateX(-50%) perspective(200px) rotateX(-15deg);
}
.toolbox-card2-frame:nth-child(5) .toolbox-card2-product {
background: repeating-linear-gradient(0deg, #5a7a4e 0px, #5a7a4e 2px, #b8c8a8 2px, #b8c8a8 4px);
width: 50%;
opacity: 0.8;
}
.toolbox-card2-shadow {
position: absolute;
top: 66%;
left: 50%;
transform: translateX(-50%);
width: 40%;
height: 4px;
border-radius: 50%;
background: rgba(0, 255, 136, 0.06);
filter: blur(3px);
}
.toolbox-card2-angle-label {
position: relative;
z-index: 1;
font-size: 9px;
font-weight: 700;
color: var(--toolbox-text-tertiary);
margin-bottom: 10%;
letter-spacing: 0.5px;
padding: 2px 8px;
border-radius: 4px;
background: rgba(0, 255, 136, 0.06);
border: 1px solid rgba(0, 255, 136, 0.08);
}
.toolbox-card2-frame:nth-child(1) .toolbox-card2-angle-label {
color: var(--toolbox-green);
background: rgba(0, 255, 136, 0.1);
border-color: rgba(0, 255, 136, 0.2);
}
/* === Card 3: 一键数字人 === */
.toolbox-card3-content {
width: 100%;
height: 100%;
display: flex;
gap: 0;
position: relative;
}
.toolbox-card3-side {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 10px;
position: relative;
overflow: hidden;
}
.toolbox-card3-left {
background: rgba(255, 255, 255, 0.02);
margin-right: 1px;
}
.toolbox-card3-right {
background: rgba(0, 255, 136, 0.02);
margin-left: 1px;
}
.toolbox-card3-portrait {
width: 70%;
aspect-ratio: 3/4;
border-radius: 10px;
position: relative;
overflow: hidden;
}
.toolbox-card3-left .toolbox-card3-portrait {
background: linear-gradient(180deg, #2a2d5e, #1e2050);
box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.3);
}
.toolbox-card3-left .toolbox-card3-portrait::before {
content: '';
position: absolute;
top: 14%;
left: 50%;
transform: translateX(-50%);
width: 32%;
aspect-ratio: 1;
border-radius: 50%;
background: rgba(200, 190, 220, 0.1);
}
.toolbox-card3-left .toolbox-card3-portrait::after {
content: '';
position: absolute;
top: 42%;
left: 50%;
transform: translateX(-50%);
width: 50%;
height: 40%;
border-radius: 20% 20% 5% 5%;
background: rgba(200, 190, 220, 0.06);
}
.toolbox-card3-portrait-mark {
position: absolute;
bottom: 8px;
left: 8px;
font-size: 8px;
font-weight: 700;
color: rgba(255, 255, 255, 0.25);
background: rgba(0, 0, 0, 0.4);
padding: 2px 6px;
border-radius: 3px;
letter-spacing: 1px;
}
.toolbox-card3-right .toolbox-card3-portrait {
background: linear-gradient(180deg, #1a3a2e, #0d2a20);
border: 1px solid rgba(0, 255, 136, 0.12);
box-shadow:
0 0 30px rgba(0, 255, 136, 0.08),
inset 0 0 20px rgba(0, 255, 136, 0.04);
}
.toolbox-card3-right .toolbox-card3-portrait::before {
content: '';
position: absolute;
top: 14%;
left: 50%;
transform: translateX(-50%);
width: 32%;
aspect-ratio: 1;
border-radius: 50%;
background: rgba(0, 255, 136, 0.1);
box-shadow: 0 0 20px rgba(0, 255, 136, 0.15);
}
.toolbox-card3-right .toolbox-card3-portrait::after {
content: '';
position: absolute;
top: 42%;
left: 50%;
transform: translateX(-50%);
width: 50%;
height: 40%;
border-radius: 20% 20% 5% 5%;
background: rgba(0, 255, 136, 0.06);
box-shadow: 0 0 15px rgba(0, 255, 136, 0.08);
}
.toolbox-card3-glow-ring {
position: absolute;
inset: -4px;
border-radius: 14px;
border: 1.5px solid rgba(0, 255, 136, 0.2);
animation: omni-toolbox-glowPulse 2.5s ease-in-out infinite;
}
@keyframes omni-toolbox-glowPulse {
0%, 100% { opacity: 0.3; box-shadow: 0 0 10px rgba(0, 255, 136, 0.05); }
50% { opacity: 1; box-shadow: 0 0 25px rgba(0, 255, 136, 0.15); }
}
.toolbox-card3-lipsync {
position: absolute;
top: 32%;
left: 62%;
display: flex;
align-items: center;
gap: 1.5px;
}
.toolbox-card3-lipsync span {
width: 2px;
border-radius: 1px;
background: var(--toolbox-green);
animation: omni-toolbox-lipsync 0.8s ease-in-out infinite;
}
.toolbox-card3-lipsync span:nth-child(1) { height: 4px; animation-delay: 0s; }
.toolbox-card3-lipsync span:nth-child(2) { height: 8px; animation-delay: 0.1s; }
.toolbox-card3-lipsync span:nth-child(3) { height: 5px; animation-delay: 0.2s; }
.toolbox-card3-lipsync span:nth-child(4) { height: 10px; animation-delay: 0.3s; }
.toolbox-card3-lipsync span:nth-child(5) { height: 4px; animation-delay: 0.4s; }
@keyframes omni-toolbox-lipsync {
0%, 100% { transform: scaleY(1); opacity: 0.6; }
50% { transform: scaleY(0.3); opacity: 1; }
}
.toolbox-card3-gesture {
position: absolute;
top: 55%;
left: 20%;
width: 24px;
height: 2px;
border-radius: 1px;
opacity: 0.5;
}
.toolbox-card3-gesture::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(90deg, transparent, rgba(0, 255, 136, 0.5), transparent);
animation: omni-toolbox-gestureMove 2s ease-in-out infinite;
}
.toolbox-card3-gesture::after {
content: '';
position: absolute;
top: -6px;
right: -4px;
width: 8px;
height: 8px;
border-radius: 50%;
border: 1.5px solid rgba(0, 255, 136, 0.3);
animation: omni-toolbox-gestureMove 2s ease-in-out infinite;
}
@keyframes omni-toolbox-gestureMove {
0%, 100% { opacity: 0.2; transform: translateX(0); }
50% { opacity: 0.8; transform: translateX(6px); }
}
.toolbox-card3-live {
position: absolute;
top: 8px;
right: 8px;
font-size: 8px;
font-weight: 900;
color: #0a0b12;
background: var(--toolbox-green);
padding: 2px 7px;
border-radius: 4px;
letter-spacing: 1px;
animation: omni-toolbox-livePulse 1.5s ease-in-out infinite;
}
@keyframes omni-toolbox-livePulse {
0%, 100% { box-shadow: 0 0 6px rgba(0, 255, 136, 0.3); }
50% { box-shadow: 0 0 16px rgba(0, 255, 136, 0.6); }
}
.toolbox-card3-transform {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
z-index: 2;
width: 32px;
height: 32px;
border-radius: 50%;
background: var(--toolbox-green);
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: #0a0b12;
box-shadow: 0 0 20px rgba(0, 255, 136, 0.3);
animation: omni-toolbox-transformSpin 3s ease-in-out infinite;
}
@keyframes omni-toolbox-transformSpin {
0%, 100% { box-shadow: 0 0 20px rgba(0, 255, 136, 0.3); }
50% { box-shadow: 0 0 30px rgba(0, 255, 136, 0.5); }
}
.toolbox-card3-label {
font-size: 10px;
font-weight: 700;
letter-spacing: 0.5px;
margin-top: 8px;
}
.toolbox-card3-left .toolbox-card3-label {
color: rgba(255, 255, 255, 0.3);
}
.toolbox-card3-right .toolbox-card3-label {
color: rgba(0, 255, 136, 0.5);
}
.toolbox-card3-divider {
width: 1px;
background: linear-gradient(to bottom, transparent, rgba(0, 255, 136, 0.25), transparent);
position: absolute;
left: 50%;
top: 8%;
height: 84%;
}
/* === Card 4: 去除水印 === */
.toolbox-card4-content {
width: 100%;
height: 100%;
display: flex;
gap: 0;
position: relative;
}
.toolbox-card4-side {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 10px;
position: relative;
overflow: hidden;
}
.toolbox-card4-left {
background: rgba(255, 255, 255, 0.02);
margin-right: 1px;
}
.toolbox-card4-right {
background: rgba(0, 255, 136, 0.02);
margin-left: 1px;
}
.toolbox-card4-img {
width: 100%;
flex: 1;
border-radius: 8px;
position: relative;
overflow: hidden;
}
.toolbox-card4-img img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 8px;
}
.toolbox-card4-left .toolbox-card4-img {
box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.2);
}
.toolbox-card4-right .toolbox-card4-img {
box-shadow: 0 0 12px rgba(0, 255, 136, 0.06);
}
.toolbox-card4-label {
font-size: 10px;
color: var(--toolbox-text-tertiary);
margin-top: 8px;
font-weight: 700;
letter-spacing: 0.5px;
}
.toolbox-card4-left .toolbox-card4-label {
color: rgba(255, 200, 200, 0.5);
}
.toolbox-card4-right .toolbox-card4-label {
color: rgba(0, 255, 136, 0.5);
}
.toolbox-card4-divider {
width: 1px;
background: linear-gradient(to bottom, transparent, rgba(0, 255, 136, 0.3), transparent);
position: absolute;
left: 50%;
top: 8%;
height: 84%;
}
/* ===== Responsive ===== */
@media (max-width: 980px) {
.omni-home__toolbox-shell {
flex-direction: column;
padding: 36px 20px 48px;
gap: 24px;
}
.omni-home__toolbox-left {
width: 100%;
flex-shrink: unset;
padding-top: 0;
}
.omni-home__toolbox-grid {
width: 100%;
min-height: clamp(400px, 60vw, 560px);
}
.omni-home__toolbox-workflow {
margin-top: 0;
}
}
@media (max-width: 560px) {
.omni-home__toolbox-shell {
padding: 28px 16px 40px;
}
.omni-home__toolbox-title {
font-size: 20px;
}
.omni-home__toolbox-grid {
grid-template-columns: 1fr;
grid-template-rows: auto;
min-height: auto;
}
.omni-home__toolbox-card {
min-height: 200px;
}
}
@media (prefers-reduced-motion: reduce) {
.omni-home__toolbox-item,
.omni-home__toolbox-card {
animation: none;
}
.toolbox-card3-glow-ring,
.toolbox-card3-lipsync span,
.toolbox-card3-gesture::before,
.toolbox-card3-gesture::after,
.toolbox-card3-live,
.toolbox-card3-transform {
animation: none;
}
}
-124
View File
@@ -1,124 +0,0 @@
.welcome-splash {
position: fixed;
inset: 0;
z-index: 9999;
background: #000;
transition: opacity 0.7s ease;
}
.welcome-splash.is-exiting {
opacity: 0;
pointer-events: none;
}
.welcome-splash__canvas {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
}
.welcome-splash__ambient {
position: absolute;
inset: 0;
background: radial-gradient(ellipse at 50% 80%, rgba(0, 255, 0, 0.08), transparent 70%);
pointer-events: none;
}
.welcome-splash__hero {
position: relative;
z-index: 10;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding: 1rem;
}
.welcome-splash__title {
font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", sans-serif;
font-weight: 900;
font-size: clamp(4.5rem, 18vw, 9rem);
letter-spacing: 0.08em;
background: linear-gradient(135deg, #0f0, #0fa, #2eff7a, #aaffaa);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
margin: 0 0 0.3em;
animation: welcome-splash-glow 3s infinite alternate;
}
@keyframes welcome-splash-glow {
0% { text-shadow: 0 0 15px #0f0, 0 0 30px #0f8a3a; }
100% { text-shadow: 0 0 30px #2eff7a, 0 0 60px #0f0, 0 0 10px #aaffaa; }
}
.welcome-splash__subtitle {
font-family: "Microsoft YaHei", "PingFang SC", monospace;
font-size: clamp(1.1rem, 5vw, 1.8rem);
font-weight: 500;
letter-spacing: 0.12em;
color: #caffb0;
background: rgba(0, 0, 0, 0.55);
backdrop-filter: blur(6px);
padding: 0.6rem 1.5rem;
border-radius: 60px;
border: 1px solid rgba(0, 255, 0, 0.5);
box-shadow: 0 0 18px rgba(0, 255, 0, 0.25);
margin: 0;
}
.welcome-splash__enter {
font-family: "Microsoft YaHei", "PingFang SC", monospace;
font-size: clamp(1.3rem, 6vw, 2.2rem);
font-weight: 700;
letter-spacing: 0.1em;
color: #e0ffc0;
background: linear-gradient(135deg, rgba(0, 30, 0, 0.7), rgba(0, 60, 0, 0.6));
backdrop-filter: blur(8px);
padding: 0.7rem 1.8rem;
border-radius: 50px;
margin-top: 2rem;
border: 1px solid #2eff7a;
box-shadow: 0 0 25px rgba(50, 255, 50, 0.4);
cursor: pointer;
animation: welcome-splash-enter-in 0.8s cubic-bezier(0.2, 0.9, 0.4, 1.2) both;
transition: transform 0.2s, box-shadow 0.2s;
}
.welcome-splash__enter:hover {
transform: scale(1.05);
box-shadow: 0 0 40px rgba(50, 255, 50, 0.6);
}
.welcome-splash__enter:active {
transform: scale(0.97);
}
@keyframes welcome-splash-enter-in {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@media (max-width: 640px) {
.welcome-splash__subtitle {
white-space: normal;
width: 85%;
line-height: 1.4;
font-size: 1rem;
padding: 0.4rem 1rem;
}
.welcome-splash__title {
letter-spacing: 0.05em;
}
}
File diff suppressed because it is too large Load Diff