/* Shared Components */ /* Dashboard Grid */ .dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .dashboard-col { display: flex; flex-direction: column; gap: 16px; } @media (max-width: 1200px) { .dashboard-grid { grid-template-columns: 1fr; } } /* Status Detail */ .status-detail { font-size: 10px; color: var(--muted-color); margin-top: 4px; } /* Pulse Animation */ .pulse { animation: pulse 1.5s ease-in-out infinite; color: var(--warning-color); } .pulse.mini { font-size: 8px; margin-left: 4px; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } } /* Running Card */ .running-card { border-color: var(--warning-color); } .running-card .card-header { background: linear-gradient(90deg, rgba(240, 165, 0, 0.1), transparent); } /* Error Card */ .error-card { border-color: var(--danger-color); } .error-card .card-header { background: linear-gradient(90deg, rgba(220, 53, 69, 0.1), transparent); } /* Warning Card */ .warning-card { border-color: var(--warning-color); } .warning-card .card-header { background: linear-gradient(90deg, rgba(240, 165, 0, 0.1), transparent); } /* Rate Bar */ .rate-bar { display: inline-block; width: 50px; height: 6px; background: var(--border-color); border-radius: 3px; overflow: hidden; vertical-align: middle; } .rate-fill { height: 100%; transition: width 0.3s; } .rate-fill.good { background: var(--success-color); } .rate-fill.warn { background: var(--warning-color); } .rate-fill.bad { background: var(--danger-color); } .rate-text { font-size: 10px; margin-left: 6px; } /* Compact List */ .compact-list { padding: 8px 16px !important; } .list-item { padding: 8px 0; border-bottom: 1px solid var(--border-color); } .list-item:last-child { border-bottom: none; } .item-main { display: flex; align-items: center; gap: 8px; } .item-meta { font-size: 10px; color: var(--muted-color); margin-top: 4px; padding-left: 40px; } /* Last Updated */ .last-updated { text-align: center; font-size: 10px; color: var(--muted-color); padding: 16px; } /* Color Utilities */ .success { color: var(--success-color); } .warning { color: var(--warning-color); } .danger { color: var(--danger-color); }