/* ----------------------------------------------------------------
	Custom CSS

	Add all your Custom Styled CSS here for New Styles or
	Overwriting Default Theme Styles for Better Handling Updates
-----------------------------------------------------------------*/

.skeleton {
	--skeleton-avatar-w: 80px;
	--skeleton-avatar-h: var(--skeleton-avatar-w);
	--skeleton-avatar-rounded: 50%;
	--skeleton-avatar-gap: 20px;
	--skeleton-color: #EEE;
	--skeleton-title-height: 20px;
	--skeleton-title-radius: 3px;
	--skeleton-anim-bg: rgba(255, 255, 255, 0.4);
	--skeleton-anim-speed: 1.5s;
	--skeleton-bg: transparent;
	background-color: var(--skeleton-bg);
}

.lazy .skeleton {
	display: none;
}

.lazy.lazy-loaded .skeleton {
	display: block;
}

/*
 * Skeleton for Loading
 */
.skeleton-avatar {
	width: var(--skeleton-avatar-w);
	height: var(--skeleton-avatar-h);
	border-radius: var(--skeleton-avatar-rounded);
	background-color: var(--skeleton-color);
	margin-bottom: var(--skeleton-avatar-gap);
	overflow: hidden;
	position: relative;
}

.skeleton-title,
.skeleton-para li {
	height: var(--skeleton-title-height);
	border-radius: var(--skeleton-title-radius);
	background-color: var(--skeleton-color);
	margin: calc(var(--skeleton-avatar-gap) / 2) 0;
	overflow: hidden;
	position: relative;
}

.skeleton-para li {
	height: calc(var(--skeleton-title-height) - 7px);
	overflow: hidden;
}

[class*="skeleton-"]::after {
	display: block;
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	transform: translateX(-100%);
	background: -webkit-gradient(linear, left top,
			right top, from(transparent),
			color-stop(var(--skeleton-anim-bg)),
			to(transparent));

	background: linear-gradient(90deg, transparent,
			var(--skeleton-anim-bg), transparent);

	/* Adding animation */
	animation: loading var(--skeleton-anim-speed) infinite;
}

/* Loading Animation */
@keyframes loading {
	100% {
		transform: translateX(100%);
	}
}

@-webkit-keyframes loading {
	100% {
		transform: translateX(100%);
	}
}

.skeleton-2 {
	--skeleton-avatar-w: 100%;
	--skeleton-avatar-h: 150px;
	--skeleton-avatar-rounded: 6px;
	--skeleton-color: #EEE;
}

.skeleton.card {
	--skeleton-bg: #EEE;
	--skeleton-color: #FFF;
}

.rendered-html p {
	margin-bottom: 0 !important;
}

.rendered-html ul {
	margin-bottom: 0 !important;
}

.multi-line-ellipsis {
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.commentlist .rendered-html ul {
	list-style-type: disc;
}

.commentlist .rendered-html li,
.commentlist .rendered-html li ul,
.commentlist .rendered-html li ul li {
	margin: 0 0 0 0 !important;
}

.commentlist .rendered-html li:first-child,
.commentlist .rendered-html li ul,
.commentlist .rendered-html li ul li {
	margin: 2rem 0 0 0 !important;
}

.commentlist .rendered-html li {
	position: relative;
	margin: 0 0 0 0;
}

.dropdown-item:hover .description {
	color: white !important
}

.dropdown-item:hover {
	cursor: pointer;
}

.solved-color {
	color: #34b17f;
}

.progress-color {
	color: #d3d3d3;
}

.text-pop-image:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 100%);
	z-index: 1;
	pointer-events: none;
}

.text-pop-image-text {
	color: white !important;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}

/** Crossword Stuff **/
.crossword-grid {
	display: flex;
	justify-content: center;
	align-items: center;
}

.crossword-content-wrap {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.crossword-grid table {
	border-collapse: collapse;
}

.crossword-grid td {
	border: 1px solid #000;
	position: relative;
	padding: 0;
}

.crossword-grid input {
	width: 100%;
	height: 100%;
	border: none;
	text-transform: uppercase;
	padding-top: calc(.25 * 100%)
}

.crossword-grid input::selection {
	color: inherit !important;
}

.black-cell {
	background-color: #000 !important;
	pointer-events: none;
	border: none;
}

.highlighted-cell {
	background-color: #FFF7E0 !important;
}

.selected-cell {
	background-color: #EBE3CC !important;
}

.marked-red-cell {
	color: red !important;
}

.special-cell-highlight {
	background-color: #FFF700 !important;
}

.special-cell-circle-overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    border: 1.5px solid black;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 0;
}

