body {
	width: 100%;
	height: 100%;
	background: #FFF;
}

.box-user {
	margin-top: 10px;
	text-align: center;
	float: left;
	clear: both;
	width: 100%;
}



input[type=radio] {
	margin-right: 5px;
	margin-left: 15px;
}

.top-title-img img {
	width: 100px;
	height: auto;
	margin-left: 2rem;
}

#passos {
	position: relative;
	float: left;
	width: 100%;
	display: block;
}

#passos>li {
	width: 100%;
	display: block;
	height: auto;
	position: relative;
	float: left;
	clear: both;
	margin-bottom: 60px;
}

.demais-itens {
	position: relative;
	float: left;
	width: 50%;
	display: block;
	font-size: 1.2em;
	color: #666;
}

.passo {
	color: #2f6535;
	font-size: 1.5em;
	line-height: normal;
	margin-top: 30px;
	display: block;
}

.passo-black {
	color: #666;
	font-size: 1.2em;
	display: block;
	line-height: normal;
}

.img-item {
	float: left;
	margin-right: 20px;
	max-width: 43%;
	border: #55b556 solid 3px;
}

#modalTutorial {
	width: 90%;
	height: 70%;
	top: 5%;
	left: 7%;
	background: #fff;
}

#panelGroupLogin {
	position: relative;
}

.close {
	color: #aaa !important;
	font-size: 2.0em;
	line-height: 1.0em;
	opacity: 0.8;
}

#modalReqPassword .modal-dialog {
    display: flex;
    align-items: center;
    min-height: calc(100% - 3.5rem);
}

#modalReqPassword label[for="reqResetEmail"] {
    color: #000;
}

/* .login-publico-page define color claro no body pro tema escuro da tela de login;
   esse modal de cadastro tem fundo branco e é filho do body, entao precisa resetar. */
#modalRegister {
    color: #212529;
}

#modalReqPassword .modal-body .alert {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

#modalReqPassword .alert .close {
    position: static;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    line-height: 1;
    color: inherit !important;
}

#btnTutorial {
	margin: 0 auto 0 auto;
	display: block;
	height: auto;
	width: 190px;
	position: absolute;
	background: #DDD;
	color: #969696;
	right: 0;
	top: 0;
}

.link-ajuda {
	background: #fff;
    padding: 12px 20px;
    border-radius: 0.35rem 0 0 0.35rem;
    position: fixed;
    right: 0;
	top: 10px;
	font-size: 1.3rem;
	box-shadow: 1px 2px 3px 1px rgb(0, 0, 0, .3);
    z-index: 1;
}

.to-ie {
	display: none;
}

.to-ie a{
	text-decoration: underline;
	color: #BF0411;
}

.hide, .warning-box, #btn-avancar {
	display: none;
}

.warning-box h3 {
	font-size: 16px;
	margin: 0 0 20px;
	color: #8A6D3B;
	background: #FCF8E3;
	border: #8A6D3B 1px solid;
	padding: 5px 15px;
	border-radius: 5px
}

.warning-box ul {
	padding-left: 25px;
}

.warning-box li {
	list-style: none;
}

.warning-box li span {
	margin-left: 8px;
}

.warning-box strong {
	color: #138542
}

.invalid {
	border: 1px solid red;
	-webkit-animation-duration: 1s;
	-webkit-animation-name: avisar;
	-webkit-animation-iteration-count: infinite;
	-moz-animation-duration: 1s;
	-moz-animation-name: avisar;
	-moz-animation-iteration-count: infinite;
	animation-duration: 1s;
	animation-name: avisar;
	animation-iteration-count: infinite;
}

.logo-img{
	max-width: 120px;
    position: absolute;
    right: 0;
    left: 0;
}







dl, dt, dd{display:inline-block; box-sizing: border-box; padding:0.5rem 1.0rem}
dl{width:100%;}
dt{width:30%}
dd{width:68%}

.alert {
	display:block;
	padding:7px 20px;
	position: relative;
    padding: .75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid #0000;
    border-radius: .25rem;
}

.alert-error {
	color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
}

.alert-ok {
	color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
}

.btn-login-facebook {
    background-color: #4267B2;
    color: #fff;
}

