/* ---------------------------------------- */
/* Theme Name: revilodesign.de
/* Theme URI: http://www.revilodesign.de/
/* Version: 1.0
/* Author: Oliver Götze
/* ---------------------------------------- */

/*----------------*/
/* !ROOT-VARIABLES */
/*----------------*/
:root {
	--color-success-bg: rgba(224, 245, 224, 1);
	--color-success-border: rgba(76, 175, 80, 1);
	--color-success-text: rgba(46, 125, 50, 1);

	--color-error-bg: rgba(244, 67, 54, 1);
	--color-error-border: rgba(198, 40, 40, 1);
	--color-error-text: rgba(251, 234, 234, 1);

	--color-primary: 0, 84, 158;
	--color-primary-hover: 0, 112, 200;
	--color-secondary: 27, 99, 89;
	--color-secondary-hover: 40, 124, 114;
	--color-border: rgba(0, 0, 0, 0.1);
	--color-text: rgba(33, 33, 33, 1);
	--color-background: rgba(255, 255, 255, 1);
	--color-white: 255, 255, 255;
	--color-black: 0, 0, 0;

	--font-base: 'Segoe UI', sans-serif;
	--spacing: 24px;
	--radius: 8px;

	/* Typografie-Skala */
	--font-h1-size: 1.6rem;
	--font-h1-weight: 800;
	--font-h1-line: 1.2;

	--font-h2-size: 2rem;
	--font-h2-weight: 600;
	--font-h2-line: 1.3;

	--font-h3-size: 1.75rem;
	--font-h3-weight: 600;
	--font-h3-line: 1.3;

	--font-h4-size: 1.5rem;
	--font-h4-weight: 500;
	--font-h4-line: 1.4;

	--font-h5-size: 1.25rem;
	--font-h5-weight: 500;
	--font-h5-line: 1.4;

	--font-h6-size: 1rem;
	--font-h6-weight: 400;
	--font-h6-line: 1.5;

	--font-p-size: 1rem;
	--font-p-weight: 400;
	--font-p-line: 1.5;

	--font-small-size: .72rem;
	--font-small-weight: 400;
	--font-small-line: 1.2;

	--box-shadow: 0 3px 10px rgba(var(--color-black), 0.1);
	--transition-bounce: transform 2s linear(0, 0.5737 7.6%, 0.8382 11.87%, 0.9463 14.19%, 1.0292 16.54%, 1.0886 18.97%, 1.1258 21.53%, 1.137 22.97%, 1.1424 24.48%, 1.1423 26.1%, 1.1366 27.86%, 1.1165 31.01%, 1.0207 38.62%, 1.0219 42.57%, 0.9995 46.99%, 0.9872 51.63%, 0.9842 58.77%, 1.0011 81.26%, 1)
}

* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

/*-------------*/
/* !BASE STYLES */
/*-------------*/
body {
	margin: 0;
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-base);
	line-height: var(--font-p-line);
	font-size: var(--font-p-size);
	font-weight: var(--font-p-weight);
}

a {
	color: rgba(var(--color-primary), 1);
	text-decoration: none;
}

a:hover {
	color: rgba(var(--color-primary-hover), 1);
}


/*----------------*/
/* !HEADLINE STYLES */
/*----------------*/
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	padding-bottom: calc(var(--spacing) * 0.5);
}

h1 {
	font-family: var(--font-base);
	font-size: var(--font-h1-size);
	line-height: var(--font-h1-line);
	font-weight: var(--font-h1-weight);
}

h2 {
	margin-top: 0;
	font-family: var(--font-base);
	font-size: var(--font-h2-size);
	line-height: var(--font-h2-line);
	font-weight: var(--font-h2-weight);
}

h3 {
	font-family: var(--font-base);
	font-size: var(--font-h3-size);
	line-height: var(--font-h3-line);
	font-weight: var(--font-h3-weight);
}

h4 {
	font-family: var(--font-base);
	font-size: var(--font-h4-size);
	line-height: var(--font-h4-line);
	font-weight: var(--font-h4-weight);
}

h5 {
	font-family: var(--font-base);
	font-size: var(--font-h5-size);
	line-height: var(--font-h5-line);
	font-weight: var(--font-h5-weight);
}

h6 {
	margin-top: 0;
	margin-bottom: calc(var(--spacing) * 0.25);
	font-family: var(--font-base);
	font-size: var(--font-h6-size);
	line-height: var(--font-h6-line);
	font-weight: var(--font-h6-weight);
	color: var(--color-text);
}

