/**
 * CRM Fondation - Estilos do dashboard
 *
 * Migrado 1:1 de Aparência > Personalizar > CSS adicional em 2026-08-03.
 * Nenhuma regra foi reescrita. Depois de publicar este arquivo, o campo
 * "CSS adicional" do Personalizar deve ser esvaziado para evitar duplicação.
 *
 * Carregado por crm_fondation_scripts() em functions.php, com dependência de
 * 'crm-fondation-style' para manter a ordem da cascata:
 * bootstrap-grid -> style.css -> dashboard.css
 *
 * @package CRM_Fondation
 */

:root {
	--first-color: #D31045;
	--secondary-color: #3259E8;
	--third-color: #3259E8;
	--title-color: #2C2E3A;
	--text-color: #4A4D55;
	--main-font: 'Inter', sans-serif;
	--title-font: 'Inter', sans-serif;
}

html,
body{
	color: var(--text-color);
	font-family: var(--main-font);
}

body{
	padding-top: 0;
}

.pg-default{
	/* 	padding-top: 64px; */
}

strong{
	font-weight: 600;
}

/*
 * O CSS herdado zerava o outline de tudo, deixando quem navega por teclado sem
 * saber onde está. :focus-visible devolve o indicador só a quem precisa dele —
 * o clique de mouse continua sem contorno.
 */
:focus {
	outline: none;
}

:focus-visible {
	outline: 2px solid var(--secondary-color);
	outline-offset: 2px;
	border-radius: 4px;
}

.cx_btn a:focus-visible,
.cx_btn button:focus-visible{
	outline-offset: 3px;
}

input[type=submit],
button[type=submit]{
	cursor: pointer;
}

.post, .page {
	margin: 0;
}

.clearfix::after {
	content: "";
	clear: both;
	display: table;
}

a{
	color: var(--text-color);
	outline: none;
	text-decoration: none;
	position: relative;
}

.dashboard-content a{
	color: var(--third-color);
}



a:visited {
	color: inherit;
}

a:hover,
.wrp_footer--nav a:hover{
	color: var(--first-color);
}

[class^="icon-"]{
	font-size: 24px;
	vertical-align: middle;
}

p{
	line-height: 1.6;
	font-size:	18px;
	margin-top: 0;
	color: var(--text-color);
}

p {
	word-break: break-word;
	/* Garante que palavras muito longas sejam quebradas */
	word-wrap: break-word;
	/* Alternativa para compatibilidade */
	overflow-wrap: break-word;
	/* Funciona de forma semelhante */
}

h2{
	font-size: 28px;
	line-height: 1.2;
}

/* Botão do menu retrátil: escondido no desktop, ver a seção RESPONSIVO. */
.dashboard-menu-toggle,
.dashboard-menu-fermer,
.dashboard-overlay{
	display: none;
}

.align-center{
	text-align: center;
}

.align-right{
	text-align: right;
}

.wrp_default{
	padding: 90px 0 120px;
}

.container-fluid{
	/* 	padding-right: 40px;
	padding-left: 40px; */
}

hr{
	background: #E7E7E9;
	margin: 40px 0;
}

.cx_btn a,
.cx_btn button{
	font-size: 16px;
	padding: 16px 24px;
	line-height: 1;
	background: #3259E8;
	display: inline-block;
	color: #FFF;
	border-radius: 60px;
	border: none;
	cursor: pointer;
}

.cx_btn a i,
.cx_btn button i{
	font-size: 20px;
	vertical-align: middle;
	margin-right: 2px;
}

/* Ação destrutiva. */
.cx_btn--danger a,
.cx_btn--danger button{
	background: #DC3545;
	color: #FFF;
	border: none;
}

.cx_btn--danger a:hover,
.cx_btn--danger button:hover{
	background: #B02A37;
	color: #FFF;
}

/* Botão aguardando resposta do servidor. */
.cx_btn button.is-charge,
.cx_btn button[disabled]{
	opacity: .6;
	cursor: default;
}

/* Variante secundária: mesma forma, peso visual menor que a ação principal. */
.cx_btn--ghost a,
.cx_btn--ghost button{
	background: #FFF;
	color: var(--secondary-color);
	border: 1px solid #D6DEF7;
}

.cx_btn--ghost a:hover,
.cx_btn--ghost button:hover{
	background: #F5F9FC;
	color: var(--secondary-color);
}

/* Grupo de botões no cabeçalho do dashboard. */
.wrp_dashboard--actions{
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* Separador dos grupos "1re / 2e personne" no formulário de contato. */
.wrp_form--groupe-titre{
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--title-color);
	margin: 24px 0 20px;
	padding-top: 20px;
	border-top: 1px solid #E7E7E9;
}

/* =========================
*
* TELA DE PARÂMETROS
*
* Antes eram oito textareas "um valor por linha" lado a lado, sem hierarquia.
* Agora cada seção é uma aba e cada lista um cartão com uma linha por valor.
*
* ========================= */

.wrp_onglets{
	display: flex;
	gap: 4px;
	margin: 0 0 32px;
	padding: 4px;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 60px;
	overflow-x: auto;
}

.wrp_onglet{
	flex: 1 1 auto;
	white-space: nowrap;
	padding: 12px 24px;
	border: none;
	border-radius: 60px;
	background: none;
	color: var(--text-color);
	font-family: var(--main-font);
	font-size: 15px;
	cursor: pointer;
}

.wrp_onglet:hover{
	background: #F5F9FC;
}

.wrp_onglet.is-actif{
	background: var(--secondary-color);
	color: #FFF;
}

/*
 * Grade dos parâmetros.
 *
 * As colunas do Bootstrap esticavam todo cartão até a altura do mais alto da
 * linha: uma lista de dois valores ficava com um palmo de vazio embaixo.
 * Aqui cada cartão tem a altura do seu conteúdo.
 */
.wrp_parametres--grille{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	align-items: start;
	gap: 20px;
	margin: 0 0 32px;
}

/* Assinaturas e textos longos ocupam a largura inteira. */
.wrp_parametres--cellule.est-large{
	grid-column: 1 / -1;
}

.wrp_carte--parametre{
	padding: 20px 24px 12px;
	margin: 0;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 12px;
}

.wrp_carte--parametre > label,
.wrp_carte--titre{
	display: block;
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 500;
	color: var(--title-color);
}

/*
 * Selo de "ainda é o texto de exemplo".
 *
 * Some sozinho na primeira edição — o servidor compara o conteúdo com o
 * exemplo, então não depende de o cliente lembrar de marcar nada.
 */
