/* Estilos para o grupo de CEP */
.cep-group {
    position: relative;
}

.cep-group .form-text {
    color: #666;
    font-size: 0.875em;
    margin-top: 0.25rem;
}

.loading-indicator {
    position: absolute;
    right: 0;
    top: 100%;
    background: #f8f9fa;
    padding: 0.5rem;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    font-size: 0.875em;
    color: #666;
    z-index: 1;
}

.loading-indicator:before {
    content: '';
    display: inline-block;
    width: 1em;
    height: 1em;
    border: 2px solid #ddd;
    border-top-color: #007bff;
    border-radius: 50%;
    margin-right: 0.5rem;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Estilos para os campos de endereço */
.form-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -10px;
    margin-left: -10px;
}

.form-row > .form-group {
    padding-right: 10px;
    padding-left: 10px;
}

.col-md-4 {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
}

.col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
}

.col-md-8 {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
}

/* Responsividade */
@media (max-width: 768px) {
    .form-row {
        flex-direction: column;
    }

    .col-md-4,
    .col-md-6,
    .col-md-8 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .form-row > .form-group {
        margin-bottom: 1rem;
    }
}

/* Estilos para mensagens de erro do CEP */
.cep-error {
    color: #dc3545;
    font-size: 0.875em;
    margin-top: 0.25rem;
}

.cep-group.has-error input {
    border-color: #dc3545;
}

.cep-group.has-error input:focus {
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
} 