:root{
	--shop-item-container-padding: 0.5rem;
	animation-duration: 600ms;
};

* { 
	box-sizing: border-box;
	scroll-behavior: smooth;
}

html, body {
	min-height: 100%;
	color: var(--color1);
	background-color: var(--color0);
	transition-duration: 600ms;
	transition-property: color;
}
	/* sets the body height of the browser, so that backgrounds and div heights work correctly. Color and background will almost certainly be altered; they are just placeholders */
	
body {
	font-family: Calibri, sans-serif;
	text-rendering: optimizeLegibility;

}
	/* sets the base font size for the document; turns on kerning pairs and ligatures */
	
body, ul, ol, dl {
	margin: 0;
}

hr{
	border: 0px;
	border-top: 1px solid;
	width: 95%;
}

article, aside, audio, header, nav, section, video {
	display: block; 
	}
	
	/* ensures that older browsers will display HTML5 elements correctly */

footer {
	display: flex;
    position: static;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    padding: 3px;
    background-color: var(--color0);
    color: white;
    width: 100%;
    border-top: 1px solid black;
    box-shadow: inset black 0px 4px 6px -5px;
    font-size: 16px;
    font-family: Monaco, sans-serif;
    text-rendering: optimizeLegibility;
}



footer div {
    display: flex;
    align-content: center;
    flex-wrap: wrap;
    margin-left: 0.5rem;
    margin-right: 0.5rem;
    width: 15rem;
    justify-content: center;
}

	
h1 {
	font-size: 1.4rem;
}
/* 
	begins to set up font sizes relative to base rem – h1 has been used as an example 
*/
	
p { 
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
	-moz-hyphens: auto;
	-webkit-hyphens: auto;
	-ms-hyphens: auto;
	hyphens: auto;
} 
	/* sets hyphenation by default on paragraphs */
	
textarea { 
	resize: vertical;
}
	
img { 
	border: none;
}
	/* removes outlines from linked images (for older browsers and IE), sets up images for responsive design layout */
	
input[type="submit"]::-moz-focus-inner, 
	input[type="button"]::-moz-focus-inner {
		border : 0px;
	}
	/* removes the inner border effect from focused buttons for form elements in Firefox */
	
input[type="search"] { 
	-webkit-appearance: textfield;
} 
input[type="submit"] { 
	-webkit-appearance:none;
}
	/* removes the OS X appearance from HTML5 search inputs and submit buttons when viewed in Safari */
	
input:required:after {
	color: #f00;
	content: " *";
}
	/* sets up required form fields with the conventional following red asterix */
input[type="email"]:invalid { 
	background: #f00;
}
	/* causes a visual alert in browsers that do client-side checking of HTML5 email field – this may already be the default in some browsers. */
	
.right { 
	float: right;
	margin-left: 2rem;
	clear: right;
}
.left { 
	float: left;
	margin-right: 2rem;
	clear: left;
}
	/* allows a quick shortcut for floating elements left and right while avoiding the “float quirk” problem */
	
select{
	border-radius: 0.3rem;
}

select:invalid{
	color: #656565;
}

option{
	color: var(--color1);
}

sub, sup { 
	line-height: 0;
}
    /* sets superscript and subscript text so that it doesn't throw off leading for elements in which they are included */

button {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	border-radius: 0.5rem;
	cursor: pointer; 
	cursor: hand;
	border: 1px solid black;
	margin-bottom: 1px;
	background-color: #f0f0f0;
}






.tooltip{
	display: none;
	background-color: rgba(0, 0, 0, 0.75); 
	color: white; 
	border: 1px solid white; 
	border-radius: 0.5rem; 
	position: fixed;
	right: 0rem; 
	bottom: 1.3rem;
	overflow-x: visible; 
	padding: 0.5rem; 
	text-align: left; 
	user-select: none;
	z-index: 999999999999999;
}

.tooltip[active=true]
{
	display: block;
}
.tooltip[active=false]
{
	display:none;
}

