.footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    /* Set the fixed height of the footer here a*/
    height: 40px;
}

html {
    position: relative;
    min-height: 100%;
}

nav.navbar {
    border-radius: 0;
}

body {
    /* Margin bottom by footer height */
    margin-bottom: 40px;
}

select {
    color: black; /* fixes some themes that have the wrong color */
}

main .container {
    padding-bottom: 20px;
}

.navbar-default .navbar-text {
    color: lightgray;
}

.table > tbody > tr > td {
    vertical-align: middle;
}

#login-well {
    margin-top: 2em;
    text-align: center;
    border-radius: 1em;
}

#login-well h1 {
    margin-bottom: 0.5em;
}

#login-well input,
.add-term-html-container input,
.attendance-table input,
.grade-entry-table input,
.receipt-row input {
    background: white;
}

.grade-entry-table input[type="checkbox"] {
    margin-top: 11px;
}

#login-well input {
    margin: auto;
    border-radius: 0.5em;
    max-width: 80%;
}

#login-well input::placeholder {
    color: darkgray;
    margin-left: 1em;
    padding-left: 1em;
}

#login-well .form-control:focus {
    border: 0;
}

#login-well button {
    width: 200px;
    margin-top: 0.5em;
}

#login-copyright {
    margin-top: 1.0em;
    font-size: 16px;
}

.footer p {
    margin-left: 0px;
}

.message {
    font-size: 20px;
}

.blog-preview, .blog-post {
    font-size: 16px;
}

.inline-submit-button {
    margin-left: 1em;
}

.editdropdown select {
    width: 3em;
    margin-right: 0.5em;
}

.editdropdown button {
    margin-right: 0.5em;
}

select, select.form-control {
    padding-right: 1em;
}

#all-students li {
    padding-bottom: 1em;
}

#error-div {
    margin-top: 1em;
    margin-bottom: 0em;
}

.students-table-list {
    height:450px; 
    overflow-y: auto;
}

#search-all-students, #search-current-students {
    margin-bottom: 0.5em;
}

.table-search-field {
    margin-bottom: 0.5em;
}

/* https://css-tricks.com/elegant-fix-jumping-scrollbar-issue/ */
/* html { margin-left: calc(100vw - 100%); } */
/* not sure I should do this... */

.table tr.grades-category-title > td {
    padding-top: 2em;
}

.table tr.grades-total-row {
    background-color: whitesmoke;
    font-weight: bold;
}

.setting-title {
    font-weight: bold;
    font-size: 16px;
}

.setting-subtitle {
    font-weight: bold;
    font-size: 14px;
}

#homeroom-click-on-grade {
    font-size: 16px;
}

#homeroom-month-picker-label {
    font-size: 16px;
}

.class-list-title {
    font-size: 24px;
    margin-bottom: 1.5em;
}

.class-list-item {
    margin-bottom: 1;
    margin-right: 1em;
    padding-bottom: 0;
    border-radius: 4px;
}

.class-list-quick-link {
    margin-bottom: 1em;
    /*margin-right: 0.5em;
    margin-left: 0.5em;*/
}
    
table .year-setup-checkbox::after {
    margin-right: 0px;
}

.add-term-html-container {
    margin: 1em;
    border-radius: 1em;
}

.year-setup-grade-student-list {
    font-size: 15px;
    margin-top: 0.25em;
    margin-bottom: 0.25em;
}

#add-term-before-classes {
    font-size: 15px;
    font-weight: bold;
}

#id-number-status {
    font-style: italic;
    font-weight: bold;
    font-size: 14px;
}

.session-container {
    margin: 1em;
    border-radius: 1em;
}

.time-container {
    /*background-color: white;*/
    border: 2px solid rgba(0, 0, 0, 0.733);
    border-radius: 1em;
    margin: 1em;
}

.checkbox label {
    display: inline;
}

.checkbox {
    margin-top: 0;
    margin-bottom: 0.5em;
}

.delete-assignment-from-session {
    margin-bottom: 1em;
}

.grade-average-tr {
    font-weight: bold;
}

/* https://stackoverflow.com/a/4407335/3938401 */
.noselect, .checkbox, .radio, .radio-inline, .checkbox-inline {
  -webkit-touch-callout: none; /* iOS Safari */
  -webkit-user-select: none; /* Safari */
  -khtml-user-select: none; /* Konqueror HTML */
  -moz-user-select: none; /* Firefox */
  -ms-user-select: none; /* Internet Explorer/Edge */
  user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
}

/* sort th headers with glyphs from FA -- https://github.com/javve/list.js/issues/252#issuecomment-313899441 */
table.sortable .sort:after {
	font-family: FontAwesome;
	font-size: 1em;
	color: #333;
	font-weight: lighter;
	content: "\f0dc";
    padding-left: 0.5em;
    text-decoration: none;
}

