/*
  Any global sass variables, functions, or mixins should be 
  declared above all imported files so that they can be used
  by said imported files
*/
/*
  Any global sass variables, functions, or mixins should be 
  declared above all imported files so that they can be used
  by said imported files
*/
/* Global Colors */
:root {
  --background-grey: #efefef;
  --background-grey-light: #f2f2f2;
  --border-grey-active: #999999;
  --border-grey-passive: #c0c0c0;
  --light-white: #f8f9fa;
  --loanclass1-blue: #0000cd;
  --loanclass1-default: transparent;
  --loanclass1-green: green;
  --loanclass1-grey: grey;
  --loanclass1-orange: orange;
  --loanclass1-pink: pink;
  --loanclass1-purple: #663399;
  --loanclass1-red: #b22222;
  --loanclass1-yellow: #ffff66;
  --loanclass1-teal: #04b4bc;
  --rescap-black: #212529;
  --rescap-green: #92C353;
  --rescap-grey: #adb5bd;
  --rescap-purple: mediumpurple;
  --rescap-red: #D54851;
  --rescap-yellow: #FFB911;
  --text-grey-passive: #6c757d;
}

/* Global Sizes */
:root {
  --fieldset-height: 2.1324rem;
  --universal-font-size: 1rem;
  --modal-width: 43.6111rem;
}

html, body {
  width: 100vw;
  font-size: 0.85rem;
  font-family: "Poppins", "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.25;
  overflow: hidden;
}

/* global standardized font size */
button,
div,
h1,
h2,
h3,
h4,
h5,
h6,
input,
li,
select,
table,
td,
ul {
  font-size: var(--universal-font-size);
}

h2 {
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  text-align: left;
}

.hidden {
  display: none;
}

/* experimental for now -fm */
.container-fluid {
  max-width: 85rem;
  margin: 0;
}

.bg-palevioletred {
  background-color: palevioletred;
  color: white;
}

.btn-palevioletred {
  background-color: palevioletred;
  color: white;
  border: 1px solid transparent;
}
.btn-palevioletred:hover {
  background-color: #a87082;
  border-color: #757072;
  color: white;
}

.nav-link-nohover {
  cursor: unset;
}

/* Holderover Bootstrap styles */
.nav-tabs .nav-link {
  color: #495057;
  background-color: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}

.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
  color: #495057;
  background-color: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}

.nav-tabs .nav-link:focus,
.nav-tabs .nav-link:hover {
  border-color: #e9ecef #e9ecef #dee2e6;
}

@keyframes rotation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(359deg);
  }
}
.rotate {
  animation-direction: normal;
  animation-name: rotation;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

#loading-overlay {
  position: absolute;
  top: 3rem;
  left: 0;
  height: calc(100vh - 3rem);
  width: 100vw;
  z-index: 10000;
  background-color: rgba(0, 0, 0, 0.25);
}

.modal .modal-dialog {
  max-width: var(--modal-width);
  margin: 1.75rem auto;
}
.modal .modal-dialog .modal-header {
  display: block;
  padding: 1rem 1rem 0 1rem;
  border-bottom: 0 none;
}
.modal .modal-dialog .modal-header .modal-title {
  font-size: 1.25rem;
  line-height: 1.8rem;
  font-weight: bold;
  border-bottom: 1px solid black;
}
.modal .modal-dialog .modal-footer {
  border-top: unset;
}

/* Temporary breakpoint vars */
/*
// Shade a color: mix a color with black
@function shade-color($color, $weight) {
  @return mix(black, $color, $weight);
}

*/
.forgot-page {
  height: 100vh;
  padding-top: 5rem;
  background-color: var(--background-grey, darkcyan);
}
.forgot-page .forgot-panel {
  width: var(--modal-width);
  margin: 0 auto;
  padding: 1rem;
  background-color: white;
  border: 1px solid var(--rescap-grey, darkcyan);
}
.forgot-page .forgot-panel h2 {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  line-height: 1.8rem;
  font-weight: bold;
  border-bottom: 1px solid black;
}
.forgot-page .forgot-panel button {
  margin-top: 0.75rem;
}
.forgot-page .forgot-panel .instructions {
  margin-bottom: 1rem;
}
.forgot-page .forgot-panel fieldset {
  width: 75%;
  margin-top: 1rem;
}

