:root { --bg-page: #0b0f19; --bg-card: #131b2e; --bg-card-hover: #19233c; --border-subtle: rgba(148, 163, 184, 0.14); --text-main: #f8fafc; --text-muted: #94a3b8; --primary: #6366f1; --primary-hover: #4f46e5; --accent: #10b981; --warn: #f59e0b; --radius-lg: 14px; --radius-md: 10px; } * { box-sizing: border-box; margin: 0; padding: 0; } body { background-color: var(--bg-page); color: var(--text-main); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif; line-height: 1.5; padding: 24px 28px 96px; } .app-layout { max-width: 1120px; margin: 0 auto; display: flex; flex-direction: column; gap: 22px; } /* 顶部演示横幅 */ .demo-guide-banner { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 14px; background: linear-gradient(90deg, rgba(99, 102, 241, 0.18), rgba(16, 185, 129, 0.14)); border: 1px solid rgba(99, 102, 241, 0.4); padding: 12px 18px; border-radius: var(--radius-md); } .guide-badge { background: #6366f1; color: #fff; font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px; white-space: nowrap; } .guide-text { flex: 1 1 260px; font-size: 13.5px; color: #e2e8f0; overflow-wrap: anywhere; } .guide-text code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; padding: 1px 6px; border-radius: 5px; background: rgba(99, 102, 241, 0.2); color: #c7d2fe; white-space: nowrap; } /* 顶部导航 */ .top-navbar { display: flex; align-items: center; justify-content: space-between; background: var(--bg-card); border: 1px solid var(--border-subtle); padding: 14px 22px; border-radius: var(--radius-lg); } .brand-logo { display: flex; align-items: center; gap: 10px; } .logo-dot { width: 12px; height: 12px; border-radius: 50%; background: linear-gradient(135deg, #6366f1, #10b981); box-shadow: 0 0 12px rgba(99, 102, 241, 0.8); } .brand-name { font-size: 17px; font-weight: 700; letter-spacing: 0.3px; } .brand-tag { font-size: 11px; padding: 2px 7px; background: rgba(99, 102, 241, 0.2); color: #a5b4fc; border-radius: 6px; } .nav-links { display: flex; gap: 8px; } .nav-item { color: var(--text-muted); text-decoration: none; font-size: 14px; padding: 6px 14px; border-radius: 8px; transition: all 0.2s; } .nav-item:hover, .nav-item.active { color: var(--text-main); background: rgba(255, 255, 255, 0.06); } .nav-actions { display: flex; gap: 10px; } /* 按钮通用 */ .btn { border: none; border-radius: 8px; padding: 8px 16px; font-size: 13.5px; font-weight: 600; cursor: pointer; transition: all 0.18s ease; } .btn-primary { background: var(--primary); color: #ffffff; } .btn-primary:hover { background: var(--primary-hover); } .btn-secondary { background: rgba(148, 163, 184, 0.12); color: #e2e8f0; border: 1px solid var(--border-subtle); } .btn-accent { background: var(--accent); color: #052e16; } .btn-outline { background: transparent; color: #cbd5e1; border: 1px solid rgba(203, 213, 225, 0.25); } /* 主视觉卡片 */ .hero-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; background: radial-gradient(circle at top right, rgba(99, 102, 241, 0.22), rgba(19, 27, 46, 0.95) 60%); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 30px 32px; } .hero-content { max-width: 640px; } .status-pill { display: inline-block; font-size: 12px; color: #34d399; background: rgba(16, 185, 129, 0.12); border: 1px solid rgba(16, 185, 129, 0.3); padding: 4px 12px; border-radius: 999px; margin-bottom: 12px; } .hero-title { font-size: 26px; font-weight: 800; margin-bottom: 10px; line-height: 1.3; } .hero-subtitle { color: var(--text-muted); font-size: 14.5px; margin-bottom: 20px; } .hero-buttons { display: flex; gap: 12px; } .gauge-ring { width: 148px; height: 148px; border-radius: 50%; background: conic-gradient(#6366f1 0% 72%, #10b981 72% 94%, rgba(255,255,255,0.08) 94% 100%); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .gauge-inner { width: 118px; height: 118px; border-radius: 50%; background: var(--bg-card); display: flex; flex-direction: column; align-items: center; justify-content: center; } .gauge-value { font-size: 24px; font-weight: 800; color: #f8fafc; } .gauge-label { font-size: 11.5px; color: var(--text-muted); } /* 三栏指标卡 */ .metrics-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; } .metric-card { background: var(--bg-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 20px 22px; } .metric-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .metric-title { font-size: 13.5px; color: var(--text-muted); } .metric-trend { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 6px; } .metric-trend.up { background: rgba(16, 185, 129, 0.15); color: #34d399; } .metric-trend.down { background: rgba(99, 102, 241, 0.18); color: #818cf8; } .metric-trend.warn { background: rgba(245, 158, 11, 0.16); color: #fbbf24; } .metric-value { font-size: 28px; font-weight: 800; margin-bottom: 8px; } .metric-value small { font-size: 14px; font-weight: 500; color: var(--text-muted); } .metric-desc { font-size: 12.5px; color: var(--text-muted); } /* 表格区 */ .panel-section { background: var(--bg-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 22px 24px; } .panel-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; } .panel-title { font-size: 17px; font-weight: 700; } .panel-subtitle { font-size: 12.5px; color: var(--text-muted); margin-top: 2px; } .panel-filters { display: flex; gap: 10px; } .search-input { background: rgba(15, 23, 42, 0.7); border: 1px solid var(--border-subtle); border-radius: 8px; padding: 7px 12px; color: var(--text-main); font-size: 13px; width: 210px; } .endpoints-table { width: 100%; border-collapse: collapse; font-size: 13.5px; } .endpoints-table th { text-align: left; color: var(--text-muted); font-weight: 600; padding: 10px 12px; border-bottom: 1px solid var(--border-subtle); } .endpoints-table td { padding: 14px 12px; border-bottom: 1px solid rgba(148, 163, 184, 0.08); } .model-tag { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; background: rgba(99, 102, 241, 0.14); color: #c7d2fe; padding: 3px 8px; border-radius: 6px; } .badge { font-size: 12px; padding: 3px 9px; border-radius: 999px; font-weight: 600; } .badge-success { background: rgba(16, 185, 129, 0.15); color: #34d399; } .badge-warning { background: rgba(245, 158, 11, 0.18); color: #fbbf24; } .btn-table-action { background: rgba(255, 255, 255, 0.06); color: #e2e8f0; border: 1px solid var(--border-subtle); padding: 5px 11px; border-radius: 6px; font-size: 12px; cursor: pointer; } .btn-table-action:hover { background: rgba(99, 102, 241, 0.25); border-color: rgba(99, 102, 241, 0.5); }