table.sortable .sort.asc:after {
	content: "\f0de";
}

table.sortable .sort.desc:after {
	content: "\f0dd";
}


/* ******* */

/*.fc-right .fc-prev-button, .fc-right .fc-next-button {
    background-color: #2092EC;
}

.fc-right .fc-prev-button:hover, .fc-right .fc-next-button:hover {
    background-color: yellow;
    background-image: none;
}*/

.fc-unthemed th, .fc-unthemed td, .fc-unthemed thead, .fc-unthemed tbody, .fc-unthemed .fc-divider, .fc-unthemed .fc-row, .fc-unthemed .fc-content, .fc-unthemed .fc-popover, .fc-unthemed .fc-list-view, .fc-unthemed .fc-list-heading td {
    /* I don't like this, but it works...can't find a better, quicker way to get it working for all the border colors */
    border-color: rgb(190, 190, 190) !important; 
}

.fc-not-entered {
    background-color: rgb(248, 227, 227);
}

.fc-future.fc-selectable-date {
    background-color: transparent;
}

.fc-entered.fc-selectable-date {
    background-color: rgb(190, 238, 181);
}

.fc-bg td.fc-entered.fc-today.fc-selectable-date {
    background-color: rgb(196, 253, 210);
}

.fc-selectable-date:hover:not(.fc-future) {
    background-color: #d6e5ff;
    cursor: pointer;
}

.fc-unthemed td.fc-today.fc-selectable-date:hover {
    background-color: #d6e5ff;
    cursor: pointer;
}

.fc-highlighted {
    background-color: #d6e5ff !important;
}

.fc-event-container {
    cursor: pointer;
}

.fc-no-pointer {
    cursor: default;
}

/* allow whitespace in fullcalendar events: https://stackoverflow.com/a/27370044/3938401 */
.fc-day-grid-event > .fc-content {
    white-space: normal;
}

.fc-partial-data {
    background-color: #f5bb1b !important;
    color: black !important;
    border-color: #713f7f !important;
}

.fc-future-event {
    background-color: #a9185f !important;
    color: white !important;
    border-color: #a9185f !important;
}

.fc-event-holiday {
    background-color: green !important;
    color: white !important;
    border-color: green !important;
}

.fc-canceled-event {
    background-color: #910981 !important;
    color: white !important;
    border-color: #910981 !important;
}

.fc-prior-session-data {
    background-color: #7d12e0 !important;
    color: white !important;
    border-color: #7d12e0 !important;
}

/* seem to have fixed the issue where a scrollbar showed up in fullcalendar for class
.fc-scroller {
    overflow-y: hidden !important;
}*/

/* ******* */

.table-striped > tbody > tr:nth-of-type(2n+1).known-attendance-status {
    font-weight: bold;
    background-color: rgba(37, 141, 42, 0.15);
}

.table-striped > tbody > tr:nth-of-type(2n).known-attendance-status {
    font-weight: bold;
    background-color: rgba(37, 141, 42, 0.25);
}

.table-striped > tbody > tr:nth-of-type(2n+1).attendance-past.unknown-attendance-status {
    background-color: rgba(255, 158, 158, 0.15);
}

.table-striped > tbody > tr:nth-of-type(2n).attendance-past.unknown-attendance-status {
    background-color: rgba(253, 59, 59, 0.15);
}

tr.known-attendance-status td, .table-striped > tbody > tr:nth-of-type(2n+1).known-attendance-status td {
    border-bottom: 1px solid #c2c0c0;
}

.reason-text-input {
    margin-left: 1em;
}

.fa-exclamation-triangle {
    color: goldenrod;
}

.no-bullets {
    list-style-type: none;
}

.user-edit-preview-image-label {
    margin-right: 1em;
}

.roster-div {
    margin: auto;
}

.roster-div .well {
    padding: 1em;
    width: 230px;
    margin-bottom: 1em;
    border-radius: 1em;
}

.roster-item {
    height: 275px;
}

.roster-item-picture {
    height: 175px;
    margin-bottom: 1em;
}

.roster-item-picture img {
    max-width:100%;
    max-height:100%;
}

.roster-item-no-picture {
    margin-bottom: 1em;
    height: 175px;
    display: flex;
    align-items: center;
}

.roster-item-name {
    font-weight: bold;
    font-size: 14px;
    margin: 0em;
}

.col-centered {
    float: none;
    margin: 0 auto;
}

.form-label {
    font-weight: bold;
    font-size: 14px;
}

.vcenter {
    display: inline-block;
    vertical-align: middle;
    float: none;
}

.loading-label {
    font-size: 18px;
    font-style: italic;
}

.bold {
    font-weight: bold;
}

#registration ul.nav li {
    font-size: 16px;
}

#registration .tab-pane {
    padding-top: 2em;
}