/* General Form Styles */
.btn,
.btn-group-sm > .btn {
  font-size: 1rem;
  font-weight: normal;
}

textarea {
  min-height: var(--fieldset-height);
}

.input-group .input-group-text {
  padding: 0.15rem 0.75rem;
}
.input-group .input-group > .custom-select:not(:first-child),
.input-group .input-group > .form-control:not(:first-child) {
  border-top-left-radius: unset;
  border-bottom-left-radius: unset;
}

.form-control {
  height: 2.0259rem;
  padding: 0.25rem 0.5rem;
  font-size: 1rem;
  border-color: var(--border-grey-active);
}
.form-control:disabled, .form-control[readonly] {
  color: unset;
  background-color: unset;
  color: var(--text-grey-passive);
  border-color: var(--border-grey-passive);
}

.custom-checkbox .custom-control-label::before {
  top: 0;
}
.custom-checkbox .custom-control-label::after {
  top: 0;
}

.custom-control-inline {
  margin-right: 0.5rem;
}

.custom-select {
  height: 2.0259rem;
  padding: 0.30555rem 1.75rem 0 0.75rem;
  font-size: 1rem;
  line-height: 1.2;
  border-color: var(--border-grey-active);
}
.custom-select.is-invalid {
  border-color: unset;
}
.custom-select:disabled {
  color: unset;
  background-color: unset;
  color: var(--text-grey-passive);
  border-color: var(--border-grey-passive);
}
.custom-select:disabled > option {
  color: var(--text-grey-passive);
}

/*select[disabled] > option {
  color: var(--text-grey-passive) !important;
}*/
input[type=date].form-control {
  padding: 0.15rem 0.25rem 0.25rem 0.5rem;
}
input[type=date].form-control::-webkit-calendar-picker-indicator {
  margin-left: -0.5rem;
}

.invite-page {
  height: 100vh;
  overflow: auto;
  padding-top: 1rem;
  background-color: var(--background-grey, darkcyan);
}
.invite-page .invite-panel {
  width: var(--modal-width);
  margin: 0 auto 5rem auto;
  padding: 1rem;
  background-color: white;
  border: 1px solid var(--rescap-grey, darkcyan);
}
.invite-page .invite-panel h2 {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  line-height: 1.8rem;
  font-weight: bold;
  border-bottom: 1px solid black;
}
.invite-page .invite-panel button {
  margin-top: 0.75rem;
}
.invite-page .invite-panel .instructions {
  margin-bottom: 1rem;
}
.invite-page .invite-panel fieldset {
  width: 75%;
}

.signalr-indicator {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 0.25rem;
}
.signalr-indicator .circle {
  position: relative;
  top: 0.25rem;
  width: 100%;
  height: 0;
  padding-bottom: 100%;
  clip-path: circle(50% at 50% 50%);
  background-color: rgba(255, 255, 255, 0.25);
}
.signalr-indicator .circle .dot-1, .signalr-indicator .circle .dot-2, .signalr-indicator .circle .dot-3 {
  position: absolute;
  top: 40%;
  width: 18%;
  height: 18%;
  clip-path: circle(50% at 50% 50%);
  background-color: white;
}
.signalr-indicator .circle .dot-1 {
  left: 20%;
  animation: alternate-dots 1s infinite linear both;
}
.signalr-indicator .circle .dot-2 {
  left: 40%;
  animation: alternate-dots 1s infinite linear both;
  animation-delay: 0.25s;
}
.signalr-indicator .circle .dot-3 {
  left: 60%;
  animation: alternate-dots 1s infinite linear both;
  animation-delay: 0.5s;
}

@keyframes alternate-dots {
  0%, 100% {
    opacity: 100%;
  }
  50% {
    opacity: 0;
  }
}
.login-page {
  height: 100vh;
  padding-top: 5rem;
  background-color: var(--background-grey, darkcyan);
}
.login-page .login {
  width: 18.647rem;
  margin: 0 auto;
  padding: 1rem;
  background-color: white;
  border: 1px solid var(--rescap-grey, darkcyan);
}
.login-page .login h2 {
  margin-bottom: 0.75rem;
  font-size: 1.25rem;
  line-height: 1.8rem;
  font-weight: bold;
  border-bottom: 1px solid black;
}
.login-page .login fieldset {
  margin-top: 0.25rem;
}
.login-page .login button {
  margin-top: 0.5rem;
}
.login-page .login .forgot {
  padding: 0;
  color: #007bff;
}
.login-page .login .forgot:hover {
  color: #0056b3;
  text-decoration: underline;
}

