/* ##################### GLOBAL ##################### */

@import url('https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap');

body {
	font-family: "Noto Sans", sans-serif, "Segoe UI Emoji", "Twemoji Mozilla";
	font-size: 1rem;
	margin: 0;
	padding: 0px;
}
@media only screen and (orientation: landscape) {
	body {
		line-height: 1.50;
	}
}
@media only screen and (orientation: portrait) {
	body {
		line-height: 1.75;
	}
}

#modal {
	display: none;
	position: fixed;
	z-index: 1000;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
}

/* ##################### FORBID PORTRAIT ##################### */

#warning {
	display: none;
	color: #FF0000;
}
#main {
	display: block;
}
@media only screen and (orientation: portrait) {
	#warning {
		display: block;
	}
	body:has(#warning) #main {
		display: none;
	}
}

/* ##################### IFRAME ##################### */

body:has(iframe) {
	height: 100vh;
	width: 100vw;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

iframe {
	display: block;
	width: 100vw;
	height: 100vh;
	border: none;
}

/* ##################### ELEMENTS ##################### */

[onclick] {
	cursor: pointer;
}

a[href] {
	cursor: pointer;
	color: #0000FF;
	text-decoration: none;
}
a[href].dark {
	color: #1E90FF;
}
a[href]:not(.dark):hover {
	text-shadow: 0 0 10px #FFFFFF, 0 0 20px #000000;
}

input:invalid {
	border: red solid 3px;
}

select option[selected] {
	background-color: #FFC0CB;
}

/* ########################################################################## */
/* BLOCKS */

/* ##################### VISIBILITY ##################### */

.hidden {
	display: none;
}

.show {
	display: block;
}

/* ##################### ALIGN ##################### */

.float {
	float: left;
	overflow: hidden;
}

/* Avoid paragraphs much wide on landscape screens */

@media only screen and (orientation: landscape) {
	.soft_center {
		position: absolute;
		left: 50%;
		transform: translate(-50%, 0);
		min-width: 50%;
		max-width: 75%;
		margin: 0;
		padding: 3px;
	}
}
@media only screen and (orientation: portrait) {
	.soft_center {
		padding: 3px;
	}
}

/*
top_left       top_center       top_right
middle_left    middle_center    middle_right
bottom_left    bottom_center    bottom_right
Width and Height can reach until 90%.
*/

.top_left  {
	position: absolute;
	top: 0;
	left: 0;
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

.top_center  {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, 0);
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

.top_right  {
	position: absolute;
	top: 0;
	right: 0;
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

.middle_left {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(0, -50%);
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

.middle_center {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

.middle_right  {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(0, -50%);
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

.bottom_left  {
	position: absolute;
	bottom: 0;
	left: 0;
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

.bottom_center  {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translate(-50%, 0);
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

.bottom_right  {
	position: absolute;
	bottom: 0;
	right: 0;
	max-height: 90%;
	max-width: 90%;
	margin: 0;
	padding: 3px;
}

/* ##################### SIZE ##################### */

.w10 {
	width: 10vw;
	min-width: 10vw !important;
}

.w20 {
	width: 20vw;
	min-width: 20vw !important;
}

.w25 {
	width: 25vw;
	min-width: 25vw !important;
}

.w30 {
	width: 30vw;
	min-width: 30vw !important;
}

.w33 {
	width: 33vw;
	min-width: 33vw !important;
}

.w40 {
	width: 40vw;
	min-width: 40vw !important;
}

.w50 {
	width: 50vw;
	min-width: 50vw !important;
}

.w60 {
	width: 60vw;
	min-width: 60vw !important;
}

.w66 {
	width: 66vw;
	min-width: 66vw !important;
}

.w70 {
	width: 70vw;
	min-width: 70vw !important;
}

.w75 {
	width: 75vw;
	min-width: 75vw !important;
}

.w80 {
	width: 80vw;
	min-width: 80vw !important;
}

.w90 {
	width: 90vw;
	min-width: 90vw !important;
}

.w100 {
	width: 100vw;
	min-width: 100vw !important;
}

.h10 {
	height: 10vh !important;
	min-height: 10vh !important;
}

.h20 {
	height: 20vh !important;
	min-height: 20vh !important;
}

.h25 {
	height: 25vh !important;
	min-height: 25vh !important;
}

.h30 {
	height: 30vh !important;
	min-height: 30vh !important;
}

.h33 {
	height: 33vh !important;
	min-height: 33vh !important;
}

.h40 {
	height: 40vh !important;
	min-height: 40vh !important;
}

.h50 {
	height: 50vh !important;
	min-height: 50vh !important;
}

.h60 {
	height: 60vh !important;
	min-height: 60vh !important;
}

.h66 {
	height: 66vh !important;
	min-height: 66vh !important;
}

.h70 {
	height: 70vh !important;
	min-height: 70vh !important;
}

.h75 {
	height: 75vh !important;
	min-height: 75vh !important;
}

.h80 {
	height: 80vh !important;
	min-height: 80vh !important;
}

.h90 {
	height: 90vh !important;
	min-height: 90vh !important;
}

.h100 {
	height: 100vh !important;
	min-height: 100vh !important;
}

/* ##################### BORDER ##################### */

.bd-bk-1 {
	border: black solid 1px;
}
.bd-bk-2 {
	border: black solid 2px;
}
.bd-bk-3 {
	border: black solid 3px;
}
.bd-bk-4 {
	border: black solid 4px;
}

.bd-sv-1 {
	border: silver solid 1px;
}
.bd-sv-2 {
	border: silver solid 2px;
}
.bd-sv-3 {
	border: silver solid 3px;
}
.bd-sv-4 {
	border: silver solid 4px;
}

/* ##################### PADDING ##################### */

.pad0 {
	padding: 0px !important;
}

.pad1 {
	padding: 1px !important;
}

.pad2 {
	padding: 2px !important;
}

.pad3 {
	padding: 3px !important;
}

.pad4 {
	padding: 4px !important;
}

.pad5 {
	padding: 5px !important;
}

.pad10 {
	padding: 10px !important;
}

.pad15 {
	padding: 15px !important;
}

.pad20 {
	padding: 20px !important;
}

.pad25 {
	padding: 25px !important;
}

/* ##################### BACKGROUND ##################### */

.bg000 {
	background-color: #FFFFFF;
	color: #000000;
}

.bg010 {
	background-color: #E6E6E6;
	color: #000000;
}

.bg020 {
	background-color: #CCCCCC;
	color: #000000;
}

.bg030 {
	background-color: #B3B3B3;
	color: #000000;
}

.bg040 {
	background-color: #999999;
	color: #000000;
}

.bg050 {
	background-color: #808080;
	color: #FFFFFF;
}

.bg060 {
	background-color: #666666;
	color: #FFFFFF;
}

.bg070 {
	background-color: #4D4D4D;
	color: #FFFFFF;
}

.bg080 {
	background-color: #333333;
	color: #FFFFFF;
}

.bg090 {
	background-color: #191919;
	color: #FFFFFF;
}

.bg100 {
	background-color: #000000;
	color: #FFFFFF;
}

/* ##################### SHADOW ##################### */

/* Standard card style with a clean, diffuse look */
.shadow-card {
	box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);
}
/* Solid shadow without blurring */
.shadow-sharp {
	box-shadow: 5px 5px 0px #000000;
}
/* Uses spread radius and no horizontal/vertical movement to center the glow */
.shadow-glow {
	box-shadow: 0px 0px 15px 5px rgba(0, 255, 0, 0.5);
}
/* Forces the shadow inside the boundary edges of the container. */
.shadow-inner {
	box-shadow: inset 0px 4px 6px rgba(0, 0, 0, 0.3);
}
/* Separate settings with a comma to chain multiple effects onto one div */
.shadow-multi {
	box-shadow: 3px 3px 5px rgba(0,0,0,0.2), -3px -3px 5px rgba(0,0,0,0.1);
}

/* ########################################################################## */
/* TEXT */

/* ##################### ALIGN ##################### */

.left {
	text-align: left !important;
}
.center {
	text-align: center !important;
}
.right  {
	text-align: right !important;
}
.justify  {
	text-align: justify !important;
}

/* ##################### SIZE ##################### */

.fsize1 {
	font-size: 1rem;
}

.fsize12 {
	font-size: 1.2rem;
}

.fsize125 {
	font-size: 1.25rem;
}

.fsize14 {
	font-size: 1.4rem;
}

.fsize15 {
	font-size: 1.5rem;
}

.fsize16 {
	font-size: 1.6rem;
}

.fsize175 {
	font-size: 1.75rem;
}

.fsize18 {
	font-size: 1.8rem;
}

.fsize2 {
	font-size: 2rem;
}

.fsize225 {
	font-size: 2.25rem;
}

.fsize25 {
	font-size: 2.5rem;
}

.fsize275 {
	font-size: 2.75rem;
}

.fsize3 {
	font-size: 3rem;
}

/* ##################### LINE-HEIGHT ##################### */

.lh1 {
	line-height: 1;
}

.lh125 {
	line-height: 1.25;
}

.lh15 {
	line-height: 1.5;
}

.lh175 {
	line-height: 1.75;
}

.lh2 {
	line-height: 2;
}

.lh225 {
	line-height: 2.25;
}

.lh25 {
	line-height: 2.5;
}

/* ##################### SHADOW ##################### */

/*
#00FF85
#FFD700
#1E90FF
#FF0099
*/

/* Basic Drop Shadow: Adds simple depth */
.tshadow {
	text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}
/* Neon Glow: Uses a zero offset with a large blur and vivid color */
.tshadow-neon {
	text-shadow: 0 0 10px #FFF, 0 0 20px #0FF;
}
/* Text Outline: Created by stacking four shadows in different directions */
.tshadow-out {
	text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}
/* 3D Effect: Stacking multiple shadows with increasing offsets */
.tshadow3d {
	text-shadow: 1px 1px #555, 2px 2px #555, 3px 3px #555;
}

/* ##################### LISTS ##################### */

ul.one {
	list-style: none;
	padding-left: 15px;
	margin-bottom: 5px;
}
ul.one li::before {
	content: "📌 ";
}
ul.one li {
	margin-bottom: 5px;
}
ul.two {
	list-style: none;
	padding-left: 15px;
}
ul.two li::before {
	content: "✅ ";
}
ul.two li {
	margin-bottom: 5px;
}
ul.blank {
	list-style: none;
	padding-left: 15px;
	margin-bottom: 5px;
}
ul.blank li {
	margin-bottom: 5px;
}


/* ########################################################################## */

/* ##################### OTHERS ##################### */

.bold {
	font-weight: bold !important;
}

.button {
	background-color: #04AA6D; /* Green */
	border: none;
	color: white;
	padding: 15px 32px;
	text-align: center;
	text-decoration: none;
	display: inline-block;
	font-size: 1.15rem;
	cursor: pointer;
}

.pdf_icon {
	display: inline-block;
	width: 19px;
	height: 20px;
	padding: 0px 2px;
	vertical-align: sub;
	background-image: url('pdf.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