.img-btn-sociais {
    width: 20px;
}

/* Layout de autenticação público: a imagem é fornecida pelo tema. */
@font-face {
    font-family: "Material Icons Outlined";
    font-style: normal;
    font-weight: 400;
    src: url("../font/materialIconsNovo/MaterialIconsOutlined-Regular.otf") format("opentype");
}

@font-face {
    font-family: "Material Icons";
    font-style: normal;
    font-weight: 400;
    src: url("../font/materialIconsNovo/MaterialIcons-Regular.ttf") format("truetype");
}

.login-publico-page {
    --login-page-background: #0e263b;
    --login-panel-background: linear-gradient(180deg, rgba(11, 27, 46, .88), rgba(14, 36, 56, .92));
    --login-card-background: rgba(50, 85, 121, .25);
    --login-support-card-background: rgba(50, 85, 121, .25);
    --login-card-border: rgba(141, 181, 213, .2);
    --login-field-background: rgba(7, 32, 54, .72);
    --login-field-border: rgba(154, 186, 211, .25);
    --login-icon-background: rgba(16, 48, 76, .72);
    --login-footer-background: rgba(8, 20, 34, .90);
    --login-footer-border: rgba(255, 255, 255, .10);
    --login-primary: #216ee0;
    --login-primary-hover: #155cc5;
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0;
    color: #d9e5f2;
    background: var(--login-page-background);
    font-size: 0.875rem;
    /* A fonte "Metropolis" tem arquivos de peso quebrados e falha ao carregar
       em vários ambientes (Firefox, macOS); cada um cai num fallback do stack
       com x-height bem diferente, fazendo o texto parecer bem menor mesmo com
       o mesmo font-size em px. font-size-adjust mantém a altura visual do
       texto consistente não importa qual fonte do fallback realmente renderiza. */
    font-size-adjust: 0.5;
    line-height: 1.2;
}

.login-publico-page .fundo-img {
    inset: 0;
    z-index: -2;
    background-color: var(--login-page-background);
    background-position: right top;
    background-repeat: no-repeat;
    background-size: cover;
}

.login-publico-page .fundo-img {
    opacity: 1;
}

.login-publico-page .fundo-img::before {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg,
        rgba(11, 27, 46, .90) 0%,
        rgba(11, 27, 46, .70) 25%,
        rgba(11, 27, 46, 0) 45%,
        rgba(11, 27, 46, 0) 100%
    );
}

.login-publico-layout {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
}

#layoutAuthentication_content {
    display: flex;
    flex: 1 0 auto;
    min-width: 0;
}

.login-publico-main {
    display: flex;
    width: max(480px, 31%);
    min-width: 0;
}

.login-publico-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    width: 100%;
    gap: 1rem;
    justify-content: center;
    align-items: center;
    padding: 5% 0px 5% 10%;
    background: var(--login-panel-background);
    margin-bottom: 42px;
}

@media screen and (orientation: landscape) and (min-height: 715px) and (max-height: 940px) and (min-width: 1001px) {
    .login-publico-panel {
        padding-bottom: 5px;
    }
}

/* Ponta arredondada do painel: fica num elemento decorativo separado (não no
   painel em si), pra nunca cortar o conteúdo real (cards). */
.login-publico-panel::after {
    content: "";
    position: absolute;
    top: 0;
    right: -220px;
    z-index: -1;
    width: 220px;
    height: 100%;
    background: var(--login-panel-background);
    clip-path: ellipse(50% 60% at left);
    pointer-events: none;
}



.login-publico-panel #logo-img-form.login-publico-logo {
    position: static;
    right: auto;
    left: auto;
    display: block;
    box-sizing: border-box;
    width: min(250px, 100%);
    max-width: 250px;
    height: 12%;
    min-height: 55px;
    margin: 0;
    background-origin: content-box;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}

.login-publico-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.875rem;
}

.login-publico-panel .card-login,
.login-publico-panel .login-publico-support {
    width: 100%;
    max-width: 560px;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.login-publico-panel .card-login {
    margin: 0;
    background: var(--login-card-background);
    border: 1px solid var(--login-card-border) !important;
    border-radius: 13px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .15);
}

