
:root {
	--color-fg: #646c9a;
	--color-bg: #efefef;
	--color-link: #00f;
	--color-btn-default-fg: #fff;
	--color-btn-default-bg: #6c757d;
	--color-btn-default-hover-bg: #5a6268;
	--color-btn-primary-fg: #fff;
	--color-btn-primary-bg: #007bff;
	--color-btn-primary-hover-bg: #0069d9;
	--color-btn-danger-fg: #fff;
	--color-btn-danger-bg: #dc3545;
	--color-btn-danger-hover-bg: #c82333;
	--color-card-bg: #fff;
	--color-card-line: #ebedf2;
	--font-weight-bold: 500;
	--font-weight-heavy-bold: 700;
	--border-radius: 5px;
}

/* latin-ext */
@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local("Poppins Regular"), local("Poppins-Regular"), url(../fonts/poppins-latin-ext-400-normal.woff2) format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local("Poppins Regular"), local("Poppins-Regular"), url(../fonts/poppins-latin-400-normal.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: local("Poppins Medium"), local("Poppins-Medium"), url(../fonts/poppins-latin-ext-500-normal.woff2) format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: local("Poppins Medium"), local("Poppins-Medium"), url(../fonts/poppins-latin-500-normal.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: local("Poppins Bold"), local("Poppins-Bold"), url(../fonts/poppins-latin-ext-700-normal.woff2) format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: "Poppins";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: local("Poppins Bold"), local("Poppins-Bold"), url(../fonts/poppins-latin-700-normal.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
	font-family: "Inconsolata";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local("Inconsolata Regular"), local("Inconsolata-Regular"), url(../fonts/inconsolata-latin-ext-400-normal.woff2) format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: "Inconsolata";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local("Inconsolata Regular"), local("Inconsolata-Regular"), url(../fonts/inconsolata-latin-400-normal.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Material Icons";
	font-style: normal;
	font-weight: 400;
	src: url(../fonts/material-icons.woff2) format("woff2");
}
@font-face {
	font-family: "Material Icons Outlined";
	font-style: normal;
	font-weight: 400;
	src: local("MaterialIconsOutlined Regular"), local("MaterialIconsOutlined-Regular"), url(../fonts/material-icons-outlined.woff2) format("woff2");
}

.material-icons {
	font-family: "Material Icons";
	font-weight: normal;
	font-style: normal;
	font-size: 24px;
	line-height: 1px;
	letter-spacing: normal;
	text-transform: none;
	display: inline-block;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	font-feature-settings: "liga";
	-moz-font-feature-settings: "liga";
	-moz-osx-font-smoothing: grayscale;
}
.material-icons.md-16 { font-size: 16px; }
.material-icons.md-18 {
	font-size: 18px;
	position: relative;
	top: 4px;
}
.material-icons.md-24 {
	font-size: 24px;
	position: relative;
	top: 7px;
}
.material-icons.md-36 { font-size: 36px; }
.material-icons.md-48 { font-size: 48px; }


html {
	scroll-behavior: smooth;
}

body {
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	color: var(--color-fg);
	background-color: var(--color-bg);
	margin: 0;
}

h1 {
	font-size: 1.9rem;
	font-weight: var(--font-weight-bold);
	margin: 0 0 1rem 0;
	line-height: 3.3rem;
}

h3 {
	font-weight: normal;
	margin: 30px 0 10px 0;
}

@media only screen and (max-width: 840px) {
	h1 {
		font-size: 1.5rem;
	}
}

@media only screen and (max-width: 480px) {
	h1 {
		font-size: 1.2rem;
	}
}


a, a:visited {
	color: var(--color-link);
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}

a .material-icons, a:visited .material-icons {
	color: var(--color-btn-primary-bg);
}
a:hover .material-icons {
	color: var(--color-btn-primary-hover-bg);
}

.inactive, a.inactive {
	color: #a55;
}

label {
	display: inline-block;
	cursor: pointer;
}

img {
	border: none;
}

noscript {
	position: fixed;
	top: 10px;
	left: 10px;
	right: 10px;
	color: #f00;
	background-color: #fff;
	padding: 10px 20px;
	border-radius: var(--border-radius);
	text-align: center;
	z-index: 2;
}

strong {
	color: #5f5f5f;
	font-weight: var(--font-weight-bold);
}

.success {
	color: #0a0;
}
.failure {
	color: #f00;
}

.asterisk {
	font-weight: normal;
	color: #f00;
	font-size: 1.4rem;
	position: relative;
	top: 5px;
}

pre, tt {
	font-family: "Inconsolata", monospace;
	font-size: 1rem;
}

.ul-no-gap {
	padding-left: 1em;
	margin-left: 0;
}

.code {
	background-color: #f7f7f7;
	padding: 4px 7px;
	border: 1px solid #eaeaea;
	border-radius: 3px;
	margin-left: 5px;
	margin-right: 5px;
}

.page-frame {
	max-width: 90vw;
	margin-left: auto;
	margin-right: auto;
}

.row {
	margin: 1rem auto;
}

.h-start {
	text-align: left;
}
.h-center {
	text-align: center;
}
.h-end {
	text-align: right;
}

.expand {
	flex-grow: 1;
}

.nowrap {
	white-space: nowrap;
}

.no-data {
	color: #aaa;
}

.error {
	color: #f00;
}

.footnote, .card__section.footnote {
	color: #888;
	font-size: 0.75rem;
	margin-top: 40px;
	padding-top: 20px;
	border-top: 1px solid #aaa;
	text-align: center;
}
.footnote span {
	font-weight: var(--font-weight-bold);
	margin-right: 3px;
}

.fine-print {
	display: inline-block;
	font-size: 0.7rem;
}

.hint {
	color: #444;
	background-color: #fffacd;
	padding: 3px 8px;
	border-radius: var(--border-radius);
	font-size: 0.9rem;
}
.hint--success {
	color: #333;
	background-color: #cfc;
}
.hint--danger {
	color: #333;
	background-color: #fdd;
}
.input-form__data .hint {
	position: relative;
	top: -4px;
}

details summary {
	cursor: pointer;
}

.spacious-header {
	line-height: 2rem;
}
.spacious-header span {
	display: inline-block;
}

.ctxmenu {
	display: none;
	position: absolute;
	left: 300px;
	top: 100px;
	background-color: #fafafa;
	box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3);
	padding: var(--border-radius) 0;
	border-radius: var(--border-radius);
	z-index: 2;
}
.ctxmenu a {
	display: block;
	padding: 5px 15px;
	color: var(--color-fg);
	white-space: nowrap;
}
.ctxmenu a:hover {
	text-decoration: none;
	color: var(--color-btn-primary-fg);
	background-color: var(--color-btn-primary-bg);
}
.ctxmenu__separator {
	background-color: #eee;
	height: 1px;
	margin-top: 6px;
	margin-bottom: 6px;
}
.ctxmenu-arrow {
	display: none;
	position: absolute;
	width: 0;
	height: 0;
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-bottom: 7px solid #fafafa;
	z-index: 3;
}
.ctxmenu-arrow--reverse {
	border-top: 7px solid #fafafa;
	border-bottom: none;
}

.ctxmenu-tag-custom {
	color: var(--color-fg);
	padding: 3px 1px;
	margin: 0;
	background: none;
	border: none;
	border-radius: var(--border-radius);
	cursor: pointer;
	transition: all 300ms;
}
.ctxmenu-tag-custom:hover {
	background-color: #fff;
	box-shadow: 0 0 4px rgba(0, 0, 0, 0.1);
}
.ctxmenu-tag-custom:hover, .ctxmenu-tag-custom--open {
	background-color: var(--color-btn-primary-bg);
	color: var(--color-btn-primary-fg);
}
.ctxmenu-tag-custom span {
	height: 19px;
	transition: transform 200ms;
}
.ctxmenu-tag-custom--open span {
	transform: rotate(90deg);
	transform-origin: 11px 1px;
}

@-moz-document url-prefix() {
	.ctxmenu-tag-custom span {
		height: 16px;
	}
	.ctxmenu-tag-custom--open span {
		transform-origin: 12px 1px;
	}
}

.ctxmenu__profile-name {
	padding: 3px 15px 10px 15px;
	font-size: 0.8rem;
	font-weight: var(--font-weight-bold);
}

.dtable {
	display: grid;
}
.dtable__head, .dtable__data {
	background-color: var(--color-card-bg);
	padding: 10px 10px;
}
.dtable__sup-data {
	padding: 0 10px 10px 10px;
}
.dtable__head, .dtable__sup-head {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	font-weight: var(--font-weight-bold);
	font-size: 0.85rem;
}
.dtable__head, .dtable__head a, .dtable__head a:visited, .dtable__sup-head {
	color: var(--color-fg);
}
.dtable__head a:hover {
	color: var(--color-link);
	text-decoration: none;
}
.dtable__head span {
	color: var(--color-btn-primary-bg);
}
.dtable__head span.cb__on, .dtable__head span.cb__off {
	color: var(--color-fg);
}
.dtable--compact .dtable__head {
	text-transform: uppercase;
	padding-left: inherit;
	padding-top: inherit;
	padding-bottom: inherit;
	font-size: 0.75rem;
}
.dtable--compact .dtable__data {
	padding-left: inherit;
}
.dtable__lf, .dtable__lf-head {
	background-color: var(--color-card-line);
	height: 1px;
}
.dtable__lf-head {
	height: 2px;
}
.dtable__row {
	display: contents;
}
.dtable__row:hover > div {
	background-color: #f8f8f8;
}
.dtable__notes {
	font-size: 0.8rem;
	font-style: italic;
	color: #aaa;
	line-height: 2rem;
}
.dtable__notes span {
	color: var(--color-fg);
	font-weight: var(--font-weight-bold);
}

.data-block-column {
	display: inline-block;
	vertical-align: top;
	margin-right: 20px;
}

.input-form {
	display: grid;
	justify-content: start;
	grid-row-gap: 1.5rem;
	grid-column-gap: 2rem;
	grid-template-columns: max-content auto;
}
.input-form--compact {
	grid-row-gap: 0.8rem;
	grid-column-gap: 0.7rem;
}
.input-form__header {
	font-weight: var(--font-weight-bold);
	font-size: 0.85rem;
	line-height: 1.8rem;
}
.input-form__header .btn {
	font-weight: normal;
}
.input-form__data p:first-of-type {
	margin-top: 0;
}
.input-form__data p:last-of-type {
	margin-bottom: 0;
}
.input-form__data ul {
	padding-left: 1em;
	margin-left: 0;
	margin-top: 2px;
}
.input-form__data li {
	margin-bottom: 5px;
}

@media only screen and (max-width: 600px) {

	.input-form {
		display: block;
	}

	.input-form__header {
		margin-bottom: 5px;
	}

	.input-form__data {
		margin-bottom: 30px;
	}

}


.input-form__warning, .input-form__error, .input-form__success {
	color: #856404;
	background-color: #fff3cd;
	border: 1px solid #f2eaba;
	border-radius: var(--border-radius);
	padding: 0.7rem 1rem;
	margin: 0.5rem auto 1rem auto;
}
.input-form__error {
	color: #DC143C;
	background-color: #fff6f6;
	border-color: #fdd;
}
.input-form__error .material-icons {
	margin-right: 3px;
}
.input-form__error span {
	color: #500;
	margin-left: 5px;
}
.input-form__success {
	color: #060;
	background-color: #f9fff9;
	border-color: #bcb;
}
.input-form__success .material-icons {
	margin-right: 10px;
}

input[type=submit] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

input[type=text], input[type=password], input[type=date], input[type=time], textarea {
	font-family: inherit;
	font-size: 1rem;
	border: 1px solid #ced4da;
	border-radius: var(--border-radius);
	padding: 0.375rem 0.75rem;
	width: 20rem;
	max-width: calc(80vw - 2rem);
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
input[type=text]:focus, input[type=password]:focus, input[type=date]:focus, textarea:focus {
	border-color: #80bdff;
	box-shadow: 0 0 0 .2rem rgba(88, 103, 221, 0.25)
}
.readonly {
	background-color: #efefef;
}

input.pin {
	width: 160px;
	font-family: monospace;
	letter-spacing: 0.3rem;
	font-size: 1.25rem;
	text-align: center;
	padding: 0.5rem 0;
}

select {
	padding: 4px 7px;
	background: none;
	border: 1px solid #ced4da;
	border-radius: var(--border-radius);
	font-size: 1rem;
	font-family: inherit;
}

@-moz-document url-prefix() {
	select {
		padding-bottom: 5px;
	}
}

.table-page-header {
	display: flex;
}
.table-page-header__col-date {
	white-space: nowrap;
}
.table-page-header__col-text-filter {
	display: flex;
}
.table-page-header__col-text-filter input {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
	border-right: none;
	width: 220px;
}
.table-page-header__col-text-filter button {
	color: var(--color-fg);
	background-color: #ebe9f2;
	border: 1px solid #ced4da;
	border-top-left-radius: 0;
	border-top-right-radius: var(--border-radius);
	border-bottom-left-radius: 0;
	border-bottom-right-radius: var(--border-radius);
	cursor: pointer;
	padding: 2px 12px;
	transition: all 100ms;
}
.table-page-header__col-text-filter button:hover {
	color: #fff;
	border-color: var(--color-btn-primary-hover-bg);
	background-color: var(--color-btn-primary-hover-bg);
}
.table-page-header__col-filters {
	padding-top: 5px;
}
.table-page-header__col-calendar-to-list {
	margin: 5px 20px 0 20px;
}
.table-page-header__col-calendar-controls {
	white-space: nowrap;
	text-align: right;
	font-size: 0.85rem;
	padding-top: 8px;
}
.table-page-header__col-calendar-mode span,
.table-page-header__col-calendar-mode a {
	margin: 0 3px;
}
.table-page-header__col-calendar-mass-update {
	margin-top: 15px;
}
.table-page-header__col-calendar-gap {
	height: 20px;
}
.table-page-header__col-pagination {
	white-space: nowrap;
	text-align: right;
	padding-top: 4px;
}

.table-page-header__filter {
	display: inline-block;
	vertical-align: top;
	background-color: var(--color-bg);
	line-height: 27px;
	border-radius: 5px;
	overflow: hidden;
	margin-right: 7px;
	margin-bottom: 6px;
}
.table-page-header__filter__container {
	display: flex;
}
.table-page-header__filter__title {
	font-size: 0.7rem;
	color: var(--color-btn-primary-fg);
	background-color: var(--color-btn-primary-bg);
	padding: 0 10px;
}
.table-page-header__filter__value {
	font-size: 0.85rem;
	padding-left: 12px;
	padding-right: 12px;
}
.table-page-header__filter__close {
	color: var(--color-fg);
	background-color: #d6eaf8;
	cursor: pointer;
	transition: all 200ms;
	padding-left: 4px;
	padding-right: 4px;
}
.table-page-header__filter__close:hover {
	color: #fff;
	background-color: var(--color-btn-primary-hover-bg);
}
.table-page-header__filter__close span {
	position: relative;
	top: 3px;
}
.table-page-header__btn-new-container {
	display: inline-block;
	vertical-align: top;
}
#table-page-header__btn-new {
	padding: 0 3px;
	padding: 2px 3px 0 3px;
	border: none;
	background-color: var(--color-btn-primary-bg);
	line-height: 24px;
}
#table-page-header__btn-new:hover {
	background-color: var(--color-btn-primary-hover-bg);
}
#table-page-header__btn-new span {
	position: relative;
	top: 6px;
}

