:root{--primary:#174899;--primary-light:#3061b2;--sidebar-bg:#191a23;--sidebar-text:#a3a5b0;--bg:#f0f2f5;--card-bg:#fff;--border:#ebeef5;--text:#303133;--text2:#606266;--text3:#909399;--success:#67c23a;--danger:#f56c6c;--shadow:0 2px 12px rgba(0,0,0,0.08);--radius:8px}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}
#app{height:100vh}
.demo-layout{display:flex;height:100vh}
.demo-sidebar{width:220px;background:var(--sidebar-bg);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}
.sidebar-logo{padding:20px 16px;border-bottom:1px solid rgba(255,255,255,0.08);color:#fff;font-size:15px;font-weight:600;display:flex;align-items:center;gap:10px}
.sidebar-logo .logo-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--primary-light),var(--primary));border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:16px}
.sidebar-nav{padding:8px 0;flex:1}
.nav-section-title{padding:8px 20px;font-size:11px;color:rgba(255,255,255,0.35);letter-spacing:1px}
.nav-item{display:flex;align-items:center;padding:10px 20px;color:var(--sidebar-text);cursor:pointer;transition:.2s;font-size:14px;gap:8px;border-left:3px solid transparent;text-decoration:none}
.nav-item:hover{color:#fff;background:rgba(255,255,255,0.05)}
.nav-item.active{color:#fff;background:rgba(23,72,153,0.3);border-left-color:var(--primary-light)}
.nav-icon{width:18px;text-align:center;font-size:15px}
.demo-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.demo-header{height:56px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:16px;flex-shrink:0}
.header-title{font-size:16px;font-weight:600}
.header-breadcrumb{font-size:13px;color:var(--text3)}
.demo-content{flex:1;padding:20px;overflow-y:auto}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.stat-card{background:var(--card-bg);border-radius:var(--radius);padding:16px 14px;box-shadow:var(--shadow);transition:.2s;border-left:4px solid var(--primary)}
.stat-card:nth-child(1){border-left-color:#3061b2}
.stat-card:nth-child(2){border-left-color:#e8634a}
.stat-card:nth-child(3){border-left-color:#68c85a}
.stat-card:nth-child(4){border-left-color:#f5b342}
.stat-card:nth-child(5){border-left-color:#8b6ec4}
.stat-card:nth-child(6){border-left-color:#e8668b}
.stat-card:nth-child(7){border-left-color:#4ac8d6}
.stat-card:nth-child(8){border-left-color:#3061b2}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.12)}
.stat-label{font-size:12px;color:var(--text3);margin-bottom:6px}
.stat-value{font-size:22px;font-weight:700;color:var(--text);margin-bottom:2px}
.stat-sub{font-size:11px;color:var(--text3)}
.stat-sub .up{color:var(--success)}.stat-sub .down{color:var(--danger)}
.metrics-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:20px}
.metric-item{background:var(--card-bg);border-radius:6px;padding:14px;box-shadow:var(--shadow);text-align:center}
.metric-label{font-size:11px;color:var(--text3);margin-bottom:4px}
.metric-value{font-size:20px;font-weight:700;color:var(--primary)}
.metric-trend{font-size:11px;margin-top:4px}
.metric-trend.up{color:var(--success)}.metric-trend.down{color:var(--danger)}
.filter-bar{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap;background:var(--card-bg);padding:12px 16px;border-radius:var(--radius);box-shadow:var(--shadow)}
.filter-label{font-size:13px;color:var(--text2);white-space:nowrap}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.chart-card{background:var(--card-bg);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.chart-title{font-size:14px;font-weight:600;margin-bottom:12px}
.chart-box{width:100%;height:280px}
.latency-group{display:flex;gap:16px;margin-bottom:20px}
.latency-card{flex:1;background:var(--card-bg);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.latency-card .lc-title{font-size:13px;font-weight:600;margin-bottom:12px}
.latency-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.latency-item{background:#f5f7fa;border-radius:6px;padding:10px;text-align:center}
.latency-item .li-label{font-size:11px;color:var(--text3)}
.latency-item .li-value{font-size:15px;font-weight:600;color:var(--primary)}
.table-card{background:var(--card-bg);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:20px;overflow-x:auto}
.table-title{font-size:14px;font-weight:600;margin-bottom:12px}
.res-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}
.res-summary-item{background:var(--card-bg);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);text-align:center}
.res-summary-item .rs-label{font-size:13px;color:var(--text3);margin-bottom:8px}
.res-summary-item .rs-value{font-size:28px;font-weight:700}
.perf-table{width:100%;border-collapse:collapse;margin-bottom:16px}
.perf-table th,.perf-table td{padding:8px 12px;text-align:center;border:1px solid var(--border);font-size:13px}
.perf-table th{background:#f5f7fa;font-weight:600}
@media(max-width:1200px){.stats-row{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}}
