/* ================================ */
/* CSS for control sap.m/InputBase  */
/* Base theme                       */
/* ================================ */

@_sap_m_InputBase_InnerMinWidth: 3rem;
@_sap_m_InputBase_InnerPadding: 0 0.75rem;
@_sap_m_InputBase_Height: 2.5rem;
@_sap_m_InputBase_DisabledOpacity: 0.5;
@_sap_m_InputBase_IconLineHeight: 2.375rem;
@_sap_m_InputBase_IconWidth: 2.375rem;
@_sap_m_InputBase_Compact_IconWidth: 2rem;
@_sap_m_InputBase_IconMinWidth: 2.375rem;
@_sap_m_InputBaseWrapper_Sum_Border: 0.125rem;
@_sap_m_InputBase_InnerMinWidth_Compact: 2rem;
@_sap_m_InputBase_Compact_InnerPadding: 0 0.5rem;
@_sap_m_InputBase_Compact_Height: 1.625rem;
@_sap_m_InputBase_FocusOffset: 1px;
@_sap_m_InputBase_FocusBorderRadius: 0;


/*MIN-WIDTH variables*/
/* rounding values to 2 symbols, because of IE and Edge */
@_InputBase_Control_MinWidth: round((@_sap_m_InputBase_InnerMinWidth + @_sap_m_InputBaseWrapper_Sum_Border), 2);
@_InputBase_Control_OneIcon_MinWidth: round((@_InputBase_Control_MinWidth + @_sap_m_InputBase_IconWidth), 2);
@_InputBase_Control_TwoIcons_MinWidth: round((@_InputBase_Control_MinWidth + @_sap_m_InputBase_IconWidth * 2), 2);
@_InputBase_Control_State_MinWidth: round((@_InputBase_Control_MinWidth + @_sap_m_InputBaseWrapper_Sum_Border), 2);
@_InputBase_Control_TwoIcons_State_MinWidth: round((@_InputBase_Control_TwoIcons_MinWidth + @_sap_m_InputBaseWrapper_Sum_Border), 2);
@_InputBase_Control_OneIcon_State_MinWidth: round((@_InputBase_Control_OneIcon_MinWidth + @_sap_m_InputBaseWrapper_Sum_Border), 2);

@_InputBase_Control_MinWidth_Compact: round((@_sap_m_InputBase_InnerMinWidth_Compact + @_sap_m_InputBaseWrapper_Sum_Border), 2);
@_InputBase_Control_OneIcon_MinWidth_Compact: round((@_InputBase_Control_MinWidth_Compact + @_sap_m_InputBase_Compact_IconWidth), 2);
@_InputBase_Control_TwoIcons_MinWidth_Compact: round((@_InputBase_Control_MinWidth_Compact + @_sap_m_InputBase_Compact_IconWidth * 2), 2);
@_InputBase_Control_State_MinWidth_Compact: round((@_InputBase_Control_MinWidth_Compact + @_sap_m_InputBaseWrapper_Sum_Border), 2);
@_InputBase_Control_TwoIcons_State_MinWidth_Compact: round((@_InputBase_Control_TwoIcons_MinWidth_Compact + @_sap_m_InputBaseWrapper_Sum_Border), 2);
@_InputBase_Control_OneIcon_State_MinWidth_Compact: round((@_InputBase_Control_OneIcon_MinWidth_Compact + @_sap_m_InputBaseWrapper_Sum_Border), 2);

.sapMInputBase {
	height: @_sap_m_InputBase_Height;
	background: transparent;
	position: relative;
	display: inline-block;
	vertical-align: top;
	outline: none;
	box-sizing: border-box;
	line-height: 0;
}

.sapMInputBaseHeightMargin {
	margin: 0.25rem 0;
}

/* handle min-width calculation */
.sapMInputBaseHasEndIcons, .sapMInputBaseHasBeginIcons {
	.sapMInputBaseContentWrapper {
		min-width: @_InputBase_Control_OneIcon_MinWidth;
		&.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) {
			min-width: @_InputBase_Control_OneIcon_State_MinWidth;
		}
	}
}

