.flex-wrapper-outside {  
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  max-width: 100%;  
  display: flex;
  flex-direction: column;
}

.flex-wrapper-inside {   
  flex-grow: 1;  
  display: flex;
  flex-direction: column;
  
  /* for Firefox */
  min-height: 0;
}

.navbar-bottom {
    display: flex;
    background-color: lightgray;    
  }
  
.navbar-bottom span {
    float: left;
    display: block;
    background-color: lightgray;
    color: black;
    text-align: center;
    padding: .3rem .3rem;
    text-decoration: none;
    font-size: 0.75rem;
  }

  .navbar-bottom span.info {
    background-color: blue;
    color: white;
  }
  .navbar-bottom span.warn {
    background-color: yellow;
    color: black;
  }
  .navbar-bottom span.error {
    background-color: #ff0000;
    color: white;
  }

  .label-size {
    width: 100px;
  }

.main {
  flex-grow: 1;
  overflow: auto;
  
  /* for Firefox */
  min-height: 0;
}

.textarea-div {
  padding-top: .375rem;
  padding-bottom: .375rem;
  padding-right: .375rem;
}

.project-form {  
  padding-bottom: .75rem;
}

.um-anlegen {
  background-color: rgba(0, 0, 0, 0.05);
  border-top: 1px solid #dee2e6;
  border-bottom: 1px solid #dee2e6;
  margin-bottom: .75rem;
}

.um-row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;  
}

input[type="checkbox"] {
  display: none;
}

input {
  display: block;
  height: calc(1.5em + .75rem + 2px);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;  
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: .25rem;
  transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

input[type="date"] {   
  width: 100%; 
  padding: .375rem .375rem .375rem 1.75rem;  
}

input[type="text"], input[type="number"]{  
  width: 100%;  
  padding: .375rem .375rem;
}

input[type="checkbox"] + label::before {
  display: block;
  height: calc(1.5em + .75rem + 2px);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;  
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: .25rem;
  transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
  float: left;  
  width: 38px; 
  padding: .375rem .375rem;  
  content: "";
}

input[type="checkbox"]:checked + label::before {
  box-shadow: inset 0px 0px 0px 3px #fff;
  background-color: grey;
}

.input-wrapper-zweck {
  position: relative;
  display: flex;
  flex: 1 1 max-content;
  padding: .375rem .375rem
}

.input-wrapper {
  position: relative;
  display: flex;  
  padding: .375rem .375rem
}

  .input-wrapper i{ 
    position: absolute; 
    left: .75rem;
    top: calc(50% - 0.5em);
    color: gray; 
  }

.input-wrapper-date {
  position: relative;
  display: flex;    
}
  
  .input-wrapper-date i{ 
    position: absolute; 
    left: .75rem;
    top: calc(50% - 0.5em);
    color: gray; 
  }

.input-wrapper-konto {
  position: relative;
  display: flex;  
  padding: .375rem .375rem
}

.input-wrapper-flex-no-padding {
  position: relative;
  display: flex;
}

.input-wrapper-flex-no-padding-fixed-width {
  position: relative;
  display: flex;
  min-width : 148px;
}

.input-wrapper-flex-no-side-padding {
  position: relative;
  display: flex;
  padding: 0 .375rem;
}

.input-wrapper-aktiv {
  position: relative;
  display: flex;
  flex: 1 1 max-content;
}

.input-wrapper-fa {
  position: relative;
  display: flex;
  min-width : 50px;
  min-height : 50px;
  padding: .375rem .375rem
}

  .input-wrapper-fa i { 
    position: absolute; 
    left: .75rem;
    top: calc(50% - 0.5em);    
  }

.append-style-fa {
  min-width: calc(.75rem + .75rem + 20px + 2px);
  min-height: calc(1.5em + .75rem + 2px);
}

.tabelle {
  display:table;  
  width: 100%; 
}

.reihe { 
  display:table-row;
  width: 100%;
  
}

  .reihe:nth-child(odd) {
    background-color: rgba(0, 0, 0, 0.05);
       
  }
        
  .reihe:nth-child(even) {
    background-color: white;
  }

.zelle {
  display:table-cell;  
  width: 20%;
  padding: 0.5em .375em;
  border-top : 1px solid #dee2e6;       
}

.header {
  font-weight: bold;
}

.align-right {
  display: flex;
  justify-content: flex-end;
}

#money {
  text-align: right;
  font-weight: bold;
}

#money-underline {
  /* text-align: right; */
  font-weight: bold;
  text-decoration: underline; 
}

