/*
Brock U course tables plugin CSS

*/

/* ----------------------------------------------
   ----------------------------------------------
   Large Screen desktops (Default)
   ----------------------------------------------
   ---------------------------------------------- */


/* notices - Last update, etc. */

.notice { margin: 0; padding: 20px 30px; }
.notice p { padding: 0; margin: 0 !important; text-align: center; font-size: .8em !important; }
.notice p + p { margin-top: 1em !important; }

.notice.success { background: #e6ffe8; color: #25d065; }
.notice.info { background: #f1f8fe; color: #2699fb; }
.notice.warning { background: #faf7e7; color: #ddba18; }
.notice.danger { background: #fae5e5; color: #cc0000; }
.notice.neutral { background: #f8f8f8; }

.notice.left p { text-align: left; }

.lastupdate { padding: 1em 0; text-align: center; font-size: .8em !important; }

/* messages */

.message { margin: 0; padding: 20px 30px; background: #f8f8f8; text-align: center; }
.message p { margin: 0 !important; padding: 0; }
.message p strong { color: #cc0000; }
.results .message { margin-bottom: 30px; }

/* Debug */

.debug {
	padding: 30px 30px;
	background: #fae5e5; color: #cc0000;
	}
.debug h3 { padding-bottom: 20px; font-size: .8em !important; color: #cc0000; }


/* default (blank) view */

.defaultview-hero img { width: 100%; margin-bottom: 30px; }

.defaultview { margin: -40px 0 0 0; padding: 0 0 50px 0; text-align: center; }
.defaultview p { padding-right: 20%; padding-left: 20%; }
#content .defaultview hr { margin-bottom: 2em; clear: none; visibility: visible; border: 0; background: #f0f0f0; height: 1px; }
#content .defaultview h2 { text-transform: uppercase; margin-bottom: 1.5em; letter-spacing: 0.09em; font-size: 1em; color: #cc0000; }


/* Main output */

.coursetables .output {
	position: relative;
	min-height: 500px;
/* 	background: #fafafa; */
	}
.coursetables .output.withfilters {
	width: 67%;
	float: right;
	}

.coursetables hr {
	clear: both;
	background: transparent;
	}

/* Loader */

.coursetables .output .loader {
	position: absolute;
	top: 250px; left: 48%;
	display: none;
	}

/* Filters */

.coursetables .filters {
	width: 30%;
	float: left;
	}
.coursetables .filters-wrapper {
	padding: 20px 30px;
	background: #f0f0f0;
	}

.coursetables .filters-wrapper h2 {
	padding-bottom: 20px; margin-bottom: 0 !important;
	border-bottom: 1px solid #e0e0e0;
}
	

/* Reset button */
.coursetables .filters-wrapper a.reset {
	margin-top: 0; padding: 1px 15px 0 15px;
	display: none;
	background: #fff;
	color: #000 !important;
 	border: 1px solid #000 !important;
	float: right;
	font-size: 11px;
	text-transform: uppercase;
	font-family: "Bliss", "Trebuchet MS", sans-serif;
	font-weight: 200;
	letter-spacing: 0.1em;
}

.coursetables .filters-wrapper a.reset:hover,
.coursetables .filters-wrapper a.reset:focus,
.coursetables .filters-wrapper a.reset:active {
	background: #000 !important;
	color: #fff !important;
}

/*
.coursetables .filters-wrapper a.reset:after {
	content: "\f021" !important; margin-left: 15px; 
	}
*/

.coursetables .filters-wrapper h3 {
	font-size: .8em !important;
	}

.coursetables .filters .primary { 
	padding: 30px 0;
	border-bottom: 1px solid #e0e0e0;
	text-align: right;
	}

.coursetables .filters label {
	color: #cc0000 !important;
	font-size: .8em !important;
	text-align: left !important;
	display: inline-block;
	width: 100%;
	}
	.coursetables .filters button#list-programs {
		margin-top: 5px;
		}
	
.coursetables .filters select {
	margin: 10px 0 20px 0;
	width: 100%;
	}

.coursetables .filters select#exam-session {
	display: none;
	}

.coursetables .filters .secondary {
	display: none;
	padding: 30px 0 20px 0;
	border-bottom: 1px solid #e0e0e0;
	}
	.coursetables .filters .secondary button[disabled=disabled] { 
		opacity: .2;
		}
		.coursetables .filters .secondary button[disabled=disabled]:hover {
			background: #cc0000 !important;
			}


.coursetables .filters .search {
	padding: 30px 0 20px 0;
	width: 100%;
	}

#content .coursetables .filters .search input {
	width: 80% !important;
	height: 45px !important;
	border: none !important;
	display: inline-block !important;
	vertical-align: top;
	}
.coursetables .filters .search button {
	padding: 0 0 0 0 !important;
	width: 20% !important;
	height: 45px !important;
	display: inline-block !important;
	vertical-align: top;
	}


/* Toolbar */

.coursetables .toolbar {
	padding: 0 0 20px 0; margin-bottom: 0;
	position: relative;
	}

.coursetables .toolbar #coursetables-context-parameters {
	position: absolute;
	left: 0; top: 0;
	font-size: .7em;
	font-family: "Bliss Bold", "Trebuchet MS", sans-serif;
	font-weight: bold;
	color: #686868;
	}
	.coursetables .toolbar span { display: none; }
	.coursetables .toolbar span.timetable { }
	.coursetables .toolbar span.session { }
	.coursetables .toolbar span.separator { margin-right: 10px; padding-right: 10px; border-right: 1px solid #e0e0e0; }
.coursetables .toolbar h2 {
	margin: 0 !important; padding: 20px 0 0 0 !important;
	float: left;
	}
.coursetables .toolbar hr { margin: 0; }

.coursetables .toolbar a.button {
	padding: 12px 14px !important;
	}
.coursetables .toolbar a.button.clear {
	padding: 11px 14px !important; margin-right: 20px;
	}
.coursetables .toolbar a.button.right {
	float: right;
	}
	
.coursetables .toolbar a.bookmark {
	background: #25d065; color: #e6ffe8 !important;
	background: #cc0000; color: #fff !important;
	}
.coursetables .toolbar a.bookmark.active,
.coursetables .toolbar a.bookmark:hover,
.coursetables .toolbar a.bookmark:active,
.coursetables .toolbar a.bookmark:focus {
	background: #000; color: #fff !important;
	}
	
.coursetables .toolbar a.bookmark:after {
	content: "\f005" !important; margin-left: 15px; 
	}

.coursetables .toolbar a.collapse-all { display: none; }

.coursetables .toolbar a.collapse-all:after {
	content: "\f066" !important;
	}

/* Program listing */

.programs {
	padding: 10px;
	background: #fafafa;
	display: -ms-flex;
	display: -webkit-flex;
	display: -moz-flex;
	display: flex;
	}

.programs .col {
	width: 50%;
	font-size: .7em;
	}

#container #content .programs ul {
	margin: 0; padding: 0 15px;
	list-style-type: none;
	}
#container #content .programs ul li {
	margin: 0; padding: 5px 0;
	border-bottom: 1px solid #f0f0f0;
	}
	#container #content .programs ul li:last-child {
		border: none;
		}

#container #content .programs ul li a { 
	border: none;
	}

#container #content .programs ul li .code { float: right; font-size: .8em; }

#container #content .programs ul li .online { margin-left: 5px; font-size: .8em; }


/* Course Table listing */

table.course-table {
	width: 100%;
	border-collapse: collapse;
	-webkit-transition: opacity .1s ease-out;
	   -moz-transition: opacity .1s ease-out;
		-ms-transition: opacity .1s ease-out;
	     -o-transition: opacity .1s ease-out;
		 	transition: opacity .1s ease-out;
	opacity: 1;
	}
	
	table.course-table tr th {
		font-weight: bold;
		font-family: "Bliss Bold", "Trebuchet MS", sans-serif;
		color: #ffffff; /* Contrast Accessible at large text sizes only */ 
		background: #000 !important;
		padding: 10px 15px;
		border-bottom: none;
		font-size: .8em;
		white-space: nowrap;
		}
	
	table.course-table tr td {
		background: #fcfcfc;
		font-size: .7em;
		}
		/* pointers */
		table.course-table.course-listing tr td:hover:not(.data),
		table.course-table.exam-listing tr td:hover:not(.data) {
			cursor: pointer;
			}

	table.course-table tr.special td {
		background-color: #f0f0f0;
		}
	table.course-table tr td {
		padding: 13px 15px;
		border-bottom: 1px solid #e4e4e4;
		}
	table.course-table tr:hover td {
		background-color: #fae5e5;
		}
	
	table.course-table tr td a {
		font-weight: bold;
		font-family: "Bliss Bold", "Trebuchet MS", sans-serif;
		border: none !important;
		}
	
	/* cell styling */
	
	table.course-table .arrow { width: 3%; padding-right: 0; padding-left: 10px; text-align: center; }
	table.course-table .course-code	{ text-align: left; width: 15%; }
	table.course-table .title 	{ text-align: left; width: 35%; }
	
	table.course-table .start		{ text-align: center; white-space: nowrap; width: 15%; }
	table.course-table .end 		{ text-align: center; white-space: nowrap; width: 15%; }
	
	table.course-table tbody .start,
	table.course-table tbody .end { text-transform: uppercase; letter-spacing: 0.03em; }
	
	table.course-table .duration	{ text-align: center; white-space: nowrap; width: 10%; padding-left: 0; padding-right: 0; }
	
	table.course-table .days		{ text-align: center; white-space: nowrap; width: 12%; padding-left: 0; padding-right: 0; }
	table.course-table tbody .days	{ /* padding: 0; */ position: relative; }
	
	table.course-table .time		{ text-align: center; white-space: nowrap; width: 15%; }
	
	table.course-table .type 		{ text-align: center; width: 10%; }
	
	
	/* cell styling - exams */
	table.course-table.exam-listing .arrow 			{ width: 3%; padding-right: 0; padding-left: 10px; text-align: center; }
	table.course-table.exam-listing .course-code 	{ text-align: left; width: 17%; }
	table.course-table.exam-listing td.course-code .details-loader { display: none; float: right; margin-left: 10px; color: #585858; }
	
	table.course-table.exam-listing .duration		{ text-align: center; white-space: nowrap; width: 10%; padding-left: 0; padding-right: 0; }
	table.course-table.exam-listing .section		{ text-align: center; width: 10%; }
	table.course-table.exam-listing .day			{ text-align: center; width: 25%; }
	table.course-table.exam-listing .start			{ text-align: center; white-space: nowrap; width: 10%; }
	table.course-table.exam-listing .end 			{ text-align: center; white-space: nowrap; width: 10%; }
	table.course-table.exam-listing .location		{ text-align: center; width: 15%; }

	
	/* cell styling - title */
	table.course-table td.title { /* font-size: .8em; */ }
	table.course-table td.title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	table.course-table.course-listing td.title { color: #cc0000; } /* only applies to the course listing for a programs, but not other course tables e.g. search results */
	table.course-table td.title .details-loader { display: none; float: right; margin-left: 10px; color: #585858; }


/* Faculty colours */
table.course-table tbody tr.faculty-SC .type { /* box-shadow: inset -3px 0 0 #3c8259; */ }


/* Course/exam details */
table.course-table th,
table.course-table td { display: block !important; float: left !important; }

table.course-table th.data { display: none !important; }
table.course-table td.data { width: 100%; padding: 0 !important; border-bottom: none !important; }

table.course-table td.arrow .fa-angle-right { color: #c0c0c0; }
table.course-table td.arrow .fa-angle-down { color: #cc0000; }

table.course-table tr.active td {
	background-color: #fae5e5;
	border-bottom: 1px solid #f6cdcd;
	}
	
table.course-table tr.active td.data {
	border-bottom: 1px solid #f6cdcd !important;
	margin-bottom: 1px; /* prevents bottom border from disappearing */
	font-size: .8em;
	}
table.course-table tr.active .course-details-data, 
table.course-table tr.active .exam-details-data {
	padding: 30px 40px 30px 40px;
	background: #faf0f0;
	}
	table.course-table tr.active .course-details-data hr,
	table.course-table tr.active .exam-details-data hr { margin: 0; }

table.course-table tr.active .course-details-data h3,
table.course-table tr.active .exam-details-data h3 { margin-bottom: 1em !important; }

table.course-table tr.active .course-details-data .description,
table.course-table tr.active .exam-details-data .description { width: 60%; float: left; }
table.course-table tr.active .course-details-data .vitals,
table.course-table tr.active .exam-details-data .vitals { width: 35%; float: right; }

table.course-table tr.active .course-details-data .vitals ul,
table.course-table tr.active .course-details-data .vitals ul li,
table.course-table tr.active .exam-details-data .vitals ul,
table.course-table tr.active .exam-details-data .vitals ul li { margin: 0 !important; padding: 0 !important; list-style-type: none !important; }

table.course-table tr.active .course-details-data .vitals ul li,
table.course-table tr.active .exam-details-data .vitals ul li {
	padding-bottom: 6px !important; margin-bottom: 6px !important;
	border-bottom: 1px solid #f6cdcd;
	}
	table.course-table tr.active .course-details-data .vitals ul li:last-child,
	table.course-table tr.active .exam-details-data .vitals ul li:last-child {
		border: none;
		}

table.course-table tr.active .course-details-data .vitals ul li div.small,
table.course-table tr.active .exam-details-data .vitals ul li div.small {
	line-height: 120% !important;
}
table.course-table tr.active .course-details-data .vitals ul li small,
table.course-table tr.active .exam-details-data .vitals ul li small {
	font-size: .9em;
}

/* Mini calendar */
table.course-table tr table.coursecal { display: inline-block; margin: 5px 0 8px -6px; }
table.course-table tr table.coursecal th,
table.course-table tr table.coursecal td { width: 26px; padding: 2px !important; display: table-cell !important; float: none !important; text-align: center; border: none; }
table.course-table tr table.coursecal th { color: #585858; background: transparent !important; border-right: 6px solid #faf0f0 !important; }
table.course-table tr table.coursecal td { height: 20px; border-right: 6px solid #faf0f0 !important; background: #fff; }
table.course-table tr table.coursecal td.weekend { background: #fae5e5; background: #e0e0e0; }
table.course-table tr table.coursecal td.active { background: rgba(204, 0, 0, 1); }
table.course-table tr table.coursecal td.weekend.active { background: rgba(140, 0, 0, 1); }

table.course-table tr table.coursecal th:first-child,
table.course-table tr table.coursecal td:first-child { border-left: 6px solid #faf0f0 !important; }

/* Mini cal on main table list */
table.course-table tr td.days table.coursecal { display: block; position: absolute; top: 12px; margin: 0 !important; border-left: none !important; }
table.course-table tr td.days table.coursecal td { width: 26px; padding: 2px !important; display: table-cell !important; float: none !important; text-align: center; border: none; }
table.course-table tr td.days table.coursecal th { color: #c8c8c8; background: transparent !important; border-right: none !important; }
table.course-table tr td.days table.coursecal td { height: 10px; border-right: none !important; background: #fff; display: none !important; }

table.course-table tr td.days table.coursecal td.weekend { background: #fae5e5; background: #e0e0e0; }
table.course-table tr td.days table.coursecal th.active { color: #000; }

table.course-table tr td.days table.coursecal th:first-child,
table.course-table tr td.days table.coursecal td:first-child { display: none !important; }


/* Course Table - search results */

table.course-table.search-results th,
table.course-table.search-results td { display: table-cell !important; float: none !important; }
table.course-table.search-results .course-code	{ text-align: left; width: 15%; }
table.course-table.search-results .title 		{ text-align: left; width: auto; }
table.course-table.search-results .year 		{ text-align: center; }
table.course-table.search-results .session 		{ text-align: center; }
table.course-table.search-results .type 		{ text-align: center; width: auto; }


/* Table sort */

table.course-table th[data-sort] {
	cursor: pointer;
	}
table.course-table th[data-sort]:after {
/*
    content: "\f107" !important;
	display: inline-block;
	font-family: FontAwesome;
	font-style: normal;
	font-weight: normal;
	line-height: 1;
	font-size: 90%;
	margin-left: 7px;
    color: #585858;
*/
    }
table.course-table th.sorting-desc:after {
	content: "\f107" !important;
	display: inline-block;
	font-family: "Font Awesome 5 Pro";
	font-style: normal;
	font-weight: 300;
	line-height: 1;
	font-size: 90%;
	margin-left: 7px;
    color: #585858;
	content: "\f107" !important;
	color: #fff;
    }
table.course-table th.sorting-asc:after {
	content: "\f107" !important;
	display: inline-block;
	font-family: "Font Awesome 5 Pro";
	font-style: normal;
	font-weight: 300;
	line-height: 1;
	font-size: 90%;
	margin-left: 7px;
    color: #585858;
    content: "\f106" !important;
	color: #fff;
    }


/* ----------------------------------------------
   ----------------------------------------------
   Tablets
   ----------------------------------------------
   ---------------------------------------------- */

@media only screen 
and (min-width : 951px) and (max-width: 1114px) {
	


}



/* ----------------------------------------------
   ----------------------------------------------
   Small Tablet
   ----------------------------------------------
   ---------------------------------------------- */
   
@media only screen 
and (min-width : 841px) and (max-width: 950px) {
	
	.programs { display: inherit; }
	
	.programs .col { 
		width: 100%; 
		}

}



/* ----------------------------------------------
   ----------------------------------------------
   Mobile
   ----------------------------------------------
   ---------------------------------------------- */

@media only screen 
and (max-width: 840px) {
	
	.coursetables .filters {
		width: 100%;
		float: none;
		}
		.coursetables .filters button#list-programs {
			width: 100%;
			}
		
	.coursetables .output.withfilters {
		margin-top: 30px;
		width: 100%;
		float: none;
		}
	
	
	.programs { display: inherit; }
	
	.programs .col {
		width: 100%;
		}
	
	/* default (blank) view */
	.defaultview p { padding-right: 0; padding-left: 0; }
	
	
	/* output */
	.coursetables .output.withfilters { margin-top: 0 !important; }
	
	
	/* Toolbar */
	
	.coursetables .toolbar #coursetables-context-parameters { position: inherit; padding-top: 30px; }
	.coursetables .toolbar #coursetables-context-header { padding-top: 10px !important; }
	.toolbar .button.right { margin-top: 20px; }
		
		
	/* cell styling */

	table.course-table th,
	table.course-table td { /* display: table-cell !important; float: none !important; */ vertical-align: middle; font-size: .8em !important; }
	table.course-table tr td { padding: 10px 0 0 5px !important; }
	
	table.course-table .arrow,
	table.course-table.course-listing .start,
	table.course-table.course-listing .end,
/* 	table.course-table .duration, */
	table.course-table .days,
	table.course-table .time { display: none !important; }
	
	table.course-table .course-code	{ text-align: left; width: 20%; height: 35px; padding-right: 0 !important; padding-left: 10px !important; }
	table.course-table .title 		{ text-align: left; width: 45%; height: 35px; }
	table.course-table .duration	{ text-align: center; width: 15%; height: 35px; padding-right: 0 !important; padding-left: 0 !important; }
	table.course-table .type 		{ text-align: center; width: 20%; height: 35px; padding-right: 10px !important; }
	
	table.course-table .duration,
	table.course-table .type { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	
	/* cell styling - exams */
	table.course-table.exam-listing .course-code 	{ text-align: left; width: 25%; height: 35px; }
	table.course-table.exam-listing td.course-code .details-loader { display: none; float: right; margin-left: 10px; color: #585858; }
	
	table.course-table.exam-listing .duration		{ display: none !important; }
	table.course-table.exam-listing .section		{ text-align: center; width: 10%; height: 35px; }
	table.course-table.exam-listing .day			{ text-align: center; width: 35%; height: 35px;  }
	table.course-table.exam-listing .start			{ text-align: center; white-space: nowrap; width: 15%; height: 35px; }
	table.course-table.exam-listing .end 			{ text-align: center; white-space: nowrap; width: 15%; height: 35px; }
	table.course-table.exam-listing .location		{ display: none !important; }
	
	/* details */
	
	table.course-table tr.active .course-details-data,
	table.course-table tr.active .exam-details-data {
		padding: 10px 15px;
		}
		
		table.course-table tr.active .course-details-data .description,
		table.course-table tr.active .exam-details-data .description { width: 100%; float: none; }
		
		table.course-table tr.active .course-details-data .vitals,
		table.course-table tr.active .exam-details-data .vitals { width: 100%; float: none; }
		
		table.course-table tr.active .course-details-data .vitals ul,
		table.course-table tr.active .exam-details-data .vitals ul { margin: 20px 0 0 0 !important; border-top: 1px solid #f4d9d9; }
		table.course-table tr.active .course-details-data .vitals ul li:first-child,
		table.course-table tr.active .exam-details-data .vitals ul li:first-child { padding-top: 6px !important; }
		table.course-table tr.active .course-details-data .vitals ul li,
		table.course-table tr.active .exam-details-data .vitals ul li { border-bottom: 1px solid #f4d9d9; }
	
	/* Search */
	
	table.course-table.search-results th,
	table.course-table.search-results td { padding: 10px 5px !important; }
	
	table.course-table.search-results .course-code { width: 30% !important; }
	table.course-table.search-results .title { width: 70% !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	
	table.course-table.search-results .year,
	table.course-table.search-results .session,
	table.course-table.search-results .type { display: none !important; }

}
