* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Arial', sans-serif; background: transparent; overflow: hidden; } .hidden { display: none !important; } #license-container { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.8); display: flex; justify-content: center; align-items: center; z-index: 1000; } .license-card { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 15px; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); width: 450px; min-height: 300px; color: white; position: relative; overflow: hidden; } .license-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,'); opacity: 0.3; pointer-events: none; } .license-header { display: flex; justify-content: space-between; align-items: center; padding: 20px; border-bottom: 2px solid rgba(255, 255, 255, 0.2); } .license-title { font-size: 24px; font-weight: bold; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); } .license-logo { font-size: 32px; opacity: 0.8; } .license-content { display: flex; padding: 20px; gap: 20px; } .license-photo { width: 100px; height: 120px; background: rgba(255, 255, 255, 0.2); border-radius: 8px; display: flex; align-items: center; justify-content: center; border: 2px solid rgba(255, 255, 255, 0.3); overflow: hidden; position: relative; } #player-photo { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; } #photo-placeholder { font-size: 48px; color: rgba(255, 255, 255, 0.7); } .hidden { display: none !important; } .license-info { flex: 1; } .info-row { display: flex; justify-content: space-between; margin-bottom: 12px; padding: 8px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .info-row:last-child { border-bottom: none; margin-bottom: 0; } .label { font-weight: bold; opacity: 0.9; min-width: 100px; } .value { text-align: right; opacity: 0.8; } .license-footer { padding: 20px; border-top: 2px solid rgba(255, 255, 255, 0.2); display: flex; justify-content: space-between; align-items: center; } .license-status { font-weight: bold; padding: 5px 15px; border-radius: 20px; font-size: 14px; } .license-status.active { background: rgba(76, 175, 80, 0.3); color: #4CAF50; border: 1px solid #4CAF50; } .license-status.inactive { background: rgba(244, 67, 54, 0.3); color: #F44336; border: 1px solid #F44336; } .close-btn { background: rgba(255, 255, 255, 0.2); border: 1px solid rgba(255, 255, 255, 0.3); color: white; padding: 10px 20px; border-radius: 25px; cursor: pointer; transition: all 0.3s ease; font-size: 14px; display: flex; align-items: center; gap: 8px; } .close-btn:hover { background: rgba(255, 255, 255, 0.3); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } /* Spezielle Styles für verschiedene Lizenztypen */ .license-card.id_card { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } .license-card.drivers_license { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); } .license-card.weapon_license { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); } .license-card.passport { background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%); } .license-card.business_license { background: linear-gradient(135deg, #fa709a 0%, #fee140 100%); } /* Responsive Design */ @media (max-width: 500px) { .license-card { width: 90vw; margin: 20px; } .license-content { flex-direction: column; align-items: center; } .license-photo { width: 80px; height: 100px; font-size: 36px; } } /* Animation für das Erscheinen */ @keyframes slideIn { from { opacity: 0; transform: translateY(-50px) scale(0.9); } to { opacity: 1; transform: translateY(0) scale(1); } } .license-card { animation: slideIn 0.3s ease-out; } /* Notification System */ #notification-container { position: fixed; top: 20px; right: 20px; z-index: 10000; display: flex; flex-direction: column; gap: 10px; } .notification { background: rgba(0, 0, 0, 0.9); color: white; padding: 15px; border-radius: 8px; display: flex; align-items: center; justify-content: space-between; min-width: 300px; animation: slideInRight 0.3s ease; } .notification.success { border-left: 4px solid #4CAF50; } .notification.error { border-left: 4px solid #f44336; } .notification.warning { border-left: 4px solid #ff9800; } .notification.info { border-left: 4px solid #2196F3; } .notification-content { display: flex; align-items: center; gap: 10px; } .notification-close { background: none; border: none; color: white; cursor: pointer; padding: 5px; } /* Loading Overlay */ #loading-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); display: flex; align-items: center; justify-content: center; z-index: 9999; } .loading-spinner { text-align: center; color: white; } .spinner { width: 50px; height: 50px; border: 3px solid rgba(255, 255, 255, 0.3); border-top: 3px solid white; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 20px; } /* Kamera Interface */ #camera-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); display: flex; align-items: center; justify-content: center; z-index: 9998; } .camera-interface { background: white; border-radius: 15px; padding: 20px; max-width: 600px; width: 90%; } .camera-preview { position: relative; margin: 20px 0; } #camera-video { width: 100%; border-radius: 10px; } .face-guide { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; color: white; } .guide-circle { width: 200px; height: 200px; border: 3px solid rgba(255, 255, 255, 0.8); border-radius: 50%; margin: 0 auto 10px; } /* Animationen */ @keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }