.site-header {
	position        : relative;
	display         : flex;
	justify-content : space-between;
	flex-shrink     : 0;
	padding         : 0 0 0 0.5rem;
	background      : #EFEFEF;
	color           : #000;
	font-size       : 13px;
	font-family     : Lato, 'Helvetica Neue', Arial, Helvetica, sans-serif;
}

.site-menu-sidebar .site-header {
	background : rgb(30, 95, 152);
}

.site-inactive-year .site-header {
	background : rgb(255, 0, 0) !important;
	color      : #FFF !important;
}

.site-inactive-year:not(.site-menu-sidebar) .site-header {
	border-bottom : 1px solid rgba(255, 255, 255, 0.5);
}

@media screen and (min-width: 600px) and (max-width: 800px) {
	.site-session .medium-hidden {
		display : none;
	}
}

@media screen and (max-width: 600px) {
	.site-header,
	.site-session {
		flex-wrap : wrap;
	}
}

.site-header-button {
	position      : relative;
	border        : 1px solid rgba(0, 0, 0, 0.1);
	border-radius : 3px;
	background    : rgba(0, 0, 0, 0.3);
	color         : inherit !important;
	font-size     : inherit !important;
	font-family   : inherit !important;
	cursor        : pointer !important;
}

.site-header-button:not(:disabled)::after {
	content        : '';
	position       : absolute;
	top            : 0;
	right          : 0;
	bottom         : 0;
	left           : 0;
	background     : transparent;
	pointer-events : none;
}

.site-header-button:not(:disabled):hover::after {
	background : rgba(255, 255, 255, 0.1);
}

.site-header-button:not(:disabled):active::after {
	background : rgba(0, 0, 0, 0.1);
}

.site-header-button:disabled {
	cursor : default !important;
}

.site-header-left {
	display     : flex;
	align-items : center;
	margin      : 0.25rem 0;
}

/* Site Link */

.site-link {
	position      : relative;
	align-self    : center;
	display       : flex;
	align-items   : center;
	overflow      : inherit;
	margin        : 0;
	padding       : 0.25rem;
	border        : 1px solid rgba(0, 0, 0, 0.2);
	border-radius : 5px;
	background    : #FFF;
}

.site-link:not([data-version=""])::before {
	content     : attr(data-version);
	position    : absolute;
	top         : 2px;
	left        : 2px;
	font-size   : 0.8rem;
	line-height : 1;
	color       : #FFF;
	white-space : nowrap;
	text-shadow:
		 1px  0px 1px #000,
		-1px  0px 1px #000,
		 0px  1px 1px #000,
		 0px -1px 1px #000,
		 1px  1px 1px #000,
		-1px  1px 1px #000,
		 1px -1px 1px #000,
		-1px -1px 1px #000;
}

.site-link:not([data-site=""])::after {
	content       : attr(data-site);
	position      : absolute;
	bottom        : 2px;
	right         : 2px;
	padding       : 0.25rem;
	font-size     : 1.1rem;
	line-height   : 1;
	border-radius : 5px;
	background    : #F00;
	color         : #FFF;
	word-break    : break-all;
}

.site-menu-sidebar .site-link {
	border : none;
}

.site-link.no-logo-frame {
	padding       : 0;
	border-radius : 0;
	background    : transparent;
}

.site-logo {
	max-height : 4rem;
}

.site-title-container {
	display     : flex;
	flex-grow   : 1;
	align-items : center;
	padding     : 0 1rem;
}

.site-title {
	margin      : 0;
	font-size   : 1.4rem;
	text-align  : center;
	font-weight : normal;
	line-height : 1.1;
}

/* Site Favorites & Parent Help */

.site-favorites,
.site-help {
	position : relative;
	z-index  : 1;
}

.help-button.site-header-button {
	display         : flex;
	align-items     : center;
	justify-content : center;
	margin-left     : 1rem;
	width           : 2.25rem;
	height          : 2.25rem;
	font-size       : 1rem;
}

.help-button.site-header-button {
	width : unset;
}

.site-help-text {
	display     : inline-block;
	margin-left : 4px;
}

