tokenFactory/web/src/index.css

2061 lines
49 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ==================== TokenDance Design System (shadcn/ui CSS Variables) ==================== */
/* 这些变量叠加在 Semi Design 之上,供新的 shadcn 风格组件使用 */
:root {
/* shadcn/ui 基础色板 — Slate 中性色调 (220° hue) */
--background: 0 0% 100%;
--foreground: 240 10% 3.9%;
--card: 0 0% 100%;
--card-foreground: 240 10% 3.9%;
--popover: 0 0% 100%;
--popover-foreground: 240 10% 3.9%;
--primary: 0 0% 9%;
--primary-foreground: 0 0% 98%;
--secondary: 220 5% 96%;
--secondary-foreground: 220 6% 10%;
--muted: 220 5% 96%;
--muted-foreground: 220 4% 56%;
--accent: 220 5% 96%;
--accent-foreground: 220 6% 10%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 220 13% 91%;
--input: 220 13% 91%;
--ring: 0 0% 9%;
--radius: 0.5rem;
--link: 0 0% 9%;
--link-hover: 0 0% 20%;
--chart-1: 160 60% 45%;
--chart-2: 217 91% 60%;
--chart-3: 43 96% 56%;
--chart-4: 280 65% 60%;
--chart-5: 340 75% 55%;
}
.dark {
--background: 0 0% 5.5%;
--foreground: 0 0% 90%;
--card: 0 0% 10%;
--card-foreground: 0 0% 90%;
--popover: 0 0% 8%;
--popover-foreground: 0 0% 90%;
--primary: 236 52% 62%;
--primary-foreground: 0 0% 100%;
--secondary: 0 0% 13%;
--secondary-foreground: 0 0% 90%;
--muted: 0 0% 9%;
--muted-foreground: 0 0% 56%;
--accent: 236 52% 62%;
--accent-foreground: 0 0% 100%;
--destructive: 0 62% 45%;
--destructive-foreground: 0 0% 100%;
--border: 0 0% 100% / 0.08;
--input: 0 0% 100% / 0.06;
--ring: 236 52% 62%;
--link: 236 52% 72%;
--link-hover: 236 52% 62%;
--radius: 0.375rem;
--chart-1: 236 52% 62%;
--chart-2: 160 60% 50%;
--chart-3: 43 96% 56%;
--chart-4: 280 65% 60%;
--chart-5: 340 75% 55%;
}
/* === Linear Dark: Semi Design 暗色覆盖 === */
.dark {
--semi-color-primary: rgba(94, 106, 210, 1);
--semi-color-primary-hover: rgba(114, 126, 230, 1);
--semi-color-primary-active: rgba(78, 90, 190, 1);
--semi-color-primary-disabled: rgba(94, 106, 210, 0.35);
--semi-color-primary-light-default: rgba(94, 106, 210, 0.12);
--semi-color-primary-light-hover: rgba(94, 106, 210, 0.18);
--semi-color-primary-light-active: rgba(94, 106, 210, 0.24);
--semi-color-bg-0: rgba(14, 14, 14, 1);
--semi-color-bg-1: rgba(19, 19, 19, 1);
--semi-color-bg-2: rgba(25, 25, 25, 1);
--semi-color-bg-3: rgba(32, 32, 32, 1);
--semi-color-bg-4: rgba(40, 40, 40, 1);
--semi-color-text-0: rgba(230, 230, 230, 1);
--semi-color-text-1: rgba(190, 190, 190, 1);
--semi-color-text-2: rgba(140, 140, 140, 1);
--semi-color-text-3: rgba(100, 100, 100, 1);
--semi-color-border: rgba(255, 255, 255, 0.08);
--semi-color-fill-0: rgba(255, 255, 255, 0.04);
--semi-color-fill-1: rgba(255, 255, 255, 0.06);
--semi-color-fill-2: rgba(255, 255, 255, 0.08);
--semi-color-link: rgba(130, 143, 255, 1);
--semi-color-link-hover: rgba(158, 168, 255, 1);
--semi-color-link-active: rgba(110, 122, 235, 1);
--semi-color-link-visited: rgba(130, 143, 255, 0.8);
--semi-color-tertiary: rgba(255, 255, 255, 0.06);
--semi-color-tertiary-hover: rgba(255, 255, 255, 0.10);
--semi-color-tertiary-active: rgba(255, 255, 255, 0.14);
--semi-shadow-elevated: 0 0 0 1px rgba(255,255,255,0.06), 0 2px 8px rgba(0,0,0,0.3);
--semi-color-success: rgba(52, 211, 153, 1);
--semi-color-danger: rgba(248, 113, 113, 1);
--semi-color-warning: rgba(251, 191, 36, 1);
--semi-color-info: rgba(94, 106, 210, 1);
}
/* 确保按钮圆角在暗色模式下生效(覆盖 Semi 库默认值) */
.dark .semi-button,
.dark .semi-button-primary,
.dark .semi-button-secondary,
.dark .semi-button-tertiary,
.dark .semi-button-warning,
.dark .semi-button-danger {
border-radius: 8px !important;
}
/* 全局基础样式 — 使用新字体族 */
body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
color: hsl(var(--foreground));
background-color: hsl(var(--background));
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* ==================== Tailwind CSS 配置 ==================== */
/* ==================== Tailwind CSS 閰嶇疆 ==================== */
@layer tailwind-base, semi, tailwind-components, tailwind-utils;
@layer tailwind-base {
@tailwind base;
}
@layer tailwind-components {
@tailwind components;
}
@layer tailwind-utils {
@tailwind utilities;
}
/* ==================== 鍏ㄥ眬鍩虹鏍峰紡 ==================== */
:root {
--sidebar-width: 180px;
--sidebar-width-collapsed: 60px;
--sidebar-current-width: var(--sidebar-width);
}
body.sidebar-collapsed {
--sidebar-current-width: var(--sidebar-width-collapsed);
}
/* 妗岄潰绔姝?body 绾靛悜婊氬姩 - 闃叉 VChart tooltip 瑙﹀彂椤甸潰婊氬姩鏉?*/
@media (min-width: 768px) {
body {
overflow-y: hidden;
}
}
.app-layout {
height: 100vh;
height: 100dvh;
}
.app-sider {
height: calc(100vh - 64px);
height: calc(100dvh - 64px);
}
/*
* 鎿嶇粌鍦?/console/playground锛歩OS Safari 鐐瑰嚮鍚庡湴鍧€鏍忔敹璧蜂細浣?100vh 鍙樺ぇ锛屽簳閮ㄥ尯鍩熻銆岄《楂樸€嶃€? * 浣跨敤 svh锛堝皬瑙嗗彛锛変负涓婚珮搴︼紝閬垮厤闅?UI 鍙樺寲璺冲彉锛涙棤 svh 鐨勬祻瑙堝櫒鍥為€€ 100vh銆? */
.playground-shell-h {
height: calc(100vh - 66px);
height: calc(100svh - 66px);
}
/* iOS锛氳緭鍏ユ瀛楀彿灏忎簬 16px 鏃惰仛鐒︿細寮哄埗缂╂斁椤甸潰 */
@media (max-width: 767px) {
.playground-shell-h textarea,
.playground-shell-h input:not([type='checkbox']):not([type='radio']):not(
[type='hidden']
) {
font-size: 16px !important;
}
}
code {
font-family:
source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
}
/* ==================== 甯冨眬鐩稿叧鏍峰紡 ==================== */
.semi-layout::-webkit-scrollbar,
.semi-layout-content::-webkit-scrollbar,
.semi-sider::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
}
.semi-layout,
.semi-layout-content,
.semi-sider {
-ms-overflow-style: none;
scrollbar-width: none;
}
/* ==================== 瀵艰埅鍜屼晶杈规爮鏍峰紡 ==================== */
.semi-navigation-item {
margin-bottom: 4px !important;
padding: 4px 12px !important;
}
.semi-navigation-sub-title {
padding: 0 !important;
}
.semi-navigation-item-icon {
justify-items: center;
align-items: center;
}
.semi-navigation-item-icon-info {
margin-right: 0;
}
.sidebar-nav .semi-navigation-item-text {
flex: 1;
min-width: 0;
}
.semi-navigation-item,
.semi-navigation-sub-title {
height: 100% !important;
}
.semi-navigation-item-collapsed {
height: 44px !important;
}
#root
> section
> header
> section
> div
> div
> div
> div.semi-navigation-header-list-outer
> div.semi-navigation-list-wrapper
> ul
> div
> a
> li
> span {
font-weight: 600 !important;
}
/* 鑷畾涔変晶杈规爮鏍峰紡 */
.sidebar-container {
height: 100%;
display: flex;
flex-direction: column;
min-height: 0;
transition: width 0.3s ease;
background: var(--semi-color-bg-0);
}
.sidebar-nav {
flex: 1;
width: 100%;
background: var(--semi-color-bg-0);
height: 100%;
overflow-x: hidden;
border-right: none;
overflow-y: auto;
min-height: 0;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
-ms-overflow-style: none;
}
.sidebar-nav::-webkit-scrollbar {
display: none;
}
/* 渚ц竟鏍忓鑸」鏍峰紡 */
.sidebar-nav-item {
border-radius: 6px;
margin: 3px 8px;
transition: all 0.15s ease;
padding: 8px 12px;
}
.sidebar-nav-item:hover {
background-color: rgba(var(--semi-blue-0), 0.08);
color: var(--semi-color-primary);
}
.sidebar-nav-item-selected {
background-color: rgba(var(--semi-blue-0), 0.12);
color: var(--semi-color-primary);
font-weight: 500;
}
/* 鍥炬爣瀹瑰櫒鏍峰紡 */
.sidebar-icon-container {
width: 22px;
height: 22px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 10px;
transition: all 0.2s ease;
}
.sidebar-sub-icon-container {
width: 18px;
height: 18px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 10px;
margin-left: 1px;
transition: all 0.2s ease;
}
/* 鍒嗗壊绾挎牱寮?*/
.sidebar-divider {
margin: 4px 8px;
opacity: 0.15;
}
/* 鍒嗙粍鏍囩鏍峰紡 */
.sidebar-group-label {
padding: 4px 15px 8px;
color: var(--semi-color-text-2);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.5px;
opacity: 0.8;
}
/* 搴曢儴鎶樺彔鎸夐挳 */
.sidebar-collapse-button {
display: flex;
justify-content: center;
align-items: center;
padding: 12px;
margin-top: auto;
cursor: pointer;
background-color: var(--semi-color-bg-0);
position: sticky;
bottom: 0;
z-index: 10;
box-shadow: 0 -10px 10px -5px var(--semi-color-bg-0);
backdrop-filter: blur(4px);
border-top: 1px solid rgba(var(--semi-grey-0), 0.08);
}
.sidebar-collapse-button-inner {
width: 28px;
height: 28px;
border-radius: 9999px;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--semi-color-fill-0);
transition: all 0.2s ease;
}
.sidebar-collapse-icon-container {
display: inline-block;
transition: transform 0.3s ease;
}
/* 渚ц竟鏍忓尯鍩熷鍣?*/
.sidebar-section {
padding-top: 12px;
}
@media (max-width: 767px) {
.sidebar-container {
background: var(--semi-color-bg-1);
border-right: 1px solid var(--semi-color-border);
}
.sidebar-nav {
background: var(--semi-color-bg-1);
}
.sidebar-collapse-button {
background-color: var(--semi-color-bg-1);
box-shadow: 0 -10px 10px -5px var(--semi-color-bg-1);
}
}
/* ==================== 鑱婂ぉ鐣岄潰鏍峰紡 ==================== */
.semi-chat {
padding-top: 0 !important;
padding-bottom: 0 !important;
height: 100%;
max-width: 100% !important;
width: 100% !important;
overflow: hidden !important;
}
.semi-chat-chatBox {
max-width: 100% !important;
overflow: hidden !important;
}
.semi-chat-chatBox-wrap {
max-width: 100% !important;
overflow: hidden !important;
}
.semi-chat-chatBox-content {
min-width: auto;
word-break: break-word;
max-width: 100% !important;
overflow-wrap: break-word !important;
}
/* playground 鑱婂ぉ姘旀场瀹藉害闄愬埗锛岄伩鍏嶅獟浣撳唴瀹规妸澶栧眰瀹瑰櫒鎾戞弧 */
.semi-chat .semi-chat-chatBox-content {
max-width: min(100%, 780px) !important;
}
.semi-chat .semi-chat-chatBox-content-bubble {
max-width: min(100%, 780px) !important;
overflow-wrap: anywhere;
}
.semi-chat-content {
max-width: 100% !important;
overflow: hidden !important;
}
.semi-chat-list {
max-width: 100% !important;
overflow-x: hidden !important;
}
.semi-chat-container {
overflow-x: hidden !important;
}
.semi-chat-chatBox-action {
column-gap: 0 !important;
}
.semi-chat-inputBox-clearButton.semi-button .semi-icon {
font-size: 20px !important;
}
/* 闅愯棌鎵€鏈夎亰澶╃浉鍏冲尯鍩熺殑婊氬姩鏉?*/
.semi-chat::-webkit-scrollbar,
.semi-chat-chatBox::-webkit-scrollbar,
.semi-chat-chatBox-wrap::-webkit-scrollbar,
.semi-chat-chatBox-content::-webkit-scrollbar,
.semi-chat-content::-webkit-scrollbar,
.semi-chat-list::-webkit-scrollbar,
.semi-chat-container::-webkit-scrollbar {
display: none;
}
.semi-chat,
.semi-chat-chatBox,
.semi-chat-chatBox-wrap,
.semi-chat-chatBox-content,
.semi-chat-content,
.semi-chat-list,
.semi-chat-container {
-ms-overflow-style: none;
scrollbar-width: none;
}
/* ==================== 缁勪欢鐗瑰畾鏍峰紡 ==================== */
/* SelectableButtonGroup */
.sbg-button .semi-button-content {
min-width: 0 !important;
}
.sbg-content {
display: flex;
align-items: center;
gap: 4px;
width: 100%;
min-width: 0;
}
.sbg-ellipsis {
flex: 1;
min-width: 0;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
/* Badge for count/multiplier in filter buttons */
.sbg-badge {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
min-width: 18px;
height: 18px;
padding: 0 6px;
border-radius: 9px;
font-size: 11px;
font-weight: 600;
font-variant-numeric: tabular-nums;
line-height: 1;
background-color: var(--semi-color-fill-0);
color: var(--semi-color-text-2);
transition:
background-color 0.15s ease,
color 0.15s ease;
}
.sbg-badge-active {
background-color: var(--semi-color-primary-light-active);
color: var(--semi-color-primary);
}
/* ---- SelectableButtonGroup color variants ---- */
.sbg-variant-violet {
--semi-color-primary: #6d28d9;
--semi-color-primary-light-default: rgba(124, 58, 237, 0.08);
--semi-color-primary-light-hover: rgba(124, 58, 237, 0.15);
--semi-color-primary-light-active: rgba(124, 58, 237, 0.22);
}
.sbg-variant-teal {
--semi-color-primary: #0f766e;
--semi-color-primary-light-default: rgba(20, 184, 166, 0.08);
--semi-color-primary-light-hover: rgba(20, 184, 166, 0.15);
--semi-color-primary-light-active: rgba(20, 184, 166, 0.22);
}
.sbg-variant-amber {
--semi-color-primary: #b45309;
--semi-color-primary-light-default: rgba(245, 158, 11, 0.08);
--semi-color-primary-light-hover: rgba(245, 158, 11, 0.15);
--semi-color-primary-light-active: rgba(245, 158, 11, 0.22);
}
.sbg-variant-rose {
--semi-color-primary: #be123c;
--semi-color-primary-light-default: rgba(244, 63, 94, 0.08);
--semi-color-primary-light-hover: rgba(244, 63, 94, 0.15);
--semi-color-primary-light-active: rgba(244, 63, 94, 0.22);
}
.sbg-variant-green {
--semi-color-primary: #047857;
--semi-color-primary-light-default: rgba(16, 185, 129, 0.08);
--semi-color-primary-light-hover: rgba(16, 185, 129, 0.15);
--semi-color-primary-light-active: rgba(16, 185, 129, 0.22);
}
/* Dark mode: lighter text, slightly stronger backgrounds */
html.dark .sbg-variant-violet {
--semi-color-primary: #a78bfa;
--semi-color-primary-light-default: rgba(139, 92, 246, 0.14);
--semi-color-primary-light-hover: rgba(139, 92, 246, 0.22);
--semi-color-primary-light-active: rgba(139, 92, 246, 0.3);
}
html.dark .sbg-variant-teal {
--semi-color-primary: #2dd4bf;
--semi-color-primary-light-default: rgba(45, 212, 191, 0.14);
--semi-color-primary-light-hover: rgba(45, 212, 191, 0.22);
--semi-color-primary-light-active: rgba(45, 212, 191, 0.3);
}
html.dark .sbg-variant-amber {
--semi-color-primary: #fbbf24;
--semi-color-primary-light-default: rgba(251, 191, 36, 0.14);
--semi-color-primary-light-hover: rgba(251, 191, 36, 0.22);
--semi-color-primary-light-active: rgba(251, 191, 36, 0.3);
}
html.dark .sbg-variant-rose {
--semi-color-primary: #fb7185;
--semi-color-primary-light-default: rgba(251, 113, 133, 0.14);
--semi-color-primary-light-hover: rgba(251, 113, 133, 0.22);
--semi-color-primary-light-active: rgba(251, 113, 133, 0.3);
}
html.dark .sbg-variant-green {
--semi-color-primary: #34d399;
--semi-color-primary-light-default: rgba(52, 211, 153, 0.14);
--semi-color-primary-light-hover: rgba(52, 211, 153, 0.22);
--semi-color-primary-light-active: rgba(52, 211, 153, 0.3);
}
/* Tabs缁勪欢鏍峰紡 */
.semi-tabs-content {
padding: 0 !important;
height: calc(100% - 40px) !important;
flex: 1 !important;
}
.semi-tabs-content .semi-tabs-pane {
height: 100% !important;
overflow: hidden !important;
}
.semi-tabs-content .semi-tabs-pane > div {
height: 100% !important;
}
/* 琛ㄦ牸鏍峰紡 */
.tableShow {
display: revert;
}
.tableHiddle {
display: none !important;
}
/* 椤佃剼鏍峰紡 */
.custom-footer {
font-size: 1.1em;
}
.custom-footer.na-cb6feafeb3990c78 {
position: relative;
}
/* 鍗$墖鍐呭瀹瑰櫒閫氱敤鏍峰紡 */
.card-content-container {
position: relative;
}
.card-content-fade-indicator {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 30px;
background: linear-gradient(transparent, var(--semi-color-bg-1));
pointer-events: none;
z-index: 1;
opacity: 0;
transition: opacity 0.3s ease;
}
/* ==================== 璋冭瘯闈㈡澘鐗瑰畾鏍峰紡 ==================== */
.debug-panel .semi-tabs {
height: 100% !important;
display: flex !important;
flex-direction: column !important;
}
.debug-panel .semi-tabs-bar {
flex-shrink: 0 !important;
}
.debug-panel .semi-tabs-content {
flex: 1 !important;
overflow: hidden !important;
}
/* ==================== 婊氬姩鏉℃牱寮忕粺涓€绠$悊 ==================== */
/* 閫氱敤闅愯棌婊氬姩鏉″伐鍏风被 */
.scrollbar-hide {
-ms-overflow-style: none;
/* IE and Edge */
scrollbar-width: none;
/* Firefox */
}
.scrollbar-hide::-webkit-scrollbar {
width: 0 !important;
height: 0 !important;
display: none !important;
/* Chrome, Safari, Opera */
}
/* 琛ㄦ牸婊氬姩鏉℃牱寮?*/
.semi-table-body::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.semi-table-body::-webkit-scrollbar-thumb {
background: rgba(var(--semi-grey-2), 0.3);
border-radius: 2px;
}
.semi-table-body::-webkit-scrollbar-thumb:hover {
background: rgba(var(--semi-grey-2), 0.5);
}
.semi-table-body::-webkit-scrollbar-track {
background: transparent;
}
/* 渚ц竟鎶藉眽婊氬姩鏉℃牱寮?*/
.semi-sidesheet-body::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.semi-sidesheet-body::-webkit-scrollbar-thumb {
background: rgba(var(--semi-grey-2), 0.3);
border-radius: 2px;
}
.semi-sidesheet-body::-webkit-scrollbar-thumb:hover {
background: rgba(var(--semi-grey-2), 0.5);
}
.semi-sidesheet-body::-webkit-scrollbar-track {
background: transparent;
}
/* 闅愯棌鍐呭鍖哄煙婊氬姩鏉?*/
.pricing-scroll-hide,
.model-test-scroll,
.card-content-scroll,
.model-settings-scroll,
.thinking-content-scroll,
.custom-request-textarea .semi-input,
.custom-request-textarea textarea,
.notice-content-scroll {
-ms-overflow-style: none;
scrollbar-width: none;
}
.pricing-scroll-hide::-webkit-scrollbar,
.model-test-scroll::-webkit-scrollbar,
.card-content-scroll::-webkit-scrollbar,
.model-settings-scroll::-webkit-scrollbar,
.thinking-content-scroll::-webkit-scrollbar,
.custom-request-textarea .semi-input::-webkit-scrollbar,
.custom-request-textarea textarea::-webkit-scrollbar,
.notice-content-scroll::-webkit-scrollbar {
display: none;
}
/* 鍥剧墖鍒楄〃婊氬姩鏉℃牱寮?*/
.image-list-scroll::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.image-list-scroll::-webkit-scrollbar-thumb {
background: var(--semi-color-tertiary-light-default);
border-radius: 3px;
}
.image-list-scroll::-webkit-scrollbar-thumb:hover {
background: var(--semi-color-tertiary);
}
.image-list-scroll::-webkit-scrollbar-track {
background: transparent;
}
/* ==================== 鍚屾鍊嶇巼 - 娓犻亾閫夋嫨鍣?==================== */
.components-transfer-source-item,
.components-transfer-selected-item {
display: flex;
align-items: center;
padding: 8px;
}
.semi-transfer-left-list,
.semi-transfer-right-list {
-ms-overflow-style: none;
scrollbar-width: none;
}
.semi-transfer-left-list::-webkit-scrollbar,
.semi-transfer-right-list::-webkit-scrollbar {
display: none;
}
.components-transfer-source-item .semi-checkbox,
.components-transfer-selected-item .semi-checkbox {
display: flex;
align-items: center;
width: 100%;
}
.components-transfer-source-item .semi-avatar,
.components-transfer-selected-item .semi-avatar {
margin-right: 12px;
flex-shrink: 0;
}
.components-transfer-source-item .info,
.components-transfer-selected-item .info {
flex: 1;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
}
.components-transfer-source-item .name,
.components-transfer-selected-item .name {
font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.components-transfer-source-item .email,
.components-transfer-selected-item .email {
font-size: 12px;
color: var(--semi-color-text-2);
display: flex;
align-items: center;
}
.components-transfer-selected-item .semi-icon-close {
margin-left: 8px;
cursor: pointer;
color: var(--semi-color-text-2);
}
.components-transfer-selected-item .semi-icon-close:hover {
color: var(--semi-color-text-0);
}
/* ==================== 鏈閫氱煡闂厜鏁堟灉 ==================== */
@keyframes sweep-shine {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
.shine-text {
background: linear-gradient(
90deg,
currentColor 0%,
currentColor 40%,
rgba(255, 255, 255, 0.9) 50%,
currentColor 60%,
currentColor 100%
);
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
animation: sweep-shine 4s linear infinite;
}
.dark .shine-text {
background: linear-gradient(
90deg,
currentColor 0%,
currentColor 40%,
#facc15 50%,
currentColor 60%,
currentColor 100%
);
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
/* ==================== ScrollList 瀹氬埗鏍峰紡 ==================== */
.semi-scrolllist,
.semi-scrolllist * {
-ms-overflow-style: none;
/* IE, Edge */
scrollbar-width: none;
/* Firefox */
background: transparent !important;
}
.semi-scrolllist::-webkit-scrollbar,
.semi-scrolllist *::-webkit-scrollbar {
width: 0 !important;
height: 0 !important;
display: none !important;
}
.semi-scrolllist-body {
padding: 1px !important;
}
.semi-scrolllist-list-outer {
padding-right: 0 !important;
}
/* ==================== Banner 鑳屾櫙妯$硦鐞?==================== */
.blur-ball {
position: absolute;
width: 360px;
height: 360px;
border-radius: 50%;
filter: blur(120px);
pointer-events: none;
z-index: -1;
}
.blur-ball-indigo {
background: #6366f1;
/* indigo-500 */
top: 40px;
left: 50%;
transform: translateX(-50%);
opacity: 0.5;
}
.blur-ball-teal {
background: #14b8a6;
/* teal-400 */
top: 200px;
left: 30%;
opacity: 0.4;
}
/* 娴呰壊涓婚涓嬭妯$硦鐞冩洿鏌斿拰 */
html:not(.dark) .blur-ball-indigo {
opacity: 0.25;
}
html:not(.dark) .blur-ball-teal {
opacity: 0.2;
}
/* ==================== Home Page Clean Background ==================== */
.home-banner-bg {
position: relative;
background: linear-gradient(180deg, #e8f0fe 0%, #ffffff 50%, #f8f9fa 100%);
}
/* 娴呰壊涓婚 - 娓呮櫚鐨勬笎鍙樻晥鏋?*/
html:not(.dark) .home-banner-bg {
background: linear-gradient(180deg, #e8f0fe 0%, #ffffff 50%, #f8f9fa 100%);
}
/* 鏆楄壊涓婚 */
html.dark .home-banner-bg {
background: linear-gradient(
180deg,
rgba(99, 102, 241, 0.1) 0%,
transparent 50%,
rgba(20, 184, 166, 0.08) 100%
);
}
/* 棣栭〉銆岀敵璇锋垚涓轰唬鐞嗐€嶏細鎵佸钩涓昏壊 + 杞诲井澶栧湀鍏夛紙鏃犲帤鎶曞奖/鍐呴珮鍏夛級 */
@keyframes home-distributor-cta-glow {
0%,
100% {
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.14),
0 0 14px rgba(99, 102, 241, 0.28);
}
50% {
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.18),
0 0 22px rgba(99, 102, 241, 0.38);
}
}
.home-distributor-cta-btn {
font-weight: 600 !important;
border: none !important;
background: var(--semi-color-primary) !important;
color: #fff !important;
animation: home-distributor-cta-glow 3s ease-in-out infinite;
transition:
background-color 0.2s ease,
box-shadow 0.2s ease;
}
.home-distributor-cta-btn:hover {
background: var(--semi-color-primary-hover) !important;
}
html.dark .home-distributor-cta-btn {
animation-name: home-distributor-cta-glow-dark;
}
@keyframes home-distributor-cta-glow-dark {
0%,
100% {
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.1),
0 0 16px rgba(129, 140, 248, 0.32);
}
50% {
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.14),
0 0 24px rgba(167, 139, 250, 0.4);
}
}
/* 棣栭〉鍒嗛攢鎷涘嫙鏉★細杞婚噺鍏ュ満 + 鎮仠楂樹寒 */
@keyframes home-distributor-recruit-in {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes home-distributor-recruit-shimmer {
0%,
100% {
opacity: 0.35;
}
50% {
opacity: 0.55;
}
}
.home-distributor-recruit-card {
position: relative;
overflow: hidden;
isolation: isolate;
animation: home-distributor-recruit-in 0.65s cubic-bezier(0.22, 1, 0.36, 1)
both;
transition:
border-color 0.35s ease,
box-shadow 0.35s ease,
transform 0.35s ease;
}
.home-distributor-recruit-card::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
pointer-events: none;
z-index: 0;
background: linear-gradient(
120deg,
var(--semi-color-primary-light-default) 0%,
transparent 45%,
var(--semi-color-primary-light-hover) 100%
);
animation: home-distributor-recruit-shimmer 5s ease-in-out infinite;
}
.home-distributor-recruit-card:hover {
border-color: var(--semi-color-primary-light-active);
box-shadow: 0 12px 40px -16px var(--semi-color-primary-light-hover);
transform: translateY(-2px);
}
.home-distributor-recruit-card > * {
position: relative;
z-index: 1;
}
/* 浠g悊鐢宠椤碉細鏍囬鍖鸿儗鏅厜鏂?+ 鏂囨鍏ュ満 */
@keyframes distributor-apply-blob {
0%,
100% {
transform: translate(0, 0) scale(1);
}
33% {
transform: translate(8%, -6%) scale(1.05);
}
66% {
transform: translate(-6%, 4%) scale(0.96);
}
}
@keyframes distributor-apply-fade-up {
from {
opacity: 0;
transform: translateY(12px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes distributor-apply-icon-soft {
0%,
100% {
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.06),
0 8px 24px -12px rgba(99, 102, 241, 0.35);
}
50% {
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.1),
0 10px 28px -10px rgba(99, 102, 241, 0.45);
}
}
.distributor-apply-hero {
isolation: isolate;
}
/* 浠g悊鐢宠涓诲崱鐗囷細鏁翠綋娓愬彉搴?+ 娣¤竟绾?+ 杞荤珛浣撳厜锛堜笂娌块珮鍏?/ 涓嬫部娴呭奖锛?*/
.distributor-apply-main-card.semi-card {
background: linear-gradient(
152deg,
var(--semi-color-primary-light-default) 0%,
var(--semi-color-bg-0) 42%,
color-mix(in srgb, var(--semi-color-primary) 10%, var(--semi-color-fill-0))
100%
);
border: 1px solid
color-mix(in srgb, var(--semi-color-border) 32%, var(--semi-color-bg-0));
box-shadow:
0 0 0 1px color-mix(in srgb, var(--semi-color-border) 8%, transparent),
0 1px 0 0 color-mix(in srgb, white 55%, transparent),
0 2px 6px -1px
color-mix(in srgb, var(--semi-color-primary) 5%, rgba(15, 23, 42, 0.05)),
0 10px 28px -6px
color-mix(in srgb, var(--semi-color-primary) 7%, rgba(15, 23, 42, 0.06));
}
.distributor-apply-main-card .semi-card-body {
background-color: transparent;
display: flex;
flex-direction: column;
min-height: 0;
flex: 1 1 auto;
overflow: hidden;
}
/* 鍒嗛攢鐢宠 - 缁嗘粴鍔ㄦ潯锛堜綆瀵规瘮銆佹贰鑹诧級锛氳鏄庡尯鐙珛婊氬姩 鎴?绐勫睆鏁村崱鍗曞垪婊氬姩 */
.distributor-apply-intro-scroll,
.distributor-apply-card-stacked-scroll {
scrollbar-gutter: stable;
scrollbar-width: thin;
scrollbar-color: color-mix(
in srgb,
var(--semi-color-primary) 18%,
var(--semi-color-fill-1)
)
color-mix(in srgb, var(--semi-color-border) 12%, transparent);
}
.distributor-apply-intro-scroll::-webkit-scrollbar,
.distributor-apply-card-stacked-scroll::-webkit-scrollbar {
width: 7px;
height: 7px;
}
.distributor-apply-intro-scroll::-webkit-scrollbar-track,
.distributor-apply-card-stacked-scroll::-webkit-scrollbar-track {
margin: 6px 0 8px;
background: color-mix(in srgb, var(--semi-color-border) 12%, transparent);
border-radius: 100px;
}
.distributor-apply-intro-scroll::-webkit-scrollbar-thumb,
.distributor-apply-card-stacked-scroll::-webkit-scrollbar-thumb {
background: linear-gradient(
180deg,
color-mix(in srgb, var(--semi-color-primary) 16%, var(--semi-color-fill-2))
0%,
color-mix(in srgb, var(--semi-color-primary) 22%, var(--semi-color-fill-1))
100%
);
border-radius: 100px;
border: 2px solid
color-mix(in srgb, var(--semi-color-bg-0) 92%, var(--semi-color-border));
background-clip: padding-box;
}
.distributor-apply-intro-scroll::-webkit-scrollbar-thumb:hover,
.distributor-apply-card-stacked-scroll::-webkit-scrollbar-thumb:hover {
background: linear-gradient(
180deg,
color-mix(in srgb, var(--semi-color-primary) 26%, var(--semi-color-fill-1))
0%,
color-mix(in srgb, var(--semi-color-primary) 34%, var(--semi-color-fill-0))
100%
);
background-clip: padding-box;
}
/* 浠g悊鐢宠椤碉細鍥哄畾涓诲尯鍩熴€侀伩鍏嶅灞傛粴鍔紝浠呭崱鐗囧唴閮ㄦ粴鍔?*/
.distributor-apply-page-root {
position: fixed;
z-index: 1;
top: 80px;
right: 0;
bottom: 0;
left: 0;
display: flex;
align-items: stretch;
justify-content: center;
box-sizing: border-box;
padding: 12px 16px;
overflow: hidden;
pointer-events: auto;
}
@media (min-width: 768px) {
.distributor-apply-page-root {
left: var(--sidebar-current-width, 220px);
padding: 20px 24px;
}
}
html.dark .distributor-apply-main-card.semi-card {
background: linear-gradient(
152deg,
color-mix(in srgb, var(--semi-color-primary) 24%, var(--semi-color-bg-0)) 0%,
var(--semi-color-bg-0) 45%,
color-mix(in srgb, var(--semi-color-primary) 14%, var(--semi-color-bg-1))
100%
);
border: 1px solid
color-mix(in srgb, var(--semi-color-border) 38%, var(--semi-color-bg-0));
box-shadow:
0 0 0 1px color-mix(in srgb, white 6%, transparent),
0 1px 0 0 color-mix(in srgb, white 8%, transparent),
0 2px 8px -2px rgba(0, 0, 0, 0.32),
0 10px 28px -8px
color-mix(in srgb, var(--semi-color-primary) 10%, rgba(0, 0, 0, 0.25));
}
.distributor-apply-hero-orb {
position: absolute;
border-radius: 50%;
filter: blur(48px);
pointer-events: none;
z-index: 0;
animation: distributor-apply-blob 12s ease-in-out infinite;
}
.distributor-apply-hero-orb--a {
width: 180px;
height: 180px;
top: -60px;
right: -40px;
background: radial-gradient(
circle,
var(--semi-color-primary-light-active) 0%,
transparent 70%
);
}
.distributor-apply-hero-orb--b {
width: 140px;
height: 140px;
bottom: -50px;
left: -30px;
background: radial-gradient(
circle,
color-mix(in srgb, var(--semi-color-primary) 22%, transparent) 0%,
transparent 70%
);
animation-delay: -4s;
}
.distributor-apply-hero-title {
animation: distributor-apply-fade-up 0.55s cubic-bezier(0.22, 1, 0.36, 1)
0.05s both;
}
.distributor-apply-hero-desc {
animation: distributor-apply-fade-up 0.55s cubic-bezier(0.22, 1, 0.36, 1)
0.14s both;
}
.distributor-apply-hero-icon {
border-color: color-mix(
in srgb,
var(--semi-color-border) 34%,
var(--semi-color-bg-0)
) !important;
animation:
distributor-apply-fade-up 0.5s cubic-bezier(0.22, 1, 0.36, 1) both,
distributor-apply-icon-soft 4s ease-in-out infinite 0.6s;
}
html.dark .distributor-apply-hero .distributor-apply-hero-icon {
border-color: color-mix(
in srgb,
var(--semi-color-border) 45%,
var(--semi-color-bg-0)
) !important;
}
/* 宸?涓婏細璇存槑 涓?鍙?涓嬶細琛ㄥ崟 涔嬮棿鍒嗛殧绾匡紙楂樻贩鍏ュ簳鑹诧紝姣旈粯璁?border 鏇存贰锛?*/
.distributor-apply-panels-divider {
border-color: color-mix(
in srgb,
var(--semi-color-border) 26%,
var(--semi-color-bg-0)
) !important;
}
html.dark .distributor-apply-hero-orb--a {
background: radial-gradient(
circle,
rgba(129, 140, 248, 0.28) 0%,
transparent 70%
);
}
html.dark .distributor-apply-hero-orb--b {
background: radial-gradient(
circle,
rgba(45, 212, 191, 0.18) 0%,
transparent 70%
);
}
/* ==================== Linear Dark Console Theme — 表格 / 表单 / 侧边栏精细调整 ==================== */
/* 暗色模式表格 */
.dark .semi-table-thead > .semi-table-row {
background: rgba(255,255,255,0.03);
}
.dark .semi-table-row:hover {
background: rgba(255,255,255,0.04) !important;
transition: background 0.15s ease;
}
.dark .semi-table-thead .semi-table-cell {
color: rgba(255,255,255,0.45);
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.dark .semi-table-tbody .semi-table-cell {
border-bottom: 1px solid rgba(255,255,255,0.04);
}
/* 暗色模式表单 */
.dark .semi-input-wrapper {
background: rgba(255,255,255,0.05) !important;
border-color: rgba(255,255,255,0.08) !important;
transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.dark .semi-input-wrapper:hover {
border-color: rgba(255,255,255,0.14) !important;
}
.dark .semi-input-wrapper:focus-within,
.dark .semi-input-wrapper.semi-input-wrapper-focus {
border-color: rgba(94,106,210,0.5) !important;
box-shadow: 0 0 0 3px rgba(94,106,210,0.12) !important;
}
.dark .semi-select {
background: rgba(255,255,255,0.05) !important;
border-color: rgba(255,255,255,0.08) !important;
}
.dark .semi-select:hover {
border-color: rgba(255,255,255,0.14) !important;
}
/* 暗色模式分页 */
.dark .semi-page-item {
background: rgba(255,255,255,0.04);
border-color: rgba(255,255,255,0.06);
color: rgba(255,255,255,0.65);
}
.dark .semi-page-item:hover {
background: rgba(255,255,255,0.08);
color: rgba(255,255,255,0.85);
}
.dark .semi-page-item-active {
background: rgba(94,106,210,0.2) !important;
border-color: rgba(94,106,210,0.3) !important;
color: rgba(130,143,255,1) !important;
}
/* 暗色模式 Tag */
.dark .semi-tag {
border-radius: 6px;
font-weight: 500;
}
/* 暗色模式按钮 */
.dark .semi-button-primary {
background: rgba(94,106,210,0.9) !important;
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.dark .semi-button-primary:hover {
background: rgba(114,126,230,0.95) !important;
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.dark .semi-button-secondary,
.dark .semi-button-tertiary {
background: rgba(255,255,255,0.06) !important;
border-color: rgba(255,255,255,0.08) !important;
color: rgba(255,255,255,0.75) !important;
}
.dark .semi-button-secondary:hover,
.dark .semi-button-tertiary:hover {
background: rgba(255,255,255,0.10) !important;
border-color: rgba(255,255,255,0.14) !important;
}
/* 侧边栏暗色 */
.dark .semi-navigation {
background: rgba(14,14,14,1) !important;
}
.dark .semi-navigation-item {
border-radius: 6px;
margin: 2px 8px;
color: rgba(255,255,255,0.55);
transition: all 0.15s ease;
}
.dark .semi-navigation-item:hover {
background: rgba(255,255,255,0.05);
color: rgba(255,255,255,0.80);
}
.dark .semi-navigation-item-selected,
.dark .semi-navigation-item-active {
background: rgba(94,106,210,0.15) !important;
color: rgba(130,143,255,1) !important;
}
.dark .semi-navigation-item-selected .semi-navigation-item-icon,
.dark .semi-navigation-item-active .semi-navigation-item-icon {
color: rgba(130,143,255,1) !important;
}
.dark .semi-navigation-divider {
border-color: rgba(255,255,255,0.06) !important;
}
/* 暗色模式 Tabs — homepage nav pill style */
.dark .semi-tabs {
border-bottom: none;
}
.dark .semi-tabs-bar {
border-bottom: 1px solid rgba(255,255,255,0.08);
}
.dark .semi-tabs-tab {
border-radius: 8px;
padding: 6px 14px;
border: 1px solid transparent;
transition: all 0.15s ease;
}
.dark .semi-tabs-tab-button {
color: rgba(255,255,255,0.45);
font-family: 'Source Serif 4', 'Noto Serif SC', Georgia, serif;
font-size: 14px;
}
.dark .semi-tabs-tab:hover {
background: rgba(255,255,255,0.04);
border-color: rgba(255,255,255,0.06);
}
.dark .semi-tabs-tab:hover .semi-tabs-tab-button {
color: rgba(255,255,255,0.75);
}
.dark .semi-tabs-tab-active {
background: rgba(255,255,255,0.06) !important;
border-color: rgba(255,255,255,0.1) !important;
}
.dark .semi-tabs-tab-active .semi-tabs-tab-button {
color: rgba(255,255,255,0.9) !important;
}
.dark .semi-tabs-content {
padding: 0;
}
.dark .semi-tabs-tabpane {
padding: 0;
}
/* 暗色模式 Modal/Popover */
.dark .semi-modal-content,
.dark .semi-popover {
background: rgba(25,25,25,1) !important;
border: 1px solid rgba(255,255,255,0.08) !important;
box-shadow: 0 8px 32px rgba(0,0,0,0.4) !important;
}
/* 暗色模式 Toast */
.dark .Toastify__toast {
background: rgba(25,25,25,1) !important;
box-shadow: 0 0 0 1px rgba(255,255,255,0.06), 0 4px 16px rgba(0,0,0,0.3) !important;
}
@media (prefers-reduced-motion: reduce) {
.home-distributor-recruit-card,
.home-distributor-recruit-card::before,
.distributor-apply-hero-orb,
.distributor-apply-hero-title,
.distributor-apply-hero-desc,
.distributor-apply-hero-icon {
animation: none !important;
}
.home-distributor-recruit-card:hover {
transform: none;
}
}
/* ==================== 鍗$墖椹崱榫欐ā绯婄悆锛堢被灏佽锛?==================== */
/* 浣跨敤鏂瑰紡锛氱粰瀹瑰櫒鍔犱笂 with-pastel-balls 绫诲嵆鍙紝鏃犻渶鍦?JSX 涓彃鍏ラ澶栬妭鐐?*/
.with-pastel-balls {
position: relative;
overflow: hidden;
/* 榛樿鍙橀噺锛堟槑浜ā寮忥級 */
--pb1: #ffd1dc;
/* 绮?*/
--pb2: #e5d4ff;
/* 钖拌。鑽?*/
--pb3: #d1fff6;
/* 钖勮嵎 */
--pb4: #ffe5d9;
/* 妗?*/
--pb-opacity: 0.55;
--pb-blur: 60px;
}
.with-pastel-balls::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
z-index: 0;
background:
radial-gradient(circle at -5% -10%, var(--pb1) 0%, transparent 60%),
radial-gradient(circle at 105% -10%, var(--pb2) 0%, transparent 55%),
radial-gradient(circle at 5% 110%, var(--pb3) 0%, transparent 55%),
radial-gradient(circle at 105% 110%, var(--pb4) 0%, transparent 50%);
filter: blur(var(--pb-blur));
opacity: var(--pb-opacity);
transform: translateZ(0);
}
/* 鏆楅粦妯″紡涓嬫洿鏌斿拰鐨勮壊褰╁拰閫忔槑搴?*/
html.dark .with-pastel-balls {
/* 浣跨敤涓庢槑浜ā寮忎竴鑷寸殑鈥滃垰鎵嶉偅缁勨€濋┈鍗¢緳鑹诧紝浣嗘暣浣撴洿鏌斿拰 */
--pb1: #ffd1dc;
/* 绮?*/
--pb2: #e5d4ff;
/* 钖拌。鑽?*/
--pb3: #d1fff6;
/* 钖勮嵎 */
--pb4: #ffe5d9;
/* 妗?*/
--pb-opacity: 0.36;
--pb-blur: 65px;
}
/* 鏆楅粦妯″紡涓嬬敤鏇存煍鍜岀殑娣峰悎妯″紡閬垮厤绐佸厐鐨勯珮浜?*/
html.dark .with-pastel-balls::before {
mix-blend-mode: screen;
}
/* ==================== 琛ㄦ牸鍗$墖婊氬姩璁剧疆 ==================== */
.table-scroll-card {
display: flex;
flex-direction: column;
height: calc(100vh - 110px);
max-height: calc(100vh - 110px);
}
.table-scroll-card .semi-card-body {
flex: 1 1 auto;
overflow-y: auto;
}
.table-scroll-card .semi-card-body::-webkit-scrollbar {
width: 6px;
}
.table-scroll-card .semi-card-body::-webkit-scrollbar-thumb {
background: rgba(var(--semi-grey-2), 0.3);
border-radius: 2px;
}
.table-scroll-card .semi-card-body::-webkit-scrollbar-thumb:hover {
background: rgba(var(--semi-grey-2), 0.5);
}
.table-scroll-card .semi-card-body::-webkit-scrollbar-track {
background: transparent;
}
@media (max-width: 767px) {
.table-scroll-card {
height: calc(100vh - 77px);
max-height: calc(100vh - 77px);
}
}
/*
* 浠悊绠悊椤碉細Tabs 鏍囩鏍忎笌涓嬫柟 Card 鐨勯棿璺濄€? * 鍏ㄥ眬 `.semi-tabs-content { padding: 0 !important; }` 浼氱洊鎺夊瓙鍏冪礌 margin锛屾澶勭敤鏇撮珮浼樺厛绾ц鐩栦笂鍐呰竟璺濄€? */
.distributor-admin-tabs.semi-tabs .semi-tabs-content {
padding-top: 0.75rem !important;
}
/* ==================== 妯″瀷瀹氫环椤甸潰甯冨眬 ==================== */
.pricing-layout {
height: calc(100vh - 60px);
overflow: hidden;
margin-top: 60px;
}
.pricing-sidebar {
width: clamp(280px, 24vw, 520px) !important;
min-width: clamp(280px, 24vw, 520px) !important;
max-width: clamp(280px, 24vw, 520px) !important;
height: calc(100vh - 60px);
background-color: var(--semi-color-bg-0);
overflow: auto;
}
.pricing-content {
height: calc(100vh - 60px);
background-color: var(--semi-color-bg-0);
display: flex;
flex-direction: column;
}
.pricing-pagination-divider {
border-color: var(--semi-color-border);
}
.pricing-content-mobile {
height: 100%;
display: flex;
flex-direction: column;
overflow: auto;
}
.pricing-search-header {
padding: 0.5rem;
background-color: var(--semi-color-bg-0);
flex-shrink: 0;
position: sticky;
top: 0;
z-index: 5;
}
.pricing-view-container {
flex: 1;
overflow: auto;
}
.pricing-view-container-mobile {
flex: 1;
overflow: auto;
min-height: 0;
}
/* ─── Models 新布局 ─── */
.models-page-layout {
display: flex;
max-width: 1440px;
margin: 0 auto;
padding: 56px 24px 0;
gap: 32px;
height: 100vh;
overflow: hidden;
box-sizing: border-box;
}
.models-sidebar {
width: 280px;
flex-shrink: 0;
overflow-y: auto;
padding: 0 16px 24px 0;
border-right: 1px solid var(--border-color, #e5e7eb);
}
.models-sidebar::-webkit-scrollbar {
width: 4px;
}
.models-sidebar::-webkit-scrollbar-thumb {
background: transparent;
}
.models-sidebar:hover::-webkit-scrollbar-thumb {
background: rgba(0,0,0,0.15);
border-radius: 2px;
}
.models-content {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
overflow: hidden;
}
.models-tabs-bar {
display: flex;
gap: 8px;
padding: 16px 0;
flex-shrink: 0;
border-bottom: 1px solid var(--border-color, #e5e7eb);
}
.models-tab-btn {
padding: 6px 20px;
border-radius: 20px;
border: 1px solid var(--border-color, #d1d5db);
background: transparent;
cursor: pointer;
font-size: 14px;
color: var(--text-muted, #6b7280);
transition: all 0.2s;
white-space: nowrap;
}
.models-tab-btn:hover {
border-color: var(--primary-color, #3b82f6);
color: var(--primary-color, #3b82f6);
}
.models-tab-btn.active {
background: var(--primary-color, #3b82f6);
color: white;
border-color: var(--primary-color, #3b82f6);
}
.models-card-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
padding: 16px 0;
overflow-y: auto;
flex: 1;
}
.models-card-grid::-webkit-scrollbar {
width: 6px;
}
.models-card-grid::-webkit-scrollbar-thumb {
background: rgba(0,0,0,0.12);
border-radius: 3px;
}
/* 筛选面板标题 */
.models-filter-section {
margin-bottom: 24px;
}
.models-filter-title {
font-size: 13px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--text-muted, #6b7280);
margin-bottom: 12px;
padding-bottom: 8px;
border-bottom: 1px solid var(--border-color, #e5e7eb);
}
.models-filter-item {
display: flex;
align-items: center;
padding: 6px 10px;
border-radius: 8px;
cursor: pointer;
transition: all 0.15s;
font-size: 14px;
color: var(--text-color, #374151);
gap: 8px;
}
.models-filter-item:hover {
background: var(--hover-bg, #f3f4f6);
}
.models-filter-item.active {
background: var(--primary-light, #eff6ff);
color: var(--primary-color, #3b82f6);
font-weight: 500;
}
.models-filter-item .count {
margin-left: auto;
font-size: 12px;
color: var(--text-muted, #9ca3af);
}
/* ==================== semi-ui 缁勪欢鑷畾涔夋牱寮?==================== */
.semi-card-header,
.semi-card-body {
padding: 10px !important;
}
/* ==================== 浣跨敤鏃ュ織: channel affinity tag ==================== */
.semi-tag.channel-affinity-tag {
border: 1px solid rgba(var(--semi-cyan-5), 0.35);
background-color: rgba(var(--semi-cyan-5), 0.15);
color: rgba(var(--semi-cyan-9), 1);
cursor: help;
transition:
background-color 120ms ease,
border-color 120ms ease,
box-shadow 120ms ease;
}
.semi-tag.channel-affinity-tag:hover {
background-color: rgba(var(--semi-cyan-5), 0.22);
border-color: rgba(var(--semi-cyan-5), 0.6);
box-shadow: 0 0 0 2px rgba(var(--semi-cyan-5), 0.18);
}
.semi-tag.channel-affinity-tag:active {
background-color: rgba(var(--semi-cyan-5), 0.28);
}
.semi-tag.channel-affinity-tag .channel-affinity-tag-content {
display: inline-flex;
align-items: center;
gap: 0.25rem;
}
/* ==================== 鑷畾涔夊渾瑙掓牱寮?==================== */
.semi-radio,
.semi-tagInput,
.semi-input-textarea-wrapper,
.semi-navigation-sub-title,
.semi-chat-inputBox-sendButton,
.semi-page-item,
.semi-navigation-item,
.semi-tag-closable,
.semi-input-wrapper,
.semi-tabs-tab-button,
.semi-select,
.semi-button,
.semi-datepicker-range-input {
border-radius: 8px !important;
}
@keyframes slideInLeft {
from {
transform: translateX(-100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
/* Channel advanced settings side panel animations */
@keyframes slideInRight {
from {
transform: translateX(100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
.ec-dbcd0a3c01b55203 {
forced-color-adjust: auto;
}
/* ==================== TokenDance Home Page Styles ==================== */
.home-page {
font-family: "Source Serif 4", "Noto Serif SC", Georgia, serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.home-page ::selection {
background-color: #000;
color: #fff;
}
@keyframes homeFadeIn {
0% { opacity: 0; transform: translateY(40px); }
100% { opacity: 1; transform: translateY(0); }
}
.home-fade-in {
animation: homeFadeIn 0.6s ease-out both;
}
.home-fade-in-delay-1 {
animation: homeFadeIn 0.6s ease-out 0.2s both;
}
.home-fade-in-delay-2 {
animation: homeFadeIn 0.6s ease-out 0.4s both;
}
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
.home-marquee {
animation: marquee 20s linear infinite;
display: flex;
width: fit-content;
}
.font-heading {
font-family: "Source Serif 4", "Noto Serif SC", Georgia, serif;
}
.font-body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
/* ==================== Dashboard Section ==================== */
.dashboard-section {
background-color: rgba(255,255,255,0.02);
border: 1px solid rgba(255,255,255,0.06);
border-radius: 12px;
padding: 16px;
transition: border-color 0.2s ease;
}
.dashboard-section:hover {
border-color: rgba(255,255,255,0.1);
}
/* ==================== Dashboard 样式覆盖 ==================== */
/* Timeline — 暗色适配 */
.dark .semi-timeline-item-body-wrapper::before {
border-left-color: var(--semi-color-border) !important;
}
.dark .semi-timeline-item-connect-line {
border-left-color: var(--semi-color-border) !important;
}
.dark .semi-timeline-item-dot {
background-color: var(--semi-color-primary) !important;
border-color: var(--semi-color-border) !important;
}
.dark .semi-timeline-item-time {
color: var(--semi-color-text-2) !important;
font-family: 'JetBrains Mono', monospace !important;
font-size: 11px !important;
}
.dark .semi-timeline-item-content {
color: var(--semi-color-text-0) !important;
}
.dark .semi-timeline-item-extra {
color: var(--semi-color-text-2) !important;
}
/* Collapse — 暗色适配 */
.dark .semi-collapse-item {
border-color: var(--semi-color-border) !important;
}
.dark .semi-collapse-item-header {
background-color: transparent !important;
color: var(--semi-color-text-0) !important;
}
.dark .semi-collapse-item-content {
background-color: transparent !important;
color: var(--semi-color-text-2) !important;
font-family: 'JetBrains Mono', monospace !important;
font-size: 12px !important;
}
.dark .semi-collapse-item-header:hover {
background-color: var(--semi-color-fill-0) !important;
}
.dark .semi-collapse-expand-icon {
color: var(--semi-color-text-2) !important;
}
.dark .semi-collapse-item-header-text {
color: var(--semi-color-text-0) !important;
}
/* Scrollbar — 暗色滚动条 */
.dark ::-webkit-scrollbar {
width: 4px;
height: 4px;
}
.dark ::-webkit-scrollbar-track {
background: transparent;
}
.dark ::-webkit-scrollbar-thumb {
background: var(--semi-color-border);
border-radius: 2px;
}
.dark ::-webkit-scrollbar-thumb:hover {
background: var(--semi-color-text-2);
}
/* Chart container — 透明背景 */
.dark .vchart canvas,
.dark .vchart svg {
background-color: transparent !important;
}
/* ==================== Lucky Bag Animations ==================== */
@keyframes float {
0%, 100% {
transform: translateY(0) rotate(0deg);
opacity: 0.2;
}
25% {
transform: translateY(-20px) rotate(5deg);
opacity: 0.35;
}
50% {
transform: translateY(-10px) rotate(-3deg);
opacity: 0.25;
}
75% {
transform: translateY(-25px) rotate(2deg);
opacity: 0.3;
}
}
.animate-float {
animation: float linear infinite;
}
@keyframes confetti-fall {
0% {
transform: translateY(-10px) rotate(0deg) scale(1);
opacity: 1;
}
100% {
transform: translateY(400px) rotate(720deg) scale(0.3);
opacity: 0;
}
}
.animate-confetti {
animation: confetti-fall ease-out forwards;
}
@keyframes shimmer {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
.animate-shimmer {
animation: shimmer 2s infinite;
}
@media (prefers-reduced-motion: reduce) {
.animate-float,
.animate-confetti,
.animate-shimmer {
animation: none !important;
}
}