* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: Arial, Helvetica, sans-serif;
}

body {
    background-image: url("cidade_solar.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

.container {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.painel {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    background-color: #ffffffF0;
    padding: 4rem;
}

/* Logo lateral */
.logo-p {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.logo-p img {
    width: 320px;
}

.logo-p p {
    color: #1a6b42;
    font-size: 11px;
}

button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Barra vertical entre logo e formulário */
.vertical-bar {
    display: inline-block;
    width: 2px;
    height: 260px;
    background-color: #ffffff;
    flex-shrink: 0;
    margin-left: 55px;
    margin-right: 55px;
}

/* Formulário principal */
.form {
    width: 320px;
}

.form p {
    color: #1a6b42;
    font-size: 13px;
}

.form a {
    color: #1a6b42;
    text-decoration: none;
    font-size: 13px;
}

/* Grupos de campos */
.form-group {
    margin-bottom: 6px;
}

.form-group input {
    border: 0;
    width: 100%;
    padding: 1px 0 1px 10px;
    border-color: #a6a6a6;
    border: 1px;
}

.form-group input:focus {
    outline: none;
}

/* Placeholder */
input::placeholder {
    color: #1a6b42;
}

/* Botão do formulário */
.form-btn button {
    background-color: #00cc443a;
    width: 100%;
    padding: 6px;
    color: #1a6b42;
    border: none;
}

.form-btn button:hover {
    cursor: pointer;
    background-color: #ededed;
}

/* Caixa de termos / texto final */
.forgot-box {
    width: 280px;
    text-align: center;
}

.forgot-box p {
    margin-top: 10px;
    font-size: 12px;
}

.forgot-box p a {
    font-size: 12px;
}

/* Campo com ícone (e-mail/senha) */
.logo-input {
    position: relative;
    margin-bottom: 10px;
}

.logo-input input {
    width: 100%;
    padding: 6px 35px 6px 10px;
    border: 0;
    box-sizing: border-box;
}

.logo-input input:focus {
    outline: none;
}

/* Ícone dentro do input (Font Awesome) */
.input-icon {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: #1a6b42;
    cursor: pointer;
}

/* Ícone que não é clicável (se precisar) */
.input-icon-static {
    cursor: default;
}

/* Select de tipo de login */
.select {
    color: #1a6b42;
    width: 100%;
    border: none;
    outline: none;
    background-color: #ffffff;
    padding: 6px;
}

/* Animação de troca de formulário */
.formulario {
    animation: fade 0.3s ease;
}

@keyframes fade {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Responsivo */
@media (max-width: 768px) {
    .painel {
        flex-direction: column;
        padding: 2rem;
    }

    .vertical-bar {
        display: none;
    }

    .logo-p img {
        width: 200px;
        margin-bottom: 20px;
    }

    .form {
        width: 100%;
    }

    .forgot-box {
        width: 100%;
    }
}

/* Logo principal dentro do painel (caso use) */
.logo-img {
    width: 320px;
    margin-bottom: 25px;
}

.logo-copy {
    margin-top: 15px;
}

/* Espaçamento do select */
.form-group-select {
    margin-bottom: 20px !important;
}

/* Mostrar / esconder formulários de login */
.show-form {
    display: block;
}

.hide-form {
    display: none;
}

/* Margem do botão "Entrar" */
.form-btn-margin {
    margin-top: 20px;
}

/* ========= AJUSTES PREMIUM: inputs, select e botões ========= */

/* Bordas levemente arredondadas e altura maior */
.logo-input input,
.select,
.form-btn button {
    border-radius: 2px;               /* borda levemente arredondada */
    height: 36px;                     /* altura um pouco maior */
    padding: 8px 35px 8px 12px;       /* espaço interno confortável */
    font-size: 14px;                  /* texto confortável */
}

/* Ajuste específico para o select */
.select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 35px;
}

/* Botão com transição suave */
.form-btn button {
    cursor: pointer;
    transition: 0.2s ease;
}

/* Campo com ícone (override para borda no foco) */
.logo-input {
    position: relative;
    margin-bottom: 12px;
}

.logo-input input:focus {
    outline: none;
    border: 1px solid #007c8d;
    border-radius: 6px;
}

/* Placeholder (reforço) */
input::placeholder {
    color: #1a6b42;
}

/* Seta personalizada do select (pode ser bloqueada por CSP se data: não for permitido) */
.select {
    background-color: #ffc2663a;
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px;
}


/* Mensagens de erro nos spans */
#div_msg_retorno_validacao_error,
#div_msg_retorno_validacao_error_parceiro {
    text-align: center;
    margin-top: 5px;
}

#span_msg_retorno_validacao_error,
#span_msg_retorno_validacao_error_parceiro {
    color: #FF3B3B; /* vermelho forte e moderno */
    font-size: 14px;
  
    display: block;
}


.msg-erro-container {
    background: #ffffff;                 /* fundo branco */
    border-radius: 18px;                 /* borda bem arredondada */
    padding: 6px 12px;                   /* espaço interno */
    text-align: center;                  /* centraliza o texto */
    display: none;                       /* começa oculto */
    margin-top: 8px;                     /* separação do input */
    border: 1px solid #ffbcbc;           /* borda suave vermelha clara */
}

/* Texto da mensagem */
.msg-erro-texto {
    color: #d60000;                      /* vermelho forte */
    font-size: 14px;
    font-weight: bold;
}

/* (A) FULL SCREEN WRAPPER */
#spinner {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.7);
  transition: opacity 0.2s;
}

/* (B) CENTER LOADING SPINNER */
#spinner img {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%);
}

/* (C) SHOW & HIDE */
#spinner {
  visibility: hidden;
  opacity: 0;
}
#spinner.show {
  visibility: visible;
  opacity: 1;
}
