  @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;500&family=Work+Sans:wght@400;600&display=swap');

/* CSS HEX */
:root {
    --background-dark: #002f7b;
    --text-dark: olivedrab;
    --text-background: #FAFBFA;
    --front-dark: #333333;
    --background-light: #EEECDA;
    --background-lighter: #afeb8f;
/* }
:root {
    --text-dark: #654B38;
    --text-background: #FAFBFA;
    --front-dark: #373737;
    --background-dark: #6B5B51;
    --background-light: #9E9A9A;
    --background-lighter: #EEECDA; */

    --golden-orange: #ee9b00ff;
    --burnt-caramel: #ca6702ff;
    --hunter-green: #386641ff;
    --sage-green: #6a994eff;
    --outer-space: #4A5759;
    --rufous: #AE2012;
    --seal-brown: #582F0E;

    /* needed for placing popup modals under correct coords next to clicked element;
       also essential to make shroud cover entire view port height when displaying modals
    */ 
    --body-position: unset;
    /* seems to solve shroud height < view port height issue when displaying modals
        when applied together with body position set to unset
    */
    --shroud-position: fixed;
    /* position: fixed; displays modal in the center of the visible area
        NOTE: statement below apparently irrelevant now since vars above on body and shroud worked successfully
        "position: absolute; puts modal in the center of the document;
        set to absolute in order to resolve shroud height less than body height issue"
    */
    --modal-position: fixed;
  }
  
  body {
    position: var(--body-position);
    color: var(--front-dark);
    background-color: var(--text-background);
    overflow-x: hidden;
    font-family: Roboto, sans-serif;
    padding: 0 .5rem;
    margin: 0;
    height: 100svh;
  }
  
  *, *::after, *::before {
      box-sizing: border-box;
  }
  
  body.freeze {   /* freeze body when showing popup modals -- not using in this implementation */
      overflow: hidden;
      pointer-events: none;
  }

  @keyframes opacity-highlight {
    0% {
        background-color: var(--text-background);
    }

    100% {
        background-color: var(--background-lighter);
    }
  }
  
  .modal {
    position: var(--modal-position);
    width: 286px;
    height: fit-content;
    border-radius: .25rem;
    background: var(--text-background);
    -webkit-box-shadow: 2px 2px 10px -4px black;
    -moz-box-shadow: 2px 2px 10px -4px black;
    box-shadow: 2px 2px 10px -4px black;
    text-align: center;
    display: none;
}

@keyframes modal-pop {
    0% { 
        left: 0;
        top: 0;
        opacity: 0;
    }
    /* center modal on page */
    100% {
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        opacity: 1;
    }
}

.modal-shroud {
    position: var(--shroud-position);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
    background: rgba(0,0,0, 0.3);
    display: none;
}

.modal-shroud-show {
    display: block!important;
}

.modal-open {
    display: block!important;
    animation: modal-pop .3s cubic-bezier(0,.6,1,1) forwards;
}

#modal-close-button {
    background-color: var(--background-lighter);
    border-radius: .25em;
    padding: .25rem;
}

.modal-content {
    overflow-y: auto;
    max-height: calc(100vh - 13rem);
}

.row-flex {
    display: flex;
    align-items: center;
    justify-content: space-around;
    margin: 1rem 0;
}

.row-flex.content {
    font-size: small;
    padding: 0 .5em;
}

.row-flex.content > img {
    width: 24rem;
}

.row-flex.content > :last-child {
    text-align: left;
    padding: .5em;
}

.two-btn-header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 0 .3em;
    max-height: 2.6em;
    border-radius: .25rem .25rem 0 0;
    background-color: var(--background-dark);
}

.two-btn-header h4 {
    overflow: hidden;
    text-overflow: ellipsis;
    text-wrap: nowrap;
    white-space: nowrap;
    padding: 0 .25em;
    color: var(--text-background);
    font-weight: 400;
}

.two-element-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.round-button-disk {
    color: var(--text-background);
    background-color: var(--background-dark);
    border-radius: .25em;
    padding: .15rem;
    width: 32px;
    height: 32px;
}

.round-button {
    cursor: pointer;
}

.round-button:hover {
    animation: button-highlight .5s ease-in-out forwards;
}

.round-button.round-button-disabled {
    opacity: .8!important;
    cursor: not-allowed!important;
    animation: none!important;
}

.button-disabled {
    opacity: .8!important;
    cursor: not-allowed!important;
    animation: none!important;
}

.disable-dblclick-select {
    user-select: none; /* standard syntax */
    -webkit-user-select: none; /* webkit (safari, chrome) browsers */
    -moz-user-select: none; /* mozilla browsers */
    -khtml-user-select: none; /* webkit (konqueror) browsers */
    -ms-user-select: none; /* IE10+ */
}

.button {
    min-width: 6em;
    background: var(--background-dark);
    color: var(--background-lighter);
    font-size: 1em;
    border: 0;
    padding: .5em;
    border-radius: .25em;
    cursor: pointer;
    margin: .5em;
}
.button-toggled {
    color: var(--background-dark);
    background-color: var(--background-lighter);
    border: 1px inset var(--background-light);
}

.button:hover {
    animation: button-highlight .7s ease-in-out forwards;
}
@keyframes button-highlight {
    0% {
        opacity: 1;
    }
    100% {
        opacity: .8;
    }
}

.popup-menu-user-selection {
    display: flex;
    gap: .25rem;
    & div:first-child {
      opacity: .7;
    }
}