.user-preview-image {
    max-width: 250px;
    max-height: 250px;
}

#if-emergency-text {
    font-size: 16px;
    margin-bottom: 0;
}

.signature-canvas {
    border: 2px solid black;
}

.signature-form-group.has-success .signature-canvas {
    border: 2px solid #4caf50;
}

.signature-form-group.has-error .signature-canvas {
    border: 2px solid red;
}

.signature-form-controls {
    margin-bottom: 1em;
}

#field-form .submit-button {
    margin-top: 1em;
}

#registration input[type=file] {
    margin-bottom: 1em;
}

.custom-field-description {
    font-size:16px;
}

.custom-field-bold {
    font-weight: bold;
}

.section-sort-placeholder {
    background: rgb(201, 241, 255) !important; /* for sorting, cause table is already striped */
}

.sort-handle {
    cursor: move;
}

.saved-text {
    font-weight: bold;
    font-size: 14px;
    font-style: italic;
}

.form-group:not(.has-feedback):not(.file-reg-input) .form-control-feedback {
    margin-right: 3px;
}

.form-group.file-reg-input .form-control-feedback {
    margin-left: 5px;
}

.form-group:not(.signature-form-group) .form-control-feedback {
    line-height: 25px !important;
}

.form-group:not(.signature-form-group) .form-control-feedback {
    line-height: 25px !important;
}

#registration input[type=date]:read-only, 
#registration input[type=text]:read-only, 
#registration input[type=password]:read-only, 
#registration input[type=email]:read-only, 
#registration input[type=number]:read-only, 
#registration input[type=phone]:read-only, 
#registration input[type=url]:read-only, 
#registration input[type=search]:read-only,
#registration input[type=time]:read-only,
#registration textarea:read-only {
    background: #eeeeee !important;
    border-radius: 4px;
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-bottom: 0px !important;
    /*line-height: unset !important;*/
}

#registration select:disabled {
    background: #eeeeee !important;
}

#class-session-container input {
    background: white;
}

#registration textarea:read-only {
    padding-top: 6px;
}

.radio-reg-input input:invalid,
.checkbox-reg-input input:invalid,
.radio-reg-input input:valid,
.checkbox-reg-input input:valid {
    box-shadow: none; /* fixes ugly highlighting in firefox -- https://stackoverflow.com/a/21198397/3938401 */
}

.signature-form-group .form-control-feedback {
    margin-top: 20px;
}

.no-file-uploaded {
    font-size: 14px;
}

#registration-table-row th {
    white-space: nowrap;
}

.table-nowrap {
    white-space: nowrap;
}

.tooltip {
    opacity: 1 !important;
}
.tooltip .tooltip-inner {
    background-color: black;
}

.tooltip .tooltip-arrow {
    border-right-color: black !important;
}

#copied {
    margin-left: 1em;
    font-size:15px;
    font-weight: bold;
}

/* make dropdown menu width of button https://stackoverflow.com/a/38258553/3938401 */
.dropdown-menu.dropdown-menu-wide {
    min-width: 100%;
    text-align: center;
}

.history-button {
    margin-left: 3em;
}

/*.alert {
    margin-bottom: 0em;
}*/

@media print {
    a[href]:after {
      content: none !important;
    }
}
  
.overflow-table {
    overflow-x: auto;
}

.dataTables_filter {
    float: left !important;
}

.select2 {
    width: 100% !important;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-1 {
    margin-bottom: 1em;
}

.mb-n1 {
    margin-bottom: -0.5em;
}

.mb-2 {
    margin-bottom: 2em;
}

.mt-0 {
    margin-top: 0;
}

.mt-1half {
    margin-top: 0.5em;
}

.mt-1 {
    margin-top: 1em;
}

.mt-2 {
    margin-top: 2em;
}

.pt-0 {
    padding-top: 0em;
}

.mb-1 {
    margin-bottom: 1em;
}

.mb-0 {
    margin-bottom: 0;
}

.mt-0 {
    margin-top: 0;
}

.ml-1 {
    margin-left: 1em;
}

.ml-2 {
    margin-left: 2em;
}

.ml-3 {
    margin-left: 3em;
}

.ml-4 {
    margin-left: 4em;
}

.ml-5 {
    margin-left: 5em;
}

.mr-0 {
    margin-right: 0em;
}

.mr-1 {
    margin-right: 1em;
}

.mr-2 {
    margin-right: 2em;
}

.mr-3 {
    margin-right: 3em;
}

.pl-0 {
    padding-left: 0;
}

.pl-1 {
    padding-left: 1em !important;
}

.pl-2 {
    padding-left: 2em !important;
}

.pr-1 {
    padding-right: 1em !important;
}

.pr-2 {
    padding-right: 2em !important;
}

.table-row-image {
    max-width: 100px;
    max-height: 100px;
}

.grade-note {
    margin-bottom: 2px;
    font-size: 16px;
}

select.select2-hidden-accessible {
    top: 65px;
}

#radio-gender-users label.radio-inline {
    margin-left: 4px;
    margin-right: 8px;
    margin-bottom: 8px;
}

