.fc-app * {
	box-sizing: border-box;
	margin: 0;
}

.fc-app {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.fc-app a {
	color: #00c;
}

.fc-app > header {
	margin-bottom: 20px;
	text-align: center;
}

.fc-app h1 {
	color: #f5f5f5;
	font-size: 52px;
	font-style: oblique;
	font-weight: 700;
	letter-spacing: -.05em;
	margin-top: 0;
	text-shadow: 1px 1px 2px #000;
}

.fc-app h2 {
	border-bottom: 1px solid #ccc;
	font-size: 20px;
	margin: 40px 0 20px;
	padding-bottom: 10px;
}

.fc-app h3 {
	font-size: 17px;
	margin-bottom: 10px;
}

.fc-app label {
	display: inline-block;
}

.fc-app button, .fc-app input, .fc-app select {
	font: inherit;
	padding: 6px;
}
.fc-app input[type="number"] {
	width: 90px;
}
.fc-app input[type="color"] {
	padding: 0;
}

.fc-app button, .fc-app .button {
	background-color: #45DFB0;
	border: none;
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	display: inline-block;
	padding: 6px 20px;
	text-align: center;
	text-decoration: none;
	min-width: 100px;
	font-weight: 700;
}
[data-theme="dark"] .fc-app button, [data-theme="dark"] .fc-app .button {
	color: #1a2332;
}

.fc-app .action-button::before,
.fc-app .icon-button::before {
	background-size: 24px;
	content: '';
	display: inline-block;
	height: 24px;
	vertical-align: text-top;
	width: 24px;
}

.fc-app .icon-button::before {
	margin-right: 10px;
}

.fc-app button[data-action="rotR"]::before {
	background-image: url(img/icons8-rotate-right-100.png);
}
.fc-app button[data-action="rotL"]::before {
	background-image: url(img/icons8-rotate-left-100.png);
}
.fc-app button[data-action="flipX"]::before {
	background-image: url(img/icons8-flip-vertical-100.png);
}
.fc-app button[data-action="flipY"]::before {
	background-image: url(img/icons8-flip-horizontal-100.png);
}
.fc-app button[data-action="reset"]::before {
	background-image: url(img/icons8-exchange-100.png);
}

.fc-app p {
	margin-bottom: 1em;
}

.fc-app .bottom {
	margin-bottom: 20px;
}

.fc-app .fullwidth {
	width: 100%;
}

.fc-app .lang-selection {
	display: flex;
	justify-content: space-evenly;
	list-style: none;
	padding: 0;
}
.fc-app .lang-selection li img {
	width: 32px;
}

.fc-app #config,
.fc-app #loading,
.fc-app #preview {
	display: inline-block;
	margin: 0 calc( ( 100vw - 1230px ) / 4 );
}

.fc-app #config {
	color: #555;
	padding: 20px;
	width: 700px;
}

.fc-app #color-presets-table {
	font-size: 13px;
}
.fc-app #color-presets-table button {
	margin-right: 5px;
}

.fc-app .color-block {
	border: 1px solid #888;
	display: inline-block;
	height: 20px;
	margin-right: 10px;
	width: 20px;
}

.fc-app .config-row {
	margin-bottom: 20px;
}

.fc-app .config-blocks {
	display: flex;
	justify-content: space-between;
	margin-bottom: 20px;
}

.fc-app .flex-blocks {
	display: flex;
	justify-content: space-evenly;
	margin-bottom: 40px;
}

.fc-app .config-block {
	display: inline-block;
}
.fc-app .config-blocks input[type="text"] {
	width: 150px;
}

.fc-app .right {
	float: right;
}

.fc-app #layout-selector input[type="radio"] {
	display: none;
}
.fc-app #layout-selector input[type="radio"]:checked + .label-layout {
	background: #fff4d3;
	border-color: #ea0;
	color: #543;
}
.fc-app .label-layout {
	border: 4px solid transparent;
	border-radius: 5px;
	cursor: pointer;
	padding: 10px;
}
.fc-app .label-layout:hover {
	background-color: #f0f0f0;
}
.fc-app .label-layout img {
	display: block;
	height: 150px;
	margin: 0 auto;
}

.fc-app .tag {
	display: block;
	font-size: 10px;
	text-transform: uppercase;
}

.fc-app .image-selector {
	height: 500px;
	margin-bottom: 20px;
}
.fc-app .image-selector img {
	max-width: 100%;
}