.info-button{
	position:relative; 
	border-radius: 100%; 
	height: 24px;
    width: 28px;
    font-size: 16px;
	padding: 0px; 
	background-color: var(--color2); 
	color: var(--color1); 
	user-select: none;
}









/* Add a black background color to the top navigation */
.topnav {
	display: flex;
    background-color: var(--color0);
    overflow: visible;
    height: 3rem;
    position: fixed;
    top: 0px;
    width: 100%;
    z-index: 10;
    border-bottom: 1px solid black;
    box-shadow: inset 0px -2px 4px 0 #00000077;
    align-items: flex-end;
    padding-left: 0.71rem;
}

/* Style the links inside the navigation bar */
.topnav a {
    float: left;
    color: white;
    background-color: var(--color0);
    padding: 0.3rem 12px 0.7rem 12px;
    text-decoration: none;
    font-size: 1.1rem;
    border: 1px solid black;
    height: 1.25rem;
    border-bottom: 0px;
    margin: 1px;
    margin-right: 5px;
    box-shadow: inset 0px -2px 4px 0 #00000077;
    border-radius: 0.4rem 0.4rem 0 0;
    filter: drop-shadow(0px -3px 4px black);
    text-align: center;
}

.topnav a[pressed='true']
{
	color: #000;
	background-color: var(--color0);
}

.searchbar-wrapper{
    display: inline-block;
    position: relative;
    background: white;
    min-width: 7rem;
    max-width: 30rem;
    width: 50%;
    margin: 0.3rem auto;
    border-radius: 0.5rem;
    height: 2.25rem;
}

.searchbar-input {
    border: none;
    font-size: 17px;
    height: 2.05rem;
    width: calc(100% - 2rem - 0.3rem);
    margin-left: 2rem;
    outline: 0px;
    border-radius: 0.5rem;
}

.search-symbol{
    position: absolute;
    left: 0.15rem;
    top: 0.25rem;
    width: 2rem;
}

.searchbar-dropdown-container{
	position: relative;
	top:0rem;
	display:block;
	height: auto;
	max-height: 75vh;
	overflow-y: auto;
	overflow-x: hidden;
	width: 100%;
	background:white;
	padding-bottom: 0.1rem;
	border-top: 1px solid gray;
}
.searchbar-dropdown-container[hide="true"]{
	display: none;
}

.search-result{
	display: flex;
	flex-wrap: wrap;
	margin: 0rem;
	padding-top: 0.5rem;
	border-radius: 0px;
	background: white;
	box-shadow: none;
	height: 3rem;
	width: 100%;
	justify-content: start;
	border-bottom: 1px solid gray;

}

.search-result img{
	max-height: 100%;
	max-width: 100%;
}






.clickable:active, .clickable:hover
{
	filter: brightness(0.8);
}

.collapsible
{
	transition-duration: 400ms;
	transition-timing-function: ease-in-out;
	overflow-y: hidden;
}
.collapsible[collapse='true']
{
	max-height: 0 !important;
}









.dialogue-modal-background{
	display:none;
}

.dialogue-modal-background[open="true"]
{
	display: block;
	position:fixed;
	top: 0px;
	left: 0px;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0,0,0,0.6); /* Black w/ opacity */
	z-index: 1111; /* Sit on top */
}

.dialogue-modal{
	display: grid;
	position:fixed;
	margin: auto auto;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	min-width: min(calc(100vw - 3.2rem), max(20%, 20rem));;
	max-width: calc(100vw - 3.2rem);
	min-height: 5rem;
	max-height: calc(100vh - 3.2rem);
	overflow: auto;
	text-align: center;
	justify-content: center;
	justify-items: center;
	padding: 1rem;
	padding-bottom: 0.5rem;

	border-radius: 1rem;
	background-color: #f0f0fa;
	box-shadow: 0px 0px 6px 2px #000c;
}


.dialogue-modal-message{
	min-height: 2rem;
	min-width: 5rem;
	margin: 1.5rem 0;
}
.dialogue-modal-button
{
	justify-self: center;
    padding: 0.5rem 1rem;
    min-width: 3rem;
}