.sapMInputBaseHasEndIcons.sapMInputBaseHasBeginIcons {
	.sapMInputBaseContentWrapper {
		min-width: @_InputBase_Control_TwoIcons_MinWidth;
		&.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) {
			min-width: @_InputBase_Control_TwoIcons_State_MinWidth;
		}
	}
}

.sapMInputBase:not(.sapMInputBaseHasEndIcons):not(.sapMInputBaseHasBeginIcons) {
	.sapMInputBaseContentWrapper {
		min-width: @_InputBase_Control_MinWidth;
		&.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) {
			min-width: @_InputBase_Control_State_MinWidth;
		}
	}
}

.sapMInputBaseInner {
	background: transparent;
	border: none;
	font-style: normal;
	-webkit-appearance: none;
	-moz-appearance: textfield;
	font-size: @sapFontSize;
	font-family: @sapUiFontFamily;
	color: @sapUiFieldTextColor;
	line-height: normal;
	padding: @_sap_m_InputBase_InnerPadding;
	height: 100%;
	box-sizing: border-box;
	min-width: @_sap_m_InputBase_InnerMinWidth;
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: inherit;
}

.sapMInputBaseReadonly .sapMInputBaseIconContainer {
	height: 0;
}

.sapMInputBase:not(.sapMInputBaseHasEndIcons):not(.sapMInputBaseHasBeginIcons) .sapMInputBaseInner,
.sapMInputBaseNoWidth .sapMInputBaseInner {
	width: 100%;
}

.sapMInputBaseInner {
	.sapMInputBaseHasEndIcons &,
	.sapMInputBaseHasBeginIcons & {
		width: calc(~'100% - @{_sap_m_InputBase_IconWidth}');
	}

	.sapMInputBaseHasEndIcons.sapMInputBaseHasBeginIcons & {
		width: calc(~'100% - @{_sap_m_InputBase_IconWidth}*2');
	}
}

.sapMInputBaseContentWrapper {
	height: 100%;
	box-sizing: border-box;
	display: inline-block;
	position: relative;
	overflow: hidden;
	border-radius: 0;
	vertical-align: middle;
	margin: 0;
	background: @sapUiFieldBackgroundStyle;
	background-color: @sapUiFieldBackground;
	border: @sapUiFieldBorderWidth @sapUiFieldBorderStyle @sapUiFieldBorderColor;
	border-radius: @sapUiFieldBorderCornerRadius;
}

.sapMILI-CTX .sapMInputBaseContentWrapperError,
.sapMInputBaseContentWrapperError {
	background: @sapUiFieldInvalidBackgroundStyle;
	background-color: @sapUiFieldInvalidBackground;
	border: @sapUiFieldInvalidBorderWidth @sapUiFieldInvalidBorderStyle @sapUiFieldInvalidColor;
}

.sapMInputBaseContentWrapperWarning {
	background: @sapUiFieldWarningBackgroundStyle;
	background-color: @sapUiFieldWarningBackground;
	border: @sapUiFieldWarningBorderWidth @sapUiFieldWarningBorderStyle @sapUiFieldWarningColor;
}

.sapMInputBaseContentWrapperSuccess {
	background: @sapUiFieldSuccessBackgroundStyle;
	background-color: @sapUiFieldSuccessBackground;
	border: @sapUiFieldSuccessBorderWidth @sapUiFieldSuccessBorderStyle @sapUiFieldSuccessColor;
}

.sapMInputBaseContentWrapperInformation {
	background: @sapUiFieldInformationBackgroundStyle;
	background-color: @sapUiFieldInformationBackground;
	border: @sapUiFieldInformationBorderWidth @sapUiFieldInformationBorderStyle @sapUiFieldInformationColor;
	
}

.sapMInputBaseIconContainer {
	display: inline-block;
	vertical-align: inherit;
	height: 100%;
	width: auto;
	outline: none;
}

.sapMInputBaseHasBeginIcons .sapMInputBaseInner {
	padding-left: 0.25rem;
}

.sapMInputBaseHasEndIcons .sapMInputBaseInner {
	padding-right: 0.25rem;
}

