/*
########################
# CORE
########################
*/

html { -webkit-text-size-adjust: none; }

body {
	width: 100%;
	min-height: 540px;
	overflow: hidden;
}

body.wait, body.wait * { cursor: wait !important; }

hr {
	margin: 0px;
	height: 1px;
	background: transparent;
	border-width: 0px 0px 1px 0px;
	border-style: dotted;
}

hr.solid { border-style: solid; }

/*
########################
# HELPER CLASSES
########################
*/

.bl1 {
	border-width: 0px 0px 0px 1px;
	border-style: dotted;
}

.br1 {
	border-width: 0px 1px 0px 0px;
	border-style: dotted;
}

.pt22 { padding-top: 22px; }

@media screen and (max-width: 960px) {
	.mw960_mt10 { margin-top: 10px; }
}

@media screen and (max-width: 660px) {
	.mw660_mt10 { margin-top: 10px; }
	.mw660_ml0 { margin-left: 0px; }
	.mw660_mr10 { margin-right: 10px; }
	.mw660_pt0 { padding-top: 0px; }
	.mw660_mb15 { margin-bottom: 15px; }
	.mw660_mt15 { margin-top: 15px; }
}

/*
########################
# LOADING
########################
*/

.loading {
	width: 100%;
	text-align: center;
	padding: 40px;
}

.loading img {
	margin: auto;
	width: 60px;
	height: 60px;
}

/*
########################
# CONTENT
########################
*/

#content { padding-top: 80px; }

#content > div {
	height: 100%;
	width: 100%;
	padding-bottom: 80px;
	position: fixed;
}

#content.footer > div { padding-bottom: 126px; }

.content {
	width: 100%;
	height: 100%;
	float: left;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
}

/*.transition.content { overflow: hidden; }*/

div.pad { padding: 20px 40px; }
div.pad_col { padding-right: 40px; }

@media screen and (max-width: 960px) {
	#content { padding-top: 60px; }
	#content.footer > div { padding-bottom: 106px; }
	#content > div { padding-bottom: 60px; }
	div.pad { padding: 20px 30px; }
	div.pad_col { padding-right: 30px; }
}

@media screen and (max-width: 660px) {
	#content.footer > div { padding-bottom: 60px; }
	div.pad { padding: 20px; }
	div.pad_col { padding-right: 0px; }
}

/*
########################
# TYPOGRAPHY
########################
*/

h1, .xl {
	font-size: 28px;
	line-height: 36px;
	font-weight: normal;
}

h2, .l {
	font-size: 24px;
	line-height: 28px;
	font-weight: normal;
}

h3, .m {
	font-size: 18px;
	line-height: 24px;
	font-weight: normal;
}

.m2 { 
	font-size: 16px;
	line-height: 22px;
	font-weight: normal;
}

h4, p, .s {
	font-size: 14px;
	line-height: 24px;
	font-weight: normal;
}

h5, .xs {
	font-size: 12px;
	line-height: 24px;
	font-weight: normal;
}

.xxs {
	font-size: 11px;
	line-height: 15px;
}

a { text-decoration: none; }
a:hover, a:hover .link { text-decoration: underline; }
.fwb { font-weight: 600; }

@media screen and (max-width: 660px) {
	h1, .xl {
		font-size: 26px;
		line-height: 30px;
	}
	h2, .l {
		font-size: 22px;
		line-height: 26px;
	}
}

/*
########################
# FORMS
########################
*/

input[type=text], input[type=date], input[type=password], div.select, textarea, a.field, a.attachment, .tabs > a, .po_input {
	border-width: 1px;
	border-style: solid;
	width: 100%;
	height: 40px;
	padding: 5px;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-webkit-appearance: none;
	font-size: 14px;
	margin-bottom: 15px;
	background-repeat: no-repeat;
	background-position: right center;
	text-decoration: none;
}

input::-ms-clear { display: none; }

label, .label {
	display: block;
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 4px;
}

a.field, a.attachment, .tabs > a, .po_input {
	height: auto;
	min-height: 40px;
	display: block;
	width: 100%;
	line-height: 20px;
	background-position: right top;
	background-repeat: no-repeat;
	padding: 8px 30px 10px 10px;
	text-decoration: none;
}

/*MAC ONLY - NEED TO FIX
@-moz-document url-prefix() {
	a.field, a.attachment, .tabs > a, .po_input {
		min-height: 20px;
	}
}
*/


