/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */

/**
 *  Default styles for xterm.js
 */

.xterm {
	cursor: text;
	position: relative;
	user-select: none;
	-ms-user-select: none;
	-webkit-user-select: none;
}

.xterm.focus,
.xterm:focus {
	outline: none;
}

.xterm .xterm-helpers {
	position: absolute;
	top: 0;
	/**
	 * The z-index of the helpers must be higher than the canvases in order for
	 * IMEs to appear on top.
	 */
	z-index: 5;
}

.xterm .xterm-helper-textarea {
	padding: 0;
	border: 0;
	margin: 0;
	/* Move textarea out of the screen to the far left, so that the cursor is not visible */
	position: absolute;
	opacity: 0;
	left: -9999em;
	top: 0;
	width: 0;
	height: 0;
	z-index: -5;
	/** Prevent wrapping so the IME appears against the textarea at the correct position */
	white-space: nowrap;
	overflow: hidden;
	resize: none;
}

.xterm .composition-view {
	/* TODO: Composition position got messed up somewhere */
	background: #000;
	color: #FFF;
	display: none;
	position: absolute;
	white-space: nowrap;
	z-index: 1;
}

.xterm .composition-view.active {
	display: block;
}

.xterm .xterm-viewport {
	position: absolute;
	right: 0;
	left: 0;
	top: 0;
	bottom: 0;
}

.xterm .xterm-screen {
	position: relative;
}

.xterm .xterm-screen canvas {
	position: absolute;
	left: 0;
	top: 0;
}

.xterm-char-measure-element {
	display: inline-block;
	visibility: hidden;
	position: absolute;
	top: 0;
	left: -9999em;
	line-height: normal;
}

.xterm.enable-mouse-events {
	/* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */
	cursor: default;
}

.xterm.xterm-cursor-pointer,
.xterm .xterm-cursor-pointer {
	cursor: pointer;
}

.xterm.column-select.focus {
	/* Column selection mode */
	cursor: crosshair;
}

.xterm .xterm-accessibility:not(.debug),
.xterm .xterm-message {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	right: 0;
	z-index: 10;
	color: transparent;
	pointer-events: none;
}

.xterm .xterm-accessibility-tree:not(.debug) *::selection {
	color: transparent;
}

.xterm .xterm-accessibility-tree {
	font-family: monospace;
	user-select: text;
	white-space: pre;
}

.xterm .xterm-accessibility-tree > div {
	transform-origin: left;
	width: fit-content;
}

.xterm .live-region {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.xterm-dim {
	/* Dim should not apply to background, so the opacity of the foreground color is applied
	 * explicitly in the generated class and reset to 1 here */
	opacity: 1 !important;
}

.xterm-underline-1 {
	text-decoration: underline;
}

.xterm-underline-2 {
	text-decoration: double underline;
}

.xterm-underline-3 {
	text-decoration: wavy underline;
}

.xterm-underline-4 {
	text-decoration: dotted underline;
}

.xterm-underline-5 {
	text-decoration: dashed underline;
}

.xterm-overline {
	text-decoration: overline;
}

.xterm-overline.xterm-underline-1 {
	text-decoration: overline underline;
}

.xterm-overline.xterm-underline-2 {
	text-decoration: overline double underline;
}

.xterm-overline.xterm-underline-3 {
	text-decoration: overline wavy underline;
}

.xterm-overline.xterm-underline-4 {
	text-decoration: overline dotted underline;
}

.xterm-overline.xterm-underline-5 {
	text-decoration: overline dashed underline;
}

.xterm-strikethrough {
	text-decoration: line-through;
}

.xterm-screen .xterm-decoration-container .xterm-decoration {
	z-index: 6;
	position: absolute;
}

.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer {
	z-index: 7;
}

.xterm-decoration-overview-ruler {
	z-index: 8;
	position: absolute;
	top: 0;
	right: 0;
	pointer-events: none;
}

.xterm-decoration-top {
	z-index: 2;
	position: relative;
}



/* Derived from vs/base/browser/ui/scrollbar/media/scrollbar.css */

/* xterm.js customization: Override xterm's cursor style */
.xterm .xterm-scrollable-element > .scrollbar {
	cursor: default;
}

/* Arrows */
.xterm .xterm-scrollable-element > .scrollbar > .scra {
	cursor: pointer;
	font-size: 11px !important;
}

.xterm .xterm-scrollable-element > .visible {
	opacity: 1;

	/* Background rule added for IE9 - to allow clicks on dom node */
	background: rgba(0, 0, 0, 0);

	transition: opacity 100ms linear;
	/* In front of peek view */
	z-index: 11;
}

.xterm .xterm-scrollable-element > .invisible {
	opacity: 0;
	pointer-events: none;
}

.xterm .xterm-scrollable-element > .invisible.fade {
	transition: opacity 800ms linear;
}

/* Scrollable Content Inset Shadow */
.xterm .xterm-scrollable-element > .shadow {
	position: absolute;
	display: none;
}

.xterm .xterm-scrollable-element > .shadow.top {
	display: block;
	top: 0;
	left: 3px;
	height: 3px;
	width: 100%;
	box-shadow: var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset;
}

.xterm .xterm-scrollable-element > .shadow.left {
	display: block;
	top: 3px;
	left: 0;
	height: 100%;
	width: 3px;
	box-shadow: var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset;
}

.xterm .xterm-scrollable-element > .shadow.top-left-corner {
	display: block;
	top: 0;
	left: 0;
	height: 3px;
	width: 3px;
}

.xterm .xterm-scrollable-element > .shadow.top.left {
	box-shadow: var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset;
}