p {
	padding-bottom: var(--font-p-line);
	margin: 0;
}

/*--------*/
/* !FIXED */
/*--------*/
.sticky {
	position: sticky;
	top: 88px;
	width: 100%;
}

/*----------*/
/* !CONTENT */
/*----------*/
div.content {
	padding: 24px;
	position: relative;
	z-index: 9;
}

/*-------*/
/* !CARD */
/*-------*/
.card {
	background: rgba(var(--color-white), 1);
	padding: var(--spacing);
	border-bottom: 1px solid var(--color-border);
	border-radius: var(--radius);
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	box-shadow: var(--box-shadow);
	overflow: hidden;
}

.card .card-header {
	margin: calc(-1 * var(--spacing)) calc(-1 * var(--spacing)) 0 calc(-1 * var(--spacing));
	padding: calc(var(--spacing) * 0.5) var(--spacing);
	border-bottom: 1px solid var(--color-border);
	width: calc(100% + (2 * var(--spacing)));
	margin-bottom: var(--spacing);
	background: rgba(var(--color-black), .02);
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.card .card-header h1 {
	padding: 0;
}

@media (max-width: 768px) {
	.card .card-header {
		flex-direction: column;
		gap: calc(var(--spacing) / 2);
	}
}

/*------*/
/* FLEX */
/*------*/
.flex {
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: justify;
	justify-content: space-between;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 40px;
}

.flex.flexColumn,
.flex.flex-column {
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
}

.flex-align-center {
	align-items: center;
}

.flex.flexStart {
	justify-content: flex-start;
	margin: 0;
}

.flex.flexEnd {
	justify-content: flex-end;
	margin: 0;
}

.flex.justifyCenter {
	justify-content: center;
}

.flex.wrap,
.flex.flexWrap {
	flex-wrap: wrap;
	justify-content: flex-start
}

.flex .flexbox {
	flex: 1 1 50%;
}

.flex .flexbox.flexbox-2 {
	flex-grow: 2;
	flex-basis: 0;
	flex: 1 1 66.6%;
}

.flex .flexbox.flexbox-3 {
	flex-grow: 3;
	flex-basis: 0;
	flex: 1 1 72%;
}

.flex .flexbox.flexbox-4 {
	flex-grow: 4;
	flex-basis: 0;
	flex: 1 1 80%;
}

.flex .flexbox.flexbox-5 {
	flex-grow: 5;
	flex-basis: 0;
	flex: 1 1 80%;
}

.flex .flexbox.flexbox-auto {
	flex-grow: 0;
	flex-basis: auto;
}

.flex .flexbox.flexEnd {
	display: flex;
	justify-content: flex-end;
}

.flex .flexbox.assets.left {
	order: -1;
	justify-content: flex-end;
	align-items: flex-end;
}

.flex .flexbox.assets.right {
	order: 99;
	justify-content: flex-end;
	align-items: flex-end;
}

.flex .flexbox.assets {
	display: flex;
	flex-direction: column;
	position: sticky;
	top: calc(10vh + (64px / 2));
}

.flex .flexbox.text {
	flex: 1 1 72%;
}

.flex .flexbox.text.asset-type-text {
	flex: 1 1 50%;
}


.flex .flexbox.assets picture {
	position: relative;
	z-index: 9;
}

.flex .flexbox.assets picture img {
	width: 100%;
	max-width: 1024px;
}


.flex .flexbox.facts {
	min-width: 100%;
}

.flex .flexbox.assets.facts {
	min-width: inherit;
}

.flex .flexbox.assets.assets-type-slider {
	max-width: 50%;
}

.flex .flexbox.assets.assets-type-slider div.swiper {
	max-width: 100%;
}

@media (max-width: 1200px) {

	.flex .flexbox.text {
		max-width: 66.6%;
	}
}

@media (max-width: 1100px) {

	.flex .flexbox.text {
		max-width: 50%;
	}

	.flex .flexbox.assets.right {
		order: -1;
	}
}

@media (max-width: 768px) {
	.flex {
		flex-wrap: wrap;
		flex-direction: column;
	}

	.flex .flexbox.text {
		max-width: 100%;
		width: 100%;
	}

	.flex .flexbox.assets {
		max-width: 100%;
		width: 100%;
		order: -1;
		position: relative;
		top: initial;
	}
}

/*---------*/
/* !HEADER */
/*---------*/
header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: var(--spacing);
}

header h1 {
	padding: 0;
}

