* { box-sizing: border-box; }

.hidden { display: none; }

.icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  stroke-width: 0;
  stroke: currentColor;
  fill: currentColor;
}

/* Accent colors:
 * pine green - #77a68d
 * pale green - #a9c7b7
 * maize - f5cb56
 * */

body {
 font-family: 'Roboto', 'Noto Sans', 'sans-serif';
 color: black;
 background: #faf5f0;
 /*background: #f0f0f0;*/
 -webkit-font-smoothing: antialiased;
 text-decoration: none;
}

a { color: #1251bf; color: #0e4095; color: #406350; text-decoration: none;}
a:hover { text-decoration: underline;}

.action a, .data-action a { color: darkred; }

.container { 
 width: auto; 
 max-width: 1024px; 
 margin-left: auto; 
 margin-right: auto; 
 background-color: white;
}
.bar { font-weight: 700; padding: 0.75em; }

.header { 
 font-family: 'Berkshire Swash', 'Roboto', 'Noto Sans', 'sans-serif';
 font-weight: 400;
 color: white;
 background: #04395e;
 background: #1251bf;
 background: #0e4095;
 background: #aa1010;
 background: #406350;
}
.header .words .title { font-size: 400%; }
.header .words .subtitle { font-size: 200%; }
.header .header-image { float: left; margin-right: 20px; vertical-align: middle; }
.header .words span { display: table; }
.header .words { vertical-align: middle; }
.header::after {
  content: "";
  display: table;
  clear: both;
}

.nav {
 color: #1251bf;
 color: #406350;
 background: #77a68d;
 background: #a8a8a8;
 background: #f5cb66;
 text-align: center;
}
.navlink { padding: 0em 2em; white-space: nowrap; display:inline-block; }

.mgmt {
 color: black;
 background: darkgray;
 text-align: center;
}
.mgmt .navlink { padding: 0em 1em; }
.mgmt { padding: 0.5em; }

.error {
 background: red;
}
.message {
 background: limegreen;
}

.content { padding: 1em 1em 1em 1em; }

.action-button-bar .action a {
	border: 1px solid currentColor;
	border-radius: 3px;
	padding: 0.5em;
	margin-right: 0.5em;
	margin-bottom: 0.25em;
	white-space: nowrap;
	display: inline-block;
}
.action-button-bar {
	padding-top: 0.5em;
	padding-bottom: 1em;
	display: inline-table;
	width: auto;
}

.expandable { width:auto; }
.nowrap { white-space: nowrap; }

form { display:table; width:auto; max-width: 800px; }
.form-field-group { display:table-row; }
.form-field-group .form-field-label, .form-field-group .form-field { 
 display:table-cell; 
 vertical-align: top; 
 padding: 0.5em 0.5em 0.5em 0.5em;
}
.form-field-label { white-space: nowrap; }
.form-field { width: auto; }
.temp-note, .md-preview { 
 background: #eeeeee; 
 border: 1px dashed #aaaaaa;
 padding: 0em 1em;
}
.temp-note {
 margin-bottom: 2em;
}
.markdown-help { clear:both; }
.form-field-line { display:block; clear:both; white-space:nowrap; padding:0.25em 0em;}

.data-header, .markeddown h1 { 
 font-size:200%; 
 font-weight:700; 
 padding-bottom: 0.25em;
 margin-block-start: 0;
 margin-block-end: 0;
}
.data-subheader {
 font-size:150%;
 font-weight:700;
 padding-bottom: 1em;
}

.markeddown h2 {
 margin-top: 1em;
}

.data, .data-list { 
	display:table; 
	border-collapse: separate;
	border-spacing 0.5em 0em;
}
.data-list { width:100%; }
.data-group + .data-list { margin-top: 3em; }
.data-elem { display:table-row; }
.data-label { font-weight:bold; }
.data-field, .data-action, .data-label, .data-value {
	display:table-cell; 
	padding: 0.75em 0.5em;
	border-bottom: 1px solid lightgray;
}
.data-list .data-field, .data-list .data-action, .data-list .data-label, 
.data-list .data-value {
	padding-top: 0.25em;
	padding-bottom: 0.25em;
}
.data-value p:first-of-type {
	margin-block-start: 0;
}
.data-value p:last-of-type {
	margin-block-end: 0em;
}

.data-group * .data-value, .data-group * .data-label, .data-group .data-action,
.data-detailed-list * .data-value, .data-detailed-list * .data-label {
	border-bottom: none;
}
.data-group * .data-group .data-elem {
	padding-left: 2em;
}
.data-group * .data-group .data-header {
	font-size: 150%
}
.number-data {
	text-align: right;
}

.class-link-label { font-weight: bold; }
.class-link {clear:both; }


.autocomplete {
	position: relative;
	display: inline-block;
}
.autocomplete-items {
/*	position: absolute;*/
	border: 1px solid black;
	border-bottom: none;
	border-top: none;
	z-index: 99;
	top: 100%;
	left: 0;
	right: 0;
}
.autocomplete-items div {
	padding: 0.25em;
	cursor: pointer;
	border-bottom: 1px dotted black;
	color: black;
	background-color: #f8f8f8
}
.autocomplete-items div:last-child {
	border-bottom: 1px solid black;
}
.autocomplete-items div:hover {
	background-color: #0366c9;
	color: white;
}
.autocomplete-active {
	background-color: blue !important;
	color: #ffffff;
}
.match-text {
	font-weight: bold;
}


.all-filters {
	padding-bottom: 1em;
	display: block;
}
#filter-pattern { width: 90% }
.advanced-filters {
	display:none;
	cursor:pointer;
	margin-top: 1em;
	border-top: 1px dashed gray;
	padding: 0.5em 0em;
}
.filter-group {
	display:table;
	border-collapse: separate;
	border-spacing 0.5em 0em;
}
.filter-group .filter, .filter-group {
	display: table-row;
}
.filter span {
	display:table-cell;
	vertical-align: top;
	padding: 0.5em 0em;
}
.filter .filter-label { padding-right: 0.5em; }
.filter label {
	display:block;
	clear:both;
}
.filter-action {
	text-align: center;
}

.class-schedule-entry, .data-detailed-entry {
	padding:0.25em;
	border: 1px solid darkgray;
	margin: 0.6em 0em;
	display: block;
	clear: both;
}
.class-summary, .room-summary {
	overflow: hidden;
	padding-bottom: 5px;
	display:block;
}

.class-title-bar, .data-entry-title-bar {
	width:100%;
	background-color: #1251bf;
	color: white;
	font-weight: 700;
	padding: 0.4em 0.25em;
	margin-bottom: 0.25em;
}
.data-subheader.cancelled::before,
.classinfo.cancelled .name::before,

.class-title a, .data-entry-title a {
	color: white;
	padding: 0.25em;
}
.class-title-bar .details-control, .all-filters .details-control {
	float: right;
	padding-right: 0.4em;
	cursor: pointer;
}
.data-detailed-item, .class-summary .class-time, .class-room, .class-instructors, .class-details { font-size: 90%; padding-left: 0.5em; }
.data-detailed-item { float:left; display: block; clear:both;}
.class-summary .class-time, .class-room { padding-bottom: 5px; }
.class-summary .class-time { float: left; }
.unpublished .class-time { color: green; }
.class-room { float: right; }
.class-instructors { clear: both; float: left; }
.class-topic-list { float:right; display: inline-block;}
.topic-entry { 
	font-size: 70%; 
	background: #f1ce04; 
	padding: 5px; 
	border-radius: 5px; 
	margin: 5px 2px;
	cursor: pointer;
}
.topic-entry:last-child { margin-right: 0; }

.class-details {
	display:none;
	border-top: 1px dashed gray;
	margin-top: 0.5em;
	padding-top: 0.5em;
}
.class-details div {
	margin: 0.25em 0em;
}


.data-field.class-time,
#dashboard-list .class-time { white-space: nowrap; }

#room-list .data-detailed-item { display: table-row; }
.data-value div.class-time { display: inline-block; margin-right: 1em; }

.extra-info { margin-left: 2em; font-size: 80%; }

@media screen and (max-width: 1024px) {
	.container { 
	 width: 100%; 
	 max-width: inherit; 
	}
}

@media screen and (max-width: 480px) {
#schedule-grid {display: none; }
.header .words .title { font-size: 200%; }
.header .words .subtitle { font-size: 150%; }
.header-image { width: fit-content; }
.header img { width: 70px; height: auto; display: block; }
.data, .data-list, .data-group, .data-elem, .data-field, .data-label, 
.data-value, .filter, .filter-group, .filter-label, .filter-control, 
.filter span, .filter-action span { 
	display: block; 
}
.data-value div.class-time { display: block; }
.data * .data-elem, .data-list .data-elem { border-bottom: 1px solid lightgray; }
.data-field, .data-action, .data-label, .data-value  { border-bottom: none; }

.class-room { clear:both; float:left }
.class-topic-list { clear:both; float: right; }

.mgmt .navlink, .navlink {padding-top: 0.25em; padding-bottom:0.25em;}
}

