Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

1182 lines
30 KiB
CSS

/* ═══════════════════════════════════════════════════════════ */
/* ═══ 零点原核 · 内页风格包 v1.0 ═══ */
/* ═══ 深空主权控制台 · 与首页星空同源 · 霜砚设计 ═══ */
/* ═══ 国作登字-2026-A-00037559 ═══ */
/* ═══════════════════════════════════════════════════════════ */
/* ─── 1. 核心变量覆盖 · 月光金色系 ─── */
:root {
/* 深空背景 */
--bg: #0a0e27;
--bg-deep: #0a0e27;
--bg-purple: #1a1438;
--bg-panel: #0f1333;
--panel: rgba(15, 19, 51, 0.75);
/* 月光金 */
--moon-gold: #d4a574;
--moon-gold-soft: rgba(212, 165, 116, 0.4);
--moon-gold-faint: rgba(212, 165, 116, 0.12);
/* 玻璃面板 */
--glass-bg: rgba(20, 25, 60, 0.4);
--glass-border: rgba(212, 165, 116, 0.18);
/* 文字层级 */
--text: #e8eaf6;
--text-main: #e8eaf6;
--text-soft: #8892b0;
--text-faint: #4a5278;
--dim: #8892b0;
--muted: rgba(74, 82, 120, 0.8);
/* 功能色 */
--ok: #6fc3a8;
--warn: #d4a574;
--err: #d47a6f;
--idle: #8892b0;
/* 边框重映射 */
--border: rgba(212, 165, 116, 0.12);
--border-active: rgba(212, 165, 116, 0.3);
--card: var(--glass-bg);
--card-border: var(--glass-border);
--card-hover: var(--moon-gold-soft);
/* 字体 */
--font-serif: 'Noto Serif SC', 'Songti SC', 'STSong', serif;
--font-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;
}
/* ─── 2. 全局背景 · 深空径向渐变 ─── */
body {
background: var(--bg) !important;
}
body::before {
content: '';
position: fixed;
inset: 0;
z-index: -3;
background: radial-gradient(ellipse at 50% 0%, var(--bg-purple) 0%, var(--bg) 60%);
pointer-events: none;
}
body::after {
content: '';
position: fixed;
inset: 0;
z-index: -2;
opacity: 0.3;
background-image:
radial-gradient(1px 1px at 20% 30%, #fff, transparent),
radial-gradient(1px 1px at 80% 60%, #d4a574, transparent),
radial-gradient(1px 1px at 50% 80%, #fff, transparent),
radial-gradient(1px 1px at 10% 70%, #fff, transparent),
radial-gradient(1px 1px at 65% 20%, #d4a574, transparent),
radial-gradient(1px 1px at 90% 40%, #fff, transparent);
background-size: 400px 400px;
animation: consoleTwinkle 6s ease-in-out infinite;
pointer-events: none;
}
@keyframes consoleTwinkle {
0%, 100% { opacity: 0.2; }
50% { opacity: 0.5; }
}
/* ─── 3. 水平光带 · Sky Sweep ─── */
.sky-sweep {
position: fixed;
top: 0;
left: -50%;
width: 200%;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(212, 165, 116, 0.4), transparent);
animation: skySweep 12s linear infinite;
z-index: -1;
pointer-events: none;
}
@keyframes skySweep {
from { transform: translateX(-50%); }
to { transform: translateX(50%); }
}
/* ─── 4. 星空背景降密度 ─── */
.cosmos {
opacity: 0.3;
}
.nebula {
opacity: 0.04 !important;
}
.lake {
background: linear-gradient(to top, rgba(212, 165, 116, 0.02), rgba(212, 165, 116, 0.005), transparent) !important;
}
.lake::before {
background: linear-gradient(90deg, transparent, rgba(212, 165, 116, 0.12), rgba(212, 165, 116, 0.08), transparent) !important;
}
/* ─── 5. 侧栏 · 深空玻璃面板 ─── */
.sidebar {
background: rgba(15, 19, 51, 0.6) !important;
backdrop-filter: blur(16px) !important;
-webkit-backdrop-filter: blur(16px) !important;
border-right: 1px solid var(--glass-border) !important;
box-shadow: 1px 0 20px rgba(0, 0, 0, 0.4) !important;
}
.sidebar-header {
border-bottom-color: var(--glass-border) !important;
}
/* Logo 月光呼吸 */
.logo-glyph {
background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.15), rgba(212, 165, 116, 0.2) 60%, rgba(90, 60, 31, 0.15)) !important;
border: 1px solid rgba(212, 165, 116, 0.3) !important;
color: var(--moon-gold) !important;
box-shadow: 0 0 16px var(--moon-gold-soft) !important;
animation: consoleBreathe 4s ease-in-out infinite !important;
}
@keyframes consoleBreathe {
0%, 100% {
transform: scale(1);
filter: brightness(1);
box-shadow: 0 0 12px rgba(212, 165, 116, 0.2);
}
50% {
transform: scale(1.05);
filter: brightness(1.15);
box-shadow: 0 0 24px rgba(212, 165, 116, 0.4), 0 0 48px rgba(212, 165, 116, 0.15);
}
}
.logo-text {
font-family: var(--font-serif) !important;
letter-spacing: 0.15em !important;
}
/* 侧栏分组标题 */
.snav-section {
color: var(--text-faint) !important;
letter-spacing: 0.3em !important;
}
/* 侧栏导航项 */
.snav-item {
color: var(--text-soft) !important;
border-left: 2px solid transparent !important;
transition: all 0.3s !important;
}
.snav-item:hover {
background: var(--moon-gold-faint) !important;
color: var(--text-main) !important;
}
.snav-item.active {
background: rgba(212, 165, 116, 0.08) !important;
color: var(--moon-gold) !important;
border-left-color: var(--moon-gold) !important;
}
.snav-item.active::before {
content: '';
position: absolute;
left: 0;
top: 8px;
bottom: 8px;
width: 3px;
background: var(--moon-gold);
border-radius: 0 2px 2px 0;
box-shadow: 0 0 8px var(--moon-gold-soft);
}
.snav-item {
position: relative;
}
/* 侧栏徽章 */
.snav-badge {
color: var(--moon-gold) !important;
background: var(--moon-gold-faint) !important;
}
/* 侧栏分隔线 */
.snav-divider {
background: var(--glass-border) !important;
}
/* Architecture Flow */
.sidebar-arch {
border-top-color: var(--glass-border) !important;
}
.arch-dot.notion {
background: var(--moon-gold) !important;
box-shadow: 0 0 7px var(--moon-gold-soft) !important;
}
.arch-dot.web {
background: #6fc3a8 !important;
box-shadow: 0 0 7px rgba(111, 195, 168, 0.5) !important;
}
/* 侧栏底部 */
.sidebar-footer {
border-top-color: var(--glass-border) !important;
}
.status-dot {
background: var(--ok) !important;
box-shadow: 0 0 8px rgba(111, 195, 168, 0.5) !important;
}
/* ─── 6. 顶部主Header · 玻璃模糊 ─── */
.main-header {
background: rgba(10, 14, 39, 0.75) !important;
backdrop-filter: blur(20px) !important;
-webkit-backdrop-filter: blur(20px) !important;
border-bottom: 1px solid var(--glass-border) !important;
}
.persona-avatar {
background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.12), rgba(212, 165, 116, 0.2) 60%, rgba(90, 60, 31, 0.12)) !important;
border: 1px solid rgba(212, 165, 116, 0.3) !important;
color: var(--moon-gold) !important;
box-shadow: 0 0 12px rgba(212, 165, 116, 0.2);
animation: consoleBreathe 4s ease-in-out infinite !important;
}
.persona-name {
font-family: var(--font-serif) !important;
letter-spacing: 0.1em !important;
}
/* Heartbeat */
.heartbeat {
background: rgba(111, 195, 168, 0.06) !important;
border: 1px solid rgba(111, 195, 168, 0.12) !important;
}
.heartbeat-dot {
background: var(--ok) !important;
box-shadow: 0 0 6px rgba(111, 195, 168, 0.5) !important;
}
/* ─── 7. 主区域 ─── */
.main {
border-left: 1px solid var(--glass-border) !important;
}
.dashboard {
background: transparent;
}
/* ─── 8. 页面标题 · 宋体 + 金色辉光 ─── */
.dash-headline-glyph {
background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.12), rgba(212, 165, 116, 0.2) 60%, rgba(90, 60, 31, 0.15)) !important;
border: 1px solid rgba(212, 165, 116, 0.3) !important;
color: var(--moon-gold) !important;
box-shadow: 0 0 16px rgba(212, 165, 116, 0.2) !important;
animation: consoleBreathe 4s ease-in-out infinite !important;
}
.dash-headline-text h2 {
font-family: var(--font-serif) !important;
background: none !important;
-webkit-text-fill-color: var(--text-main) !important;
-webkit-background-clip: unset !important;
background-clip: unset !important;
text-shadow: 0 0 20px rgba(212, 165, 116, 0.3);
letter-spacing: 0.15em !important;
}
/* Section 标题 */
.dash-section-title {
color: var(--text-soft) !important;
}
.dash-section-title::after {
background: var(--glass-border) !important;
}
/* MODULE 标签 · 月光金 */
.module-tag {
background: var(--moon-gold-faint) !important;
border: 1px solid var(--moon-gold-soft) !important;
color: var(--moon-gold) !important;
}
/* Section 子标题 */
.dash-section-sub {
color: var(--text-soft) !important;
}
/* ─── 9. 玻璃卡片 · 全局统一 ─── */
.srv-card,
.s-card,
.agent-card,
.project-card,
.shield-stat,
.shield-layer,
.novel-module,
.novel-stat,
.shield-log {
background: var(--glass-bg) !important;
backdrop-filter: blur(18px) !important;
-webkit-backdrop-filter: blur(18px) !important;
border: 1px solid var(--glass-border) !important;
border-radius: 14px !important;
transition: all 0.4s !important;
}
/* 卡片顶部渐变线 → 月光金 */
.srv-card::before {
background: linear-gradient(90deg, var(--moon-gold), rgba(212, 165, 116, 0.3)) !important;
opacity: 0.3 !important;
}
.s-card::before {
background: linear-gradient(90deg, transparent, var(--moon-gold), transparent) !important;
}
/* 卡片悬停 · translateY + 金边 + 发光 */
.srv-card:hover,
.s-card:hover,
.agent-card:hover,
.project-card:hover {
transform: translateY(-2px) !important;
border-color: var(--moon-gold-soft) !important;
box-shadow: 0 12px 32px rgba(212, 165, 116, 0.12), 0 0 60px rgba(212, 165, 116, 0.04) !important;
}
.srv-card:hover::before {
opacity: 0.6 !important;
}
.srv-card::after {
background: radial-gradient(ellipse, rgba(212, 165, 116, 0.03), transparent 70%) !important;
}
/* 卡片呼吸动画 · 月光金 */
@keyframes consoleCardBreathe {
0%, 100% {
border-color: rgba(212, 165, 116, 0.12);
box-shadow: 0 0 0 rgba(212, 165, 116, 0), 0 2px 12px rgba(0, 0, 0, 0.3);
}
50% {
border-color: rgba(212, 165, 116, 0.25);
box-shadow: 0 0 28px rgba(212, 165, 116, 0.06), 0 0 60px rgba(212, 165, 116, 0.02), 0 2px 12px rgba(0, 0, 0, 0.3);
}
}
.srv-card, .s-card, .agent-card, .project-card {
animation: consoleCardBreathe 7s ease-in-out infinite !important;
will-change: border-color, box-shadow;
}
.shield-stat, .shield-layer, .novel-module, .novel-stat, .shield-log {
animation: consoleCardBreathe 8s ease-in-out infinite !important;
will-change: border-color, box-shadow;
}
/* OpenClaw 特殊呼吸 */
.openclaw-card {
background: linear-gradient(135deg, rgba(212, 165, 116, 0.04), rgba(20, 25, 60, 0.4)) !important;
border: 1px solid rgba(212, 165, 116, 0.15) !important;
}
.openclaw-card:hover {
border-color: rgba(212, 165, 116, 0.35) !important;
}
/* ─── 10. 状态点 · 呼吸光晕 ─── */
.srv-status-dot.on,
.svr-dot.on,
.snav-dot.ok {
background: var(--ok) !important;
box-shadow: 0 0 10px rgba(111, 195, 168, 0.5) !important;
}
.srv-status-dot.pending,
.svr-dot.pending,
.snav-dot.warn {
background: var(--warn) !important;
box-shadow: 0 0 8px rgba(212, 165, 116, 0.5) !important;
}
.srv-status-dot.off,
.svr-dot.off {
background: var(--err) !important;
box-shadow: 0 0 6px rgba(212, 122, 111, 0.4) !important;
}
/* Agent 心跳点 */
.agent-hb-dot.alive {
background: var(--ok) !important;
box-shadow: 0 0 8px rgba(111, 195, 168, 0.5) !important;
}
.agent-hb-dot.dead {
background: var(--err) !important;
}
/* ─── 11. 服务器卡片名称 · 宋体 ─── */
.srv-card-name {
font-family: var(--font-serif) !important;
letter-spacing: 0.1em !important;
}
/* 服务器徽章 */
.srv-badge.loc {
background: var(--moon-gold-faint) !important;
color: var(--moon-gold) !important;
border: 1px solid var(--moon-gold-soft) !important;
}
.srv-badge.spec {
background: var(--moon-gold-faint) !important;
color: var(--moon-gold) !important;
border: 1px solid rgba(212, 165, 116, 0.2) !important;
}
.srv-badge.ok {
background: rgba(111, 195, 168, 0.08) !important;
color: var(--ok) !important;
border: 1px solid rgba(111, 195, 168, 0.15) !important;
}
.srv-badge.warn {
background: rgba(212, 165, 116, 0.08) !important;
color: var(--warn) !important;
border: 1px solid rgba(212, 165, 116, 0.15) !important;
}
/* 分割线 */
.srv-divider {
background: var(--glass-border) !important;
}
/* 服务点 */
.srv-svc-dot.live {
background: var(--ok) !important;
}
.srv-svc-dot.mcp {
background: var(--moon-gold) !important;
}
.srv-svc-dot.db {
background: #a78bfa !important;
}
.srv-svc-dot.vpn {
background: var(--warn) !important;
}
.srv-svc-dot.relay {
background: var(--ok) !important;
}
/* 服务名 · 更柔和的标题 */
.srv-svc-name {
color: var(--text-main) !important;
}
/* 服务端口标签 */
.srv-svc-port {
background: rgba(212, 165, 116, 0.05) !important;
border: 1px solid rgba(212, 165, 116, 0.1) !important;
color: var(--text-faint) !important;
}
/* 连接标签 */
.srv-conn-tag {
background: rgba(10, 14, 39, 0.4) !important;
border: 1px solid rgba(212, 165, 116, 0.08) !important;
color: var(--text-soft) !important;
}
/* ─── 12. 服务器分页 ─── */
.paged-card-btn {
border: 1px solid var(--glass-border) !important;
background: var(--glass-bg) !important;
color: var(--text-soft) !important;
}
.paged-card-btn:hover:not(:disabled) {
border-color: var(--moon-gold) !important;
color: var(--moon-gold) !important;
background: var(--moon-gold-faint) !important;
}
.paged-dot.active {
background: var(--moon-gold) !important;
box-shadow: 0 0 6px rgba(212, 165, 116, 0.4) !important;
}
/* ─── 13. 大数字 · 月光金 ─── */
.metric-val,
.shield-stat-num,
.novel-stat-num {
font-family: var(--font-mono) !important;
color: var(--moon-gold) !important;
}
.bignum {
font-family: var(--font-mono);
font-size: 36px;
font-weight: 300;
color: var(--moon-gold);
letter-spacing: 0.02em;
line-height: 1;
}
.bignum-label {
font-size: 10px;
color: var(--text-soft);
letter-spacing: 0.25em;
margin-top: 4px;
}
/* 在线计数 */
#svrOnlineCount {
color: var(--moon-gold) !important;
font-size: 16px;
}
/* ─── 14. 项目卡片 ─── */
.project-card-name {
font-family: var(--font-serif) !important;
letter-spacing: 0.05em !important;
}
.project-card-server {
color: var(--text-faint) !important;
}
.proj-badge.active {
background: rgba(212, 165, 116, 0.1) !important;
color: var(--moon-gold) !important;
border: 1px solid rgba(212, 165, 116, 0.2) !important;
}
.proj-badge.done {
background: rgba(111, 195, 168, 0.1) !important;
color: var(--ok) !important;
border: 1px solid rgba(111, 195, 168, 0.2) !important;
}
.proj-badge.enabled {
background: var(--moon-gold-faint) !important;
color: var(--moon-gold) !important;
border: 1px solid rgba(212, 165, 116, 0.18) !important;
}
.proj-badge.planned {
background: rgba(136, 146, 176, 0.08) !important;
color: var(--text-soft) !important;
border: 1px solid rgba(136, 146, 176, 0.15) !important;
}
.proj-badge.pending {
background: rgba(212, 165, 116, 0.08) !important;
color: var(--warn) !important;
border: 1px solid rgba(212, 165, 116, 0.15) !important;
}
/* ─── 15. Agent 卡片 ─── */
.agent-name {
font-family: var(--font-serif) !important;
letter-spacing: 0.05em !important;
}
.agent-icon.claw {
background: linear-gradient(135deg, rgba(212, 165, 116, 0.15), rgba(212, 165, 116, 0.05)) !important;
border: 1px solid rgba(212, 165, 116, 0.25) !important;
color: var(--moon-gold) !important;
}
.agent-icon.mcp {
background: linear-gradient(135deg, rgba(167, 139, 250, 0.12), rgba(212, 165, 116, 0.06)) !important;
border: 1px solid rgba(167, 139, 250, 0.2) !important;
}
.agent-icon.gh {
background: linear-gradient(135deg, rgba(111, 195, 168, 0.12), rgba(212, 165, 116, 0.06)) !important;
border: 1px solid rgba(111, 195, 168, 0.2) !important;
color: var(--ok) !important;
}
.agent-heartbeat {
background: rgba(10, 14, 39, 0.4) !important;
border: 1px solid var(--glass-border) !important;
}
.agent-card[data-alive="true"]:hover {
box-shadow: 0 8px 32px rgba(212, 165, 116, 0.08) !important;
}
/* Agent chat button */
.agent-chat-btn {
background: rgba(212, 165, 116, 0.08) !important;
border: 1px solid rgba(212, 165, 116, 0.15) !important;
color: var(--moon-gold) !important;
}
.agent-chat-btn:hover {
background: rgba(212, 165, 116, 0.15) !important;
border-color: rgba(212, 165, 116, 0.3) !important;
}
/* OpenClaw phases */
.oc-phase.done {
background: rgba(111, 195, 168, 0.1) !important;
color: var(--ok) !important;
border: 1px solid rgba(111, 195, 168, 0.15) !important;
}
.oc-phase.pending {
background: rgba(212, 165, 116, 0.08) !important;
color: var(--warn) !important;
border: 1px solid rgba(212, 165, 116, 0.15) !important;
}
/* ─── 16. 人格体卡片 ─── */
.persona-pname {
font-family: var(--font-serif) !important;
}
.persona-icon.zy {
background: rgba(212, 165, 116, 0.1) !important;
color: var(--moon-gold) !important;
border: 1px solid rgba(212, 165, 116, 0.2) !important;
}
.persona-icon.ym {
background: rgba(167, 139, 250, 0.1) !important;
color: #c4b5fd !important;
border: 1px solid rgba(167, 139, 250, 0.2) !important;
}
/* 人格体状态徽章 */
.s-card-badge.badge-ok {
background: rgba(111, 195, 168, 0.1) !important;
color: var(--ok) !important;
border: 1px solid rgba(111, 195, 168, 0.15) !important;
}
.s-card-badge.badge-warn {
background: rgba(212, 165, 116, 0.1) !important;
color: var(--warn) !important;
border: 1px solid rgba(212, 165, 116, 0.15) !important;
}
.s-card-badge.badge-err {
background: rgba(212, 122, 111, 0.1) !important;
color: var(--err) !important;
border: 1px solid rgba(212, 122, 111, 0.15) !important;
}
/* ─── 17. 保护罩日志 ─── */
.shield-layer-tag {
color: var(--moon-gold) !important;
}
.shield-log-head {
border-bottom-color: var(--glass-border) !important;
}
.shield-log-title {
color: var(--text-soft) !important;
}
.shield-log-action.ban {
color: var(--err) !important;
}
.shield-log-action.unban {
color: var(--ok) !important;
}
.shield-log-ip {
color: var(--warn) !important;
}
/* ─── 18. 智库节点 ─── */
.novel-module-name {
font-family: var(--font-serif) !important;
}
/* ─── 19. 系统状态面板 ─── */
.s-card-title {
color: var(--text-soft) !important;
}
/* ─── 20. 聊天视图 · 月光金版本 ─── */
.welcome-glyph {
background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.1), rgba(212, 165, 116, 0.2) 60%, rgba(90, 60, 31, 0.12)) !important;
border: 1px solid rgba(212, 165, 116, 0.3) !important;
color: var(--moon-gold) !important;
box-shadow: 0 0 16px rgba(212, 165, 116, 0.2) !important;
}
.welcome-title {
background: none !important;
-webkit-text-fill-color: var(--text-main) !important;
-webkit-background-clip: unset !important;
background-clip: unset !important;
font-family: var(--font-serif) !important;
text-shadow: 0 0 20px rgba(212, 165, 116, 0.3);
}
/* 人格体路径卡片 */
.persona-path-card {
background: var(--glass-bg) !important;
border: 1px solid var(--glass-border) !important;
}
.persona-path-card:hover {
border-color: var(--moon-gold-soft) !important;
box-shadow: 0 4px 24px rgba(212, 165, 116, 0.1) !important;
}
.persona-path-name {
font-family: var(--font-serif) !important;
}
.persona-path-icon.notion-icon {
background: linear-gradient(135deg, rgba(212, 165, 116, 0.15), rgba(167, 139, 250, 0.08)) !important;
border: 1px solid rgba(212, 165, 116, 0.25) !important;
color: var(--moon-gold) !important;
}
.persona-path-icon.github-icon {
background: linear-gradient(135deg, rgba(111, 195, 168, 0.12), rgba(212, 165, 116, 0.08)) !important;
border: 1px solid rgba(111, 195, 168, 0.2) !important;
color: var(--ok) !important;
}
.persona-path-dot.ok {
background: var(--ok) !important;
box-shadow: 0 0 6px rgba(111, 195, 168, 0.4) !important;
}
.persona-path-card:hover .persona-path-arrow {
color: var(--moon-gold) !important;
}
/* Chat hints */
.hint-chip {
background: var(--moon-gold-faint) !important;
border: 1px solid rgba(212, 165, 116, 0.15) !important;
color: var(--text-soft) !important;
}
.hint-chip:hover {
border-color: var(--moon-gold-soft) !important;
color: var(--text-main) !important;
background: rgba(212, 165, 116, 0.15) !important;
}
/* Chat input area */
.input-area {
background: rgba(10, 14, 39, 0.9) !important;
border-top-color: var(--glass-border) !important;
}
.input-wrap {
background: var(--glass-bg) !important;
border-color: var(--glass-border) !important;
}
.input-wrap:focus-within {
border-color: var(--moon-gold-soft) !important;
}
.send-btn {
background: linear-gradient(135deg, var(--moon-gold), rgba(212, 165, 116, 0.6)) !important;
}
/* Persona selector */
.persona-selector {
background: rgba(15, 19, 51, 0.7) !important;
border: 1px solid var(--glass-border) !important;
}
.persona-sel-btn.active {
background: var(--moon-gold-faint) !important;
border-color: rgba(212, 165, 116, 0.25) !important;
color: var(--moon-gold) !important;
}
.persona-sel-btn.active .persona-sel-name {
color: var(--moon-gold) !important;
}
.persona-sel-icon.zy-sel {
background: rgba(212, 165, 116, 0.1) !important;
color: var(--moon-gold) !important;
border: 1px solid rgba(212, 165, 116, 0.2) !important;
}
/* Chat target bar */
.chat-target-bar {
background: rgba(15, 19, 51, 0.5) !important;
border: 1px solid var(--glass-border) !important;
}
.chat-target-select {
background: rgba(15, 19, 51, 0.8) !important;
border: 1px solid var(--glass-border) !important;
}
.chat-target-select:focus {
border-color: var(--moon-gold) !important;
}
/* ─── 21. 登录面板 · 与深空同源 ─── */
.login-card {
background: rgba(15, 19, 51, 0.8) !important;
border: 1px solid var(--glass-border) !important;
backdrop-filter: blur(24px) !important;
-webkit-backdrop-filter: blur(24px) !important;
}
.login-glyph {
background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.1), rgba(212, 165, 116, 0.2) 60%, rgba(90, 60, 31, 0.15)) !important;
border: 1px solid rgba(212, 165, 116, 0.3) !important;
color: var(--moon-gold) !important;
box-shadow: 0 0 16px rgba(212, 165, 116, 0.2);
animation: consoleBreathe 4s ease-in-out infinite !important;
}
.login-input {
background: rgba(10, 14, 39, 0.6) !important;
border: 1px solid var(--glass-border) !important;
}
.login-input:focus {
border-color: var(--moon-gold) !important;
box-shadow: 0 0 12px rgba(212, 165, 116, 0.15);
}
.login-send-btn {
border: 1px solid rgba(212, 165, 116, 0.25) !important;
background: rgba(212, 165, 116, 0.08) !important;
color: var(--moon-gold) !important;
}
.login-send-btn:hover:not(:disabled) {
background: rgba(212, 165, 116, 0.15) !important;
border-color: rgba(212, 165, 116, 0.4) !important;
}
.login-submit {
background: linear-gradient(135deg, rgba(212, 165, 116, 0.2), rgba(167, 139, 250, 0.12)) !important;
border: 1px solid rgba(212, 165, 116, 0.25) !important;
}
.login-submit:hover:not(:disabled) {
background: linear-gradient(135deg, rgba(212, 165, 116, 0.3), rgba(167, 139, 250, 0.2)) !important;
border-color: rgba(212, 165, 116, 0.5) !important;
}
.login-msg.ok {
color: var(--ok) !important;
}
.login-msg.err {
color: var(--err) !important;
}
.login-msg.info {
color: var(--moon-gold) !important;
}
/* 登录用户条 */
.login-user-bar {
background: rgba(212, 165, 116, 0.06) !important;
border: 1px solid rgba(212, 165, 116, 0.1) !important;
}
.login-user-bar:hover {
border-color: rgba(212, 165, 116, 0.25) !important;
}
.login-user-dot {
background: var(--ok) !important;
box-shadow: 0 0 6px rgba(111, 195, 168, 0.5) !important;
}
/* ─── 22. 标签 chips ─── */
.chip.gold,
.data-src-tag.live {
background: var(--moon-gold-faint) !important;
color: var(--moon-gold) !important;
border: 1px solid var(--moon-gold-soft) !important;
}
.chip.soft {
background: rgba(136, 146, 176, 0.1) !important;
color: var(--text-soft) !important;
border: 1px solid rgba(136, 146, 176, 0.2) !important;
}
/* ─── 23. 滚动条 · 月光金 ─── */
::-webkit-scrollbar-thumb {
background: rgba(212, 165, 116, 0.15) !important;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(212, 165, 116, 0.25) !important;
}
/* ─── 24. 导航标签 ─── */
.nav-tab.active {
color: var(--moon-gold) !important;
border-bottom-color: var(--moon-gold) !important;
}
/* ─── 25. New chat button ─── */
.new-chat-btn {
border: 1px dashed var(--glass-border) !important;
background: var(--moon-gold-faint) !important;
color: var(--moon-gold) !important;
}
.new-chat-btn:hover {
background: rgba(212, 165, 116, 0.12) !important;
border-color: var(--moon-gold) !important;
}
/* ─── 26. Tools panel ─── */
.tools-panel {
background: rgba(15, 19, 51, 0.9) !important;
border: 1px solid var(--glass-border) !important;
}
.tool-card {
background: var(--glass-bg) !important;
border: 1px solid var(--glass-border) !important;
}
.tool-card:hover {
border-color: var(--moon-gold-soft) !important;
background: var(--moon-gold-faint) !important;
}
.tool-status.connected {
color: var(--ok) !important;
background: rgba(111, 195, 168, 0.08) !important;
border-color: rgba(111, 195, 168, 0.15) !important;
}
/* ─── 27. System status dots · enhanced ─── */
#sysDot_main.on, #sysDot_mcp.on, #sysDot_glada.on, #sysDot_ops.on,
.srv-status-dot.on {
animation: consoleStatusPulse 2s ease-in-out infinite !important;
}
@keyframes consoleStatusPulse {
0%, 100% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.3); opacity: 0.7; }
}
/* ─── 28. 认知链 · Cognitive Chain ─── */
.cog-node.notion {
color: var(--moon-gold) !important;
border-color: rgba(212, 165, 116, 0.2) !important;
background: rgba(212, 165, 116, 0.05) !important;
}
.cog-node.web {
color: var(--ok) !important;
border-color: rgba(111, 195, 168, 0.2) !important;
background: rgba(111, 195, 168, 0.05) !important;
}
.cog-node.github {
color: var(--ok) !important;
border-color: rgba(111, 195, 168, 0.2) !important;
background: rgba(111, 195, 168, 0.05) !important;
}
/* ─── 29. 消息气泡 · subtle gold ─── */
.msg-content.ai strong,
.msg-content.ai b {
color: var(--moon-gold) !important;
}
.msg-content.ai h2 {
color: var(--moon-gold) !important;
}
.msg-meta {
background: rgba(212, 165, 116, 0.04) !important;
border: 1px solid rgba(212, 165, 116, 0.08) !important;
}
.msg-meta-item .value {
color: var(--moon-gold) !important;
}
/* ─── 30. Connection log ─── */
.conn-log {
background: rgba(10, 14, 39, 0.7) !important;
border: 1px solid var(--glass-border) !important;
}
.conn-log-line.log-ok .log-msg {
color: var(--ok) !important;
}
.conn-log-line.log-info .log-msg {
color: var(--moon-gold) !important;
}
/* ─── 31. Data freshness tag ─── */
.s-card-fresh {
animation: consoleFreshPulse 0.8s ease-out !important;
}
@keyframes consoleFreshPulse {
0% { border-color: rgba(212, 165, 116, 0.35); }
100% { border-color: var(--glass-border); }
}
/* ─── 32. Reduced Motion ─── */
@media (prefers-reduced-motion: reduce) {
.sky-sweep { animation: none !important; }
body::after { animation: none !important; }
}
/* ─── 33. 链接色 · 月光金 ─── */
a {
color: var(--moon-gold);
}
a:hover {
color: #e8c49a;
}
/* 保留聊天内特殊链接 */
.msg-content a {
color: var(--moon-gold);
text-decoration: underline;
text-decoration-color: rgba(212, 165, 116, 0.3);
}
/* ─── 34. 用户消息气泡 · 月光金调 ─── */
.msg-content.user {
background: rgba(212, 165, 116, 0.07) !important;
border: 1px solid rgba(212, 165, 116, 0.1) !important;
}
.msg-avatar.user {
background: rgba(212, 165, 116, 0.06) !important;
border: 1px solid rgba(212, 165, 116, 0.12) !important;
color: var(--moon-gold) !important;
}
/* AI 消息保持紫色调以区分 */
.msg-content.ai {
background: rgba(167, 139, 250, 0.05) !important;
border: 1px solid rgba(167, 139, 250, 0.08) !important;
}
.msg-avatar.ai {
background: linear-gradient(135deg, rgba(212, 165, 116, 0.1), rgba(167, 139, 250, 0.08)) !important;
border: 1px solid rgba(212, 165, 116, 0.15) !important;
color: var(--moon-gold) !important;
}
/* ─── 35. 系统步骤点 · 统一色调 ─── */
.sys-step .dot.pending {
background: var(--warn) !important;
box-shadow: 0 0 5px rgba(212, 165, 116, 0.4) !important;
}
.sys-step .dot.done {
background: var(--ok) !important;
box-shadow: 0 0 5px rgba(111, 195, 168, 0.4) !important;
}
.sys-step .dot.active {
background: var(--moon-gold) !important;
box-shadow: 0 0 7px rgba(212, 165, 116, 0.5) !important;
}
/* ─── 36. Welcome 状态点 ─── */
.ws-dot.online {
background: var(--ok) !important;
box-shadow: 0 0 8px rgba(111, 195, 168, 0.4) !important;
}
.ws-dot.offline {
background: var(--err) !important;
box-shadow: 0 0 5px rgba(212, 122, 111, 0.3) !important;
}
/* ─── 37. Dashboard Headline 光晕 ─── */
.dash-headline::before {
background: radial-gradient(circle, rgba(212, 165, 116, 0.04), transparent 70%) !important;
}
.dash-section::before {
background: radial-gradient(circle, rgba(212, 165, 116, 0.025), transparent 70%) !important;
}
/* ─── 38. 数据解释卡片 ─── */
.s-card-explain {
background: rgba(212, 165, 116, 0.03) !important;
border: 1px solid rgba(212, 165, 116, 0.06) !important;
}
/* ─── 38b. 进度条 ─── */
.prog-fill.ok {
background: linear-gradient(90deg, var(--ok), var(--moon-gold)) !important;
}
.prog-fill.warn {
background: linear-gradient(90deg, var(--warn), var(--err)) !important;
}
/* ─── 39. Nav Tabs (chat/dashboard) ─── */
.nav-tab {
border-bottom: 2px solid transparent;
}
.nav-tab:hover {
color: var(--text-main) !important;
}
/* ─── 40. CAB 看板 · 待办状态色 ─── */
.proj-badge.error {
background: rgba(212, 122, 111, 0.1) !important;
color: var(--err) !important;
border: 1px solid rgba(212, 122, 111, 0.2) !important;
}
/* ─── 41. Back link ─── */
.back-link {
color: var(--text-soft) !important;
}
.back-link:hover {
color: var(--moon-gold) !important;
border-color: var(--glass-border) !important;
}
/* ─── 42. 移动端适配 ─── */
@media (max-width: 768px) {
.sky-sweep {
display: none;
}
}