:root {
	--modal-view-controller-top-offset: 0;

	--popover-arrow-size: 14.14px;
	--popover-arrow-size-sqrt: 5.47722px;
	--popover-background-color: rgba(255, 255, 255, 1);
}

view-controller {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: #FFFFFF;
	display: none;
}

view-controller.visible {
	display: block;
}

.modal-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.4);
	z-index: 10000;
	display: none;
	text-align: center;
}

.modal-container.visible {
	display: block;
}

.modal-container > .vertical-centerer {
	display: inline-block;
	height: 100%;
	pointer-events: none;
	width: 0;
	vertical-align: middle;
}

.modal-container > view-controller.visible {
	display: inline-block;
	position: relative;
	width: 100vw;
	max-width: 1000px;
	max-height: calc(100vh - var(--modal-view-controller-top-offset));
	top: var(--modal-view-controller-top-offset);
	border-radius: 10px;
	box-shadow: 4px 8px 30px rgba(0, 0, 0, 0.4);
	background-color: #FFFFFF;
	vertical-align: middle;
}

view-controller-title {
	display: block;
	padding: 12px;
	background-color: #FFFFFF;
	border-bottom: 1px solid #EEEEEE;
	text-align: left;
	position: relative;
}

.modal-container > view-controller view-controller-title {
	border-radius: 12px 12px 0 0;
}

.popover-container, .tooltip-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	display: none;
}

.popover-container {
	z-index: 10001;
}

.tooltip-container {
	z-index: 10011;
	pointer-events: none;
}

.popover-container.visible, .tooltip-container.visible {
	display: block;
}

popover, tooltip {
	position: absolute;
}

tooltip {
	transition: opacity 0.8s;
	opacity: 1;
}

tooltip.dismissing {
	opacity: 0;
}

popover .popover-content, tooltip .tooltip-content {
	background-color: var(--popover-background-color);
	border-radius: 8px;
	padding: 20px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}

tooltip .tooltip-content {
	padding: 10px;
}

popover .popover-arrow-container, tooltip .tooltip-arrow-container {
	position: absolute;
	width: 0;
	height: 0;
}

popover.left .popover-arrow-container, tooltip.left .tooltip-arrow-container {
	right: 0;
	top: 50%;
}

popover.right .popover-arrow-container, tooltip.right .tooltip-arrow-container {
	left: 0;
	top: 50%;
}

popover.top .popover-arrow-container, tooltip.top .tooltip-arrow-container {
	left: 50%;
	bottom: 0;
}

popover.bottom .popover-arrow-container, tooltip.bottom .tooltip-arrow-container {
	left: 50%;
	top: 0;
}

popover .popover-arrow-box, tooltip .tooltip-arrow-box {
	position: absolute;
	overflow: hidden;
}

popover.left .popover-arrow-box, tooltip.left .tooltip-arrow-box {
	width: var(--popover-arrow-size);
	height: calc(var(--popover-arrow-size) * 2);
	top: calc(0px - var(--popover-arrow-size));
	left: 0;
}

popover.right .popover-arrow-box, tooltip.right .tooltip-arrow-box {
	width: var(--popover-arrow-size);
	height: calc(var(--popover-arrow-size) * 2);
	top: calc(0px - var(--popover-arrow-size));
	right: 0;
}

popover.top .popover-arrow-box, tooltip.top .tooltip-arrow-box {
	width: calc(var(--popover-arrow-size) * 2);
	height: var(--popover-arrow-size);
	top: 0;
	left: calc(0px - var(--popover-arrow-size));
}

popover.bottom .popover-arrow-box, tooltip.bottom .tooltip-arrow-box {
	width: calc(var(--popover-arrow-size) * 2);
	height: var(--popover-arrow-size);
	bottom: 0;
	left: calc(0px - var(--popover-arrow-size));
}

popover.right .popover-arrow-tip, tooltip.right .tooltip-arrow-tip {
	position: absolute;
	top: 3px;
	left: 5px;
	width: 22px;
	height: 22px;
	transform: rotate(45deg);
	background-color: var(--popover-background-color);
}

popover.left .popover-arrow-tip, tooltip.left .tooltip-arrow-tip {
	position: absolute;
	top: 3px;
	left: -13px;
	width: 22px;
	height: 22px;
	transform: rotate(45deg);
	background-color: var(--popover-background-color);
}

popover.bottom .popover-arrow-tip, tooltip.bottom .tooltip-arrow-tip {
	position: absolute;
	top: 5px;
	left: 3px;
	width: 22px;
	height: 22px;
	transform: rotate(45deg);
	background-color: var(--popover-background-color);
}

popover.top .popover-arrow-tip, tooltip.top .tooltip-arrow-tip {
	position: absolute;
	top: -13px;
	left: 3px;
	width: 22px;
	height: 22px;
	transform: rotate(45deg);
	background-color: var(--popover-background-color);
}