#receipt-notes {
    max-width: 100%;
    width: 100%;
    min-height: 75px;
}

input.custom-receipt-item {
    padding-left: 4px;
    padding-right: 4px;
}

.select2-container--bootstrap .select2-results__option[aria-disabled="true"] {
    font-style: italic;
    opacity: 0.8;
}

#view-receipt-notes #receipt-notes-title {
    font-size: 16px;
    margin-bottom: 2px;
}

#view-receipt-notes #receipt-notes {
    font-size: 15px;
}

#receipt-summary {
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 2px;
}

#receipt-user-picker-group {
    margin-bottom: 1px;
}

#user-links {
    margin-bottom: 0;
}

.flex-group {
    display: flex;
}

@media (min-width: 550px) {
   .equal {  
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
    }
    .equal-flow {
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-flex-flow: row wrap;
        flex-flow: row wrap;
        -webkit-align-content: flex-end;
        align-content: flex-end;
    }
}

.panel {
    width: 100%;
    height: 100%;
}

.picture-input-video {
    max-height: 300px;
    max-width: 480px;
}

.webcam-button {
    margin-bottom: 1em;
}

.form-small-title-over-radio {
    font-weight: bold;
    margin-bottom: -8px;
}

textarea {
    min-height: 100px;
    min-width: 150px;
}

#approve-deny-leave-app-radio-group {
    margin-top: 0px;
}

table .btn-group {
    display: flex;
}

.dataTables_filter input.input-sm {
    font-size: 16px;
}

.impersonate-nav {
    background: red !important;
}

.impersonate-nav a {
    color: white !important;
}

#class-attendance-detailed-report-div th,
#class-attendance-detailed-report-div td,
#class-attendance-detailed-report-div th:focus,
#class-attendance-detailed-report-div th:active {
    /* border: 0.5px solid black; */
    outline: none; /* fixes weirdo border on first column when focused in firefox */
}

#class-attendance-detailed-report-div table {
    border-collapse: collapse !important;
}
td.missing-attendance {
    background: #f5bb1b;
    border: 1.0px double black !important; /* https://stackoverflow.com/a/4096554/3938401 */
}

td.missing-attendance a {
    color: #256b75;
    text-decoration: underline;
}

table.dataTable {
    width: 100% !important; /* fix datatables overriding width...want it to be full size >:) */
}

div.spacer {
    margin-top: 4px;
    margin-bottom: 4px;
}

.overflow-table {
    overflow-x: auto;
}

table.sticky-headers thead {
    background: white !important;
    position: sticky !important;
    position: -webkit-sticky; /* Safari */
    top: 0; /* Don't forget this, required for the stickiness */
    box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.4) !important;
    z-index: 1 !important; /* fixes checkboxes showing over headers */
}

.dataTables_scrollHead { /* fix sticky on datatables scrollX tables */
    background: white !important;
    position: sticky !important;
    position: -webkit-sticky; /* Safari */
    top: 0; /* Don't forget this, required for the stickiness */
    box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.4) !important;
    z-index: 1 !important; /* fixes checkboxes showing over headers */
}

.DTFC_LeftWrapper {
    /*overflow-y: hidden; */ /* this breaks sticky columns; TODO: fix this somehow; it only breaks on windows. there's a bug where the left column can scroll -_- */
}

.v-align-top {
    vertical-align: top !important;
}

.v-align-center {
    vertical-align: middle !important;
}

.v-align-bottom {
    vertical-align: bottom !important;
}

.spreadsheet-input {
    width: 115px;
    display: initial !important;
}

.attendance-table-header {
    min-width: 175px !important;
}

.header-input {
    font-weight: normal;
}

.giant-table div.checkbox {
    margin-bottom: -4px;
}