.creator-mode-cell {
	padding-top: 5px !important;
}

.creator-good-clue {
	color: green;
}

.creator-unknown-clue {
	color: #B8860B;
}

.selected-clue-header {
	background-color: #D8E9F0 !important;
	line-height: 1.5em;
	overflow: hidden;
	text-align: left;
	width: 100%;
	margin-left: 0;
	align-items: center;
	word-wrap: break-word;
	margin-bottom: 20px;
	min-height: 3.25em;
	padding: 0px 16px;
	display: flex !important;
	align-items: center;
	text-align: left;
}

.selected-clue-header-number {
	font-weight: 500;
	margin-right: 10px;
	display: contents;
}

.highlighted-clue {
	background-color: #D8E9F0 !important;
}

.clue-number {
	position: absolute;
	color: #666;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	top: calc(.05* 100%);
	left: calc(.1* 100%);
	font-size: calc(.5* 100%);
}

.create-match-number-across {
	position: absolute;
	color: #666;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	top: calc(.05* 100%);
	right: calc(.1* 100%);
	font-size: calc(.4* 100%);
}

.create-match-number-down {
	position: absolute;
	color: #666;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	bottom: calc(.0* 100%);
	right: calc(.1* 100%);
	font-size: calc(.4* 100%);
}


.crossword-header {
	border-bottom: 2px solid #000;
	margin-bottom: 20px;
	padding-bottom: 10px;
}

.crossword-header-subtitle {
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.crossword-title {
	font-size: 36px;
	font-weight: 700;
	margin: 0;
	line-height: 1;
}

.crossword-info {
	font-size: 14px;
	color: #666;
}

.crossword-puzzle {
	display: flex;
	flex-wrap: wrap;
}

.crossword-clues {
	flex: 2 1 600px;
	display: flex;
	justify-content: space-between;
}

.crossword-clues-section {
	flex-basis: 100%;
	max-width: 290px;
}

.crossword-clue-list {
	list-style-type: none;
	padding: 0;
	margin: 0;
	max-height: 600px;
	overflow-y: auto;
}

.crossword-clue {
	font-size: 14px;
	border-bottom: 1px solid #ddd;
	padding: 5px;
	cursor: pointer;
}

.crossword-clue:last-child {
	border-bottom: none;
}

.crossword-clue strong {
	font-weight: 700;
}

.crossword-controls {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}

.crossword-button {
	background-color: #000;
	color: #fff;
	border: none;
	padding: 5px 10px;
	font-size: 14px;
	cursor: pointer;
	margin: 2px;
}

.crossword-button:hover {
	background-color: #333;
}

.crossword-button:active {
	background-color: #000;
}

.crossword-button:focus {
	outline: none;
}

.crossword-button:disabled {
	background-color: #ccc;
	cursor: not-allowed;
}

.crossword-grid-cell {
	background-color: #fff;
	font-weight: 700;
	color: #000;
}

.crossword-grid-cell input {
	text-align: center;
	border: none;
	caret-color: transparent;
}

.crossword-grid-cell input::selection {
	background: transparent;
}

.crossword-grid-cell input::-webkit-selection {
	background: transparent;
}

.pause-overlay-container {
	position: relative;
}

.pause-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(255, 255, 255, 0.5);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	justify-content: center;
	align-items: center;
	display: flex;
	z-index: 10;
	padding: 10px;
}
#markdown img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    max-height: 400px;
}
#markdown ul {
	padding-left: 20px !important;
}
#markdown a {
   color: #5A7344;
   text-decoration: underline !important;
}
.loading-text {
	display: flex;
	align-items: center;
	justify-content: center;
}
.dots span {
	opacity: 0;
	animation: dots 1.5s infinite;
}
.dots span:nth-child(1) {
	animation-delay: 0s;
}
.dots span:nth-child(2) {
	animation-delay: 0.3s;
}
.dots span:nth-child(3) {
	animation-delay: 0.6s;
}
@keyframes dots {
0%, 100% {
	opacity: 0;
}
50% {
	opacity: 1;
}
}
.category-dropdown {
	max-width: 350px;
	height: 50px;
}
.dropdown-menu {
	max-height: 400px;
	overflow-y: auto;
	max-width: 350px;
}
.dropdown-toggle::after {
	margin-left: auto;
}
.description {
	white-space: normal;
}
.custom-select-dropdown {
	margin: 0 !important;
	border: none !important;
	padding-right: 30px;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 0 !important;
}
.forum-home-toolbar {
	text-transform: none !important;
	cursor: pointer;
	list-style-type: none;
}
.user-flow-background {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	min-height: 1000px;
}