.wrp_selo{
	display: inline-block;
	vertical-align: middle;
	margin-left: 8px;
	padding: 3px 10px;
	border-radius: 60px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2px;
	text-transform: none;
	cursor: help;
}

.wrp_selo--exemple{
	background: #FFF8E6;
	border: 1px solid #F0DFB0;
	color: #8A6A12;
}

/* Botão de pré-visualização, no pé do cartão do texto. */
.wrp_carte--parametre .cx_btn{
	margin: 4px 0 16px;
}

/* Editor de lista: uma linha por valor. */
.wrp_liste--ligne{
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px;
}

.wrp_liste--ligne input{
	margin: 0 !important;
}

.wrp_liste--retirer{
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid #E7E7E9;
	border-radius: 8px;
	background: #FFF;
	color: #DC3545;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}

.wrp_liste--retirer:hover{
	background: #FDECEE;
	border-color: #F3C4C9;
}

.wrp_liste--ajouter{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 4px 0 16px;
	padding: 10px 16px;
	border: 1px dashed #D6DEF7;
	border-radius: 8px;
	background: #FFF;
	color: var(--secondary-color);
	font-family: var(--main-font);
	font-size: 15px;
	cursor: pointer;
}

.wrp_liste--ajouter:hover{
	background: #F5F9FC;
	border-style: solid;
}

/* Assinatura digitalizada. */
.wrp_signature--zone{
	padding: 12px;
	border: 1px dashed #D6DEF7;
	border-radius: 8px;
	background: #FBFCFE;
	margin: 0 0 16px;
}

.wrp_signature--vide{
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	color: #6B6D75;
	font-size: 14px;
}

.wrp_signature--vide i{
	font-size: 20px;
}

.wrp_signature--zone .wrp_parametres--apercu{
	background: #FFF;
}

.wrp_signature--zone .wrp_parametres--apercu img{
	max-height: 64px;
}

.wrp_form--aide{
	display: block;
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 400;
	color: #6B6D75;
	line-height: 1.4;
}

.wrp_parametres--registro{
	padding: 16px 0 0;
	border-top: 1px dashed #E7E7E9;
	margin-bottom: 8px;
}

.wrp_parametres--registro:first-child{
	border-top: none;
}

.wrp_parametres--apercu{
	display: block;
	margin: 0 0 8px;
	padding: 8px;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 6px;
}

.wrp_parametres--apercu img{
	max-height: 48px;
	width: auto;
}

/*
 * Barra de ação fixa ao pé da janela.
 *
 * A tela de parâmetros é longa; com o botão só no fim, quem mexia numa lista do
 * topo tinha de rolar tudo para salvar.
 */
.wrp_barre--action{
	position: sticky;
	bottom: 0;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 16px 24px;
	margin: 24px -24px 0;
	background: rgba(255, 255, 255, .95);
	border-top: 1px solid #E7E7E9;
	backdrop-filter: blur(6px);
}

.wrp_barre--indice{
	font-size: 14px;
	color: #6B6D75;
	margin: 0;
}

/* =========================
*
* NOTIFICAÇÕES E DIÁLOGO
*
* Reaproveitam as classes .wrp_message--* das mensagens do servidor, para que
* uma resposta AJAX e um redirecionamento com mensagem sejam indistinguíveis.
*
* ========================= */

.wrp_notifications{
	position: fixed;
	top: 24px;
	right: 24px;
	z-index: 1000;
	width: 380px;
	max-width: calc(100vw - 32px);
	display: flex;
	flex-direction: column;
	gap: 12px;
	pointer-events: none;
}

.wrp_notification{
	position: relative;
	padding-right: 48px;
	margin: 0;
	pointer-events: auto;
	box-shadow: 0 8px 24px rgba(44, 46, 58, .14);
	animation: crm-entrada .25s ease;
}

.wrp_notification.is-sortant{
	opacity: 0;
	transform: translateX(12px);
	transition: opacity .25s ease, transform .25s ease;
}

@keyframes crm-entrada{
	from { opacity: 0; transform: translateX(16px); }
	to   { opacity: 1; transform: translateX(0); }
}

.wrp_notification--fermer{
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
	color: inherit;
	opacity: .7;
	line-height: 1;
}

.wrp_notification--fermer:hover{
	opacity: 1;
}

.wrp_dialogue{
	width: 480px;
	max-width: calc(100vw - 32px);
	padding: 28px 32px;
	border: none;
	border-radius: 12px;
	background: #FFF;
	color: var(--text-color);
	box-shadow: 0 16px 48px rgba(44, 46, 58, .24);
}

.wrp_dialogue::backdrop{
	background: rgba(44, 46, 58, .45);
}

.wrp_dialogue--titre{
	margin: 0 0 12px;
	font-size: 21px;
	font-weight: 600;
	color: var(--title-color);
	line-height: 1.2;
}

.wrp_dialogue--message{
	margin: 0 0 28px;
	font-size: 16px;
}

.wrp_dialogue--actions{
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	flex-wrap: wrap;
}

/* =========================
*
* BUSCA COM SUGESTÕES
*
* Campo de convidado do evento. Antes era um <select> com todos os contatos
* do banco; agora as sugestões vêm do servidor conforme se digita.
*
* ========================= */

.wrp_autocomplete{
	position: relative;
}

.wrp_autocomplete--liste{
	position: absolute;
	top: calc(100% - 12px);
	left: 0;
	right: 0;
	z-index: 30;
	max-height: 280px;
	overflow-y: auto;
	list-style: none;
	margin: 0;
	padding: 4px;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(44, 46, 58, .12);
}

.wrp_autocomplete--liste li{
	padding: 10px 14px;
	border-radius: 6px;
	cursor: pointer;
	line-height: 1.3;
}

/* is-actif é o item que as setas do teclado percorrem. */
.wrp_autocomplete--liste li:hover,
.wrp_autocomplete--liste li.is-actif{
	background: #F5F8FF;
}

.wrp_autocomplete--liste strong{
	display: block;
	font-size: 15px;
	font-weight: 500;
	color: var(--title-color);
}

.wrp_autocomplete--liste small{
	display: block;
	font-size: 13px;
	color: #6B6D75;
}

.wrp_autocomplete--vide{
	color: #6B6D75;
	font-size: 14px;
	cursor: default !important;
}

.wrp_autocomplete--vide:hover{
	background: none !important;
}

/* Événements */
#form_participation{
	display: none;
	padding: 24px 0 8px;
}

#form_participation.is-open{
	display: block;
}

