/* =====================================================================
   CURRÍCULO SOB MEDIDA - ESTILO BASE (Bootstrap 5.3)
   ---------------------------------------------------------------------
   Carregar SEMPRE depois do bootstrap.min.css. Usado nos painéis
   (candidato e administrador) e também nas páginas públicas.
   Para trocar as cores da marca, altere apenas as variáveis --csm-*
   e os valores repetidos nos botões logo abaixo.
   ===================================================================== */

:root {
	--csm-azul:           #0F3B8E;
	--csm-azul-escuro:    #0B2C6B;
	--csm-azul-claro:     #E3EAF7;
	--csm-laranja:        #F57C00;
	--csm-laranja-escuro: #E06F00;
	--csm-laranja-texto:  #B85A00;   /* laranja para TEXTO sobre fundo branco (contraste 4,7:1) */
	--csm-texto-escuro:   #1A1A1A;
	--csm-fundo:          #F4F6FA;

	--bs-primary:                #0F3B8E;
	--bs-primary-rgb:            15, 59, 142;
	--bs-primary-text-emphasis:  #0B2C6B;
	--bs-primary-bg-subtle:      #E3EAF7;
	--bs-primary-border-subtle:  #B4C4E6;
	--bs-link-color:             #0F3B8E;
	--bs-link-color-rgb:         15, 59, 142;
	--bs-link-hover-color:       #0B2C6B;
	--bs-link-hover-color-rgb:   11, 44, 107;
	--bs-focus-ring-color:       rgba(15, 59, 142, 0.25);
	--bs-body-font-family:       'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: 'Montserrat', 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}

/* =====================================================================
   BOTÕES E COMPONENTES NAS CORES DA MARCA
   ===================================================================== */

.btn-primary {
	--bs-btn-bg:                    #0F3B8E;
	--bs-btn-border-color:          #0F3B8E;
	--bs-btn-hover-bg:              #0B2C6B;
	--bs-btn-hover-border-color:    #0B2C6B;
	--bs-btn-active-bg:             #0B2C6B;
	--bs-btn-active-border-color:   #0B2C6B;
	--bs-btn-disabled-bg:           #0F3B8E;
	--bs-btn-disabled-border-color: #0F3B8E;
	--bs-btn-focus-shadow-rgb:      15, 59, 142;
}

.btn-outline-primary {
	--bs-btn-color:                 #0F3B8E;
	--bs-btn-border-color:          #0F3B8E;
	--bs-btn-hover-bg:              #0F3B8E;
	--bs-btn-hover-border-color:    #0F3B8E;
	--bs-btn-active-bg:             #0B2C6B;
	--bs-btn-active-border-color:   #0B2C6B;
	--bs-btn-disabled-color:        #0F3B8E;
	--bs-btn-disabled-border-color: #0F3B8E;
	--bs-btn-focus-shadow-rgb:      15, 59, 142;
}

/* Botão de destaque (laranja). O texto é escuro: branco sobre este laranja não tem contraste suficiente */
.btn-destaque {
	--bs-btn-color:                 #1A1A1A;
	--bs-btn-bg:                    #F57C00;
	--bs-btn-border-color:          #F57C00;
	--bs-btn-hover-color:           #1A1A1A;
	--bs-btn-hover-bg:              #E06F00;
	--bs-btn-hover-border-color:    #E06F00;
	--bs-btn-active-color:          #1A1A1A;
	--bs-btn-active-bg:             #E06F00;
	--bs-btn-active-border-color:   #E06F00;
	--bs-btn-disabled-color:        #1A1A1A;
	--bs-btn-disabled-bg:           #F57C00;
	--bs-btn-disabled-border-color: #F57C00;
	--bs-btn-focus-shadow-rgb:      245, 124, 0;
	font-weight: 600;
}

/* Botão Cinza */
.btn-cinza {
    background-color: #f4f4f4 !important;   /* base cinza muito claro */
    border-color: #e0e0e0 !important;       /* borda levemente mais escura */
    color: #444 !important;                 /* texto preto para contraste */
}
.btn-cinza:hover,
.btn-cinza:focus,
.btn-cinza:active,
.btn-cinza.active {
    background-color: #e0e0e0 !important;   /* hover escurece um pouco */
    border-color: #cccccc !important;
    color: #444 !important;
}

.text-laranja { color: var(--csm-laranja-texto) !important; }
.bg-laranja   { background-color: var(--csm-laranja) !important; color: var(--csm-texto-escuro) !important; }
.bg-azul      { background-color: var(--csm-azul) !important; color: #fff !important; }

.form-control:focus,
.form-select:focus {
	border-color: #7F9BD0;
	box-shadow: 0 0 0 0.25rem rgba(15, 59, 142, 0.25);
}

.form-check-input:checked {
	background-color: #0F3B8E;
	border-color: #0F3B8E;
}

.form-check-input:focus {
	border-color: #7F9BD0;
	box-shadow: 0 0 0 0.25rem rgba(15, 59, 142, 0.25);
}

.nav-pills {
	--bs-nav-pills-link-active-bg: #0F3B8E;
}

.pagination {
	--bs-pagination-color:              #0F3B8E;
	--bs-pagination-hover-color:        #0B2C6B;
	--bs-pagination-focus-color:        #0B2C6B;
	--bs-pagination-active-bg:          #0F3B8E;
	--bs-pagination-active-border-color: #0F3B8E;
	--bs-pagination-focus-box-shadow:   0 0 0 0.25rem rgba(15, 59, 142, 0.25);
}

.progress,
.progress-stacked {
	--bs-progress-bar-bg: #0F3B8E;
}

/* =====================================================================
   AUXILIARES (mesmo padrão das outras plataformas)
   ===================================================================== */

#loading {display: none;position: fixed;top: 0;left: 0;right: 0;bottom: 0;width: 100%;
  background: rgba(0,0,0,0.75) url(../images/loading.gif) no-repeat center center;z-index: 10000; }

.nopadding { padding: 0 }
.noresize {	resize: none; }
.conteudo {	display: none; }

.bs-callout { padding: 20px; margin: 0 0 10px 0; border: 1px solid #eee;
	border-left-width: 5px; border-radius: 3px; }
.bs-callout h4 { margin-top: 0; margin-bottom: 5px; }
.bs-callout p:last-child { margin-bottom: 0; }
.bs-callout code { border-radius: 3px; }
.bs-callout+.bs-callout { margin-top: -5px; }
.bs-callout-default { border-left-color: #777; }
.bs-callout-default h4 { color: #777; }
.bs-callout-primary { border-left-color: #0F3B8E; }
.bs-callout-primary h4 { color: #0F3B8E; }
.bs-callout-success { border-left-color: #5cb85c; }
.bs-callout-success h4 { color: #5cb85c; }
.bs-callout-danger { border-left-color: #d9534f; }
.bs-callout-danger h4 { color: #d9534f; }
.bs-callout-warning { border-left-color: #F57C00; }
.bs-callout-warning h4 { color: #B85A00; }
.bs-callout-info { border-left-color: #5bc0de; }
.bs-callout-info h4 { color: #5bc0de; }
.bs-callout .table{ margin-bottom: 0; }
legend { margin-bottom: 10px;}

.caixa-comandos {
		  padding: 15px;
		  background-color: #f7f9fa;
		  border: 1px solid #dde3e6;
		  border-radius: 4px;
}

.divisor-comandos {
		  height: 1px;
		  width: 100%;
		  margin: 10px 0 12px 0;
		  background-color: #dde3e6;
}

/* =====================================================================
   ÁREA DO CANDIDATO (painel)
   ===================================================================== */

body.csm-painel {
	background-color: var(--csm-fundo);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.csm-conteudo-painel {
	flex: 1;
}

.csm-topo .navbar-brand img {
	height: 44px;
	width: auto;
}

.csm-topo .nav-link {
	font-weight: 500;
	color: #3d4a5c;
}

.csm-topo .nav-link.active,
.csm-topo .nav-link:hover {
	color: var(--csm-azul);
}

.csm-painel .card {
	border: 1px solid #E1E8F0;
	border-radius: 12px;
	box-shadow: 0 6px 18px -12px rgba(11, 44, 107, 0.25);
}

.csm-card-destaque {
	border-left: 4px solid var(--csm-laranja) !important;
}

.csm-icone-vazio {
	font-size: 44px;
	color: var(--csm-azul);
}

.csm-rodape-painel {
	text-align: center;
	color: #5B6B80;
	padding: 20px 0 24px 0;
	line-height: 1.6;
}

.csm-rodape-painel a {
	color: #5B6B80;
}

/* =====================================================================
   FORMULÁRIO DO PEDIDO (etapas)
   ===================================================================== */

.csm-pedido-topo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	margin-bottom: 16px;
}

.csm-etapas {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0 0 24px 0;
	gap: 4px;
}

.csm-etapas li {
	flex: 1;
	text-align: center;
	font-size: 12px;
	line-height: 1.3;
	color: #8A97A8;
	position: relative;
}

.csm-etapas li a,
.csm-etapas li span.csm-etapa-bloqueada {
	display: block;
	color: inherit;
	text-decoration: none;
	padding-top: 38px;
}

.csm-etapas li .csm-etapa-numero {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 13px;
	background-color: #fff;
	border: 2px solid #CBD5E1;
	color: #8A97A8;
}

.csm-etapas li.csm-etapa-feita {
	color: #3d4a5c;
}

.csm-etapas li.csm-etapa-feita .csm-etapa-numero {
	border-color: var(--csm-azul);
	color: var(--csm-azul);
}

.csm-etapas li.csm-etapa-atual {
	color: var(--csm-azul);
	font-weight: 600;
}

.csm-etapas li.csm-etapa-atual .csm-etapa-numero {
	background-color: var(--csm-azul);
	border-color: var(--csm-azul);
	color: #fff;
}

.csm-etapas li a:hover .csm-etapa-numero {
	border-color: var(--csm-laranja);
}

/* NO CELULAR, OS NOMES DAS ETAPAS SOMEM E FICA SÓ A BARRA DE PROGRESSO COM O NOME DA ETAPA ATUAL */
.csm-etapas-celular {
	display: none;
	margin-bottom: 20px;
}

@media (max-width: 767.98px) {
	.csm-etapas {
		display: none;
	}

	.csm-etapas-celular {
		display: block;
	}
}

.csm-etapas-celular .progress {
	height: 8px;
}

.csm-etapas-celular .progress-bar {
	background-color: var(--csm-azul);
}

.csm-dica {
	font-size: 13px;
	color: #5B6B80;
}

.csm-item-lista {
	border: 1px solid #E1E8F0;
	border-radius: 10px;
	padding: 14px 16px;
	margin-bottom: 12px;
	background-color: #fff;
}

.csm-item-lista .csm-item-acoes a {
	font-size: 13px;
	text-decoration: none;
}

.csm-plano-opcao {
	display: block;
	border: 2px solid #E1E8F0;
	border-radius: 10px;
	padding: 12px 14px;
	cursor: pointer;
	height: 100%;
	background-color: #fff;
}

.csm-plano-opcao:has(input:checked) {
	border-color: var(--csm-azul);
	background-color: var(--csm-azul-claro);
}

.csm-plano-opcao input {
	margin-right: 6px;
}

.csm-bloco-versao {
	border-left: 3px solid var(--csm-azul-claro);
	padding-left: 14px;
	margin-bottom: 20px;
}

.csm-botoes-etapa {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #E1E8F0;
}

.csm-revisao dt {
	font-weight: 400;
	font-size: 13px;
	color: #5B6B80;
}

.csm-revisao dd {
	margin-bottom: 10px;
}

/* TÍTULO DOS CARDS: ÍCONE + TEXTO NA COR DA MARCA */
.csm-titulo-card {
	color: var(--csm-azul);
	letter-spacing: 0.3px;
}

.csm-titulo-card i {
	width: 1.4em;
}

/* FAIXA "ESCREVA DO SEU JEITO" DAS ETAPAS DO PEDIDO */
.csm-faixa-escreva {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	background-color: var(--csm-azul-claro);
	color: var(--csm-azul-escuro);
	border-radius: 10px;
	padding: 12px 16px;
	margin-bottom: 20px;
	font-size: 14px;
}

.csm-faixa-escreva i {
	font-size: 18px;
	margin-top: 2px;
}

/* AVISO (ALERT) COM ÍCONE À ESQUERDA */
.csm-alerta-icone {
	display: flex;
	gap: 10px;
	align-items: flex-start;
}

.csm-alerta-icone > i {
	font-size: 17px;
	margin-top: 2px;
}

/* DETALHES DO PLANO ESCOLHIDO (ETAPA 1) */
.csm-detalhe-plano {
	border: 1px solid #E1E8F0;
	border-radius: 10px;
	padding: 16px;
	margin-top: 16px;
	background-color: #fff;
}

.csm-detalhe-plano ul {
	list-style: none;
	padding-left: 0;
	margin-bottom: 0;
}

.csm-detalhe-plano li {
	margin-bottom: 4px;
}

.csm-detalhe-plano li i {
	color: #198754;
	width: 1.4em;
}

/* CARTA DE APRESENTAÇÃO COMO ADICIONAL */
.csm-adicional {
	border: 2px dashed var(--csm-laranja);
	border-radius: 10px;
	padding: 12px 14px;
	margin-top: 14px;
	background-color: #FFF8F0;
}

/* OPÇÃO EM CARTÃO COM ÍCONE (MOMENTO PROFISSIONAL) */
.csm-plano-opcao .csm-opcao-icone {
	color: var(--csm-azul);
	width: 1.4em;
}

/* GRUPO DE OPÇÕES OBRIGATÓRIO NÃO ESCOLHIDO */
.csm-grupo-invalido .csm-plano-opcao {
	border-color: #DC3545;
}

/* MANUAL DO CANDIDATO */
.csm-manual {
	max-width: 46em;
	color: #2B3645;
	line-height: 1.7;
}

.csm-manual section {
	margin-top: 32px;
	scroll-margin-top: 90px;
}

.csm-manual section:first-child {
	margin-top: 0;
}

.csm-manual h2 {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--csm-azul-escuro);
	margin-bottom: 10px;
}

.csm-manual ul {
	padding-left: 1.3em;
}

.csm-manual li {
	margin-bottom: 8px;
}

.csm-manual-sumario ol {
	padding-left: 1.3em;
	font-size: 0.95rem;
}

.csm-manual-sumario li {
	margin-bottom: 5px;
}

@media (min-width: 992px) {
	.csm-manual-sumario {
		position: sticky;
		top: 90px;
	}
}

/* CHAMADA DO MANUAL (BÔNUS) NA LISTA DE PEDIDOS E NO PEDIDO */
.csm-bonus-manual {
	display: flex;
	align-items: center;
	gap: 16px;
	border-left: 4px solid var(--csm-azul) !important;
}

.csm-bonus-manual > i {
	font-size: 1.8rem;
	color: var(--csm-azul);
}