@keyframes append-animate {
	from {
		transform-origin: top center;
		transform: scaleY(0.0);
		opacity: 0.2;
	}
	to {
		transform-origin: top center;
		transform: scaleX(1.0);
		opacity: 1;	
	}
}


@keyframes anim-shrink-horizontal{
	from{
		transform: scaleX(1.0);
		width: 85%;
		opacity: 1;
	}
	to{
		transform: scaleX(0.0);
		width: 0%;
		opacity: 0.2;
	}
}

@keyframes anim-grow-horizontal{
	from{
		transform: scaleX(0.0);
		width: 0%;
		opacity: 0.2;
	}
	to{
		transform: scaleX(1.0);
		width: 85%;
		opacity: 1;
	}
}











.edit-shop-main-container
{
	margin-top: 3rem; /* same as topnav height */
	width: 100%;
	display:grid;
	overflow-x: hidden;
	grid-column-gap: 1rem;
	grid-template-columns: 0.5fr 8fr 0.5fr;
	padding: 0px 5px;
	text-align: center;
}

.edit-shop-main-container img{
	height: 2.5rem;
	width: 2.5rem;
}

.edit-shop-table-container{
	overflow-y: auto;
	max-height: 73vh;
	border-right: 1px solid;
	border-bottom: 1px solid;
	background-color: rgba(255, 255, 255, 0.4);
}

.edit-shop-table-container thead th{
	position: sticky;
	top: 0px;
}

.edit-shop-table{
	width:100%;
	border-spacing: 0px;
}


.edit-shop-table table, thead, th, td, tr{
	padding: 0px;
}

.edit-shop-table th{
	background-color: var(--color4);
	position:sticky;
	border-left: 1px solid;
	border-bottom: 1px solid;
	border-top: 1px solid;
	top:0px;
}

.edit-shop-table td{
	border-left: 1px solid;
	border-bottom: 1px solid;
}

.edit-shop-table tr{
	border-right: 1px solid;
}

.item-lines-table{
	display: block;
    width: 100%;
    overflow-y: auto;
    height: 100px;
}

.edit-shop-table tr{
	background-color: var(--color3);
	border:1px solid;
}


.edit-shop-table img{
	object-fit:contain;
	margin-top: 0.2rem;
}

.add-item-line-form{
	background-color: rgba(255, 255, 255, 0.4);
    line-height: 1.75rem;
    padding-bottom: 0.5rem;
    justify-content: center;
    display: flex;
    flex-wrap: wrap;
    column-gap: 2rem;
}


















.edit-item-line-modal
{
	display: none;
	position: fixed;
	padding: 0.5rem;
	border-radius: 0.3rem;
	width: max-content;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-color: rgba(0,0,0,0.6);
	text-align: center;
}

.edit-item-line-modal[show='true']
{
	display: block;
}

.add-item-line-form input
{
	max-width: 75%;
}

.add-item-line-form input[type="text"]
{
	width: 10rem;
}

.add-item-line-form input[type="number"]
{
	width: 8rem;
}

.dropdown-wrapper{
	position:relative;
    display: inline-block;
}

.dropdown-content{
	display:none;
	position: absolute;
	z-index: 1;
}
.dropdown-wrapper:hover .dropdown-content{
	display: block;
}

.index-shop-button
{
	font-size: 1rem;
	border-radius: 0.3rem;
	padding: 0.3rem 0.5rem;
}

@media only screen and (max-width: 1000px){
	.index-shop-button
	{
		font-size: 2rem;
		border-radius: 0.6rem;
		padding: 0.6rem 1rem;
	}
}

@media only screen and (max-width: 1000px){
	.small-screen-hideable
	{
		display: none !important;
	}

}

@media only screen and (min-width: 1001px){
	.small-screen-only
	{
		display: none !important;
	}

	.topnav a:hover {
	  background-color: var(--color0);
	  color: black;
	}

	
}
