@import url('fonts/noto-sans/noto-sans.css');
@import url('fonts/font-awesome-6-6-0/css/all.min.css');

:root {
  font-size: 16px;
  --cor-fundo: #ededf0;
  --cor-primaria: #354b60;
  --cor-secundaria: #bdcad7;
  --cor-interativa:#00a6b5;
  --cor-destaque: #008793;
  --dev: #557cf2;
  --hom: #ff7f50; /*coral*/
  --erro: #dc143c; /* crimson */
  --sucesso: #4D824D;
  --aviso: #F5C000;
  --info: cornflowerblue;
  --faixa-ambiente-altura: 20px;
  --tamanho-input: 42px;
}

body {
  font-size: 1rem;
  font-family: 'Noto Sans', verdana;
  padding-top: calc(var(--faixa-ambiente-altura) + .5rem);
  background-color: var(--cor-fundo);
  color: var(--cor-primaria);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  padding-top: 3em;
  flex-direction: column;
}

a { 
  color: var(--cor-interativa);
  text-decoration: none;
  
  &:hover {
    text-decoration: underline;
    color: var(--cor-destaque);
  } 
}

*:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--cor-interativa);
}

.logo-realm {
  background-image: url('../img/keycloak-logo.svg');
  background-size: contain;
  background-repeat: no-repeat; 
  background-position: center;   
  height: 36px;
  max-width: 90%;
  color: transparent;
  margin: auto;
  margin-bottom: 1.6rem;
}

.procempa-login {

  .input-group {
    display: flex;
    align-items: stretch;

      & .exibir-senha {
        background-color: transparent;
        border-color: transparent;
        position: relative;
        margin-left: -2.5rem;
        color: var(--cor-interativa);

        &:hover {
          color: var(--cor-destaque);
        }
    }
  }

  .form-control {
    margin: 0 0 1rem;
    
    & label {
      font-size: .9rem;
      font-weight: 600;
    }
  }
  
  & input {
    accent-color: var(--cor-interativa);
    border: 1px solid transparent;

    &:not([type=checkbox], [type=radio]) {
      min-height: var(--tamanho-input);
      padding: 0 1em;
    }

    &[type=checkbox], &[type=radio] {
      display: inline;
      margin-right: .25rem;
    }

    &[type=text], &[type=password] {
      border-color: var(--cor-secundaria);
    }

    &[type=button] {
      background-color: transparent;
      color: var(--cor-primaria);
      font-weight: bold;
    }

    &[type=submit] {
      background-color: var(--cor-interativa); 
      color: white;
      cursor: pointer;
      font-weight: bold;
    }

      &:hover {
        filter: saturate(140%) brightness(100%);
      }
      &:active {
        filter: saturate(120%) brightness(100%);
      }
  }

}


#kc-content, header {
  width: 70vw;
  max-width: 22rem;
  background-color: white;
  padding: 1.5rem 2rem 0;
}

#kc-page-title {
  font-size: 1.25rem;
}

#kc-content {
  & label {
    display: inline flex;
    margin-bottom: .3em;
    gap: .25rem;
    align-items: center;

  }
  & input:not([type=checkbox]) {
    width: 100%;
  }
}

#kc-content {
  padding-bottom: 2rem;
}

#kc-form-buttons {
  margin-top: .2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

#kc-info {
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--cor-fundo);
}

#kc-form-options, #backToApplication {
  /* background-color: lightblue; */
  margin: 1rem 0;
  font-size: .9rem;
  font-weight: 600;
  
}

#password {
  padding-right: 2.5rem;
}

/* Dropdown de idiomas */

#kc-locale {
  position: absolute;
  top: 1rem;
  right: 2rem;
  font-size: .8rem;

  & button {
    background-color: transparent;
    border: 0 none transparent;
    padding: .25rem .5rem;

    &::after {
      content: '▾';
      padding-left: .25rem;
    }

    &:hover {
      background-color: var(--cor-secundaria);
      cursor: pointer;
    }
  }

  & ul {
    background-color: white;
    list-style-type: none;
    padding: .5rem;
    display: none;
    position: absolute;
    right: 0;
    min-width: 100%;
    box-shadow: 2px 2px .5rem 0 #bdcad744;
  }

}