.table-page-header__alphabet a, .table-page-header__alphabet a:visited {
	display: inline-block;
	color: var(--color-fg);
	background-color: #ebe9f2;
	min-width: 1.5rem;
	text-align: center;
	border-radius: var(--border-radius);
}
.table-page-header__alphabet a.selected {
	color: #fff;
	background-color: var(--color-btn-primary-bg);
	text-decoration: none;
}
.table-page-header__alphabet a:hover {
	color: #fff;
	background-color: var(--color-btn-primary-hover-bg);
	text-decoration: none;
}

.btn {
	display: inline-block;
	white-space: nowrap;
	cursor: pointer;
	padding: 0.375rem 0.75rem;
	border-radius: var(--border-radius);
	font-size: 0.9rem;
	line-height: 1.2rem;
	border: 1px solid var(--color-btn-default-bg);
	background: var(--color-btn-default-bg);
	transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out
}
.btn, a.btn, a.btn:visited {
	color: var(--color-btn-default-fg);
	text-align: center;
}
.btn:hover {
	border-color: var(--color-btn-default-hover-bg);
	background-color: var(--color-btn-default-hover-bg);
}
a.btn:hover {
	text-decoration: none;
}

.btn-sm, a.btn-sm {
	padding: 4px 5px;
	font-size: 0.75rem;
}

