/* ==================== 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); } } /* * 浠g悊绠$悊椤碉細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; } }