* {
	/*position: relative;*/
	box-sizing: border-box;
}

#SiteContainer {
	overflow: auto;
	max-width: 100%;
}

#AppMain {
	display: grid;
	grid-template-rows: auto auto 1fr 50px;
	height: 100vh;
}

#header {
	grid-row: 1 / 1;
	grid-column: 1 / -1;
	grid-template-columns: 55px repeat(2, auto) 300px 1fr;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0;
	padding: 0;
}

h3 {
	font-size: 18px;
	font-weight: 600;
}

.field input[type="text"], .field input[type="password"], .field input[type="email"], .field input[type="tel"], .field input[type="url"], .field input[type="number"] {
	margin: 0;
}

.field textarea {
	resize: vertical;

	width: 100%;
	height: 96px;
	min-height: 40px;
}

.ss-forms::placeholder {
	padding: 8px 0;
}

/**
 * This rule adds to the style.css basis
 * and together these will likely become the new default,
 * at which point the dark background should be made an alt style (e.g., .ss-btn-dark).
 * Might be good to eventually append .btn (and its associated alt style)
 * with something like -legacy to denote its status and prevent reuse.
 */
.ss-btn {
	padding: 0 16px;
	border: 1px solid var(--sensera-gray-500);
	border-radius: var(--borderRadius_btns);
	background-color: white;
	color: var(--sensera-gray-700);
	font-family: 'Source Sans Pro', sans-serif;
}

.ss-btn .fa {
    margin-right: 4px;
}

.ss-btn-primary {
	background-color: var(--sensera-blue-600);
	color: white;
}

main,
.subpages {
	color: var(--sensera-gray-900);
}

main {
	background-color: var(--sensera-gray-100);
}

.subpages {
	height: 40px;
	border-bottom: 1px solid var(--sensera-gray-300);
	background-color: var(--sensera-blue-50);
}

.subpages ul {
	display: flex;
	align-items: center;
	margin-left: 35px;
	height: 100%;
}

.subpages li,
.subpages a {
	display: flex;
	height: 100%;
}

.subpages li {
	padding: 0 24px;
}

.subpages a {
	align-items: center;
	color: var(--sensera-blue-400);
}

.subpages .current {
	color: black;
	border-bottom: 4px solid;
	font-weight: 700;
}

#SubpageContainer {
    display: flex;
    flex-direction: column;

	margin: auto;
    padding: 0;
	max-width: 768px;
    height: 100%;
}

#SubpageHeader {
	display: flex;
	row-gap: 4px;
	margin: 26px 0 16px;
}

#SubpageHeader .subpage-actions {
	display: flex;
    gap: 12px;
	margin-left: auto;
}

#SubpageHeader .form-actions .ss-btn .fa {
    margin-right: 16px;
}

#ToggleFilters {
	display: none;
}

#ListFilters_Container {
	display: none;
	position: fixed;
	top: 0;
	margin: 4px 0 0 -262px;
	padding: 20px;
	width: 232px;
	border: 1px solid var(--sensera-gray-300);
	border-radius: var(--borderRadius_els);
	background-color: white;
	color: black;
}

.filters-title {
	margin-bottom: 24px;
	font-size: 16px;
	font-weight: 600;
}

.filter-group {
	font-size: 14px;
}

.filter-group-title {
    margin: 12px 0 8px;
}

.filter-label {
	display: flex;
	align-items: center;
    padding: 6px;
    margin: 0 0 4px;
	border: 1px solid var(--sensera-gray-300);
    border-radius: var(--borderRadius_btns);

	cursor: pointer;
}

.filter-name {
	overflow: hidden;
    text-overflow: ellipsis;
	padding-left: 4px;
	color: var(--sensera-gray-500);
}

.filter-results-ct {
	margin-left: auto;
	padding: 2px 6px;
	border-radius: var(--borderRadius_els);
	background: var(--sensera-gray-100);
	color: var(--sensera-gray-700);
}

#SubpageTitle {
    font-size: 20px;
}

#SubpageDescription {
    display: flex;
    align-items: center;
	font-size: 14px;
}

#SubpageContainer p {
	padding: 0;
	color: var(--sensera-gray-500);
}

#SubpageWrapper section {
	display: grid;
	margin-bottom: 20px;
	padding: 0;
	border-radius: var(--borderRadius_els);
	background: white;
}

section > header {
	display: grid;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 20px 16px;
	border-bottom: 1px solid var(--sensera-gray-300);
}

section .section-description {
	font-size: 16px;
}

.content {
    padding: 8px 16px 16px;
}

.content .field {
	margin: 0;
}

.content .field:not(:last-child) {
	margin-bottom: 16px;
}

.content label {
	display: block;
	margin: 8px 0;
	color: var(--sensera-gray-700);
	font-size: 14px;
}

.content select {
	width: 100%;
}

label.required::before {
	content: '*';

    position: absolute;
    left: -8px;

	color: var(--WarningRed2);
	font-size: 16px;
}

.read-only label.required::before {
	content: '';
}

.subsection-header {
    margin: 32px 0 20px;
}

/** The following few color references should align with person-card.css */
.subsection-header.role-users .subsection-title {
	color: var(--sensera-gray-600);
}

.subsection-header.role-users .subsection-item-ct-bg {
	background-color: var(--sensera-gray-600);
}

.subsection-header.role-admins .subsection-title {
	/*color: var(--sensera-orange-800);*/
	color: #5925DC;
}