.btn-primary, a.btn-primary {
	color: var(--color-btn-primary-fg);
	border-color: var(--color-btn-primary-bg);
	background-color: var(--color-btn-primary-bg);
}
.btn-primary:hover, a.btn-primary:hover {
	border-color: var(--color-btn-primary-hover-bg);
	background-color: var(--color-btn-primary-hover-bg);
}

.btn-danger, a.btn-danger {
	color: var(--color-btn-danger-fg);
	border-color: var(--color-btn-danger-bg);
	background-color: var(--color-btn-danger-bg);
}
.btn-danger:hover, a.btn-danger:hover {
	border-color: var(--color-btn-danger-hover-bg);
	background-color: var(--color-btn-danger-hover-bg);
}
.btn-moderate, a.btn-moderate, a.btn-moderate:visited {
	color: #aaa;
	border: 1px solid #ddd;
	background-color: #fff;
}
.btn-moderate-highlight, a.btn-moderate-highlight, a.btn-moderate-highlight:visited {
	color: #555;
	background-color: #f5f5ff;
}
.btn-moderate:hover, a.btn-moderate:hover {
	color: #555;
	border: 1px solid #aaa;
	background-color: #fff;
}
.btn-moderate-highlight:hover, a.btn-moderate-highlight:hover {
	background-color: #e5e5e5;
}
.btn-disabled {
	opacity: 0.5;
}

.input-form .btn-primary, .input-form .btn-danger,
.input-form a.btn-primary, .input-form a.btn-danger {
	min-width: 80px;
}

.no-records {
	font-size: 1rem;
	text-align: center;
	margin: 4rem auto;
}

.filter-tag {
	color: #777;
	font-size: 0.80rem;
	display: inline-block;
	background-color: #f2f2f2;
	border: 1px solid #e8e8e8;
	padding: 2px 6px 2px 10px;
	border-radius: 5px;
	cursor: pointer;
	margin: 0 3px 3px 3px;
}
.filter-tag:hover {
	color: #333;
	border: 1px solid #bbb;
}
.filter-tag span {
	font-size: 0.7rem;
	color: #fff;
	background: #aaa;
	border-radius: 10px;
	padding: 0 6px;
	margin-left: 4px;
}
.filter-tag--warning {
	background-color: #ffc;
}
.filter-tag--selected {
	color: #55f;
	font-weight: var(--font-weight-bold);
	background-color: #f4f4ff;
	border: 1px solid #d6eaf8;
}
.filter-tag--selected:hover {
	color: #00f;
	border: 1px solid #bbf;
}
.filter-tag--selected span {
	background-color: #55f;
}

.group-button {
	display: inline-block;
	border: 1px solid #ddd;
	padding: 7px 15px;
	margin-left: -1px;
	user-select: none;
}
.group-button:first-of-type {
	border-top-left-radius: var(--border-radius);
	border-bottom-left-radius: var(--border-radius);
}
.group-button:last-of-type {
	border-top-right-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
}
.group-button--selected {
	background-color: #eef;
}
a.group-button, a.group-button:visited {
	color: var(--color-fg);
	text-decoration: none;
}
a.group-button:hover {
	box-shadow: 0 0 7px rgba(0, 0, 0, 0.15);
}
a.group-button--selected:hover {
	box-shadow: none;
	cursor: default;
}

.enhanced-input-form {
	display: inline-block;
	background-color: #f8f8e0;
	border-radius: var(--border-radius);
}
.enhanced-input-form__helper {
	color: #444;
	padding-left: 10px;
	padding-right: 10px;
	line-height: 1.5rem;
}
.enhanced-input-form__helper__caption {
	font-size: 0.8rem;
}
.enhanced-input-form__helper button {
	float: right;
	color: #fff;
	font-size: 0.75rem;
	font-weight: var(--font-weight-heavy-bold);
	line-height: 1.5rem;
	cursor: pointer;
	background-color: #aad;
	border: none;
	border-radius: var(--border-radius);
	margin-right: -10px;
	transition: all 300ms;
}
.enhanced-input-form__helper button:hover {
	background-color: #00f;
}
.enhanced-input-controls button {
	margin-top: 10px;
	margin-right: 5px;
	padding: 3px 10px 2px 10px;
}

.input-switch {
	display: inline-block;
	vertical-align: top;
	background-color: #ccc;
	width: 48px;
	height: 26px;
	border-radius: 14px;
	padding: 1px;
	cursor: pointer;
	position: relative;
	transition: background-color 200ms;
}
.input-switch__button {
	position: absolute;
	background-color: #fff;
	left: 1px;
	top: 1px;
	width: 26px;
	height: 26px;
	border-radius: 13px;
	box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
	transition: left 200ms;
}
body.loading .input-switch__button {
	transition: none;
}
.input-switch__label {
	display: inline-block;
	vertical-align: top;
	margin: 2px 0 0 10px;
}
.input-switch--on {
	background-color: #32CD32;
}
.input-switch--on .input-switch__button {
	left: calc(100% - 27px);
}
.input-switch--off {
	background-color: #DC143C;
}
.input-switch--off .input-switch__button {
}


.tab-header div {
	display: inline-block;
	position: relative;
	border-bottom: 1px solid #00BFFF;
	margin-right: 10px;
	cursor: pointer;
	padding-bottom: 0;
	top: 0;
	transition: top 300ms;
}
.tab-header div.tab--selected, .tab-header div:hover {
	padding-bottom: 3px;
	top: -5px;
}
.tab-header div.tab--selected {
	border-bottom: 3px solid var(--color-btn-primary-bg);
}
.tab-header div:hover {
	border-bottom: 3px solid var(--color-btn-primary-hover-bg);
}
div.tab-header--hidden {
	display: none;
}


label.cb {
	display: flex;
}
.dtable__head label.cb {
	margin-bottom: 19px;
}
.dtable__data label.cb {
	margin-top: 7px;
}
label.cb input {
	display: none;
}
label.cb .cb__on {
	display: none;
}
label.cb input:checked ~ .cb__on {
	display: block;
}
label.cb input:checked ~ .cb__off {
	display: none;
}

.separator {
	height: 1px;
	background-color: #e3e3e3;
	margin: 25px 7% 20px 7%;
}
.contact-separator {
	height: 1px;
	background-color: #e3e3e3;
	margin: 10px 0;
}


/* month control */

.month-control-area {
	text-align: center;
}
.month-control-area input {
	width: 100px;
	text-align: center;
	margin: auto 10px;
}


/* typography - message */

.message-wrapper {
	width: 400px;
	max-width: calc(90vw - 20px);
	margin: 20vh auto 0 auto;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
	padding: 15px 10px;
	background-color: #fff;
	border-radius: var(--border-radius);
}
.message-wrapper p {
	margin-bottom: 0;
}
.message-error, .message-success, .message-warning {
	border-left: 3px solid #f00;
	padding-left: 15px;
}
.message-error .message-title, .message-success .message-title, .message-warning .message-title {
	font-size: 1.2rem;
}
.message-error {
	border-left-color: #f00;
}
.message-error .message-title {
	color: #f00;
}
.message-success {
	border-left-color: #090;
}
.message-success .message-title {
	color: #090;
}
.message-warning {
	border-left-color: #DAA520;
}
.message-warning .message-title {
	color: #DAA520;
}
.message-error ul, .message-success ul, .message-warning ul {
	padding-left: 1em;
	margin-left: 0;
}