/*
 * Texto de ajuda logo abaixo do campo.
 *
 * O campo já carrega 16px de margem inferior, então a ajuda caía longe dele e
 * colada no rótulo seguinte — parecia pertencer ao campo de baixo.
 */
input + .wrp_form--aide,
select + .wrp_form--aide,
textarea + .wrp_form--aide,
.wrp_autocomplete + .wrp_form--aide{
	margin-top: -10px;
	margin-bottom: 18px;
}

/* Subdivisão dentro de um formulário já em cartão. */
.wrp_form--sous-titre{
	margin: 8px 0 16px;
	font-size: 15px;
	font-weight: 600;
	color: var(--title-color);
}

.wrp_form--sous-titre small{
	display: block;
	margin-top: 4px;
	font-size: 13px;
	font-weight: 400;
	color: #6B6D75;
	line-height: 1.5;
}

/* Acompanhantes de um convidado, na tabela de participações. */
.wrp_places--noms{
	list-style: none;
	margin: 0;
	padding: 0;
}

.wrp_places--noms li{
	margin-bottom: 4px;
	line-height: 1.3;
}

.wrp_places--noms strong{
	display: block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: #6B6D75;
	font-weight: 500;
}

/*
 * Busca na sidebar
 *
 * O seletor era `.sidebar--recherche input`, com menos peso que o
 * `form input:not([type=submit])` genérico — ou seja, o estilo próprio da
 * busca nunca chegava a valer. Prefixar com .dashboard-sidebar resolve.
 */
.sidebar--recherche{
	position: relative;
	margin: 0 0 32px;
}

.dashboard-sidebar .sidebar--recherche input{
	width: 100%;
	height: 48px;
	min-height: 48px;
	padding: 0 46px 0 18px;
	font-size: 15px;
	border: 1px solid #E7E7E9;
	border-radius: 60px;
	background: #F5F9FC;
	margin: 0;
}

.dashboard-sidebar .sidebar--recherche input:focus{
	background: #FFF;
	border-color: var(--secondary-color);
	box-shadow: 0 0 0 3px rgba(50, 89, 232, .12);
}

/* O X que o navegador põe no type=search brigava com a lupa. */
.dashboard-sidebar .sidebar--recherche input::-webkit-search-cancel-button{
	display: none;
}

.dashboard-sidebar .sidebar--recherche button{
	position: absolute;
	top: 50%;
	right: 4px;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	border-radius: 50%;
	padding: 0;
	cursor: pointer;
	color: var(--secondary-color);
	line-height: 1;
}

.dashboard-sidebar .sidebar--recherche button:hover{
	background: #EEF3FE;
}

.sidebar--recherche button i{
	font-size: 20px;
}

/* Resultados da busca */
.wrp_recherche--resultats{
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
}

.wrp_recherche--resultats li{
	padding: 12px 16px;
	margin: 0 0 8px;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 6px;
}

.wrp_recherche--resultats strong{
	font-size: 16px;
}

.wrp_recherche--resultats small{
	display: block;
	margin-top: 4px;
	color: #6B6D75;
	font-size: 14px;
}

/* Matriz de direitos */
.wrp_droit--oui{
	color: #1E7A3C;
	font-size: 20px;
}

.wrp_droit--non{
	color: #C9CBD1;
	font-size: 20px;
}

/* Direito como cartão selecionável: a caixa sozinha não dizia o que fazia. */
.wrp_droit--case{
	height: 100%;
	padding: 16px 20px;
	margin: 0 0 16px;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 10px;
	transition: border-color .15s ease, background .15s ease;
}

.wrp_droit--case:hover{
	border-color: #C9D3F3;
	background: #FBFCFE;
}

/* Marcado: fica evidente à distância quais direitos o perfil tem. */
.wrp_droit--case:has(input:checked){
	border-color: var(--secondary-color);
	background: #F5F8FF;
}

.wrp_droit--case.est-verrouille{
	background: #F5F6F8;
	border-style: dashed;
}

.wrp_droit--case label{
	margin: 0;
	font-size: 16px;
}

.wrp_droit--case small{
	display: block;
	margin-top: 6px;
	padding-left: 30px;
	color: #6B6D75;
	font-size: 13px;
	line-height: 1.5;
}

.wrp_droit--case small em{
	display: block;
	margin-top: 2px;
	color: #8A6A12;
	font-style: normal;
}

/* =========================
*
* PERFIS DE ACESSO
*
* ========================= */

.wrp_profils--grille{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	margin: 0 0 24px;
}

.wrp_profil--carte{
	margin: 0;
}

.wrp_profil--entete{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 8px;
}

.wrp_profil--entete h4{
	margin: 0;
	font-size: 17px;
	font-weight: 600;
	color: var(--title-color);
}

.wrp_profil--aide{
	font-size: 14px;
	color: #6B6D75;
	margin: 0 0 12px;
	line-height: 1.5;
}

.wrp_profil--vide{
	font-size: 14px;
	color: #A6A8B0;
	margin: 0;
}

/* Legenda dos perfis ao lado do seletor, no formulário de utilizador. */
.wrp_profils--legende{
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
}

.wrp_profils--legende li{
	padding: 10px 14px;
	margin: 0 0 8px;
	border-left: 3px solid #D6DEF7;
	background: #FBFCFE;
	border-radius: 0 6px 6px 0;
	font-size: 14px;
	line-height: 1.5;
}

.wrp_profils--legende strong{
	display: block;
	color: var(--title-color);
}

.wrp_profils--legende span{
	color: #6B6D75;
}

/* Grupo de ações encostado à direita da linha. */
.wrp_dashboard--actions.align-right{
	justify-content: flex-end;
}

/* Campo dentro de uma mensagem — o link de definição de senha. */
.wrp_message--succes label{
	margin-top: 12px;
	font-size: 14px;
	font-weight: 500;
}

.dashboard-content .wrp_message--succes input[readonly]{
	background: #FFF;
	font-size: 14px;
	margin-bottom: 8px;
	cursor: pointer;
}

.wrp_message--succes p{
	font-size: 16px;
	margin: 0 0 8px;
}

.wrp_message--succes p:last-of-type{
	margin-bottom: 0;
}

.wrp_liste--simple{
	margin: 8px 0 0;
	padding-left: 18px;
	font-size: 15px;
}

.wrp_liste--simple li{
	margin-bottom: 4px;
}

/* Listagem paginada */
.wrp_liste--compte{
	font-size: 16px;
	color: #6B6D75;
	margin: 0 0 16px;
}

.wrp_pagination{
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 32px 0 0;
	flex-wrap: wrap;
}