.login-publico-panel .card-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 12px 18px;
}

/* Os alertas dentro (.login-general-error/.login-general-success) são
   position:fixed, então essa div fica sem altura real no fluxo — como
   display:contents, ela some da árvore de flex e não gera um gap "fantasma"
   duplicado (antes/depois dela) no card-body. */
.login-publico-panel .alerts {
    display: contents;
}

/* Mesmo motivo do .card-body: o form vira flex column com gap, em vez de
   depender do margin-bottom que o Bootstrap aplica por padrão no .form-group. */
.login-publico-panel #auth-form,
.login-publico-panel #mfa-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.login-publico-title {
    /* zera o margin-bottom:.5rem que o Bootstrap aplica em h1 por padrão —
       o espaçamento agora vem do gap do .card-body. */
    margin: 0;
    color: #fff;
    font-size: 1.25rem;
    font-weight: 600;
    text-align: left;
}

.login-publico-register-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 5px 6px 12px;
    background: rgba(33, 110, 224, .18);
    border: 1px solid rgba(33, 110, 224, .45);
    border-left: 4px solid var(--login-primary);
    border-radius: 5px;
    font-size: 0.85rem;
}

.login-publico-register-banner small {
    color: #fff;
    /* O <small> do Bootstrap usa font-size:80% (em, relativo ao pai) — troca
       por um rem fixo, senão ele renderiza menor que o resto do texto da
       frase. !important pra vencer o font-size:80% do elemento <small>, que
       tem a mesma especificidade (0,0,1,1) e empataria por ordem no cascade. */
    font-size: 1rem !important;
}

.login-publico-panel .login-publico-register-banner .registering-user {
    /* margin negativo compensa o padding do botão, pra não aumentar a altura
       da linha do flex (e por consequência a altura do card). */
    margin: -2px 0;
    padding: 2px 10px;
    background: var(--login-primary);
    border-radius: 5px;
    font-weight: 600;
}

.login-publico-panel .login-publico-register-banner .registering-user:hover,
.login-publico-panel .login-publico-register-banner .registering-user:focus {
    background: var(--login-primary-hover);
}

.login-publico-panel label {
    /* zera o margin-bottom:.5rem que o Bootstrap aplica em label por padrão —
       o espaçamento label→input agora vem do gap do .form-group. */
    margin: 0;
    color: #e5edf4;
    font-size: 0.9375rem;
    font-weight: 600;
}

.login-publico-panel .form-group {
    display: flex;
    gap: 6px;
    flex-direction: column;
    /* zera o margin-bottom que o .form-group do Bootstrap aplica por padrão —
       o espaçamento entre form-groups agora vem do gap do form (#auth-form/#mfa-form). */
    margin: 0;
}

.login-publico-panel .form-control {
    height: 44px;
    padding: 6px 10px;
    color: #fff;
    background: rgba(15, 32, 54, .05);
    border: 2px solid rgba(255, 255, 255, .15);
    border-radius: 8px;
    font-size: 0.9rem;
}

.login-publico-panel .form-control:-webkit-autofill,
.login-publico-panel .form-control:-webkit-autofill:hover,
.login-publico-panel .form-control:-webkit-autofill:focus {
    -webkit-text-fill-color: #fff;
    -webkit-box-shadow: 0 0 0 1000px rgb(20, 40, 60) inset;
    box-shadow: 0 0 0 1000px rgb(20, 40, 60) inset;
    caret-color: #fff;
    transition: background-color 5000s ease-in-out 0s;
}

.login-publico-panel .form-control::placeholder {
    color: #8fa7ba;
}

.login-publico-panel .form-control:focus {
    color: #fff;
    background: rgba(7, 32, 54, .9);
    border-color: #377ee9;
    box-shadow: 0 0 0 .15rem rgba(55, 126, 233, .25);
}

.login-input-field--invalid .form-control,
.login-input-field--invalid .form-control:focus {
    border: 1px solid #c93646 !important;
    box-shadow: none !important;
}

/* Toast fixo em relação à tela (não ao card): sempre no canto superior
   esquerdo do viewport, com respiro das bordas. */