.message-page-top .message-wrapper {
	margin-top: 0;
	margin-bottom: 1rem;
}
.card .message-wrapper {
	margin-top: 2rem;
	background: #fcfcfc;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
	border: 1px solid #fff;
}

.flow-message .input-form__error {
	display: inline-block;
}

.flow-message .message-page-top .message-wrapper {
	display: inline-block;
	margin-top: 20px;
	margin-bottom: 20px;
	margin-left: 0;
	width: auto;
}

.flexible-form form {
}
.flexible-form div {
	margin: 30px 0;
}
.flexible-form label {
	display: block;
	margin-bottom: -1rem;
}
.flexible-form--error {
	border-left: 3px solid #f00;
	padding-left: 12px;
}
.flexible-form--error span {
	color: #c00;
	margin-right: 5px;
}
.flexible-form--success {
	color: #373;
	font-weight: var(--font-weight-bold);
}
div.flexible-form--controls {
	margin-top: 50px;
}

.page-message {
	margin-top: 15vh;
}
.page-message__back-link {
	text-align: center;
	margin-top: 30px;
}


/* layout - content */

.content-wrapper {
	display: flex;
	margin: 20px;
}
.sidebar-placeholder {
	min-width: 205px;
	max-width: 205px;
}
.content {
	flex-grow: 1;
}
.sidebar {
	white-space: nowrap;
	background-color: #242939;
	border-radius: var(--border-radius);
	padding-top: 10px;
	padding-bottom: 15px;
	box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
	width: 180px;
	position: fixed;
	left: 20px;
	top: 20px;
	max-height: calc(100vh - 90px);
	overflow: auto;
	scrollbar-width: thin;
	scrollbar-color: #cdcdcd #fff;
	z-index: 2;
}
.sidebar::-webkit-scrollbar {
	width: 6px;
	background-color: #fff;
}
.sidebar::-webkit-scrollbar-thumb {
	background-color: #cdcdcd;
	outline: 1px solid #cdcdcd;
}
.sidebar__separator {
	height: 1px;
	background-color: #2e3449;
	margin-top: 15px;
	margin-bottom: 10px;
}
.sidebar__header {
	padding: 0 20px;
}
.sidebar__header img {
}
.sidebar__content {
}
.sidebar__section__title {
	text-transform: uppercase;
	color: #606a8c;
	font-size: 0.7rem;
	margin-top: 20px;
	padding: 0 20px;
	line-height: 2rem;
}
.sidebar__content i {
	margin-right: 2px;
	position: relative;
	top: 3px;
}
.sidebar__content a, .sidebar__content a:visited {
	display: block;
	color: #c0c4d1;
	font-size: 0.8rem;
	padding: 0 20px;
	line-height: 2.4rem;
}
.sidebar__content a:hover {
	color: #fff;
	text-decoration: none;
	background-color: #373c4b;
}
.sidebar__content--selected {
	background-color: #1b1e2a;
}
.sidebar a .material-icons, .sidebar a:visited .material-icons, .sidebar a:hover .material-icons {
	color: #c0c4d1;
}

.sidebar__footer {
	display: none;
}
.sidebar .sys-ctls__feedback {
	position: relative;
	top: 5px;
}

.sidebar__footer-user {
	color: #c0c4d1;
	font-size: 0.8rem;
}
.sidebar__footer-user__description {
	padding: 0 20px;
	margin-bottom: 5px;
}
.sidebar__footer-user a, .sidebar__footer-user a:visited {
	color: #c0c4d1;
	display: block;
	padding: 0 20px;
	line-height: 2.4rem;
}
.sidebar__footer-user a:hover {
	color: #fff;
	text-decoration: none;
	background-color: #373c4b;
}

.sidebar__bgap {
	height: 30px;
}

.sidebar.sidebar--sm {
	visibility: hidden;
	left: 0px;
	opacity: 0;
	transition: all 300ms;
}
.loading .sidebar.sidebar--sm {
	transition: none;
}
.sidebar.sidebar--sm.sidebar--open {
	visibility: visible;
	left: 20px;
	opacity: 1;
}

.sidebar-backdrop {
	display: none;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(255, 255, 255, 0.9);
	z-index: 1;
}

.header__menu-button {
	display: inline-block;
	width: 40px;
	height: 58px;
	background: url(../images/icon-menu.svg) no-repeat center 16px;
	cursor: pointer;
	margin-right: 7px;
	display: none;
}

@media only screen and (max-width: 840px) {

	.sidebar-placeholder {
		display: none;
	}

	.header__menu-button {
		display: inline-block;
	}

}


header {
	display: flex;
}
.header__h1-aux {
	padding-left: 20px;
}
.header__h1-aux__button {
	position: relative;
	top: 12px;
	padding: 4px 3px;
}
a.header__h1-aux__button .material-icons, a.header__h1-aux__button:visited .material-icons {
	color: #fff;
}
.header__h1-aux__link {
	position: relative;
	top: 16px;
}
.header__supplementary {
	flex-grow: 1;
	text-align: center;
	padding-top: 20px;
}
.header__supplementary a {
	display: inline-block;
}
.header__user-info {
}
a .material-icons.header__user-info__utility, a .material-icons.header__user-info__utility:visited {
	display: inline-block;
	vertical-align: top;
	color: #aaa;
	margin: 20px 10px 0 0;
}
header a .material-icons.sys-ctls__feedback {
	position: relative;
	top: 9px;
}
a .material-icons.header__user-info__utility:hover {
	color: var(--color-link);
}
.header__user-info__profile {
	display: inline-block;
	width: 50px;
	margin-left: 5px;
	border: 1px solid #bbb;
	border-radius: 50%;
	box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
}

.card {
	box-shadow: 0 0 15px rgba(0, 0, 0, 0.06);
	background-color: var(--color-card-bg);
	border-radius: var(--border-radius);
	padding-top: 1px;
	padding-bottom: 1px;
	margin-bottom: 20px;
}
.card__section {
	margin: 1.5rem;
}
.card__separator {
	height: 1px;
	background-color: var(--color-card-line);
	margin: 15px auto;
}
.card h2 {
	font-weight: normal;
	margin: 0 0 20px 0;
}

.card__links h2 {
	margin: 50px 0 10px 0;
}
.card__links:first-of-type h2 {
	margin-top: 0;
}
.card__links h3 {
	font-size: 1rem;
	margin: 15px 0 0 0;
}
.card__links .no-logs {
	margin-left: 20px;
}
.card__links a, .card__links a:visited {
	display: inline-block;
	padding: 8px 20px;
	margin: 10px 10px 10px 0;
	color: var(--color-fg);
	border: 1px solid #eee;
	border-radius: var(--border-radius);
	transition: all 200ms;
}
.card__links a:hover {
	text-decoration: none;
	background-color: #fff;
	border: 1px solid #fff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.card.minicard {
	padding-top: 0;
}
.minicard {
	display: inline-block;
	vertical-align: top;
	margin-right: 20px;
	max-width: 300px;
}
.minicard h2 {
	font-size: 1.2rem;
	white-space: nowrap;
	color: #fff;
	background-color: #335c81;
	border-top-left-radius: var(--border-radius);
	border-top-right-radius: var(--border-radius);
	margin-bottom: -0.7rem;
	text-align: center;
	padding: 1rem 20px;
	border-bottom: 1px solid #f8f8f8;
}
.minicard--alert h2 {
	color: #fff;
	background-color: #d00;
}
.minicard--warning h2 {
	color: #fff;
	background-color: #cc7a00;
}
.minicard--notice h2 {
	color: #fff;
	background-color: #0073e6;
}
.minicard--tip h2 {
	color: #fff;
	background-color: #080;
}
.minicard h3 {
	font-size: 1.1rem;
	margin: 10px 0 10px 0;
}
.minicard h4 {
	color: #99c;
	font-weight: normal;
	border-bottom: 1px solid #ccf;
	margin: 20px 0 0 0;
}
.minicard p {
	margin: 0.6rem 0;
	line-height: 1.1rem;
}