#td-money {
  text-align: right;
  padding-right: 2em;  
}

.red {
  color: #ff0000;
}

.black {
  color: #000000;
}

#teiler {
  width: 20%;
}
/* #betrag:invalid+span:after {
    content: '✖';
    padding-left: 5px;
}

#betrag:valid+span:after {
  content: '✓';
  padding-left: 5px;
} */

.unchecked {
  content: '✖';
  padding-left: 5px;
}

.checked {
  content: '✓';
  padding-left: 5px;
}

#checkbox {
  font-weight: bold; 
  text-align: right;
  padding-left: .375rem;
  color: #007bff;
}

.align-on-row {
  max-width: 100%;
  flex-grow: 1;
  flex-basis: 0;
  position: relative;
  display: flex;
  vertical-align: middle;
  text-align: center;  
  justify-content : space-between;
}

.blue-bold {  
  font-weight: bold;
  color: #007bff;
  
}

.dateRef {
  padding: .375rem .375rem;
  min-width: 50px;  
}

.datePickInhalt {
  padding: .375rem .375rem;
  flex : 1 1 100%;
}

.spacer {
  width: 1px;
  padding: .75rem .75rem;
}

.plusminus {
  padding: 1rem .75rem !important;  
  
}

.vorgemerkt {
  background-color: rgb(247, 247, 137) !important;
}

.abgelaufen {
  animation: 2s infinite backchange;
  -webkit-animation: backchange 2s infinite; /* Chrome, Safari, Opera */
}

@keyframes backchange {
  0% {background-color: rgb(247, 247, 137);}
  25% {background-color: rgb(247, 247, 137);}  
  50% {background-color: rgb(250, 129, 129);}
  75% {background-color: rgb(250, 129, 129);}
  100% {background-color: rgb(247, 247, 137);}
}
/* Chrome, Safari, Opera */
@-webkit-keyframes backchange {
      0%   {background: rgb(247, 247, 137);}
      25%   {background: rgb(247, 247, 137);}
      50%  {background: rgb(250, 129, 129);}
      75%  {background: rgb(250, 129, 129);}
      100%   {background: rgb(247, 247, 137);}
}

#thermometer {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

#hygrometer {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

#barometer {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.reduced-pad {
  padding-top: .5rem !important;
  padding-bottom: .5rem !important;
}

.reduced-pad-fixed-width {
  padding-top: .5rem !important;
  padding-bottom: .5rem !important;
  min-width: 148px;
}

.reduced-pad-fixed-width-100 {
  padding-top: .5rem !important;
  padding-bottom: .5rem !important;
  min-width: 100px;
}

.ausgabe-pad-min-width-zweck {
  padding-top: .3rem !important;
  padding-bottom: .3rem !important;
  min-width: 5%;
}

.ausgabe-pad-min-width-betrag {  
  text-align: right;
  padding-top: .3rem !important;
  padding-bottom: .3rem !important;
  min-width: 5% !important;  
}

.ausgabe-pad-min-width-summe {
  text-align: right;
  padding-top: .3rem !important;
  padding-bottom: .3rem !important;
  min-width: 5%;
}

.right-one {
  display: flex;
  flex-direction: row-reverse;
  padding-right: 0;
}

.no-padding-left {    
  padding-left: 0;
}

.chart-doughnut {
  position: relative;   
  margin: auto;
}

.loader-wrapper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;  
  display:flex;
  justify-content: center;
  align-items: center;
}

.fade-in-image {  
  max-height: 85vh;
  animation: fadeIn 5s;
  -webkit-animation: fadeIn 5s; /* Chrome, Safari, Opera */
}

.fade-out-text {
  animation: fadeOut 7s forwards;
  -webkit-animation: fadeOut 7s forwards; /* Chrome, Safari, Opera */
}

.fade-in-image img {
  object-fit: contain;
  display: block;
  width: 100%;
  height: 100%;
}

.fade-in-image span {
  width:100%;
  object-fit: contain;  
  position: absolute;
  top: 50%;  
  background-color: silver;
  background-color: hsla(0, 0%, 100%, 0.5);
  left: 50%;
  transform: translate(-50%, -50%);
}

@keyframes fadeIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes fadeOut {
  0% { opacity: 1; }
  100% { opacity: 0; }
}

/* Chrome, Safari, Opera */
@-webkit-keyframes fadeIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/* Chrome, Safari, Opera */
@-webkit-keyframes fadeOut {
  0% { opacity: 1; }
  100% { opacity: 0; }
}