/* https://css-tricks.com/a-complete-guide-to-dark-mode-on-the-web/*/
/*@media (prefers-color-scheme: dark) {*/
    html.dark body { 
      color: #eee;
      background: #121212;
    }
    html.dark main a:not(.btn) {
        color: rgb(83, 171, 223);
    }
    html.dark main a:not(.btn):hover {
        color: rgb(113, 203, 255);
    }
    html.dark div.panel {
        background: #444444;
    }
    html.dark h1, 
    html.dark h2, 
    html.dark h3, 
    html.dark h4, 
    html.dark h5, 
    html.dark h6 {
        color: #eee;
    }
    html.dark i.fa, 
    html.dark i.fa5 {
        color: #eee;
    }
    html.dark .btn-default i.fa, html.dark .btn-default i.fa5 {
        color: #444444;
    }
    html.dark .dropdown-menu {
        background: #444444;
    }
    html.dark .dropdown-menu li a:hover {
        background: #5c5c5c;
        color: #eee;
    }
    html.dark .dropdown-menu li a {
        color: #eee;
    }

    html.dark ul li.dropdown-header {
        font-weight: bold;
        color: #eee !important;
    }

    html.dark ol.breadcrumb {
        background: #444444;
    }
    html.dark ol.breadcrumb a {
        color: #33ccff;
    }
    html.dark .table-striped > tbody > tr:nth-of-type(n) {
        background: #333;
    }
    html.dark .table-striped > tbody > tr:nth-of-type(2n) {
        background: #0D0D0D;
    }
    html.dark .table > tbody > tr > td {
        border-top: 1px solid #cccccc;
    }
    html.dark input.form-control, 
    html.dark input.table-search-field, 
    html.dark textarea,
    html.dark input[type="text"], 
    html.dark input[type="password"] {
        color: #eee !important;
        background-color: #444444 !important;
    }
    html.dark input[type="checkbox"] {
        background-color: transparent;
    }
    html.dark input:not([type='checkbox']):disabled,
    html.dark input:not([type='checkbox']):read-only {
        color: rgb(204, 204, 204);
        background-color: #0D0D0D !important;
    }

    html.dark #registration input[type=date]:read-only, 
    html.dark #registration input[type=text]:read-only, 
    html.dark #registration input[type=password]:read-only, 
    html.dark #registration input[type=email]:read-only, 
    html.dark #registration input[type=number]:read-only, 
    html.dark #registration input[type=phone]:read-only, 
    html.dark #registration input[type=url]:read-only, 
    html.dark #registration input[type=search]:read-only,
    html.dark #registration input[type=time]:read-only,
    html.dark #registration textarea:read-only {
        color: rgb(204, 204, 204);
        background-color: #0D0D0D !important;
    }

    html.dark .form-group.has-success .control-label,
    html.dark .form-group.has-success .form-control-feedback,
    html.dark .form-group.has-success label {
        color: rgb(133, 206, 133);
    }
    html.dark select {
        color: #eee;
        background-color: #444444;
        border: 1px solid rgb(206, 206, 206);
        padding-left: 6px;
    }
    html.dark  .nav-tabs a {
        color: rgb(182, 182, 182) !important;
    }
    html.dark .nav-tabs li.active a {
        color: #eee !important;
    }

    html.dark table.sticky-headers thead {
        background: #444444 !important;
        position: sticky !important;
        position: -webkit-sticky; /* Safari */
        top: 0; /* Don't forget this, required for the stickiness */
        box-shadow: 0 1px 1px -1px rgba(177, 177, 177, 0.4) !important;
        z-index: 1 !important; /* fixes checkboxes showing over headers */
    }
    
    html.dark .dataTables_scrollHead { /* fix sticky on datatables scrollX tables */
        background: #444444 !important;
        position: sticky !important;
        position: -webkit-sticky; /* Safari */
        top: 0; /* Don't forget this, required for the stickiness */
        box-shadow: 0 1px 1px -1px rgba(177, 177, 177, 0.4) !important;
        z-index: 1 !important; /* fixes checkboxes showing over headers */
    }

    html.dark .panel-default > .panel-heading {
        background-color: #646464;
    }
    html.dark .panel-default > .panel-heading a {
        color: rgb(144, 198, 248);
    }

    html.dark .grades-total-row {
        background-color: #444444 !important;
    }

    html.dark .table-striped > tbody > tr:nth-of-type(2n+1).known-attendance-status {
        font-weight: bold;
        background-color: rgba(57, 194, 64, 0.473);
    }

    html.dark .table-striped > tbody > tr:nth-of-type(2n).known-attendance-status {
        font-weight: bold;
        background-color: rgba(72, 185, 77, 0.452);
    }

    html.dark .table-striped > tbody > tr:nth-of-type(2n+1).attendance-past.unknown-attendance-status {
        background-color: rgba(255, 158, 158, 0.418);
    }

    html.dark .table-striped > tbody > tr:nth-of-type(2n).attendance-past.unknown-attendance-status {
        background-color: rgba(253, 59, 59, 0.445);
    }

    html.dark .roster-item {
        background-color: #444444;
    }

    html.dark .paginate_button:not(.active) a {
        background-color: #6d6d6d !important;
    }
    html.dark .paginate_button a {
        border: 1px solid #444444 !important;
    }
    html.dark .paginate_button:not(.active) a:hover {
        background-color: #333 !important;
    }
    html.dark .paginate_button:not(.active) a.page-link {
        color: #eee !important;
    }
    html.dark .paginate_button.active a.page-link {
        color: #eee !important;
    }

    html.dark table tbody tr.active td {
        background-color: #315892 !important;
    }

    html.dark .well {
        background-color: #444444;
    }

    html.dark .well.session-container .session-time-container .well {
        background-color: #747474;
    }

    html.dark .well.session-container .session-time-container .well input[type="checkbox"] {
        background-color: transparent !important;
    }

    html.dark .well.session-container .session-time-container .well input[type="checkbox"]:after {
        border: 2px solid #585858;
    }

    html.dark table.DTFC_Cloned tr {
        background-color: #444444;
    }

    html.dark .section-sort-placeholder {
        background: rgb(79, 94, 100) !important; /* for sorting, cause table is already striped */
    }

    html.dark select, 
    html.dark select.form-control {
        /* copied from paper.css and then inverted colors using online tools */
        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaBAMAAABbZFH9AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAACdQTFRFAAAA3Nzc2NjY39/f3d3d4ODg7e3t3Nzc3t7e7u7u7e3t5ubmAAAA4a63jgAAAA10Uk5TAPL/6O3kwO/npafQAs9csDkAAAA9SURBVHicY2CgO2BUAgNlCI8FwlOF8NiKwLxOqNJ0EEdjAgOSZCfcnHQkKbAkQgooiSTFwMC1h9qeIAcAADsjCwomxCmXAAAAAElFTkSuQmCC);
        background-repeat: no-repeat;
        background-position: 98% 50%;
    }

    html.dark table.sortable .sort::after {
        color: #eee;
    }

    html.dark select:disabled {
        color: rgb(204, 204, 204);
        background-color: #0D0D0D;
    }

    html.dark .radio-inline input[type=radio] {
        background-color: transparent !important;
    }

    html.dark .radio-inline input[type=radio]:disabled::after {
        border: 2px solid rgb(77, 77, 77);
    }

    /* changing color of chrome/edge/etc. calendar picker icon on date inputs */
    /* https://stackoverflow.com/questions/62162645/change-color-of-chromes-calendar-icon-in-html-date-input */
    html.dark ::-webkit-calendar-picker-indicator {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="15" viewBox="0 0 24 24"><path fill="%23eee" d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/></svg>');
      }

    /* select2 */

    html.dark .select2-container--bootstrap .select2-results__option[aria-selected="true"] {
        color: rgb(163, 163, 163) !important;
    }
    html.dark .select2-container--bootstrap .select2-dropdown {
        border-color: #444444 !important;
    }
    html.dark .select2-container--bootstrap .select2-dropdown.select2-dropdown--above {
        border-top: 1px solid #444444 !important;
    }
    html.dark .select2-container--bootstrap .select2-dropdown .select2-results__option[aria-selected="true"] {
        background-color: #444444 !important;
    }
    html.dark .select2-container--bootstrap .select2-results__option--highlighted,
    html.dark .select2-container--bootstrap .select2-results__option--highlighted.select2-results__option[aria-selected="true"] {
        background-color: #007bff !important;
        color: #eee !important;
    }
    html.dark .select2-container--bootstrap .select2-search--dropdown {
        border: 1px solid #444444 !important;
        color: #eee !important;
        background-color: #444444 !important;
    }
    html.dark .select2-container--bootstrap .select2-search--dropdown .select2-search__field {
        border: 1px solid #7a7a7a !important;
        color: #eee !important;
        background-color: #444444 !important;
    }
    html.dark .select2-container--bootstrap .select2-selection,
    html.dark .select2-container--bootstrap li {
        background-color: #444444 !important;
    }

    html.dark .select2-container--bootstrap span {
        color: #eee !important;
    }

    html.dark .select2-container--bootstrap .select2-selection--single .select2-selection__rendered {
        color: #eee !important;
    }

    html.dark .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice {
        color: #eee !important;
    }

    html.dark .select2-results__group {
        color: #eee;
    }

    html.dark .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b {
        border-color: #cfcfcf transparent transparent;
    }

    html.dark img {
        filter: brightness(.8) contrast(1.2);
    }

    html.dark .panel-heading {
        color: #eee !important;
    }

    html.dark .panel-heading {
        color: #eee !important;
    }

    html.dark .panel input[type='radio'] {
        background-color: transparent !important;
    }

    html.dark .panel input[type='radio']::after {
        border-color: #888;
    }

    html.dark #homeroom-weight-setup #unsorted-subjects .panel:not(.panel-primary) .panel-heading {
        background-color: #555555;
    }
    
    html.dark #homeroom-weight-setup #sorted-subjects .panel:not(.panel-primary) .panel-heading {
        background-color: #727272;
    }

    html.dark .modal-content {
        background-color: #555555;
        box-shadow: 0 5px 15px rgba(167, 167, 167, 0.4);
    }

    html.dark .modal-content button.close {
        color: #DDDDDD;
    }

    html.dark .mini-button {
        border: 1px solid #eeeeee;
    }

    html.dark tr.warning td {
        color: black;
    }

    html.dark tr.warning.odd td {
        background-color: #facd89 !important;
        color: black;
    }

    html.dark .fc-content {
        color: #eee;
    }

    html.dark .fc-time-grid-event-inset { /* border for overlapping events */
        -webkit-box-shadow: 0 0 0 2px rgb(32, 58, 116);
        box-shadow: 0 0 0 2px rgb(32, 58, 116);
    }

    html.dark .fc-day-number {
        color: #eee !important;
    }

    html.dark .fc-unthemed th, 
    html.dark .fc-unthemed td, 
    html.dark .fc-unthemed thead, 
    html.dark .fc-unthemed tbody, 
    html.dark .fc-unthemed .fc-divider, 
    html.dark .fc-unthemed .fc-row, 
    html.dark .fc-unthemed .fc-content, 
    html.dark .fc-unthemed .fc-popover, 
    html.dark .fc-unthemed .fc-list-view, 
    html.dark .fc-unthemed .fc-list-heading td {
        /* I don't like this, but it works...can't find a better, quicker way to get it working for all the border colors */
        border-color: rgb(100, 100, 100) !important; 
    }

    html.dark .fc-not-entered {
        background-color: rgb(99, 22, 22);
    }

    html.dark .fc-future.fc-selectable-date {
        background-color: transparent;
    }

    html.dark .fc-entered.fc-selectable-date,
    html.dark .fc-bg td.fc-entered.fc-today.fc-selectable-date {
        background-color: rgb(10, 58, 2);
    }

    html.dark .fc-bg td.fc-not-entered.fc-today.fc-selectable-date {
        background-color: rgb(155, 132, 2);
    }

    html.dark .fc-unthemed td.fc-not-entered.fc-today {
        background-color: rgb(155, 132, 2);
    }

    html.dark td.fc-today:not(.fc-not-entered):not(.fc-selectable-date) {
        background-color: rgb(155, 132, 2);   
    }

    html.dark .fc-divider.fc-widget-header {
        background-color: #444444;
    }

    html.dark .fc-selectable-date:not(.fc-future):hover {
        cursor: pointer;
    }

    html.dark .fc-selectable-date:hover:not(.fc-future),
    html.dark .fc-unthemed td.fc-today.fc-selectable-date:hover {
        background-color: #042e77;
    }

    html.dark .fc-selectable-date:hover:not(.fc-future) .fc-day-number,
    html.dark .fc-unthemed td.fc-today.fc-selectable-date:hover .fc-day-number {
        color: #eee;
    }

    html.dark .fc-partial-data {    
        background-color: #c07504 !important;
        border-color: #c07504 !important;
    }

    html.dark .fc-highlighted {
        background-color: #042e77 !important;
    }

    html.dark .legend-color.attendance-not-entered {
        background-color: rgb(99, 22, 22);
    }
    
    html.dark .legend-color.attendance-entered {
        background-color: rgb(10, 58, 2);
    }
    
    html.dark .legend-color.future-date {
        background-color: #a9185f;
    }
    
    html.dark .legend-color.partial-data {
        background-color: #c07504;
    }
    
    html.dark .legend-color.old-student-session-data {
        background-color: #7d12e0;
    }
    
    /* bug: change dropdown arrow color: https://stackoverflow.com/questions/44375107/how-to-change-the-arrow-color-of-the-html-select-box */