.btn-icon-wrap {
    width: 24px;
    height: 24px;
}
.btn-icon-email {
    background-image: url(../img/mail_373737_24.svg);
    opacity: .8;
}
.btn-icon-person-edit {
    background-image: url(../img/person_edit_FAFBFA_24.svg);
}
.btn-icon-wapp {
    background-image: url(../img/whatsapp_373737_20.png);
    width: 20px;
    height: 20px;
}
.btn-icon-burger {
    background-image: url(../img/more_FAFBFA_24.svg);
}
.btn-icon-cloud-upload {
    background-image: url(../img/cloud_upload_373737_20.svg);
    height: 20px;
    width: 20px;
}
.btn-icon-remove-sel {
    background-image: url(../img/remove_selection_373737_24.svg);
    width: 20px;
    height: 20px;
}
.btn-icon-calendar-confirm {
    background-image: url(../img/calendar_confirm_373737_20.svg);
    width: 20px;
    height: 20px;
}
.btn-icon-calendar-cancel {
    background-image: url(../img/calendar_cancel_373737_20.svg);
    width: 20px;
    height: 20px;
}
.btn-icon-add-client {
    background-image: url(../img/person_add_FAFBFA_24.svg);
}
.btn-icon-person-cancel {
    background-image: url(../img/person_remove_FAFBFA_24.svg);
    background-color: var(--rufous)!important;
}
.btn-wrap {
  background-color: var(--background-dark);
  border-radius: .25rem;
  padding: .25rem;
  cursor: pointer;
}
.btn-wrap:hover {
  opacity: .8;
  animation: btn-animation .5s ease-in-out forwards;
}
@keyframes btn-animation {
  0% { opacity: 1 } 100% { opacity: .8 }
}

.bounce-loader {
    display: none;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 10000;
}
.bounce-show {
    display: flex!important;
    justify-content: center;
    align-items: center;
}
.bouncer {
    width: 18px;
    height: 18px;
    background-color: red;
    border-radius: 50%;
    margin: 8px;
    animation: bounce .6s cubic-bezier(.68,.01,.63,.99) alternate infinite;
}
.bounce-loader.bounce-show  div:nth-child(2) {
    animation-delay: .2s;
}
.bounce-loader.bounce-show  div:nth-child(3) {
    animation-delay: .4s;
}
.bounce-loader.bounce-show  div:nth-child(4) {
    animation-delay: .6s;
}

@keyframes bounce {
    0% {
        transform: rotateX(0) translateY(0);
    }
    100% {
        transform: rotateX(45deg) translateY(100px);
    }
}

input, select {
    border: 1px solid var(--background-light);
    border-radius: .5rem;
    width: 100%;
    height: 2rem;
    padding: 0 .5rem;
}

input[type=radio] {
    width: 1rem;
    height: 1rem;
    margin: 0;
    cursor: pointer;
}

input[type="checkbox"] {
  height: auto;
  width: auto;
  margin-right: .5em;
  padding: 0;
  cursor: pointer;
}

input[type="checkbox"]:checked {
    background-color: var(--background-dark);
    color: var(--background-lighter);
}

.spacer {
    height: 1rem;
}

.form {
    padding: 1rem .5rem;
}

.form label {
    text-align: left;
    display: block;
    font-size: x-small;
    font-weight: bold;
    padding: .25em;
}

.form label span {
    color: red;
    font-weight: bold;
}

.form label span::before {
  /* content: "\e000";
  font-family: 'Material Icons';
  vertical-align: text-bottom;
  padding-right: .15rem;
  color: var(--background-dark);
  font-size: large;
  font-weight: normal; */
  display: none;
}

.form label span.show-error::before {
  display: inline-block;
}

.form .form-input-wrap {
    position: relative;
    max-width: 270px;
}

.form .form-input-wrap input {
    padding-right: 2.2rem;
}

.form .form-input-wrap img {
    position: absolute;
    right: 0;
    top: 1.3rem;
    cursor: pointer;
    padding-right: .5rem;
    padding-left: .5rem;
}

.form .form-input-wrap .material-symbols-outlined:hover {
    opacity: 1;
}

.form input[type=checkbox] {
    height: auto;
    padding: 0;
    margin: 0;
    width: auto;
}

.shaded-box {
    margin-bottom: 1rem;
    border: 1px var(--background-light) solid;
    border-radius: 0.5rem;
    padding: 1rem 1rem 0 1rem;
    -webkit-box-shadow: 2px 2px 10px -4px black;
    -moz-box-shadow: 2px 2px 10px -4px black;
    box-shadow: 2px 2px 10px -4px black;
}

.box {
    display: flex;
    flex-direction: column;
    /* min-width: 20em;
    max-width: 20em; */
}

.box-header {
    padding: .5em;
    background-color: var(--background-dark);
    color: var(--text-background);
    border-radius: .5em .5em 0 0;
    text-align: center;
    border: 1px solid var(--background-light);
    border-bottom: 0;
    font-size: larger;
}

.box-body {
    border: 1px solid var(--background-light);
    border-radius: 0 0 .5em .5em;
    border-top: 0;
}

/* disable MS edge, MS IE nagging eye in password type input */
input::-ms-reveal, input::-ms-clear {
    display: none;
}

/* no user text select */
.no-user-select {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

@keyframes header-hover {
    from {
        background-color: var(--background-dark);
        color: var(--background-lighter);
    }
    to {
        background-color: var(--background-lighter);
        color: var(--background-dark);
    }
}
