/* Request password button has the appearance of the log in button */
.request-password-wrapper {
	position: relative;
	width: 280px;
	margin: 16px auto;
}

.request-password-wrapper .icon {
	position: absolute;
	top: 23px;
	right: 23px;
	pointer-events: none;
}

input#request-password-button {
	width: 269px;
	padding: 10px 10px;
}

input#request-password-button:disabled ~ .icon {
	opacity: 0.5;
}



/* Special layout to include the Talk sidebar */
/* The original style of the body is kept until the layout has been adjusted to
 * include the Talk sidebar. If only "#body-login" was used, immediately after
 * load and before the sidebar was injected the original elements would be using
 * the style for the adjusted layout, which is not the proper one for them, and
 * this would cause the elements to "jump" to their final position once the
 * layout was adjusted. */
#body-login.talk-sidebar-enabled {
	flex-direction: row;
	align-items: stretch;
}

/* #body-login should be used to override the #content rules set in server. */
#body-login #content {
	flex-grow: 1;

	display: flex;
	flex-direction: column;
	align-items: center;

	height: auto;

	overflow-x: hidden;

	/* Override "padding-top: 50px" set in server. */
	padding-top: 0;
}

/* Properties based on the app-sidebar */
#talk-sidebar {
	position: relative;
	flex-shrink: 0;
	width: 27vw;
	min-width: 300px;
	height: 100vh;

	background: var(--color-main-background);
	border-left: 1px solid var(--color-border);

	overflow-x: hidden;
	overflow-y: auto;
	z-index: 500;

	transition: 300ms width ease-in-out,
				300ms min-width ease-in-out;
}

#talk-sidebar.disappear {
	width: 0;
	min-width: 0;
	border-left-width: 0;
}



/* Talk sidebar */
#talk-sidebar {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

#talk-sidebar #emptycontent {
	position: relative;

	margin-top: 10px;
}

#talk-sidebar.incall #emptycontent {
	display: none;
}

#talk-sidebar:not(.incall) #call-container {
	display: none;
}

#talk-sidebar #call-container {
	position: relative;

	flex-grow: 1;

	/* Prevent shadows of videos from leaking on other elements. */
	overflow: hidden;

	/* Distribute available height between call container and chat view. */
	height: 50%;

	/* Ensure that the background will be black also in voice only calls. */
	background-color: #000;
}

/* Video in Talk sidebar */
#talk-sidebar #videos {
	position: relative;

	flex-grow: 1;
}

#talk-sidebar .videoContainer {
	/* The video container has some small padding to prevent the video from
	 * reaching the edges, but it also uses "width: 100%", so the padding should
	 * be included in the full width of the element. */
	box-sizing: border-box;
}

#talk-sidebar .videoContainer.promoted video {
	/* Base the size of the video on its width instead of on its height;
	 * otherwise the video could appear in full height but cropped on the sides
	 * due to the space available in the sidebar being typically larger in
	 * vertical than in horizontal. */
	width: 100%;
	height: auto;
}

#talk-sidebar .nameIndicator {
	/* The name indicator has some small padding to prevent the name from
	 * reaching the edges, but it also uses "width: 100%", so the padding should
	 * be included in the full width of the element. */
	box-sizing: border-box;
}

/* Screensharing in Talk sidebar */
#talk-sidebar.screensharing #videos .videoContainer video {
	max-height: 200px;
	background-color: transparent;
	box-shadow: 0;
}

#talk-sidebar.screensharing #screens {
	position: absolute;
	width: 100%;
	height: calc(100% - 200px);
	top: 0;
	background-color: transparent;
}

#talk-sidebar.screensharing .screenContainer {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

/**
 * Cascade parent element height to the chat view in the sidebar to limit the
 * vertical scroll bar only to the list of messages. Otherwise, the vertical
 * scroll bar would be shown for the whole sidebar and everything would be
 * moved when scrolling to see overflown messages.
 *
 * The list of messages should stretch to fill the available space at the bottom
 * of the right sidebar, so the height is cascaded using flex boxes.
 */
#talk-sidebar #commentsTabView {
	display: flex;
	flex-direction: column;
	overflow: hidden;

	flex-grow: 1;

	/* Distribute available height between call container and chat view. */
	height: 50%;
}

#talk-sidebar .comments {
	overflow-y: auto;

	/* Needed for proper calculation of comment positions in the scrolling
	   container (as otherwise the comment position is calculated with respect
	   to the closest ancestor with a relative position) */
	position: relative;
}

#talk-sidebar #commentsTabView .newCommentRow,
#talk-sidebar #commentsTabView .comments {
	padding-left: 15px;
	padding-right: 15px;
}



/* Unset conflicting rules from guest.css for the sidebar */
#talk-sidebar {
	text-align: left;
}

#talk-sidebar form {
	width: unset;
	margin: 0;
}
