:root {
    --cor-primaria: #0056b3;
    --cor-secundaria: #e9ecef;
    --cor-texto: #333;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f4f7f6;
    color: var(--cor-texto);
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    margin: 0;
    padding: 20px;
    box-sizing: border-box;
}

.container {
    background: #fff;
    padding: 30px;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    width: 100%;
    max-width: 500px; /* Responsivo: expande no celular, limita no PC */
}

h2 { text-align: center; color: var(--cor-primaria); }
.logo { display: block; margin: 0 auto 20px; max-width: 150px; }

.input-group { margin-bottom: 15px; }
.input-group label { display: block; margin-bottom: 5px; font-weight: bold; }
.input-group input {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    font-size: 16px;
}

.termos-group {
    margin: 20px 0;
    font-size: 14px;
    display: flex;
    align-items: center;
}
.termos-group input { margin-right: 10px; }
#abrirTermos { color: var(--cor-primaria); cursor: pointer; text-decoration: underline; }

button {
    width: 100%;
    padding: 12px;
    background-color: var(--cor-primaria);
    color: white;
    border: none;
    border-radius: 5px;
    font-size: 16px;
    cursor: pointer;
    font-weight: bold;
    transition: background 0.3s;
}
button:hover { background-color: #004494; }

.acoes-extras {
    display: flex;
    gap: 10px;
    margin-top: 15px;
}
.btn-secundario { background-color: var(--cor-secundaria); color: #333; }
.btn-secundario:hover { background-color: #d3d9df; }

.hidden { display: none !important; }

/* Modal e Tela de Aprovação */
.modal, #telaAprovacao {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}
.modal-content, .aprovacao-content {
    background: white;
    padding: 30px;
    border-radius: 10px;
    max-width: 90%;
    text-align: center;
}
.spinner {
    border: 4px solid #f3f3f3; border-top: 4px solid var(--cor-primaria);
    border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite;
    margin: 20px auto 0;
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }