/* CSS cuidadoso para esconder apenas campos específicos do OAuth 2.0 */

/* Esconde apenas campos específicos */
input[name="client_id"],
select[name="client_credentials_location"],
input[name="scope"],
select[name="scope"] {
    display: none !important;
}

/* Esconde linhas que contenham esses campos específicos */
tr:has(input[name="client_id"]),
tr:has(select[name="client_credentials_location"]),
tr:has(input[name="scope"]),
tr:has(select[name="scope"]) {
    display: none !important;
}

/* Esconde apenas textos específicos */
*:contains("Client credentials location"),
*:contains("client_id") {
    display: none !important;
}

/* Esconde apenas labels específicos */
label:contains("Client ID"),
label:contains("client_id"),
label:contains("Client credentials location"),
label:contains("Scope") {
    display: none !important;
}

/* Esconde apenas selects com opções específicas */
select option:contains("Authorization header"),
select option:contains("Request body") {
    display: none !important;
}

/* Regras específicas para o wrapper */
.auth-wrapper *:contains("Client credentials location"),
.auth-wrapper *:contains("client_id"),
.auth-container *:contains("Client credentials location"),
.auth-container *:contains("client_id") {
    display: none !important;
}

/* Esconde elementos específicos dentro do wrapper */
.auth-wrapper input[name="client_id"],
.auth-wrapper select[name="client_credentials_location"],
.auth-wrapper input[name="scope"],
.auth-wrapper select[name="scope"],
.auth-container input[name="client_id"],
.auth-container select[name="client_credentials_location"],
.auth-container input[name="scope"],
.auth-container select[name="scope"] {
    display: none !important;
}

/* Esconde linhas dentro do wrapper que contenham esses campos */
.auth-wrapper tr:has(input[name="client_id"]),
.auth-wrapper tr:has(select[name="client_credentials_location"]),
.auth-wrapper tr:has(input[name="scope"]),
.auth-wrapper tr:has(select[name="scope"]),
.auth-container tr:has(input[name="client_id"]),
.auth-container tr:has(select[name="client_credentials_location"]),
.auth-container tr:has(input[name="scope"]),
.auth-container tr:has(select[name="scope"]) {
    display: none !important;
}

/* CSS customizado para esconder campos indesejados no Swagger UI */

/* Esconde campos relacionados ao client_id */
input[name="client_id"],
input[placeholder*="client_id"],
input[id*="client_id"],
select[name="client_credentials_location"],
select[placeholder*="client_credentials"],
select[id*="client_credentials"],
.auth-wrapper input[name="client_id"],
.auth-wrapper select[name="client_credentials_location"],
.swagger-ui .auth-wrapper input[name="client_id"],
.swagger-ui .auth-wrapper select[name="client_credentials_location"] {
    display: none !important;
}

/* Esconde linhas/divs que contenham esses campos */
tr:has(input[name="client_id"]),
tr:has(select[name="client_credentials_location"]),
div:has(input[name="client_id"]),
div:has(select[name="client_credentials_location"]),
.auth-wrapper:has(input[name="client_id"]),
.auth-wrapper:has(select[name="client_credentials_location"]),
.form-group:has(input[name="client_id"]),
.form-group:has(select[name="client_credentials_location"]) {
    display: none !important;
}

/* Esconde labels relacionados */
label:contains("Client ID"),
label:contains("Client credentials location"),
label:contains("client_id"),
.auth-label:contains("Client ID"),
.auth-label:contains("Client credentials location"),
.form-label:contains("Client ID"),
.form-label:contains("Client credentials location") {
    display: none !important;
}

/* Esconde elementos que contenham texto relacionado */
*:contains("Client ID"),
*:contains("Client credentials location"),
*:contains("client_id") {
    display: none !important;
}

/* Regras específicas para o modal de autorização */
.swagger-ui .auth-wrapper .auth-container input[name="client_id"],
.swagger-ui .auth-wrapper .auth-container select[name="client_credentials_location"],
.swagger-ui .auth-wrapper .auth-container label:contains("Client ID"),
.swagger-ui .auth-wrapper .auth-container label:contains("Client credentials location") {
    display: none !important;
}

/* Esconde linhas da tabela que contenham esses campos */
.swagger-ui table tbody tr:has(input[name="client_id"]),
.swagger-ui table tbody tr:has(select[name="client_credentials_location"]),
.swagger-ui table tbody tr:has(label:contains("Client ID")),
.swagger-ui table tbody tr:has(label:contains("Client credentials location")) {
    display: none !important;
}

/* CSS customizado para o formulário de login customizado */

/* Estilo para o formulário customizado */
#custom-login-form {
    margin-bottom: 20px;
}

#custom-login-form input {
    font-size: 14px;
}

#custom-login-form button {
    font-size: 14px;
    font-weight: 500;
}

#custom-login-form button:hover {
    background: #0056b3 !important;
}

/* Esconde elementos OAuth desnecessários */
.swagger-ui .auth-wrapper .auth-container input[name="client_id"],
.swagger-ui .auth-wrapper .auth-container select[name="client_credentials_location"],
.swagger-ui .auth-wrapper .auth-container label:contains("Client ID"),
.swagger-ui .auth-wrapper .auth-container label:contains("Client credentials location") {
    display: none !important;
}

/* Esconde o botão Authorize padrão se preferir usar apenas o formulário customizado */
/* .swagger-ui .authorize {
    display: none !important;
} */