.wrp_pagination .page-numbers{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: 6px;
	border: 1px solid #E7E7E9;
	background: #FFF;
	color: var(--secondary-color);
	font-size: 15px;
	line-height: 1;
}

.wrp_pagination .page-numbers:hover{
	background: #F5F9FC;
	color: var(--secondary-color);
}

.wrp_pagination .page-numbers.current{
	background: var(--secondary-color);
	border-color: var(--secondary-color);
	color: #FFF;
}

.wrp_pagination .page-numbers.dots{
	border-color: transparent;
	background: none;
}

/*
 * Importação
 *
 * O input[type=file] nativo escreve "Escolher arquivo / Nenhum arquivo
 * escolhido" no idioma do navegador, no meio de uma interface francesa, e não
 * há CSS que mude esse texto. Por isso o campo real fica escondido e quem
 * aparece é o rótulo.
 */
.wrp_fichier{
	position: relative;
	display: block;
	padding: 32px 24px;
	margin: 0 0 24px;
	text-align: center;
	border: 2px dashed #D6DEF7;
	border-radius: 12px;
	background: #FBFCFE;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}

.wrp_fichier:hover,
.wrp_fichier.is-survol{
	border-color: var(--secondary-color);
	background: #F3F7FF;
}

/*
 * Sai do fluxo mas continua focável pelo teclado.
 *
 * O prefixo .dashboard-content não é decoração: sem ele este seletor empata
 * com a regra genérica de campos lá embaixo e perde por vir antes na folha.
 */
.dashboard-content .wrp_fichier input[type=file]{
	position: absolute;
	width: 1px;
	height: 1px;
	min-height: 0;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	border: 0;
}

.wrp_fichier input[type=file]:focus-visible + .wrp_fichier--contenu{
	outline: 2px solid var(--secondary-color);
	outline-offset: 6px;
	border-radius: 8px;
}

.wrp_fichier--icone{
	display: block;
	font-size: 32px;
	line-height: 1;
	margin: 0 0 12px;
	color: var(--secondary-color);
}

.wrp_fichier--titre{
	display: block;
	font-size: 16px;
	font-weight: 500;
	color: var(--title-color);
	margin: 0 0 4px;
}

.wrp_fichier--indice{
	display: block;
	font-size: 14px;
	color: #6B6D75;
}

/* Preenchido pelo crm.js quando um arquivo é escolhido. */
.wrp_fichier--nom{
	display: none;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 500;
	color: #1E7A3C;
	margin-top: 12px;
}

.wrp_fichier.is-rempli .wrp_fichier--nom{
	display: flex;
}

.wrp_progression{
	height: 14px;
	background: #E7E7E9;
	border-radius: 60px;
	overflow: hidden;
	margin: 0 0 12px;
}

.wrp_progression--barre{
	height: 100%;
	background: var(--secondary-color);
	transition: width .3s ease;
}

.wrp_progression--texte{
	font-size: 16px;
	margin: 0 0 24px;
}

.wrp_import--erreurs{
	padding: 16px 20px;
	margin: 0 0 24px;
	border-radius: 6px;
	background: #FFF8E6;
	border: 1px solid #F0DFB0;
}

.wrp_import--erreurs h4{
	margin: 0 0 8px;
	font-size: 16px;
	color: #8A6A12;
}

.wrp_import--erreurs ul{
	margin: 0;
	padding-left: 20px;
	font-size: 14px;
	color: #6B5310;
}

.wrp_message--info{
	padding: 14px 20px;
	margin: 0 0 24px;
	border-radius: 6px;
	background: #EEF3FE;
	border: 1px solid #D6DEF7;
	color: #2A44A8;
	font-size: 16px;
}

.wrp_message--erreur{
	padding: 14px 20px;
	margin: 0 0 24px;
	border-radius: 6px;
	background: #FDECEE;
	border: 1px solid #F3C4C9;
	color: #9B2430;
	font-size: 16px;
}

.wrp_message--succes{
	padding: 14px 20px;
	margin: 0 0 32px;
	border-radius: 6px;
	background: #E8F5EC;
	border: 1px solid #BFE3CB;
	color: #1E7A3C;
	font-size: 16px;
}

/* Primeiro título de uma tela: sem o traço de separação acima. */
.wrp_form--groupe-titre--premier{
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.wrp_form--groupe-titre small{
	display: block;
	margin-top: 6px;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: #6B6D75;
}

/* =========================
*
* CARTÃO E RESUMO
*
* A ficha do contato era uma grade solta de rótulos sobre o fundo da página,
* sem separar identidade, contato e histórico. Cada assunto agora é um cartão.
*
* ========================= */

.wrp_carte{
	padding: 24px 28px;
	margin: 0 0 24px;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 12px;
}

.wrp_carte--entete{
	margin: 0 0 20px;
	padding: 0 0 16px;
	border-bottom: 1px solid #F0F1F3;
	font-size: 16px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	color: var(--title-color);
}

.wrp_carte--entete small{
	display: block;
	margin-top: 6px;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: #6B6D75;
}

/* A tabela vai até a borda do cartão, sem duplicar o respiro lateral. */
.wrp_carte .table-responsive{
	margin: 0 -28px -24px;
	width: auto;
}

.wrp_carte .table{
	margin-bottom: 0;
}

.wrp_carte .table th:first-child,
.wrp_carte .table td:first-child{
	padding-left: 28px;
}

.wrp_carte .table th:last-child,
.wrp_carte .table td:last-child{
	padding-right: 28px;
}

/* Números que se quer ler antes de percorrer a ficha inteira. */
.wrp_resume{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 16px;
	margin: 0 0 28px;
}

.wrp_resume--item{
	padding: 18px 20px;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 12px;
}

.wrp_resume--valeur{
	display: block;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--title-color);
	margin-bottom: 4px;
	word-break: break-word;
}

.wrp_resume--etiquette{
	display: block;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .8px;
	color: #6B6D75;
}

/*=========== TEXT LABEL ===========*/

.warp_text--label{
	margin-bottom: 20px;
}

.warp_text--label h4{
	color: #6B6D75;
	font-weight: 500;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .6px;
	margin: 0 0 6px;
	line-height: 1.3;
}

.warp_text--label p{
	color: var(--title-color);
	font-size: 16px;
	margin: 0;
	line-height: 1.5;
}

/* Campo sem valor: um traço em cinza, e não um buraco na grade. */
.warp_text--label p.est-vide{
	color: #A6A8B0;
}

.warp_text--label .wrp_etiquette{
	margin: 0 4px 4px 0;
}

/* O formulário de ação começa fechado; o botão "Nouvelle action" o abre. */
#form_registrar-tarefa{
	display: none;
	padding-top: 24px;
}