.mass-update {
	position: fixed;
	top: -100px;
	left: 400px;
	display: inline-block;
	background-color: #ffe;
	border-radius: var(--border-radius);
	box-shadow: 0 3px 7px rgba(0, 0, 0, 0.15);
	padding: 12px 25px;
	visibility: hidden;
	opacity: 0;
	transition: 200ms all;
	z-index: 2;
}
.mass-update--active {
	visibility: visible;
	opacity: 1;
	top: -4px;
}
.mass-update select, .mass-update button {
	margin-left: 25px;
}

.password-toggle {
	display: inline-block;
	cursor: pointer;
	margin-left: 10px;
}
.password-toggle--show span:nth-child(2) {
	display: none;
}
.password-toggle--hide span:nth-child(1) {
	display: none;
}
.password-container {
	padding-left: 40px;
}

.password-quality-indicators {
	font-size: 0.8rem;
	line-height: 1.5rem;
}
.password-quality-indicators__inner {
	display: inline-block;
	text-align: left;
}
.password-quality-indicators__error {
	display: none;
	color: #f00;
	font-size: 0.9rem;
	margin-top: 9px;
}
.password-quality-indicators__caption {
	margin: 8px 0 2px 0;
}
.password-quality-indicators__item__success-icon,
.password-quality-indicators__item__failure-icon {
	position: relative;
	top: 4px;
	margin-right: 3px;
}
.password-quality-indicators__item__success-icon {
	color: #0b0;
}
.password-quality-indicators__item__failure-icon {
	color: #f00;
}
.password-quality-indicators__item--success {
	color: #0a0
}
.password-quality-indicators__item--success .password-quality-indicators__item__failure-icon {
	display: none;
}
.password-quality-indicators__item--failure {
}
.password-quality-indicators__item--failure .password-quality-indicators__item__success-icon {
	display: none;
}


.badge {
	display: inline-block;
	font-size: 0.65rem;
	font-weight: var(--font-weight-heavy-bold);
	padding: 4px 10px 3px 10px;
	border-radius: 7px;
	margin-bottom: 3px;
}
.badge-primary {
	color: #fff;
	background-color: #007bff;
}
.badge-secondary {
	color: #fff;
	background-color: #6c757d;
}
.badge-success {
	color: #fff;
	background-color: #28a745;
}
.badge-danger {
	color: #fff;
	background-color: #dc3545;
}
.badge-warning {
	color: #212529;
	background-color: #fff3cd;
	border: 1px solid #f2eaba;
	padding: 3px 9px 2px 9px;
}
.badge-info {
	color: #fff;
	background-color: #17a2b8;
}
.badge-light {
	font-weight: normal;
	color: #212529;
	background-color: #f8f9fa;
	border: 1px solid #e3e3e3;
	padding: 3px 10px 2px 10px;
}
.badge-dark {
	color: #fff;
	background-color: #343a40;
}
.badge-ls-taught {
	color: #fff;
	background-color: #82bb42;
}
.badge-ls-makeup {
	color: #fff;
	background-color: #477414;
}
.badge-lsc-student {
	color: #fff;
	background-color: #2b6fd5;
}
.badge-lsc-teacher {
	color: #fff;
	background-color: #038e8b;
}
.badge-lsc-weather {
	color: #fff;
	background-color: #009dd8;
}
.badge-lsc-holiday {
	color: #fff;
	background-color: #f9a124;
}
.badge-lsc-lesson-day {
	color: #fff;
	background-color: #d32c46;
}
.badge-lsc-every-other-week {
	color: #fff;
	background-color: #343a40;
}
.badge-lsc-other {
	color: #fff;
	background-color: #e4354f;
}

.profile-table {
	display: grid;
	justify-content: start;
}
.profile-table div {
	margin-right: 17px;
	margin-bottom: 12px;
}
.profile-table__primary {
	color: #ffe200;
}
.profile-table__row {
	display: contents;
}


/* layout - page-info */

.page-info {
	display: flex;
}
.page-info__length {
	flex-grow: 1;
	text-align: center;
}


/* layout - pagination */

form.pagination {
	display: block;
}
ul.pagination {
	list-style-type: none;
	display: inline-block;
	margin: 0;
	padding: 0;
	white-space: nowrap;
}
ul.pagination li {
	display: inline-block;
}
.pagination a {
	display: inline-block;
	border-radius: var(--border-radius);
	padding: 3px 5px;
	min-width: 20px;
	text-align: center;
}
.pagination a, .pagination a:visited {
	color: var(--color-fg);
	transition: all 150ms;
}
.pagination a:hover {
	color: #fff;
	background-color: var(--color-btn-primary-hover-bg);
	text-decoration: none;
}
input[type=text].pagination__input {
	text-align: center;
	width: 1ch;
	min-width: 30px;
	font-size: 0.9rem;
	padding-top: 3px;
	padding-bottom: 3px;
	border: 1px solid #eee;
}
input[type=text].pagination__input:focus {
	border: 1px solid #80bdff;
}
.pagination__gap {
	color: #ccc;
	font-size: 1.3rem;
}
.pagination__arrow {
	background: #ebe9f2;
	border-radius: var(--border-radius);
}
.pagination__arrow--disabled {
	opacity: 0.4;
}

form.page-length input {
	margin-right: 5px;
}

a.range-arrow, a.range-arrow:visited {
	color: var(--color-fg);
	background-color: #ebe9f2;
	border-radius: var(--border-radius);
	padding: 4px 13px;
}
a.range-arrow:hover {
	color: #fff;
	background-color: var(--color-btn-primary-hover-bg);
	text-decoration: none;
}

.date-year {
	position: relative;
	top: 2px;
	font-size: 1.3rem;
	margin-left: 25px;
	margin-right: 25px;
}


form.pagination-large {
	display: block;
}
form.pagination-medium {
	display: none;
}
form.pagination-small {
	display: none;
}

@media only screen and (max-width: 840px) {
	form.pagination-large {
		display: none;
	}
	form.pagination-medium {
		display: block;
	}
}

@media only screen and (max-width: 480px) {
	form.pagination-medium {
		display: none;
	}
	form.pagination-small {
		display: block;
	}
}


/* basic pagination */

.basic-pagination {

}
.basic-pagination-section {
	display: inline-block;
}
.basic-pagination-data {
	border-radius: var(--border-radius);
	padding: 3px 10px;
	cursor: pointer;
	transition: all 300ms;
}
.basic-pagination-data:hover {
	background-color: #eee;
}
.basic-pagination-items {
	margin-right: 10px;
}
.basic-pagination-page {

}


/* page - HTTP status */

.http404 {
	text-align: center;
	margin-top: 25vh;
}


/* page - front page */

.fp-body {
	background: url(../images/fp-back-wLarge.jpg) no-repeat center center;
	background-size: cover;
	text-align: center;
	min-height: 100vh;
	margin: 0;
	padding: 0;
}
.fp-body__h1-wrapper {
	padding-top: 15vh;
	margin-bottom: 40px;
}
.fp-body__h1 {
	display: inline-block;
}
.fp-body__h1 img {
	width: 334px;
}

.fp__input-row {
	margin-bottom: 15px;
}
.fp-body input[type=text], .fp-body input[type=password] {
	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
}
.fp-body input[type=submit] {
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.8);
}
.fp__input-error {
	display: inline-block;
	background-color: #fff;
	border-left: 4px solid #f00;
	padding: 0.5rem 1.5rem;
	max-width: calc(90vw - 3rem);
	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
}
.fp__input-error span {
	color: #f00;
}
.fp-login-helpers {
	margin: 30px 0 30px 0;
}
.fp-login-helpers a, .fp-login-helpers a:visited {
	font-size: 0.9rem;
	color: #fff;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
}

.fp__welcome {
	display: inline-block;
	color: #fff;
	background-color: rgba(0, 0, 0, 0.6);
	border-radius: 10px;
	padding: 1rem 1rem 0.5rem 1rem;
	width: calc(90vw - 2rem);
	max-width: 400px;
}

.fp__welcome a {
	margin-left: 10px;
}
.fp__welcome a, .fp__welcome a:visited {
	color: #bf0;
}

@media only screen and (max-width: 840px) {
	.fp-body {
		background-image: url(../images/fp-back-w840.jpg);
	}
}

@media only screen and (max-width: 480px) {
	.fp-body h1 {
		padding-top: 15vh;
	}
}


/* dialog pages */