input.currency {
	background-position: left center;
	padding-left: 20px;
	min-width: 80px;
}

input.percent {
	background-position: right center;
	padding-right: 24px;
	min-width: 80px;
}

p.label { line-height: 18px; }

.checkbox {
	display: block;
	min-height: 40px;
	margin-bottom: 15px;
	width: 100%;
	padding-top: 10px;
	line-height: 20px;
	font-size: 12px;
}

.checkbox input {
	margin: 0px 12px;
	postion: absolute;
}

.checkbox label {
	font-size: 14px;
	font-weight: normal;
	postion: absolute;
	display: block;
	cursor: pointer;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	border-width: 1px;
	border-style: dashed;
	min-height: 28px;
	line-height: 26px;
	margin: -30px 0px 0px 0px;
	padding: 5px 20px 5px 32px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.label.dn, .po_input.dn, a.field.dn, .checkbox.dn { display: none; }
.po_input:hover { text-decoration: none; }
.checkbox label span.xs { margin-top: -5px; }
.checkbox input:checked + label {  border-style: solid; }
.disabled .checkbox label, .disabled .checkbox input:checked + label { border-style: dashed; }
.checkbox.inline { padding-top: 31px; }
.checkbox.stacked { padding-top: 20px; }

div.select { padding: 8px 5px; }

div.select select {
	-webkit-appearance: none;
	font-size: 14px;
	width: 100%;
	border: 0px;
	padding-right: 5px;
}

div.file {
	position: relative; 
	overflow: hidden;
}

div.file input:first-child {
	cursor: pointer;
	position: absolute;
	top: 0px;
	left: 0px;
	opacity: 0;
	filter: alpha(opacity=0);
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
	-moz-opacity:0;
	z-index: 10;
	height: 40px;
	width: 100%;
}

div.file a:first-child {
	position: absolute;
	top: 0px;
	left: 0px;
}

textarea {
	width: 99%;
	height: 120px;
	padding: 5px 0px;
}

@media screen and (max-width: 660px) {
	.po_input.mw660_db { display: block; }
}

/*
########################
# BUTTONS
########################
*/

a.button, input[type="submit"] {
	display: inline-block;
	height: 40px;
	padding: 0px 12px;
	text-decoration: none;
	font-size: 15px;
	line-height: 38px;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	cursor: pointer;
	border-width: 1px;
	border-style: solid;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-webkit-appearance: none;
}

a.button.icon, input[type="submit"].icon {
	width: 40px;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 20px 20px;
}

a.button.transparent {
	width: 35px;
	height: 35px;
	padding: 0px;
}

a.button.selected { cursor: default; }
a.button.dn { display: none; }
a.button.db { display: block; }
input[type="submit"] { padding-bottom: 2px; }
a.button.pre { text-align: left; }

a.button.pre > span {
	float: left;
	font-size: 25px;
	line-height: 25px;
	margin: 5px 10px 0px 0px;
}

/*
########################
# BUTTONS - ALIGNMENT
########################
*/

.alignbutton {
	position: relative;
	margin-top: -40px;
}

.alignbutton_r_1 { padding-right: 50px; }
.alignokbutton_r_1 { padding-right: 56px; }
.alignokbutton_r_2 { padding-right: 106px; }
.alignviewbutton_r_1 { padding-right: 66px; }
.alignbutton_r_3s { padding-right: 140px; }

.fieldbutton {
	margin-top: -5px;
	margin-bottom: 10px;
}

@media screen and (max-width: 660px) {
	.mw660_fieldbutton {
		margin-top: -5px;
		margin-bottom: 10px;
	}
}

/*
########################
# SEARCH
########################
*/

.search { overflow: auto; }

.search input {
	float: left;
	margin-bottom: 0px;
}

.search input[type="text"] { padding-right: 52px; }
.search input[type="submit"] { margin-left: -40px; }

.searchbox {
	width: 100%;
	padding: 20px 40px;
	border-width: 0px 0px 1px 0px;
	border-style: solid;
}

.searchbox.l { padding: 40px 40px; }

a.result, a.result:hover {
	cursor: pointer;
	text-decoration: none;
}

@media screen and (max-width: 960px) {
	.searchbox { padding: 20px 30px; }
	.searchbox.l { padding: 30px; }
}

@media screen and (max-width: 660px) {
	.searchbox, .searchbox.l { padding: 20px; }
}

/*
########################
# TABLES
########################
*/

.table th, .table td {
	border-width: 1px 0px 1px 0px;
	padding: 10px;
}

.table th {
	text-align: left;
	border-style: solid;
	border-width: 0px 0px 1px 0px;
	font-weight: 600;
}

.table td {
	border-style: dotted;
	vertical-align: top;
}

.table td.tar, .table th.tar { text-align: right; }
.table td.vam { vertical-align: middle; }
.table tr.hot, .hot { cursor: pointer; }
.table tr.hot.nohover, .hot.nohover { cursor: auto; }
.table tr.b0 td { border: none; }
.table tr.bb0 td { border-bottom: 0px; }
.hot, .hot:hover { text-decoration: none; }

.table.open tr:first-child td { border-width: 0px 0px 1px 0px; }
.table.open tr:last-child td { border-width: 1px 0px 0px 0px; }
.table.open tr:first-child:last-child td { border-width: 0px; }

.table.total { margin-top: -15px; }
.table.total tr td:first-child { padding-left: 20px; }
.table.total tr td:last-child { padding-right: 5px; }

.table tr.subtotal td { border-bottom-style: solid; }

.table td.br1 {
	border-width: 1px 1px 1px 0px;
	border-style: dotted;
}

.table td.bl1 {
	border-width: 1px 0px 1px 1px;
	border-style: dotted;
}

.table.pad td { padding: 10px 30px; }

@media screen and (max-width: 960px) {
	.table.stack_960 tr {
		width: 100%;
		display: block;
		padding: 11px;
		border-width: 1px 0px 0px 0px;
		border-style: dotted;
	}
	.table.stack_960 td {
		border-width: 0px;
		padding: 0px;
		display: block;
		width: 100%;
	}
	.table.stack_960 td.tar { text-align: left; }
	.table.stack_960 tr.mw960_dn { display: none; }
}

@media screen and (max-width: 660px) {
	.table.stack tr {
		width: 100%;
		display: block;
		padding: 11px;
		border-width: 1px 0px 0px 0px;
		border-style: dotted;
	}
	.table.stack td {
		border-width: 0px;
		padding: 0px;
		display: block;
		width: 100%;
	}
	.table.stack td.tar { text-align: left; }
	.table.stack tr.mw660_dn { display: none; }
	.table.stack td.mw660_dn { display: none; }
	.table.pad td { padding: 10px 0px; }
}

/*
########################
# TILES
########################
*/

.tile {
	border-width: 1px;
	border-style: solid;
	display: block;
	float: left;
	padding: 26px 10px;
	width: 160px;
	height: 160px;
	overflow: hidden;
	text-decoration: none;
	margin: 0px 15px 15px 0px;
	text-align: center;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
}

.tile:hover { text-decoration: none; }
.tile.dn { display: none; }

.tile div.icon {
	display: block;
	margin: auto;
	width: 60px;
	height: 60px;
	margin-bottom: 10px;
	background-size: 60px 60px;
}

.tile .label {
	display: inline-block;
	overflow: auto;
}

.tile h2 {
	float: left;
	display: inline-block;
	font-size: 18px;
	line-height:22px;
	max-width: 120px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	text-align: left;
}

.tile h2.wrap {
	text-align: center;
	white-space: normal;
	line-height: 20px;
	margin-top: 1px;
}

.tile h2.value { max-width: 88px; }

.tile span {
	float: left;
	display: inline-block;
	text-align: center;
	font-size: 14px;
	line-height: 19px;
	min-width: 21px;
	height: 21px;
	border-radius: 10px;
	-moz-border-radius: 10px;
	-webkit-border-radius: 10px;
	margin: 2px 6px 0px 0px;
	padding: 0px 7px;
}

@media screen and (max-width: 660px) {
	.tile {
		width: 100%;
		margin: 0px 0px 10px 0px;
		height: auto;
		overflow: auto;
		padding: 10px;
	}
	.tile .label {
		position: relative;
		float: left;
		width: 100%;
		margin-top: -30px;
		padding: 2px 0px 0px 40px;
	}
	.tile h2, .tile h2.wrap {
		text-align: left;
		float: left;
		max-width: 70%;
	}
	.tile span {
		float: right;
		margin: 2px 0px 0px 0px;
	}
	.tile div.icon {
		float: left;
		margin: 0px;
		height: 30px;
		width: 30px;
		background-size: 30px 30px;
	}
}

/*
########################
# BREADCRUMBS
########################
*/

.breadcrumbs {
	display: block;
	white-space: nowrap;
	float: left;
	margin-bottom: 15px;
}

.breadcrumbs a {
	font-size: 14px;
	line-height: 32px;
	padding: 5px 10px 6px 10px;
	border-style: solid;
	border-width: 1px;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	text-decoration: none;
}

.breadcrumbs span {
	font-size: 14px;
	margin-left: 5px;
	line-height: 32px;
}

/*
########################
# POPOVER/DIALOG
########################
*/

/*#dialog { padding: 35px 40px 35px 40px; }*/
#dialog { padding: 0px; }

.dialog {
	width: 45%;
	max-width: 480px;
}

.po_table { width: 420px; }
.po_buttons, .po_menu { width: 220px; }
.po_calendar { width: 300px; }
.po_table > div, .po_buttons > div, .po_calendar > div { padding: 20px; }
.modal { width: 80%; }

.po_menu ul > li {
	font-size: 14px;
	display: block;
	height: 40px;
	width: 100%;
	cursor: pointer;
	border-width: 0px 0px 1px 0px;
	border-style: dotted;
	line-height: 40px;
	padding: 0px 10px;
}
.po_menu ul > li.selected { font-weight: 600; }
.po_menu ul > li:last-child { border: 0px; }

@media screen and (max-width: 960px) {
	/*#dialog { padding: 25px 30px 25px 30px; }*/
	.dialog { width: 65%; }
	.modal { width: 90%; }
}

@media screen and (max-width: 660px) {
	/*#dialog { padding: 15px 20px 15px 20px; }*/
	.dialog { width: 85%; }
	.modal { width: 95%; }
	.po_table { width: 92%; }
	.po_table > div, .po_buttons > div, , .po_calendar > div { padding: 10px; }
}

/*
########################
# CALENDAR
########################
*/

.po_calendar .month { overflow: auto; }

.po_calendar .month h3 {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	width: 70%;
	float: left;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	padding-top: 5px;
}

.po_calendar .month a.prev, .po_calendar .month a.next {
	display: block;
	float: left;
	width: 15%;
	height: 30px;
	background-repeat: no-repeat;
	cursor: pointer;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
}

.po_calendar .month a.prev { background-position: left center; }
.po_calendar .month a.next { background-position: right center; }

.po_calendar table {
	width: 100%;
	margin-top: 10px;
}

.po_calendar table th {
	font-weight: normal;
	border-width: 0px 0px 1px 0px;
	border-style: dotted;
}

.po_calendar table th, .po_calendar table td {
	width: 14.285%;
	text-align: center;
	vertical-align: middle;
	font-size: 14px;
	height: 30px;
}

.po_calendar table td a, .po_calendar table td a:hover {
	display: block;
	width: 100%;
	height: 30px;
	line-height: 26px;
	cursor: pointer;
	text-decoration: none;
	border-width: 1px;
	border-style: dotted;
}

/*
########################
# AUTHENTICATION
########################
*/

#authentication {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0px;
	left: 0px;
	z-index: 999;
	-webkit-transform: translateZ(999);
	transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	overflow-y: auto;
}

