* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; color: #333; } .container { max-width: 1400px; margin: 0 auto; padding: 20px; } header { text-align: center; color: white; margin-bottom: 30px; } header h1 { font-size: 2.5em; margin-bottom: 10px; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); } .subtitle { font-size: 1.1em; opacity: 0.9; } main { background: white; border-radius: 15px; padding: 30px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); } .video-section { margin-bottom: 30px; } .video-container { position: relative; background: #000; border-radius: 10px; overflow: hidden; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } #videoStream { width: 100%; height: auto; display: block; max-height: 600px; object-fit: contain; } .status-indicator { position: absolute; top: 15px; right: 15px; width: 15px; height: 15px; border-radius: 50%; background: #4caf50; box-shadow: 0 0 10px rgba(76, 175, 80, 0.6); animation: pulse 2s infinite; } .status-indicator.warning { background: #ff9800; box-shadow: 0 0 10px rgba(255, 152, 0, 0.6); } .status-indicator.danger { background: #f44336; box-shadow: 0 0 10px rgba(244, 67, 54, 0.6); } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .stats-section { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 30px; } .stat-card { background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border-radius: 10px; padding: 25px; text-align: center; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; } .stat-card:hover { transform: translateY(-5px); box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); } .stat-card.warning { background: linear-gradient(135deg, #ffeaa7 0%, #fdcb6e 100%); } .stat-card.danger { background: linear-gradient(135deg, #fab1a0 0%, #e17055 100%); color: white; } .stat-label { font-size: 0.9em; color: #666; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; } .stat-card.danger .stat-label { color: rgba(255, 255, 255, 0.9); } .stat-value { font-size: 3em; font-weight: bold; color: #333; margin-bottom: 5px; } .stat-card.danger .stat-value { color: white; } .stat-entered { color: #4caf50; } .stat-exited { color: #f44336; } .stat-subtitle { font-size: 0.85em; color: #888; margin-top: 5px; } .stat-card.danger .stat-subtitle { color: rgba(255, 255, 255, 0.9); } .controls-section { text-align: center; } .reset-btn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; padding: 15px 40px; font-size: 1.1em; border-radius: 25px; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); font-weight: 600; } .reset-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(102, 126, 234, 0.6); } .reset-btn:active { transform: translateY(0); } footer { text-align: center; color: white; margin-top: 30px; opacity: 0.8; } /* Responsive design */ @media (max-width: 768px) { header h1 { font-size: 2em; } .stat-value { font-size: 2.5em; } main { padding: 20px; } } /* Animation for count updates */ .stat-value { transition: transform 0.2s ease; } .stat-value.updated { transform: scale(1.1); }