.login-general-error {
    position: fixed;
    top: 20px;
    left: 20px;
    z-index: 1000;
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: calc(100% - 40px);
    padding: 14px 20px;
    color: #fff;
    background: rgba(130, 25, 32, .45);
    backdrop-filter: blur(28px) saturate(150%);
    -webkit-backdrop-filter: blur(28px) saturate(150%);
    border: 1px solid rgba(255, 255, 255, .2);
    border-left: 6px solid #e74c3c;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .3);
    font-size: 1rem;
    font-weight: 600;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .6);
}

.login-general-error .login-material-icon {
    flex: 0 0 auto;
    color: #fff;
    font-size: 24px;
}

/* Celular / tela estreita: o min-width:480px do toast estouraria a largura
   da tela, então reduzimos ele (e os elementos internos) proporcionalmente
   nesse breakpoint. */
@media screen and (max-width: 500px) {
    .login-general-error {
        gap: 10px;
        padding: 10px 10px;
        font-size: 0.9375rem;
    }

    .login-general-error .login-material-icon {
        font-size: 22px;
    }

    .login-general-error .close {
        font-size: 1.125rem;
    }
}

/* O Bootstrap posiciona .close de .alert-dismissible com position:absolute;
   top:0; right:0 (colado no canto) — sobrescrevemos pra voltar ele pro
   fluxo normal do flex, com respiro de verdade em vez de grudado na quina. */
.login-general-error .close,
.login-general-success .close {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    margin-left: auto;
    padding: 0;
    background: transparent;
    border: 0;
    color: inherit;
    opacity: .8;
    font-size: 1.5rem;
    line-height: 1;
    white-space: nowrap;
}

.login-general-error .close:hover,
.login-general-success .close:hover {
    opacity: 1;
}

.login-general-success {
    position: fixed;
    top: 20px;
    left: 20px;
    z-index: 1000;
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: calc(100% - 40px);
    padding: 16px 28px;
    color: #c9f2d9;
    background: rgba(14, 58, 38, .96);
    border: 1px solid rgba(45, 168, 105, .6);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .35);
    font-size: 0.9375rem;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .7);
}

.login-general-success .login-material-icon {
    flex: 0 0 auto;
    color: #4ddd93;
    font-size: 16px;
}

.login-general-success .close {
    margin-left: auto;
}

.login-input-field,
.password-field {
    position: relative;
}

.login-input-field .form-control,
.password-field .form-control {
    padding-left: 44px;
}

.password-field .form-control {
    padding-right: 44px;
}

.login-material-icon {
    font-family: "Material Icons Outlined";
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    direction: ltr;
    font-feature-settings: "liga";
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
    /* font-size-adjust do .login-publico-page é herdado e recalcula o tamanho
       pela x-height do texto — não faz sentido pra uma fonte de ícones/glifos,
       e encolhia os ícones. Reseta pra não afetar essa fonte. */
    font-size-adjust: none;
}

.login-input-field .login-input-icon,
.password-field .login-input-icon {
    position: absolute;
    top: 50%;
    left: 10px;
    z-index: 1;
    color: #7C8CA3;
    font-size: 18px;
    transform: translateY(-50%);
}

.password-field #icon {
    right: 10px;
    left: auto;
    margin: 0;
    cursor: pointer;
}

.login-publico-actions {
    flex-wrap: wrap;
    flex-direction: row !important ;
    align-items: center;
    justify-content: space-between;
    row-gap: 8px;
    /* .login-publico-actions também é um .form-group (row, não column) — trava
       o column-gap pra não herdar o gap:6px pensado pro par label/input. */
    column-gap: 1rem;
}

.login-publico-panel #btnPassword,
.login-publico-panel #btnPassword:hover,
.login-publico-panel #btnPassword:focus,
.login-publico-panel #btn-reenviar,
.login-publico-panel #btn-reenviar:hover,
.login-publico-panel #btn-reenviar:focus {
    flex: 0 0 auto;
    padding: 0;
    color: #4f96ed !important;
    font-size: 0.875rem;
    white-space: nowrap;
    text-decoration: none;
}

.login-publico-panel #btn-reenviar:disabled {
    color: #6f8ba3 !important;
    cursor: default;
}

