feat: 添加 PipexERP 企业统一品牌资源

- 创建品牌资源目录 brand/
  - Logo SVG(主Logo、深色模式、图标、favicon)
  - 各子系统专用 Logo(AI-Proj、Gitea、Jenkins、Metabase、DBeaver)
  - CSS 变量文件 pipexerp-variables.css
  - 品牌条样式 pipexerp-brand-bar.css
  - 品牌 Header 模板

- 更新导航页 nav-home.html
  - 企业区域配色改为企业绿 #52c41a
  - 更新标题和 Logo 为 PipexERP
  - 添加 favicon 引用

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
qiudl
2026-01-03 15:36:29 +10:30
parent 6a4be4ca4c
commit 6b9607a19b
13 changed files with 491 additions and 6 deletions

View File

@@ -0,0 +1,147 @@
/**
* PipexERP Brand Bar
* 统一品牌条样式 - 用于在各子系统顶部显示
*/
.pipex-brand-bar {
display: flex;
align-items: center;
justify-content: space-between;
height: 48px;
padding: 0 24px;
background: linear-gradient(135deg, #52c41a 0%, #389e0d 100%);
color: white;
font-family: var(--pipex-font-family, 'Segoe UI', -apple-system, sans-serif);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
position: relative;
z-index: 1000;
}
.pipex-brand-bar--dark {
background: linear-gradient(135deg, #135200 0%, #237804 100%);
}
.pipex-brand-bar__logo {
display: flex;
align-items: center;
gap: 12px;
text-decoration: none;
color: white;
}
.pipex-brand-bar__icon {
width: 28px;
height: 28px;
}
.pipex-brand-bar__title {
font-size: 16px;
font-weight: 600;
letter-spacing: 0.5px;
}
.pipex-brand-bar__divider {
width: 1px;
height: 20px;
background: rgba(255, 255, 255, 0.4);
margin: 0 12px;
}
.pipex-brand-bar__subtitle {
font-size: 14px;
font-weight: 500;
opacity: 0.9;
}
.pipex-brand-bar__nav {
display: flex;
align-items: center;
gap: 24px;
}
.pipex-brand-bar__link {
color: white;
text-decoration: none;
font-size: 14px;
opacity: 0.85;
transition: opacity 0.2s ease;
}
.pipex-brand-bar__link:hover {
opacity: 1;
}
.pipex-brand-bar__badge {
display: inline-flex;
align-items: center;
padding: 4px 10px;
background: rgba(255, 255, 255, 0.2);
border-radius: 12px;
font-size: 12px;
font-weight: 500;
}
/* Footer Brand */
.pipex-brand-footer {
display: flex;
align-items: center;
justify-content: center;
padding: 16px;
gap: 8px;
font-size: 13px;
color: var(--pipex-text-tertiary, #999);
border-top: 1px solid var(--pipex-border, #e8e8e8);
}
.pipex-brand-footer__logo {
width: 20px;
height: 20px;
}
.pipex-brand-footer a {
color: var(--pipex-primary, #52c41a);
text-decoration: none;
}
.pipex-brand-footer a:hover {
text-decoration: underline;
}
/* Compact Brand Tag */
.pipex-brand-tag {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 4px 12px;
background: var(--pipex-primary-bg, rgba(82, 196, 26, 0.1));
border: 1px solid var(--pipex-primary, #52c41a);
border-radius: 16px;
font-size: 12px;
font-weight: 500;
color: var(--pipex-primary, #52c41a);
}
.pipex-brand-tag__icon {
width: 14px;
height: 14px;
}
/* Responsive */
@media (max-width: 768px) {
.pipex-brand-bar {
padding: 0 16px;
height: 44px;
}
.pipex-brand-bar__title {
font-size: 14px;
}
.pipex-brand-bar__subtitle {
font-size: 12px;
}
.pipex-brand-bar__nav {
display: none;
}
}

View File

@@ -0,0 +1,130 @@
/**
* PipexERP Brand CSS Variables
* 企业统一品牌色彩系统
*/
:root {
/* === Primary Colors (Enterprise Green) === */
--pipex-primary: #52c41a;
--pipex-primary-hover: #389e0d;
--pipex-primary-active: #237804;
--pipex-primary-light: #b7eb8f;
--pipex-primary-lighter: #d9f7be;
--pipex-primary-dark: #135200;
--pipex-primary-bg: rgba(82, 196, 26, 0.1);
/* === Functional Colors === */
--pipex-success: #52c41a;
--pipex-info: #1890ff;
--pipex-warning: #faad14;
--pipex-error: #ff4d4f;
/* === Light Mode Colors === */
--pipex-bg-primary: #ffffff;
--pipex-bg-secondary: #fafafa;
--pipex-bg-tertiary: #f5f5f5;
--pipex-text-primary: #333333;
--pipex-text-secondary: #666666;
--pipex-text-tertiary: #999999;
--pipex-border: #d9d9d9;
--pipex-border-light: #e8e8e8;
--pipex-shadow: rgba(0, 0, 0, 0.08);
--pipex-shadow-hover: rgba(0, 0, 0, 0.12);
/* === Component Specific === */
--pipex-header-height: 56px;
--pipex-sidebar-width: 240px;
--pipex-border-radius: 8px;
--pipex-border-radius-sm: 4px;
--pipex-border-radius-lg: 12px;
--pipex-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
/* === Typography === */
--pipex-font-family: 'Segoe UI', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Noto Sans SC', sans-serif;
--pipex-font-size-xs: 12px;
--pipex-font-size-sm: 14px;
--pipex-font-size-base: 16px;
--pipex-font-size-lg: 18px;
--pipex-font-size-xl: 20px;
--pipex-font-size-2xl: 24px;
--pipex-font-weight-normal: 400;
--pipex-font-weight-medium: 500;
--pipex-font-weight-semibold: 600;
--pipex-font-weight-bold: 700;
/* === Spacing === */
--pipex-spacing-xs: 4px;
--pipex-spacing-sm: 8px;
--pipex-spacing-md: 16px;
--pipex-spacing-lg: 24px;
--pipex-spacing-xl: 32px;
--pipex-spacing-2xl: 48px;
}
/* === Dark Mode Colors === */
[data-theme="dark"],
.dark,
.pipex-dark {
--pipex-primary: #73d13d;
--pipex-primary-hover: #95de64;
--pipex-primary-active: #52c41a;
--pipex-primary-light: #237804;
--pipex-primary-lighter: #135200;
--pipex-primary-dark: #b7eb8f;
--pipex-primary-bg: rgba(115, 209, 61, 0.15);
--pipex-bg-primary: #0d1117;
--pipex-bg-secondary: #161b22;
--pipex-bg-tertiary: #21262d;
--pipex-text-primary: #e6edf3;
--pipex-text-secondary: #8b949e;
--pipex-text-tertiary: #6e7681;
--pipex-border: #30363d;
--pipex-border-light: #21262d;
--pipex-shadow: rgba(0, 0, 0, 0.3);
--pipex-shadow-hover: rgba(0, 0, 0, 0.4);
}
/* === Utility Classes === */
.pipex-text-primary {
color: var(--pipex-primary) !important;
}
.pipex-bg-primary {
background-color: var(--pipex-primary) !important;
}
.pipex-border-primary {
border-color: var(--pipex-primary) !important;
}
.pipex-btn-primary {
background: linear-gradient(135deg, var(--pipex-primary), var(--pipex-primary-hover));
color: white;
border: none;
padding: var(--pipex-spacing-sm) var(--pipex-spacing-md);
border-radius: var(--pipex-border-radius);
cursor: pointer;
transition: var(--pipex-transition);
font-weight: var(--pipex-font-weight-medium);
}
.pipex-btn-primary:hover {
background: linear-gradient(135deg, var(--pipex-primary-hover), var(--pipex-primary-active));
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(82, 196, 26, 0.3);
}
.pipex-card {
background: var(--pipex-bg-primary);
border: 1px solid var(--pipex-border);
border-radius: var(--pipex-border-radius-lg);
padding: var(--pipex-spacing-lg);
box-shadow: 0 2px 8px var(--pipex-shadow);
transition: var(--pipex-transition);
}
.pipex-card:hover {
box-shadow: 0 4px 16px var(--pipex-shadow-hover);
border-color: var(--pipex-primary);
}

13
brand/logo/favicon.svg Normal file
View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<defs>
<linearGradient id="faviconGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#73d13d"/>
<stop offset="50%" style="stop-color:#52c41a"/>
<stop offset="100%" style="stop-color:#389e0d"/>
</linearGradient>
</defs>
<!-- Rounded square background -->
<rect x="0" y="0" width="32" height="32" rx="6" ry="6" fill="url(#faviconGradient)"/>
<!-- P letter -->
<path d="M10 6 L10 26 L14 26 L14 18 L20 18 C24 18 27 15 27 12 C27 9 24 6 20 6 Z M14 10 L19 10 C21.5 10 23 11 23 12 C23 13 21.5 14 19 14 L14 14 Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 657 B

View File

@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 40">
<defs>
<linearGradient id="brandGradientAI" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#52c41a"/>
<stop offset="100%" style="stop-color:#389e0d"/>
</linearGradient>
</defs>
<g transform="translate(0, 4)">
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientAI)"/>
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</g>
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
<tspan fill="url(#brandGradientAI)">Pipex</tspan><tspan fill="#333">ERP</tspan>
</text>
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">AI-Proj</text>
</svg>

After

Width:  |  Height:  |  Size: 996 B

View File

@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 360 40">
<defs>
<linearGradient id="brandGradientDB" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#52c41a"/>
<stop offset="100%" style="stop-color:#389e0d"/>
</linearGradient>
</defs>
<g transform="translate(0, 4)">
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientDB)"/>
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</g>
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
<tspan fill="url(#brandGradientDB)">Pipex</tspan><tspan fill="#333">ERP</tspan>
</text>
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">DB Manager</text>
</svg>

After

Width:  |  Height:  |  Size: 999 B

View File

@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 40">
<defs>
<linearGradient id="brandGradientGitea" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#52c41a"/>
<stop offset="100%" style="stop-color:#389e0d"/>
</linearGradient>
</defs>
<g transform="translate(0, 4)">
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientGitea)"/>
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</g>
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
<tspan fill="url(#brandGradientGitea)">Pipex</tspan><tspan fill="#333">ERP</tspan>
</text>
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">Gitea</text>
</svg>

After

Width:  |  Height:  |  Size: 1003 B

View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<defs>
<linearGradient id="iconGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#73d13d"/>
<stop offset="50%" style="stop-color:#52c41a"/>
<stop offset="100%" style="stop-color:#389e0d"/>
</linearGradient>
</defs>
<!-- Hexagon shape -->
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#iconGradient)"/>
<!-- Inner P letter -->
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 636 B

View File

@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 40">
<defs>
<linearGradient id="brandGradientJenkins" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#52c41a"/>
<stop offset="100%" style="stop-color:#389e0d"/>
</linearGradient>
</defs>
<g transform="translate(0, 4)">
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientJenkins)"/>
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</g>
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
<tspan fill="url(#brandGradientJenkins)">Pipex</tspan><tspan fill="#333">ERP</tspan>
</text>
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">Jenkins</text>
</svg>

After

Width:  |  Height:  |  Size: 1011 B

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280 40">
<defs>
<linearGradient id="brandGradientDark" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#73d13d"/>
<stop offset="100%" style="stop-color:#52c41a"/>
</linearGradient>
</defs>
<!-- Logo Icon -->
<g transform="translate(0, 4)">
<!-- Hexagon shape representing enterprise/tech -->
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientDark)"/>
<!-- Inner P letter -->
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="#0d1117"/>
</g>
<!-- PipexERP Text -->
<text x="40" y="28" font-family="'Segoe UI', 'SF Pro Display', -apple-system, sans-serif" font-size="24" font-weight="700">
<tspan fill="url(#brandGradientDark)">Pipex</tspan><tspan fill="#e6edf3">ERP</tspan>
</text>
</svg>

After

Width:  |  Height:  |  Size: 942 B

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280 40">
<defs>
<linearGradient id="brandGradient" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#52c41a"/>
<stop offset="100%" style="stop-color:#389e0d"/>
</linearGradient>
</defs>
<!-- Logo Icon -->
<g transform="translate(0, 4)">
<!-- Hexagon shape representing enterprise/tech -->
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradient)"/>
<!-- Inner P letter -->
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</g>
<!-- PipexERP Text -->
<text x="40" y="28" font-family="'Segoe UI', 'SF Pro Display', -apple-system, sans-serif" font-size="24" font-weight="700" fill="#333333">
<tspan fill="url(#brandGradient)">Pipex</tspan><tspan fill="#333333">ERP</tspan>
</text>
</svg>

After

Width:  |  Height:  |  Size: 943 B

View File

@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 340 40">
<defs>
<linearGradient id="brandGradientMeta" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#52c41a"/>
<stop offset="100%" style="stop-color:#389e0d"/>
</linearGradient>
</defs>
<g transform="translate(0, 4)">
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#brandGradientMeta)"/>
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</g>
<text x="40" y="28" font-family="'Segoe UI', -apple-system, sans-serif" font-size="22" font-weight="700">
<tspan fill="url(#brandGradientMeta)">Pipex</tspan><tspan fill="#333">ERP</tspan>
</text>
<line x1="168" y1="10" x2="168" y2="30" stroke="#d9d9d9" stroke-width="1"/>
<text x="180" y="27" font-family="'Segoe UI', -apple-system, sans-serif" font-size="18" font-weight="500" fill="#666">Metabase</text>
</svg>

After

Width:  |  Height:  |  Size: 1003 B

View File

@@ -0,0 +1,58 @@
<!-- PipexERP Brand Header Template -->
<!-- 使用方法: 复制此代码到各子系统的 header 区域 -->
<!-- 方式1: 完整品牌条 -->
<header class="pipex-brand-bar">
<a href="https://www.pipexerp.com" class="pipex-brand-bar__logo" target="_blank">
<svg class="pipex-brand-bar__icon" viewBox="0 0 32 32">
<defs>
<linearGradient id="headerIconGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#fff"/>
<stop offset="100%" style="stop-color:#d9f7be"/>
</linearGradient>
</defs>
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="url(#headerIconGradient)"/>
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="#52c41a"/>
</svg>
<span class="pipex-brand-bar__title">PipexERP</span>
<span class="pipex-brand-bar__divider"></span>
<span class="pipex-brand-bar__subtitle"><!-- 子系统名称 --></span>
</a>
<nav class="pipex-brand-bar__nav">
<a href="https://ai.pipexerp.com" class="pipex-brand-bar__link">AI-Proj</a>
<a href="https://gitea.pipexerp.com" class="pipex-brand-bar__link">Gitea</a>
<a href="https://jenkins.pipexerp.com" class="pipex-brand-bar__link">Jenkins</a>
<a href="https://meta.pipexerp.com" class="pipex-brand-bar__link">Metabase</a>
</nav>
</header>
<!-- 方式2: 页脚品牌标识 -->
<footer class="pipex-brand-footer">
<svg class="pipex-brand-footer__logo" viewBox="0 0 32 32">
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="#52c41a"/>
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</svg>
<span>Powered by <a href="https://www.pipexerp.com">PipexERP</a></span>
</footer>
<!-- 方式3: 紧凑品牌标签 (适用于空间有限的区域) -->
<span class="pipex-brand-tag">
<svg class="pipex-brand-tag__icon" viewBox="0 0 32 32">
<path d="M16 0 L28 8 L28 24 L16 32 L4 24 L4 8 Z" fill="currentColor"/>
<path d="M12 8 L12 24 L15 24 L15 18 L20 18 C23 18 25 16 25 13 C25 10 23 8 20 8 Z M15 11 L19 11 C21 11 22 12 22 13 C22 14 21 15 19 15 L15 15 Z" fill="white"/>
</svg>
PipexERP
</span>
<!--
CSS 引用说明:
1. 在 <head> 中添加:
<link rel="stylesheet" href="https://saltthing.top/brand/css/pipexerp-variables.css">
<link rel="stylesheet" href="https://saltthing.top/brand/css/pipexerp-brand-bar.css">
2. 或者通过 JavaScript 动态注入:
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://saltthing.top/brand/css/pipexerp-brand-bar.css';
document.head.appendChild(link);
-->

View File

@@ -3,10 +3,11 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Command Center // 控制中心</title>
<title>PipexERP | Command Center</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&family=Orbitron:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link rel="icon" type="image/svg+xml" href="brand/logo/favicon.svg">
<style>
:root {
--bg-deep: #0a0a0f;
@@ -24,9 +25,9 @@
--accent-home-dim: #00ff9d33;
--accent-home-glow: #00ff9d55;
--accent-enterprise: #00b4ff;
--accent-enterprise-dim: #00b4ff33;
--accent-enterprise-glow: #00b4ff55;
--accent-enterprise: #52c41a;
--accent-enterprise-dim: #52c41a33;
--accent-enterprise-glow: #52c41a55;
--status-online: #00ff9d;
--status-offline: #ff4466;
@@ -789,8 +790,8 @@
<div class="container">
<header class="header">
<h1 class="logo">COMMAND CENTER</h1>
<p class="subtitle">Tailscale Network Dashboard</p>
<h1 class="logo">PIPEXERP</h1>
<p class="subtitle">Command Center // Tailscale Network</p>
</header>
<div class="tab-switcher">