/*
########################
# HEADER
########################
*/

#header {
	position: fixed;
	width: 100%;
	height: 80px;
	z-index: 995;
	-webkit-transform: translateZ(995);
}

#menu > ul {
	width: 100%;
	z-index: 990;
	-webkit-transform: translateZ(990);
	transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
}

#menu > ul li.fr { float: right; }

#menu > ul li {
	float: left;
	display: block;
}

#menu > ul li a {
	display: block;
	width: 90px;
	height: 80px;
	overflow: hidden;
	font-size: 12px;
	text-align: center;
	font-weight: 600;
	white-space: nowrap;
	text-overflow: ellipsis;
	padding: 50px 10px 0px 10px;
	background-repeat: no-repeat;
	background-position: center 15px;
	background-size: 30px 30px;
}

#menu > ul li a:hover { text-decoration: none; }

#menu > ul span.alert {
	display: block;
	width: 30px;
	height: 30px;
	margin: -35px auto 5px auto;
	font-size: 20px;
	font-weight: 600;
	text-align: center;
	line-height: 28px;
	border-radius: 15px;
	-moz-border-radius: 15px;
	-webkit-border-radius: 15px;
}

#btn_menu {
	display: none;
	width: 60px;
	height: 60px;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 30px 30px;
	float: left;
}