.subsection-header.role-admins .subsection-item-ct-bg {
	/*background-color: var(--sensera-orange-800);*/
	background-color: #5925DC;
}

.subsection-header.role-limiteds .subsection-title {
	color: var(--sensera-gray-600);
}

.subsection-header.role-limiteds .subsection-item-ct-bg {
	background-color: var(--sensera-gray-600);
}

.subsection-header.role-invites .subsection-title {
	color: var(--sensera-orange-700);
}

.subsection-header.role-invites .subsection-item-ct-bg {
	background-color: var(--sensera-orange-700);
}

.subsection-title {
	display: flex;
    align-items: center;
	gap: 8px;
    font-size: 16px;
	font-weight: 600;
}

.subsection-item-ct-bg,
.subsection-item-ct {
	border-radius: var(--borderRadius_els);
}

.subsection-item-ct-bg {
	display: flex;
	justify-content: center;
	align-items: center;
    border: 1px solid;
}

.subsection-item-ct {
	padding: 4px 8px;
    background: hsl(0deg 0% 100% / 0.85);
}

.subsection-description {
	margin-top: 4px;
    color: var(--sensera-gray-200);
	font-size: 14px;
}

/*.kebab-btn {
	display: flex;
	flex-wrap: wrap;
    align-content: center;
	justify-content: center;
    margin: auto 0 auto auto;
	padding: 0;
	width: 12px;
    height: 32px;
	border: none;
	border-radius: 999rem; !** Pill shape hack *!
	background: white;
    color: var(--sensera-gray-500);
    font-size: 26px;
	font-weight: 700;

	cursor: pointer;
}

.kebab-btn::after {
    content: '⋮';
}

kebab-btn:hover,
.kebab-btn.open {
	background: var(--sensera-gray-200);
}*/

/** Consistent cross-browser layout... *long sigh*... */
.kebab-btn {
	margin: auto 0 auto auto;
	padding: 10px 6px;
	border: none;
	border-radius: 999rem; /** Pill shape hack */
	background: white;
    color: var(--sensera-gray-500);
    font-size: 16px;
	font-weight: 700;

	cursor: pointer;
}

.kebab-dots {
	display: grid;
	grid-template-rows: repeat(3, 6px);
	justify-content: center;
	margin-bottom: 2px;
}

.kebab-dots .dot {
	line-height: 0;

	text-shadow: 0 -1px var(--sensera-gray-500), /* top */
				 1px 0 var(--sensera-gray-500), /* right */
				 0 1px var(--sensera-gray-500), /* bottom */
				 -1px 0 var(--sensera-gray-500); /* left */
}

.kebab-btn:hover,
.kebab-btn.open {
	background: var(--sensera-gray-200);
}

.critical-message {
	position: relative;
	padding: 16px 16px 16px 42px;
	border-left: 4px solid var(--sensera-warning-400);
	background-color: var(--sensera-warning-50);
	color: var(--sensera-warning-700);
	font-size: 14px;
    line-height: 20px;
}

.critical-message.bottom-margin {
    margin-bottom: 16px;
}

.critical-message::before {
	position: absolute;
	left: 16px;
    margin-top: 2px;

	content: '\f071'; /** Font Awesome Exclamation triangle */
	font-family: FontAwesome;
}

.critical-message p {
	margin: 0;
	padding: 0;
	color: var(--sensera-warning-700) !important;
}


/** Tier 2 */
/** iPads, misc. tablets, widescreen notebooks */
@media
only screen and ( max-width: 1440px ),
only screen and ( max-height: 860px )
{
	#ToggleFilters {
		z-index: 1;

		display: block;
		padding: 0 8px;
		height: 36px;

		cursor: pointer;
	}

	#ToggleFilters.open {
		border-color: transparent;
	}

	#ListFilters_Container {
		position: absolute;
		right: -1px;
		padding: 0;

		box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);
	}

	.filters-title {
		padding: 12px 16px 0;
	}

	.filter-group {
		margin: 0 16px 16px;
	}

	.filter-group-title {
		margin: 0 0 8px;
	}

	.filter-label {
		padding: 8px 6px;
	}
}


/** Tier 3 */
@media
only screen and ( max-width: 930px )
{

}


/** Tier 4 */
/** Phones */
@media
only screen and ( max-width: 666px )
{
	.ss-btn.mobile-icon-only {
		padding: 0 12px;
	}

	.ss-btn.mobile-icon-only .fa {
		margin-right: 0;
	}

	.ss-btn.mobile-icon-only .text-label {
		display: none;
	}

	#header {
		grid-template-columns: 40px auto 1fr;
	}

	#ProjectSelect_container {
		grid-row: 1 / span 2;
	}

	.subpages ul {
		margin-left: 0;
	}

	.subpages li {
		margin-right: auto;
		padding: 0 16px;
	}

	#SubpageHeader {
		flex-wrap: wrap;
		padding: 0 16px;
	}

	#SubpageHeader .form-actions {
		margin-top: 16px;
	}

	#ListFilters_Container {
		right: 15px;
	}

	#SubpageWrapper {
		padding: 0 16px;
	}

	#GlobalFooter {
		position: relative;
		display: grid;
		grid-template-columns: 40% 1fr;
		width: 100%;
		font-size: 0.7rem;
	}

	#GlobalFooter .logo-link {
		margin-top: -4px;
	}

	#GlobalFooter img {
		margin-left: 1px;
	}
}