.help-button.site-header-button {
	background : rgba(0, 0, 0, 0.3) !important;
}

.site-favorites-button {
	cursor : pointer;
}

.site-favorites-button .fa-star {
	margin-right : 0.5rem;
}

.site-favorites-menu {
	position       : absolute;
	display        : flex;
	flex-direction : column;
	top            : calc(100% + 3px);
	left           : 0;
	min-width      : 200px;
	border         : 1px solid rgba(0, 0, 0, 0.1);
	box-shadow     : 3px 3px 3px rgba(0, 0, 0, 0.2);
	background     : #FEFEFE;
	color          : #000;
}

.site-container:not(.favorited) .site-favorites-button .fa-star,
.site-container:not(.favorited) .site-favorite-toggle .remove-text,
.site-container.favorited .site-favorite-toggle .add-text {
	display : none;
}

.site-favorites-menu .site-favorites-list-container {
	border-top : 1px solid rgba(0, 0, 0, 0.3);
}

.site-favorites-list-container:empty {
	display : none;
}

.site-favorites-section.recommended {
	margin-top : 0.75rem;
}

.site-favorites-title {
	padding       : 0.25rem 0.5rem;
	border-bottom : 1px solid rgba(0, 0, 0, 0.2);
	color         : rgba(0, 0, 0, 0.7);
	font-size     : 1rem;
	font-weight   : bold;
}

.site-favorites-section:empty::before {
	content     : 'You have no favorites yet';
	display     : block;
	padding     : 0.25rem 0.5rem;
	font-size   : 0.9rem;
	color       : rgba(0, 0, 0, 0.5);
	font-weight : bold;
	font-style  : italic;
	white-space : nowrap;
}

.site-favorite {
	position        : relative;
	display         : flex;
	line-height     : 1.5;
	border          : 0 !important;
	border-radius   : 0 !important;
	background      : #FFF !important;
	text-decoration : none;
	white-space     : nowrap;
}

.site-favorite + .site-favorite {
	border-top : 1px solid rgba(0, 0, 0, 0.1) !important;
}

.site-favorite:not(:disabled):hover::after,
.site-favorite-remove:not(:disabled):hover::after {
	background : rgba(0, 0, 0, 0.075);
}

.site-favorite-toggle {
	color       : rgba(0, 0, 0, 0.7) !important;
	font-size   : 1rem !important;
	font-weight : bold;
}

.site-favorite-toggle .fa {
	margin-right : 0.25rem;
}

.site-favorite-toggle .add-text .fa {
	color : #01A014 !important;
}

.site-favorite-toggle .remove-text .fa {
	color : #A00 !important;
}

.site-favorite-toggle,
.site-favorite-link,
.site-favorite-remove {
	position        : relative;
	display         : flex;
	align-items     : center;
	padding         : 0.25rem 0.5rem;
	font-size       : 1rem;
	border          : 0 !important;
	border-radius   : 0 !important;
	background      : #FFF !important;
	text-decoration : none;
}

.site-favorite-link {
	flex-grow : 1;
	color     : #094988 !important;
}

.site-favorite-remove {
	justify-content : center;
	flex-shrink     : 0;
	color           : #A00 !important;
}

/* Site Search */
/* This isn't implemented. Will likely be when we combine student/user/page search into one */

.site-search {
	flex-grow   : 1;
	display     : flex;
	align-items : center;
	margin      : 0 1rem;
	max-width   : 20rem;
}

.site-search-form {
	display       : flex;
	flex-grow     : 1;
	margin        : 0;
	border        : 1px solid rgba(0, 0, 0, 0.1);
	border-radius : 3px;
	overflow      : hidden;
}

.site-search-input {
	flex-grow  : 1;
	padding    : 0 0.5rem;
	width      : 100%;
	height     : 3rem;
	border     : none;
	background : rgba(0, 0, 0, 0.2);
	box-shadow : 3px 3px 3px rgba(0, 0, 0, 0.2) inset;
	font-size  : 1.25rem;
	color      : #FFF;
	transition : background-color 0.1s, color 0.1s;
}