.fc-app .custom-file-button input,
.fc-app #config.digital #print-config,
.fc-app #config.digital .calendar-config,
.fc-app #config.digital #show-holidays-label,
.fc-app #config:not(.digital) .canvas-config,
.fc-app #config:not(.digital) #download-config {
	display: none;
}

.fc-app .custom-file-button::before {
	background-image: url(img/icons8-image-file.png);
}

.fc-app .print-button::before {
	background-image: url(img/icons8-print.png);
}

.fc-app .download-button::before {
	background-image: url(img/icons8-download.png);
}

.fc-app .rotate-button::before {
	background-image: url(img/icons8-rotate-screen-100.png);
}

.fc-app #custom-holidays {
	font-size: 13px;
}
.fc-app #custom-holidays-table tr td:nth-child(2) {
	text-align: center;
}
.fc-app #custom-holidays-table td {
	max-width: 160px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.fc-app #custom-holidays-table button {
	width: 100px;
}

.fc-app #custom-holiday-day {
	width: 50px;
}
.fc-app #custom-holiday-name {
	width: 150px;
}

.fc-app #print-config ul {
	background-image: url(img/icons8-training.png);
	background-repeat: no-repeat;
	background-size: 80px;
	line-height: 1.6;
	margin-bottom: 30px;
	padding: 0 0 10px 110px;
}

.fc-app .note,
.fc-app .credits {
	font-size: 12px;
	padding: 10px 0;
}

.fc-app h2 ~ .note {
	margin-top: -20px;
}

.fc-app label .note {
	padding: 0 0 0 18px;
}

.fc-app .credits {
	border-top: 1px dotted #ccc;
	line-height: 1.6;
	margin-top: 50px;
	text-align: center;
}

/* Tabs */

.fc-app .tab-container {
	background: transparent;
}
.fc-app .tab-container input[type="radio"] {
	display: none;
}
.fc-app .tab-container .tab {
	display: none !important;
}
.fc-app .tab-container input[type="radio"]:checked + label {
	background: #fff;
	box-shadow: inset 0 4px #ea0;
}

.fc-app #front-config,
.fc-app #back-config {
	background: #fff;
	display: none;
	padding-top: 20px;
}
.fc-app #pos0:checked ~ #front-config,
.fc-app #pos1:checked ~ #back-config {
	display: block;
}

/**
 * Preview area
 */

.fc-app #loading,
.fc-app #preview {
	position: sticky;
	top: 170px;
	vertical-align: top;
	width: auto;
	z-index: 1;
}

.fc-app #loading {
	text-align: center;
	top: 40%;
}

.fc-app #preview {
	top: 170px;
	z-index: 1;
}

.fc-app .preview-header {
	font-size: 26px;
	font-style: oblique;
	font-weight: bold;
	margin-bottom: 20px;
}

.fc-app #preview-content {
	box-shadow: 1px 1px 6px rgba(0,0,0,.3);
	font-size: 12px;
}
.fc-app #preview-content.iso {
	height: 707px; /* aspect-ratio: 1 / 1.414 */
}
.fc-app #preview-content.letter {
	height: 646px; /* aspect-ratio: 1 / 1.292 */
}
.fc-app #preview-content.tabloid {
	height: 774px; /* aspect-ratio: 1 / 1.548 */
}
.fc-app #preview-content.legal {
	height: 824px; /* aspect-ratio: 1 / 1.648 */
}

.fc-app #canvas {
	display: none;
	max-height: 705px;
	max-width: 100%;
}

.fc-app #preview-content .note {
	color: #999;
	font-size: 10px;
	margin-top: -2em;
	padding: 0;
}

.fc-app .top-half {
	height: 50%;
	position: relative;
	transform: rotate(180deg);
}

.fc-app .bottom-half {
	border-top: 1px dashed #000;
	height: 50%;
	position: relative;
}

.fc-app .fold-line {
	border-top: 1px dashed #000;
	bottom: 0;
	height: 20%;
	padding-top: 15px;
	position: absolute;
	text-align: center;
	width: 100%;
}
.fc-app .fold-line img {
	height: 2.5em;
	vertical-align: middle;
	width: 2.5em;
}

.fc-app .elements {
	display: flex;
	height: 100%;
}

.fc-app .align-center {
	text-align: center;
}

