.modal-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: none;
	z-index: 9001;
}

.modal-container.show {
	display: grid;
}

.modal-container .overlay {
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, .7);
	grid-column: 1 /span 1;
	grid-row: 1 /span 1;
}

.modal-container .modal {
	background-color: white;
	color: black;
	border-radius: 10px;
	align-self: center;
	justify-self: center;
	grid-column: 1 /span 1;
	grid-row: 1 /span 1;
	display: grid;
	grid-template-rows: auto 1fr auto;
	max-width: calc(98% - 2vh - 20px);
	max-height: calc(98% - 2vw - 20px);
	font-size: 1.4rem;
	color: var(--dark-color);
	z-index: 9001;
	position: absolute;
}

.modal-container .modal .modal-title {
	font-weight: 600;
	padding: 30px 30px 0px 30px;
	border-radius: 10px 10px 0 0;
	grid-column: 1 /span 1;
	grid-row: 1 /span 1;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

.modal-container .modal .modal-title > * {
	vertical-align: middle;
	margin-right: 10px;
}

.modal-container .modal .modal-title > *:last-child {
	margin-right: 0;
}

.modal-container .modal .modal-title svg path[stroke]:not([stroke='none']),
.modal-container .modal .modal-title svg rect[stroke]:not([stroke='none']),
.modal-container .modal .modal-title svg circle[stroke]:not([stroke='none']),
.modal-container .modal .modal-title svg line[stroke]:not([stroke='none'])
{
	stroke: var(--dark-color);
}

.modal-container .modal .modal-title svg path[fill]:not([fill='none']),
.modal-container .modal .modal-title svg rect[fill]:not([fill='none']),
.modal-container .modal .modal-title svg circle[fill]:not([fill='none']),
.modal-container .modal .modal-title svg line[fill]:not([fill='none'])
{
	fill: var(--dark-color);
}

.modal-container .modal .message-container {
	display: grid;
	grid-auto-flow: row;
	grid-template-rows: 20px auto 20px;
	overflow: hidden;
}

.modal-container .modal .message {
	overflow-y: auto;
	overflow-x: hidden;
	padding: 15px;
	margin: 15px;
	grid-column: 1 /span 1;
	grid-row: 1 /span 3;
	border: 1px solid var(--border-color);
	border-radius: 5px;
	max-width: 640px;
	min-width: calc(100% - 60px);
	font-size: 1.6rem;
}

.modal-container .modal .message.large {
	max-width: unset;
}

.modal-container .modal .message.vertical-scroll {
	overflow-x: auto;
}

.modal-container .modal .message.bare {
	border: none;
	padding: 0;
}

.modal-container .modal .interaction {
	display: grid;
	grid-auto-flow: column;
	justify-content: end;
	padding: 5px 15px 15px 15px;
	border-radius: 0 0 10px 10px;
	grid-column: 1 /span 1;
	grid-row: 3 /span 1;
}

.modal-container .interaction > div.button {
	margin-left: 15px;
	min-width: 100px;
}

.modal-container .interaction > div.button:first-child {
	margin-left: 0;
}

.message-fade-top, .message-fade-bottom {
	grid-column: 1 /span 1;
	height: 20px;
	width: calc(100% - 20px);
}

.message-fade-top {
	grid-row: 1 /span 1;
	align-self: start;
	background: linear-gradient(#ffffff 40%, #ffffff00);
	border-top: 1px solid transparent;
}

.message-fade-bottom {
	grid-row: 3 /span 1;
	align-self: end;
	background: linear-gradient(#ffffff00, #ffffff 60%);
	border-bottom: 1px solid transparent;
}

@media (min-width: 600px) {
	.modal-container .interaction > div.button {
		min-width: 120px;
	}
}