.site-search-input:focus {
	background : #FFF;
	color      : #000;
}

.site-search-input::placeholder {
	color      : rgba(255, 255, 255, 0.75);
	font-size  : 0.8rem;
	transition : color 0.1s;
}

.site-search-input:focus::placeholder {
	color : rgba(0, 0, 0, 0.75);
}

.site-search-button.site-header-button {
	flex-shrink : 0;
	padding     : 0 0.75rem;
	border      : none;
	border-left : 1px solid rgba(0, 0, 0, 0.1);
	background  : rgba(0, 0, 0, 0.3);
	box-shadow  : 1px 1px 1px rgba(255, 255, 255, 0.2) inset, -1px -1px 1px rgba(0, 0, 0, 0.2) inset;
	color       : #FFF;
}

/* Site Session */

.site-session {
	display         : flex;
	align-self      : center;
	justify-content : end;
	overflow        : hidden;
	margin-bottom   : 0.25rem;
}

.site-session-nowrap {
	display : flex;
	overflow: hidden;
}

.site-session-group {
	display        : flex;
	flex-direction : column;
	overflow       : hidden;
	margin-top     : 0.25rem;
}

.site-session-group.small-group {
	max-width : 200px;
}

@media screen and (max-width: 800px) {
	.site-session-group {
		max-width: 200px;
	}

	.site-session-group.small-group {
		max-width : 150px;
	}
}

.site-session-group-row {
	display     : flex;
	align-items : center;
	flex-grow   : 1;
	flex-shrink : 1;
	max-width   : calc(50vw - 0.25rem);
}

.site-session-group-row:empty {
	display : none;
}

.site-session-group-row + .site-session-group-row {
	margin-top : 0.25rem;
}

.site-header optgroup,
.site-header option {
	background : #FFF;
	color      : #000;
	font-size  : 1rem;
}

/* ===================================================
 * SwiftBox Overrides - DO NOT DO THIS IN GENERAL!
 * =================================================== */
.site-session swift-box,
.site-session select {
	position      : relative !important;
	z-index       : 1 !important;
	width         : auto !important;
	min-width     : 100% !important;
	max-width     : 250px !important;
	height        : auto !important;
	border        : none !important;
	border-radius : 3px !important;
	background    : transparent !important;
	box-shadow    : none !important;
	color         : inherit !important;
	font          : inherit !important;
	cursor        : pointer !important;
}

.site-header select.swiftbox {
	appearance     : none !important;
	box-sizing     : border-box !important;
	display        : inline-block !important;
	padding        : 0 calc(0.5rem + 1.25rem) 0 0.5rem !important;
	opacity        : unset !important;
	pointer-events : none !important;
}

.site-header swift-box {
	outline-offset : -1px !important;
}

.site-header swift-box .swift-box-text,
.site-header swift-box:hover .swift-box-text {
	color : inherit !important;
}

.site-header .swift-box-text {
	padding : 0 0.25rem 0 0.5rem !important;
	border  : none !important;
}

.site-header .swift-box-button {
	width      : 1.5rem !important;
	border     : none !important;
	background : transparent !important;
	box-shadow : none !important;
	color      : #FFF !important;
	font-size  : 0.8rem !important;
}

.site-session-value {
	flex-grow   : 1;
	flex-shrink : 1;
	display     : flex;
	border      : 1px solid rgba(0, 0, 0, 0.2);
	color       : #FFF;
}

.site-session .site-session-value {
	margin-right  : 0.5rem;
	min-width     : 80px;
	height        : 1.75rem;
	border-radius : 3px;
}

.site-menu-sidebar .site-session-value,
.site-inactive-year .site-session-value,
.site-inactive-year .site-user-select-container {
	background : rgba(0, 0, 0, 0.3) !important;
}

.site-session-value:empty {
	display : none !important;
}

.site-session-value.site-session-text {
	padding    : 0 0.5rem;
	background : rgba(0, 0, 0, 0.2);
}

.site-session-text-value {
	display       : flex;
	align-items   : center;
	overflow      : hidden;
	text-overflow : ellipsis;
	white-space   : nowrap;
}