/*-----------*/
/* !FORMULAR */
/*-----------*/
form {
	width: 100%;
	margin-top: 1rem;
}

form .flex {
	gap: var(--spacing);
}

label {
	display: block;
	margin-bottom: 0.25rem;
	font-weight: 600;
}

label.required::after {
	content: " *";
	color: var(--color-error-text);
	/* dein rotes Error-Text-Farb-Variable */
	font-weight: bold;
}

input,
select,
button,
textarea {
	width: 100%;
	padding: 0.8rem 1rem;
	border-radius: var(--radius);
	border: 1px solid var(--color-border);
	font-size: 1rem;
	background: rgba(var(--color-white), 1);
}

textarea {
	height: 124px;
}

button {
	background: rgba(var(--color-primary), 1);
	color: rgba(var(--color-white), 1);
	border: none;
	cursor: pointer;
	width: auto;
	padding: 0.6rem 0.8rem;
	font-size: .88rem;
	margin: 0;
}

button:hover {
	background: rgba(var(--color-primary-hover), 1);
}

button.delete,
button.error {
	color: var(--color-error-border);
	padding: 0;
	border: none;
	background: transparent;
}

button.delete:hover,
button.error:hover {
	color: var(--color-error-border);
	padding: 0;
	border: none;
	background: transparent;
	text-decoration: underline;
}

button.text-button {
	color: var(--color-primary);
	padding: 0;
	border: none;
	background: transparent;
	text-decoration: none;
}

div.buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing);
	align-items: center;
}

@media (max-width: 768px) {

	div.buttons {
		justify-content: center;
	}
}

/*----------------*/
/* !SELECT STYLES */
/*----------------*/
.select2-container--default .select2-selection--single {
	width: 100%;
	border-radius: var(--radius);
	border: 1px solid var(--color-border);
	font-size: 1rem;
	padding: 0.8rem 1rem;
	height: auto;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: initial;
	line-height: initial;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	width: 40px;
}

.select2-dropdown {
	border-radius: var(--radius);
	border: 1px solid var(--color-border);
}

.select2-results__option span,
.select2-container--default .select2-selection--single .select2-selection__rendered span {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 8px;
	padding: 0 1rem;
}

.select2-container--default .select2-selection--single .select2-selection__rendered span {
	padding: 0;
}

/*----------------*/
/* !TABLE */
/*----------------*/
.table {
	border-radius: var(--radius);
	border: 1px solid var(--color-border);
	;
}

table {
	width: 100%;
	border-collapse: collapse;
	background: rgba(var(--color-white), 1);
	border-color: transparent;
	border-radius: var(--radius);
	overflow: hidden;
}

thead {
	background-color: rgba(0, 0, 0, .03);

}

th,
td {
	padding: 0.75rem;
	text-align: left;
	font-size: 0.80rem;
}

th {
	font-weight: 600;
}

.table thead th {
	border: none;
}

/*----------------*/
/* !SHOW MESSAGES */
/*----------------*/
#messages {
	position: fixed;
	left: var(--spacing);
	bottom: var(--spacing);
	width: 480px;
	max-width: 100%;
	height: auto;
	max-width: 80vh;
	overflow: auto;
	z-index: 999;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.message {
	padding: 10px 32px 10px 10px;
	border-radius: var(--radius);
	position: relative;
}

.message .message-close {
	position: absolute;
	top: 12px;
	right: 8px;
	border-radius: var(--radius);
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	background: rgba(255, 255, 255, 0.4);
}

.message .message-close:hover {
	background: rgba(255, 255, 255, 0.8);
}

.message.success,
.message.message-success {
	background-color: var(--color-success-bg);
	border: 1px solid var(--color-success-border);
	color: var(--color-success-text);
}

.message.error,
.message.message-error {
	background-color: var(--color-error-bg);
	border: 1px solid var(--color-error-border);
	color: var(--color-error-text);
}

/*----------*/
/* !WRAPPER */
/*----------*/
#wrapper {
	padding: 64px 0 0 0;
}

/*----------*/
/* !HEADER */
/*----------*/
header#header {
	position: fixed;
	z-index: 999;
	width: 100%;
	max-width: 100%;
	background: rgba(var(--color-white), 1);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: calc(var(--spacing) * 2);
	padding: 12px 24px;
	border-bottom: 1px solid var(--color-border);
	box-shadow: var(--box-shadow);
	height: 64px;
}

header#header .logo {
	max-width: 72%;
	position: relative;
	z-index: 999;

}

