.vspace-after-1 {
	margin-bottom: 10px;
}

.vspace-after-2 {
	margin-bottom: 20px;
}
.vspace-before-0 {
	margin-top: 4px;
}
.vspace-before-1 {
	margin-top: 10px;
}
.vspace-before-2 {
	margin-top: 20px;
}
.vspace-before-3 {
	margin-top: 30px;
}

.hspace-before-1 {
	margin-left: 10px;
}

.gradeable-box table {
	background-color: RGBA(120,120,120,0.1);
	font-size: 11px;
}
.module-grade {
	background-color: RGBA(120,120,120,0.4);
}
.final-grade {
	background-color: RGBA(180,180,180,0.1);
}
.final-grade-margin {
	margin-right: 5px;
}

#login-container {
	margin-top: 100px;
}

#login-container .well {
	background-color: #fff;
	box-shadow: 0 1px 2px rgba(0,0,0,.15);
	-moz-box-shadow: 0 1px 2px rgba(0,0,0,.15);
	-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15);
}

/* as indicated by the ui-bootstrap documentation*/
.nav .nav-item, .pagination, .carousel, .panel-title a { cursor: pointer; }
.nav .nav-item a { outline: 0; }


@-moz-keyframes spin {
	from { -moz-transform: rotate(0deg); }
	to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
	from { -webkit-transform: rotate(0deg); }
	to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
	from {transform:rotate(0deg);}
	to {transform:rotate(360deg);}
}

.loading-page {
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1;
}

.loading-page > div {
	display: table;
	width: 100%;
	height: 100%;
	padding-bottom: 20%;
}

.loading-page > div > div {
	display: table-cell;
	font-size: 50px;
	text-align: center;
	width: 100%;
	height: 100%;
	vertical-align: middle;
}

.loading-page .glyphicon {
	-webkit-animation: spin 1s infinite linear;
	-moz-animation: spin 1s infinite linear;
	animation: spin 1s infinite linear;
	cursor: default;
}

body > .container.loading {
	opacity: 0.7;
}

.form-group-within-col .form-control-feedback {
	right: 15px;
}


.modal.in .modal-dialog {
	-webkit-transform: none;
	-ms-transform: none;
	-o-transform: none;
	transform: none;
}

.ca-sticky-toolbar {
	padding: 3px 3px 3px 2px;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
}

.ca-sticky-toolbar.detached {
	background: white;
	top: 0;
	z-index: 1000;
	position: fixed;
	margin-left: 4px;
}

.ca-toolbar-spacer {
	height: 40px;
	width: 1px;
	float: left;
}

.ta-toolbar {
	opacity: 0.3;
}
.ta-toolbar.focussed {
	opacity: 1;
}

.period-form-container {
	border: 2px solid rgb(110, 19, 110);
}

.period-form-container .panel-body {
	height: 250px;
	overflow: auto;
	overflow-x: hidden;
}

.module-tag {
	background-color: #fcfafc;
	border: 1px solid #e2d0e2;
	display: inline-block;
	padding: 5px 10px;
}

.attendance {
	display: inline-block;
	height: 30px;
	margin-left: 5px;
	width: 30px;
}

.attendance.slot {
	background-color: #777;
}

.attendance.present {
	background-color: #3c763d;
}

.attendance.absent {
	background-color: #a94442;
}

.comment > .comment {
	border-left: 1px dotted rgba(83, 55, 87, 0.4);
	padding-left: 30px;
	margin-left: 45px;
}

.one-message-item {
	overflow: hidden;
	white-space: nowrap;
}

tr.notice td, .table-striped > tbody > tr.notice:nth-of-type(n) td {
	background-color: white;
}
tr.warning td, .table-striped > tbody > tr.warning:nth-of-type(n) td {
	background-color: #FFF7AB;
}
tr.urgent td, .table-striped > tbody > tr.urgent:nth-of-type(n) td {
	background-color: #C2000F;
	color: white;
}
tr.new_notification td, .table-striped > tbody > tr.new_notification:nth-of-type(n) td{
	font-weight: bold;
}
tr td.notification-alert-level {
	text-align: right;
}

h4.notification-title {
	margin-top: 0;
	margin-bottom: 20px;
}

div.notification {
	position: relative;
}
div.notification .alert-level {
	position: absolute;
	top: -53px;
	right: 0px;
	font-size: 15px;
}
div.notification .notification-type {
	position: absolute;
	top: -60px;
	left: 0px;
	font-size: 25px;
}
div.notification-dialog.urgent .alert-level {
	color: white;
}
div.notification-dialog.urgent .notification-type {
	color: white;
}

div.notification-dialog .modal-header {
	padding-left: 60px;
	padding-bottom: 10px;
}
div.notification-dialog .modal-header h4 {
	margin-top: -7px;
}
div.notification-dialog.notice .modal-header {
	background-color: white;
}
div.notification-dialog.warning .modal-header {
	background-color: #FFF7AB;
}
div.notification-dialog.urgent .modal-header {
	background-color: #C2000F;
	color: white;
}

div.modal-footer.custom-notice button {
	background-color: white;
	color: black;
}
div.notification-dialog .notification-deliver {
	float: right;
	font-size: 10px;
}
div.notification-dialog .notification-actions {
	position: absolute;
	bottom: -74px;
}
div.notification-dialog .notification-actions a {
	margin-right: 10px;
	background-color: #6e136e;
	color: white;
	border-color: #240624;
}