/* Site Packages */

.site-session-packages {
	display        : flex;
	flex-direction : column;
	margin         : 0.25rem 0.5rem 0 0;
}

.site-session-package {
	align-items     : center;
	justify-content : center;
	min-width       : 0 !important;
	width           : 2.75rem !important;
	margin          : 0 !important;
}

.site-session-package:not(:disabled) {
	background : #FFF !important;
	color      : #000 !important;
}

.site-session-package:not(:disabled):hover::after {
	background : rgba(0, 0, 0, 0.075);
}

.site-session-package:first-child {
	border-bottom  : 0;
	border-radius : 3px 3px 0 0;
}

.site-session-package:last-child {
	border-radius : 0 0 3px 3px;
}

/* Site Utilities */

.site-utilities {
	flex-shrink    : 0;
	display        : flex;
	flex-direction : column;
}

.site-utility {
	flex-grow    : 1;
	flex-shrink  : 0;
	padding      : 0.25rem 0.5rem;
	border       : solid rgba(0, 0, 0, 0.1);
	border-width : 0 0 0 1px;
	background   : rgba(0, 0, 0, 0.3);
}

.site-utility + .site-utility {
	border-top-width : 1px;
}

.site-link.no-border {
	border : 0 !important;
}

/* User Select */

.site-user {
	position    : relative;
	z-index     : 0;
	display     : flex;
	align-self  : center;
	margin-left : 1rem;
	max-height  : 4rem;
	font-size   : 1rem;
	overflow    : hidden;
}

.site-user.user-selected {
	height : 4rem;
}

.site-user-image-container {
	display         : flex;
	align-items     : flex-start;
	justify-content : center;
	flex-shrink     : 0;
	max-width       : 4rem;
	height          : 4rem;
	border-radius   : 3px 0 0 3px;
	overflow        : hidden;
}

.site-user-image {
	position   : relative;
	z-index    : 1;
	min-height : 4rem;
	max-width  : 4rem;
}

.site-user-info {
	position       : relative;
	z-index        : 2;
	display        : flex;
	flex-direction : column;
	flex-grow      : 1;
	max-height     : 4rem;
	overflow       : hidden;
}

.site-user-select-container {
	position      : relative;
	z-index       : 2;
	display       : flex;
	background    : rgba(0, 0, 0, 0.3);
	color         : #FFF;
	border-radius : 3px;
}

.site-user.user-selected .site-user-select-container {
	min-width     : 100%;
	max-width     : 300px;
	border-radius : 0 3px 0 0;
}

.site-user-select {
	flex-grow      : 1;
	width          : auto;
	height         : 2.2rem;
	font-size      : 1.2rem;
	background     : transparent;
	color          : inherit;
	outline-offset : -2px !important;
}

.site-user.user-selected .site-user-select {
	min-width : 150px;
}

.site-user-select[disabled] {
	cursor : wait !important;
}

.site-user-select[disabled] .swift-box-text,
.site-user-select[disabled] .swift-box-button {
	background : transparent !important;
}

.site-user-details-container {
	position         : relative;
	z-index          : 1;
	display          : flex;
	align-items      : center;
	flex-grow        : 1;
	font-size        : 0.8rem;
	padding          : 0.1rem 0.5rem;
	border-radius    : 0 0 3px 0;
	background-color : #FFF;
	color            : #000;
	white-space      : nowrap;
	overflow         : hidden;
}

.site-user-detail + .site-user-detail {
	margin-left : 0.5rem;
}

.site-user-detail:not(:first-child):not(:last-child) {
	flex-shrink : 1;
	overflow    : hidden;
}

.site-user-alert-icons {
	display      : flex;
	align-items  : center;
	flex-shrink  : 1;
	line-height  : 1;
	background   : rgba(255, 255, 255, 0.5);
}

.site-user-alert-icons a,
.site-user-alert-icons img {
	flex-shrink      : 0;
	max-height       : 18px;
	max-width        : 15px;
	background-color : transparent;
}

.site-user-alert-icons a {
	overflow : hidden;
}

