body { background-color: #f8f9fa; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } .main-container { padding: 20px; max-width: 1400px; margin: 0 auto; } .dashboard-header { margin-bottom: 20px; } .dashboard-title { font-size: 24px; font-weight: 600; color: #333; margin-bottom: 10px; } /* 选项卡样式 */ .api-tabs { display: flex; border-bottom: 1px solid #e4e7ed; margin-bottom: 20px; } .api-tab { padding: 12px 20px; cursor: pointer; font-size: 15px; color: #666; position: relative; transition: all 0.3s; } .api-tab:hover { color: #1E9FFF; } .api-tab.active { color: #1E9FFF; font-weight: 500; } .api-tab.active:after { content: ""; position: absolute; bottom: -1px; left: 0; width: 100%; height: 2px; background-color: #1E9FFF; } /* 卡片布局 */ .content-row { display: flex; gap: 20px; } .main-content { flex: 3; } .sidebar { flex: 1; min-width: 300px; } /* API 卡片样式 */ .api-card { background: #fff; border-radius: 8px; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05); margin-bottom: 20px; transition: all 0.3s; border: 1px solid #e6e6e6; } .api-card:hover { box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.1); transform: translateY(-2px); } .api-card-header { padding: 16px 20px; border-bottom: 1px solid #f0f0f0; display: flex; justify-content: space-between; align-items: center; } .api-name { font-size: 16px; font-weight: 600; color: #333; } .api-status { font-size: 12px; padding: 3px 8px; border-radius: 10px; } .status-normal { background-color: #f0f9eb; color: #67c23a; } .status-warning { background-color: #fdf6ec; color: #e6a23c; } .status-danger { background-color: #fef0f0; color: #f56c6c; } .api-card-body { padding: 16px 20px; } .api-description { color: #666; font-size: 14px; line-height: 1.5; margin-bottom: 15px; } .api-card-footer { padding: 12px 20px; border-top: 1px solid #f0f0f0; display: flex; justify-content: space-between; align-items: center; } .expire-date { color: #999; font-size: 13px; } .console-link { color: #1E9FFF; font-weight: 500; cursor: pointer; font-size: 14px; } /* 进度条样式 */ .usage-container { margin-bottom: 10px; } .usage-label { display: flex; justify-content: space-between; margin-bottom: 5px; font-size: 13px; color: #666; } .layui-progress { margin-bottom: 5px; height: 8px; border-radius: 4px; } .layui-progress-bar { border-radius: 4px; } /* 侧边栏卡片 */ .sidebar-card { background: #fff; border-radius: 8px; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05); margin-bottom: 20px; border: 1px solid #e6e6e6; } .sidebar-header { padding: 16px 20px; border-bottom: 1px solid #f0f0f0; font-size: 16px; font-weight: 600; color: #333; display: flex; align-items: center; } .sidebar-header i { margin-right: 8px; color: #1E9FFF; } .sidebar-body { padding: 16px 20px; } .stats-item { margin-bottom: 16px; } .stats-label { color: #999; font-size: 13px; margin-bottom: 5px; } .stats-value { font-size: 18px; font-weight: 500; } .stats-value.primary { color: #1E9FFF; } .stats-value.success { color: #67c23a; } .stats-value.warning { color: #e6a23c; } .stats-value.danger { color: #f56c6c; } /* 网格布局 */ .api-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; } /* 筛选区域 */ .filter-area { background: #fff; border-radius: 8px; padding: 16px 20px; margin-bottom: 20px; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05); border: 1px solid #e6e6e6; } .filter-row { display: flex; align-items: center; gap: 15px; } /* 响应式调整 */ @media (max-width: 1200px) { .content-row { flex-direction: column; } .sidebar { min-width: auto; } } @media (max-width: 768px) { .api-grid { grid-template-columns: 1fr; } .filter-row { flex-direction: column; align-items: flex-start; } }