:root {
	--default: #ccc;
	--default-focus: #aaa;
	--primary: #69c;
	--primary-focus: #37b;
	--alert: #f16262;
	--alert-focus: #a00;
	--warn: #f0ad4e;
	--warn-focus: #ec9823;
}

@font-face {
	font-family: "OpenSans";
	src: url('/fonts/OpenSans.woff2') format('woff2');
	font-weight: 500;
	font-stretch: 90%;
	font-style: normal;
	font-display: swap;
}

* {
	box-sizing: border-box;
}

body {
	display: grid;
	align-items: center;
	min-height: 75vh;
	background-color: #e7e7e9;
	color: #212529;
	font-family: "OpenSans";
	margin: 0;
}

a:link,
a:visited {
	color: #333;
	text-decoration: none;
	font-weight: 500;
}

a:hover,
a:active {
	color: #69c;
	text-decoration: none;
}

.box {
	max-width: 800px;
	border-radius: 3px;
	border: 0;
	border-top: 6px solid #ccc;
	background-color: #fff;
	box-shadow: 1px 1px 1px rgba(0,0,0,.1);
	padding: 0;
	margin: 0 auto;
}

.box h2 {
	margin: 1rem;
	padding: 0;
	color: #555;
	font-family: "OpenSans";
	font-size: 1.4rem;
}

.box .box-content {
	margin: 0;
	padding: 0 1rem 1rem 1rem;
}

.box-alert {
	border-top: 6px solid var(--alert)
}

.box-info {
	border-top: 6px solid var(--primary);
}

.box-warn {
	border-top: 6px solid var(--warn);
}

.login {
	width: 40%;
}

.login .box-content {
	margin: 0;
	padding: 0 1.5rem 2rem 1.5rem;
}

p {
	font-size: 1em;
}

.btn {
	display: inline-block;
	width: inherit;
	line-height: 40px;
	height: 40px;
	padding: 0 1em;
	border: none;
	border-radius: 3px;
	white-space: nowrap;
	color: #fff;
	background-color: var(--default);
}

.btn:focus,
.btn:hover {
	background-color: var(--default-focus);
}

.btn-full {
	width: 100%;
	text-align: center;
}

a:link.btn,
a:visited.btn {
	color: #fff;
	border: none;
	transition: all .2s ease-in-out;
}

.btn-primary,
a:link.btn-primary,
a:visited.btn-primary {
	background-color: var(--primary);
}

.btn-primary:hover,
a:hover.btn-primary,
a:active.btn-primary {
	background-color: var(--primary-focus);
}

.box-alert .btn,
.box-alert a:link.btn,
.box-alert a:visited.btn {
	background-color: var(--alert);
}

.box-alert .btn:hover,
.box-alert a:hover.btn,
.box-alert a:active.btn {
	background-color: var(--alert-focus);
}

.box-warn .btn,
.box-warn a:link.btn,
.box-warn a:visited.btn {
	background-color: var(--warn);
}

.box-warn .btn:hover,
.box-warn a:hover.btn,
.box-warn a:active.btn {
	background-color: var(--warn-focus);
}

form div {
	margin: 1.5rem 0 0 0;
}

form label {
	display: block;
	margin: 0;
	font-size: .9rem;
	color: #666;
}

input {
	font-size: 1rem;
	width: 100%;
	border: 1px solid #999;
	border-radius: 3px;
	padding: .5rem;
	margin-bottom: 1.25rem;
	background-color: #fff;
}

input[type=text]:focus,
input[type=password]:focus {
	border: 1px solid var(--primary-focus);
}

input[type=text].form-err,
input[type=password].form-err {
	border-color: var(--alert-focus);
	margin-bottom: 0;
}

input[type=submit] {
	margin-top: 2rem;
	line-height: 16px;
}

.form-msg-err {
	font-size: .8rem;
	line-height: 1rem;
	color: var(--alert-focus);
	margin: .25rem 0 0 0;
}

@media (max-width: 340px) {
	.login {
		padding: 0 1rem;
	}
}