@media screen and (max-width: 960px) {
	#header { height: 60px; }
	#btn_menu { display: block; }
	#menu {
		width: 100%;
		position: absolute;
		top: 60px;
		overflow: hidden;
	}
	#menu > ul {
		float: left;
		padding-top: 20px;
		display: block;
		margin-top: -1000px;
	}
	#menu > ul li.fr { float: left; }
	#menu > ul li { width: 16.666%; } 
	#menu > ul li a {
		height: 70px;
		padding-top: 45px;
		margin: auto;
		background-position: center 10px;
		margin-bottom: 20px;
		border-radius: 5px;
		-moz-border-radius: 5px;
		-webkit-border-radius: 5px;
	} 
}

@media screen and (max-width: 660px) {
	#menu > ul li { width: 33%; } 
}

/*
########################
# TABS
########################
*/

.tabs {
	width: 100%;
	height: 60px;
	border-width: 0px 0px 1px 0px;
	border-style: solid;
	padding: 20px 40px;
}

.tabs > a { display: none; }

.tabs > ul {
	display: block;
	list-style-image: none;
	list-style-type: none;
}

.tabs > ul > li {
	height: 40px;
	width: 120px;
	font-size: 14px;
	line-height: 36px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	border-top-left-radius: 5px;
	-moz-border-radius-topleft: 5px;
	-webkit-border-radius-topleft: 5px;
	border-top-right-radius: 5px;
	-moz-border-radius-topright: 5px;
	-webkit-border-radius-topright: 5px;
	border-width: 1px 1px 1px 0px;
	border-style: solid;
	text-align: center;
	padding: 0px 10px;
	cursor: pointer;
	float: left;
}

