/*Desktop client classes*/

.pipeRecordRTC{
	position: relative;
	text-align:center;
}

.pipeRecordRTC span{
	position:absolute;
	margin: 0;
	left:50%;
	top:50%;
	margin-right: -50%;
	transform: translate(-50%, -50%);
	font-family:sans-serif;
	font-size:18px;
	cursor: pointer;
}

.pipeStartUploading {
	position: absolute;
	left: -99999rem
}

.pipeCustomUpload{
	display:inline-block;
	font-family:sans-serif;
	color:#334455;
	font-size:18px;
	cursor: pointer;
}

.pipe-upload-label{
	margin-bottom:0px;
	font-weight:normal;
	cursor: pointer;
}

.pipe-upload-label label:hover{
	color:#556677;
}

.pipeUploadAnother{
	position:absolute;
	margin: 0;
	left:50%;
	top:57%;
	margin-right: -50%;
	transform: translate(-50%, -50%);
	font-family:sans-serif;
	font-size:12px;
	text-decoration:underline;
	cursor: pointer;
}

.pipeBtn{
	display:inline-block;
	cursor:pointer;
	opacity: 1;
	-webkit-transition: .1s ease-in-out;
	transition: .1s ease-in-out;
	max-height: 100%;
}

.pipeBtn:hover{
	opacity: .8;
}

.pipeBtnOff{
	display:inline-block;
	opacity:0.1
}

.pipeBtnOff > button {
	cursor: default !important;
}

.pipeBtn > svg,
.pipeBtnOff > svg {
	vertical-align: unset;
}

.pipeTimer{
	position: absolute;
	text-align: center;
	font-family: sans-serif;
	font-size: 12px;
	top: 5px;
	background-color: rgb(47 47 47 / 68%);
	padding-inline: 7px;
	padding-bottom: 4px;
	padding-top: 5px;
	width: fit-content;
	min-width: 60px;
	left: 50%;
	translate: -50%;
	border-radius: 14px;
	color: rgb(255 255 255 / 79%);
	transition: all 0.15s ease-in-out;
	z-index: 1;
}

.pipeTimer:hover {
	cursor: pointer;
	background-color: rgb(47 47 47 / 78%);
}

.pipeTimer > span {
	color: rgb(255 255 255 / 69%);
    font-weight: bold;
}

.pipeTimerIcon {
	transition: all 0.2s ease-in-out;
}

.pipeTimerIcon > div {
	width: 8.7px;
    height: 8.7px;
    display: inline-block;
	margin-right: 3px;
	animation: .3s growIn ease;
}

.pipeRecIcon {
	background-color: red;
	border-radius: 50%;
}

.pipePlayIcon {
	box-sizing: border-box;
    border-style: solid;
    border-color: transparent transparent transparent white;
    border-width: 4.5px 0px 4.5px 9px;
}

.pipePauseIcon {
	border-style: double;
	border-width: 0px 8px 0px 0px;
	border-color: white;
	width: 0 !important;
	height: 8.5px !important;
}

@keyframes growIn {
	from {
		width: 0;
		height: 0;
		border-width: 0;
	}
	to {
		/*  */
	}
}

.pipeMicContainer, .pipeCamContainer{
	display:flex;
	float:right;
	position: relative;
	height: 30px;
	justify-content: center;
	align-items: center;
}

.pipeCamContainerNoMenu{
	display:inline-block;
	position:absolute;
	bottom:5px;
	right:70px;
	z-index: 1;
}

.pipeMicContainer > div {
	vertical-align: initial;
    display: inline-block;
}

.pipeMicIconNoMenu{
	display:inline-block;
	position:absolute;
	bottom:5px;
	right:5px;
	z-index: 1;
}