/*}*/

.hidden {
    display: none;
}

#loading-message {
    font-size: 18px;
}

/* https://css-tricks.com/slightly-careful-sub-elements-clickable-things/ */
button > i.fa,
button > i.fa5 {
    pointer-events: none;
}

td.top-align {
    vertical-align: top !important;
}

td hr.table-hr {
    margin-top: 2px;
    margin-bottom: 2px;
    border: 1px solid rgb(32, 32, 32);
}

.d-none { /* bootstrap 4 utility */
    display: none;
}

.float-left { /* bootstrap 4 utility */
    float: left;
}

.float-right { /* bootstrap 4 utility */
    float: right;
}

.subject-item .name {
    font-size: 14px;
    font-weight: bold;
}

.subject-item .panel-body {
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 4px;
    padding-bottom: 4px;
}

.subject-item .sort-up-btn,
.subject-item .sort-down-btn,
.subject-item .sort-up-btn i.fa,
.subject-item .sort-up-btn i.fa5,
.subject-item .sort-down-btn i.fa,
.subject-item .sort-down-btn i.fa5 {
    color: black !important;
}

.vertical-align {
    display: flex;
    align-items: center;
}

.p-0 { /* bootstrap 4 utility */
    padding: 0 !important;
}

/* https://stackoverflow.com/a/45619920/3938401 -- making columns equal height for border between them */
#homeroom-weight-setup.row {
    display: flex;
}

