/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

/* Animations */

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* Font Families (with CJK support) */

.monaco-workbench.mac .monaco-workbench-part, .mac.monaco-workbench-part { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }
.monaco-workbench.mac:lang(zh-Hans) .monaco-workbench-part, .mac:lang(zh-Hans).monaco-workbench-part { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }
.monaco-workbench.mac:lang(zh-Hant) .monaco-workbench-part, .mac:lang(zh-Hant).monaco-workbench-part { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }
.monaco-workbench.mac:lang(ja) .monaco-workbench-part, .mac:lang(ja).monaco-workbench-part { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }
.monaco-workbench.mac:lang(ko) .monaco-workbench-part, .mac:lang(ko).monaco-workbench-part { font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Nanum Gothic", "AppleGothic", sans-serif; }

.monaco-workbench.windows .monaco-workbench-part, .windows.monaco-workbench-part { font-family: "Segoe WPC", "Segoe UI", sans-serif; }
.monaco-workbench.windows:lang(zh-Hans) .monaco-workbench-part, .windows:lang(zh-Hans).monaco-workbench-part { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }
.monaco-workbench.windows:lang(zh-Hant) .monaco-workbench-part, .windows:lang(zh-Hant).monaco-workbench-part { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }
.monaco-workbench.windows:lang(ja) .monaco-workbench-part, .windows:lang(ja).monaco-workbench-part { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }
.monaco-workbench.windows:lang(ko) .monaco-workbench-part, .windows:lang(ko).monaco-workbench-part { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }

/* Linux: add `system-ui` as first font and not `Ubuntu` to allow other distribution pick their standard OS font */
.monaco-workbench.linux .monaco-workbench-part, .linux.monaco-workbench-part { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }
.monaco-workbench.linux:lang(zh-Hans) .monaco-workbench-part, .linux:lang(zh-Hans).monaco-workbench-part { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }
.monaco-workbench.linux:lang(zh-Hant) .monaco-workbench-part, .linux:lang(zh-Hant).monaco-workbench-part { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }
.monaco-workbench.linux:lang(ja) .monaco-workbench-part, .linux:lang(ja).monaco-workbench-part { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }
.monaco-workbench.linux:lang(ko) .monaco-workbench-part, .linux:lang(ko).monaco-workbench-part { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }

.monaco-workbench.mac .monaco-workbench-part, .mac.monaco-workbench-part { --monaco-monospace-font: "SF Mono", Monaco, Menlo, Courier, monospace; }
.monaco-workbench.windows .monaco-workbench-part, .windows.monaco-workbench-part { --monaco-monospace-font: Consolas, "Courier New", monospace; }
.monaco-workbench.linux .monaco-workbench-part, .linux.monaco-workbench-part { --monaco-monospace-font: "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace; }

/* Global Styles */

.monaco-workbench-part {
	font-size: 13px;
	line-height: 1.4em;
	inset: 0;
	color: var(--vscode-foreground);

	/* Elevation shadows */
	--vscode-shadow-sm: 0 0 4px rgba(0, 0, 0, 0.08);
	--vscode-shadow-md: 0 0 6px rgba(0, 0, 0, 0.08);
	--vscode-shadow-lg: 0 0 12px rgba(0, 0, 0, 0.14);
	--vscode-shadow-xl: 0 0 20px rgba(0, 0, 0, 0.15);
	--vscode-shadow-hover: 0 0 8px rgba(0, 0, 0, 0.12);
	--vscode-shadow-active-tab: 0 8px 12px rgba(0, 0, 0, 0.02);

	/* Panel depth shadows cast onto the editor surface */
	--vscode-shadow-depth-x: 5px 0 10px -4px rgba(0, 0, 0, 0.05);
	--vscode-shadow-depth-y: 0 5px 10px -4px rgba(0, 0, 0, 0.04);
}

/* Disable panel/part shadows when the setting is off (preserves floating modals, notifications, etc.) */
.monaco-workbench-part.no-shadows .part.titlebar,
.monaco-workbench-part.no-shadows .part.activitybar,
.monaco-workbench-part.no-shadows.nosidebar .part.activitybar,
.monaco-workbench-part.no-shadows.activitybar-right .part.activitybar,
.monaco-workbench-part.no-shadows .part.editor .tabs-container > .tab {
	box-shadow: none;
}
.monaco-workbench-part.no-shadows .part.editor .tabs-container > .tab:hover:not(.active),
.monaco-workbench-part.no-shadows .part.editor .tabs-container > .tab.active {
	box-shadow: none;
}
.monaco-workbench-part.no-shadows {
	/* Use zero-offset transparent shadows instead of 'none' because these
	 * variables are interpolated into multi-value box-shadow declarations. */
	--vscode-shadow-active-tab: 0 0 0 0 transparent;
	--vscode-shadow-depth-x: 0 0 0 0 transparent;
	--vscode-shadow-depth-y: 0 0 0 0 transparent;
	--vscode-shadow-sm: 0 0 0 0 transparent;
}

.monaco-workbench.web .monaco-workbench-part, .monaco-workbench-part.web {
	touch-action: none; /* Disable browser handling of all panning and zooming gestures. Removes 300ms touch delay. */
	overscroll-behavior: none; /* Prevent bounce effect */
}

.monaco-workbench.border:not(.fullscreen) {
	box-sizing: border-box;
	border: 1px solid var(--window-border-color);
}

.monaco-workbench.border.mac {
	border-radius: 10px;
}

.monaco-workbench.border.mac.macos-tahoe {
	border-radius: 16px; /* macOS Tahoe increased rounded corners size */
}

.monaco-workbench-part img {
	border: 0;
}

.monaco-workbench-part label {
	cursor: pointer;
}

.monaco-workbench-part a  {
	text-decoration: none;
}

.monaco-workbench-part p > a {
	text-decoration: var(--text-link-decoration);
}

.monaco-workbench.underline-links .monaco-workbench-part {
	--text-link-decoration: underline;
}

.monaco-workbench.hc-black .monaco-workbench-part p > a,
.monaco-workbench.hc-light .monaco-workbench-part p > a,
.monaco-workbench.hc-black.monaco-workbench-part p > a,
.monaco-workbench.hc-light.monaco-workbench-part p > a {
	text-decoration: underline !important;
}

.monaco-workbench-part a:active {
	color: inherit;
	background-color: inherit;
}

.monaco-workbench-part a.plain {
	color: inherit;
	text-decoration: none;
}

.monaco-workbench-part a.plain:hover,
.monaco-workbench-part a.plain.hover {
	color: inherit;
	text-decoration: none;
}

.monaco-workbench-part input {
	color: inherit;
	font-family: inherit;
	font-size: 100%;
}

.monaco-workbench-part table {
	/*
	 * Somehow this is required when tables show in floating windows
	 * to override the user-agent style which sets a specific color
	 * and font-size
	 */
	color: inherit;
	font-size: inherit;
}

.monaco-workbench-part input::placeholder { color: var(--vscode-input-placeholderForeground); }
.monaco-workbench-part input::-webkit-input-placeholder  { color: var(--vscode-input-placeholderForeground); }
.monaco-workbench-part input::-moz-placeholder { color: var(--vscode-input-placeholderForeground); }

.monaco-workbench-part textarea::placeholder { color: var(--vscode-input-placeholderForeground); }
.monaco-workbench-part textarea::-webkit-input-placeholder { color: var(--vscode-input-placeholderForeground); }
.monaco-workbench-part textarea::-moz-placeholder { color: var(--vscode-input-placeholderForeground); }

.monaco-workbench-part .pointer {
	cursor: pointer;
}

.monaco-workbench.mac.monaco-font-aliasing-antialiased.monaco-workbench-part, .monaco-workbench.mac.monaco-font-aliasing-antialiased .monaco-workbench-part {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.monaco-workbench.mac.monaco-font-aliasing-none.monaco-workbench-part,	.monaco-workbench.mac.monaco-font-aliasing-none .monaco-workbench-part {
	-webkit-font-smoothing: none;
	-moz-osx-font-smoothing: unset;
}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	.monaco-workbench.mac.monaco-font-aliasing-auto.monaco-workbench-part, .monaco-workbench.mac.monaco-font-aliasing-auto .monaco-workbench-part {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
}

.monaco-workbench-part .context-view {
	-webkit-app-region: no-drag;
}

.monaco-workbench-part .codicon {
	color: var(--vscode-icon-foreground);
}

.monaco-workbench-part .codicon[class*='codicon-'] {
	font-size: 16px; /* sets font-size for codicons in workbench (https://github.com/microsoft/vscode/issues/98495) */
}

.monaco-workbench-part .predefined-file-icon[class*='codicon-']::before {
	width: 16px;
	padding-left: 3px; /* width (16px) - font-size (13px) = padding-left (3px) */
	padding-right: 3px;
}

.predefined-file-icon::before { /* do add additional specificity to this selector, so it can be overridden by product themes */
	font-family: 'codicon';
}

.monaco-workbench:not(.file-icons-enabled) .predefined-file-icon[class*='codicon-']::before {
	content: unset !important;
}

.monaco-workbench.modal-dialog-visible .monaco-progress-container.infinite .progress-bit {
	display: none; /* stop progress animations when dialogs are visible (https://github.com/microsoft/vscode/issues/138396) */
}

/* Custom Dropdown (select) Arrows */

.monaco-workbench-part select {
	font-family: inherit;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	/* Hides inner border from FF */
	border: 1px solid;
}

.monaco-workbench-part .select-container {
	position: relative;
}

.monaco-workbench-part .select-container:after {
	content: var(--vscode-icon-chevron-down-content);
	font-family: var(--vscode-icon-chevron-down-font-family);
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 16px;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 4px;
	margin: auto;
	pointer-events: none;
}

/* Keyboard Focus Indication Styles */

.monaco-workbench-part [tabindex="0"]:focus,
.monaco-workbench-part [tabindex="-1"]:focus,
.monaco-workbench-part .synthetic-focus,
.monaco-workbench-part select:focus,
.monaco-workbench-part input[type="button"]:focus,
.monaco-workbench-part input[type="text"]:focus,
.monaco-workbench-part button:focus,
.monaco-workbench-part textarea:focus,
.monaco-workbench-part input[type="search"]:focus,
.monaco-workbench-part input[type="checkbox"]:focus {
	outline-width: 1px;
	outline-style: solid;
	outline-offset: -1px;
	outline-color: var(--vscode-focusBorder);
	opacity: 1;
}

.monaco-workbench.hc-black .synthetic-focus input,
.monaco-workbench.hc-light .synthetic-focus input {
	background: transparent; /* Search input focus fix when in high contrast */
}

.monaco-workbench-part input[type="checkbox"]:focus {
	outline-offset: 2px;
}

.monaco-workbench-part [tabindex="0"]:active,
.monaco-workbench-part [tabindex="-1"]:active,
.monaco-workbench-part select:active,
.monaco-workbench-part input[type="button"]:active,
.monaco-workbench-part input[type="checkbox"]:active {
	outline: 0 !important; /* fixes some flashing outlines from showing up when clicking */
}

.monaco-workbench.mac.monaco-workbench-part select:focus, .monaco-workbench.mac .monaco-workbench-part select:focus  {
	border-color: transparent; /* outline is a square, but border has a radius, so we avoid this glitch when focused (https://github.com/microsoft/vscode/issues/26045) */
}

.monaco-workbench.hc-black .monaco-list:not(.element-focused):not(:active):focus:before,
.monaco-workbench.hc-light .monaco-list:not(.element-focused):not(:active):focus:before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 15; /* make sure we are on top of the tree sticky scroll widget */
	content: "";
	pointer-events: none; /* enable click through */
	outline: 1px solid; /* we still need to handle the empty tree or no focus item case */
	outline-width: 1px;
	outline-style: solid;
	outline-offset: -1px;
	outline-color: var(--vscode-focusBorder);
}

.monaco-workbench .monaco-list:not(:focus) .monaco-list-row.focused .monaco-highlighted-label .highlight,
.monaco-workbench .monaco-list .monaco-list-row .monaco-highlighted-label .highlight {
	color: var(--vscode-list-highlightForeground);
}

.monaco-workbench .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight {
	color: var(--vscode-list-focusHighlightForeground);
}

.monaco-workbench-part .synthetic-focus :focus {
	outline: 0 !important; /* elements within widgets that draw synthetic-focus should never show focus */
}

.monaco-workbench-part .monaco-inputbox.info.synthetic-focus,
.monaco-workbench-part .monaco-inputbox.warning.synthetic-focus,
.monaco-workbench-part .monaco-inputbox.error.synthetic-focus,
.monaco-workbench-part .monaco-inputbox.info input[type="text"]:focus,
.monaco-workbench-part .monaco-inputbox.warning input[type="text"]:focus,
.monaco-workbench-part .monaco-inputbox.error input[type="text"]:focus {
	outline: 0 !important; /* outline is not going well with decoration */
}

.monaco-workbench-part .monaco-list:focus {
	outline: 0 !important; /* tree indicates focus not via outline but through the focused item */
}

.monaco-workbench-part a.monaco-link:hover {
	text-decoration: underline; /* render underline on hover for accessibility requirements */
}

.monaco-workbench-part .monaco-action-bar:not(.vertical) .action-label:not(.disabled):hover,
.monaco-workbench-part .monaco-action-bar:not(.vertical) .monaco-dropdown-with-primary:not(.disabled):hover {
	background-color: var(--vscode-toolbar-hoverBackground);
}

.monaco-workbench-part .monaco-action-bar:not(.vertical) .action-item.active .action-label:not(.disabled),
.monaco-workbench-part .monaco-action-bar:not(.vertical) .monaco-dropdown.active .action-label:not(.disabled) {
	background-color: var(--vscode-toolbar-activeBackground);
}

.monaco-workbench-part .monaco-action-bar:not(.vertical) .action-item .action-label:hover:not(.disabled) {
	outline: 1px dashed var(--vscode-toolbar-hoverOutline);
	outline-offset: -1px;
}