div.notifications-container {
	margin-top: -30px;
	margin-left: -5px;
	margin-bottom: 20px;
	display: flex;
	flex-wrap: wrap;
}

div.notification-box {
	position: relative;
	-webkit-box-shadow: 1px 1px 1px 0px rgba(0,0,0,0.4);
	-moz-box-shadow: 1px 1px 1px 0px rgba(0,0,0,0.4);
	box-shadow: 1px 1px 1px 0px rgba(0,0,0,0.4);
	margin: 0 5px 5px ;
	-webkit-box-flex: 1;
	-ms-flex-positive: 1;
	flex-grow: 1;
	-ms-flex-negative: 1;
	flex-shrink: 1;
	-ms-flex-preferred-size: 300px;
	flex-basis: 200px;
	max-width: 330px;
	position: relative;
	padding: 5px;
	cursor: pointer;
}
div.notification-box.notice {
	background-color: white;
}
div.notification-box.warning {
	background-color: #FFF7AB;
}
div.notification-box.urgent {
	background-color: #C2000F;
	color: white;
}

div.notification-box .alert-level {
	position: absolute;
	top: 3px;
	right: 8px;
	font-size: 13px;
}
div.notification-box .notification-type {
	position: absolute;
	top: 3px;
	left: 8px;
	font-size: 13px;
}
div.notification-box .notification-deliver {
	font-size: 10px;
}
div.notification-box .notification-label {
	margin-left: 30px;
	font-weight: bold;
	font-size: 10px;
	text-transform: uppercase;
}
div.notification-box hr {
	margin: 5px -5px 5px -5px;
}
div.notification-box.flex-placeholder {
	visibility: hidden;
}


div.attendance-date-dialog {
	position: relative;
}
div.attendance-date-dialog .attendance-date {
	padding: 15px;
}
div.attendance-date-dialog .date {
	position: absolute;
	top: -40px;
	right: 15px;

}
div.attendance-date-dialog .important-gradeable, div.gradeable-dialog .important-gradeable {
	padding: 15px 15px;
    background-color: #FFF099;
    color: #333;
    margin-bottom: 10px;
    margin-left: -5px;
    padding-right: 2px;
    width: calc(100% + 10px);
}


div.gradeable-dialog .gradeable-actions {
	position: absolute;
	bottom: -56px;
	left: 20px;
}
div.gradeable-dialog .gradeable-actions a {
	margin-right: 10px;
	background-color: #6e136e;
	color: white;
	border-color: #240624;
}

.alert.alert-info.grade {
	padding: 10px;
	margin-top: 19px;
}

div.gradeable-dialog {
	position: relative;
}

div.gradeable-dialog .status {
	position: absolute;
	right: 10px;
	text-align: right;
	top: -38px;
}


.user-inactive {
	color: #a19b9b;
}


/* Fixed header and column (table layout) */

.grid-container {
	display: grid; /* This is a (hacky) way to make the .grid element size to fit its content */
	overflow: auto;
	height: 300px;
	background-color: #f0e9f0;
	width: 100%;
	margin-left: 15px;
	margin-right: 15px;
}
.grid {
	display: flex;
	flex-wrap: nowrap;
}
.grid-col {
	width: 220px;
	min-width: 220px;
}

.grid-item--header {
	height: 100px;
	min-height: 100px;
	position: sticky;
	position: -webkit-sticky;
	top: 0;
	border-bottom: 2px solid #8f5f95;
	background-color: #f0e9f0;
	z-index: 9997;
}
.grid-item--header .first-line {
	border-bottom: 2px solid #8f5f95;
}
.grid-item--header > div {
	height: 50px;
}

.grid-col--fixed-left {
	position: sticky;
	left: 0;
	z-index: 9998;
	width: 300px;
	background-color: #f0e9f0;
}
.grid-col--fixed-left .grid-item {
	width: 300px;
}

.grid-item {
	height: 40px;
	padding-top: 4px;
	font-size: 11px;
}
.grid-item .col-xs-6, .grid-item .col-xs-12 {
	padding: 0;
}
.grid-item label {
	font-weight: normal;
}


.grid-col .grid-item.ng-scope:nth-of-type(2n+1) {
    background-color: #e3d4e3;
}
.modal-open .grid-container {
	display: none;
}


/* Order animation inspired by https://codepen.io/andrewburgess/pen/bHCDy */
tr.angular-animate.ng-move {
	animation: list-sort-flip-top 0.4s linear;
	transform: translate(0, 100%);
	z-index: 2;
}

tr.angular-animate.ng-move + tr {
	transform: translate(0, -100%);
	z-index: 1;
}

tr.angular-animate.ng-move.ng-move-active + tr {
	animation: list-sort-flip-bottom 0.4s linear;
}


@keyframes list-sort-flip-top {
	0% {
		transform: rotate(0) translate(0, 100%) rotate(0);
	}

	50% {
		transform: rotate(45deg) translate(0, 50%) rotate(-45deg)
	}

	100% {
		transform: rotate(90deg) translate(0, 0) rotate(-90deg)
	}
}

@keyframes list-sort-flip-bottom {
	0% {
		transform: rotate(0) translate(0, -100%) rotate(0);
	}

	50% {
		transform: rotate(45deg) translate(0, -50%) rotate(-45deg);
	}

	100% {
		transform: rotate(90deg) translate(0, 0) rotate(-90deg);
	}
}