/*=========== FORM ===========*/

/*
 * O estilo dos campos estava escopado em `form`, então tudo que ficava fora de
 * um formulário renderizava com o visual cru do navegador — era o caso do
 * filtro das Tâches ouvertes. O escopo agora é o conteúdo do painel, e não a
 * tag `form`.
 */
form input:not([type=submit]),
form select,
form textarea,
.dashboard-content input:not([type=submit]),
.dashboard-content select,
.dashboard-content textarea{
	color: var(--text-color);
	font-family: var(--main-font);

	width: 100%;
	max-width: 100%;

	padding: 12px 16px;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.2;
	min-height: 48px;

	border-radius: 8px;
	border: 1px solid #E7E7E9;
	background: #FFF;

	margin-bottom: 16px;
	transition: border-color .15s ease, box-shadow .15s ease;
}

form input:not([type=submit]):hover,
form select:hover,
.dashboard-content input:not([type=submit]):hover,
.dashboard-content select:hover{
	border-color: #C9D3F3;
}

form input:not([type=submit]):focus,
form select:focus,
form textarea:focus,
.dashboard-content input:not([type=submit]):focus,
.dashboard-content select:focus,
.dashboard-content textarea:focus{
	border-color: var(--secondary-color);
	box-shadow: 0 0 0 3px rgba(50, 89, 232, .12);
}

/* Campo desativado: precisa parecer desativado, não só recusar o clique. */
form input[disabled],
form select[disabled],
.dashboard-content input[disabled],
.dashboard-content select[disabled]{
	background: #F5F6F8;
	color: #6B6D75;
	cursor: not-allowed;
}

/* A seta do select, para não depender do desenho de cada navegador. */
form select,
.dashboard-content select{
	appearance: none;
	-webkit-appearance: none;
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%236B6D75' stroke-width='1.6'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 16px;
	cursor: pointer;
}

/*
 * Caixas de seleção: antes herdavam o campo de texto e só ganhavam
 * `width: auto`, o que devolvia a caixinha cinza padrão do sistema.
 */
form input[type='checkbox'],
form input[type='radio'],
.dashboard-content input[type='checkbox'],
.dashboard-content input[type='radio']{
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	min-height: 0;
	min-width: 20px;
	margin: 0;
	padding: 0;
	accent-color: var(--secondary-color);
	cursor: pointer;
}

form input[type='radio'],
.dashboard-content input[type='radio']{
	border-radius: 50%;
}

form textarea,
.dashboard-content textarea{
	height: 138px;
	line-height: 1.5;
}

/* Lista aberta não é caixa de escolha única: sem seta e com altura própria. */
form select[multiple],
form select[size],
.dashboard-content select[multiple],
.dashboard-content select[size]{
	background-image: none;
	padding: 8px 12px;
	height: auto;
}

/*
 * Grupo de caixas de seleção lado a lado.
 *
 * Substitui o <select multiple>, que exigia Ctrl+clique e escondia atrás de
 * uma barra de rolagem o que estava marcado.
 */
.wrp_champ--titre{
	display: block;
	margin: 0 0 4px;
	font-size: 15px;
	font-weight: 500;
	color: var(--title-color);
}

.wrp_cases{
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 4px 0 16px;
}

.wrp_case{
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
	padding: 10px 18px 10px 14px;
	border: 1px solid #E7E7E9;
	border-radius: 60px;
	background: #FFF;
	font-size: 15px;
	font-weight: 400 !important;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}

.wrp_case:hover{
	border-color: #C9D3F3;
	background: #FBFCFE;
}

/* Marcado: dá para varrer a linha e ver a que grupos o contato pertence. */
.wrp_case:has(input:checked){
	border-color: var(--secondary-color);
	background: #F5F8FF;
	color: var(--secondary-color);
	font-weight: 500 !important;
}

form input[type='submit']{
	padding: 14px 20px;
	line-height: 1;
	border: none;
	border-radius: 60px;
	min-width: 180px;
	color: #FFF;
	background: var(--first-color);
}

form ::-webkit-input-placeholder { /* Chrome/Opera/Safari */
	color: var(--text-color);
	font-family: var(--main-font);
}
form  ::-moz-placeholder { /* Firefox 19+ */
	color: var(--text-color);
	font-family: var(--main-font);
}
form  :-ms-input-placeholder { /* IE 10+ */
	color: var(--text-color);
	font-family: var(--main-font);
}
form  :-moz-placeholder { /* Firefox 18- */
	color: var(--text-color);
	font-family: var(--main-font);
}

form p{
	margin: 0;
}

form label,
.dashboard-content label{
	margin: 0 0 8px;
	display: block;
	color: var(--title-color);
}

form label,
form .wrp_form--checkbox h4,
.dashboard-content label{
	font-size: 15px;
	font-weight: 500;
}

/*
 * A caixa e o texto numa linha só, alinhados pelo centro — antes o
 * `inline-block` deixava o texto flutuando acima da caixa.
 */
form .wrp_form--checkbox label,
.dashboard-content .wrp_form--checkbox label{
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	font-weight: 400;
	cursor: pointer;
}

form .wrp_form--checkbox h4{
	margin: 0 0 12px;
}

/* Rótulo do grupo, quando as caixas ficam soltas numa coluna de filtro. */
.wrp_form--checkbox > h4{
	font-size: 15px;
	font-weight: 500;
	color: var(--title-color);
}

/* =========================
*
* BARRA DE FILTROS
*
* Contacts e Tâches ouvertes filtravam com marcações diferentes e alturas que
* não batiam. Agora é o mesmo cartão nas duas, com as ações no fim da linha.
*
* ========================= */

.wrp_filtres{
	padding: 20px 24px 4px;
	margin: 0 0 28px;
	background: #FFF;
	border: 1px solid #E7E7E9;
	border-radius: 12px;
}

