:root {
	--main-bg-color: #ffffff;
	--main-txt-color: #000000;
	--secondary-color: #f0f0f0;
	--highlight-color: #ffffff;
	--border-radius: 0.5rem;
	--max-width: 100%;
	--side-margin: 4%;
	--header-txt-color: #282C34;
	--header-highlight-color: #0f0f0f;
}

body {
	background-color: var(--main-bg-color);
	color: var(--main-txt-color);
	transition: all 0.25s ease;
    font-family: sans-serif;
	overflow: hidden;
	font-size: 1.6rem;
}

input {
	border-radius: 0.5rem;
    outline: 0;
    border: 0;
    padding: 0.5rem;
    min-width: 20rem;
    text-align: center;
}

#pageBody {
	display:flex;
	flex-direction: column;
	gap: 1rem;
	overflow: clip;
}
#header {
	width: 100vw;
	height: 7rem;
	display: flex;
	flex-direction:column;
	align-items: center;
	user-select: none;
	text-align: center;
	gap: 1rem;
	position: relative;
}

#topContent {
    display: flex;
    flex-direction: column;
    align-items: center;
	gap: 2rem;
	overflow-y: scroll;
	height: calc(100vh - 8.5rem);
	position:relative;
}

.container {
    display: flex;
    flex-direction: column;
    /* #gap: 2rem; */
    padding: 0.5rem;
    max-width: 90vw;
	margin-bottom: 6rem;
}

.row {
	flex-direction: column;
    display: flex;
    justify-content: center;
    align-items: center;
	gap: 0;
}

.cell {
    background-color: var(--secondary-color);
	color: var(--main-txt-color);
    border: 0px solid #ccc;
	padding: 2rem;
	overflow: hidden;
	width: 70vw;
	min-width: 240px;
	min-height: 15rem;
	border-radius:0.5rem;
	user-select: none;
	align-items: center;
    display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 2rem;
	text-align: center;
	justify-content: center;
	transition: background 0.2s ease, min-width 0.2s ease, letter-spacing 0.2s ease, transform 0.2s ease;
}

.cell:hover {
	background-color: var(--main-bg-color);
	min-width: 250px;
	letter-spacing: 0.2rem;
}

#search {
	font-size: min(1rem, 16px);
    width: 30vw;
	min-width: 10rem;
    padding: 0.5rem;
	border-radius:0.5rem;
	border: none;
	outline: none;
	margin-top: -0.5rem;
}

#page_header{
	margin-top: 0.5rem;
	margin-bottom: 0.5rem;
}

button {
	position: relative;
	color: var(--main-txt-color);
	background-color: transparent;
	border: 0;
	padding: 0.5rem;
	border-radius: 0.5rem;
	font-size: 1.6rem;
	text-align: center;
	cursor: pointer;
	user-select: none;
	z-index: 99;
	transition: padding 0.2s ease, letter-spacing 0.2s ease, color 0.2s ease, background-color 0.2s ease, border-radius 0.2s ease;
}

button:hover {
	color: white !important;
	background-color: mediumseagreen !important;
	letter-spacing: 0.1rem;
}

img {
	pointer-events: none;
}

#overlayContent {
	background-color: var(--main-bg-color);
	color: var(--main-txt-color);
}

#qr_input, #CAPTCHA_input, #username, #password {
		border-radius: 0.5rem;
		outline: 0;
		border: 0;
		padding: 0.5rem;
		min-width: 20rem;
		text-align: center;
}

#qr_input:focus, #CAPTCHA_input:focus {
	outline: solid 1px mediumseagreen;
	caret-color: var(--main-txt-color);
}

#loginSection {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
}

#secretLogin {
	display: none;
	visibility: collapse;
}

#registration_form{
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.password-toggle {
	position: relative;
}

.password-toggle-icon {
    position: relative;
    top: -1.5rem;
    left: 9rem;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: smaller;
}

#registration_form input {
	padding:0.5rem;
	text-align: center;
	border-radius: 0.5rem;
	border: 0;
	outline: 0;
	background: var(--main-bg-color);
	color: var(--main-txt-color);
	min-widtH: 20rem;
}

#loginSection input:focus {
	outline: solid 1px mediumseagreen;
	caret-color: var(--main-txt-color);
}

#loginButtons {
	display: flex;
	flex-direction: row;
}

#qr_image {
	padding: 0.5rem;
}

.CellHeader {
	padding: 0.5rem;
	letter-spacing: 0 !important;
}

.disabledCellHeader{
	padding: 0.5rem;
	color: grey;
	cursor: help;
}

#captcha_image {
	border-radius: 0.5rem;
}

#CAPTCHA_input {
	display: none;
}


#imageContainer {
	user-select: none;
	min-width: 8rem;
	min-height: 8rem;
    max-width: 14rem;
    max-height: 14rem;
    max-block-size: fit-content;
	border-radius: 0.5rem;
	background-color: var(--main-bg-color);
	align-items: center;
	justify-content: center;
	display: flex;
	white-space: break-spaces;
	transition: height 0.25s ease, width 0.25s ease;
	position: static;
	color: lightgrey;
}

#imageContainer:hover {
	border: 2px dashed lightgrey;
}
#imageContainer.dragover {
	width: 12vw;
	height: 12vw;
	border: 4px dashed lightcoral;
}

#drag_parent {
    position: relative;
	overflow: clip;
}

#drag_parent:hover {
	border: 4px solid var(--secondary-color);
	width: calc(70vw - 8px);
	min-height:calc(15rem - 8px);
}

#downloadButton {
	padding:0 !important;
	display:none;
	visibility: collapse;
}