.dialogpage__logo {
	margin: 10vh 0 20px 0;
	text-align: center;
}
.dialogpage__logo img {
	width: 180px;
	max-width: 80vw;
}
.dialogpage__main-message {
	margin: 30px 0;
	text-align: center;
}
.dialogpage__main-message__success {
	color:#060;
	margin-top: 50px;
}
.dialogpage__main-message--error {
	color: #822;
}
.dialogpage__main-message__error-header {
	font-weight: var(--font-weight-bold);
	display: inline-block;
	border-bottom: 1px solid #f00;
	padding: 0 15px 10px 15px;
	margin-top: -20px;
	margin-bottom: -5px;
	color: #c00;
}
.dialogpage__main-error-line {
	color: #c00;
	max-width: 600px;
	margin: 0 auto;
}
.dialogpage__control-title {
	margin: 30px 0 10px 0;
	font-size: 1.2rem;
}
.dialogpage__control-aux-title {
	font-size: 0.9rem;
	margin: 25px 0 5px 0;
}
.dialogpage__control-buttons {
	margin: 30px 0 60px 0;
}


/* dialog windows */

.modal-window__backdrop {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.8);
	z-index: 20;
}
.modal-window__backdrop--hidden {
	display: none;
}
.modal-window {
	display: flex;
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	align-items: center;
	justify-content: center;
	z-index: 21;
}
.modal-window--hidden {
	display: none;
}
.modal-window__hspacer {
	flex-grow: 2;
}
.modal-window__document {
	flex-grow: 1;
	width: auto;
	max-width: 85vw;
	background-color: #fff;
	border-radius: var(--border-radius);
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.7);
}
.modal-window__header {
	border-bottom: 1px solid #ddd;
	display: flex;
}
#modal-window__title {
	margin: 0;
	font-size: 1rem;
	font-weight: var(--font-weight-bold);
	padding: 10px 20px;
}
.modal-window__header__gap {
	flex-grow: 1;
}
.modal-window__status-switch {
	cursor: pointer;
	text-align: center;
	padding: 0 10px;
}
.modal-window__status-switch:hover {
	background-color: var(--color-bg);
}
.modal-window__status-switch__header {
	height: 8px;
	font-size: 0.7rem;
	margin-top: 6px;
	text-transform: uppercase;
	opacity: 0;
	transition: all 200ms;
}
.modal-window__status-switch:hover .modal-window__status-switch__header {
	height: 14px;
	opacity: 1;
}
.modal-window__status-switch__active-only, .modal-window__status-switch__any-status {
	font-size: 0.8rem;
}
.modal-window__status-switch__active-only {
	display: none;
	color: #070;
}
.modal-window__status-switch--active .modal-window__status-switch__active-only {
	display: block;
}
.modal-window__status-switch__any-status {
	display: none;
	color: #f55;
}
.modal-window__status-switch--any-status .modal-window__status-switch__any-status {
	display: block;
}
.modal-window__btn-clear {
	padding-top: 8px;
}
.modal-window__back, .modal-window__clear, .modal-window__close {
	color: #aaa;
	border: none;
	background: none;
	cursor: pointer;
	transition: all 200ms;
}
.modal-window__clear, .modal-window__close {
	margin-left: 10px;
	padding-left: 8px;
	padding-right: 8px;
}
.modal-window__back:hover, .modal-window__clear:hover, .modal-window__close:hover {
	color: #888;
	background-color: var(--color-bg);
}
.modal-window__back:hover {
	border-top-left-radius: var(--border-radius);
}
.modal-window__close:hover {
	border-top-right-radius: var(--border-radius);
}
.modal-window__body {
	padding: 10px;
	max-height: calc(90vh - 40px);
	overflow: auto;
}
.modal-window__body h2 {
	font-weight: normal;
}
.modal-window__please-wait {
	text-align: center;
	margin: 30px auto;
}
.modal-window__body__no-results {
	text-align: center;
	color: #888;
	margin: 10px auto;
}
.modal-window__error {
	display: none;
	margin-top: 0.5rem;
	margin-bottom: 0.5rem;
	padding: 0.4rem 0.6rem;
	text-align: center;
	color: #f00;
}
.modal-window__body__search-text {
	margin-top: 5px;
	margin-bottom: 10px;
}
input.modal-window__body__search-text {
	width: calc(100% - 1.50rem);
}
.modal-window__body__select {
	max-height: calc(100vh - 300px);
	overflow: auto;
}
.modal-window__body__select div {
	cursor: pointer;
	padding: 4px 10px;
	color: #007bff;
	border-bottom: 1px solid rgba(255, 255, 255, 0);
}
.modal-window__body__select div:hover {
	background-color: #f5f5f5;
	border-bottom: 1px solid #007bff;
}
.modal-window__body__select .modal-window__body__select__option--header,
.modal-window__body__select .modal-window__body__select__option--header:hover {
	border: none;
	cursor: default;
	background: none;
	color: var(--color-fg);
	text-transform: uppercase;
	font-size: 0.75rem;
	font-weight: var(--font-weight-bold);
	margin-top: 20px;
}
.modal-window__body__select .modal-window__body__select__option--disabled,
.modal-window__body__select .modal-window__body__select__option--disabled:hover {
	border: none;
	cursor: default;
	background: none;
	color: var(--color-fg);
	opacity: 0.5;
}

.modal-window__feedback {
	text-align: center;
	margin: 10px;
}
.modal-window__feedback textarea {
	display: block;
	width: calc(100% - 1.5rem);
	margin-bottom: 15px;
}

.modal-window__instruments__items {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	overflow: auto;
}
.modal-window__instruments__items label {
	display: inline-block;
	margin: 5px;
	cursor: pointer;
}

.modal-window__instruments__save-area {
	text-align: center;
	margin: 20px auto 10px auto;
}
.modal-window__instruments__btn-save {
	padding-left: 30px;
	padding-right: 30px;
}

