:root {
    --blue-shibata: #24519b;
    --blue-shibata-dark: #16366b;
    --blue-shibata-light: #3b6ec2;
    --bg-light: #f5f5f9;
    --text-dark: #32343a;
    --text-muted: #7e8299;
}

/* Reset e estrutura da página inteira */
body,
html {
    height: 100%;
    margin: 0;
    background-color: var(--bg-light);
    font-family: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.login-wrapper {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

/* Lado Esquerdo: Cover Institucional */
.login-cover {
    flex: 1;
    background: linear-gradient(135deg, var(--blue-shibata-dark) 0%, var(--blue-shibata) 100%);
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 4rem;
    color: #ffffff;
    overflow: hidden;
}

/* Grafismo sutil de fundo para o Cover */
.login-cover::before {
    content: '';
    position: absolute;
    top: -20%;
    right: -10%;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.03);
    pointer-events: none;
}

.cover-content {
    max-width: 550px;
    z-index: 2;
}

.cover-tag {
    background: rgba(255, 255, 255, 0.12);
    padding: 0.5rem 1rem;
    border-radius: 30px;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    display: inline-block;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(5px);
}

.cover-title {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1.5rem;
}

.cover-description {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
    margin-bottom: 3rem;
}

/* Recursos/Pilares em Destaque */
.feature-points {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.feature-item {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 1.25rem;
    border-radius: 12px;
    backdrop-filter: blur(10px);
}

.feature-item i {
    font-size: 1.8rem;
    color: #ffb822;
    /* Destaque caloroso */
    margin-bottom: 0.75rem;
    display: block;
}

.feature-item h5 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: #ffffff;
}

.feature-item p {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
}

/* Lado Direito: Formulário de Login */
.login-form-side {
    width: 480px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 4rem 3.5rem;
    box-shadow: -10px 0 40px rgba(0, 0, 0, 0.03);
    z-index: 3;
}

.brand-logo {
    max-height: 55px;
    margin-bottom: 3rem;
    align-self: flex-start;
}

.form-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 0.5rem;
}

.form-subtitle {
    color: var(--text-muted);
    font-size: 0.95rem;
    margin-bottom: 2.5rem;
}

/* Inputs Customizados */
.form-label-custom {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 0.5rem;
}

.input-group-custom {
    border: 1px solid #e4e6ef;
    border-radius: 8px;
    transition: all 0.3s ease;
    background-color: #f9f9f9;
}

.input-group-custom:focus-within {
    border-color: var(--blue-shibata);
    background-color: #ffffff;
    box-shadow: 0 0 0 4px rgba(36, 81, 155, 0.1);
}

.input-group-custom .input-group-text {
    background: transparent !important;
    border: none !important;
    padding-left: 1.25rem;
    color: var(--text-muted);
}

.input-group-custom .form-control {
    background: transparent !important;
    border: none !important;
    padding: 0.8rem 1.25rem 0.8rem 0.5rem;
    font-size: 1rem;
    color: var(--text-dark);
}

.input-group-custom .form-control:focus {
    box-shadow: none !important;
}

/* Botão de Ação */
.btn-submit-custom {
    background-color: var(--blue-shibata) !important;
    border: none !important;
    padding: 0.85rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 8px !important;
    transition: all 0.2s ease;
}

.btn-submit-custom:hover {
    background-color: var(--blue-shibata-dark) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(36, 81, 155, 0.2);
}

.login-alt-btn {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    font-size: 0.8rem;
    color: var(--blue-shibata);
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.2s ease;
}

.login-alt-btn:hover {
    color: var(--blue-shibata-dark);
    text-decoration: underline;
}

.login-alt-btn:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Responsividade básica (esconde o cover em telas pequenas) */
@media (max-width: 992px) {
    .login-cover {
        display: none;
    }

    .login-form-side {
        width: 100%;
        padding: 2rem;
    }

    .brand-logo {
        align-self: center;
    }
}