header#header .logo picture {
	display: inline-flex;
	width: 100%;
	height: 100%;
}

header#header .logo picture img {
	height: 32px;
	width: auto;
	max-width: 100%;
	width: 100%:;
}

#header .buttons {
	flex-wrap: nowrap;
	gap: calc(var(--spacing) / 4);
}

/*------*/
/* !PAY */
/*------*/
.pay {
	color: rgba(var(--color-white), 1);
	background: rgba(var(--color-secondary), 1);
	border-radius: var(--radius);
	display: flex;
	align-items: center;
	cursor: pointer;
	border: none;
	height: 40px;
	font-family: var(--font-base);
	padding: 8px 16px;
	justify-content: center;
	gap: calc(var(--spacing) / 2);
	text-transform: uppercase;
	position: relative;
	z-index: 999;
}

/*-------*/
/* !MENU */
/*-------*/
#menu {
	color: rgba(var(--color-white), 1);
	background: rgba(var(--color-primary), 1);
	border-radius: var(--radius);
	display: flex;
	align-items: center;
	cursor: pointer;
	border: none;
	height: 40px;
	font-family: var(--font-base);
	padding: 8px 16px;
	justify-content: center;
	gap: calc(var(--spacing) / 2);
	text-transform: uppercase;
	position: relative;
	z-index: 999;
	display: none;
}

#menu div.menu-toggle {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	color: rgba(var(--color-white), 1);
	position: relative;
	width: 16px;
	height: 16px;
}

#menu div.menu-toggle::before,
#menu div.menu-toggle::after {
	content: '';
	width: 100%;
	height: 2px;
	background-color: rgba(var(--color-white), 1);
	position: absolute;
	left: 0;
	top: 50%;
}

#menu div.menu-toggle::before {
	margin-top: -4px;
}

#menu div.menu-toggle::after {
	margin-top: 2px;
}

@media (max-width: 768px) {
	#menu {
		display: flex;
	}

	#menu .menu-text {
		display: none;
	}
}

/*------*/
/* !NAV */
/*------*/
nav {
	background: rgba(var(--color-white), 1);
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	z-index: 990;
	background: rgba(var(--color-white), 1);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9;
}

nav.active {
	transform: translateY(0%);
}

nav ul {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: 0;
	margin: 0;
}

nav ul li {
	margin: 0;
	list-style: none;
}

nav ul li a {
	text-align: center;
}

@media (max-width: 768px) {
	nav {
		background: rgba(var(--color-white), 1);
		display: flex;
		justify-content: space-between;
		align-items: center;
		flex-wrap: wrap;
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		z-index: 990;
		background: rgba(var(--color-white), 1);
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 9;
		transition: var(--transition-bounce);
		transform: translateY(-120%);
	}

	nav.active {
		transform: translateY(0%);
	}

	nav ul {
		list-style: none;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1rem;
		padding: 0;
		margin: 0;
	}

	nav ul li a {
		text-align: center;
		font-size: var(--font-h1-size);
		font-weight: var(--font-h1-weight);
		line-height: var(--font-h1-line);
	}
}

/*----------*/
/* !SECTION */
/*----------*/
.post-list {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: calc(var(--spacing) / 2);
}

.post-list-entry {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 15px;
	padding: 12px 15px;
	border-radius: 6px;
	box-shadow: var(--box-shadow);
	cursor: default;
}

.post-list-entry:hover,
.post-list-entry:focus {
	background-color: rgba(var(--color-black), 0.01);
	outline: none;
}

/* Highlight Animation */
.post-list-entry.highlight {
	animation: highlightBG 3s ease forwards;
}

@keyframes highlightBG {
	0% {
		background-color: #d4edda;
	}

	100% {
		background-color: transparent;
	}
}



.post-date {
	min-width: 90px;
	font-weight: 600;
	color: rgba(var(--color-black), 0.8);
}

.post-info {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 1.5rem;
	min-width: 1.5rem;
	height: 1.5rem;
	border-radius: 2px;
	background: rgba(var(--color-black), .02);
}

.post-info.place {
	font-weight: var(--font-h1-weight);
}

.post-info.place-1 {
	background: gold;
	color: rgba(var(--color-white), 1);
}

.post-info.place-2 {
	background: silver;
}

.post-info.place-3 {
	background: brown;
	color: rgba(var(--color-white), 1);
}