.tabs span, .po_tabs span {
	margin-left: 4px;
	text-align: center;
	padding: 0px 7px 2px 7px;
	border-radius: 11px;
	-moz-border-radius: 11px;
	-webkit-border-radius: 11px;
	border-width: 1px;
	border-style: solid;
}

.tabs > ul > li:first-child { border-width: 1px; }
.tabs > ul > li.selected { font-weight: 600; }
.tabcontent > div { display: none; }
.tabcontent > div.db { display: block; }

@media screen and (max-width: 960px) {
	.tabs { padding: 20px 30px; }
	.tabs > ul > li { width: 100px; }
}

@media screen and (max-width: 780px) {
	.tabs.mw780 { padding: 20px 20px; }
	.tabs.mw780 > a { display: block; }
	.tabs.mw780 > ul { display: none; }
	.po_tabs.mw780 { width: 88%; }
	.po_tabs.mw780 > ul > li {
		font-size: 14px;
		display: block;
		height: 40px;
		width: 100%;
		cursor: pointer;
		border-width: 0px 0px 1px 0px;
		border-style: dotted;
		line-height: 40px;
		padding: 0px 10px;
	}
	.po_tabs.mw780 > ul > li.selected { font-weight: 600; }
	.po_tabs.mw780 > ul > li:last-child { border: 0px; }
	.po_tabs.mw780 span {
		float: right;
		border-width: 0px;
		padding: 0px;
		margin: 0px;
		border-radius: 0px;
		-moz-border-radius: 0px;
		-webkit-border-radius: 0px;
	}
}

@media screen and (max-width: 680px) {
	.tabs { padding: 20px 20px; }
	.tabs > a { display: block; }
	.tabs > ul { display: none; }
	.po_tabs { width: 88%; }
	.po_tabs > ul > li {
		font-size: 14px;
		display: block;
		height: 40px;
		width: 100%;
		cursor: pointer;
		border-width: 0px 0px 1px 0px;
		border-style: dotted;
		line-height: 40px;
		padding: 0px 10px;
	}
	.po_tabs > ul > li.selected { font-weight: 600; }
	.po_tabs > ul > li:last-child { border: 0px; }
	.po_tabs span {
		float: right;
		border-width: 0px;
		padding: 0px;
		margin: 0px;
		border-radius: 0px;
		-moz-border-radius: 0px;
		-webkit-border-radius: 0px;
	}
}

/*
########################
# FILTERS
########################
*/

.filter a {
	display: block;
	text-decoration: none;
}

.filter a:hover { text-decoration: underline; }

.filter a.selected, .filter a.selected:hover {
	font-weight: 600;
	cursor: default;
	text-decoration: none;
}

/*
########################
# IFRAME
########################
*/

.iframe {
	width: 100%;
	border-width: 1px;
	border-style: solid;
	border-color: #c5c6c7;
}