/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;box-sizing:border-box;-webkit-tap-highlight-color:rgba(255,255,255,0)}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block;box-sizing:border-box}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}



/* custom reset */

input, button, select, textarea {
	margin: 0;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	font-family: inherit;
	font-size: inherit;
	color: inherit;
}

input, textarea {
	width: 100%;
}

input[type="text"],
input[type="password"],
textarea, 
button {
	padding: 0.4em 0.5em;
	border: 1px solid #bbb;
	border-radius: 2px;
	letter-spacing: inherit;
}

input[type="text"].error,
input[type="password"].error,
textarea.error {
	border-color: #e02121;
}

label {
	display:block;
	color: #888;
	font-size: 0.9em;
}

label.error {
	color: #e02121;
}

button {
	border: none;
	background-color: black;
	color: #ddd;
	padding: 0.4em 1em;
	margin-right: 0.2em;
	cursor:pointer;
}

button:hover {
	background-color: #444;
}

button.danger {
	color: white;
	background-color: #ff3a3a;
}

button.danger:hover {
	background-color: #e02121;
}

i, em {
	font-style: italic;
}

b, strong {
	font-weight: bold;
}

h1,
h2,
h3
h4
h5,
p,
blockquote {
	margin-bottom: 1em;
}

h1,
h2,
h3 {
	font-weight: bold;
}

a,
a:visited {
	color: #000;
}

a:hover {
	color: #555;
}


@font-face {
  font-family: 'Gliri-Web';
  src: url('../fonts/Gliri-VF-164.woff2?v=164') format('truetype-variations');
  font-style: normal;
  font-weight: 100 950;
}


html {
	width: 100%;
	min-height: 100vh;
	overflow-y: scroll;
	font-family: 'Gliri-Web', sans-serif;
	font-size: 20px;
	-webkit-text-size-adjust: 100%;
}

body {
	position: relative;
	line-height: 1.4;
	padding: 2em;
	letter-spacing: 0.04em;
	min-height: 100vh;
	max-width: 800px;
	margin: 0 auto;
	left: 0;
	right: 0;
}

.hidden {
	display:none;
}

.errorNote {
	color: #e02121;
}

.logo {
	width: 30px;
}





/* login */

.loginForm input, .loginForm button {
	display:block;
	margin-bottom: 1em;
}





/* nav */

.mainNav {
	position: absolute;
	width: 100%;
	left: 0;
	top: 0;
	text-align: right;
	transform: translate(0, -100vh);
	padding: calc(2em + 2.4em) 2em 2em 2em;
	background-color: #fff;
	box-shadow: rgba(0,0,0,0.2) 0 0.4em 1em;
	transition: transform 0.2s ease;
	z-index: 5;
	border-bottom: 3px solid #000;
}

.mainNav.open {
	transform: translate(0,0);
}

.mainNav ul li {
	display:block;
	margin-bottom: 0.2em;
	cursor:pointer;
}

.mainNav ul li:hover {
	font-weight: bold;
}

.burgerButton {
	position: absolute;
	z-index: 10;
	top: 2em;
	right: 2em;
	width: 2em;
	height: 2em;
	cursor:pointer;
}

.burgerButton>span {
	background-color: black;
	display:block;
	width: 100%;
	height: 3px;
	position: absolute;
	opacity: 1;
	left: 0;
	transform: rotate(0deg);
	transition: .25s ease-in-out;
}

.burgerButton span:nth-child(1) {
	top: 0;
}

.burgerButton span:nth-child(2),
.burgerButton span:nth-child(3) {
	top: 9px;
}

.burgerButton span:nth-child(4) {
	top: 18px;
}

.burgerButton.open span:nth-child(1) {
	top: 9px;
	width: 0%;
	left: 50%;
	opacity: 0;
}

.burgerButton.open span:nth-child(2) {
	transform: rotate(45deg);
	left: -5%;
}

.burgerButton.open span:nth-child(3) {
	transform: rotate(-45deg);
	left: -5%;
}

.burgerButton.open span:nth-child(4) {
	top: 9px;
	width: 0%;
	left: 50%;
	opacity: 0;
}





/* list/overlay */

.mainSection {
	position: relative;
	max-width: 800px;
	left: 0;
	right: 0;
	margin: 0 auto;
}

.itemList>li {
	margin-bottom: 0.2em;
	cursor:pointer;
}

.itemList>li:hover {
	font-weight: bold;
}

.itemList>li.hidden {
	display:none;
}

.form .label, form label {
	text-transform: uppercase;
	display:block;
	color: #888;
	font-size: 0.7em;
}

.itemList + .emptyFilterNote {
	display:none;
}

.itemList.empty + .emptyFilterNote {
	display:block;
}


.filterInput {
	margin-bottom: 1em;
	width: 100%;
}

.clearFilterButton {
	position: absolute;
	top: 4px;
	right: 0;
	width: 28px;
	height: 28px;
	line-height: 0.8em;
	display:block;
	cursor:pointer;
	font-size: 2em;
	color: #bbb;
}

.clearFilterButton:hover {
	color: #888;
}

.item li {
	margin-bottom: 1em;
}


.item li .value.password {
	background-color: #000;
	padding: 0.4em;
}

.modal .form input.password {
	display:inline-block;
	margin-right: 6px;
	width: calc(100% - 42px);
}

.passGenerate {
	padding: 0.4em;
	display:inline-block;
	width: 34px;
	height: 35px;
	line-height: 1;
	border: 1px solid #000;
	margin-right: 0;
}


.copyButton {
	margin-left: 0.2rem;
	padding: 0.4em 0.6em;
	display:inline-block;
}




/* modal */

.modal.fader {
	position: fixed;
	width: 100vw;
	height: 100vh;
	top: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 105;
	overflow-x: hidden;
	overflow-y: auto;
}

.modal.modal-confirm,
.modal.modal-notice {
	z-index: 120;
}

.modal>div {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 95%;
	height: auto;
	min-width: 300px;
	max-width: 800px;
	margin: 2vh auto;
	background-color: white;
	box-shadow: 0 1px 70px rgba(0,0,0,0.5);
	padding: 2em;
	border-radius: 5px;
}

.modal>div.error {
	color: rgb(255, 50, 91);
}


.modal.admin .okButton {
	position: absolute;
	bottom: 2em;
	right: 2em;
	margin-right: 0;
}

.modal .error p {
	margin-bottom: 2em;
}

.modal .component {
	margin-bottom: 0;
	margin-top: 0;
}

.modal>div.notice,
.modal>div.confirm,
.modal>div.error {
	max-width: 400px;
}

.modal>div.form {
	max-width: 800px;
}


.modalTitle {
	font-weight: bold;
}

.modalCloseButton {
	position: absolute;
	z-index: 2;
	top: 10px;
	right: 10px;
	font-size: 2em;
	line-height: 1;
	color: #bbb;
	background-color: transparent;
	cursor:pointer;
}

.modalCloseButton:hover {
	color: black;
}

.modal input,
.modal textarea {
	display:block;
	margin-bottom: 1em;
}

.modal textarea {
	min-height: 5em;
}

.modal .adminButtons {
	margin-top: 3em;
}