.sapMInputBaseIcon {
	width: @_sap_m_InputBase_IconWidth;
	min-width: @_sap_m_InputBase_IconMinWidth;
	height: 100%;
	line-height: @_sap_m_InputBase_IconLineHeight;
	cursor: pointer;
	background: transparent;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

.sapMFocus.sapMInputBase .sapMInputBaseContentWrapper:not(.sapMInputBaseDisabledWrapper) {
	&::before {
		border: @sapUiContentFocusWidth @sapUiContentFocusStyle @sapUiContentFocusColor;
		border-radius: @_sap_m_InputBase_FocusBorderRadius;
		content: '';
		position: absolute;
		top: @_sap_m_InputBase_FocusOffset;
		left: @_sap_m_InputBase_FocusOffset;
		right: @_sap_m_InputBase_FocusOffset;
		bottom: @_sap_m_InputBase_FocusOffset;
		z-index: 2;
		pointer-events: none;
	}
}

.sapMInputBaseInner::-webkit-input-placeholder {
	font-size: @sapMFontMediumSize;
	font-style: italic;
	padding: 0 .125rem;
}

.sapMInputBaseInner::-moz-placeholder {
	font-size: @sapMFontMediumSize;
	font-style: italic;
	padding: 0 .125rem;
}

.sapMInputBaseInner::-webkit-outer-spin-button,
.sapMInputBaseInner::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.sapMInputBaseInner:focus {
	outline: none;
	outline-width: 0;
}

.sapMPointer>.sapMInputBaseInner {
	cursor: pointer;
}

.sapMInputBaseDisabled {
	opacity: @_sap_m_InputBase_DisabledOpacity;
	.sapMInputBaseIcon {
		cursor: default;
	}
}

.sapMInputBaseInner[placeholder] {
	text-overflow: ellipsis;
}

.sapMInputBaseInner::-webkit-input-placeholder {
	color: @sapUiFieldPlaceholderTextColor;
	text-overflow: ellipsis !important;
	/* important is necessary to overwrite inline style of shadow dom */
}

.sapMInputBaseInner::-moz-placeholder {
	color: @sapUiFieldPlaceholderTextColor;
}

input.sapMInputBaseInner:invalid {
	/* disable native browser input validation visualization e.g. for type email or number */
	box-shadow: none;
}

/*read only*/

.sapMInputBaseReadonly .sapMInputBaseContentWrapper {
	border-color: @sapUiFieldReadOnlyBorderColor;
	background:@sapField_ReadOnly_BackgroundStyle;
	background-color: @sapUiFieldReadOnlyBackground;
}

.sapMInputBaseInner:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):focus {
	border-color: @sapUiFieldFocusBorderColor;
}

.sapMInputBase:not(.sapMFocus) .sapMInputBaseContentWrapper:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):not(.sapMInputBaseDisabledWrapper) {
	&:hover {
		background: @sapUiFieldHoverBackgroundStyle;
		background-color: @sapUiFieldHoverBackground;
		border-color: @sapUiFieldHoverBorderColor;
		box-shadow: @sapUiContentInteractionShadow;
	}
}

.sapMInputBaseContentWrapper:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):not(.sapMInputBaseDisabledWrapper) {
	&:hover {
		border-color: @sapUiFieldHoverBorderColor;
	}
	&:active {
		background: @sapUiFieldFocusBackground;
		border-color: @sapUiFieldHoverBorderColor;
	}
}

.sapMInputBase:not(.sapMFocus) .sapMInputBaseContentWrapperState:hover,
.sapMInputBase:not(.sapMFocus).sapMInputBaseIconPressed .sapMInputBaseContentWrapperState {
	&.sapMInputBaseContentWrapperWarning:hover,
	&.sapMInputBaseContentWrapperWarning {
		box-shadow: @sapUiContentCriticalShadow;
	}

	&.sapMInputBaseContentWrapperSuccess:hover,
	&.sapMInputBaseContentWrapperSuccess {
		box-shadow: @sapUiContentPositiveShadow;
	}

	&.sapMInputBaseContentWrapperError:hover,
	&.sapMInputBaseContentWrapperError {
		box-shadow: @sapUiContentNegativeShadow;
	}

	&.sapMInputBaseContentWrapperInformation:hover,
	&.sapMInputBaseContentWrapperInformation {
		box-shadow: @sapUiContentInformativeShadow;
	}
}

