@import 'mediawiki.skin.variables.less';

@new: #1e6db8;
@old: #fc3;
/* Use darker color for handle */
@oldHandle: darken( @old, 18% );

.mw-revslider-container-expanded {
	margin-bottom: 15px;
}

.mw-revslider-container-collapsed {
	margin-bottom: 0;
}

.mw-revslider-auto-expand-button {
	position: absolute;
	top: 0;
	/* default button width + default button margin ( 1.875em + 0.234375em ) */
	right: 2.109375em;
}

.mw-revslider-revision {
	position: relative;
	margin-top: 70px;
	background-color: #e3e3e3;
	border-color: #e3e3e3;
	z-index: 1;

	&-up {
		border-bottom: @border-width-thick @border-style-base @border-color-transparent;
	}

	&-down {
		border-top: @border-width-thick @border-style-base @border-color-transparent;
	}
}

.mw-revslider-revision-new,
.mw-revslider-revision-old,
.mw-revslider-revision-intermediate {
	.mw-revslider-revision {
		background-color: #bcbcbc;
		border-color: #989898;
	}
}

.mw-revslider-revision-border-box {
	height: 100%;
	width: 100%;
	border-left: @border-width-base @border-style-base @background-color-base;
	box-sizing: border-box;

	.mw-revslider-revision-old & {
		border-bottom: @border-width-thick @border-style-base @old;
	}

	.mw-revslider-revision-new & {
		border-bottom: @border-width-thick @border-style-base @new;
	}

	.mw-revslider-revision-filter-highlight & {
		border: @border-width-base @border-style-base @border-color-interactive;
		background-color: #7f7f7f;
	}
}

.mw-revslider-revision-wrapper {
	display: inline-block;
	height: 140px;

	&:hover,
	&-hovered {
		background-color: #f2f2f2;
	}

	&-up,
	&-down {
		top: 0;
		height: 70px;
		position: absolute;
		z-index: 1;
	}

	&-down {
		top: 70px;
	}
}

.mw-revslider-revision-hovered {
	&.mw-revslider-revision-wrapper-up .mw-revslider-pointer-ghost {
		background-color: lighten( @new, 30% );
		border: @border-width-thick @border-style-base @new;
		bottom: -4px;
	}

	&.mw-revslider-revision-wrapper-down .mw-revslider-pointer-ghost {
		background-color: lighten( @oldHandle, 30% );
		border: @border-width-thick @border-style-base @oldHandle;
		top: -1px;
	}
}

.mw-revslider-pointer.mw-revslider-pointer-ghost {
	z-index: 2;
	width: 11px;
	height: 11px;
	left: 1px;
	cursor: pointer;
}

.mw-revslider-revision-wrapper-hovered .mw-revslider-revision-hovered {
	cursor: pointer;

	&.mw-revslider-revision-wrapper-up {
		background-color: fade( @new, 30% );
	}

	&.mw-revslider-revision-wrapper-down {
		background-color: fade( @old, 30% );
	}
}

.mw-revslider-tooltip {
	font-size: 13px;
}

.mw-revslider-revision-tooltip {
	.oo-ui-popupWidget-body {
		padding-right: 21px;
	}

	.mw-revslider-change-positive {
		color: @color-content-added;
	}

	.mw-revslider-change-negative {
		color: @color-content-removed;
	}

	.mw-revslider-change-none {
		color: #aaa;
	}

	.mw-revslider-filter-highlightable-row {
		border: @border-width-base @border-style-base @border-color-transparent;
		border-radius: @border-radius-pill;
		margin-left: -8px;
		padding-left: 7px;

		&.mw-revslider-filter-highlight {
			border-color: #e0e0e0;
		}
	}
}

.mw-revslider-arrow-tooltip,
.mw-revslider-help-tooltip {
	text-align: center;
}

.mw-revslider-revisions {
	height: 140px;
	white-space: nowrap;
}

.mw-revslider-revisions-container {
	width: 90%;
	position: relative;
	overflow: hidden;
}

.mw-revslider-revisions-container,
.mw-revslider-arrow {
	float: left;
}

.mw-revslider-arrow {
	width: 22px;
	height: 142px;

	&.oo-ui-buttonElement .oo-ui-buttonElement-button {
		min-width: 0;
		width: 20px;
		min-height: 0;
		height: 140px;
		padding: 0;
	}

	&.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
		min-width: inherit;
		width: 20px;
		min-height: inherit;
	}

	&-backwards {
		margin-right: 30px;
	}

	&-forwards {
		margin-left: 30px;
	}
}

/* This is a bit hacky way, the goal being to have a framed toggle button widget with some styles
of the frameless one (to fit the size of the toggle button */
.mw-revslider-container .mw-revslider-auto-expand-button .oo-ui-buttonElement-button {
	padding: 0;
	width: 1.875em;
	height: 1.875em;
	background-color: @border-color-transparent;
	border: 0;
}