.post-title {
	flex-grow: 1;
	font-weight: 700;
	color: rgba(var(--color-black), 1);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.post-title small {
	font-weight: 400;
}

.post-amount {
	flex-grow: 1;
	color: rgba(var(--color-black), 1);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-align: right;
}

.edit-post-btn {
	background-color: rgba(var(--color-primary), 1);
	border: none;
	color: rgba(var(--color-white), 1);
	padding: 6px 14px;
	border-radius: 4px;
	font-size: 0.9rem;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.penalties-details {
	min-width: 100%;
	display: flex;
	flex-direction: column;
	gap: 8px;
	display: none;
}

.post-list-entry.active {
	background-color: rgba(var(--color-black), .02);
}

.post-list-entry.active .penalties-details {
	display: flex;
}

.penalties-details .post-list {
	margin-bottom: 8px;
}

@media (max-width: 768px) {
	.post-title {
		white-space: initial;
		text-overflow: initial;
		overflow: initial;
	}
}

/*--------*/
/* !MODAL */
/*--------*/
.modal {
	position: fixed;
	z-index: 9999;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background: rgba(var(--color-black), .88);
	display: flex;
	justify-content: center;
	align-items: center;
}

.modal-content {
	background: rgba(var(--color-white), 1);
	padding: var(--spacing);
	border-radius: var(--radius);
	max-width: 800px;
	width: calc(100% - 48px);
	height: auto;
	max-height: calc(100% - 48px - 64px);
	box-shadow: var(--box-shadow);
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translateX(-50%) translateY(calc(-50% + 32px));
	padding: 0;
	align-items: initial;
	flex-wrap: initial;
}

.modal-content form {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	margin: 0;
	max-height: 100%;
	width: 100%;
	overflow: hidden;
}

.modal-content .modal-header {
	height: auto;
	padding: 12px 24px;
	border-bottom: 1px solid var(--color-border);
}

.modal-content .modal-header h2 {
	padding: 0;
	font-family: var(--font-base);
	font-size: var(--font-h4-size);
	line-height: var(--font-h4-line);
}

.modal-content .modal-footer {
	height: auto;
	padding: 12px 24px;
	border-top: 1px solid var(--color-border);
}

.modal-content .modal-form {
	height: 100%;
	overflow: auto;
	padding: 24px;
}

.modal-close {
	position: absolute;
	top: 8px;
	right: 10px;
	font-size: 1.5rem;
	font-weight: bold;
	color: rgba(var(--color-black), .88);
	cursor: pointer;
}

/*--------------*/
/* !ALL PLAYERS */
/*--------------*/
div.allPlayers {
	display: flex;
	flex-wrap: wrap;
	gap: calc(var(--spacing) / 4) calc(var(--spacing) / 2);
}

div.allPlayers label span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-radius: var(--radius);
	background: rgba(var(--color-black), .08);
	padding: 4px 8px;
	font-size: var(--font-small-size);
	cursor: pointer;
}

div.allPlayers label input {
	width: auto;
}

.allPlayers input[type="checkbox"] {
	display: none;
}

/* Label einfärben, wenn die Checkbox checked ist */
.allPlayers input[type="checkbox"]:checked+span,
.allPlayers input[type="checkbox"]:checked+text,
.allPlayers input[type="checkbox"]:checked+* {
	background: rgba(var(--color-primary), 1);
	color: white;
}

/* Nachrichtcontainer positionieren */
#globalMessages {
	position: fixed;
	left: 1rem;
	bottom: 1rem;
	max-width: 360px;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/*-------------------------*/
/* !STRAFEN MODAL REPEATER */
/*-------------------------*/
#penaltyRepeater {
	display: flex;
	flex-direction: column;
	gap: var(--spacing);
}

.penalty-item {
	border-radius: var(--radius);
	background: rgba(var(--color-black), .08);
	padding: var(--spacing);
}

/*-----------*/
/* !BEITRÄGE */
/*-----------*/
.contributions-container {
	display: flex;
	user-select: none;
	max-width: calc(100% + (2 * var(--spacing)));
	margin: calc(-1 * var(--spacing)) calc(-1 * var(--spacing)) 0 calc(-1 * var(--spacing));
	width: calc(100% + (2 * var(--spacing)));
}

.contributions-container .cell {
	height: 40px;
	line-height: 40px;
	border-bottom: 1px solid var(--color-border);
	padding: 0 8px;
	font-size: var(--font-small-size);
}

.contributions-container .cell:nth-child(odd) {
	background: rgba(var(--color-black), .04);
}

.contributions-container .headline {
	background: rgba(var(--color-black), .02);
}

