|  | @@ -2,36 +2,44 @@
 | 
	
		
			
				|  |  |  :host {
 | 
	
		
			
				|  |  |    display: block;
 | 
	
		
			
				|  |  |    width: 100%;
 | 
	
		
			
				|  |  | -  padding: 15px;
 | 
	
		
			
				|  |  | +  padding: 20px;
 | 
	
		
			
				|  |  | +  background-color: #f5f7fa;
 | 
	
		
			
				|  |  | +  min-height: 100vh;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .history-container {
 | 
	
		
			
				|  |  |    max-width: 1400px;
 | 
	
		
			
				|  |  |    margin: 0 auto;
 | 
	
		
			
				|  |  | -  padding: 20px;
 | 
	
		
			
				|  |  | +  padding: 25px;
 | 
	
		
			
				|  |  |    background: white;
 | 
	
		
			
				|  |  | -  border-radius: 8px;
 | 
	
		
			
				|  |  | -  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
 | 
	
		
			
				|  |  | +  border-radius: 10px;
 | 
	
		
			
				|  |  | +  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .history-header {
 | 
	
		
			
				|  |  | -  margin-bottom: 24px;
 | 
	
		
			
				|  |  | -  padding-bottom: 16px;
 | 
	
		
			
				|  |  | -  border-bottom: 1px solid #eee;
 | 
	
		
			
				|  |  | +  margin-bottom: 30px;
 | 
	
		
			
				|  |  | +  padding-bottom: 20px;
 | 
	
		
			
				|  |  | +  border-bottom: 1px solid #eaeef2;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .history-header h2 {
 | 
	
		
			
				|  |  |    display: flex;
 | 
	
		
			
				|  |  |    align-items: center;
 | 
	
		
			
				|  |  | -  gap: 10px;
 | 
	
		
			
				|  |  | -  font-size: 24px;
 | 
	
		
			
				|  |  | +  gap: 12px;
 | 
	
		
			
				|  |  | +  font-size: 26px;
 | 
	
		
			
				|  |  |    color: #2c3e50;
 | 
	
		
			
				|  |  | +  font-weight: 600;
 | 
	
		
			
				|  |  | +  margin: 0;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.history-header h2 i {
 | 
	
		
			
				|  |  | +  color: #3498db;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .filter-row {
 | 
	
		
			
				|  |  |    display: flex;
 | 
	
		
			
				|  |  |    gap: 20px;
 | 
	
		
			
				|  |  | -  margin-bottom: 20px;
 | 
	
		
			
				|  |  | +  margin-bottom: 25px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .filter-card,
 | 
	
	
		
			
				|  | @@ -40,7 +48,8 @@
 | 
	
		
			
				|  |  |    background: white;
 | 
	
		
			
				|  |  |    border-radius: 8px;
 | 
	
		
			
				|  |  |    padding: 20px;
 | 
	
		
			
				|  |  | -  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
 | 
	
		
			
				|  |  | +  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
 | 
	
		
			
				|  |  | +  border: 1px solid #eaeef2;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .date-controls {
 | 
	
	
		
			
				|  | @@ -52,17 +61,25 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .date-input label {
 | 
	
		
			
				|  |  |    display: block;
 | 
	
		
			
				|  |  | -  margin-bottom: 6px;
 | 
	
		
			
				|  |  | +  margin-bottom: 8px;
 | 
	
		
			
				|  |  |    font-size: 14px;
 | 
	
		
			
				|  |  | -  color: #2c3e50;
 | 
	
		
			
				|  |  | +  color: #4a5568;
 | 
	
		
			
				|  |  | +  font-weight: 500;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .date-input input {
 | 
	
		
			
				|  |  |    width: 100%;
 | 
	
		
			
				|  |  | -  padding: 8px 12px;
 | 
	
		
			
				|  |  | -  border-radius: 4px;
 | 
	
		
			
				|  |  | -  border: 1px solid #ddd;
 | 
	
		
			
				|  |  | +  padding: 10px 12px;
 | 
	
		
			
				|  |  | +  border-radius: 6px;
 | 
	
		
			
				|  |  | +  border: 1px solid #e2e8f0;
 | 
	
		
			
				|  |  |    font-size: 14px;
 | 
	
		
			
				|  |  | +  transition: border-color 0.3s;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.date-input input:focus {
 | 
	
		
			
				|  |  | +  outline: none;
 | 
	
		
			
				|  |  | +  border-color: #3498db;
 | 
	
		
			
				|  |  | +  box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .device-controls {
 | 
	
	
		
			
				|  | @@ -73,10 +90,18 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .device-controls select {
 | 
	
		
			
				|  |  |    flex: 1;
 | 
	
		
			
				|  |  | -  padding: 8px 12px;
 | 
	
		
			
				|  |  | -  border-radius: 4px;
 | 
	
		
			
				|  |  | -  border: 1px solid #ddd;
 | 
	
		
			
				|  |  | +  padding: 10px 12px;
 | 
	
		
			
				|  |  | +  border-radius: 6px;
 | 
	
		
			
				|  |  | +  border: 1px solid #e2e8f0;
 | 
	
		
			
				|  |  |    font-size: 14px;
 | 
	
		
			
				|  |  | +  background-color: white;
 | 
	
		
			
				|  |  | +  transition: border-color 0.3s;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.device-controls select:focus {
 | 
	
		
			
				|  |  | +  outline: none;
 | 
	
		
			
				|  |  | +  border-color: #3498db;
 | 
	
		
			
				|  |  | +  box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .checkbox-container {
 | 
	
	
		
			
				|  | @@ -85,6 +110,7 @@
 | 
	
		
			
				|  |  |    cursor: pointer;
 | 
	
		
			
				|  |  |    font-size: 14px;
 | 
	
		
			
				|  |  |    user-select: none;
 | 
	
		
			
				|  |  | +  color: #4a5568;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .checkbox-container input {
 | 
	
	
		
			
				|  | @@ -96,12 +122,17 @@
 | 
	
		
			
				|  |  |  .checkmark {
 | 
	
		
			
				|  |  |    height: 20px;
 | 
	
		
			
				|  |  |    width: 20px;
 | 
	
		
			
				|  |  | -  background-color: #eee;
 | 
	
		
			
				|  |  | +  background-color: #edf2f7;
 | 
	
		
			
				|  |  |    border-radius: 4px;
 | 
	
		
			
				|  |  |    margin-left: 10px;
 | 
	
		
			
				|  |  |    display: flex;
 | 
	
		
			
				|  |  |    align-items: center;
 | 
	
		
			
				|  |  |    justify-content: center;
 | 
	
		
			
				|  |  | +  transition: background-color 0.2s;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.checkbox-container:hover .checkmark {
 | 
	
		
			
				|  |  | +  background-color: #e2e8f0;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .checkbox-container input:checked ~ .checkmark {
 | 
	
	
		
			
				|  | @@ -122,28 +153,114 @@
 | 
	
		
			
				|  |  |    display: block;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +.data-table-card {
 | 
	
		
			
				|  |  | +  margin-top: 30px;
 | 
	
		
			
				|  |  | +  background: white;
 | 
	
		
			
				|  |  | +  border-radius: 8px;
 | 
	
		
			
				|  |  | +  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
 | 
	
		
			
				|  |  | +  border: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +  overflow: hidden;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.data-table-card h3 {
 | 
	
		
			
				|  |  | +  padding: 18px 20px;
 | 
	
		
			
				|  |  | +  margin: 0;
 | 
	
		
			
				|  |  | +  font-size: 18px;
 | 
	
		
			
				|  |  | +  color: #2c3e50;
 | 
	
		
			
				|  |  | +  background-color: #f8fafc;
 | 
	
		
			
				|  |  | +  border-bottom: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  align-items: center;
 | 
	
		
			
				|  |  | +  gap: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.data-table-card h3 i {
 | 
	
		
			
				|  |  | +  color: #718096;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.data-table {
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  border-collapse: collapse;
 | 
	
		
			
				|  |  | +  font-size: 14px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.data-table th {
 | 
	
		
			
				|  |  | +  background-color: #f8fafc;
 | 
	
		
			
				|  |  | +  color: #4a5568;
 | 
	
		
			
				|  |  | +  font-weight: 600;
 | 
	
		
			
				|  |  | +  padding: 12px 15px;
 | 
	
		
			
				|  |  | +  text-align: left;
 | 
	
		
			
				|  |  | +  border-bottom: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.data-table td {
 | 
	
		
			
				|  |  | +  padding: 12px 15px;
 | 
	
		
			
				|  |  | +  border-bottom: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +  color: #4a5568;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.data-table tr:last-child td {
 | 
	
		
			
				|  |  | +  border-bottom: none;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.data-table tr:hover td {
 | 
	
		
			
				|  |  | +  background-color: #f8fafc;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.status-badge {
 | 
	
		
			
				|  |  | +  display: inline-block;
 | 
	
		
			
				|  |  | +  padding: 4px 10px;
 | 
	
		
			
				|  |  | +  border-radius: 12px;
 | 
	
		
			
				|  |  | +  font-size: 12px;
 | 
	
		
			
				|  |  | +  font-weight: 500;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.status-badge.normal {
 | 
	
		
			
				|  |  | +  background-color: #e6fffa;
 | 
	
		
			
				|  |  | +  color: #38b2ac;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.status-badge.warning {
 | 
	
		
			
				|  |  | +  background-color: #fffaf0;
 | 
	
		
			
				|  |  | +  color: #dd6b20;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.status-badge.critical {
 | 
	
		
			
				|  |  | +  background-color: #fff5f5;
 | 
	
		
			
				|  |  | +  color: #e53e3e;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  .chart-container {
 | 
	
		
			
				|  |  | -  margin-bottom: 20px;
 | 
	
		
			
				|  |  | +  margin-bottom: 25px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .chart-card {
 | 
	
		
			
				|  |  |    background: white;
 | 
	
		
			
				|  |  |    border-radius: 8px;
 | 
	
		
			
				|  |  |    padding: 20px;
 | 
	
		
			
				|  |  | -  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
 | 
	
		
			
				|  |  | +  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
 | 
	
		
			
				|  |  | +  border: 1px solid #eaeef2;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .chart-header {
 | 
	
		
			
				|  |  |    display: flex;
 | 
	
		
			
				|  |  |    justify-content: space-between;
 | 
	
		
			
				|  |  |    align-items: center;
 | 
	
		
			
				|  |  | -  margin-bottom: 15px;
 | 
	
		
			
				|  |  | +  margin-bottom: 20px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-header h4 {
 | 
	
		
			
				|  |  | +  margin: 0;
 | 
	
		
			
				|  |  | +  font-size: 16px;
 | 
	
		
			
				|  |  | +  color: #2c3e50;
 | 
	
		
			
				|  |  | +  font-weight: 600;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .chart-legend {
 | 
	
		
			
				|  |  |    display: flex;
 | 
	
		
			
				|  |  |    gap: 20px;
 | 
	
		
			
				|  |  |    font-size: 14px;
 | 
	
		
			
				|  |  | +  color: #4a5568;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .color-dot {
 | 
	
	
		
			
				|  | @@ -152,6 +269,7 @@
 | 
	
		
			
				|  |  |    height: 12px;
 | 
	
		
			
				|  |  |    border-radius: 50%;
 | 
	
		
			
				|  |  |    margin-right: 8px;
 | 
	
		
			
				|  |  | +  vertical-align: middle;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .color-dot.primary { background: #3498db; }
 | 
	
	
		
			
				|  | @@ -163,59 +281,245 @@
 | 
	
		
			
				|  |  |    border-radius: 6px;
 | 
	
		
			
				|  |  |    position: relative;
 | 
	
		
			
				|  |  |    padding: 30px 40px;
 | 
	
		
			
				|  |  | +  border: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* 响应式设计 */
 | 
	
		
			
				|  |  | +@media (max-width: 768px) {
 | 
	
		
			
				|  |  | +  .filter-row {
 | 
	
		
			
				|  |  | +    flex-direction: column;
 | 
	
		
			
				|  |  | +    gap: 15px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .date-controls {
 | 
	
		
			
				|  |  | +    grid-template-columns: 1fr;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .device-controls {
 | 
	
		
			
				|  |  | +    flex-direction: column;
 | 
	
		
			
				|  |  | +    align-items: flex-start;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .data-table {
 | 
	
		
			
				|  |  | +    display: block;
 | 
	
		
			
				|  |  | +    overflow-x: auto;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.chart-container {
 | 
	
		
			
				|  |  | +  margin-bottom: 25px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-card {
 | 
	
		
			
				|  |  | +  background: white;
 | 
	
		
			
				|  |  | +  border-radius: 8px;
 | 
	
		
			
				|  |  | +  padding: 20px;
 | 
	
		
			
				|  |  | +  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
 | 
	
		
			
				|  |  | +  border: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-header {
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  justify-content: space-between;
 | 
	
		
			
				|  |  | +  align-items: center;
 | 
	
		
			
				|  |  | +  margin-bottom: 20px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-header h3 {
 | 
	
		
			
				|  |  | +  margin: 0;
 | 
	
		
			
				|  |  | +  font-size: 16px;
 | 
	
		
			
				|  |  | +  color: #2c3e50;
 | 
	
		
			
				|  |  | +  font-weight: 600;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  align-items: center;
 | 
	
		
			
				|  |  | +  gap: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-header h3 i {
 | 
	
		
			
				|  |  | +  color: #3498db;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-legend {
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  gap: 20px;
 | 
	
		
			
				|  |  | +  font-size: 14px;
 | 
	
		
			
				|  |  | +  color: #4a5568;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.color-dot {
 | 
	
		
			
				|  |  | +  display: inline-block;
 | 
	
		
			
				|  |  | +  width: 12px;
 | 
	
		
			
				|  |  | +  height: 12px;
 | 
	
		
			
				|  |  | +  border-radius: 50%;
 | 
	
		
			
				|  |  | +  margin-right: 8px;
 | 
	
		
			
				|  |  | +  vertical-align: middle;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.color-dot.primary { background: #3498db; }
 | 
	
		
			
				|  |  | +.color-dot.secondary { background: #9b59b6; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#vibrationChart {
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  border-radius: 6px;
 | 
	
		
			
				|  |  | +  background: #f8fafc;
 | 
	
		
			
				|  |  | +  border: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +/* 振动图表专用样式 */
 | 
	
		
			
				|  |  | +.chart-container {
 | 
	
		
			
				|  |  | +  margin-bottom: 25px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-card {
 | 
	
		
			
				|  |  | +  background: white;
 | 
	
		
			
				|  |  | +  border-radius: 8px;
 | 
	
		
			
				|  |  | +  padding: 20px;
 | 
	
		
			
				|  |  | +  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
 | 
	
		
			
				|  |  | +  border: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-header {
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  justify-content: space-between;
 | 
	
		
			
				|  |  | +  align-items: center;
 | 
	
		
			
				|  |  | +  margin-bottom: 20px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-header h3 {
 | 
	
		
			
				|  |  | +  margin: 0;
 | 
	
		
			
				|  |  | +  font-size: 16px;
 | 
	
		
			
				|  |  | +  color: #2c3e50;
 | 
	
		
			
				|  |  | +  font-weight: 600;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  align-items: center;
 | 
	
		
			
				|  |  | +  gap: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-header h3 i {
 | 
	
		
			
				|  |  | +  color: #3498db;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-legend {
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  gap: 20px;
 | 
	
		
			
				|  |  | +  font-size: 14px;
 | 
	
		
			
				|  |  | +  color: #4a5568;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.color-dot {
 | 
	
		
			
				|  |  | +  display: inline-block;
 | 
	
		
			
				|  |  | +  width: 12px;
 | 
	
		
			
				|  |  | +  height: 12px;
 | 
	
		
			
				|  |  | +  border-radius: 50%;
 | 
	
		
			
				|  |  | +  margin-right: 8px;
 | 
	
		
			
				|  |  | +  vertical-align: middle;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.color-dot.primary { background: #3498db; }
 | 
	
		
			
				|  |  | +.color-dot.secondary { background: #9b59b6; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.chart-content {
 | 
	
		
			
				|  |  | +  height: 400px;
 | 
	
		
			
				|  |  | +  background: #f8fafc;
 | 
	
		
			
				|  |  | +  border-radius: 6px;
 | 
	
		
			
				|  |  | +  position: relative;
 | 
	
		
			
				|  |  | +  border: 1px solid #eaeef2;
 | 
	
		
			
				|  |  | +  overflow: hidden;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .trend-chart {
 | 
	
		
			
				|  |  |    width: 100%;
 | 
	
		
			
				|  |  |    height: 100%;
 | 
	
		
			
				|  |  |    position: relative;
 | 
	
		
			
				|  |  | +  padding: 20px 30px 40px 40px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .grid-lines {
 | 
	
		
			
				|  |  |    position: absolute;
 | 
	
		
			
				|  |  |    top: 0;
 | 
	
		
			
				|  |  |    left: 0;
 | 
	
		
			
				|  |  | -  right: 0;
 | 
	
		
			
				|  |  | -  bottom: 0;
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  height: calc(100% - 30px);
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  flex-direction: column;
 | 
	
		
			
				|  |  | +  justify-content: space-between;
 | 
	
		
			
				|  |  | +  padding: 20px 30px 0 40px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .grid-line {
 | 
	
		
			
				|  |  | -  position: absolute;
 | 
	
		
			
				|  |  | -  width: 100%;
 | 
	
		
			
				|  |  |    height: 1px;
 | 
	
		
			
				|  |  | -  background: rgba(0, 0, 0, 0.05);
 | 
	
		
			
				|  |  | +  background-color: #eaeef2;
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.grid-line:nth-child(1) { top: 0%; }
 | 
	
		
			
				|  |  | -.grid-line:nth-child(2) { top: 25%; }
 | 
	
		
			
				|  |  | -.grid-line:nth-child(3) { top: 50%; }
 | 
	
		
			
				|  |  | -.grid-line:nth-child(4) { top: 75%; }
 | 
	
		
			
				|  |  | -.grid-line:nth-child(5) { top: 100%; }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  .data-line {
 | 
	
		
			
				|  |  |    position: absolute;
 | 
	
		
			
				|  |  | -  height: 3px;
 | 
	
		
			
				|  |  | -  border-radius: 3px;
 | 
	
		
			
				|  |  | -  bottom: 0;
 | 
	
		
			
				|  |  | +  height: 2px;
 | 
	
		
			
				|  |  | +  border-radius: 2px;
 | 
	
		
			
				|  |  | +  left: 40px;
 | 
	
		
			
				|  |  | +  right: 30px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .data-line.primary {
 | 
	
		
			
				|  |  | -  background: #3498db;
 | 
	
		
			
				|  |  | -  width: 70%;
 | 
	
		
			
				|  |  | +  background-color: #3498db;
 | 
	
		
			
				|  |  | +  top: 30%;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .data-line.secondary {
 | 
	
		
			
				|  |  | -  background: #9b59b6;
 | 
	
		
			
				|  |  | -  width: 60%;
 | 
	
		
			
				|  |  | +  background-color: #9b59b6;
 | 
	
		
			
				|  |  | +  top: 60%;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .x-axis {
 | 
	
		
			
				|  |  |    position: absolute;
 | 
	
		
			
				|  |  | -  bottom: -30px;
 | 
	
		
			
				|  |  | -  left: 0;
 | 
	
		
			
				|  |  | -  right: 0;
 | 
	
		
			
				|  |  | +  bottom: 10px;
 | 
	
		
			
				|  |  | +  left: 40px;
 | 
	
		
			
				|  |  | +  right: 30px;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  justify-content: space-between;
 | 
	
		
			
				|  |  | +  font-size: 12px;
 | 
	
		
			
				|  |  | +  color: #718096;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.y-axis {
 | 
	
		
			
				|  |  | +  position: absolute;
 | 
	
		
			
				|  |  | +  left: 10px;
 | 
	
		
			
				|  |  | +  top: 20px;
 | 
	
		
			
				|  |  | +  bottom: 40px;
 | 
	
		
			
				|  |  |    display: flex;
 | 
	
		
			
				|  |  | +  flex-direction: column;
 | 
	
		
			
				|  |  |    justify-content: space-between;
 | 
	
		
			
				|  |  |    font-size: 12px;
 | 
	
		
			
				|  |  | -  color: white;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +  color: #718096;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* 响应式设计 */
 | 
	
		
			
				|  |  | +@media (max-width: 768px) {
 | 
	
		
			
				|  |  | +  .chart-header {
 | 
	
		
			
				|  |  | +    flex-direction: column;
 | 
	
		
			
				|  |  | +    align-items: flex-start;
 | 
	
		
			
				|  |  | +    gap: 10px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .chart-legend {
 | 
	
		
			
				|  |  | +    width: 100%;
 | 
	
		
			
				|  |  | +    justify-content: space-between;
 | 
	
		
			
				|  |  | +    gap: 10px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .trend-chart {
 | 
	
		
			
				|  |  | +    padding: 15px 20px 30px 30px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .grid-lines {
 | 
	
		
			
				|  |  | +    padding: 15px 20px 0 30px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .data-line {
 | 
	
		
			
				|  |  | +    left: 30px;
 | 
	
		
			
				|  |  | +    right: 20px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .x-axis {
 | 
	
		
			
				|  |  | +    left: 30px;
 | 
	
		
			
				|  |  | +    right: 20px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 |