/* CSS para esconder client_id, Client credentials location e scopes do OAuth 2.0 */

/* Esconde campos client_id de várias formas */
input[name="client_id"],
input[placeholder*="client_id"],
input[id*="client_id"],
input[data-name="client_id"],
input[ng-model*="client_id"],
input[formcontrolname="client_id"] {
    display: none !important;
}

/* Esconde campos Client credentials location */
select[name="client_credentials_location"],
select[placeholder*="client_credentials"],
select[id*="client_credentials"],
select[data-name="client_credentials_location"],
input[name="client_credentials_location"],
input[placeholder*="client_credentials"] {
    display: none !important;
}

/* Esconde campos scopes */
input[name="scope"],
select[name="scope"],
input[placeholder*="scope"],
input[id*="scope"],
select[placeholder*="scope"],
select[id*="scope"],
input[data-name="scope"],
select[data-name="scope"] {
    display: none !important;
}

/* Esconde labels relacionados */
label:contains("Client ID"),
label:contains("Client credentials location"),
label:contains("Scope"),
label:contains("Scopes"),
label:contains("client_id"),
label:contains("scope"),
.auth-label:contains("Client ID"),
.auth-label:contains("Client credentials location"),
.auth-label:contains("Scope"),
.form-label:contains("Client ID"),
.form-label:contains("Client credentials location"),
.form-label:contains("Scope") {
    display: none !important;
}

/* Esconde linhas de tabela que contenham esses campos */
tr:has(input[name="client_id"]),
tr:has(input[placeholder*="client_id"]),
tr:has(input[id*="client_id"]),
tr:has(select[name="client_credentials_location"]),
tr:has(input[name="client_credentials_location"]),
tr:has(select[placeholder*="client_credentials"]),
tr:has(input[name="scope"]),
tr:has(select[name="scope"]),
tr:has(input[placeholder*="scope"]),
tr:has(select[placeholder*="scope"]) {
    display: none !important;
}

/* Esconde elementos específicos do Swagger UI */
.swagger-ui .auth-wrapper input[name="client_id"],
.swagger-ui .auth-wrapper select[name="client_credentials_location"],
.swagger-ui .auth-wrapper input[name="scope"],
.swagger-ui .auth-wrapper select[name="scope"],
.swagger-ui .auth-container input[name="client_id"],
.swagger-ui .auth-container select[name="client_credentials_location"],
.swagger-ui .auth-container input[name="scope"],
.swagger-ui .auth-container select[name="scope"] {
    display: none !important;
}

/* Esconde divs que contenham esses campos */
div:has(input[name="client_id"]),
div:has(select[name="client_credentials_location"]),
div:has(input[name="scope"]),
div:has(select[name="scope"]) {
    display: none !important;
}

/* CSS específico para esconder apenas campos dentro do modal de autorização */

/* Esconde apenas campos específicos dentro do modal */
.auth-wrapper input[name="client_id"],
.auth-wrapper select[name="client_credentials_location"],
.auth-wrapper input[name="scope"],
.auth-wrapper select[name="scope"],
.auth-container input[name="client_id"],
.auth-container select[name="client_credentials_location"],
.auth-container input[name="scope"],
.auth-container select[name="scope"] {
    display: none !important;
}

/* Esconde linhas dentro do modal que contenham esses campos */
.auth-wrapper tr:has(input[name="client_id"]),
.auth-wrapper tr:has(select[name="client_credentials_location"]),
.auth-wrapper tr:has(input[name="scope"]),
.auth-wrapper tr:has(select[name="scope"]),
.auth-container tr:has(input[name="client_id"]),
.auth-container tr:has(select[name="client_credentials_location"]),
.auth-container tr:has(input[name="scope"]),
.auth-container tr:has(select[name="scope"]) {
    display: none !important;
}

/* Esconde apenas textos específicos dentro do modal */
.auth-wrapper *:contains("Client credentials location"),
.auth-wrapper *:contains("client_id"),
.auth-container *:contains("Client credentials location"),
.auth-container *:contains("client_id") {
    display: none !important;
}

/* Esconde apenas labels específicos dentro do modal */
.auth-wrapper label:contains("Client ID"),
.auth-wrapper label:contains("client_id"),
.auth-wrapper label:contains("Client credentials location"),
.auth-wrapper label:contains("Scope"),
.auth-container label:contains("Client ID"),
.auth-container label:contains("client_id"),
.auth-container label:contains("Client credentials location"),
.auth-container label:contains("Scope") {
    display: none !important;
}

/* Esconde apenas selects com opções específicas dentro do modal */
.auth-wrapper select option:contains("Authorization header"),
.auth-wrapper select option:contains("Request body"),
.auth-container select option:contains("Authorization header"),
.auth-container select option:contains("Request body") {
    display: none !important;
}

/* CSS para esconder apenas elementos específicos */

/* Esconde apenas o texto "Client credentials location" */
*:contains("Client credentials location") {
    display: none !important;
}

/* Esconde apenas o texto "client_id" */
*:contains("client_id") {
    display: none !important;
}

/* Esconde campos input com name="client_id" */
input[name="client_id"] {
    display: none !important;
}

/* Esconde campos select com name="client_credentials_location" */
select[name="client_credentials_location"] {
    display: none !important;
}

/* Esconde selects que contenham as opções específicas */
select option:contains("Authorization header"),
select option:contains("Request body") {
    display: none !important;
} 