.login-publico-panel .login-publico-submit {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 100px;
    padding: 6px 12px;
    color: #fff !important;
    background: var(--login-primary) !important;
    border: 0;
    border-radius: 5px;
    font-size: 0.875rem;
    font-weight: 600;
    opacity: 1 !important;
    visibility: visible !important;
}

.login-publico-submit:hover,
.login-publico-submit:focus {
    color: #fff;
    background: var(--login-primary-hover);
}

.login-publico-submit span {
    font-size: 16px;
    line-height: 0;
    vertical-align: -1px;
}

.login-sso-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #8fa7ba;
    font-size: 0.9rem;
}

.login-sso-divider::before,
.login-sso-divider::after {
    flex: 1;
    height: 1px;
    content: "";
    background: rgba(154, 186, 211, .35);
}

.login-sso-options {
    display: flex;
    gap: 10px;
    justify-content: center;
}

.login-sso-options form {
    display: block;
    margin: 0;
}

.login-sso-button {
    position: relative;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    padding: 0;
    overflow: visible;
    background: #eef2f5;
    border: 0;
    border-radius: 10px;
    cursor: pointer;
}

.login-sso-button:hover,
.login-sso-button:focus {
    background: #dfe6ec;
}

.login-sso-button--facebook {
    background: #4267b2;
}

.login-sso-button--facebook:hover,
.login-sso-button--facebook:focus {
    background: #365899;
}

.login-sso-logo {
    display: grid;
    place-items: center;
}

.login-sso-button::after {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    z-index: 5;
    padding: 5px 10px;
    color: #e5edf4;
    background: #05131f;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 6px;
    content: attr(data-tooltip);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 4px);
    transition: opacity .15s ease, transform .15s ease;
    pointer-events: none;
}

.login-sso-button:hover::after,
.login-sso-button:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.login-sso-button-text {
    display: none;
}

/* Apenas 1 provedor ativo: botão largo com texto, estilo antigo (aprovado pelo PO) */
.login-sso-options--single .login-sso-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 240px;
    height: 36px;
    padding: 0;
    overflow: hidden;
    background: linear-gradient(90deg, #08a8ce, #0697bb);
    border-radius: 7px;
}

