*
{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body
{
	font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
	font-size: 1rem;
	color: #666;
	background: #F5F5F5;
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
}

.center {
	display: block;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	max-width: 100%;
	height: auto;
}

div.doNotShow {
	display: none;
}

div#loginForm
{
	width: 90vw;
	max-width: 350px;
	height: auto;
	position: fixed;
	top: 50%;
	left: 50%;
	background: #FFF;
	transform: translate(-50%, -50%);
	border: 1px solid #CCC;
	border-radius: 15px;
	padding: 2rem 1rem;
	text-align: center;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

button
{
	border: 1px solid #CCC;
	padding: 0.75rem;
	background: #F5F5F5;
	width: 100%;
	max-width: 200px;
	margin: 0.5rem auto;
	display: block;
	font-size: 1rem;
	border-radius: 5px;
	cursor: pointer;
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}

button:active {
	background: #E5E5E5;
}

input[type='text'], input[type='password']
{
	border: 1px solid #CCC;
	padding: 0.75rem;
	margin: 0.5rem 0;
	width: 100%;
	max-width: 200px;
	font-size: 1rem;
	border-radius: 5px;
	display: block;
	margin-left: auto;
	margin-right: auto;
	-webkit-appearance: none;
	appearance: none;
}

div#loginForm form
{
	height: auto;
	position: static;
	margin-top: 0;
}

#loginError p {
	color: orangered;
	font-size: 1rem;
	margin: 0.5rem 0;
}

/* Responsive adjustments for small devices */
@media (max-width: 480px) {
	div#loginForm {
		width: 95vw;
		max-width: 95vw;
		padding: 1.5rem 1rem;
		border-radius: 10px;
	}

	button, input[type='text'], input[type='password'] {
		max-width: 100%;
		font-size: 16px; /* Prevents zoom on iOS */
		padding: 0.75rem;
	}
}

/* Extra small devices */
@media (max-width: 375px) {
	div#loginForm {
		padding: 1rem 0.75rem;
	}
}

/* Landscape orientation on mobile */
@media (max-height: 500px) and (orientation: landscape) {
	div#loginForm {
		position: absolute;
		top: 1rem;
		transform: translate(-50%, 0);
	}
}