/* Spalten Breiten */
.names-col {
	border-right: 1px solid var(--color-border);
}

.names-col .cell.name-cell {
	width: 80px;
	overflow: hidden;
	text-wrap: nowrap;
}

.offen-col {
	width: 72px;
	border-right: 1px solid var(--color-border);
	overflow-y: auto;
	text-align: right;
	font-weight: bold;
	color: var(--color-error-bg);
}

.offen-col .paid {
	color: var(--color-success-text);
}

.months-col {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow: auto;
}

/* Header Monatsnamen horizontal scroll */
.months-header {
	display: flex;
	min-height: 40px;
}

.month-header {
	flex: 0 0 80px;
	min-width: 10%;
	text-align: center;

	box-sizing: border-box;
}

/* Monats-Datenbereich vertikal scroll und horizontal an months-header anpassen */
.months-data {
	flex: 1;
}

.contributions-container .months-row {
	display: flex;
	padding: 0;
}

.month-cell {
	flex: 0 0 80px;

	min-width: 10%;
	text-align: center;
	box-sizing: border-box;
}

.month-cell.paid {
	background-color: var(--color-success-bg);
	color: var(--color-success-text);
}

.month-cell.owing {
	background: var(--color-error-text);
	color: var(--color-error-bg);
}

/*------------*/
/* !COUNTDOWN */
/*------------*/
.countdown-text {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: calc(var(--spacing) / 4);
	font-weight: 900;
	margin-bottom: var(--spacing)
}

.countdown-text #countdown {
	font-size: 40px;
	line-height: 40px;
}

/*----------*/
/* !RANDOM GENERATOR */
/*----------*/
/* Random-Generator – Layout & Feedback */

.msg-info {
	padding: 10px 12px;
	border-radius: 10px;
	background: rgba(0, 140, 255, 0.08);
	border: 1px solid rgba(0, 140, 255, 0.25);
	font-weight: 500;
	margin-bottom: 12px;
}

.msg-error {
	padding: 10px 12px;
	border-radius: 10px;
	background: rgba(220, 0, 0, 0.08);
	border: 1px solid rgba(220, 0, 0, 0.25);
	font-weight: 600;
	color: #a40000;
	margin-bottom: 12px;
}

/* Slot-Fenster / Anzeige */
.slot-window {
	height: 100%;
	width: 100%;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	flex-direction: column;
}

.slot-display {
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: .3px;
	padding: 0 16px;
	text-align: center;
	white-space: nowrap;
}

/* Spielerliste */
#randomGenerator {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100vh;
	max-height: 100vh;
	background: rgba(var(--color-white), 1);
	padding: 24px;
	z-index: 999;
	display: none;
}

#winnersList {
	position: absolute;
	z-index: 9999;
	left: var(--spacing);
	bottom: var(--spacing);
	border: 2px solid rgba(var(--color-primary), 1);
	padding: var(--spacing) var(--spacing) var(--spacing) 0;
	border-radius: var(--radius);
	box-shadow: var(--box-shadow);
	background: rgba(var(--color-white), 1);
	margin: 0;
	max-height: 100%;
	overflow: auto;
}
#winnersList img {
	display: none
}

#winnersList.highlight {
	position: fixed;
	bottom: var(--spacing);
	left: var(--spacing);
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding: var(--spacing) calc( var(--spacing) * 2 );
	animation: showWinner 900ms cubic-bezier(.25, .9, .3, 1) forwards;
	will-change: left, bottom;
}
#winnersList.highlight img {
	display: block;
	width: 100%;
	height: auto;
}

@keyframes showWinner {
	0% {
		bottom: var(--spacing);
		left: var(--spacing);
		border: 2px solid rgba(var(--color-primary), 1);
		width: auto;
		height: auto;
		text-align: left;
	}

	100% {
		top: 0;
		bottom: auto;
		left: 0;
		border: none;
		width: 100%;
		height: 100vh;
		max-height: 100vh;
		font-size: 1.8rem;
		line-height: 3rem;
		font-weight: 900;
		text-align: left;
	}
}

/* Canvas für Konfetti */
.confetti-canvas {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	pointer-events: none;
	z-index: 9999;
}

#rgDebugPanel {
	position: fixed;
	top: var(--spacing);
	left: var(--spacing);
	z-index: 9;
}

#rgCountdown {
	text-align: center;
	min-height: var(--spacing);
}


/*---------*/
/* !FOOTER */
/*---------*/
footer {
	padding: 8px 24px;
}