.login-sso-options--single .login-sso-button:hover,
.login-sso-options--single .login-sso-button:focus {
    background: linear-gradient(90deg, #0799bd, #0788aa);
}

.login-sso-options--single .login-sso-button--facebook {
    background: linear-gradient(90deg, #4267b2, #365899);
}

.login-sso-options--single .login-sso-button--facebook:hover,
.login-sso-options--single .login-sso-button--facebook:focus {
    background: linear-gradient(90deg, #3b5998, #30497e);
}

/* O texto ocupa todo o espaço que sobra à esquerda do logo e se centraliza
   nele, em vez de ficar colado na borda esquerda do botão. */
.login-sso-options--single .login-sso-button-text {
    display: block;
    flex: 1;
    min-width: 0;
    padding: 0 8px;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    text-align: center;
}

.login-sso-options--single .login-sso-logo {
    align-self: stretch;
    flex: 0 0 46px;
    width: 46px;
    background: #eef2f5;
    border-radius: 0;
}

.login-sso-options--single .login-sso-button::after {
    display: none;
}

.login-publico-panel .registering-user {
    display: inline-block;
    margin-top: 12px;
    color: #fff;
    font-size: 1rem;
}

.login-mfa-instrucao {
    /* espaçamento agora vem do gap do .card-body, não de margin */
    margin: 0;
    padding: 6px 0;
    color: #cfe0f0;
    font-size: 1.1rem !important;
    line-height: 1.6;
    text-align: left;
}

.login-mfa-instrucao strong {
    color: #fff;
}

.login-mfa-timer {
    /* espaçamento agora vem do gap do .card-body, não de margin */
    margin: 0;
    color: #9bb1c3;
    font-size: 0.9375rem;
    text-align: center;
}

.login-mfa-timer strong {
    color: #4f96ed;
}

.login-mfa-otp-boxes {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 6px 0 4px;
}

.login-mfa-otp-boxes.erro {
    animation: login-mfa-shake .3s ease;
}

.login-mfa-otp-digit {
    width: 42px;
    height: 42px;
    padding: 0;
    color: #fff;
    text-align: center;
    background: var(--login-card-background);
    border: 2px solid var(--login-field-border);
    border-radius: 10px;
    font-size: 1.375rem;
    font-weight: 600;
    box-sizing: border-box;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.login-mfa-otp-digit:focus {
    color: #fff;
    background: rgba(7, 32, 54, .9);
    border-color: #377ee9;
    outline: none;
    box-shadow: 0 0 0 .15rem rgba(55, 126, 233, .25);
}

.login-mfa-otp-digit.preenchido {
    border-color: #4f96ed;
}

.login-mfa-otp-boxes.erro .login-mfa-otp-digit {
    border-color: #c93646;
    box-shadow: 0 0 0 .15rem rgba(201, 54, 70, .25);
}

@keyframes login-mfa-shake {
    0%, 100% { transform: translateX(0); }
    25%      { transform: translateX(-5px); }
    75%      { transform: translateX(5px); }
}

@media screen and (max-width: 700px) {
    .login-mfa-otp-boxes { gap: 10px; }
    .login-mfa-otp-digit { width: 36px; height: 36px; font-size: 1.1875rem; }
}

@media screen and (max-width: 420px) {
    .login-mfa-otp-boxes { gap: 6px; }
    .login-mfa-otp-digit { width: 32px; height: 32px; font-size: 1.1875rem; }
}

.login-publico-support {
    padding: 12px 12px 12px 8px;
    background: var(--login-support-card-background);
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 13px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .15);
}

.login-publico-support h2 {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-left:10px;
    color: #e8f1fa;
    font-size: 1rem;
    font-weight: 600;
    margin-bottom:0;
}

.login-support-heading-icon {
    position: relative;
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    font-family: "Material Icons Outlined";
    color: #3B82F6;
    background: rgba(59, 130, 246, .12);
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 23px;
    place-items: center;
}

.login-publico-support-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 18px;
}

.login-publico-support-grid::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    content: "";
    background: linear-gradient(180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 1) 30%,
        rgba(255, 255, 255, 1) 70%,
        rgba(255, 255, 255, 0) 100%
    );
    transform: translateX(-50%);
}

.login-publico-support-grid a {
    display: flex;
    min-width: 0;
    gap:5px;
    padding-left:10px;
    overflow: hidden;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.login-publico-support-grid a:hover,
.login-publico-support-grid a:focus {
    color: #fff;
    text-decoration: none;
}

.login-publico-support-grid .login-support-icon {
    font-family: "Material Icons Outlined";
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    direction: ltr;
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
    color: #3B82F6;
    font-size: 23px;
    font-size-adjust: none;
    text-align: center;

}

.login-publico-support-grid .login-support-icon-grid {
    position: relative;
    display: grid;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    padding: 0;
    place-items: center;
    background: rgba(59, 130, 246, .12);
    border: 1px solid transparent;
    border-radius: 8px;
}

.login-support-heading-icon::after,
.login-publico-support-grid .login-support-icon-grid::after {
    position: absolute;
    inset: -1px;
    padding: 1px;
    content: "";
    pointer-events: none;
    background: linear-gradient(180deg, #3B82F6, rgba(59, 130, 246, 0));
    border-radius: inherit;
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
}

.login-publico-support-grid .login-support-icon--fontawesome {
    font-family: FontAwesome !important;
    font-feature-settings: normal;
    -webkit-font-feature-settings: normal;
}

.login-publico-support-grid a > span,
.login-publico-support-grid strong {
    display: block;
}

.login-publico-support-grid a > span {
    min-width: 0;
    margin-left: 8px;
}

.login-publico-support-grid strong {
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    line-height: 22px;
}

.login-publico-support-grid span {
    overflow-wrap: anywhere;
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
}

.login-publico-page #layoutAuthentication_footer {
    /* Sempre fixed, em qualquer largura/altura — o espaço pra ele não
       sobrepor o conteúdo é reservado via padding-bottom em .login-publico-content. */
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    min-height: 40px;
    padding: 1px 32px;
    background: var(--login-footer-background);
    z-index: 1;
}

.login-publico-page #layoutAuthentication_footer .footer {
    position: relative;
    height: 40px;
    min-height: 0;
    padding: 0;
}