/* Ajustando posição do texto "campos obrigatórios" na tela de criação de conta */

.conteudo {
  display: grid;
  grid-template-rows: auto 1fr;
}

div.subtitle:has(.required) {
  order: 2;
  font-size: 85%;
  padding-top: .5rem;
}

.required {
  color: var(--erro);
  font-weight: bold;
}


/* Avisos e validação */

input[aria-invalid="true"] {
  border-color: var(--erro) !important;

  &:focus-visible {
    box-shadow: 0 0 0 3px var(--erro);
  }
}

#input-error, #input-error-password, #input-error-username {
  color: var(--erro);
  margin-top: .9em;
  font-size: .9em;
}

.alert {
  background-color: white;
  padding: 1rem;
  border: 3px solid transparent;
  font-weight: bold;
  margin: 1rem 0 2rem;
}  

.alert-error {
    border-color: var(--erro);
    color: var(--erro);
}
.alert-warning {
  border-color: var(--aviso);
}
.alert-success {
  border-color: var(--sucesso);
}
.alert-info {
  border-color: var(--info);
}

#kc-error-message {
  color: var(--erro);

  & p + p {
    margin-top: .5em;
  }
}


/* login social */

.social {

  padding-top: 1rem;
  padding-bottom: 1rem;

  & hr {
    border: 1px solid var(--cor-fundo);
    border-color: transparent;
    margin: 0;
  }

  & h2 {
    line-height: 1;
    font-size: .9em;
    margin: 0;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 2%;
    font-weight: 800;
    padding: 0;

    &::before, &::after {
      content: '–––––––-----';
      color: var(--cor-fundo);
      letter-spacing: -2px;
      padding: 0 .5rem;
    }
  }

  & ul {
    list-style: none;
    margin-top: 1.5rem;
    padding: 0;
    display: grid;
    gap: 1rem .8rem;
    grid-auto-columns: 1fr;

    & li {
      border: 1px solid var(--cor-fundo);
      text-align: center;
      height: var(--tamanho-input);
      
      & a {
        color: black;
        display: block flex;
        height: 100%;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        
        &:hover {
          background-color: var(--cor-fundo);
          filter: saturate(100%) brightness(90%);
        }
      }
    }
  }

  .kc-social-icon-text {
    display: none;
  }

  & li:has(#social-acessogov) {
    grid-column: 1/5;
    border-color: transparent;
  }
}

#social-acessogov {
  background-color: #1351b4;
  border: none;
  border-radius: 100em;
}

.govbr::before {
  content: url(../img/govbr.svg);
  display: block;
  padding-top: 5px;
}

/* fim login social */


/* rodapé */

footer {
  margin: 2rem 1rem 0;
  font-size: .8em;
  text-align: center;
  padding-bottom: 2rem;

  & a {
    color: var(--cor-primaria);
    text-align: center;
    width: auto;
    
    &:has(img) {
      display: block;
      /* border: 1px solid salmon; */
      margin-top: 1.5rem;
    }

    img {
      max-width: 200px;
    }
  }

}


/* fim do rodapé */


/* Identificação de ambiente */
.ambiente {
  display: flex;
  position: fixed;
  top:0;
  left: 0;
  height: 20px;
  width: 100%;
  color: white;
  border-top: 4px solid transparent;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 11px;
  line-height: .9;
  
  & > span {
    padding: 2px 0 4px 20px;
    width: fit-content;
  }
  
  &.desenvolvimento {
    border-color: var(--dev);
    & > span {
      background-color: var(--dev);
    }
  }
  &.homologacao {
    border-color: var(--hom);
    & > span {
      background-color: var(--hom);
    }
  }
  
  &.desenvolvimento::after {
    content: url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='1 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17 0L0.68 16L0 0H17Z' fill='%23557CF2'/%3E%3C/svg%3E");
  }  
  
  &.homologacao::after {
    content: url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='1 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17 0L0.68 16L0 0H17Z' fill='coral'/%3E%3C/svg%3E");
  }
  
}
/* Fim identificação de ambiente */