.logout-page {
  height: 100vh;
  padding-top: 5rem;
  background-color: var(--background-grey, darkcyan);
}
.logout-page .logout {
  width: var(--modal-width);
  margin: 0 auto;
  padding: 1rem;
  background-color: white;
  border: 1px solid var(--rescap-grey, darkcyan);
}
.logout-page .logout h2 {
  font-size: 1.25rem;
  line-height: 1;
  font-weight: bold;
}

.material-icons,
.material-icons-outlined {
  font-size: 1rem;
  position: relative;
  top: 0.15em;
  margin-right: 2px;
}

.google-map.material-icons,
.google-map.material-icons-outlined {
  margin-right: 0;
}

.material-icons.btn {
  margin: 0;
  padding: 0;
}

.material-icons.btn.btn-danger {
  border-color: var(--red);
  background-color: var(--red);
}

/*.b-bar-vertical-inline .material-icons,
.b-bar-vertical-popout .material-icons,
.b-bar-vertical-small .material-icons {
  font-size: unset;
  position: unset;
  top: unset;
  margin-right: unset;
}
*/
#navMenu .nav-header {
  color: white;
}
#navMenu .user-name {
  padding-left: 0.5rem;
  padding-right: 0.15rem;
  font-size: var(--universal-font-size);
  color: rgba(255, 255, 255, 0.65);
}
#navMenu .user-name .material-icons {
  font-size: 1.25rem;
}

.profile-page .inner {
  height: calc(100vh - var(--navmenu-height));
  overflow-y: scroll;
}
.profile-page h2 {
  margin-bottom: 1rem;
  padding-top: var(--no-switch-padding);
  font-size: 1.25rem;
  font-weight: bold;
  line-height: 1.8rem;
  color: black;
  border-bottom: 1px solid black;
}
.profile-page fieldset {
  width: 75%;
}

.recover-page {
  height: 100vh;
  padding-top: 5rem;
  background-color: var(--background-grey, darkcyan);
}
.recover-page .recover-panel {
  width: var(--modal-width);
  margin: 0 auto;
  padding: 1rem;
  background-color: white;
  border: 1px solid var(--rescap-grey, darkcyan);
}
.recover-page .recover-panel h2 {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  line-height: 1.8rem;
  font-weight: bold;
  border-bottom: 1px solid black;
}
.recover-page .recover-panel button {
  margin-top: 0.75rem;
}
.recover-page .recover-panel .instructions {
  margin-bottom: 1rem;
}
.recover-page .recover-panel fieldset {
  width: 75%;
  margin-top: 1rem;
}

/* Global Table Styles */
table td, table th {
  line-height: 1.25em;
}

.table > :not(:last-child) > :last-child > * {
  border-bottom-color: unset;
}

.table-responsive {
  overflow-x: visible;
}
@media only screen and (max-width: 852px) {
  .table-responsive {
    overflow-x: scroll;
  }
}

.table thead th {
  border-bottom: 1px solid #dee2e6;
}

.table.plain {
  margin-bottom: unset;
}
.table.plain td, .table.plain th {
  padding: unset;
  vertical-align: top;
  border-top: none;
  min-height: 1em;
  line-height: 1em;
}

.error-boundary {
  text-align: center;
  padding-top: 5rem;
}
.error-boundary h1 {
  color: var(--rescap-red);
  font-size: x-large;
}
.error-boundary p {
  font-size: x-large;
}

/* General Error Bar */
#blazor-error-ui {
  background: lightyellow;
  bottom: 0;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  display: none;
  left: 0;
  padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  position: fixed;
  width: 100%;
  z-index: 1000;
}

#blazor-error-ui .dismiss {
  cursor: pointer;
  position: absolute;
  right: 0.75rem;
  top: 0.5rem;
}