* { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%); min-height: 100vh; color: #e2e8f0; padding: 2rem; } .dashboard { max-width: 1100px; margin: 0 auto; } .header { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin-bottom: 2rem; flex-wrap: wrap; } .header h1 { font-size: 2rem; font-weight: 700; color: #f8fafc; } .subtitle { margin-top: 0.35rem; color: #94a3b8; font-size: 0.95rem; } .status-badge { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.65rem 1.1rem; border-radius: 999px; background: rgba(15, 23, 42, 0.7); border: 1px solid rgba(148, 163, 184, 0.25); font-weight: 600; } .status-dot { width: 10px; height: 10px; border-radius: 50%; background: #64748b; box-shadow: 0 0 0 0 rgba(100, 116, 139, 0.5); } .status-badge.up .status-dot { background: #22c55e; animation: pulse 2s infinite; } .status-badge.down .status-dot { background: #ef4444; } .status-badge.up { border-color: rgba(34, 197, 94, 0.35); color: #bbf7d0; } .status-badge.down { border-color: rgba(239, 68, 68, 0.35); color: #fecaca; } .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; } .card { background: rgba(30, 41, 59, 0.85); border: 1px solid rgba(148, 163, 184, 0.15); border-radius: 16px; padding: 1.5rem; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25); transition: transform 0.2s ease, border-color 0.2s ease; } .card:hover { transform: translateY(-2px); border-color: rgba(96, 165, 250, 0.35); } .card-label { color: #94a3b8; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.75rem; } .card-value { font-size: 2.4rem; font-weight: 700; color: #f8fafc; line-height: 1.1; } .status-value.up { color: #4ade80; } .status-value.down { color: #f87171; } .card-hint { margin-top: 0.75rem; color: #64748b; font-size: 0.85rem; } .footer { margin-top: 2rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; color: #64748b; font-size: 0.85rem; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5); } 70% { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0); } 100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); } } @media (max-width: 600px) { body { padding: 1rem; } .card-value { font-size: 2rem; } }