.pipeMeter-container{
	margin:3px;
	margin-left: 0;
	display: inline-block;
	background: -webkit-linear-gradient(#e21d1d 4%, #ff9d00 12%, #fff200 22%, #f2ea00 37%, #52b152 59%, #52b152 59%, #008a00 79%);
	width: 5px;
	height: 24px;
	display: hidden;
}

.pipeMeter{
	display: inline-block;
	position: absolute;
	width:5px;
	height:24px;
	background: black;
}

.pipeNormal{
	background-color:black;
}

.pipeMirrored{
	background-color:black;
	transform: rotateY(180deg);
	-webkit-transform:rotateY(180deg);
	-moz-transform:rotateY(180deg);
}

.pipeRotate90{
	background-color:black;
  -webkit-transform:rotate(90deg);
  transform: rotate(90deg);
}

.pipeFlipVertically{
	background-color:black;
  -webkit-transform:rotateZ(180deg);
  transform:rotateZ(180deg);
}

.pipeSmallNormal{
	position: absolute;
	left:0px;
	top:0px;
	z-index:1;
}

.pipeSmallMirrored{
	position: absolute;
	left:0px;
	top:0px;
	z-index:1;
	transform:scale(-1, 1);
	-webkit-transform:scale(-1, 1);
	-moz-transform:scale(-1, 1);
}

.pipeMsgOverlay{
	position: absolute;
	width:30%;
	height:50px;
	background-color:#0f0f0f;
	opacity: 0.6;
	border-radius:10px;
	z-index:2;
}

.pipeMsgOverlay div{
	text-align:center;
	vertical-align: middle;
	font-family:sans-serif;
	color:#ffffff;
	font-size:18px;
}

.pipeTopMessage{
  position:absolute;
  width:30%;
  height:15px;
  background-color:#0f0f0f;
  opacity: 0.6;
  border-bottom-left-radius:3px;
  border-bottom-right-radius:3px;
  z-index:1
}

.pipeTopMessage div {
  text-align:center;
  vertical-align: middle;
  font-family:sans-serif;
  color:#ffffff;
  font-size:14px;
}

.pipeError{
	position:relative;
	background-color:#363738;
	display:none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.pipeError p{
	margin: 0;
	text-align:center;
	font-family:sans-serif;
	font-size:18px;
	color:#ffffff;
}

.pipeError p strong{
	font-family:sans-serif;
	font-size:18px;
	color:#ffffff;
	font-weight: bold;
}

.pipeErrorBtn {
	background-color: #FE2701;
	color: #ffffff;
	padding-inline: 15px;
	padding-block: 7px;
	border: none;
	font-size: 18px;
	border-radius: 10px;
	cursor: pointer;
}

.getFlash{
	position:relative;
	background-color:#363738;
}

.getFlash p{
	text-decoration:underline;
	position:absolute;
	margin: 0;
	left:50%;
	top:50%;
	margin-right: -50%;
	transform: translate(-50%, -50%);
	text-align:center;
	font-family:sans-serif;
	color:#ffffff;
}

.pipeInputSettingsButton, .pipeInputSettingsButtonDisabled {
	width: 40px;
    height: 30px;
    text-align: center;
	border-radius: 0.35rem;
	cursor: pointer;
	position: relative;
	box-sizing: content-box;
	padding-inline: 3px;
	display: inline-flex !important;
	justify-content: center;
}

.pipeInputSettingsButton>svg:first-child,
.pipeInputSettingsButtonDisabled>svg:first-child{
	margin-right: 3px;
}

.pipeChevronUp {
	height: 100% !important;
	transition: all 250ms;
}

.pipeInputSettingsButton:hover, .pipeInputSettingsButton.selected {
	filter: brightness(150%);
}

.pipeInputSettingsButton.selected>.pipeChevronUp {
	transform: rotate(180deg);
}

.pipeInputSettingsButtonDisabled {
	opacity: 0.7;
	cursor: auto;
}

.pipeNotification {
	position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #23c552;
    top: 0px;
    display: block;
	z-index: 2;
	box-sizing: content-box;
}

.pipeNotification.audio {
	right: 28px;
}

.pipeNotification.video {
	right: 11px;
}

.pipeMediaSelectMenu.hidden {
	display: none;
}

.pipeMediaSelectMenu {
	font-family: sans-serif;
    user-select: none;
    position: absolute;
    border-radius: 0.35rem;
    font-size: 13.6px !important;
    right: 5px;
    bottom: 5px;
    min-width: 150px;
    max-width: calc(100% - 40px);
    max-height: calc(100% - 70px);
    overflow: auto;
    z-index: 1;
	opacity: .9;
	translate: 0px -40px;
	animation: openMediaSelectMenu .2s ease-in-out;
}

@keyframes openMediaSelectMenu {
	from {
		opacity: 0;
	}
	to {
		opacity: .9;
	}
}

@media only screen and (max-width: 600px) {
	.pipeMediaSelectMenu {
		right: 0;
		width: 100%;
		max-width: 100%;
	}

	.pipeInputSettingsButton:hover {
		filter: brightness(100%);
	}

	.pipeInputSettingsButton.selected {
		filter: brightness(150%);
	}
}

.pipeMediaMenuCateg {
	text-align: left;
	padding-inline: 12px;
	padding-bottom: 1px;
	box-shadow: 0px 13px 0px -12px #32343aba;
}

.pipeMediaMenuCateg:last-child {
	box-shadow: none;
}	

.pipeMediaMenuTitle {
	font-weight: bold;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}

.pipeMediaMenuTitle > p {
	margin-bottom: 0;
	margin-top: 11px;
	opacity: .75;
	color: #000000;
}

.pipeMediaMenuTitle > div {
	display: flex;
	align-items: center;
}

.pipeMediaMenuList {
	margin: 0;
  	padding: 0;
}

.pipeMediaMenuList > li {
	list-style: none;
	padding-inline: 30px;
	padding-block: 2.5px;
	color: #2a2b2d;
	cursor: pointer;
	margin-block: 2px;
	border-radius: 3px;
}

.pipeMediaMenuList > li:last-child {
	margin-bottom: 6px;
}

@media only screen and (min-width: 600px) {
	.pipeMediaMenuList > li:hover {
		color: #000000;
		background-color: #0000000d;
	}
}

.pipeMediaMenuList > li.selected {
	color: #000000;
	text-shadow:0px 0px 1px black;
}

.pipeMediaMenuList > li.selected::before {
	content: "";
	display: inline-block;
	transform: rotate(45deg);
	height: 8px;
	width: 4px;
	border-bottom: 3px solid #78b13f;
	border-right: 3px solid #78b13f;
	margin-right: 11px;
	margin-left: -18px;
	box-sizing: content-box;
}

.pipeMediaMenuList > li.disconnected {
	color: #0000006a;
	cursor: auto;
	pointer-events: none;
}

.pipeMediaMenuEffects {
	display: flex;
    flex-direction: column;
    gap: 5px;
    padding-block: 5px;
    padding-left: 30px;
}

.pipeMediaMenuEffects > div {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-block: 2px;
}

.pipeEffectSwitch {
  margin: 0;
  cursor: pointer;
  position: relative;
}

.pipeEffectSwitch input {
  display: none;
}

.pipeEffectSwitch input + div {
  width: 40px;
  height: 16px;
  border: 1px solid #d1d7e3;
  background: #d1d7e3;
  border-radius: 10px;
  vertical-align: top;
  position: relative;
  display: inline-block;
  user-select: none;
  transition: all 0.4s ease;
  box-sizing: content-box;
}

.pipeEffectSwitch input + div:before {
  content: "";
  float: left;
  width: 12px;
  height: 12px;
  background: #fff;
  pointer-events: none;
  margin-top: 2px;
  margin-left: 4px;
  border-radius: inherit;
  transition: all 0.4s ease 0s;
  box-sizing: content-box;
}

.pipeEffectSwitch input + div:after {
  content: "";
  top: -1px;
  left: 0px;
  width: 14px;
  height: 14px;
  border: 3px solid transparent;
  border-top-color: #78b13f;
  border-radius: 50%;
  position: absolute;
  opacity: 0;
  box-sizing: content-box;
}

.pipeEffectSwitch input:checked + div {
  background: #78b13f;
  border: 1px solid #528421;
}

.pipeEffectSwitch input:checked + div:before {
  transform: translate(20px, 0);
}
.pipeEffectSwitch.load input + div {
  width: 20px;
  margin: 0 10px;
}

.pipeEffectSwitch.load input + div:after {
  opacity: 1;
  animation: switchRotate 0.9s infinite linear;
  animation-delay: 0.2s;
}

.pipeEffectSwitch:hover input:disabled + div {
  border-color: #d1d7e3;
}

.pipeEffectSwitch:hover input:checked + div {
  background: #528421;
}

@keyframes switchRotate {
  0%, 15% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(290deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Animation */
.pipeCircleSpinner {
	position: absolute;
	width: 15px;
	height: 15px;
	translate: -23px 0px;
	border: 3px solid #000000;
	border-bottom-color: transparent;
	border-radius: 50%;
	display: block;
	box-sizing: border-box;
	animation: rotation 1s linear infinite;
}
	
@keyframes rotation {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
} 

.pipePoweredBy {
	color: #ffffff;
	position: absolute;
	width: 100%;
	bottom: 0px;
	text-align: center;
	text-decoration: underline !important;
	font-family: sans-serif;
	font-size: 10px;
	cursor: pointer;
	z-index: 1;
	margin-bottom: 16px;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pipeMiddleCentered {
	position:absolute; 
	left:50%;
	top:50%;
	translate: -50% -50%;
}

.pipeSvgIcon {
	enable-background:new 0 0 512 512; 
	vertical-align: middle;
}

.micContainer {
	vertical-align:initial;
	display:inline-block;
}

.pipeBrowserLink {
	color: rgb(51, 68, 85);
}

.pipeContextMenu {
	color: #eee;
	font-family: Arial,Helvetica,sans-serif;
	font-size: 13px;
	line-height: 1.3;
	background: rgba(28,28,28,.9);
	padding: 8px 0;
	flex-direction: column;
	gap: 5px;
	border-radius: 2px;
	-webkit-font-smoothing: antialiased;
	z-index: 1;
}

.pipeContextMenu > option:hover {
	background-color: rgba(255,255,255,.1);
	cursor: pointer;
}

.pipeContextMenu > option {
	padding: 2px 7px;
}

.statsForNerds {
	position: absolute;
	left: 10px;
	top: 10px;
	width: 400px;
	word-break: break-all;
	background: rgba(28,28,28,.8);
	border-radius: 4px;
	color: #fff;
	font-family: Arial,Helvetica,sans-serif;
	-webkit-font-smoothing: antialiased;
	font-size: 11px;
	padding: 10px;
	line-height: 1.3 !important;
	z-index: 1;
}

.statsForNerdsLinesWrapper>div>div {
	display: inline-block;
	font-weight: 500;
	padding-right: 8px;
	text-align: right;
	width: 130px;
}

.statsForNerdsLinesWrapper>div>span {
	text-align: left;
	width: 60%;
	display: inline-table;
}

/* Countdown timer */
.pipeCountdownCircleContainer {
	border-radius: 50%;
	overflow: hidden;
	background-color: #0f0f0f70;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
}

.pipeCountdownCircleContainer > span {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	color: white;
	font-size: 65px;
	font-weight: bold;
	font-family:sans-serif;
}

.pipeCountdownCircleContainer > svg {
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
	transform-origin: center;
}

.pipeCountdownCircleContainer > svg > circle {
	fill: transparent;
	stroke-width: 200px;
	stroke-dasharray: 628;
	stroke-dashoffset: 628;
	stroke: #0000007a;
	animation: pipeClockwiseCountdown 1s linear;
}

@keyframes pipeClockwiseCountdown {
	0% {
	  stroke-dashoffset: 628;
	}
	100% {
	  stroke-dashoffset: 0;
	}
}

/* Playback bar */

.pipePlaybackBarBorder > div, .pipePlaybackBarBorderMobile > div {
	transition: height ease-in .2s;
}

.pipePlaybackBarBorder, .pipePlaybackBarBorderMobile {
	display: flex;
	align-items: flex-end;
}

.pipePlaybackBarBorder {
	height: 10px;
	transition: background-color ease-in .25s;
	z-index: 1;
}

.pipePlaybackBarBorder:hover > div {
	height: 10px !important;
	z-index: 2;
}

.pipePlaybackBarBorder:hover {
	background-color: rgb(255 255 255 / 50%);
}

.pipePlaybackBarBorderMobile {
	height: 50%;
}

.pipeMobFriendlyIconBtn {
	height:30px;
	bottom:0;
	display:flex;
	align-items:center;
	padding:0px;
	margin:0px;
	border: 0;
	margin-left: 5px;
	background: transparent;
	cursor: pointer;
}

.pipeMobFriendlyIconBtn > span {
	margin-top: 2px;
	margin-left: 2px;
}

/*Mobile client classes*/

.pipeFileInput{
	text-align:center;
	display:inline-block;
	background:-webkit-linear-gradient(top,#f9f9f9,#e3e3e3);
	border:1px solid #999;
	border-radius:3px;
	padding:10px;
	outline:0;
	-webkit-user-select:none;
}

.pipeMobileRecorder{
	text-align:center;
	width:100%;
	margin:10px 0px;
}

.pipeDisplayedMessage {
	text-align:center;
	font-family:sans-serif;
	font-size:18px;
}

@media screen and (max-width: 400px) {
	/* Remove label from button */
	.pipeMobFriendlyIconBtn > span {
		display: none;
	}

	/* Remove button styling */
	.pipeMobFriendlyIconBtn {
		width: 30px;
		height: 30px;
		border: none;
		background: none;
		padding: 0;
		margin: 0;
		outline: none;
		cursor: pointer;
	}
}

/* Class to display a red "BETA" message next to a feature (left top) */
.pipeBetaFeature {
	padding-right: 35px;
}

.pipeBetaFeature::after {
	content: "BETA";
	position: absolute;
	margin-left: 5px;
	background-color: #D9514D;
	color: white;
	font-weight: 700;
	padding: 2px 4px;
	font-size: 8px;
	border-radius: 3px;
}

/* Close button X */
.pipeCloseButton {
	position: absolute;
	width: 20px;
	height: 20px;
}

.pipeCloseButton:hover {
	color: orangered;
}

.pipeCloseButton::after {
	content: '×';
  position: absolute;
  font-size: 20px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* Style for the PIP "Start Camera" rectangle */
.pipeStartCamRectangle {
	position: absolute;
	display: flex;
	align-items: center;
	flex-direction: column;
	cursor: pointer;
	right: 20px;
	bottom: 20px;
	border-radius: 3px;
	opacity: 0.7;
	transition: all 250ms;
	user-select: none;
	font-family: sans-serif;
}

.pipeStartCamRectangle:hover {
	opacity: 1;
}

.pipeStartCamRectangle>p{
	margin: 0;
	text-align: center;
}

/* Style for the PIP Video element */
.pipe-pip-video-container {
  cursor: move;
}

/* Style for the resize handles */
.pipe-resize-handle {
  position: absolute;
  width: 10px;
  height: 10px;
  background-color: white;
  border-radius: 50%;
  z-index: 1;
  opacity: 0; /* Initially hidden */
  transition: opacity 0.3s ease; /* Smooth opacity transition */
}

/* Show resize handles on hover */
.pipe-pip-video-container:hover .pipe-resize-handle {
  opacity: 0.8;
}

/* Positioning for resize handles */
.pipe-pip-top-left {
  top: -5px;
  left: -5px;
  cursor: nwse-resize; /* Diagonal resize cursor */
}

.pipe-pip-top-right {
  top: -5px;
  right: -5px;
  cursor: nesw-resize; /* Diagonal resize cursor */
}

.pipe-pip-bottom-left {
  bottom: -5px;
  left: -5px;
  cursor: nesw-resize; /* Diagonal resize cursor */
}

.pipe-pip-bottom-right {
  bottom: -5px;
  right: -5px;
  cursor: nwse-resize; /* Diagonal resize cursor */
}

.pipeColorPicker {
	display: flex;
	align-items: center;
	justify-content: left;
	margin-block: 2px;
}

.pipeColorPickerOption {
	width: 18px;
	height: 18px;
	border-radius: 2px;
	cursor: pointer;
	transition: all 250ms;
	position: relative;
}

.pipeColorPickerOption.pipeSelected {
	opacity: 0.8;
}

.pipeColorPickerOption.pipeSelected::after {
	content: "";
	top: 50%;
	left: 50%;
	position: absolute;
	transform: translate(-50%, -50%) rotate(45deg);
	height: 8px;
	width: 4px;
	border-bottom: 3px solid #78b13f;
	border-right: 3px solid #78b13f;
}

.pipeRainbowBackground {
	background: linear-gradient(
		90deg,
		rgba(255, 0, 0, 1) 0%,
		rgba(255, 154, 0, 1) 10%,
		rgba(208, 222, 33, 1) 20%,
		rgba(79, 220, 74, 1) 30%,
		rgba(63, 218, 216, 1) 40%,
		rgba(47, 201, 226, 1) 50%,
		rgba(28, 127, 238, 1) 60%,
		rgba(95, 21, 242, 1) 70%,
		rgba(186, 12, 248, 1) 80%,
		rgba(251, 7, 217, 1) 90%,
		rgba(255, 0, 0, 1) 100%
	);
}

.pipeAudioVisualizer {
	display: flex;
	gap: 15px;
	position: absolute;
	left: 50%;
	transform: translate(-50%, 50%);
	height: 50%;
}

.pipeAudioMenuVisualizer {
	display: flex !important;
	flex-direction: row;
	float: right;
	position: relative;
	gap: 2px;
	height: 30px;
	width: 20px;
	justify-content: center;
	align-items: center;
	margin-right: 5px;
}

.pipeWaveWrapper,
.pipeWaveMenuWrapper {
	height: 80%;
	display: flex;
	align-items: center;
	border-radius: 5px;
	overflow: hidden;
}

.pipeWave,
.pipeMenuWave {
	width: 20px;
	height: 10px; /* Initial height */
	background-color: #4caf50;
	border-radius: 5px; /* Slightly rounded corners */
	position: relative;
	transition: all 0.3s ease;
}

.pipeMenuWave {
	height: 5px;
	width: 3px;
}

.pipeAlertBox {
  background-color: rgb(234, 200, 84);
  padding: 10px;
  display: flex;
  justify-content: center;
  font-family: sans-serif;
	position: absolute;
	bottom: 30px;
	box-sizing: border-box;
	width: 100%;
	z-index: 1;
	text-align: center;
}

.pipe-grid-wrapper {
	width: 100%;
	height: 100%;
	position: relative;
}

.pipe-grid-line {
  position: absolute;
  background-color: rgba(255, 255, 255, 0.6);
  pointer-events: none; /* clicks pass through */
}

.pipe-grid-line.vertical {
  top: 0;
  bottom: 0;
  width: 1px;
}

.pipe-grid-line.horizontal {
  left: 0;
  right: 0;
  height: 1px;
}