.site-user-alert-icons > a:not(:first-child),
.site-user-alert-icons > img:not(:first-child) {
	margin-left : 0.25rem;
}

.site-user-navigation {
	display         : flex;
	align-items     : center;
	justify-content : end;
	flex-shrink     : 0;
	flex-grow       : 1;
	margin-right    : -0.25rem;
}

.site-user-navigation .focus-button {
	display         : flex;
	align-items     : center;
	justify-content : center;
	margin-left     : 0.25rem;
	padding         : 0;
	width           : 1.65rem;
	height          : 1.65rem;
	border          : 0;
	border-radius   : 3px;
	font-size       : 1rem;
}

.site-user-navigation .focus-button.disabled {
	background-color : #CCC !important;
}

.site-user-navigation .focus-button:first-child {
	margin-left : 0;
}

.site-user .site-user-deselect {
	display         : flex;
	align-items     : center;
	justify-content : center;
	padding         : 0 0.5rem;
	border          : 0;
	border-radius   : 0;
	background      : rgb(140, 40, 40);
	color           : #FFF;
}

.site-user .site-user-arrow {
	background : #2185D0;
	color      : #FFF;
}

.site-user .site-user-search-results {
	background : #28A8BF;
	color      : #FFF;
}

/* The search results font-icon is slightly above center */
.site-user .site-user-search-results i::before {
	display    : inline-block;
	margin-top : 1px;
}

/* User Tooltip */
.site-user-tooltip {
	display        : flex;
	flex-direction : column;
	margin         : -0.5rem;
	max-width      : 800px;
	max-height     : 600px;
}

.site-user-tooltip table {
	border-collapse : collapse;
}

.site-user-tooltip tr + tr {
	border-top : rgba(255, 255, 255, 0.2);
}

.site-user-tooltip :is(th, td) {
	padding        : 0.2rem 0.5rem;
	font-size      : 0.9rem;
	line-height    : 1.5rem;
	border-top     : 1px solid rgb(212, 212, 213);
	color          : #000;
	font-family    : Lato, 'Helvetica Neue', Arial, Helvetica, sans-serif;
	vertical-align : top;
}

.site-user-tooltip th {
	background  : #E8E8E8;
	color       : rgba(0, 0, 0, 0.8);
	font-weight : bold;
	text-align  : right;
	max-width   : 200px;
}

.site-user-tooltip td {
	min-width : 150px;
}

.site-user-tooltip-image {
	max-width  : 175px;
	max-height : 175px;
}

.site-user-tooltip-icon-link {
	display         : inline-flex;
	align-items     : center;
	justify-content : center;
	margin-left     : 0.5rem;
	color           : #2185D0;
	text-decoration : none;
	cursor          : pointer;
}

.site-user-tooltip-icon-link + .site-user-tooltip-icon-link {
	margin-left : 0.25rem;
}

.site-user-tooltip-icon-link.focus-button {
	min-width : 2rem;
	color     : #FFF;
}

.site-user-tooltip-icon-link.message-link {
	background : #2185d0;
}

.site-user-tooltip-icon-link.login-as-link {
	background : #F26202;
}

.site-user-tooltip-contacts {
	display               : grid;
	grid-template-columns : repeat(2, minmax(min-content, 1fr));
	grid-gap              : 0.5rem;
	align-items           : start;
	padding               : 0.25rem 0;
}

.site-user-tooltip-contact {
	border        : 1px solid rgb(212, 212, 213);
	border-radius : 3px;
	overflow      : hidden;
}

.site-user-tooltip-contact table {
	width       : 100%;
	white-space : nowrap;
}

.site-user-tooltip-contact td {
	min-width : none;
}

.site-user-tooltip-contact caption {
	padding    : 0.2rem 0.5rem;
	background : #177185;
	color      : #FFF;
	font-size  : 1rem;
}

div.exigent {
	background-color : lightgrey;
	height			 : 100%;
	align-items		 : center;
	padding-right	 : 7px;
	border-radius	 : 0px 5px 5px 0px;
}

i#exigent {
	font-size: large;
	margin:0;
}