.mw-revslider-auto-expand-button.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
	display: block;
	position: static;
	margin: auto;
}

.mw-revslider-revision-slider {
	position: relative;
	margin: auto;
}

.mw-revslider-pointer-container {
	pointer-events: none;
	position: absolute;
	cursor: pointer;
	clear: both;
	top: 65px;
	z-index: 1;
}

.mw-revslider-pointer {
	pointer-events: all;
	position: absolute !important; /* stylelint-disable-line declaration-no-important */
	z-index: 1;
	width: 14px;
	height: 14px;
	border-radius: @border-radius-circle;

	&:focus {
		outline: @border-width-thick @border-style-base @outline-color-progressive--focus;
	}

	&-cursor {
		cursor: grab;
	}

	&-grabbing,
	&.mw-revslider-pointer-grabbing:hover {
		cursor: grabbing;
	}

	&.mw-revslider-pointer-newer {
		top: -6px;
		border: @border-width-base @border-style-base @new;
		background-image: linear-gradient( lighten( @new, 30% ), @new );

		&:hover,
		&:focus {
			background-image: linear-gradient( lighten( @new, 40% ), @new );
		}
	}

	&.mw-revslider-pointer-older {
		top: 4px;
		border: @border-width-base @border-style-base @oldHandle;
		background-image: linear-gradient( lighten( @oldHandle, 30% ), @oldHandle );

		&:hover,
		&:focus {
			background-image: linear-gradient( lighten( @oldHandle, 40% ), @oldHandle );
		}
	}
}

.mw-revslider-slider-line {
	margin: 0 10px;

	.mw-revslider-pointer-container-newer & {
		margin-top: -12px;
		margin-bottom: 4px;
		border-bottom: 4px @border-style-base fade( @new, 50% );
	}

	.mw-revslider-pointer-container-older & {
		margin-top: 8px;
		border-top: 4px @border-style-base fade( @old, 50% );
	}

	.mw-revslider-pointer-container-newer:hover & {
		border-bottom-color: fade( @new, 80% );
	}

	.mw-revslider-pointer-container-older:hover & {
		border-top-color: fade( @old, 80% );
	}
}

.mw-revslider-revisions-older {
	float: left;
}

.mw-revslider-revisions-newer {
	float: right;
}

.mw-revslider-diff-loading {
	opacity: 0.5;
}

.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .mw-revslider-help-dialog > .oo-ui-window-frame {
	top: 30%;
	bottom: auto;
}

.mw-revslider-help-dialog-image-landscape,
.mw-revslider-help-dialog-image-portrait {
	height: 160px;
	width: 100%;
	background-repeat: no-repeat;
	background-position: center;
}

.mw-revslider-help-dialog-image-portrait {
	height: 180px;
}

.mw-revslider-column-image {
	width: 50%;
	float: left;
}

.mw-revslider-column-text {
	width: 50%;
	float: right;
	white-space: pre-wrap;
}

.mw-revslider-help-dialog-text {
	font-size: 14px;
	line-height: 1.5;
}

.mw-revslider-show-help {
	position: absolute;
	right: 0;
	bottom: 0;
	margin-right: 0;
	z-index: 1;
}

.mw-revslider-pointer-line-upper,
.mw-revslider-pointer-line-lower {
	border: 0 @border-style-base @border-color-transparent;
}

.mw-revslider-pointer-line {
	/* @noflip */
	margin-left: 1px;
	position: absolute;
	top: 73px;

	.mw-revslider-left-line {
		/* @noflip */
		border-left-width: @border-width-thick;
	}

	.mw-revslider-right-line {
		/* @noflip */
		border-right-width: @border-width-thick;
	}

	.mw-revslider-bottom-line {
		border-bottom-width: @border-width-thick;
	}

	.mw-revslider-lower-color {
		border-color: @old;
	}

	.mw-revslider-upper-color {
		border-color: @new;
	}
}

.mw-revslider-pointer-older {
	.mw-revslider-pointer-line-upper {
		height: 81px;
	}

	.mw-revslider-pointer-line-lower {
		height: 17px;
	}
}

.mw-revslider-pointer-newer {
	.mw-revslider-pointer-line-upper {
		height: 71px;
	}

	.mw-revslider-pointer-line-lower {
		height: 27px;
	}
}

.mw-revslider-pointer-line-underline {
	border-bottom: @border-width-thick @border-style-base;
}

.mw-revslider-bubble {
	height: 1.428571em;
	width: 1.428571em;
	background-color: #ccc;
	border-radius: @border-radius-circle;
	display: inline-block;
	float: right;
}

.mw-revslider-filter-highlight-bubble {
	background-color: #72777d;
	border: #e0e0e0;
}