#homeroom-weight-setup.row > div {
    flex: 1;
}

#homeroom-weight-setup ul {
    padding-left: 0;
}

#homeroom-weight-setup .panel {
    margin-bottom: 15px; /** needs to match animation value for animating sort of panel items! */
}

select {
    background-color: transparent; /** fixes a firefox bug where the default background color is now gray?! */
}

select:disabled {
    background-color: #e4e3e9; /** fixes a firefox bug where the default background color is now gray?! */
}

#homeroom-weight-setup .form-group.less-margin {
    margin-bottom: 0.5em;
}

.table > tbody > tr.primary > td {
    background-color: #a0caec;
}

.subtable-title {
    font-size: 16px;
    font-weight: bold;
}

ul li.dropdown-header {
    font-weight: bold;
    color: black;
}

#subject-bank {
    border-right: 2px solid black;
}

#unsorted-subjects,
#sorted-subjects {
    padding-top: 1em;
    border-top: 1px solid gray;
}

#homeroom-weight-setup #unsorted-subjects .panel:not(.panel-primary) .panel-heading {
    background-color: #e4e4e4;
}

#homeroom-weight-setup #sorted-subjects .panel:not(.panel-primary) .panel-heading {
    background-color: #f2f2f2;
}

tr.parent-homeroom-weight {
    font-size: 14px;
}

