#talkChatTabView .call-button {
	text-align: center;
	margin-bottom: 10px;

	button {
		padding-left: 26px;
		padding-right: 26px;
	}

	.icon-loading-small {
		/* Prevent the text from being moved when the icon is shown. */
		position: absolute;

		margin-left: 5px;
		margin-top: 1px;

		/* Unset the background image set by the server for loading icons inside
		 * buttons, as in this case the pure CSS icon can be used instead of the
		 * image. */
		background-image: unset;

		&.hidden {
			display: none;
		}
	}
}

#talkChatTabView .file-not-shared button {
	margin-top: 15px;
}




.talkCallInfoView #call-container-wrapper {
	/* Overlap the padding from the sidebar itself to maximize the area of the
	 * video as much as possible */
	margin-left: -15px;
	margin-right: -15px;
	margin-top: -15px;
}

.talkCallInfoView #call-container-wrapper #emptycontent-icon {
	width: 128px;
	margin: 0 auto;
	padding-bottom: 20px;
}

.talkCallInfoView #call-container-wrapper #call-container.incall ~ #emptycontent {
	display: none;
}

.talkCallInfoView #call-container-wrapper #call-container:not(.incall) {
	display: none;
}

.talkCallInfoView #call-container-wrapper #call-container {
	position: relative;

	/* Show the call container in a 16/9 proportion based on the sidebar
	 * width. This is the same proportion used for previews of images by the
	 * SidebarPreviewManager. */
	padding-bottom: 56.25%;
	max-height: 56.25%;

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

/* Video in Talk sidebar */
.talkCallInfoView #call-container-wrapper #videos {
	position: absolute;

	flex-grow: 1;
}

.talkCallInfoView #call-container-wrapper .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;
}

.talkCallInfoView #call-container-wrapper .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;
}

.talkCallInfoView #call-container-wrapper .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 */
.talkCallInfoView #call-container-wrapper #screens {
	display: none;
}





.talkCallInfoView #videos .videoContainer:not(.promoted) video {
	/* Make the unpromoted videos smaller to not overlap too much the promoted
	 * video */
	max-height: 100px;
}

/* The avatars are requested with a size of 128px, so reduce it to not overlap
 * too much the promoted video */
.talkCallInfoView #videos .videoContainer:not(.promoted) .avatar,
.talkCallInfoView #videos .videoContainer:not(.promoted) .avatar img {
	width: 64px !important;
	height: 64px !important;
}



.talkCallInfoView .participants-1 .videoView,
.talkCallInfoView .participants-2 .videoView {
	/* Do not force the width to 200px, as otherwise the video is too tall and
	 * overlaps too much with the promoted video. */
	min-width: initial;
	/* z-index of 10 would put the video on top of the close button. */
	z-index: 1;
}



.talkCallInfoView .nameIndicator {
	/* Reduce padding to bring the name closer to the bottom */
	padding: 3px;
	/* Use default font size, as it takes too much space otherwise */
	font-size: initial;
}

.talkCallInfoView .participants-2 .videoContainer.promoted + .videoContainer-dummy .nameIndicator {
	/* Reduce padding to bring the name closer to the bottom */
	padding: 3px 35%;
}



.talkCallInfoView .mediaIndicator {
	/* Move the media indicator closer to the bottom */
	bottom: 16px;
}





/* Helper class to hide other info views during a call; this makes possible to
 * restore their previous visibility once the call stops without having to keep
 * track of their previous visibility. */
#app-sidebar .hidden-by-call {
	display: none;
}

/* Force the white icon during calls, independent from white/dark mode
 * selection, because it is shown on the black calling screen. */
#app-sidebar .icon-close.force-icon-white-in-call.icon-shadow {
	background-image: url(icon-color-path('close', 'actions', 'fff', 1, true));
	filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
}





/**
 * 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.
 *
 * It is horrible, I know (but better than using JavaScript ;-) ). Please
 * improve it if you know how :-)
 */
#app-sidebar {
	/* Override "display: block" set inline by jQuery. */
	display: flex !important;
	flex-direction: column;
}

#app-sidebar.disappear {
	/* Override "display: flex !important" when the sidebar has to be hidden. */
	display: none !important;
}

#app-sidebar .detailFileInfoContainer {
	display: flex;
	flex-direction: column;

	flex-shrink: 0;
}

#app-sidebar .tabsContainer {
	display: flex;
	flex-direction: column;

	flex-grow: 1;
}

#app-sidebar .tab {
	display: flex;
	flex-direction: column;

	flex-grow: 1;
}

#app-sidebar .tabsContainer.with-inner-scroll-bars,
#app-sidebar .tabsContainer.with-inner-scroll-bars .tab {
	overflow: hidden;
}

/* Force a minimum height to ensure that the chat view will be at least 300px
 * height, even if the info view is large and the screen short; in that case a
 * scroll bar will be shown for the sidebar, but even if that looks really bad
 * it is better than an unusable chat view. */
#app-sidebar .tabsContainer.force-minimum-height {
	min-height: 300px;
}

#app-sidebar .tab.hidden {
	display: none;
}

#app-sidebar #chatView {
	display: flex;
	flex-direction: column;
	overflow: hidden;

	flex-grow: 1;
}

#app-sidebar #chatView .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;
}

/**
 * Place the scroll bar of the message list on the right edge of the sidebar,
 * but keeping the padding of the tab view.
 *
 * The padding must be set on the left too to ensure that the contacts menu
 * shown when clicking on an author name does not overflow the tab (as it would
 * be hidden).
 *
 * The bottom padding is removed to extend the chat view to the bottom edge of
 * the sidebar.
 */
#app-sidebar .tab-chat {
	padding-left: 0;
	padding-right: 0;
	padding-bottom: 0;
}

/* Hack needed to overcome the padding of the tab container and move the scroll
 * bar of the messages list to the right border of the sidebar. */
#app-sidebar .tabsContainer.with-inner-scroll-bars .tab {
	padding-right: 0px;
}

#app-sidebar .tabsContainer .tab .ui-not-ready-placeholder {
	/* Make the placeholder take the full tab height until the UI is ready. */
	flex-grow: 1;
}

/* Hide other UI elements when there is a "UI not ready" placeholder. */
#app-sidebar .tabsContainer .tab .ui-not-ready-placeholder ~ div,
/* #chatView needs to be set explicitly to override the display property of
 * "#app-sidebar #chatView". */
#app-sidebar .tabsContainer .tab .ui-not-ready-placeholder ~ #chatView {
	display: none;
}

#app-sidebar #chatView .comments {
	padding-right: 15px;
}

#app-sidebar #chatView .comments .wrapper-background,
#app-sidebar #chatView .comments .wrapper {
	/* Padding is not respected in the comment wrapper due to its absolute
	 * positioning, so it must be set through its position. */
	right: 15px;
}

#app-sidebar #chatView .newCommentRow {
	/* The details view in the Files app has a bottom padding of 15px, so the
	 * general bottom margin used for comments should be reduced for the new
	 * comment form. */
	margin-bottom: 5px;
}

#app-sidebar #chatView .newCommentForm {
	/* Make room to show the "Add" button when chat is shown in the sidebar. */
	margin-right: 44px;
}
