/* Geral */
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f0f2f5;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    margin: 0;
    padding: 20px;
    box-sizing: border-box; /* Garante que padding não adicione largura */
}

/* Container principal do login */
.box-login {
    background-color: #fff;
    padding: 40px 30px; /* Mais padding para um visual mais clean */
    border-radius: 10px; /* Bordas mais arredondadas */
    box-shadow: 0 8px 16px rgba(0,0,0,0.15); /* Sombra mais pronunciada */
    width: 100%;
    max-width: 400px; /* Limita a largura máxima */
    text-align: center;
    box-sizing: border-box;
}

/* Logo */
.logo-login {
    width: 120px;
    height: 120px;
    display: block; /* Garante que a imagem se centre corretamente */
    margin: 0 auto 30px auto; /* Centraliza e adiciona margem inferior */
}

/* Título */
.box-login h2 {
    color: #333;
    margin-bottom: 30px;
    font-size: 28px;
    font-weight: 600; /* Um pouco mais encorpado */
}

/* Campos de Input */
.box-login input[type="text"],
.box-login input[type="password"] {
    width: calc(100% - 22px); /* Ajusta para padding e borda */
    padding: 14px 10px;
    margin-bottom: 18px; /* Mais espaço entre campos */
    border: 1px solid #cdd;
    border-radius: 7px; /* Bordas mais arredondadas */
    font-size: 17px;
    transition: border-color 0.3s ease;
}

.box-login input[type="text"]:focus,
.box-login input[type="password"]:focus {
    border-color: #007bff; /* Destaca ao focar */
    outline: none; /* Remove o outline padrão */
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25); /* Sombra leve ao focar */
}

/* Botão de Logar */
.box-login input[type="submit"] {
    background-color: #007bff;
    color: #fff;
    padding: 14px 25px;
    border: none;
    border-radius: 7px;
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
    transition: background-color 0.3s ease, transform 0.2s ease;
    width: 100%; /* Ocupa toda a largura disponível */
}

.box-login input[type="submit"]:hover {
    background-color: #0056b3;
    transform: translateY(-2px); /* Efeito leve ao passar o mouse */
}

/* Grupo de formulário para lembrar-me */
.form-group-login {
    display: flex; /* Usar flexbox para alinhar */
    align-items: center; /* Centralizar verticalmente */
    margin-bottom: 15px;
}
.form-group-login.left {
    flex: 1; /* Ocupa o espaço restante */
    justify-content: flex-start; /* Alinha à esquerda */
}
.form-group-login.right {
    justify-content: flex-end; /* Alinha à direita */
}

.form-group-login label {
    margin-right: 8px; /* Espaço entre o label e o checkbox */
    color: #555;
    font-size: 15px;
    cursor: pointer; /* Indica que o label é clicável */
}

.form-group-login input[type="checkbox"] {
    transform: scale(1.2); /* Aumenta um pouco o checkbox */
    margin-right: 5px; /* Espaço entre o checkbox e o label se o label vier depois */
}

/* Limpeza de floats */
.clear {
    clear: both;
}

/* Caixa de Erro */
.erro-box {
    background-color: #f8d7da; /* Fundo vermelho claro */
    color: #721c24; /* Texto vermelho escuro */
    padding: 12px 15px;
    border: 1px solid #f5c6cb; /* Borda vermelha */
    border-radius: 7px;
    margin-bottom: 20px;
    text-align: left;
    font-size: 15px;
    display: flex; /* Para alinhar ícone e texto */
    align-items: center;
}
.erro-box i {
    margin-right: 10px;
    font-size: 18px; /* Ícone um pouco maior */
}

/* Responsividade básica */
@media (max-width: 480px) {
    .box-login {
        padding: 30px 20px;
        margin: 10px; /* Margem para telas pequenas */
    }
    .box-login h2 {
        font-size: 24px;
    }
    .box-login input[type="text"],
    .box-login input[type="password"],
    .box-login input[type="submit"] {
        font-size: 16px;
        padding: 12px 10px;
    }
}