tr.child-homeroom-weight .inner-indent {
    margin-left: 0.5em;
}

span.mini-button {
    border: 1px solid black;
    padding-top: 2px;
    padding-bottom: 2px;
    padding-left: 4px;
    padding-right: 4px;
    border-radius: 4px;
}

.panel-buttons button {
    padding: 4px 5px;
}

.gradebook-index-class-name {
    margin-bottom: 0.25em;
}

.gradebook-index-class-subject {
    font-size: 14px;
    margin-bottom: 0;
    margin-top: 0;
    font-style: italic;
}

ul.legend {
    margin-top: 1em;
}

ul.legend li {
    margin-bottom: 0.5em;
}

.legend-color {
    display: inline-block;
    width: 2em;
    height: 2em;
    margin-right: 1em;
    border-radius: 2px;
    border: 1px solid lightgray;
    vertical-align: middle;
}

.legend-color.attendance-not-entered {
    background-color: rgb(248, 227, 227);
}

.legend-color.attendance-entered {
    background-color: rgb(190, 238, 181);
}

.legend-color.future-date {
    background-color: #a9185f;
}

.legend-color.partial-data {
    background-color: #f5bb1b;
}

.legend-color.old-student-session-data {
    background-color: #7d12e0;
}

.legend-color.holiday {
    background-color: green;
}

.legend-color.canceled {
    background-color: #910981;
}

.cancel-change-translation-btn {
    margin-top: 4px;
}

.input-column {
    min-width: 400px;
}

tr.warning.odd td {
    background-color: #facd89 !important;
}
tr.warning input {
    background-color: white !important;
}

/** fix tooltip arrows. not sure why this doesn't work natively...might be something in the paper theme */
.tooltip.top .tooltip-arrow {
    border-top-color: #000;
    border-right-color: transparent !important;
} 
.tooltip.left .tooltip-arrow { 
    border-left-color: #000; 
} 
.tooltip.bottom .tooltip-arrow { 
    border-bottom-color: #000; 
    border-right-color: transparent !important;
} 
.tooltip.right .tooltip-arrow { 
    border-right-color: #000; 
}
.tooltip-inner { 
    background-color:#000;
}

hr.homeroom-cell {
    margin: 0;
    border-color: rgb(155, 155, 155);
    border-width: 2px;
}

.toastui-editor-mode-switch {
    display: none !important;
}

.tooltip .tooltip-inner {
    padding: 0.5em;
    padding-left: 0.75em;
}

.tooltip p, .tooltip li {
    margin-bottom: 0px !important;
    margin-left: 0px !important;
    text-align: left;
    font-size: 14px;
    line-height: 135%;
}
.tooltip ul {
    padding-left: 1em !important;
    margin-bottom: 0px !important;
}

.toastui-editor-contents {
    font-size: 16px !important;
    line-height: 135%;
}

.toastui-editor-dark .toastui-editor-contents ul > li::before {
    background-color: white !important;
    margin-top: 11px !important; /* aligns the bullets with the text */
}

.toastui-editor-contents ul > li::before {
    background-color: black !important;
    margin-top: 11px !important; /* aligns the bullets with the text */
}
.competency-set-title {
    font-size: 14px;
}

.modal.modal-primary .modal-header {
    background-color: #2196f3;
}

.modal.modal-primary .modal-header .modal-title,
.modal.modal-primary .modal-header .close {
    color: white;
}

.competency-set-name {
    font-size: 14px;
}

.competency-table-holder td {
    text-align: left;
}

.competency-table-holder p, .competency-table-holder ul {
    margin-bottom: 0;
}