.fc-app .align-middle {
	align-self: center;
}

.fc-app .align-right {
	text-align: right;
}

/**
 * Calendar styles
 */

.fc-app .calendar {
	height: calc( 80% - 6em );
}
.fc-app .calendar table {
	border-collapse: collapse;
	height: 100%;
	margin: 0 auto;
	width: 90%;
}
.fc-app .calendar table th,
.fc-app .calendar table td {
	border: 1px solid #ddd;
	padding: .3em .5em;
	width: 14.3%;
}
.fc-app .calendar table th {
	font-size: 80%;
	font-weight: normal;
	height: 10%;
	text-align: center;
	text-transform: uppercase;
}
.fc-app .calendar table td {
	position: relative;
	text-align: right;
	vertical-align: top;
}
.fc-app .calendar table td.prev-month,
.fc-app .calendar table td.next-month {
	color: #ccc;
}
.fc-app .calendar table th.holiday,
.fc-app .calendar table td.holiday {
	color: #c00;
}
.fc-app .calendar table td.holiday.prev-month,
.fc-app .calendar table td.holiday.next-month {
	color: #fcc;
}

.fc-app .cal-image {
	background-position: center;
	background-repeat: no-repeat;
	background-size: auto 100%;
	height: 80%;
	overflow: hidden;
	width: 40%;
}
.fc-app #preview0, #preview1 {
	height: 100%;
	width: 100%;
}

.fc-app .cal-content {
	width: 60%;
}

.fc-app .cal-title {
	font-size: 130%;
	font-weight: bold;
	margin: 1em 0;
	text-align: center;
}

.fc-app .modern .calendar table th,
.fc-app .modern .calendar table td {
	border-width: 1px 0;
	text-align: center;
	vertical-align: middle;
}

.fc-app .holiday-name {
	bottom: 1em;
	color: #999;
	display: none;
	font-size: 40%;
	font-style: italic;
	left: 0;
	line-height: 1;
	position: absolute;
	right: 0;
	text-align: center;
}

.fc-app .holiday-list {
	display: none;
	font-size: 85%;
}
.fc-app .holiday-list td {
	border: none !important;
	text-align: center !important;
	vertical-align: middle !important;
}

.fc-app .desktop.show-holidays .holiday-list {
	display: table-row;
}

.fc-app .desktop.show-holidays .calendar {
	height: calc( 80% - 4.5em );
}


/* Single month wall calendar */

.fc-app .wall-single #preview-content {
	font-size: 13px;
}
.fc-app .wall-single .top-half,
.fc-app .wall-single .fold-line {
	display: none;
}
.fc-app .wall-single .elements {
	display: block;
}
.fc-app .wall-single .bottom-half {
	border-top: none;
	height: 100%;
}
.fc-app .wall-single .bottom-half .cal-image,
.fc-app .wall-single .bottom-half .cal-content {
	background-size: 100%;
	height: 50%;
	width: 100%;
}
.fc-app .wall-single .calendar {
	height: calc( 100% - 8em );
}

.fc-app .wall-single.show-holidays .holiday-name {
	display: block;
}

/* Digital wallpaper calendar */

.fc-app .digital #canvas {
	display: block;
}
.fc-app .digital #preview-content {
	display: none;
}

/* Breakpoint for smaller screens */

@media screen and ( max-width: 1279px ) {

	#config, #preview {
		display: block;
		margin: 0 auto;
		padding: 20px;
	}
}

/**
 * Styles for printing
 */

@media print {

	* {
		margin: 0 !important;
		padding: 0 !important;
	}

	html,
	body {
		height: 100% !important;
		width: 100% !important;
	}

	.container {
		display: block !important;
		height: 100% !important;
		width: 100% !important;
	}

	#config,
	.preview-header,
	.credits,
	#loading {
		display: none !important;
	}

	#preview {
		display: block !important;
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100% !important;
		margin: 0 !important;
	}

	#preview-content {
		box-shadow: none !important;
		font-size: 2.2vw;
		left: 0 !important;
		position: absolute !important;
		top: 0 !important;
		width: 100% !important;
		height: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	#preview-content .note {
		font-size: 1.5vw;
		margin-top: -4em !important;
	}

	.wall-single #preview-content {
		font-size: 2.5vw;
	}
	.wall-single .top-half .note {
		display: none !important;
	}
}