body { font-family: 'Noto Sans TC', 'Heiti TC', sans-serif; background-color: #f5f5f5; margin: 0; padding: 20px; color: #333; margin-left: 50px; } h1 { font-size: 2.5em; margin-bottom: 30px; font-weight: 700; color: #2c3e50; } /* 機器列表佈局 (使用 Flexbox) */ .machine-list { display: flex; flex-wrap: wrap; /* 允許卡片換行 */ gap: 20px; /* 卡片之間的間距 */ } .machine-card { background-color: #ffffff; border-radius: 12px; padding: 25px; width: 280px; /* 卡片固定寬度,可根據需求調整 */ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* 輕微陰影,增加立體感 */ transition: transform 0.2s ease, box-shadow 0.2s ease; display: flex; flex-direction: column; justify-content: space-between; height: 150px; } .machine-card:hover { transform: translateY(-5px); /* 鼠標懸停時輕微上移 */ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15); /* 陰影加深 */ } .label-name { font-size: 1.2em; font-weight: 600; color: #2c3e50; margin-bottom: auto; } .status-indicator { width: 30px; height: 30px; border-radius: 50%; align-self: flex-start; /* 將圓點放置在卡片底部左側 */ border: 3px solid rgba(0, 0, 0, 0.05); /* 輕微邊框,使其更清晰 */ } .status-indicator.running { background-color: #4CAF50; /* 綠色 */ } .status-indicator.error { background-color: #F44336; /* 紅色 */ }