@media only screen and (max-width: 800px) {
	.modal-window__instruments__items {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media only screen and (max-width: 600px) {
	.modal-window__instruments__items {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media only screen and (max-width: 400px) {
	.modal-window__instruments__items {
		grid-template-columns: repeat(1, 1fr);
	}
}


/* comments */

.comments {
	font-size: 0.8rem;
	font-weight: normal;
}
.comments span {
	font-size: 0.65rem;
	font-weight: var(--font-weight-heavy-bold);
	margin-right: 5px;
}


/* transaction log */

.mini-transaction-log {
	font-size: 0.8rem;
	background-color: #f6f6f6;
	padding: 10px 10px 1px 10px;
	margin-top: 10px;
}
.mini-transaction-log p {
	margin: 0;
}
.mini-transaction-log ul {
	padding-left: 1em;
	margin-left: 0;
}
.mini-transaction-log li {
	margin-top: 5px;
}


/* calendar */

.calendar {
	display: grid;
	grid-row-gap: 1px;
	grid-column-gap: 1px;
	background-color: #f3f3f3;
	border: 1px solid #f3f3f3;
	margin-top: -5px;
}
.calendar--month-layout,
.calendar--week-layout {
	grid-template-columns: repeat(7, 1fr);
}
.calendar--day-layout {
	grid-template-columns: 1fr;
}
.calendar--hour-slot-layout {
	margin-left: 45px;
}
.calendar__header {
	text-align: center;
	font-size: 0.9rem;
	font-weight: var(--font-weight-bold);
	background-color: #fff;
}
.calendar__header__month-day {
	padding: 12px 0;
}
.calendar--hour-slot-layout .calendar__header {
	height: 68px;
}
.calendar__header__week-day-name {
	margin-top: 0px;
	font-size: 0.85rem;
	line-height: 0.95rem;
	transition: all 300ms;
}
.calendar__header__week-date {
	font-size: 0.85rem;
	line-height: 0.95rem;
	transition: all 300ms;
}
.calendar--single-mode .calendar__header__week-day-name {
	margin-top: 12px;
	font-size: inherit;
	line-height: inherit;
}
.calendar--single-mode .calendar__header__week-date {
	font-size: inherit;
	line-height: inherit;
}

.calendar__day__select-btn-month-wrapper {
	flex-grow: 1;
	text-align: center;
	height: 22px;
}
.calendar__day__select-btn-day-wrapper {
	text-align: center;
	padding: 7px 0;
}
.calendar--single-mode .calendar__day__select-btn-day-wrapper {
	padding: 0;
}
.calendar__day__select-btn {
	transition: all 300ms;
	overflow: hidden;
	height: 22px;
	padding-top: -6px;
}
.calendar--single-mode .calendar__day__select-btn {
	opacity: 0;
	height: 0;
}
.calendar__day__select-btn span {
	cursor: pointer;
}

.calendar__hour-slot {
	min-height: 30px;
	background-color: #fff;
}
.calendar__hour-slot--na {
	background: repeating-linear-gradient(-45deg, #fff, #fff 5px, #f7f7f7 5px, #f7f7f7 10px);
}
.calendar__hour-slot span {
	display: inline-block;
	font-size: 12px;
	color: #bbb;
	background-color: #fff;
	position: relative;
	left: -45px;
	top: -14px;
	padding: 0 3px;
}
.calendar__day-wrapper {
	background-color: #fff;
}
.calendar__day {
	padding: 5px 10px 10px 10px;
	background-color: #fff;
	min-height: 80px;
}
.calendar__day--out-of-range {
	opacity: 0.3;
}
.calendar__day__title {
	display: flex;
}
.calendar__day--current-day .calendar__day__number {
	font-weight: var(--font-weight-heavy-bold);
}
.calendar__day__content {
	padding-top: 8px;
}
.calendar__cell--current-day {
	background-color: #f0f8ff;
}
.calendar__lesson--selected .badge {
	box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.8);
}
.calendar__lesson .badge a, .calendar__lesson .badge a:visited {
	color: #fff;
	font-weight: var(--font-weight-bold);
}
.calendar__lesson .badge-light a, .calendar__lesson .badge-light a:visited {
	color: #000;
}

.calendar__info {
	margin-top: 10px;
	font-size: 0.75rem;
}
.calendar__info-bar {
	display: flex;
	margin-top: 2px;
}
.calendar__info-bar:nth-child(2) {
	margin-top: 5px;
}
.calendar__info-bar div {
	height: 8px;
}
.calendar__info-bar__perf-on {
	background-color: #007bff;
}
.calendar__info-bar__perf-off {
	background-color: #e3e3e3;
}
.calendar__info-bar__overall-status-none {
	background-color: #e3e3e3;
}
.calendar__info-bar__overall-status-taught {
	background-color: #82bb42;
}
.calendar__info-bar__overall-status-madeup {
	background-color: #477414;
}
.calendar__info-bar__overall-status-canceled {
	background-color: #dc3545;
}
.calendar__info-bar__cancel-status-na {
	background-color: #e3e3e3;
}
.calendar__info-bar__cancel-status-student {
	background-color: #2b6fd5;
}
.calendar__info-bar__cancel-status-teacher {
	background-color: #038e8b;
}
.calendar__info-bar__cancel-status-weather {
	background-color: #009dd8;
}
.calendar__info-bar__cancel-status-holiday {
	background-color: #f9a124;
}
.calendar__info-bar__cancel-status-lessonday {
	background-color: #d32c46;
}
.calendar__info-bar__cancel-status-everyotherweek {
	background-color: #343a40;
}
.calendar__info-bar__cancel-status-other {
	background-color: #e4354f;
}
.calendar__info-bar__cancel-status-unknown {
	background-color: #707;
}
.calendar__info-bar__bill-status-paid {
	background-color: #6B8E23;
}
.calendar__info-bar__bill-status-failed {
	background-color: #f00;
}
.calendar__info-bar__bill-status-invoiced {
	background-color: #1E90FF;
}
.calendar__info-bar__bill-status-bill {
	background-color: #00FA9A;
}
.calendar__info-bar__bill-status-dont-bill {
	background-color: #FA8072;
}
.calendar__info-bar__bill-status-unknown {
	background-color: #20B2AA;
}
.calendar__info-bar__pay-status-pay {
	background-color: #00FA9A;
}
.calendar__info-bar__pay-status-dont-pay {
	background-color: #FA8072;
}
.calendar__info-bar__pay-status-unknown {
	background-color: #20B2AA;
}

.calendar__header__day-name--full {
	display: block;
}
.calendar__header__day-name--short {
	display: none;
}

@media only screen and (max-width: 480px) {
	.calendar__header__day-name--full {
		display: none;
	}
	.calendar__header__day-name--short {
		display: block;
	}
}


/* events */

.events__info__admin-note {
	color: #6c757d;
}
.events__info__teacher-note {
	color: #17a2b8;
}

.events__timeslot {
	margin: 40px 0;
	border-left: 4px solid #ddd;
	padding-left: 10px;
}
.events__timeslot-header {
	font-weight: var(--font-weight-bold);
	padding-top: 0;
	padding-bottom: 0;
}
.events__timeslot-header span {
	font-weight: normal;
	margin-left: 10px;
}


/* date */

input.nldate--month {
	text-align: center;
	width: 150px;
}
input.nldate--open {
	text-align: center;
	width: 250px;
}
input.nldate--day-short {
	width: 145px;
}
input.nldate--day-long, input.input-password {
	width: 283px;
}
input.input-date {
	width: 160px;
}
input.input-time {
	width: 110px;
	margin-left: 26px;
}
input.input-date-time--empty {
	color: #ddd;
}

.btn-date {
	border: none;
	background: none;
	padding: 7px 5px;
	cursor: pointer;
	color: var(--color-fg);
}
.btn-date:hover {
	color: var(--color-btn-primary-hover-bg);
}

.date-widget {
	display: none;
	position: absolute;
	border-radius: var(--border-radius);
	padding: 10px;
	background-color: #fff;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
	z-index: 2;
}
.date-widget.date-widget--fixed-position {
	position: fixed;
}
.date-widget__header {
	display: flex;
}
.date-widget__btn {
	border: none;
	background: none;
	padding: 7px 5px;
	cursor: pointer;
}
.date-widget__btn:hover {
	color: var(--color-btn-primary-hover-bg);
}
.date-widget__title {
	flex-grow: 1;
	text-align: center;
	line-height: 32px;
	cursor: pointer;
}
.date-widget__data {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
}
.date-widget__data div {
	text-align: center;
}
.date-widget__data__header {
	display: contents;
}
.date-widget__data__header div {
	font-weight: var(--font-weight-bold);
	font-size: 0.75rem;
	margin-top: 10px;
	margin-bottom: 5px;
}
.date-widget__data__body {
	display: contents;
}
.date-widget__day {
	cursor: pointer;
	padding: 4px 10px;
	border-radius: var(--border-radius);
}
.date-widget__selected-day {
	color: var(--color-bg);
	background-color: var(--color-fg);
}
.date-widget__day:hover {
	color: var(--color-fg);
	background-color: #eee;
}
.date-widget__day--inactive {
	color: #ccc;
}
.date-widget__today {
	font-weight: var(--font-weight-bold);
	border: 1px solid #eee;
}

.btn-date-suite {
	color: var(--color-fg);
	border: none;
	background: none;
	padding: 11px;
	cursor: pointer;
}

.date-drc__btn-toggle {
	color: var(--color-fg);
	border: none;
	background: none;
	padding: 11px;
	border-top-left-radius: var(--border-radius);
	border-top-right-radius: var(--border-radius);
	cursor: pointer;
	position: relative;
}
.date-drc__btn-toggle--open {
	color: #000;
	background-color: #d6eaf8;
}
.date-drc__panel {
	display: none;
	background: #d6eaf8;
	padding: 10px 10px 10px 35px;
	border-bottom-left-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
}
.date-drc__btn-clear {
	margin: 0 18px 0 -2px;
	padding-left: 7px;
	padding-right: 7px;
}
.date-drc__btn-clear span {
	position: relative;
	top: 4px;
}
.date-drc__btn-from, .date-drc__btn-to, .date-drc__btn-go {
	min-width: 55px;
}
.date-drc__panel.date-drc__panel--no-arrows {
	padding-left: 7px;
}
.date-drc__panel.date-drc__panel--no-arrows .date-drc__btn-clear {
	margin-right: 12px;
}


/* help */

.inline-help {
	padding: 10px 15px;
}
.page-help li, .inline-help li {
	margin-bottom: 7px;
}
.card.page-help h1, .inline-help h1, .card.page-help h2, .inline-help h2,
.card.page-help h3, .inline-help h3, .card.page-help h4, .inline-help h4,
.card.page-help h5, .inline-help h5, .card.page-help h6, .inline-help h6 {
	font-size: 1rem;
	font-weight: var(--font-weight-bold);
	margin-bottom: 0;
}
.card.page-help h1, .inline-help h1 {
	font-size: 1.8rem;
}
.card.page-help h2, .inline-help h2 {
	font-size: 1.1rem;
}
.card.page-help p, .inline-help p {
	margin: 10px 0;
}


/* foldable */

.foldable {
	position: relative;
	overflow: hidden;
	background-color: #f6f6f6;
	padding: 10px;
}
.foldable input {
	display: none;
}
.foldable__content {
	height: 10rem;
}
.foldable input:checked ~ .foldable__content {
	height: 100%;
	margin-bottom: 50px;
}
.foldable__button {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	text-align: center;
	line-height: 50px;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%,rgba(255, 255, 255, 0.7) 20%,#ffffff 100%);
	border-bottom: 1px solid #ddd;
}
.foldable label {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
}
.foldable__button span:nth-child(1) {
	visibility: hidden;
	position: relative;
	left: 11px;
}
.foldable__button span:nth-child(2) {
	position: relative;
	left: -11px;
}
.foldable input:checked ~ .foldable__button {
	background: #fff;
	border-top: 1px solid #ddd;
	border-bottom: none;
}
.foldable input:checked ~ .foldable__button span:nth-child(1) {
	visibility: visible;
}
.foldable input:checked ~ .foldable__button span:nth-child(2) {
	visibility: hidden;
}


/* tooltip */

.tooltip {
	display: inline-block;
	padding: 1px;
}
.dtable .dtable__row .tooltip--hover {
	color: #fff;
	background-color: #444;
	cursor: pointer;
	border-top-right-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
}

.tooltip-panel {
	position: absolute;
	font-size: 0.85rem;
	color: #fff;
	background-color: #444;
	padding: 10px 15px;
	border-radius: var(--border-radius);
	box-shadow: -3px 3px 6px rgba(0, 0, 0, 0.15);
}
.tooltip-panel a, .tooltip-panel a:visited {
	color: #ff0;
}


/* profile photo */

.profile-photo__image {
	max-width: 200px;
}


/* dashboard */

.dashboard__note {
	background-color: #f5f5f5;
	padding: 7px 10px;
	margin-top: 10px;
}
.dashboard__note__author {
	font-size: 0.75rem;
	font-style: italic;
	margin-top: 7px;
}
.dashboard__note__dismiss {
	margin-top: 7px;
}


/* stlist */

.stlist-notes__note-wrapper {
	margin-bottom: 25px;
}
.stlist-notes__note {
	display: inline-block;
	background-color: #fafafa;
	border-radius: 5px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}
.stlist-notes__note__header {
	padding: 7px 10px;
	font-size: 0.8rem;
	display: flex;
	border-bottom: 1px solid #e8e8e8;
}
.stlist-notes__note__header > *:nth-child(2) {
	flex-grow: 1;
}
.stlist-notes__note__header > *:nth-child(3) {
	margin: 0 15px;
}
.stlist-notes__note__content {
	padding: 12px 10px;
}


/* registration forms */

.list-item {
	color: #000;
	margin-bottom: 10px;
}

.trf-archive-title h2 {
	display: inline;
	margin-right: 10px;
}

.trf-instruments-diff {
	background-color: #e7eef6;
	padding: 10px 20px;
	margin-bottom: 25px;
}
.trf-instruments-diff p {
	margin-top: 8px;
	margin-bottom: 8px;
}
.trf-instruments-diff p span {
	margin-right: 7px;
}


/* progress */

.progress {
	display: none;
	margin: 25px 0;
}

.progress__caption {
}

.progress__bar {
	display: inline-block;
	width: 300px;
	max-width: 80vw;
	background-color: #f5f5f5;
	border: 1px solid #eee;
	border-radius: 4px;
	margin-top: 8px;
	margin-bottom: 15px;
}
.progress__bar__indicator {
	display: block;
	height: 8px;
	background-color: var(--color-btn-primary-bg);
	width: 20%;
	border-radius: 4px;
}


/* iWidgets */

.iwidget__month-header {
	display: flex;
}
.iwidget__month-header a {
	margin-left: 7px;
}
.iwidget__month-header__title {
	flex-grow: 1;
	font-size: 1.1rem;
	margin-right: 10px;
	position: relative;
	top: 2px;
	cursor: pointer;
}


/* Authorize.Net */

#authorizeNetFrame {
	width: 80vw;
	height: 900px;
}


/* simple header/data minicard */

p.minicard__key-data {
	white-space: nowrap;
	margin-bottom: 15px;
}
.minicard__key-data span {
	display: block;
	font-size: 0.7rem;
	color: #888;
	margin-bottom: 2px;
	font-weight: var(--font-weight-bold);
	text-transform: uppercase;
}


/* MMA support minicard */

.mma-support-minicard__logo {
	text-align: center;
	margin-bottom: 20px;
}
.mma-support-minicard__logo img {
	width: calc(100% - 40px);
}

.mma-support-minicard__info-table {
	display: grid;
	justify-content: start;
	grid-template-columns: 1fr 1fr;
}
.mma-support-minicard__info-table span {
	margin: 0 12px 8px 0;
}


/* policies */

.policy-index a {
	display: inline-block;
	border: 1px solid #ccc;
	border-radius: var(--border-radius);
	padding: 3px 12px;
	margin: 0 10px 20px 0;
	color: var(--color-fg);
	transition: all 300ms;
}
.policy-index a:hover {
	text-decoration: none;
	border: 1px solid #fff;
	background-color: #fff;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.policy-content p, .policy-content ul {
	color: #727272;
}


/* teacher presentation */

.teacher-presentation {
	margin: 2rem 1.5rem 3rem 1.5rem;
}
.teacher-presentation img {
	float: right;
	margin-left: 20px;
	margin-bottom: 10px;
	max-width: 300px;
}
.teacher-presentation a {
	margin-left: 5px;
	margin-right: 5px;
}

.teacher-presentation__separator {
	margin-top: 3rem;
	margin-bottom: 3rem;
	text-align: center;
}
.teacher-presentation__separator div {
	display: inline-block;
	height: 1px;
	width: 75%;
	background-color: #ccc;
}

@media only screen and (max-width: 700px) {
	.teacher-presentation img {
		float: none;
		display: block;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 10px;
		max-width: 80vw;
	}
}


/* payment profiles */

.payment-profile-processor__update-available {
	display: none;
	color: #fff;
	text-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
	background: #63C46C;
	padding: 8px 10px 8px 15px;
	border-radius: var(--border-radius);
}
.payment-profile-processor__update-available button {
	background-color: #266F2D;
	border-color: #266F2D;
}


/* Safari time fix */

.safari-time-fix {
	display: flex;
	visibility: hidden;
	position: absolute;
	left: 600px;
	top: 100px;
	height: 200px;
	background-color: #fff;
	border: 1px solid #eee;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.07)
}
.safari-time-fix__group {
	overflow: auto;
	overflow-x: hidden;
}
.safari-time-fix__group-middle {
	border-left: 1px solid #eee;
	border-right: 1px solid #eee;
}
.safari-time-fix__group::-webkit-scrollbar {
	display: none;
}
.safari-time-fix__group__item {
	text-align: center;
	cursor: pointer;
	width: 55px;
	line-height: 50px;
}
.safari-time-fix__group__item--selected {
	color: var(--color-btn-primary-fg);
	background-color: var(--color-btn-primary-bg);
}
.safari-time-fix__group__item:hover {
	background-color: #eee;
}
.safari-time-fix__group__item--selected:hover {
	background-color: #00f;
}
.group-a {
	background-color: yellow;
}
.group-b {
	background-color: #efe;
}
.group-c {
	background-color: #fee;
}
