
.addressHeader {
  width: 100%;
  background-color: var(--bar-color);
  padding:.5rem;
}

.addressHeader input {
  margin-top: 0;
  font-size: larger;
  font-weight: bold;
  color: var(--accent-text);
}

.addressHeader input:focus +span +label,
.addressHeader input:not(:placeholder-shown) +span +label{
  display: none;
}

.addItemBtn {
  font-size: .75rem;
  margin-top: .5rem;
}

.formElementAddressSuggestions {
  position: absolute;
  top:1.5rem;
  width: 100%;
  background-color: var(--content-color);
  padding: .0rem .5rem .25rem; 
  border: thin solid var(--accent-text);
  z-index: 10;
}

.formElementAddressSuggestions div {
  margin-top:.25rem;
}

.formElementAddressSuggestions div:hover {
  cursor: pointer;
  background-color: var(--accent-text);
}

.selectedSuggestion {
  background-color: var(--accent-text);
}

.formElementAddressSuggestions:hover .selectedSuggestion {
  background-color: var(--content-color);
}

.formElementAddressSuggestions:hover .selectedSuggestion:hover {
  background-color: var(--accent-text);
}

.formGrid {
  display:flex;
  flex-flow: column;
  justify-content: flex-start;
  background-color: var(--bg-color);
  padding-bottom: 1.5rem;
  /*! margin-bottom: 2rem; */
}

.formGridCards {
  display: flex;
  flex-flow: row wrap;
  background-color: var(--bg-color);
  padding: .5rem;
}

fieldset+.iconButton {
  font-size: smaller;
  flex-basis: 2rem;
}

.formCol {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.formRow {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  flex:1 1
}

.formCol .formFlex {
  flex: 0 1 1.5rem;
}

.formRow .formFlex {
  flex: 1 1 15rem;
}

/*
fieldset {
  border: none;
  flex-basis: 100%;
  margin: 0;
  padding: 0;
}

fieldset.formRow {
  border:thin solid var(--content-color);
  border-radius: .5rem;
  margin: .25rem
}
*/

fieldset legend button {
  margin-left:1rem;
}

.emptyRowText:last-child {
  display: block;
}

.emptyRowText {
  display: none;
  text-align: center;
  margin:1rem;
}
/* think these form controls are completely obsolete */
form-controls {
  min-width: 3rem;
  text-align: right;
  margin-top:1.25rem;
}

form-controls.EditMode>.formControlEdit {
  display: inline-block;  
}
form-controls.EditMode>.formControlNoEdit {
  display: none;  
}

.formControlEdit {
  display: none;
}

.formHeader,
.formRow {
  display: flex;
}

.formHeader>h3,
.formRow>form-element {
  flex-grow: 1;
}

.formRow .iconButton {
  margin:.5rem;
  align-self: center;
}

.formControls {
  text-align: right;
  margin: 1.5rem .5rem .5rem;
  width: 100%;
}

.formCtrl {
  flex-basis: 100%;
  text-align: center;
  margin-right: .5rem;
}

.formCtrl button {
  margin: 0 1rem;
  font-weight: bold;
  width :7rem;
  cursor: pointer;
  outline: 0;
  text-align: center;
  padding: .5rem 1rem;
  border-radius: .25rem;
  background-color: transparent;
  transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;      
}

.formCtrl i {
  margin: 0 .5rem;
}

.btnCancel {
  border: 1px solid black;
  color: black;                
}

.btnCancel:hover {
    color: #fff;
    background-color: black;
}

.btnSave {
  border: 1px solid var(--theme-color);
  color: var(--theme-color);                
}

.btnSave:hover {
    color: var(--font-color);
    background-color: var(--theme-color);
  }

.profileHeader {
  flex-direction: row;
}

#profilePicPreview {
  position:relative;
  width: 7rem;
  height: 7rem;
  margin:auto;
}

#profilePicUploader {
  position: absolute;
  right: .5rem;
  bottom: .5rem;
  background:var(--bar-color);
}

#profilePicInput {
  display: none;
}

form-element {
  display:grid;
  position: relative;
  grid-template-areas: "formElement";
  margin: 2rem 1rem .5rem 1rem;
  align-items: center
}

form-element:has(select)::after {
  content: "";
  width: 0.8em;
  height: 0.5em;
  background-color: white;
  clip-path: polygon(100% 0%, 0 0%, 50% 100%);
  justify-self: end;
  pointer-events: none;
}

form-element *,
form-element::after{
  grid-area: formElement;
}

form-element > select,
form-element > input {
  display: block;
  /*! margin-top: 1.5rem; */
  background-color: var(--bg-color);;
  outline: none;
  border-width: 0 0 1px 0;
  border-color: transparent;
  font-size: 1rem;
  color: var(--font-color);
  width: 100%;
  /*! padding: 0; */
}


form-element > textarea {
  width: 100%;
  height: 5rem;
  outline: none;
  resize: vertical;
  background-color: transparent;
  border: thin solid var(--content-color);
  color: var(--text-color);
  font-size: 1rem;
  padding: .5rem;
}


form-element > select:enabled,
form-element > input:enabled {
  border-color: var(--bar-color);
}


form-element > select {
  appearance: none;
}

.inputUnderline {
  transition: all ease-in-out .2s;
  background: var(--theme-color);
  content: "";
  display: block;
  height: 2px;
  width: 0px;
  align-self: end;
}

/**
form-element > select:enabled:hover + .inputUnderline,
form-element > select:focus + .inputUnderline,
form-element > input:enabled:hover + .inputUnderline,
form-element > input:focus + .inputUnderline,
form-element > textarea:enabled:hover + .inputUnderline,
form-element > textarea:focus + .inputUnderline {
  width:100%;
}
**/

form-element:has(select:enabled):hover .inputUnderline,
form-element:has(input:enabled):hover .inputUnderline,
form-element:has(textarea:enabled):hover .inputUnderline,
form-element:focus-within .inputUnderline {
  width:100%;
}

form-element label {
  /*position: absolute;*/
  color: var(--accent-text);
}

form-element > input +span +label,
form-element > select +span +label {
  font-weight: bold;
  /*transform: translate(0.25rem, -1.5rem);*/
  transition: all 0.2s ease-out;
}

form-element > select +span +label {
  pointer-events: none;
}


form-element > input:required +span +label:before,
form-element > select:required +span +label:before {
  content: "*";
  color:red;
  margin-right: .3rem;
  transition:all .2s;
}



form-element > input:focus +span +label,
form-element > select:focus +span +label,
input:not(:placeholder-shown) +span +label,
select:has(> option:checked:not([value=""])) +span +label{
  transform: translate(-.25rem, -1.5rem);
  font-size: .75rem;
  font-weight: normal;
}

form-element > input:required:valid +span +label::before,
form-element > select:required:valid +span +label::before {
  color: transparent;
  margin-right: -.5rem;
}

profile-pic {
  flex: 0 2 7rem;
  margin: .5rem;
}


form-element > select > option {
  background-color: var(--bg-color);
}



@media screen and (max-width: 767px) {
  .formHeader {
    font-size: 1.25rem;
  } 
}

@media screen and (max-width: 450px) {
 
  .formRow .iconButton {
    align-self: flex-end;
  }
}