/* Alinha o botão pela base dos campos, e não pelo topo da coluna. */
.wrp_filtres--actions{
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

/* Empurra as ações para o fim da linha quando sobra espaço. */
.wrp_filtres .wrp_filtres--actions{
	min-height: 48px;
	margin-top: 23px;
}

.wrp_filtres--actions.align-right{
	justify-content: flex-end;
}

.wrp_filtres .wrp_form--checkbox{
	margin-top: 23px;
	min-height: 48px;
	display: flex;
	align-items: center;
}

.wrp_filtres .wrp_form--checkbox label{
	margin: 0;
}

/* Filtro sozinho numa tela, sem grade de colunas. */
.wrp_filtres--simple{
	display: flex;
	align-items: flex-end;
	gap: 16px;
	flex-wrap: wrap;
}

.wrp_filtres--simple .wrp_champ{
	flex: 1 1 320px;
	max-width: 480px;
}

.wrp_champ input,
.wrp_champ select{
	margin-bottom: 16px;
}

/* Contagem ao lado do filtro, alinhada pela base do campo. */
.wrp_filtres--indice{
	font-size: 15px;
	color: #6B6D75;
	margin: 0 0 16px;
	min-height: 48px;
	display: flex;
	align-items: center;
}

/* Acompanhamento vencido: é o que dá utilidade à lista de tarefas. */
.wrp_etiquette--retard{
	background: #FDECEE;
	border-color: #F3C4C9;
	color: #9B2430;
	margin-left: 6px;
}

/* Abas que são links de verdade: a consulta muda no servidor. */
a.wrp_onglet{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: var(--text-color);
}

a.wrp_onglet.is-actif{
	background: var(--secondary-color);
	color: #FFF;
}

a.wrp_onglet:hover{
	color: var(--text-color);
}

a.wrp_onglet.is-actif:hover{
	color: #FFF;
}

/* Etiqueta de categoria dentro das tabelas (tipo de ação, estado). */
.wrp_etiquette{
	display: inline-block;
	padding: 4px 10px;
	border-radius: 60px;
	background: #EEF3FE;
	border: 1px solid #D6DEF7;
	color: #2A44A8;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	white-space: nowrap;
}

/*============================*/

/* =========================
*
* TABLE ESTRUTURA
*
* ========================= */

table {
	caption-side: bottom;
	border-collapse: collapse;
}

.table {
	--bs-table-color: var(--bs-body-color);
	--bs-table-bg: transparent;
	--bs-table-border-color: var(--bs-border-color);
	--bs-table-accent-bg: transparent;
	--bs-table-striped-color: var(--bs-body-color);
	--bs-table-striped-bg: rgba(0, 0, 0, 0.02);
	--bs-table-active-color: var(--bs-body-color);
	--bs-table-active-bg: rgba(0, 0, 0, 0.1);
	--bs-table-hover-color: var(--bs-body-color);
	--bs-table-hover-bg: rgba(0, 0, 0, 0.03);
	width: 100%;
	margin-bottom: 1rem;
	color: var(--bs-table-color);
	vertical-align: top;
	border-color: var(--bs-table-border-color);
}
.table > :not(caption) > * > * {
	padding: 0.5rem 0.5rem;
	background-color: var(--bs-table-bg);
	border-bottom-width: var(--bs-border-width);
	box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
}
.table > tbody {
	vertical-align: inherit;
}
.table > thead {
	vertical-align: bottom;
}

.table-group-divider {
	border-top: calc(var(--bs-border-width) * 2) solid currentcolor;
}

.caption-top {
	caption-side: top;
}

.table-sm > :not(caption) > * > * {
	padding: 0.25rem 0.25rem;
}

.table-bordered > :not(caption) > * {
	border-width: var(--bs-border-width) 0;
}
.table-bordered > :not(caption) > * > * {
	border-width: 0 var(--bs-border-width);
}

.table-borderless > :not(caption) > * > * {
	border-bottom-width: 0;
}
.table-borderless > :not(:first-child) {
	border-top-width: 0;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
	--bs-table-accent-bg: var(--bs-table-striped-bg);
	color: var(--bs-table-striped-color);
}

.table-striped-columns > :not(caption) > tr > :nth-child(even) {
	--bs-table-accent-bg: var(--bs-table-striped-bg);
	color: var(--bs-table-striped-color);
}

.table-active {
	--bs-table-accent-bg: var(--bs-table-active-bg);
	color: var(--bs-table-active-color);
}

.table-hover > tbody > tr:hover > * {
	--bs-table-accent-bg: var(--bs-table-hover-bg);
	color: var(--bs-table-hover-color);
}

.table-primary {
	--bs-table-color: #000;
	--bs-table-bg: #cfe2ff;
	--bs-table-border-color: #bacbe6;
	--bs-table-striped-bg: #c5d7f2;
	--bs-table-striped-color: #000;
	--bs-table-active-bg: #bacbe6;
	--bs-table-active-color: #000;
	--bs-table-hover-bg: #bfd1ec;
	--bs-table-hover-color: #000;
	color: var(--bs-table-color);
	border-color: var(--bs-table-border-color);
}

.table-secondary {
	--bs-table-color: #000;
	--bs-table-bg: #e2e3e5;
	--bs-table-border-color: #cbccce;
	--bs-table-striped-bg: #d7d8da;
	--bs-table-striped-color: #000;
	--bs-table-active-bg: #cbccce;
	--bs-table-active-color: #000;
	--bs-table-hover-bg: #d1d2d4;
	--bs-table-hover-color: #000;
	color: var(--bs-table-color);
	border-color: var(--bs-table-border-color);
}

.table-success {
	--bs-table-color: #000;
	--bs-table-bg: #d1e7dd;
	--bs-table-border-color: #bcd0c7;
	--bs-table-striped-bg: #c7dbd2;
	--bs-table-striped-color: #000;
	--bs-table-active-bg: #bcd0c7;
	--bs-table-active-color: #000;
	--bs-table-hover-bg: #c1d6cc;
	--bs-table-hover-color: #000;
	color: var(--bs-table-color);
	border-color: var(--bs-table-border-color);
}

.table-info {
	--bs-table-color: #000;
	--bs-table-bg: #cff4fc;
	--bs-table-border-color: #badce3;
	--bs-table-striped-bg: #c5e8ef;
	--bs-table-striped-color: #000;
	--bs-table-active-bg: #badce3;
	--bs-table-active-color: #000;
	--bs-table-hover-bg: #bfe2e9;
	--bs-table-hover-color: #000;
	color: var(--bs-table-color);
	border-color: var(--bs-table-border-color);
}

.table-warning {
	--bs-table-color: #000;
	--bs-table-bg: #fff3cd;
	--bs-table-border-color: #e6dbb9;
	--bs-table-striped-bg: #f2e7c3;
	--bs-table-striped-color: #000;
	--bs-table-active-bg: #e6dbb9;
	--bs-table-active-color: #000;
	--bs-table-hover-bg: #ece1be;
	--bs-table-hover-color: #000;
	color: var(--bs-table-color);
	border-color: var(--bs-table-border-color);
}

.table-danger {
	--bs-table-color: #000;
	--bs-table-bg: #f8d7da;
	--bs-table-border-color: #dfc2c4;
	--bs-table-striped-bg: #eccccf;
	--bs-table-striped-color: #000;
	--bs-table-active-bg: #dfc2c4;
	--bs-table-active-color: #000;
	--bs-table-hover-bg: #e5c7ca;
	--bs-table-hover-color: #000;
	color: var(--bs-table-color);
	border-color: var(--bs-table-border-color);
}

.table-light {
	--bs-table-color: #000;
	--bs-table-bg: #f8f9fa;
	--bs-table-border-color: #dfe0e1;
	--bs-table-striped-bg: #ecedee;
	--bs-table-striped-color: #000;
	--bs-table-active-bg: #dfe0e1;
	--bs-table-active-color: #000;
	--bs-table-hover-bg: #e5e6e7;
	--bs-table-hover-color: #000;
	color: var(--bs-table-color);
	border-color: var(--bs-table-border-color);
}

.table-dark {
	--bs-table-color: #fff;
	--bs-table-bg: #212529;
	--bs-table-border-color: #373b3e;
	--bs-table-striped-bg: #2c3034;
	--bs-table-striped-color: #fff;
	--bs-table-active-bg: #373b3e;
	--bs-table-active-color: #fff;
	--bs-table-hover-bg: #323539;
	--bs-table-hover-color: #fff;
	color: var(--bs-table-color);
	border-color: var(--bs-table-border-color);
}

.table-responsive {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 575.98px) {
	.table-responsive-sm {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}
@media (max-width: 767.98px) {
	.table-responsive-md {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}
@media (max-width: 991.98px) {
	.table-responsive-lg {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}
@media (max-width: 1199.98px) {
	.table-responsive-xl {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}
@media (max-width: 1399.98px) {
	.table-responsive-xxl {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

th{
	text-align: left !important;
}

.table > thead th{
	white-space: nowrap;
}

.table td {
	vertical-align: middle;
}

.table th, .table td {
	font-size: 16px;
}

.table a{
	text-decoration: none;
}


/* =========================
*
* DASHBOARD ESTRUTURA
*
* ========================= */

.wrp_dashboard--title{
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 48px;
}

.wrp_dashboard--title h2{
	margin: 0;
	font-size: 48px;
	font-weight: 400;
	color: var(--title-color);
	line-height: 1;
}

.wrp_dashboard--title .wrp_link--edit{
	font-size: 32px;
	color: var(--secondary-color);
}

.dashboard-container {
	display: flex;
	background: #F5F9FC;
}

.dashboard-sidebar {
	width: 290px;
	min-width: 290px;
	min-height: 100vh;
	background-color: #FFF;
	padding: 48px 32px;
	box-sizing: border-box;
}

.dashboard-content {
	flex-grow: 1;
	padding: 48px 32px;
	box-sizing: border-box;
}

.sidebar--user{
	display: flex;
	align-items: center;
	margin: 0 0 40px;
}

.sidebar--avatar{
	width: 64px;
	height: 64px;
	border-radius: 100%;
	background-image: var(--bg-cover);
	background-position: 50%;
	background-size: cover;
	margin-right: 12px;
}

.sidebar--user h4{
	font-size: 21px;
	color: var(--title-color);
	margin: 0;
	line-height: 1;
}

.sidebar--user small{
	color: #6B6D75;
	font-size: 16px;
}

table{
	border: 1px solid #E7E7E9 !important;
	border-radius: 12px;
	background: #FFF;
}

thead{
	background: #F5F9FC;
	color: #525F7F;
}

thead th{
	padding-top: 24px !important;
	padding-bottom: 24px !important;
	font-weight: 400;
	text-transform: uppercase;
	font-size: 12px !important;
}

thead th:first-child,
tbody td:first-child{
	padding-left: 24px !important;
}

thead th:last-child,
tbody td:last-child{
	padding-right: 24px !important;
}

tbody td{
	color: #000 !important;
	font-size: 14px !important;
}

.table--link--trash,
.table--link--edit{
	font-size: 18px;
	color: #3259E8;
}

.table--link--trash{
	color: #DC3545;
	margin-right: 16px;

	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
}


/* =========================
*
* SIDEBAR
*
* ========================= */

.sidebar--title{
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--title-color);
	line-height: 1;
	margin: 0 0 24px;
}

.sidebar--nav-links{
	margin: 0 0 48px;
}

.sidebar--nav-links a{
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 2px;
	padding: 9px 12px;
	border-radius: 8px;
	font-weight: 400;
	transition: background-color .15s ease, color .15s ease;
}

.sidebar--nav-links a:hover{
	background: #F5F9FC;
	color: var(--secondary-color);
}

/* Tela atual. */
.sidebar--nav-links a.is-actif{
	background: #EEF3FE;
	color: var(--secondary-color);
	font-weight: 500;
}

.sidebar--nav-links i{
	font-size: 24px;
}

.sidebar--settings .sidebar--nav-links a:last-child{
	color: #DC3545;
}

/* =========================
*
* PAGE LOGIN
*
* ========================= */

.wrp_page--login .row{
	min-height: 100vh;
}

.wrp_login--boite{
	max-width: 460px;
	margin: 0 auto;
	padding: 48px 0;
}

.wrp_login--logo{
	text-align: center;
	margin: 0 0 56px;
}

.wrp_login--logo img{
	max-width: 260px;
	height: auto;
}

.wrp_login--oubli{
	margin: 24px 0 0;
	text-align: center;
	font-size: 15px;
	clear: both;
}

.wrp_page--login form{
	max-width: 460px;
	margin: 0 auto;
}

.wrp_page--login form::after {
	content: "";
	clear: both;
	display: table;
}

.wrp_page--login .login-remember,
.wrp_page--login .login-submit{
	width: 50%;
	float: left;
	margin-top: 48px;
}

.wrp_page--login .login-submit{
	text-align: right;
}

/* =========================
*
* PAGE AUTHOR
*
* ========================= */

#form_registrar-tarefa {
	display: none;
}

.wrp_page--author .table {
	margin-top: 1.5em;
}

/* =========================
*
* RESPONSIVO
*
* Até aqui o painel só existia em largura de desktop: a barra lateral era fixa
* em 290px e as tabelas chegavam a sete colunas. Os cortes seguem os mesmos
* pontos do bootstrap-grid já carregado.
*
* ========================= */

/* --- Até 991px: barra lateral vira menu retrátil --- */
@media (max-width: 991.98px) {

	.dashboard-container{
		display: block;
	}

	.dashboard-menu-toggle{
		display: inline-flex;
		align-items: center;
		gap: 8px;
		margin: 16px 0 0 16px;
		padding: 10px 18px;
		min-height: 44px;
		border: 1px solid #E7E7E9;
		border-radius: 60px;
		background: #FFF;
		color: var(--secondary-color);
		font-size: 15px;
		font-family: var(--main-font);
		cursor: pointer;
	}

	.dashboard-menu-toggle i{
		font-size: 20px;
	}

	.dashboard-menu-fermer{
		display: block;
		position: absolute;
		top: 16px;
		right: 16px;
		width: 44px;
		height: 44px;
		padding: 0;
		border: none;
		background: none;
		color: var(--title-color);
		font-size: 24px;
		line-height: 1;
		cursor: pointer;
	}

	.dashboard-sidebar{
		position: fixed;
		top: 0;
		left: 0;
		z-index: 900;
		height: 100%;
		min-height: 0;
		width: 290px;
		max-width: 85vw;
		overflow-y: auto;
		transform: translateX(-100%);
		transition: transform .25s ease;
		box-shadow: 0 0 40px rgba(44, 46, 58, .18);
	}

	.dashboard-sidebar.is-open{
		transform: translateX(0);
	}

	.dashboard-overlay{
		display: block;
		position: fixed;
		inset: 0;
		z-index: 890;
		background: rgba(44, 46, 58, .45);
	}

	.dashboard-overlay[hidden]{
		display: none;
	}

	/* Impede a página de rolar por trás do menu aberto. */
	body.a-menu-ouvert{
		overflow: hidden;
	}

	.dashboard-content{
		padding: 24px 16px 48px;
	}

	.wrp_dashboard--title h2{
		font-size: 32px;
	}
}

/* --- Até 767px: tabelas viram cartões e o cabeçalho empilha --- */
@media (max-width: 767.98px) {

	.wrp_dashboard--title{
		display: block;
		margin-bottom: 32px;
	}

	.wrp_dashboard--title h2{
		font-size: 28px;
		margin-bottom: 16px;
	}

	.wrp_dashboard--actions{
		gap: 8px;
	}

	.wrp_dashboard--actions .cx_btn,
	.wrp_dashboard--actions .cx_btn a,
	.wrp_dashboard--actions .cx_btn button{
		width: 100%;
		text-align: center;
	}

	.align-right{
		text-align: left;
	}

	/*
	 * Cada linha vira um cartão e cada célula uma dupla rótulo/valor. O rótulo
	 * vem do data-label que os templates escrevem, já que o thead some.
	 *
	 * Só quem vira cartão dispensa a rolagem lateral: a matriz de direitos
	 * continua sendo uma tabela cruzada e precisa dela.
	 */
	.table-responsive:has(.table--cartes){
		overflow-x: visible;
	}

	.table--cartes{
		border: none !important;
		background: none;
	}

	.table--cartes thead{
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.table--cartes,
	.table--cartes tbody,
	.table--cartes tr,
	.table--cartes td{
		display: block;
		width: 100%;
	}

	.table--cartes tr{
		margin: 0 0 12px;
		padding: 8px 4px;
		background: #FFF;
		border: 1px solid #E7E7E9;
		border-radius: 12px;
	}

	.table--cartes.table-striped > tbody > tr:nth-of-type(odd) > *{
		background: #FFF;
	}

	.table--cartes td{
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 16px;
		padding: 8px 16px !important;
		border: none;
		text-align: right;
	}

	.table--cartes td::before{
		content: attr(data-label);
		flex: 0 0 auto;
		text-align: left;
		font-size: 12px;
		text-transform: uppercase;
		letter-spacing: .5px;
		color: #5A5C66;
	}

	/* Célula sem rótulo (ações) ocupa a linha inteira. */
	.table--cartes td:not([data-label]){
		justify-content: flex-end;
		gap: 8px;
		padding-top: 12px !important;
		border-top: 1px solid #F0F1F3;
	}

	.table--cartes td:empty{
		display: none;
	}

	/* Campo dentro da célula-cartão fica com a largura que sobra do rótulo. */
	.table--cartes td select,
	.table--cartes td input{
		flex: 1 1 auto;
		min-width: 0;
		margin-bottom: 0;
	}

	/* Linha de "nenhum resultado" não vira cartão. */
	.table--cartes td[colspan]{
		display: block;
		text-align: left;
	}

	.table--cartes td[colspan]::before{
		content: none;
	}

	.wrp_notifications{
		top: auto;
		bottom: 16px;
		left: 16px;
		right: 16px;
		width: auto;
	}

	.wrp_dialogue{
		padding: 24px 20px;
	}

	.wrp_dialogue--actions .cx_btn,
	.wrp_dialogue--actions .cx_btn button{
		width: 100%;
	}

	.wrp_pagination .page-numbers{
		min-width: 44px;
		height: 44px;
	}

	/* --- Componentes acrescentados na segunda passagem de UI --- */

	.wrp_carte{
		padding: 20px 16px;
	}

	/* A tabela volta a encostar nas bordas do cartão estreito. */
	.wrp_carte .table-responsive{
		margin: 0 -16px -20px;
	}

	.wrp_carte .table th:first-child,
	.wrp_carte .table td:first-child{
		padding-left: 16px;
	}

	.wrp_carte .table th:last-child,
	.wrp_carte .table td:last-child{
		padding-right: 16px;
	}

	/* Dentro do cartão, o cartão-da-tabela não precisa de outra moldura. */
	.wrp_carte .table--cartes tr{
		margin: 0;
		border: none;
		border-bottom: 1px solid #F0F1F3;
		border-radius: 0;
	}

	.wrp_filtres{
		padding: 16px 16px 4px;
	}

	/* O botão salvar continua alcançável sem rolar a tela inteira. */
	.wrp_barre--action{
		margin: 24px -16px 0;
		padding: 12px 16px;
		flex-direction: column;
		align-items: stretch;
	}

	.wrp_barre--indice{
		display: none;
	}

	.wrp_barre--action .cx_btn button{
		width: 100%;
	}

	.wrp_resume--valeur{
		font-size: 20px;
	}

	.wrp_profil--entete{
		flex-wrap: wrap;
	}

	/* Empilhado, o traço vertical do rótulo pesa mais que ajuda. */
	.warp_text--label{
		margin-bottom: 16px;
	}
}

/* --- Áreas de toque em qualquer tela sensível ao toque --- */
@media (hover: none) {

	.table--link--trash,
	.table--link--edit{
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
	}

	.table--link--trash{
		margin-right: 4px;
	}
}