.sapMInputBase:not(.sapMInputBaseDisabled) {
	&.sapMInputBaseIconPressed .sapMInputBaseIcon,
	.sapMInputBaseIcon:active,
	.sapMInputBaseIcon:hover  {
		box-shadow: @sapUiContentInteractionShadow;
	}

	&.sapMInputBaseIconPressed .sapMInputBaseContentWrapperError .sapMInputBaseIconContainer .sapMInputBaseIcon,
	.sapMInputBaseContentWrapperError .sapMInputBaseIconContainer .sapMInputBaseIcon:active,
	.sapMInputBaseContentWrapperError .sapMInputBaseIconContainer .sapMInputBaseIcon:hover {
		box-shadow: @sapUiContentNegativeShadow;
	}

	&.sapMInputBaseIconPressed .sapMInputBaseContentWrapperWarning .sapMInputBaseIconContainer .sapMInputBaseIcon,
	.sapMInputBaseContentWrapperWarning .sapMInputBaseIconContainer .sapMInputBaseIcon:active,
	.sapMInputBaseContentWrapperWarning .sapMInputBaseIconContainer .sapMInputBaseIcon:hover {
		box-shadow: @sapUiContentCriticalShadow;
	}

	&.sapMInputBaseIconPressed .sapMInputBaseContentWrapperSuccess .sapMInputBaseIconContainer .sapMInputBaseIcon,
	.sapMInputBaseContentWrapperSuccess .sapMInputBaseIconContainer .sapMInputBaseIcon:active,
	.sapMInputBaseContentWrapperSuccess .sapMInputBaseIconContainer .sapMInputBaseIcon:hover {
		box-shadow: @sapUiContentPositiveShadow;
	}

	&.sapMInputBaseIconPressed .sapMInputBaseContentWrapperInformation .sapMInputBaseIconContainer .sapMInputBaseIcon,
	.sapMInputBaseContentWrapperInformation .sapMInputBaseIconContainer .sapMInputBaseIcon:active,
	.sapMInputBaseContentWrapperInformation .sapMInputBaseIconContainer .sapMInputBaseIcon:hover {
		box-shadow: @sapUiContentInformativeShadow;
	}
}

/* Compact size */

.sapUiSizeCompact {
	.sapMInputBase {
		line-height: 1rem;
		height: @_sap_m_InputBase_Compact_Height;
	}

	.sapMInputBaseContentWrapper {
		height: @_sap_m_InputBase_Compact_Height;
	}

	.sapMInputBaseInner {
		padding: @_sap_m_InputBase_Compact_InnerPadding;
		min-width: @_sap_m_InputBase_InnerMinWidth_Compact;
	}

	.sapMInputBaseHasEndIcons .sapMInputBaseInner,
	.sapMInputBaseHasBeginIcons .sapMInputBaseInner {
		width: calc(~'100% - @{_sap_m_InputBase_Compact_IconWidth}');
	}

	.sapMInputBaseHasEndIcons.sapMInputBaseHasBeginIcons .sapMInputBaseInner {
		width: calc(~'100% - @{_sap_m_InputBase_Compact_IconWidth}*2');
	}

	.sapMInputBaseIcon {
		width: @_sap_m_InputBase_Compact_IconWidth;
		min-width: 2rem;
		line-height: 1.5rem;
	}

	.sapMInputBaseContentWrapper.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) .sapMInputBaseIcon {
		line-height: 1.375rem;
	}

	.sapMInputBaseHasBeginIcons .sapMInputBaseInner {
		padding-left: 0.25rem;
	}

	.sapMInputBaseHasEndIcons .sapMInputBaseInner {
		padding-right: 0.25rem;
	}

	/* handle min-width calculation */
	.sapMInputBaseHasEndIcons, .sapMInputBaseHasBeginIcons {
		.sapMInputBaseContentWrapper {
			min-width: @_InputBase_Control_OneIcon_MinWidth_Compact;
			&.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) {
				min-width: @_InputBase_Control_OneIcon_State_MinWidth_Compact;
			}
		}
	}

	.sapMInputBaseHasEndIcons.sapMInputBaseHasBeginIcons {
		.sapMInputBaseContentWrapper {
			min-width: @_InputBase_Control_TwoIcons_MinWidth_Compact;
			&.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) {
				min-width: @_InputBase_Control_TwoIcons_State_MinWidth_Compact;
			}
		}
	}

	.sapMInputBase:not(.sapMInputBaseHasEndIcons):not(.sapMInputBaseHasBeginIcons) {
		.sapMInputBaseContentWrapper {
			min-width: @_InputBase_Control_MinWidth_Compact;
			&.sapMInputBaseContentWrapperState:not(.sapMInputBaseContentWrapperSuccess) {
				min-width: @_InputBase_Control_State_MinWidth_Compact;
			}
		}
	}

	.sapMInputBaseHeightMargin {
		margin: 0.1875rem 0;
	}
}