.login-publico-page #layoutAuthentication_footer .login-footer-copyright {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: 0;
    font-size: 0.75rem;
    transform: translate(-50%, -50%);
}

.login-publico-page #layoutAuthentication_footer .login-footer-copyright .login-footer-copyright-icon {
    font-size: 18px;
    vertical-align:-1px;;
}

.login-publico-page #layoutAuthentication_footer .login-footer-links {
    position: absolute;
    top: 50%;
    right: 0;
    margin: 0;
    font-size: 0.75rem;
    transform: translateY(-50%);
}

.login-publico-page #layoutAuthentication_footer a {
    color: #b9c8d6;
}

/* ==========================================================================
   MOBILE (largura <= 10023px, em qualquer orientação): o aside ocupa a
   tela inteira, sem elipse (fica quadrado), rodapé sempre fixed na tela.
   ========================================================================== */
@media screen and (max-width: 1023px) {

    .login-publico-main {
        width: 100%;

    }

    .login-publico-panel::after {
        display: none;
    }

    .login-publico-panel {
        display: flex;
        flex-direction: column;
        padding: 5% 15%;
    }

    .login-publico-content {
        width: 100%;
        padding-bottom: 72px;
        justify-content: center;
        align-items: center;
    }

    .login-publico-page #layoutAuthentication_footer {
        min-height: 42px;
        padding: 3px 10px;
        text-align: center;
    }

    .login-publico-page #layoutAuthentication_footer .footer {
        height: 50px;
    }

    .login-publico-page #layoutAuthentication_footer .login-footer-copyright {
        position: static;
        display: block;
        font-size: 0.625rem;
        transform: none;
    }

    .login-publico-page #layoutAuthentication_footer .login-footer-links {
        position: static;
        display: block;
        margin-top: 2px;
        font-size: 0.625rem;
        transform: none;
    }

    .container-fluid{
    padding-left:0;
    padding-right:0;
}
}







@media screen and (max-width:550px){
        .login-publico-panel {
        padding: 5% 10%;
    }
}

@media screen and (max-width: 400px) {
    .login-publico-page #layoutAuthentication_footer {
        padding-left: 0;
        padding-right: 0;
    }

}

/* Celular de tela bem estreita: contatos do suporte em 1 coluna só, então a
   divisória vertical (que separava as 2 colunas) não faz mais sentido. */
@media screen and (max-width: 425px) {
    .login-publico-support-grid {
        grid-template-columns: 1fr;
    }

    .login-publico-support-grid::before {
        display: none;
    }
}

@media screen and (min-width: 2508px) and (min-height:851px){
    .login-publico-main{
        width:20%;
    }

    .login-publico-page .fundo-img::before{
        background: linear-gradient(90deg, rgba(11, 27, 46, .90) 0%, rgba(11, 27, 46, .70) 4%, rgba(11, 27, 46, 0) 20%, rgba(11, 27, 46, 0) 100%);
    }

    .login-general-error {
        padding: 20px 28px;
        font-size: 1.1875rem;
    }

    .login-general-error .login-material-icon {
        font-size: 30px;
    }

    .login-general-error .close {
        font-size: 1.875rem;
    }
}

@media screen and (max-height: 960px) {
    .login-sso-button {
        width: 38px;
        height: 38px;
    }
    .login-publico-title {
        font-size: 1rem;
    }

    .login-publico-panel label {
        font-size: 0.8rem;
    }

    .login-publico-panel .form-control {
        height: 38px;
    }

    .login-publico-content {
        gap: 1rem;
    }
    .login-publico-panel .card-body {
        gap: 0.5rem;
    }

    .login-publico-panel #auth-form,
    .login-publico-panel #mfa-form {
        gap: 0.5rem;
    }

    .login-publico-panel .card-login,
    .login-publico-panel .login-publico-support {
        gap: 0.5rem;
    }

    .login-publico-support-grid {
        gap: 10px 15px;
    }
    .btn .login-publico-submit{
        padding:4px 10px;
    }
}