#turntableBG {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	overflow: hidden;
}
#turntableImage {
	background-image: "";
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	display:flex;
	justify-content: center;
	align-items: center;
	will-change: contents;
	min-height: 10rem;
	min-width: 10rem;
	border-radius:0.5rem;
	background-color: transparent;
	transition: min-height 0.2s ease, min-width 0.2s ease;
}

.blurMe {
	min-height: 15rem !important;
	min-width: 15rem !important;
}

/* start touch device dependancy */
@media (hover: none) {
	#turntableBG {
		background: url('../images/360/disk/disk.webp') center center / cover no-repeat;
	}
	#turntableButton {
		display: none;
		visibility: collapse;
	}
}
/* end touch device dependancy */

#loading_bar_1 {
	min-width: 20rem;
	padding: 0.5rem;
	letter-spacing: 0;
	color: var(--main-txt-color);
	
}

#csvViewerCont, #jsonViewerCont {
	user-select: none;
	min-width: 8rem;
	min-height: 8rem;
    max-block-size: fit-content;
	border-radius: 0.5rem;
	background-color: var(--main-bg-color);
	align-items: center;
	justify-content: center;
	display: flex;
	white-space: break-spaces;
	transition: height 0.25s ease, width 0.25s ease;
	position: static;
	color: lightgrey;
	max-height: 13rem;
    overflow: auto;
}


#csvViewerCont:hover {
	border: 2px dashed lightgrey;
}
#csvViewerCont.dragover {
	width: 12vw;
	height: 12vw;
	border: 4px dashed lightcoral;
}
#jsonViewerCont:hover {
	border: 2px dashed lightgrey;
}
#jsonViewerCont.dragover {
	width: 12vw;
	height: 12vw;
	border: 4px dashed lightcoral;
}

#csvViewerTableBox {
	height: max-content;
    width: max-content;
	
}

#csvViewerTable {
	font-size: min(0.8rem, 16px);
    gap: 0;
    margin: 0;
    border-spacing: 0;
    padding: 0;
	border: 1px solid var(--main-txt-color);
	letter-spacing: 0!important;

}

#csvViewerTable ::selection {
    background-color: mediumseagreen; /* Example color (orange) */
    color: white; /* Example text color (white) */
}

#csvViewerTableBox {
    padding: 1rem;
    border-radius: 0.5rem;
}

.csvCell {
	border: 1px solid var(--main-txt-color);
    padding: 0.5rem;
    user-select: text;
    min-width: min-content;
    min-height: min-content;
    overflow: hidden;
    resize: both;
    pointer-events: all;
    text-overflow: clip;
    line-height: 1rem;
	color: var(--main-txt-color);
}

#csvHeader {
	background-color: lightgrey;
    font-variant-caps: all-petite-caps;
	cursor: pointer;
	user-select: none !important;
	color: var(--main-txt-color);
}

#jsonViewer {
    max-height: 15vw;
    gap: 0;
    margin: 0;
    border-spacing: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
	letter-spacing: 0!important;
	max-height: 11rem;
	
}

.readJSON, .readCSV {
	color: var(--main-txt-color) !important;
    text-align: left !important;
    font-size: min(0.6rem, 16px);
	align-items: start !important;
    width: 19vw !important;
}

.dragged {
	align-items: start !important;
}

.expand-button {
    font-size: min(0.6rem, 16px);
    padding: 0.1rem;
    border-radius: 0;
    text-align: center;
}

.hidden {
	display: none;
}

.expanded {
	user-select: text;
}

#viewerCont {
	display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    overflow-x: hidden;
    overflow-y: auto;	
}

#cookieValues {
	    font-size: min(0.8rem, 16px);
    text-align: left;
    padding: 0.5rem;
    line-height: 2rem;
	letter-spacing: 0;
}

#cookieMessage {
	background-color: var(--main-bg-color); 
	border-radius:0.5rem; 
	padding: 1rem;
	
}

#removeCookieButton {
	display: none;
}

#jsonFileInput, #csvFileInput {
	display: none;
}

#imageZoomCont {
	display: flex;
	flex-direction:row;
}

#originalImage {
	border-radius: 0.5rem;
	height: 12rem;
	width: 12rem;
}

#zoomContainer {
	display: none; 
	position: fixed; 
	height: 200px; 
	width:200px; 
	overflow:clip; 
	border-radius: 50%;
	border: 1px solid var(--main-txt-color);
	  box-shadow: 1px 2px 3px rgba(0, 0, 0, 0.3); /* Horizontal offset, vertical offset, blur radius, color */
}


#subButtonsCont {
	display: flex;
	flex-direction: row;
}

.menu {
    display: flex;
    flex-direction: row;
    font-size: min(0.8rem, 16px);
    justify-content: center;
}

#menu-list {
    display: flex;
    flex-direction: row;
    padding: 0;
    list-style-type: none;
}

#menu-list a {
    text-decoration: none !important;
    color: var(--main-txt-color);
}

.menu-item {
    position: relative; /* Added */
    padding: 0.5rem;
    background-color: var(--main-bg-color);
    border-bottom: 1px solid var(--header-highlight-color);
    cursor: pointer;
    white-space: nowrap; /* Added */
	list-style-type: none; /* Added */
}

.menu-item:hover {
    background-color: #ddd;
}

.sub-menu {
    display: none;
    position: absolute; /* Changed */
    top: 100%; /* Changed */
    left: 0; /* Changed */
    padding: 0; /* Added */
}

.sub-menu.show {
    display: flex;
    flex-direction: column;
    margin-top: 0.6rem;
    justify-content: center;
    text-align: left;
    width: max-content; /* Changed */
}

.sub-menu.sub-level-2 {
    left: 100%; /* Added */
    top: 0; /* Added */
    margin-top: 0; /* Adjust as needed */
}