/* Condensed size */

.sapUiSizeCondensed .sapUiTableCell {
	.sapMInputBase {
		height: 1.375rem;
		/* + 2*1px padding = 1.5rem */
		padding: 0 0.0625rem;
		/* 1px padding only */
	}
	.sapMInputBaseHeightMargin {
		margin: 0;
	}
	.sapMInputBaseInner:not(.sapMInputBaseContentWrapperState) {
		border-color: transparent;
	}
	.sapMInputBaseContentWrapper:not(.sapMInputBaseContentWrapperSuccess) {
		height: 1.375rem;
	}
}

/* Input selection fix -
 * Due to the fact that the CSS parsing rules require dropping the whole rule when encountering an invalid
 * pseudo-element, two separate rules must be written */

.sapMInputBaseInner {
	&::selection,
	&::-moz-selection {
		background: @sapUiSelected;
		color: @sapUiContentContrastTextColor;
	}
}

/* Google chrome and Safari input selection fix:
 * The browser renders the selection background with 50% opacity by default.
 * The solution is to use fade with a value for alpha 99 if it's set 100 the browser ignores it.
 */

html[data-sap-ui-browser^="sf"],
html[data-sap-ui-browser^="cr"] {
	.sapMInputBaseInner::selection {
		background: fade(@sapUiSelected, 99);
		color: fade(@sapUiContentContrastTextColor, 99);
	}
}

// When disabled or read-only hide placeholder by setting opacity to 0
.sapMInputBaseDisabled {
	.sapMInputBaseInner::-webkit-input-placeholder {
		opacity: 0;
	}
	.sapMInputBaseInner::-moz-placeholder {
		opacity: 0;
	}
}

.sapMInputBaseReadonly {
	.sapMInputBaseInner::-webkit-input-placeholder {
		opacity: 0;
	}
	.sapMInputBaseInner::-moz-placeholder {
		opacity: 0;
	}
}

.sapMInputBaseDisabledWrapper .sapMInputBaseIcon {
	color: @sapUiContentDisabledTextColor;
}

/* pressed */

.sapMInputBaseIconPressed .sapMInputBaseIcon,
.sapMInputBaseIconPressed .sapMInputBaseIcon:hover {
	background: @sapUiToggleButtonPressedBackground;
}

.sapMInputBaseIconPressed .sapMInputBaseIcon::before {
	color: @sapUiToggleButtonPressedTextColor;
}

.sapMInputBaseIconPressed .sapMInputBaseContentWrapper:not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):not(.sapMInputBaseDisabledWrapper) {
	border-color: @sapUiFieldActiveBorderColor;
}

.sapUiSizeCondensed .sapUiTableDataCell {

	.sapMInputBaseContentWrapper {
		height: 1.375rem;
	}

	.sapMInputBaseContentWrapper:not(.sapMInputBaseContentWrapperState) {
		border: none;
	}

	.sapMInputBase .sapMInputBaseIcon {
		height: 1.375rem;
		width: 1.375rem;
		line-height: 1.375rem;
	}
}

.sapMInputBase .sapUiLocalBusyIndicator:focus {
	outline: none;
}
