diff --git a/src/features/canvas/CanvasPage.tsx b/src/features/canvas/CanvasPage.tsx index 28b3089..9306ec3 100644 --- a/src/features/canvas/CanvasPage.tsx +++ b/src/features/canvas/CanvasPage.tsx @@ -26,7 +26,6 @@ VideoCameraOutlined, } from "@ant-design/icons"; import { - Background, ReactFlow, } from "@xyflow/react"; import { useCallback, useEffect, useMemo, useRef, useState, type ChangeEvent, type CSSProperties, type MouseEvent, type WheelEvent } from "react"; @@ -3560,7 +3559,8 @@ function CanvasPage({ onMouseMove={(shouldShowEmptyProjectState || isWaitingForProjects) ? undefined : handleCanvasMouseMove} onWheel={(shouldShowEmptyProjectState || isWaitingForProjects) ? undefined : handleCanvasWheel} style={{ - "--canvas-bg-size": `${24 * canvasViewport.zoom}px`, + "--canvas-bg-size": `${34 * canvasViewport.zoom}px`, + "--canvas-bg-dot": `${1.35 * canvasViewport.zoom}px`, "--canvas-bg-x": `${canvasViewport.x}px`, "--canvas-bg-y": `${canvasViewport.y}px`, cursor: canvasPanDrag ? "grabbing" : spacePanning ? "grab" : undefined, @@ -3748,9 +3748,7 @@ function CanvasPage({ proOptions={{ hideAttribution: true }} onPaneClick={(shouldShowEmptyProjectState || isWaitingForProjects) ? undefined : handlePaneClick} onPaneContextMenu={(shouldShowEmptyProjectState || isWaitingForProjects) ? undefined : handlePaneContextMenu} - > - - + />
e.stopPropagation()}>
); + const renderCardPreview = ( + url: string | null | undefined, + type: "image" | "video" | "project" | "asset", + label: string, + ) => { + const mediaUrl = typeof url === "string" ? url.trim() : ""; + const isVideoPreview = type === "video" || /\.(mp4|webm|mov)(\?|#|$)/i.test(mediaUrl); + const placeholderIcon = + type === "video" ? : type === "project" ? : ; + + return ( + + ); + }; + const renderActivePanel = () => { if (activePanel === "works") { return visibleWorks.length ? (
{visibleWorks.map((task) => ( -
-
- {task.title} - {formatTaskType(task.type)} -
-

{task.prompt}

-
- {formatTaskStatus(task.status)} - {formatProfileDate(task.createdAt)} +
+ {renderCardPreview(task.outputUrl, task.type === "video" ? "video" : "image", formatTaskType(task.type))} +
+
+ {task.title} +
+

{task.prompt}

+
+ {formatTaskStatus(task.status)} + {formatProfileDate(task.createdAt)} +
))} @@ -637,25 +681,27 @@ function ProfilePage({ return projects.length ? (
{projects.map((project) => ( -
-
- {project.name} - {formatProfileDate(project.updatedAt)} - {onDeleteProject ? ( - - ) : null} -
-

{project.description || "最近更新的项目"}

-
- {project.storyboardCount} 节点 - {project.imageCount} 图 / {project.videoCount} 视频 +
+ {renderCardPreview(project.thumbnailUrl, "project", "项目")} +
+
+ {project.name} + {onDeleteProject ? ( + + ) : null} +
+

{project.description || "最近更新的项目"}

+
+ {project.storyboardCount} 节点 + {formatProfileDate(project.updatedAt)} +
))} @@ -669,15 +715,18 @@ function ProfilePage({ return savedAssets.length ? (
{savedAssets.map((asset) => ( -
-
- {asset.name} - {formatAssetStatus(asset.status)} -
-

{asset.description}

-
- {asset.type} - {formatProfileDate(asset.updatedAt)} +
+ {renderCardPreview(asset.imageUrl || asset.url, asset.type === "video" ? "video" : "asset", formatAssetType(asset.type))} +
+
+ {asset.name} + {formatAssetStatus(asset.status)} +
+

{asset.description}

+
+ {formatAssetType(asset.type)} + {formatProfileDate(asset.updatedAt)} +
))} @@ -791,6 +840,50 @@ function ProfilePage({
+
+
+ + +
+
+ {accountPanel === "credits" ? ( + <> + + 当前账号 + {displayName} + + + 积分剩余 + {(usage.balanceCents / 100).toFixed(2)} + + + ) : ( + <> + + 任务总数 + {tasks.length} + + + 已完成 + {completedTasks.length} + + + )} +
+
+
- -
-
-
- - -
-
-
- {accountPanel === "credits" ? ( - <> - - 当前账号 - {displayName} - - - 积分剩余 - {(usage.balanceCents / 100).toFixed(2)} - - - ) : ( - <> - - 任务总数 - {tasks.length} - - - 已完成 - {completedTasks.length} - - - )} -
-
diff --git a/src/features/script-tokens/ScriptTokensPage.tsx b/src/features/script-tokens/ScriptTokensPage.tsx index 10e4e6b..c59cbb0 100644 --- a/src/features/script-tokens/ScriptTokensPage.tsx +++ b/src/features/script-tokens/ScriptTokensPage.tsx @@ -405,111 +405,113 @@ function ScriptTokensPage() {
{/* Left Panel */} diff --git a/src/features/script-tokens/TokenUsagePage.tsx b/src/features/script-tokens/TokenUsagePage.tsx index 23fc2d0..848efe4 100644 --- a/src/features/script-tokens/TokenUsagePage.tsx +++ b/src/features/script-tokens/TokenUsagePage.tsx @@ -271,9 +271,8 @@ function TokenUsagePage({ ) : null}
- {metricCards.map((card, index) => ( + {metricCards.map((card) => (
- {String(index + 1).padStart(2, "0")} {card.label} {card.value} {card.hint} diff --git a/src/styles/pages/ecommerce.css b/src/styles/pages/ecommerce.css index 2d414b5..44a10c1 100644 --- a/src/styles/pages/ecommerce.css +++ b/src/styles/pages/ecommerce.css @@ -8598,9 +8598,8 @@ } .product-clone-page[data-tool="clone"] .clone-ai-logo { - position: sticky; - top: 0; - z-index: 3; + position: static; + z-index: auto; margin: -18px -18px 2px; padding: 16px 18px 14px; border-bottom-color: var(--ecm-line); @@ -9103,7 +9102,7 @@ } .product-clone-page[data-tool="clone"] .clone-ai-logo { - margin: -14px -14px 0; + margin: 0; padding: 14px 54px 12px 14px; } @@ -9382,3 +9381,42 @@ padding-top: 14px; } } + +/* Mobile clone header alignment: keep the tool title in normal flow, but attach it to the top nav rhythm. */ +@media (max-width: 900px) { + .product-clone-page[data-tool="clone"] { + padding-top: 59px; + } + + .product-clone-page[data-tool="clone"] > .product-clone-shell { + min-height: calc(100% - 59px); + } + + .product-clone-page[data-tool="clone"] .clone-ai-panel { + padding-top: 0; + } + + .product-clone-page[data-tool="clone"] .clone-ai-logo { + margin: 0 -18px 2px; + } +} + +@media (max-width: 620px) { + .product-clone-page[data-tool="clone"] .clone-ai-panel { + padding: 0 14px 14px; + } + + .product-clone-page[data-tool="clone"] .clone-ai-logo { + margin: 0 -14px 0; + } +} + +@media (max-width: 480px) { + .product-clone-page[data-tool="clone"] { + padding-top: 59px; + } + + .product-clone-page[data-tool="clone"] > .product-clone-shell { + min-height: calc(100% - 59px); + } +} diff --git a/src/styles/pages/script-tokens-v5.css b/src/styles/pages/script-tokens-v5.css index f07be33..f8d25db 100644 --- a/src/styles/pages/script-tokens-v5.css +++ b/src/styles/pages/script-tokens-v5.css @@ -2649,3 +2649,1283 @@ min-height: 52px; } } + +/* ===== Commercial SaaS polish for script review page ===== */ +.script-eval-v5 { + --v5-radius-xs: 6px; + --v5-radius-sm: 8px; + --v5-radius-md: 12px; + --v5-radius-lg: 16px; + --v5-panel: #131616; + --v5-panel-2: #181c1b; + --v5-panel-3: #101312; + --v5-line: rgb(255 255 255 / 7%); + --v5-line-strong: rgb(0 255 136 / 22%); + --v5-shadow-soft: 0 18px 48px rgb(0 0 0 / 24%); + --v5-shadow-tight: 0 10px 24px rgb(0 0 0 / 18%); + background: + linear-gradient(180deg, rgb(255 255 255 / 2.2%), transparent 220px), + var(--v5-bg); + letter-spacing: 0; +} + +.script-eval-v5-page { + background: linear-gradient(90deg, rgb(0 255 136 / 3%), transparent 28%); +} + +.script-eval-v5-left { + background: + linear-gradient(180deg, rgb(255 255 255 / 3.5%), transparent 180px), + var(--v5-panel); + border-right-color: var(--v5-line); + box-shadow: inset -1px 0 0 rgb(0 255 136 / 4%), 18px 0 38px rgb(0 0 0 / 18%); +} + +.script-eval-v5-lp-section { + border-bottom-color: var(--v5-line); +} + +.script-eval-v5-lp-label { + display: flex; + align-items: center; + gap: 8px; + color: #7f8d88; + font-size: 12px; + font-weight: 800; + letter-spacing: 0.06em; +} + +.script-eval-v5-lp-label::before { + content: ""; + width: 6px; + height: 6px; + border-radius: 999px; + background: rgb(0 255 136 / 42%); + box-shadow: 0 0 14px rgb(0 255 136 / 24%); +} + +.script-eval-v5-upload-zone { + position: relative; + min-height: 214px; + border: 1px dashed rgb(255 255 255 / 14%); + border-radius: var(--v5-radius-lg); + background: + linear-gradient(180deg, rgb(255 255 255 / 4%), transparent), + rgb(255 255 255 / 2.5%); + box-shadow: inset 0 1px 0 rgb(255 255 255 / 6%); +} + +.script-eval-v5-upload-zone:hover, +.script-eval-v5-upload-zone:focus-visible { + border-color: var(--v5-line-strong); + background: + linear-gradient(180deg, rgb(0 255 136 / 8%), transparent), + rgb(0 255 136 / 4%); + outline: none; + box-shadow: inset 0 1px 0 rgb(255 255 255 / 8%), 0 16px 36px rgb(0 0 0 / 16%); +} + +.script-eval-v5-upload-icon { + display: grid; + place-items: center; + width: 58px; + height: 58px; + margin: 0 auto 14px; + border: 1px solid rgb(255 255 255 / 7%); + border-radius: 18px; + background: rgb(0 255 136 / 8%); + color: color-mix(in srgb, var(--v5-green) 74%, #ffffff); +} + +.script-eval-v5-upload-text { + margin-bottom: 14px; + color: #d7dedb; + font-weight: 760; +} + +.script-eval-v5-upload-btn, +.script-eval-v5-eval-btn, +.script-eval-v5-export-btn, +.script-eval-v5-action-btn, +.script-eval-v5-retry-btn { + font-family: inherit; + letter-spacing: 0; +} + +.script-eval-v5-upload-btn, +.script-eval-v5-eval-btn, +.script-eval-v5-export-btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; +} + +.script-eval-v5-upload-btn, +.script-eval-v5-eval-btn { + background: linear-gradient(180deg, #34ffa9 0%, var(--v5-green) 52%, #07cf73 100%); + box-shadow: 0 12px 28px rgb(0 255 136 / 14%), inset 0 1px 0 rgb(255 255 255 / 36%); +} + +.script-eval-v5-upload-btn:hover, +.script-eval-v5-eval-btn:hover:not(:disabled) { + background: linear-gradient(180deg, #55ffb8 0%, #10f58c 56%, var(--v5-green-dim) 100%); + transform: translateY(-1px); +} + +.script-eval-v5-upload-hint { + max-width: 300px; + margin-inline: auto; + color: #74837e; + line-height: 1.6; +} + +.script-eval-v5-upload-done { + min-height: 86px; + border-color: var(--v5-line-strong); + border-radius: var(--v5-radius-md); + background: + linear-gradient(180deg, rgb(0 255 136 / 12%), rgb(0 255 136 / 5%)), + rgb(255 255 255 / 2%); +} + +.script-eval-v5-uf-meta { + min-width: 0; + flex: 1; + display: grid; + gap: 4px; + text-align: left; +} + +.script-eval-v5-uf-name { + display: block; + color: #e9fff5; + font-size: 14px; + line-height: 1.25; +} + +.script-eval-v5-uf-size { + color: #7f918a; + font-size: 11px; + font-weight: 700; +} + +.script-eval-v5-uf-re { + padding: 5px 8px; + border-radius: var(--v5-radius-xs); + color: #a2b0ab; + transition: color 160ms ease, background 160ms ease; +} + +.script-eval-v5-uf-re:hover { + background: rgb(255 255 255 / 6%); +} + +.script-eval-v5-info-grid { + gap: 8px; +} + +.script-eval-v5-info-item { + min-height: 38px; + padding: 0 12px; + border: 1px solid rgb(255 255 255 / 5%); + border-radius: var(--v5-radius-sm); + background: rgb(255 255 255 / 2.6%); +} + +.script-eval-v5-info-key { + color: #84928d; + font-size: 13px; + font-weight: 650; +} + +.script-eval-v5-info-val { + color: #e5ebe8; + font-size: 13px; + font-weight: 800; +} + +.script-eval-v5-info-tag { + border-radius: 999px; + padding: 4px 10px; +} + +.script-eval-v5-info-empty, +.script-eval-v5-history-empty { + min-height: 70px; + display: grid; + place-items: center; + border: 1px dashed rgb(255 255 255 / 9%); + border-radius: var(--v5-radius-md); + background: rgb(255 255 255 / 2%); + color: #75827e; + line-height: 1.5; +} + +.script-eval-v5-history-list { + gap: 8px; +} + +.script-eval-v5-history-item { + border: 1px solid rgb(255 255 255 / 5%); + border-radius: var(--v5-radius-md); + background: rgb(255 255 255 / 2.4%); + transition: border-color 160ms ease, background 160ms ease, transform 160ms ease, box-shadow 160ms ease; +} + +.script-eval-v5-history-item:hover { + border-color: rgb(255 255 255 / 10%); + background: rgb(255 255 255 / 4%); + transform: translateY(-1px); +} + +.script-eval-v5-history-item.is-active { + border-color: var(--v5-line-strong); + background: linear-gradient(90deg, rgb(0 255 136 / 10%), rgb(0 255 136 / 3%)); + box-shadow: inset 3px 0 0 var(--v5-green); +} + +.script-eval-v5-hi-name { + color: #dce5e1; + font-size: 14px; + font-weight: 760; +} + +.script-eval-v5-hi-date { + color: #73817c; + font-size: 11px; +} + +.script-eval-v5-hi-score { + font-variant-numeric: tabular-nums; + font-size: 28px; +} + +.script-eval-v5-hi-grade { + color: #7d8985; +} + +.script-eval-v5-lp-bottom { + border-top-color: var(--v5-line); + background: linear-gradient(180deg, rgb(19 22 22 / 72%), #111414); + box-shadow: 0 -18px 34px rgb(0 0 0 / 18%); +} + +.script-eval-v5-eval-btn { + min-height: 58px; + border-radius: var(--v5-radius-md); + font-size: 17px; + font-weight: 850; + transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease; +} + +.script-eval-v5-eval-btn:disabled { + opacity: 0.44; + box-shadow: none; +} + +.script-eval-v5-export-btn { + min-height: 50px; + border-color: rgb(255 255 255 / 9%); + border-radius: var(--v5-radius-md); + background: rgb(255 255 255 / 3.5%); + color: #aab8b2; + font-size: 14px; + font-weight: 760; +} + +.script-eval-v5-export-btn:hover:not(:disabled) { + border-color: var(--v5-line-strong); + background: rgb(0 255 136 / 7%); + color: #dcfff0; +} + +.script-eval-v5-right { + background: + linear-gradient(180deg, rgb(255 255 255 / 2.4%), transparent 240px), + #0d0f0f; +} + +.script-eval-v5-right-topbar { + min-height: 52px; + border-bottom-color: var(--v5-line); + background: rgb(13 15 15 / 88%); + backdrop-filter: blur(18px); +} + +.script-eval-v5-right-title { + color: #87938f; + font-size: 14px; + font-weight: 760; +} + +.script-eval-v5-rt-green { + color: #b7ffdc; +} + +.script-eval-v5-action-btn { + min-height: 32px; + border-color: rgb(255 255 255 / 9%); + border-radius: var(--v5-radius-sm); + background: rgb(255 255 255 / 3.8%); + color: #a8b5b0; + font-weight: 760; +} + +.script-eval-v5-action-btn:hover { + border-color: var(--v5-line-strong); + background: rgb(0 255 136 / 7%); + color: #dffff0; +} + +.script-eval-v5-right-content { + padding: 20px 32px 42px; +} + +.script-eval-v5-illustration-hit { + border: 1px solid rgb(255 255 255 / 7%); + background: + linear-gradient(180deg, rgb(255 255 255 / 4.5%), transparent), + var(--v5-panel-3); + box-shadow: var(--v5-shadow-soft); +} + +.script-eval-v5-illustration-hit:hover, +.script-eval-v5-illustration-hit:focus-visible { + border-color: var(--v5-line-strong); + background: + linear-gradient(180deg, rgb(0 255 136 / 7%), transparent), + var(--v5-panel-3); +} + +.script-eval-v5-upload-card-icon { + border: 1px solid var(--v5-line-strong); + background: + linear-gradient(180deg, rgb(0 255 136 / 18%), rgb(0 255 136 / 8%)), + #101714; +} + +.script-eval-v5-upload-card-title { + color: #f4fbf8; + font-size: 22px; + font-weight: 850; +} + +.script-eval-v5-upload-card-desc { + color: #91a19b; +} + +.script-eval-v5-loading { + min-width: min(520px, 92%); + border: 1px solid rgb(255 255 255 / 7%); + border-radius: var(--v5-radius-lg); + background: + linear-gradient(180deg, rgb(255 255 255 / 4%), transparent), + var(--v5-panel-3); + box-shadow: var(--v5-shadow-soft); +} + +.script-eval-v5-loading strong { + color: #f4fbf8; +} + +.script-eval-v5-loading p { + margin: 0; + color: #8f9f99; +} + +.script-eval-v5-loading-steps { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 8px; + margin-top: 4px; +} + +.script-eval-v5-loading-steps span { + border: 1px solid rgb(0 255 136 / 18%); + border-radius: 999px; + background: rgb(0 255 136 / 7%); + color: #b6ffdc; + padding: 5px 10px; + font-size: 11px; + font-weight: 780; +} + +.script-eval-v5-error { + border-color: rgb(244 178 46 / 28%); + border-radius: var(--v5-radius-md); + background: rgb(244 178 46 / 8%); + color: #f4c767; + box-shadow: var(--v5-shadow-tight); +} + +.script-eval-v5-error span:first-child { + color: #ffe0a1; + font-weight: 850; +} + +.script-eval-v5-retry-btn { + border-color: rgb(244 178 46 / 32%); + color: #ffd47a; +} + +.script-eval-report { + --report-panel: #151918; + --report-panel-2: #111514; + --report-row: #181e1c; + --report-border: rgb(255 255 255 / 8%); + --report-muted: #93a29c; + --report-dim: #67736f; + background: + linear-gradient(180deg, rgb(255 255 255 / 3.2%), transparent 230px), + var(--report-bg); +} + +.script-eval-report::before, +.script-eval-report::after { + opacity: 0.75; +} + +.script-eval-report--inside .script-eval-report__body { + padding: 18px 32px 46px; +} + +.script-eval-report--inside .script-eval-report__hero { + align-items: center; + padding: 4px 0 22px; +} + +.script-eval-report__score-block { + min-height: 184px; + display: flex; + flex-direction: column; + justify-content: center; + padding: 18px 22px; + border: 1px solid rgb(255 255 255 / 7%); + border-radius: var(--v5-radius-lg); + background: + linear-gradient(180deg, rgb(0 255 136 / 9%), rgb(0 255 136 / 2%)), + #101413; + box-shadow: var(--v5-shadow-tight); +} + +.script-eval-report__score { + text-shadow: 0 0 28px rgb(0 255 136 / 14%); +} + +.script-eval-report__score-total { + color: #7e8b86; +} + +.script-eval-report__grade { + border-radius: 999px; + box-shadow: inset 0 1px 0 rgb(255 255 255 / 10%); +} + +.script-eval-report__beat { + color: #a6b4ae; +} + +.script-eval-report__summary { + padding: 6px 0; +} + +.script-eval-report__summary h1 { + color: #f6fbf9; + font-size: clamp(25px, 2vw, 32px); + font-weight: 900; +} + +.script-eval-report__summary p { + color: #7d8b86; +} + +.script-eval-report__desc { + max-width: 980px; + color: #cbd5d1 !important; + font-size: 14px !important; +} + +.script-eval-report__chart-card, +.script-eval-report__path-card { + border-color: var(--report-border); + border-radius: var(--v5-radius-lg); + background: + linear-gradient(180deg, rgb(255 255 255 / 3.8%), transparent), + var(--report-panel); + box-shadow: var(--v5-shadow-tight); +} + +.script-eval-report__card-head { + min-height: 50px; + padding-inline: 18px; + border-bottom: 1px solid rgb(255 255 255 / 5%); + color: #b5c0bc; + text-transform: none; +} + +.script-eval-report__legend { + color: #7e8a86; +} + +.script-eval-report__chart { + padding-bottom: 12px; +} + +.script-eval-report__chart-grid { + gap: clamp(18px, 3vw, 52px); +} + +.script-eval-report__bar-col { + cursor: pointer; + transition: opacity 180ms ease, transform 180ms ease; +} + +.script-eval-report__bar-col:hover, +.script-eval-report__bar-col:focus-visible { + outline: none; + transform: translateY(-2px); +} + +.script-eval-report__bar-col.is-dimmed { + opacity: 0.36; +} + +.script-eval-report__bar-fill { + box-shadow: inset 0 1px 0 rgb(255 255 255 / 18%), 0 10px 22px rgb(0 255 136 / 12%); +} + +.script-eval-report__bar-col:hover .script-eval-report__bar-fill, +.script-eval-report__bar-col:focus-visible .script-eval-report__bar-fill { + filter: brightness(1.08); +} + +.script-eval-report__bar-col strong { + color: #eef5f2; +} + +.script-eval-report__bar-col > span { + color: #74807c; +} + +.script-eval-report__chart-note { + display: flex; + align-items: center; + gap: 9px; + min-height: 44px; + margin: 0 18px 18px; + border: 1px solid rgb(0 255 136 / 14%); + border-radius: var(--v5-radius-md); + background: rgb(0 255 136 / 5%); + color: #a9bbb4; + padding: 10px 14px; + font-size: 13px; + font-weight: 700; + line-height: 1.45; +} + +.script-eval-report__chart-note .anticon { + flex-shrink: 0; + color: var(--report-green); +} + +.script-eval-report__findings { + gap: 18px; +} + +.script-eval-report__finding-group p { + border: 1px solid rgb(255 255 255 / 5%); + border-radius: var(--v5-radius-md); + background: linear-gradient(180deg, rgb(255 255 255 / 3%), transparent), var(--report-row); + color: #d7e0dc; + font-size: 14px; + font-weight: 650; +} + +.script-eval-report__path-table th { + color: #87938f; + font-size: 12px; +} + +.script-eval-report__path-table td { + color: #d8e1dd; + font-size: 14px; +} + +.script-eval-report__path-table tr:hover td { + background: rgb(255 255 255 / 2.8%); +} + +.script-eval-v5-statusbar { + height: 34px; + border-top-color: var(--v5-line); + background: rgb(18 21 21 / 94%); + color: #7c8984; + font-weight: 700; +} + +.script-eval-v5.is-loading .script-eval-v5-status-dot { + animation: v5-pulse 1.2s ease infinite; +} + +.script-eval-v5.is-complete .script-eval-v5-status-dot, +.script-eval-v5.is-ready .script-eval-v5-status-dot { + box-shadow: 0 0 16px rgb(0 255 136 / 34%); +} + +@media (max-width: 1180px) { + .script-eval-report--inside .script-eval-report__body { + padding-inline: 24px; + } +} + +@media (max-width: 900px) { + .script-eval-v5-page { + padding-left: 0; + padding-top: 74px; + scroll-padding-top: 74px; + } + + .script-eval-v5-left { + flex-basis: 320px; + } + + .script-eval-v5-right-content { + padding: 18px; + } +} + +@media (max-width: 680px) { + .script-eval-v5 { + overflow: hidden; + } + + .script-eval-v5-page { + min-height: 0; + overflow-y: auto; + } + + .script-eval-v5-left { + flex: 0 0 auto; + overflow: visible; + max-height: none; + border-right: 0; + border-bottom: 1px solid var(--v5-line); + } + + .script-eval-v5-lp-section.is-fill { + flex: 0 0 auto; + } + + .script-eval-v5-history-list { + flex: 0 0 auto; + max-height: 180px; + } + + .script-eval-v5-lp-section { + padding: 16px; + } + + .script-eval-v5-upload-zone { + min-height: 148px; + padding: 18px 14px; + } + + .script-eval-v5-upload-icon { + width: 48px; + height: 48px; + margin-bottom: 10px; + border-radius: 15px; + font-size: 30px; + } + + .script-eval-v5-upload-text { + margin-bottom: 10px; + font-size: 15px; + } + + .script-eval-v5-upload-btn { + padding: 9px 24px; + font-size: 14px; + } + + .script-eval-v5-upload-hint { + margin-top: 8px; + font-size: 12px; + line-height: 1.45; + } + + .script-eval-v5-info-item { + min-height: 36px; + } + + .script-eval-v5-info-empty, + .script-eval-v5-history-empty { + min-height: 56px; + } + + .script-eval-v5-lp-bottom { + gap: 8px; + padding: 12px 16px 14px; + } + + .script-eval-v5-eval-btn { + min-height: 48px; + font-size: 16px; + } + + .script-eval-v5-export-btn { + min-height: 42px; + font-size: 13px; + } + + .script-eval-v5-right-topbar { + padding-inline: 16px; + } + + .script-eval-v5-right { + flex: 0 0 auto; + min-height: 560px; + overflow: visible; + } + + .script-eval-report--inside .script-eval-report__body { + padding: 16px 16px 36px; + } + + .script-eval-report__score-block { + min-height: 150px; + padding: 16px; + } + + .script-eval-report--inside .script-eval-report__score { + font-size: clamp(62px, 22vw, 82px); + } + + .script-eval-report__score-total { + padding-top: 24px; + font-size: 18px; + } + + .script-eval-report__summary h1 { + font-size: 24px; + } + + .script-eval-report__chart-note { + margin-inline: 14px; + } + + .script-eval-report__finding-group p, + .script-eval-report__path-table td { + font-size: 13px; + } +} + +/* Script review left panel overflow guard: keep actions available while history remains scrollable. */ +.script-eval-v5-left { + overflow: hidden; +} + +.script-eval-v5-left-main { + display: flex; + flex: 1 1 auto; + flex-direction: column; + min-height: 0; + overflow-x: hidden; + overflow-y: auto; + scrollbar-width: thin; + scrollbar-color: rgb(0 255 136 / 35%) transparent; +} + +.script-eval-v5-left-main::-webkit-scrollbar, +.script-eval-v5-history-list::-webkit-scrollbar { + width: 6px; +} + +.script-eval-v5-left-main::-webkit-scrollbar-track, +.script-eval-v5-history-list::-webkit-scrollbar-track { + background: transparent; +} + +.script-eval-v5-left-main::-webkit-scrollbar-thumb, +.script-eval-v5-history-list::-webkit-scrollbar-thumb { + border-radius: 999px; + background: rgb(0 255 136 / 28%); +} + +.script-eval-v5-left-main .script-eval-v5-lp-section.is-fill { + flex: 0 0 auto; + min-height: 210px; +} + +.script-eval-v5-left-main .script-eval-v5-history-list { + min-height: 128px; + max-height: clamp(160px, 28vh, 300px); + overflow-y: auto; +} + +.script-eval-v5-lp-bottom { + position: static; + z-index: auto; + flex-shrink: 0; + margin-top: 0; +} + +@media (max-height: 820px) and (min-width: 901px) { + .script-eval-v5-left-main .script-eval-v5-lp-section.is-fill { + flex-basis: auto; + min-height: 190px; + } + + .script-eval-v5-left-main .script-eval-v5-history-list { + min-height: 118px; + max-height: clamp(142px, 23vh, 220px); + } +} + +@media (max-width: 900px) { + .script-eval-v5-left-main { + overscroll-behavior: contain; + } +} + +@media (max-width: 680px) { + .script-eval-v5-left { + overflow: visible; + } + + .script-eval-v5-left-main { + flex: 0 0 auto; + overflow: visible; + } + + .script-eval-v5-left-main .script-eval-v5-lp-section.is-fill { + min-height: 224px; + } + + .script-eval-v5-left-main .script-eval-v5-history-list { + min-height: 132px; + max-height: min(260px, 42vh); + } + + .script-eval-v5-history-empty { + min-height: 118px; + } +} + +/* Final commercial polish for the script scoring workspace. */ +.script-eval-v5 { + background: + radial-gradient(circle at 12% 0%, rgb(0 255 136 / 5%), transparent 28%), + linear-gradient(180deg, #0d1010 0%, #090b0b 100%); +} + +.script-eval-v5-page { + background: + linear-gradient(90deg, rgb(0 255 136 / 4%), transparent 24%), + linear-gradient(180deg, rgb(255 255 255 / 1.8%), transparent 180px); +} + +.script-eval-v5-left { + background: + linear-gradient(180deg, rgb(255 255 255 / 4%), transparent 180px), + linear-gradient(90deg, rgb(0 255 136 / 4%), transparent 32%), + var(--v5-panel); +} + +.script-eval-v5-left-main { + scroll-padding-block: 18px; +} + +.script-eval-v5-left-main .script-eval-v5-lp-section { + flex-shrink: 0; + padding-inline: 22px; + background: + linear-gradient(180deg, rgb(255 255 255 / 1.8%), transparent 80px); +} + +.script-eval-v5-left-main .script-eval-v5-lp-section + .script-eval-v5-lp-section { + box-shadow: inset 0 1px 0 rgb(255 255 255 / 2.5%); +} + +.script-eval-v5-lp-label { + color: #91a09b; +} + +.script-eval-v5-upload-zone { + display: grid; + place-items: center; + overflow: hidden; + isolation: isolate; +} + +.script-eval-v5-upload-zone::after { + content: ""; + position: absolute; + inset: 1px; + z-index: -1; + border-radius: inherit; + background: + radial-gradient(circle at 50% 18%, rgb(0 255 136 / 11%), transparent 38%), + linear-gradient(180deg, rgb(255 255 255 / 2%), transparent 60%); + opacity: 0.78; + pointer-events: none; +} + +.script-eval-v5-upload-zone:focus-visible { + outline: 2px solid rgb(0 255 136 / 42%); + outline-offset: 3px; +} + +.script-eval-v5.is-ready .script-eval-v5-upload-zone, +.script-eval-v5.is-complete .script-eval-v5-upload-zone { + border-color: rgb(0 255 136 / 28%); + background: + linear-gradient(180deg, rgb(0 255 136 / 8%), rgb(255 255 255 / 2.5%)), + rgb(255 255 255 / 2.8%); +} + +.script-eval-v5-upload-done { + width: min(100%, 320px); + padding: 14px 14px; + box-shadow: inset 0 1px 0 rgb(255 255 255 / 8%); +} + +.script-eval-v5-info-grid { + display: grid; + grid-template-columns: 1fr; +} + +.script-eval-v5-info-item { + min-height: 42px; + box-shadow: inset 0 1px 0 rgb(255 255 255 / 3%); +} + +.script-eval-v5-info-empty, +.script-eval-v5-history-empty { + color: #82918c; + background: + linear-gradient(180deg, rgb(255 255 255 / 3.2%), rgb(255 255 255 / 1.8%)); +} + +.script-eval-v5-left-main .script-eval-v5-lp-section.is-fill { + background: + linear-gradient(180deg, rgb(0 255 136 / 3.4%), transparent 92px), + linear-gradient(180deg, rgb(255 255 255 / 1.8%), transparent); +} + +.script-eval-v5-history-list { + padding: 2px 8px 2px 0; +} + +.script-eval-v5-history-item { + min-height: 68px; + box-shadow: inset 0 1px 0 rgb(255 255 255 / 3%); +} + +.script-eval-v5-lp-bottom { + padding: 18px 22px 22px; + background: + linear-gradient(180deg, rgb(255 255 255 / 2.2%), transparent 60px), + #111414; + box-shadow: inset 0 1px 0 rgb(255 255 255 / 3.5%); +} + +.script-eval-v5-export-btn { + border-color: rgb(255 255 255 / 7%); + background: + linear-gradient(180deg, rgb(255 255 255 / 3.5%), rgb(255 255 255 / 1.8%)), + #111414; + color: #7f8d88; +} + +.script-eval-v5-export-btn:not(:disabled):hover { + border-color: rgb(0 255 136 / 22%); + color: #c7d5d0; + background: + linear-gradient(180deg, rgb(0 255 136 / 8%), rgb(255 255 255 / 2%)), + #111414; +} + +.script-eval-v5-eval-btn:disabled, +.script-eval-v5-export-btn:disabled { + opacity: 0.48; + cursor: not-allowed; +} + +.script-eval-v5-right-topbar { + backdrop-filter: blur(14px); + background: + linear-gradient(180deg, rgb(18 22 21 / 92%), rgb(12 14 14 / 88%)); +} + +.script-eval-v5-right-content:not(.is-report) { + background: + radial-gradient(circle at 50% 43%, rgb(0 255 136 / 5%), transparent 32%), + linear-gradient(180deg, transparent, rgb(0 0 0 / 12%)); +} + +.script-eval-v5-upload-card-title { + color: #f0fff8; +} + +.script-eval-v5-upload-card-desc { + max-width: 540px; + color: #96a5a0; +} + +.script-eval-v5-statusbar { + background: + linear-gradient(180deg, rgb(17 20 20 / 84%), rgb(10 12 12 / 92%)); +} + +@media (max-height: 760px) and (min-width: 901px) { + .script-eval-v5-left-main .script-eval-v5-lp-section { + padding-block: 12px; + } + + .script-eval-v5-upload-zone { + min-height: 156px; + } + + .script-eval-v5-left-main .script-eval-v5-lp-section.is-fill { + min-height: 176px; + } + + .script-eval-v5-left-main .script-eval-v5-history-list { + min-height: 110px; + } +} + +@media (max-width: 680px) { + .script-eval-v5-left-main .script-eval-v5-lp-section { + padding-inline: 16px; + } + + .script-eval-v5-upload-zone { + min-height: 164px; + } + + .script-eval-v5-lp-bottom { + padding: 14px 16px 18px; + } + + .script-eval-v5-right-content:not(.is-report) { + padding-top: 22px; + } +} + +/* Ecommerce-aligned tone pass: restrained dark SaaS surfaces, no depth shadows. */ +.script-eval-v5 { + --v5-bg: #0d0d0f; + --v5-bg2: #151719; + --v5-bg3: #181b1d; + --v5-bg4: #1d2022; + --v5-bg5: #222629; + --v5-border: rgba(255, 255, 255, 0.08); + --v5-border2: rgba(255, 255, 255, 0.12); + --v5-panel: #151719; + --v5-panel-2: #181b1d; + --v5-panel-3: #101214; + --v5-line: rgba(255, 255, 255, 0.08); + --v5-line-strong: rgba(0, 255, 136, 0.24); + --v5-green-deep: rgba(0, 255, 136, 0.055); + --v5-green-soft: rgba(0, 255, 136, 0.09); + --v5-green-border: rgba(0, 255, 136, 0.24); + --v5-shadow-soft: none; + --v5-shadow-tight: none; + background: + radial-gradient(circle at 24% 0%, rgba(0, 255, 136, 0.038), transparent 34%), + linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 160px), + var(--v5-bg); +} + +.script-eval-v5-page { + background: + linear-gradient(90deg, rgba(255, 255, 255, 0.014), transparent 24%, transparent 76%, rgba(255, 255, 255, 0.012)), + transparent; +} + +.script-eval-v5-left, +.script-eval-v5-right { + background: var(--v5-panel); + box-shadow: none; +} + +.script-eval-v5-left { + border-right-color: var(--v5-line); +} + +.script-eval-v5-left-main .script-eval-v5-lp-section, +.script-eval-v5-left-main .script-eval-v5-lp-section.is-fill { + background: transparent; + border-bottom-color: var(--v5-line); + box-shadow: none; +} + +.script-eval-v5-lp-label { + color: #a7b3af; + letter-spacing: 0.02em; +} + +.script-eval-v5-lp-label::before { + background: var(--v5-green); + box-shadow: none; + opacity: 0.72; +} + +.script-eval-v5-upload-zone, +.script-eval-v5-info-empty, +.script-eval-v5-history-empty, +.script-eval-v5-info-item, +.script-eval-v5-history-item, +.script-eval-v5-loading, +.script-eval-v5-illustration-hit, +.script-eval-report__score-block, +.script-eval-report__chart-card, +.script-eval-report__path-card, +.script-eval-report__finding-group p { + border-color: var(--v5-line); + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.032), transparent 58%), + var(--v5-panel-2); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025); +} + +.script-eval-v5-upload-zone { + border-style: dashed; +} + +.script-eval-v5-upload-zone::after { + display: none; +} + +.script-eval-v5-upload-zone:hover, +.script-eval-v5-upload-zone:focus-visible, +.script-eval-v5.is-ready .script-eval-v5-upload-zone, +.script-eval-v5.is-complete .script-eval-v5-upload-zone { + border-color: var(--v5-green-border); + background: + radial-gradient(circle at 50% 0%, rgba(0, 255, 136, 0.075), transparent 58%), + var(--v5-panel-3); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.028); +} + +.script-eval-v5-upload-icon, +.script-eval-v5-upload-card-icon { + border-color: rgba(0, 255, 136, 0.18); + border-radius: 10px; + background: rgba(0, 255, 136, 0.09); + box-shadow: none; +} + +.script-eval-v5-upload-btn, +.script-eval-v5-eval-btn { + background: var(--v5-green); + color: #061014; + box-shadow: none; +} + +.script-eval-v5-upload-btn:hover, +.script-eval-v5-eval-btn:hover:not(:disabled) { + background: var(--v5-green-dim); + transform: none; + box-shadow: none; +} + +.script-eval-v5-upload-done, +.script-eval-v5-history-item.is-active, +.script-eval-v5-error, +.script-eval-report__chart-note, +.script-eval-report__grade { + box-shadow: none; +} + +.script-eval-v5-upload-done { + border-color: var(--v5-green-border); + background: + linear-gradient(180deg, rgba(0, 255, 136, 0.085), rgba(0, 255, 136, 0.035)), + var(--v5-panel-2); +} + +.script-eval-v5-history-item:hover { + border-color: rgba(255, 255, 255, 0.13); + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.045), transparent 58%), + var(--v5-panel-2); + transform: none; + box-shadow: none; +} + +.script-eval-v5-history-item.is-active { + border-color: var(--v5-green-border); + background: + linear-gradient(90deg, rgba(0, 255, 136, 0.08), rgba(0, 255, 136, 0.025)), + var(--v5-panel-2); +} + +.script-eval-v5-lp-bottom, +.script-eval-v5-right-topbar, +.script-eval-v5-statusbar { + background: rgba(21, 23, 25, 0.96); + border-color: var(--v5-line); + box-shadow: none; + backdrop-filter: none; +} + +.script-eval-v5-export-btn, +.script-eval-v5-action-btn, +.script-eval-v5-retry-btn { + border-color: var(--v5-line); + background: rgba(255, 255, 255, 0.035); + color: #aeb8b1; + box-shadow: none; +} + +.script-eval-v5-export-btn:hover:not(:disabled), +.script-eval-v5-action-btn:hover, +.script-eval-v5-retry-btn:hover { + border-color: var(--v5-green-border); + background: rgba(0, 255, 136, 0.07); + color: #d9fff0; +} + +.script-eval-v5-right-content:not(.is-report) { + background: + radial-gradient(circle at 50% 0%, rgba(0, 255, 136, 0.034), transparent 44%), + transparent; +} + +.script-eval-v5-illustration-hit:hover, +.script-eval-v5-illustration-hit:focus-visible { + background: + linear-gradient(180deg, rgba(0, 255, 136, 0.06), transparent 58%), + var(--v5-panel-2); + box-shadow: none; +} + +.script-eval-report { + --report-bg: #0d0d0f; + --report-panel: #151719; + --report-panel-2: #101214; + --report-row: #181b1d; + --report-border: rgba(255, 255, 255, 0.08); + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 180px), + var(--report-bg); +} + +.script-eval-report::before, +.script-eval-report::after { + opacity: 0.28; +} + +.script-eval-report__bar-fill { + box-shadow: none; +} + +.script-eval-v5.is-complete .script-eval-v5-status-dot, +.script-eval-v5.is-ready .script-eval-v5-status-dot { + box-shadow: none; +} diff --git a/src/styles/themes/dark-green.css b/src/styles/themes/dark-green.css index 78cbdf1..bcf25f0 100644 --- a/src/styles/themes/dark-green.css +++ b/src/styles/themes/dark-green.css @@ -6089,6 +6089,2312 @@ box-shadow: none; } +.web-shell[data-ui-theme="dark-green"] .profile-page__meta-item small { + overflow: hidden; + color: var(--fg-soft); + font-size: 12px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page__meta-item strong { + overflow: hidden; + color: var(--fg-body); + font-size: 17px; + line-height: 1.25; + text-overflow: ellipsis; + white-space: nowrap; +} + +@media (max-width: 900px) { + .web-shell[data-ui-theme="dark-green"] .profile-page__body { + grid-template-columns: 1fr; + width: min(100% - 36px, 760px); + margin-top: -54px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__sidebar { + align-items: stretch; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__main-tabs { + overflow-x: auto; + } +} + +@media (max-width: 560px) { + .web-shell[data-ui-theme="dark-green"] .profile-page__banner { + height: 152px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__banner .profile-page__banner-btn { + top: 10px; + right: 12px; + width: 36px; + min-width: 36px; + height: 36px; + padding: 0; + border-radius: 999px; + font-size: 0; + gap: 0; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__banner-btn .anticon { + width: 24px; + height: 24px; + background: transparent; + font-size: 14px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__body { + width: min(100% - 28px, 560px); + margin-top: -32px; + padding-bottom: 88px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__sidebar { + gap: 13px; + padding: 18px; + border-radius: var(--radius-md); + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__sidebar-head { + gap: 7px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__avatar-ring .profile-page__avatar, + .web-shell[data-ui-theme="dark-green"] .profile-page__avatar { + width: 76px; + height: 76px; + border-width: 3px; + font-size: 24px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__avatar-edit { + width: 76px; + height: 76px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__avatar-badge { + bottom: 6px; + width: 18px; + height: 18px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__username { + font-size: 20px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__bio { + min-height: 46px; + padding: 8px 10px; + font-size: 12px; + line-height: 1.45; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__bio-display { + min-height: 42px; + padding: 8px 10px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__bio-display span { + font-size: 12px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__counts { + padding: 9px 0; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__count strong { + font-size: 18px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__share-btn { + min-height: 36px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__main-tabs button { + flex: 0 0 auto; + padding: 0 14px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__upload-card--meta { + grid-template-columns: 1fr; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__list-grid { + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 8px; + max-height: min(312px, 46vh); + padding-right: 4px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__list-card { + min-height: 112px; + padding: 9px; + gap: 8px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__list-card-head { + align-items: flex-start; + flex-direction: column; + gap: 6px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__list-card-head strong { + width: 100%; + font-size: 12px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__list-card-head span { + max-width: 100%; + overflow: hidden; + padding: 3px 7px; + font-size: 10px; + text-overflow: ellipsis; + white-space: nowrap; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__list-card p { + min-height: 30px; + font-size: 11px; + line-height: 1.45; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__list-card-meta { + align-items: flex-start; + flex-direction: column; + gap: 4px; + padding-top: 8px; + font-size: 10px; + } +} + +/* Profile center: responsive workspace refinement. */ +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard { + background: + linear-gradient(180deg, rgba(var(--accent-rgb), 0.035), transparent 220px), + var(--dg-page); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__banner { + height: clamp(156px, 18vw, 214px); + background: + linear-gradient(135deg, rgba(var(--accent-rgb), 0.1), transparent 36%), + linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent), + var(--bg-surface); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__banner-overlay { + background: + linear-gradient(180deg, rgba(13, 13, 15, 0.12), rgba(13, 13, 15, 0.72)), + linear-gradient(90deg, rgba(13, 13, 15, 0.68), transparent 42%); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__body { + grid-template-columns: minmax(270px, 300px) minmax(0, 1fr); + gap: clamp(18px, 2.4vw, 30px); + width: min(1180px, calc(100% - 48px)); + min-height: auto; + margin-top: -58px; + padding-bottom: clamp(36px, 5vw, 64px); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__sidebar, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__account-card, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__main-tabs, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__section, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__review-item, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__empty-state, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__upload-card { + border-color: rgba(255, 255, 255, 0.075); + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.026), transparent), + rgba(21, 23, 25, 0.96); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__sidebar { + gap: 16px; + padding: clamp(16px, 2vw, 22px); + border-radius: var(--radius-md); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__avatar-ring::before { + opacity: 0.45; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__avatar-ring .profile-page__avatar, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__avatar { + width: 82px; + height: 82px; + border-width: 3px; + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__avatar-edit { + width: 82px; + height: 82px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__avatar-badge { + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__username { + font-size: clamp(19px, 1.7vw, 22px); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__bio-display, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__bio { + border-color: rgba(255, 255, 255, 0.07); + background: rgba(255, 255, 255, 0.024); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__bio-display span { + text-align: left; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__counts { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 8px; + padding: 0; + border: 0; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__count { + min-width: 0; + padding: 12px 8px; + border: 1px solid rgba(255, 255, 255, 0.065); + border-radius: var(--radius-sm); + background: rgba(255, 255, 255, 0.024); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__count strong { + font-size: clamp(18px, 1.5vw, 22px); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__account-card { + display: grid; + gap: 10px; + width: 100%; + padding: 11px; + border: 1px solid rgba(255, 255, 255, 0.075); + border-radius: var(--radius-sm); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__account-card .profile-page__list-tabs { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + width: 100%; + padding: 3px; + border-color: rgba(255, 255, 255, 0.06); + background: rgba(255, 255, 255, 0.02); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__account-card .profile-page__list-tabs button { + min-width: 0; + min-height: 30px; + padding: 0 8px; + overflow: hidden; + font-size: 12px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__account-card .profile-page__upload-card--meta { + grid-template-columns: 1fr; + gap: 8px; + padding: 0; + border: 0; + background: transparent; + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__account-card .profile-page__meta-item { + min-height: auto; + padding: 10px 11px; + background: rgba(255, 255, 255, 0.022); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__account-card .profile-page__meta-item strong { + font-size: 15px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__share-btn { + min-height: 42px; + border-radius: 10px; + font-size: 13px; + font-weight: 650; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__share-btn:hover { + transform: none; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__share-btn--primary { + background: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__share-btn--secondary { + border-color: rgba(255, 255, 255, 0.08); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__main { + gap: 16px; + min-width: 0; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__main-tabs { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 6px; + min-height: 50px; + margin: 0; + padding: 5px; + border-radius: var(--radius-md); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__main-tabs button { + min-width: 0; + min-height: 40px; + padding: 0 12px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__section { + display: grid; + gap: 14px; + padding: clamp(14px, 1.8vw, 18px); + border: 1px solid rgba(255, 255, 255, 0.075); + border-radius: var(--radius-md); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__section-label { + display: flex; + align-items: center; + gap: 8px; + color: var(--fg-body); + font-size: 15px; + font-weight: 700; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__section-label::before { + content: ""; + width: 7px; + height: 7px; + border-radius: 50%; + background: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-grid, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__review-list { + gap: 12px; + max-height: none; + overflow: visible; + padding-right: 0; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-grid { + grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__review-list { + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card { + min-height: 128px; + padding: 15px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card { + grid-template-columns: 92px minmax(0, 1fr); + align-items: stretch; + gap: 12px; + min-height: 116px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview { + position: relative; + display: flex; + align-items: center; + justify-content: center; + min-width: 0; + min-height: 88px; + overflow: hidden; + border: 1px solid rgba(255, 255, 255, 0.065); + border-radius: 10px; + background: + linear-gradient(135deg, rgba(var(--accent-rgb), 0.055), transparent 64%), + rgba(255, 255, 255, 0.024); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview:not(.has-media) { + border-color: rgba(255, 255, 255, 0.07); + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent), + rgba(255, 255, 255, 0.018); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview img, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview video { + width: 100%; + height: 100%; + min-height: 88px; + object-fit: cover; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-placeholder { + display: inline-flex; + align-items: center; + justify-content: center; + width: 38px; + height: 38px; + border: 1px solid rgba(var(--accent-rgb), 0.18); + border-radius: 12px; + background: rgba(var(--accent-rgb), 0.07); + color: rgba(var(--accent-rgb), 0.92); + font-size: 16px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-badge { + position: absolute; + top: 7px; + right: 7px; + max-width: calc(100% - 14px); + overflow: hidden; + padding: 3px 7px; + border-radius: 999px; + border: 1px solid rgba(var(--accent-rgb), 0.22); + background: rgba(8, 14, 12, 0.76); + color: var(--accent); + font-size: 10px; + font-weight: 700; + line-height: 1; + text-overflow: ellipsis; + white-space: nowrap; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-head { + gap: 8px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-head strong { + min-width: 0; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__delete-project { + flex: 0 0 26px; + width: 26px; + height: 26px; + margin: -3px -2px 0 0; + border: 1px solid rgba(255, 255, 255, 0.075); + border-radius: 8px; + background: rgba(255, 255, 255, 0.026); + color: var(--fg-soft); + opacity: 0.72; + transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast); +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__delete-project:hover, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__delete-project:focus-visible { + border-color: rgba(255, 118, 118, 0.28); + background: rgba(255, 118, 118, 0.08); + color: #ff9a9d; + opacity: 1; + outline: none; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-body { + display: grid; + align-content: start; + gap: 8px; + min-width: 0; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card:hover, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__review-item:hover { + border-color: rgba(var(--accent-rgb), 0.28); + transform: none; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__empty-state { + min-height: 240px; + padding: clamp(30px, 4vw, 46px) 24px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-bar { + margin-bottom: 0; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-tabs { + width: fit-content; + max-width: 100%; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-tabs button { + white-space: nowrap; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__upload-card--meta { + grid-template-columns: repeat(2, minmax(0, 1fr)); + padding: 12px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__meta-item { + min-height: 78px; +} + +@media (max-width: 960px) { + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__body { + grid-template-columns: 1fr; + width: min(760px, calc(100% - 36px)); + margin-top: -44px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__sidebar { + display: grid; + grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr); + align-items: start; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__sidebar-head { + grid-row: span 5; + align-items: flex-start; + text-align: left; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__counts { + align-self: stretch; + } +} + +@media (max-width: 640px) { + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__banner { + height: 140px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__body { + width: min(100% - 28px, 560px); + margin-top: -30px; + padding-bottom: 84px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__sidebar { + display: flex; + gap: 12px; + padding: 16px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__sidebar-head { + align-items: center; + text-align: center; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__avatar-ring .profile-page__avatar, + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__avatar { + width: 72px; + height: 72px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__avatar-edit { + width: 72px; + height: 72px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__counts { + gap: 6px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__count { + padding: 10px 6px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__main-tabs { + display: flex; + overflow-x: auto; + scrollbar-width: none; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__main-tabs::-webkit-scrollbar { + display: none; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__main-tabs button { + flex: 0 0 auto; + min-width: 88px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__section { + padding: 14px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-grid, + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__review-list { + grid-template-columns: 1fr; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card { + min-height: 118px; + padding: 13px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card { + grid-template-columns: 88px minmax(0, 1fr); + gap: 10px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview, + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview img, + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview video { + min-height: 82px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-head { + align-items: center; + flex-direction: row; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__upload-card--meta { + grid-template-columns: 1fr; + } +} + +@media (max-width: 420px) { + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__body { + width: min(100% - 20px, 420px); + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__counts { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__share-btn { + min-height: 40px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card { + grid-template-columns: 78px minmax(0, 1fr); + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview, + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview img, + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__list-card-preview video { + min-height: 76px; + } +} + +/* Profile center: lock media card rhythm for dense libraries. */ +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card { + grid-template-columns: 92px minmax(0, 1fr); + height: 126px; + min-height: 126px; + max-height: 126px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview { + width: 92px; + height: 96px; + min-height: 96px; + max-height: 96px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview img, +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview video { + height: 96px; + min-height: 96px; + max-height: 96px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-body { + display: grid; + grid-template-rows: 18px 36px 18px; + align-content: space-between; + gap: 8px; + height: 96px; + min-height: 96px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-head { + min-height: 18px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-head strong { + display: block; + width: 100%; + line-height: 1.25; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card p { + min-height: 36px; + max-height: 36px; + line-height: 1.5; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-meta { + align-self: end; + min-height: 18px; +} + +.web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-meta span:last-child { + color: var(--fg-soft); +} + +@media (max-width: 640px) { + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card { + grid-template-columns: 88px minmax(0, 1fr); + height: 112px; + min-height: 112px; + max-height: 112px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview { + width: 88px; + height: 86px; + min-height: 86px; + max-height: 86px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview img, + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview video { + height: 86px; + min-height: 86px; + max-height: 86px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-body { + grid-template-rows: 16px 32px 16px; + gap: 6px; + height: 86px; + min-height: 86px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card p { + min-height: 32px; + max-height: 32px; + line-height: 1.45; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-meta { + min-height: 16px; + } +} + +@media (max-width: 420px) { + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card { + grid-template-columns: 78px minmax(0, 1fr); + height: 104px; + min-height: 104px; + max-height: 104px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview { + width: 78px; + height: 78px; + min-height: 78px; + max-height: 78px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview img, + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-preview video { + height: 78px; + min-height: 78px; + max-height: 78px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page--dashboard .profile-page__media-card .profile-page__list-card-body { + height: 78px; + min-height: 78px; + } +} + +/* Ecommerce generation page: keep its carousel and composer independent from + the community carousel rules that share class names. */ +.web-shell[data-ui-theme="dark-green"] .ecommerce-landing-page { + display: block; + width: 100%; + height: auto; + min-height: 100%; + overflow: visible; + background: var(--dg-page); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-landing-scroll { + display: grid; + flex: none; + justify-items: center; + align-content: start; + gap: 28px; + width: min(100%, 1040px); + height: auto; + min-height: 0; + margin: 0 auto; + overflow: visible; + padding: 48px 28px 32px; + border: 0; + background: transparent; + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-generate-carousel { + width: min(100%, 1040px); + min-height: 310px; + border: 0; + border-radius: var(--radius-lg); + background: transparent; + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-generate-carousel .community-carousel__track { + align-items: center; + height: 100%; + padding: 0; + transition: transform 520ms cubic-bezier(0.32, 0.72, 0, 1); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-generate-carousel .community-carousel__slide { + flex: 0 0 calc(100% / 3); + min-width: 0; + min-height: 286px; + height: 286px; + aspect-ratio: auto; + padding: 28px 32px; + border-radius: var(--radius-lg); + opacity: 0.62; + transform: scale(0.92); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-generate-carousel .community-carousel__slide.is-center { + z-index: 2; + opacity: 1; + transform: scale(1.04); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-generate-carousel .community-carousel__full-image { + object-fit: cover; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-carousel-upload { + top: 16px; + right: 16px; + width: auto; + min-height: 36px; + padding: 0 12px; + border: 1px solid var(--border-weak); + border-radius: var(--radius-sm); + background: var(--bg-elevated); + color: var(--fg-body); + box-shadow: none; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 600; + letter-spacing: 0; + transform: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-carousel-upload:hover, +.web-shell[data-ui-theme="dark-green"] .ecommerce-carousel-upload:active { + border-color: rgba(var(--accent-rgb), 0.28); + background: var(--bg-hover); + color: var(--accent); + box-shadow: none; + transform: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-composer-shell { + width: min(100%, 720px); + max-width: 720px; + margin: 0 auto; + padding: 20px; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-reference-strip { + display: flex; + align-items: center; + gap: 8px; + width: 100%; + margin-bottom: 12px; + padding: 0 0 10px; + overflow-x: auto; + overflow-y: hidden; + border-bottom: 1px solid var(--border-weak); + scrollbar-width: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-reference-strip::-webkit-scrollbar { + display: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-reference-card { + display: inline-flex; + flex: 0 0 auto; + align-items: center; + justify-content: center; + gap: 6px; + min-width: 104px; + height: 44px; + padding: 0 12px; + border: 1px solid var(--border-weak); + border-radius: var(--radius-sm); + background: var(--bg-inset); + color: var(--fg-muted); + box-shadow: none; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 600; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-reference-card.has-image { + width: 54px; + min-width: 54px; + padding: 0; + overflow: hidden; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-reference-card img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-composer-toolbar { + flex-wrap: wrap; + gap: 8px; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-generation-trigger, +.web-shell[data-ui-theme="dark-green"] .ecommerce-composer-tool--ratio { + width: auto; + min-width: 0; + padding: 0 10px; + gap: 6px; +} + +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu { + position: relative; + z-index: 20; +} + +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu__panel { + position: absolute; + left: 0; + top: auto; + bottom: calc(100% + 10px); + z-index: 90; + display: grid; + width: max-content; + min-width: 168px; + gap: 4px; + padding: 6px; + border: 1px solid var(--border-subtle); + border-radius: var(--radius-md); + background: var(--bg-panel); + box-shadow: var(--shadow-tight); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-generation-menu__panel { + min-width: 176px; +} + +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu__panel button { + display: flex; + align-items: center; + justify-content: flex-start; + gap: 10px; + width: 100%; + min-height: 38px; + padding: 0 10px; + border: 1px solid transparent; + border-radius: var(--radius-sm); + background: transparent; + color: var(--fg-body); + box-shadow: none; + font-family: var(--font-sans); + font-size: 13px; + font-weight: 600; + line-height: 1; + text-align: left; + text-shadow: none; + cursor: pointer; +} + +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu__panel button .anticon { + color: var(--fg-muted); + font-size: 14px; +} + +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu__panel button span { + color: inherit; +} + +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu__panel button:hover { + border-color: var(--border-default); + background: var(--bg-hover); + color: var(--fg-body); + transform: none; +} + +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu__panel button.is-active { + border-color: rgba(var(--accent-rgb), 0.36); + background: rgba(var(--accent-rgb), 0.12); + color: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu__panel button:hover .anticon, +.web-shell[data-ui-theme="dark-green"] .workbench-generation-menu__panel button.is-active .anticon { + color: currentColor; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-composer-footer { + flex-wrap: wrap; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences { + z-index: 120; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel { + display: grid; + align-content: start; + gap: 12px; + max-height: calc(100vh - 24px); + overflow: auto; + padding: 12px; + border: 1px solid var(--border-subtle); + border-radius: var(--radius-md); + background: var(--bg-panel); + color: var(--fg-body); + box-shadow: var(--shadow-tight); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-preferences__section-label { + margin-bottom: -4px; + color: var(--fg-muted); + font-family: var(--font-sans); + font-size: 12px; + font-weight: 600; + line-height: 1.2; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-ratio-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 6px; + padding: 6px; + border: 1px solid var(--border-weak); + border-radius: var(--radius-sm); + background: var(--bg-inset); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-ratio-option { + display: grid; + justify-items: center; + align-content: center; + gap: 5px; + min-height: 44px; + padding: 6px 4px; + border: 1px solid transparent; + border-radius: var(--radius-xs); + background: transparent; + color: var(--fg-muted); + box-shadow: none; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 600; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-ratio-option:hover { + border-color: var(--border-default); + background: var(--bg-hover); + color: var(--fg-body); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-ratio-option.is-active { + border-color: rgba(var(--accent-rgb), 0.36); + background: rgba(var(--accent-rgb), 0.12); + color: var(--accent); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-ratio-option__icon { + border-width: 1.5px; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-resolution-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 6px; + padding: 6px; + border: 1px solid var(--border-weak); + border-radius: var(--radius-sm); + background: var(--bg-inset); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-resolution-grid button { + min-height: 38px; + border: 1px solid transparent; + border-radius: var(--radius-xs); + background: transparent; + color: var(--fg-body); + box-shadow: none; + font-family: var(--font-sans); + font-size: 13px; + font-weight: 600; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-resolution-grid button:hover { + border-color: var(--border-default); + background: var(--bg-hover); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-resolution-grid button.is-active { + border-color: rgba(var(--accent-rgb), 0.36); + background: rgba(var(--accent-rgb), 0.12); + color: var(--accent); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-size-grid { + grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) auto; + gap: 8px; + color: var(--fg-muted); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-size-grid label { + height: 38px; + gap: 6px; + padding: 0 10px; + border: 1px solid var(--border-weak); + border-radius: var(--radius-xs); + background: var(--bg-inset); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-size-grid label span, +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-size-grid > span, +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-size-grid > .anticon { + color: var(--fg-muted); +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-size-grid input { + color: var(--fg-body); + font-family: var(--font-sans); + font-size: 13px; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-preferences__panel .workbench-preferences__resize { + display: none; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-result-panel, +.web-shell[data-ui-theme="dark-green"] .ecommerce-community-content { + width: min(100%, 1040px); + margin: 0 auto; + padding: 0 28px; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-result-panel { + margin-top: 8px; + margin-bottom: 32px; +} + +.web-shell[data-ui-theme="dark-green"] .ecommerce-community-content { + padding-bottom: 64px; +} + +/* Canvas full dark-green legibility pass. Legacy canvas rules still contain pixel + colors, so this late theme block owns every visible canvas control. */ +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas { + color: var(--fg-body); + font-family: var(--font-sans); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + button, + input, + textarea, + span, + strong, + small, + kbd, + em +) { + text-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__title, + .studio-canvas-image-node__title, + .studio-canvas-video-node__title +) { + color: var(--fg-muted); + text-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__card, + .studio-canvas-image-node__card, + .studio-canvas-video-node__preview, + .studio-canvas-text-composer, + .studio-canvas-image-composer, + .studio-canvas-video-composer, + .studio-canvas-save-asset__modal, + .studio-canvas-save-asset__cover-library +) { + border: 1px solid var(--border-weak); + border-radius: var(--radius-md); + background: var(--bg-elevated); + background-image: none; + color: var(--fg-body); + box-shadow: var(--shadow-tight); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node.is-selected .studio-canvas-text-node__card, + .studio-canvas-image-node.is-selected .studio-canvas-image-node__card, + .studio-canvas-video-node.is-selected .studio-canvas-video-node__preview +) { + border-color: var(--accent); + box-shadow: 0 0 0 2px rgba(var(--accent-rgb), 0.34); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__inline-input, + .studio-canvas-text-node__content, + .studio-canvas-text-composer textarea, + .studio-canvas-image-composer textarea, + .studio-canvas-video-composer textarea, + .studio-canvas-save-asset__form input +) { + background: transparent; + color: var(--fg-body); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__inline-input::placeholder, + .studio-canvas-text-composer textarea::placeholder, + .studio-canvas-image-composer textarea::placeholder, + .studio-canvas-video-composer textarea::placeholder, + .studio-canvas-save-asset__form input::placeholder +) { + color: var(--fg-soft); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__suggestions > span, + .studio-canvas-image-node__placeholder, + .studio-canvas-image-node__placeholder-actions span, + .studio-canvas-video-node__play, + .studio-canvas-text-composer__footer span, + .studio-canvas-image-composer__footer span, + .studio-canvas-video-composer__footer span, + .studio-canvas-save-asset__label, + .studio-canvas-save-asset__form label > span, + .studio-canvas-save-asset__existing-title, + .studio-canvas-save-asset__empty +) { + color: var(--fg-muted); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-image-node__placeholder-icon { + color: var(--fg-soft); + opacity: 0.72; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__suggestions button, + .studio-canvas-image-node__placeholder-actions button, + .studio-canvas-text-composer__footer button, + .studio-canvas-image-composer__footer button, + .studio-canvas-image-node__upload, + .studio-canvas-image-composer__tools button, + .studio-canvas-video-composer__tabs button, + .studio-canvas-video-composer__tools button, + .studio-canvas-video-composer__footer button, + .studio-canvas-save-asset__head button, + .studio-canvas-save-asset__placeholder button, + .studio-canvas-save-asset__cover-library button, + .studio-canvas-save-asset__existing-grid button, + .react-flow__controls button +) { + border-color: var(--border-weak); + border-radius: var(--radius-sm); + background: transparent; + color: var(--fg-body); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__suggestions button:hover, + .studio-canvas-image-node__placeholder-actions button:hover, + .studio-canvas-text-composer__footer button:hover, + .studio-canvas-image-composer__footer button:hover, + .studio-canvas-image-node__upload:hover, + .studio-canvas-image-composer__tools button:hover, + .studio-canvas-video-composer__tabs button:hover, + .studio-canvas-video-composer__tools button:hover, + .studio-canvas-video-composer__footer button:hover, + .studio-canvas-save-asset__head button:hover, + .studio-canvas-save-asset__placeholder button:hover, + .studio-canvas-save-asset__cover-library button:hover, + .studio-canvas-save-asset__existing-grid button:hover +) { + border-color: rgba(var(--accent-rgb), 0.28); + background: var(--bg-hover); + color: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-video-composer__tabs button.is-active, + .studio-canvas-video-composer__tools button.is-active, + .studio-canvas-save-asset__head button.is-active, + .studio-canvas-save-asset__existing-grid button.is-selected +) { + border-color: rgba(var(--accent-rgb), 0.32); + background: var(--accent-muted); + color: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-composer__model, + .studio-canvas-text-composer__send, + .studio-canvas-image-node__upload, + .studio-canvas-image-composer__tools button, + .studio-canvas-video-composer__tabs button, + .studio-canvas-video-composer__tools button, + .studio-canvas-video-composer__footer button, + .studio-canvas-save-asset__placeholder button, + .studio-canvas-save-asset__create, + .react-flow__controls button +) { + border: 1px solid var(--border-weak) !important; + border-radius: var(--radius-sm) !important; + background: var(--bg-inset) !important; + color: var(--fg-body) !important; + box-shadow: none !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-composer__send, + .studio-canvas-video-composer__footer button, + .studio-canvas-save-asset__create +) { + border-color: var(--accent) !important; + background: var(--accent) !important; + color: var(--dg-button-text) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-image-composer__expand { + background: transparent !important; + color: var(--fg-muted) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-text-composer__model-mark, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-text-composer__model-menu-icon { + border: 1px solid rgba(var(--accent-rgb), 0.24); + border-radius: var(--radius-xs); + background: var(--accent-muted); + color: var(--accent); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-composer-chip .canvas-select-chip__trigger, + .canvas-select-chip__trigger +) { + border: 1px solid var(--border-weak) !important; + border-radius: var(--radius-sm) !important; + background: var(--bg-inset) !important; + color: var(--fg-body) !important; + box-shadow: none !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-composer-chip .canvas-select-chip__dropdown, + .canvas-select-chip__dropdown +) { + border: 1px solid var(--border-weak); + border-radius: var(--radius-md); + background: var(--bg-elevated); + background-image: none; + color: var(--fg-body); + box-shadow: var(--shadow-tight); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-composer-chip .canvas-select-chip__option, + .canvas-select-chip__option +) { + border: 0 !important; + border-radius: var(--radius-sm) !important; + background: transparent !important; + color: var(--fg-muted) !important; + box-shadow: none !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-composer-chip .canvas-select-chip__option:hover, + .studio-canvas-composer-chip .canvas-select-chip__option.is-active, + .canvas-select-chip__option:hover, + .canvas-select-chip__option.is-active +) { + background: var(--accent-muted) !important; + color: var(--accent) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .canvas-select-chip__option-dot { + background: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__glyph span, + .studio-canvas-text-node__connector span, + .studio-canvas-image-node__connector span, + .studio-canvas-video-node__connector span +) { + border: 1px solid var(--border-default); + border-radius: var(--radius-xs); + background: var(--bg-inset); + color: var(--fg-body); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-text-node__connector.is-linking span, + .studio-canvas-image-node__connector.is-linking span, + .studio-canvas-video-node__connector.is-linking span +) { + border-color: var(--accent); + background: var(--accent); + color: var(--dg-button-text); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-node-links path { + stroke: rgba(var(--accent-rgb), 0.5); + filter: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-node-links circle { + fill: var(--accent); + stroke: var(--bg-elevated); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-selection-box { + border: 1px dashed var(--accent); + background: rgba(var(--accent-rgb), 0.12); + background-image: none; + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-node-resize-handle { + border: 1px solid var(--accent); + border-radius: var(--radius-xs); + background: var(--accent); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-node-resize-handle::before, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-node-resize-handle::after { + background: var(--dg-button-text); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-save-asset { + background: rgba(0, 0, 0, 0.74); + backdrop-filter: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-save-asset__placeholder, + .studio-canvas-save-asset__select, + .studio-canvas-save-asset__existing-grid button +) { + border: 1px solid var(--border-weak); + border-radius: var(--radius-md); + background: var(--bg-inset); + color: var(--fg-body); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-save-asset__existing-grid span { + color: var(--fg-muted); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-text-node, + .studio-canvas-image-node, + .studio-canvas-video-node, + .studio-canvas-text-composer, + .studio-canvas-image-composer, + .studio-canvas-video-composer, + .studio-canvas-context-menu, + .studio-canvas-node-context-menu, + .studio-canvas-add-node-menu, + .studio-canvas-save-asset, + .canvas-select-chip +) :is( + button, + input, + textarea, + label, + p, + span, + strong, + small, + kbd, + em, + .anticon, + svg +) { + color: inherit; + text-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-text-node__card, + .studio-canvas-image-node__card, + .studio-canvas-video-node__preview, + .studio-canvas-text-composer, + .studio-canvas-image-composer, + .studio-canvas-video-composer, + .studio-canvas-context-menu, + .studio-canvas-node-context-menu, + .studio-canvas-add-node-menu, + .studio-canvas-save-asset__modal, + .studio-canvas-save-asset__cover-menu, + .studio-canvas-save-asset__select-menu, + .canvas-select-chip__dropdown +) { + color: var(--fg-body) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-text-node__title, + .studio-canvas-image-node__title, + .studio-canvas-video-node__title, + .studio-canvas-text-node__suggestions > span, + .studio-canvas-image-node__placeholder, + .studio-canvas-image-node__placeholder-actions span, + .studio-canvas-video-node__play, + .studio-canvas-text-composer__footer span, + .studio-canvas-image-composer__footer span, + .studio-canvas-video-composer__footer span, + .studio-canvas-text-composer__model-menu-copy small, + .studio-canvas-text-composer__model-menu em, + .studio-canvas-node-context-menu kbd, + .studio-canvas-node-context-menu__hint, + .studio-canvas-add-node-menu__head small, + .studio-canvas-add-node-menu__title, + .studio-canvas-save-asset__label, + .studio-canvas-save-asset__form label > span, + .studio-canvas-save-asset__existing-title, + .studio-canvas-save-asset__existing-grid span, + .studio-canvas-save-asset__empty, + .canvas-select-chip__value, + .canvas-select-chip__arrow +) { + color: var(--fg-muted) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-text-node__suggestions button, + .studio-canvas-image-node__placeholder-actions button, + .studio-canvas-text-composer__footer button, + .studio-canvas-image-composer__footer button, + .studio-canvas-video-composer__tabs button, + .studio-canvas-video-composer__tools button, + .studio-canvas-video-composer__footer button, + .studio-canvas-image-composer__tools button, + .studio-canvas-context-menu button, + .studio-canvas-node-context-menu button, + .studio-canvas-add-node-menu button, + .studio-canvas-save-asset__head button, + .studio-canvas-save-asset__cover-menu button, + .studio-canvas-save-asset__cover-library button, + .studio-canvas-save-asset__select-menu button, + .studio-canvas-save-asset__existing-grid button, + .canvas-select-chip__trigger, + .canvas-select-chip__option, + .react-flow__controls button +) { + color: var(--fg-body) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-text-composer__send, + .studio-canvas-image-composer__footer .studio-canvas-text-composer__send, + .studio-canvas-video-composer__footer > button:last-child, + .studio-canvas-save-asset__create +) { + color: var(--dg-button-text) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-add-node-menu__icon, + .studio-canvas-add-node-menu__badge, + .studio-canvas-text-composer__model-mark, + .studio-canvas-text-composer__model-menu-icon, + .canvas-select-chip__option-dot +) { + color: var(--accent) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas .canvas-select-chip__option > span:not(.canvas-select-chip__option-dot) { + color: currentColor !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-text-composer__state, + .studio-canvas-image-composer__state, + .studio-canvas-video-composer__state +) { + color: var(--fg-muted) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-text-composer__state.is-success, + .studio-canvas-image-composer__state.is-success, + .studio-canvas-video-composer__state.is-success +) { + color: #6fdc96 !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-text-composer__state.is-error, + .studio-canvas-image-composer__state.is-error, + .studio-canvas-video-composer__state.is-error +) { + color: #ff8f8f !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-add-node-menu button:hover:not(:disabled), + .studio-canvas-text-composer__model-menu button:hover, + .studio-canvas-text-composer__model-menu button.is-selected, + .canvas-select-chip__option:hover, + .canvas-select-chip__option.is-active +) { + color: var(--accent) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .canvas-select-chip__option:hover, + .canvas-select-chip__option.is-active +) > span:not(.canvas-select-chip__option-dot) { + color: var(--accent) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas :is( + .studio-canvas-add-node-menu button:hover:not(:disabled) .studio-canvas-add-node-menu__icon, + .studio-canvas-text-node__connector.is-linking span, + .studio-canvas-image-node__connector.is-linking span, + .studio-canvas-video-node__connector.is-linking span +) { + color: var(--dg-button-text) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas .studio-canvas-node-context-menu__hint { + border: 1px solid var(--border-default) !important; + border-radius: var(--radius-xs) !important; + background: var(--bg-inset) !important; + color: var(--fg-muted) !important; + box-shadow: none !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page [hidden] { + display: none !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer { + display: flex; + flex-direction: column; + gap: 10px; + padding: 12px; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__mode-tabs, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__feature-tools, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__settings { + position: static; + width: 100%; + margin: 0 !important; + padding: 0 !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__mode-tabs { + display: grid !important; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 6px; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__feature-tools { + display: flex !important; + flex-wrap: wrap; + gap: 6px; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__mode-tabs button, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__feature-tools button { + display: inline-flex !important; + align-items: center; + justify-content: center; + min-width: 0 !important; + min-height: 34px !important; + height: 34px !important; + padding: 0 10px !important; + border-radius: var(--radius-sm) !important; + font-size: 12px !important; + line-height: 1; + white-space: nowrap; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__mode-tabs button:hover, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__feature-tools button:hover { + border-color: rgba(var(--accent-rgb), 0.28) !important; + background: var(--bg-hover) !important; + color: var(--accent) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__mode-tabs button.is-active, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__feature-tools button.is-active { + border-color: rgba(var(--accent-rgb), 0.36) !important; + background: var(--accent-muted) !important; + color: var(--accent) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer textarea { + height: 84px; + min-height: 84px; + padding: 12px 12px 4px; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__settings { + display: grid !important; + grid-template-columns: minmax(150px, 1fr) minmax(76px, 0.5fr) minmax(76px, 0.5fr) minmax(58px, 0.35fr) auto auto; + align-items: center; + gap: 8px; + min-height: 38px; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__settings .studio-canvas-composer-chip { + min-width: 0; + width: 100%; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__settings .canvas-select-chip__trigger { + width: 100% !important; + height: 36px !important; + min-height: 36px !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__settings > span { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 42px; + height: 36px; + padding: 0 8px; + border: 1px solid var(--border-weak); + border-radius: var(--radius-sm); + background: var(--bg-inset); + color: var(--fg-muted) !important; + white-space: nowrap; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-video-composer__settings > button { + width: 38px !important; + min-width: 38px !important; + height: 38px !important; + margin-left: 0 !important; +} + +@media (max-width: 900px) { + .web-shell[data-ui-theme="dark-green"] .auth-page { + grid-template-columns: 1fr; + grid-template-rows: 180px minmax(0, 1fr); + overflow-y: auto; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__form-panel { + align-items: flex-start; + padding: 22px 20px 36px; + border-top: 1px solid var(--border-weak); + border-left: 0; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__video-overlay { + align-items: flex-start; + justify-content: center; + padding: 22px 24px; + text-align: left; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__showcase-content { + gap: 9px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__brand { + font-size: 34px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__tagline { + font-size: 15px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__showcase-stats { + display: none; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__form-inner { + max-width: 520px; + margin: 0 auto; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__body { + grid-template-columns: 1fr; + gap: 20px; + } +} + +@media (max-width: 560px) { + .web-shell[data-ui-theme="dark-green"] .auth-page { + grid-template-rows: 132px minmax(0, 1fr); + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__video-overlay { + padding: 16px 18px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__brand-row { + align-items: flex-start; + flex-direction: column; + gap: 6px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__brand { + font-size: 28px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__tagline { + font-size: 13px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__features { + gap: 6px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__features span { + padding: 4px 8px; + font-size: 11px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__form-panel { + padding: 14px 14px 28px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__form-inner { + gap: 16px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__logo { + width: 46px; + height: 46px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__title { + font-size: 21px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__auth-tabs { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 6px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__auth-tabs button { + min-height: 38px; + padding: 0 4px; + font-size: 10px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__auth-tabs button .anticon { + font-size: 13px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__field input, + .web-shell[data-ui-theme="dark-green"] .auth-page__sms-btn { + min-height: 42px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__sms-row { + gap: 8px; + } + + .web-shell[data-ui-theme="dark-green"] .auth-page__sms-btn { + padding: 0 10px; + font-size: 12px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__body { + width: min(100% - 28px, 1200px); + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__main-tabs { + overflow-x: auto; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__main-tabs button { + flex: 0 0 auto; + padding: 10px 14px; + } + + .web-shell[data-ui-theme="dark-green"] .profile-page__list-bar, + .web-shell[data-ui-theme="dark-green"] .profile-page__upload-card { + align-items: flex-start; + flex-direction: column; + } +} + +@media (max-width: 720px) { + .web-shell[data-ui-theme="dark-green"] .web-topbar { + flex: 0 0 auto; + min-height: 56px; + padding: 8px 12px; + } + + .web-shell[data-ui-theme="dark-green"] .web-topbar__actions { + gap: 6px; + } + + .web-shell[data-ui-theme="dark-green"] :is(.creator-button, .member-button) { + height: 32px; + padding: 0 10px; + } + + .web-shell[data-ui-theme="dark-green"] .community-page .workspace-page-shell__content { + width: min(100% - 32px, 900px); + padding: 24px 0 40px; + } + + .web-shell[data-ui-theme="dark-green"] .community-filter-search { + width: 100%; + margin-left: 0; + } + + .web-shell[data-ui-theme="dark-green"] .ai-workbench-page.is-active .wb-composer { + padding: 0 12px 12px; + } + + .web-shell[data-ui-theme="dark-green"] .wb-composer__content { + border-radius: 22px; + padding: 14px; + } +} + +.web-shell[data-ui-theme="dark-green"] .omni-commerce-page { + --commerce-ink: #f3f5f2; + --commerce-muted: #aeb8b1; + --commerce-line: rgba(255, 255, 255, 0.12); + --commerce-panel: #151719; + --commerce-soft: #101214; + background: #0d0d0f; +} + +.web-shell[data-ui-theme="dark-green"] .omni-commerce-panel, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-band { + background: var(--commerce-panel); + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .omni-commerce-ghost-action, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-text-button, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-segmented button, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-ratio-grid button, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-filter button, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-flow-head button, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-template em, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-template, +.web-shell[data-ui-theme="dark-green"] .omni-commerce-project { + background: #181b1d; +} + +.web-shell[data-ui-theme="dark-green"] .omni-commerce-flow-head { + background: #151719; + box-shadow: none; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-image-composer__style-button.has-style { + border-color: rgba(var(--accent-rgb), 0.42) !important; + background: rgba(var(--accent-rgb), 0.1) !important; + color: var(--fg-body) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-style-picker__panel { + border-color: var(--border-weak); + background: var(--bg-elevated); + color: var(--fg-body); + box-shadow: var(--shadow-strong); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-style-picker__tabs, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-style-picker__search, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-style-picker__filters span { + background: var(--bg-inset); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page :is( + .studio-canvas-style-picker__tabs button.is-active, + .studio-canvas-style-picker__categories button.is-active +) { + background: var(--accent-muted); + color: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-style-picker__community-link { + background: var(--accent-muted); + color: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-image-focus-toolbar { + border-color: var(--border-weak); + background: rgba(8, 10, 9, 0.95); + color: var(--fg-body); + box-shadow: var(--shadow-tight); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-image-focus-toolbar__ratios button:hover, +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-image-focus-toolbar__ratios button.is-active { + background: var(--accent-muted); + color: var(--accent); +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-image-focus-toolbar__confirm { + background: var(--accent) !important; + color: var(--dg-button-text) !important; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas .studio-canvas-generate-button { + border-color: var(--border-weak) !important; + background: rgba(255, 255, 255, 0.05) !important; + color: var(--fg-soft) !important; + box-shadow: none !important; + cursor: not-allowed !important; + opacity: 0.54; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas .studio-canvas-generate-button.is-ready:not(:disabled) { + border-color: rgba(var(--accent-rgb), 0.62) !important; + background: var(--accent) !important; + color: var(--dg-button-text) !important; + box-shadow: + 0 0 0 1px rgba(var(--accent-rgb), 0.16), + 0 0 20px rgba(var(--accent-rgb), 0.28) !important; + cursor: pointer !important; + opacity: 1; +} + +.web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas .studio-canvas-generate-button[aria-busy="true"] { + border-color: rgba(var(--accent-rgb), 0.46) !important; + background: var(--accent) !important; + color: var(--dg-button-text) !important; + cursor: wait !important; + opacity: 1; +} + +/* ---- Canvas @-mention panel ---- */ + +.studio-canvas-text-composer__input-wrap { + position: relative; +} + +.studio-canvas-mention-panel { + position: absolute; + bottom: 100%; + left: 0; + right: 0; + z-index: 100; + max-height: 200px; + overflow-y: auto; + margin-bottom: 4px; + border: 1px solid var(--border-weak); + border-radius: var(--radius-md); + background: var(--bg-elevated); + box-shadow: var(--shadow-lg); +} + +.studio-canvas-mention-item { + display: flex; + align-items: center; + gap: 8px; + width: 100%; + padding: 8px 12px; + border: none; + background: transparent; + color: var(--fg-body); + cursor: pointer; + text-align: left; +} + +.studio-canvas-mention-item:hover, +.studio-canvas-mention-item.is-active { + background: var(--accent-soft); +} + +.studio-canvas-mention-thumb { + flex-shrink: 0; + width: 28px; + height: 28px; + display: grid; + place-items: center; + border-radius: 4px; + overflow: hidden; + background: var(--bg-surface); + font-size: 14px; +} + +.studio-canvas-mention-thumb img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.studio-canvas-mention-label { + flex: 1; + font-size: 13px; + font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.studio-canvas-mention-token { + font-size: 11px; + font-weight: 600; + padding: 2px 8px; + border-radius: 999px; + background: var(--accent-soft); + color: var(--accent); +} + +/* Responsive floating navigation: prevent squeeze/warp on narrow workspaces. */ +.web-shell[data-ui-theme="dark-green"] .floating-nav { + flex-shrink: 0; + max-height: calc(100svh - 96px); + overflow-x: visible; + overflow-y: auto; + scrollbar-width: none; +} + +.web-shell[data-ui-theme="dark-green"] .floating-nav::-webkit-scrollbar { + display: none; +} + +.web-shell[data-ui-theme="dark-green"] .floating-nav__item, +.web-shell[data-ui-theme="dark-green"] .floating-nav__button { + flex: 0 0 auto; +} + +@media (min-width: 901px) { + .web-shell[data-ui-theme="dark-green"] .floating-nav { + top: 50%; + right: auto; + bottom: auto; + left: 16px; + display: flex; + flex-direction: column; + width: 52px; + transform: translateY(-50%); + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__item, + .web-shell[data-ui-theme="dark-green"] .floating-nav__button { + width: 40px; + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__button { + height: 40px; + } +} + +@media (max-width: 900px) { + .web-shell[data-ui-theme="dark-green"] .floating-nav { + top: calc(56px + env(safe-area-inset-top, 0px)); + right: 12px; + bottom: auto; + left: 12px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; + width: auto; + max-width: calc(100vw - 24px); + max-height: none; + min-height: 58px; + gap: 6px; + padding: 8px; + border-radius: 0 0 18px 18px; + transform: none; + overflow-x: auto; + overflow-y: visible; + overscroll-behavior-x: contain; + background: rgba(14, 14, 16, 0.94); + box-shadow: 0 16px 42px rgba(0, 0, 0, 0.28); + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav.is-expanded, + .web-shell[data-ui-theme="dark-green"] .floating-nav.is-browse { + width: auto; + max-width: calc(100vw - 24px); + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__item { + width: 42px; + min-width: 42px; + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__button { + width: 42px; + height: 42px; + min-width: 42px; + border-radius: 13px; + font-size: 16px; + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__label, + .web-shell[data-ui-theme="dark-green"] .floating-nav__button.is-active .floating-nav__label { + display: none; + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__button.has-divider { + margin-top: 0; + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__button.has-divider::before { + display: none; + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__submenu { + top: calc(100% + 8px); + bottom: auto; + left: 50%; + transform: translate(-50%, -4px); + } + + .web-shell[data-ui-theme="dark-green"] .floating-nav__item.has-children.is-submenu-open .floating-nav__submenu { + transform: translate(-50%, 0); + } + + .web-shell[data-ui-theme="dark-green"][data-view="workbench"] .ai-workbench-page.is-active .ai-chat-messages-surface { + padding-top: 86px; + } +} + .web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-node-resize-handle::before, .web-shell[data-ui-theme="dark-green"] .canvas-page .studio-canvas-node-resize-handle::after { background: var(--dg-button-text); @@ -6491,6 +8797,120 @@ } } +/* Ecommerce final polish: keep selected option states refined in the dark-green theme. */ +.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page[data-tool="clone"] :is( + .clone-ai-module-list button, + .clone-ai-model-scene-grid button, + .clone-ai-replicate-levels button, + .clone-ai-video-options button +), +.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is( + .product-set-structure-grid button, + .product-detail-module-grid button, + .product-clone-scene-grid button, + .product-clone-ratio-row button +) { + position: relative; + overflow: hidden; +} + +.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page[data-tool="clone"] :is( + .clone-ai-module-list button.is-active, + .clone-ai-model-scene-grid button.is-active, + .clone-ai-replicate-levels button.is-active, + .clone-ai-video-options button.is-active +), +.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is( + .product-set-structure-grid button.is-active, + .product-detail-module-grid button.is-active, + .product-clone-scene-grid button.is-active, + .product-clone-ratio-row button.is-active +) { + border-color: rgba(var(--accent-rgb), 0.48); + background: + linear-gradient(90deg, rgba(var(--accent-rgb), 0.12), rgba(var(--accent-rgb), 0.035)), + rgba(255, 255, 255, 0.032); + color: var(--fg-body); +} + +.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page[data-tool="clone"] :is( + .clone-ai-module-list button.is-active, + .clone-ai-model-scene-grid button.is-active, + .clone-ai-replicate-levels button.is-active, + .clone-ai-video-options button.is-active +)::before, +.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is( + .product-set-structure-grid button.is-active, + .product-detail-module-grid button.is-active, + .product-clone-scene-grid button.is-active, + .product-clone-ratio-row button.is-active +)::before { + position: absolute; + inset: 8px auto 8px 0; + width: 3px; + border-radius: 999px; + background: var(--accent); + content: ""; +} + +.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page[data-tool="clone"] .clone-ai-module-list button.is-active span, +.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is( + .product-set-structure-grid button.is-active em, + .product-detail-module-grid button.is-active span +) { + color: rgba(232, 240, 235, 0.62); +} + +/* Canvas SaaS polish: refined production-tool surfaces without changing canvas behavior. */ +.web-shell[data-ui-theme="dark-green"][data-view="canvas"] .canvas-page .studio-canvas { + background-image: + radial-gradient(circle at 18% 8%, rgba(var(--accent-rgb), 0.055), transparent 30%), + radial-gradient(circle at 72% 88%, rgba(255, 255, 255, 0.035), transparent 28%), + radial-gradient( + circle, + rgba(148, 163, 184, 0.34) 0 var(--canvas-bg-dot, 1.35px), + transparent calc(var(--canvas-bg-dot, 1.35px) + 0.55px) + ); + background-color: var(--dg-page); + background-position: + center, + center, + var(--canvas-bg-x, 0px) var(--canvas-bg-y, 0px); + background-size: + auto, + auto, + var(--canvas-bg-size, 24px) var(--canvas-bg-size, 24px); + color: var(--fg-body); +} + +.web-shell[data-ui-theme="dark-green"][data-view="canvas"] .studio-canvas-project-bar, +.web-shell[data-ui-theme="dark-green"][data-view="canvas"] .studio-canvas-zoom-controls { + border-color: rgba(255, 255, 255, 0.105); + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018)), + rgba(17, 20, 21, 0.88); + box-shadow: + 0 16px 42px rgba(0, 0, 0, 0.26), + inset 0 1px 0 rgba(255, 255, 255, 0.04); + backdrop-filter: blur(16px); +} + +.web-shell[data-ui-theme="dark-green"][data-view="canvas"] .studio-canvas-project-bar { + min-height: 42px; + border-radius: 13px; +} + +.web-shell[data-ui-theme="dark-green"][data-view="canvas"] .studio-canvas-project-bar__name { + color: var(--fg-strong); + font-size: 13px; + font-weight: 820; +} + +.web-shell[data-ui-theme="dark-green"][data-view="canvas"] .studio-canvas-project-bar__status, +.web-shell[data-ui-theme="dark-green"][data-view="canvas"] .studio-canvas-project-bar__autosave-status { + color: var(--fg-muted); +} + .web-shell[data-ui-theme="dark-green"] .omni-commerce-page { --commerce-ink: #f3f5f2; --commerce-muted: #aeb8b1;