/* ==========================================================================
   TC Mimet — Front-office / back-office CRM (Option B, rendu plugin)
   Shell (sidebar + app), KPI, master-detail, fiche à onglets, documents.
   Réécriture complète (l'ancien fichier était corrompu).
   ========================================================================== */

:root {
	--tcm-bg:        #f4f6f9;
	--tcm-surface:   #ffffff;
	--tcm-border:    #e6e9ef;
	--tcm-border-2:  #eef1f5;
	--tcm-text:      #1f2733;
	--tcm-muted:     #6b7280;
	--tcm-faint:     #9aa2af;

	--tcm-accent:    #2563eb;
	--tcm-accent-bg: #e6efff;
	--tcm-accent-bd: #cfe0ff;

	--tcm-warn:      #b45309;
	--tcm-warn-bg:   #fdeccf;
	--tcm-ok:        #15803d;
	--tcm-ok-bg:     #dcfce7;

	--tcm-radius:    14px;
	--tcm-radius-sm: 10px;
	--tcm-shadow:    0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.06);
	--tcm-sans:      "Rubik", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--tcm-serif:     "Rubik", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--tcm-sidebar-w: 248px;
}

/* --------------------------------------------------------------------------
   Shell / app-shell
   -------------------------------------------------------------------------- */
/* Annule le décalage de 32px laissé par la barre d'admin (masquée sur l'app-shell).
   Scopé à l'app-shell pour ne pas toucher la barre admin du site public. */
html:has( body.tcm-crm-shell ) { margin-top: 0 !important; }

body.tcm-crm-shell {
	margin: 0;
	background: var(--tcm-bg);
	color: var(--tcm-text);
	font-family: var(--tcm-sans);
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

.tcm-shell {
	display: flex;
	align-items: stretch;
	min-height: 100vh;
}
body.admin-bar .tcm-shell { min-height: calc(100vh - 32px); }

/* Sidebar ------------------------------------------------------------------ */
.tcm-sidebar {
	flex: 0 0 var(--tcm-sidebar-w);
	width: var(--tcm-sidebar-w);
	background: var(--tcm-surface);
	border-right: 1px solid var(--tcm-border);
	padding: 22px 16px;
	box-sizing: border-box;
}

.tcm-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 4px 8px 18px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--tcm-border-2);
}
.tcm-brand-mark {
	width: 26px; height: 26px;
	border-radius: 7px;
	background: var(--tcm-accent-bg);
	border: 2px solid var(--tcm-accent);
	flex: 0 0 auto;
}
.tcm-brand-name { font-weight: 700; font-size: 17px; letter-spacing: .2px; }
.tcm-brand-logo { height: 52px; width: auto; max-width: 100%; display: block; }

.tcm-nav { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; }
.tcm-nav-item {
	display: flex; align-items: center; gap: 12px;
	padding: 11px 14px;
	border-radius: var(--tcm-radius-sm);
	color: var(--tcm-text);
	text-decoration: none;
	font-weight: 500;
	transition: background .12s ease, color .12s ease;
}
.tcm-nav-item:hover { background: #f5f7fa; }
.tcm-nav-item.is-active { background: var(--tcm-accent-bg); color: var(--tcm-accent); font-weight: 600; }
.tcm-nav-ico {
	width: 18px; height: 18px; flex: 0 0 auto;
	border: 2px solid currentColor; border-radius: 5px; opacity: .55;
}
.tcm-nav-item.is-active .tcm-nav-ico { opacity: .9; }

/* Pied de barre latérale : Récapitulatif + compte (remplace la barre admin WP) */
.tcm-sidebar {
	display: flex; flex-direction: column;
	position: sticky; top: 0; align-self: flex-start;
	height: 100vh; overflow-y: auto;
}
.tcm-sidebar-body { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.tcm-burger { display: none; }
.tcm-sidebar-footer { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--tcm-border-2); }
.tcm-user { padding: 10px 14px 2px; }
.tcm-user-name { display: block; font-weight: 600; font-size: 13px; color: var(--tcm-text); margin-bottom: 6px; }
.tcm-user-link { display: block; font-size: 13px; color: var(--tcm-muted); text-decoration: none; padding: 4px 0; }
.tcm-user-link:hover { color: var(--tcm-accent); }

/* App content -------------------------------------------------------------- */
.tcm-app {
	flex: 1 1 auto;
	min-width: 0;
	padding: 28px 32px 48px;
	box-sizing: border-box;
}
.tcm-app > h1, .tcm-app > h2 { margin-top: 0; }

/* --------------------------------------------------------------------------
   KPI ([tcm_stats])
   -------------------------------------------------------------------------- */
.tcm-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
	gap: 18px;
	margin-bottom: 22px;
}
.tcm-stat {
	background: var(--tcm-surface);
	border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius);
	box-shadow: var(--tcm-shadow);
	padding: 20px 22px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tcm-stat-title { color: var(--tcm-muted); font-size: 14px; }
.tcm-stat strong {
	font-family: var(--tcm-serif);
	font-size: 32px;
	font-weight: 600;
	line-height: 1.1;
	color: var(--tcm-text);
}
.tcm-stat.is-warn strong { color: var(--tcm-warn); }

/* Tuiles KPI pastel (une teinte douce par carte) */
.tcm-stats .tcm-stat { border-color: transparent; }
.tcm-stats .tcm-stat:nth-child(1) { background: #eef4ff; }
.tcm-stats .tcm-stat:nth-child(1) strong { color: #3b6fd4; }
.tcm-stats .tcm-stat:nth-child(2) { background: #eafaf0; }
.tcm-stats .tcm-stat:nth-child(2) strong { color: #2f9e69; }
.tcm-stats .tcm-stat:nth-child(3) { background: #fdf3e3; }
.tcm-stats .tcm-stat:nth-child(3) strong { color: #c07a12; }
.tcm-stats .tcm-stat:nth-child(4) { background: #f2effc; }
.tcm-stats .tcm-stat:nth-child(4) strong { color: #6d54c8; }
.tcm-stats .tcm-stat:nth-child(5) { background: #e6f6f5; }
.tcm-stats .tcm-stat:nth-child(5) strong { color: #12938c; }

/* Sélecteurs + variations du tableau de bord */
.tcm-stats-bar { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.tcm-stats-bar label { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--tcm-muted); font-weight: 600; }
.tcm-stats-bar select { padding: 8px 12px; border: 1px solid var(--tcm-border); border-radius: var(--tcm-radius-sm); background: #fff; font-size: 14px; font-family: var(--tcm-sans); }
.tcm-delta { display: inline-block; margin-top: 6px; align-self: flex-start; font-size: 13px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.tcm-delta-up { background: var(--tcm-ok-bg); color: var(--tcm-ok); }
.tcm-delta-down { background: #fde2e1; color: #b42318; }
.tcm-delta-flat { background: #eef1f5; color: #475467; }
.tcm-reinscrire { display: inline; margin: 0; }

/* --------------------------------------------------------------------------
   Master-detail ([tcm_crm])
   -------------------------------------------------------------------------- */
.tcm-crm {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 18px;
	align-items: start;
}

.tcm-crm-list {
	background: var(--tcm-surface);
	border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius);
	box-shadow: var(--tcm-shadow);
	overflow: hidden;
}
.tcm-crm-bar {
	margin: 0; padding: 12px;
	border-bottom: 1px solid var(--tcm-border-2);
	display: flex; flex-direction: column; gap: 8px;
}
.tcm-crm-bar input[type="search"],
.tcm-crm-bar select {
	width: 100%; box-sizing: border-box;
	padding: 9px 12px;
	border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius-sm);
	font-size: 14px; background: #fbfcfd; color: var(--tcm-text);
}
.tcm-crm-bar input[type="search"]:focus,
.tcm-crm-bar select:focus { outline: none; border-color: var(--tcm-accent-bd); background: #fff; }

.tcm-crm-row {
	display: flex; align-items: center; gap: 10px;
	padding: 13px 16px;
	border-bottom: 1px solid var(--tcm-border-2);
	text-decoration: none;
	color: var(--tcm-text);
	transition: background .12s ease;
}
.tcm-crm-row:last-child { border-bottom: 0; }
.tcm-crm-row:hover { background: #f7f9fc; }
.tcm-crm-main { flex: 1 1 auto; min-width: 0; }
.tcm-crm-main strong { display: block; font-weight: 600; }
.tcm-crm-sub { display: block; color: var(--tcm-muted); font-size: 13px; margin-top: 2px; }
.tcm-crm-row.is-active { background: var(--tcm-accent-bg); box-shadow: inset 3px 0 0 var(--tcm-accent); }
.tcm-crm-row.is-active .tcm-crm-main strong { color: var(--tcm-accent); }
.tcm-crm-flags { flex: 0 0 auto; display: flex; gap: 6px; }
.tcm-flag {
	width: 20px; height: 20px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
}
.tcm-flag-ok { background: var(--tcm-ok-bg); color: var(--tcm-ok); }
.tcm-flag-adoc { background: var(--tcm-accent-bg); color: var(--tcm-accent); }
.tcm-crm-empty { padding: 16px; color: var(--tcm-muted); }

.tcm-crm-detail {
	background: var(--tcm-surface);
	border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius);
	box-shadow: var(--tcm-shadow);
	padding: 24px 26px;
	min-height: 200px;
}
.tcm-crm-detail > p { color: var(--tcm-muted); }

/* Évite le débordement des colonnes de grille sur petits écrans
   (sans min-width:0, un contenu large — barre d'onglets — force la colonne). */
.tcm-crm-list, .tcm-crm-detail,
.tcm-planning-list, .tcm-planning-detail { min-width: 0; }
.tcm-coord li, .tcm-parents { overflow-wrap: anywhere; }

/* --------------------------------------------------------------------------
   Fiche ([tcm_fiche])
   -------------------------------------------------------------------------- */
.tcm-fiche-header {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding-bottom: 18px;
}
.tcm-avatar {
	flex: 0 0 auto;
	width: 54px; height: 54px;
	border-radius: 50%;
	background: var(--tcm-accent-bg);
	color: var(--tcm-accent);
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 18px;
	letter-spacing: .5px;
}
.tcm-fiche-ident { flex: 1 1 auto; min-width: 0; }
.tcm-fiche-ident h2 {
	margin: 2px 0 10px;
	font-family: var(--tcm-serif);
	font-size: 24px; font-weight: 600;
}
.tcm-badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.tcm-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 13px; font-weight: 600;
	background: #eef1f5; color: #475467;
}
.tcm-badge-saison { background: var(--tcm-accent-bg); color: var(--tcm-accent); }
.tcm-badge-warn,
.tcm-badge.tcm-incomplet { background: var(--tcm-warn-bg); color: var(--tcm-warn); }
.tcm-badge-ok,
.tcm-badge.tcm-complet { background: var(--tcm-ok-bg); color: var(--tcm-ok); }
.tcm-fiche-actions { flex: 0 0 auto; display: flex; gap: 8px; flex-wrap: wrap; }

/* Onglets ------------------------------------------------------------------ */
.tcm-tabs-nav {
	display: flex;
	gap: 22px;
	border-bottom: 2px solid var(--tcm-border);
	margin-bottom: 20px;
	overflow-x: auto;
}
.tcm-tab {
	appearance: none;
	background: none; border: 0;
	padding: 10px 2px;
	margin-bottom: -2px;
	font-size: 15px; font-family: inherit;
	color: var(--tcm-muted);
	cursor: pointer;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
}
.tcm-tab:hover { color: var(--tcm-text); }
.tcm-tab.is-active { color: var(--tcm-accent); font-weight: 600; border-bottom-color: var(--tcm-accent); }

.tcm-tabpanel { display: none; }
.tcm-tabpanel.is-active { display: block; }

.tcm-fiche-section h3 {
	font-size: 15px; font-weight: 600;
	margin: 0 0 14px;
	display: flex; align-items: center; gap: 12px;
}

/* Coordonnées : grille 2 colonnes (label au-dessus de la valeur) */
.tcm-coord {
	list-style: none; margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 40px;
}
.tcm-coord li { display: flex; flex-direction: column; gap: 2px; font-weight: 500; }
.tcm-coord li span { color: var(--tcm-muted); font-size: 13px; font-weight: 400; }
.tcm-coord-empty em { color: var(--tcm-muted); font-style: italic; font-weight: 400; opacity: .7; }
.tcm-parents { margin-top: 16px; color: var(--tcm-muted); }

/* Tableaux (règlements, commandes, récap) */
.tcm-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.tcm-table th, .tcm-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--tcm-border-2); }
.tcm-table thead th { color: var(--tcm-muted); font-weight: 600; font-size: 13px; }
.tcm-th-sort { cursor: pointer; user-select: none; white-space: nowrap; }
.tcm-th-sort:hover { color: var(--tcm-text); }
.tcm-th-sort.is-sorted-asc::after { content: ' ▲'; font-size: 9px; color: var(--tcm-accent); }
.tcm-th-sort.is-sorted-desc::after { content: ' ▼'; font-size: 9px; color: var(--tcm-accent); }

/* Tableaux larges : défilement horizontal sur petits écrans */
.tcm-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tcm-recap-table th, .tcm-recap-table td { white-space: nowrap; }
.tcm-table tfoot th { border-top: 2px solid var(--tcm-border); border-bottom: 0; }

/* Notice (retour d'envoi d'attestation) */
.tcm-notice { padding: 10px 14px; border-radius: var(--tcm-radius-sm); margin-bottom: 16px; font-size: 14px; }
.tcm-notice-ok { background: var(--tcm-ok-bg); color: var(--tcm-ok); }
.tcm-notice-err { background: var(--tcm-warn-bg); color: var(--tcm-warn); }
.tcm-facture-actions { white-space: nowrap; }

/* --------------------------------------------------------------------------
   CRUD inline (règlements / commandes) — lignes en cartes
   -------------------------------------------------------------------------- */
.tcm-rows { display: flex; flex-direction: column; gap: 8px; }
.tcm-row {
	display: flex; align-items: center; justify-content: space-between; gap: 14px;
	padding: 12px 16px; border-radius: var(--tcm-radius-sm);
	background: #f5f8fd; border: 1px solid #eaeef6;
	transition: background .12s ease;
}
.tcm-row:hover { background: #eef3fb; }
.tcm-row-main { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; min-width: 0; }
.tcm-row-date, .tcm-row-montant, .tcm-row-libelle { font-weight: 600; color: var(--tcm-text); }
.tcm-row-canal { color: var(--tcm-muted); }
.tcm-row-actions { display: flex; gap: 6px; align-items: center; flex: 0 0 auto; }
.tcm-row--total { background: none; border: 0; justify-content: flex-end; padding-right: 16px; }
.tcm-row--edit { display: block; background: #fff; border: 1px solid var(--tcm-accent-bd); padding: 16px; }
.tcm-chip { padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: #eef1f5; color: #475467; }
.tcm-chip-valide { background: var(--tcm-ok-bg); color: var(--tcm-ok); }
.tcm-chip-en_attente { background: var(--tcm-warn-bg); color: var(--tcm-warn); }

.tcm-del-form { display: inline; margin: 0; }
.tcm-app .tcm-danger {
	color: #b42318 !important;
	border-color: #f0c9c4 !important;
	background: #fff !important;
	text-transform: none !important; letter-spacing: normal !important;
}
.tcm-app .tcm-danger:hover { background: #fef3f2 !important; }

.tcm-inline-form { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; }
.tcm-inline-form label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--tcm-muted); font-weight: 600; }
.tcm-inline-form input,
.tcm-inline-form select {
	padding: 8px 10px;
	border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius-sm);
	background: #fff; font-size: 14px; font-family: var(--tcm-sans); color: var(--tcm-text);
	min-width: 140px;
}
.tcm-inline-form input:focus,
.tcm-inline-form select:focus { outline: none; border-color: var(--tcm-accent-bd); }
.tcm-inline-actions { display: flex; gap: 8px; align-items: center; }
.tcm-app .tcm-inline-form button,
.tcm-app .tcm-row .button { text-transform: none !important; letter-spacing: normal !important; }

.tcm-add-block { margin-top: 20px; padding-top: 16px; border-top: 1px dashed var(--tcm-border); }
.tcm-add-block h4 { margin: 0 0 12px; font-size: 14px; font-weight: 600; color: var(--tcm-text); }

/* Teinte bleu (garçon) / rose (fille) dans la liste des adhérents */
.tcm-crm-row.sexe-g { background: #eef4ff; }
.tcm-crm-row.sexe-f { background: #fdeff5; }
.tcm-crm-row.sexe-g:hover { background: #e4eeff; }
.tcm-crm-row.sexe-f:hover { background: #fbe4ef; }
.tcm-crm-row.is-active.sexe-g,
.tcm-crm-row.is-active.sexe-f { background: var(--tcm-accent-bg); }

/* --------------------------------------------------------------------------
   Planning ([tcm_planning]) — créneaux groupés par jour + inscrits
   -------------------------------------------------------------------------- */
.tcm-planning { display: grid; grid-template-columns: 340px 1fr; gap: 18px; align-items: start; }
.tcm-planning-list {
	background: var(--tcm-surface); border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius); box-shadow: var(--tcm-shadow); overflow: hidden;
}
.tcm-planning-list .tcm-crm-bar { border-bottom: 1px solid var(--tcm-border-2); }
.tcm-day { padding: 0 12px 8px; }
.tcm-day-title {
	margin: 14px -12px 10px; padding: 8px 16px;
	background: #2b3444; color: #fff;
	font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
}
.tcm-group { background: #f4f7fc; border-radius: var(--tcm-radius-sm); padding: 8px 10px 4px; margin-bottom: 10px; }
.tcm-group-title { margin: 2px 4px 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--tcm-muted); }
.tcm-creneau-card {
	display: flex; flex-direction: column; gap: 3px;
	padding: 12px 14px; margin-bottom: 8px;
	background: #fff;
	border: 1px solid var(--tcm-border-2); border-radius: var(--tcm-radius-sm);
	text-decoration: none; color: var(--tcm-text);
	transition: border-color .12s ease, background .12s ease;
}
.tcm-creneau-card:hover { background: #f7f9fc; }
.tcm-creneau-card.is-active { border-color: var(--tcm-accent-bd); background: var(--tcm-accent-bg); }
.tcm-creneau-time { font-weight: 600; }
.tcm-creneau-meta { color: var(--tcm-muted); font-size: 13px; }
.tcm-creneau-fill { align-self: flex-start; margin-top: 3px; font-size: 12px; font-weight: 600; padding: 2px 10px; border-radius: 999px; }
.tcm-fill-ok { background: var(--tcm-ok-bg); color: var(--tcm-ok); }
.tcm-fill-warn { background: var(--tcm-warn-bg); color: var(--tcm-warn); }
.tcm-fill-full { background: #fde2e1; color: #b42318; }
.tcm-planning-detail {
	background: var(--tcm-surface); border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius); box-shadow: var(--tcm-shadow);
	padding: 24px 26px; min-height: 200px;
}
.tcm-planning-detail > p { color: var(--tcm-muted); }
.tcm-creneau-info { color: var(--tcm-muted); margin: -4px 0 16px; }
.tcm-chip-confirme { background: var(--tcm-ok-bg); color: var(--tcm-ok); }
.tcm-chip-attente { background: var(--tcm-warn-bg); color: var(--tcm-warn); }
.tcm-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.tcm-detail-head h3 { margin: 0; }
.tcm-app .tcm-link { color: var(--tcm-accent); text-decoration: none; }
.tcm-app .tcm-link:hover { text-decoration: underline; }
.tcm-add-creneau { display: inline-block; margin: 6px 0 4px; }
.tcm-muted { color: var(--tcm-muted); }
@media (max-width: 1100px) {
	.tcm-planning { grid-template-columns: 1fr; }
	.tcm-planning-detail { order: -1; }
}

/* Documents : tuiles */
.tcm-docs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 14px;
}
.tcm-doc {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 10px;
	min-height: 96px;
	padding: 16px;
	border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius-sm);
	text-decoration: none;
	color: var(--tcm-text);
	background: #fcfdfe;
	text-align: center;
	transition: border-color .12s ease, background .12s ease;
}
.tcm-doc::before {
	content: ""; width: 22px; height: 22px;
	border: 2px solid var(--tcm-faint); border-radius: 5px;
}
.tcm-doc:hover { border-color: var(--tcm-accent-bd); background: #fff; }

/* --------------------------------------------------------------------------
   Récapitulatif ([tcm_recap]) — filtres + pagination
   -------------------------------------------------------------------------- */
.tcm-recap { background: var(--tcm-surface); border: 1px solid var(--tcm-border); border-radius: var(--tcm-radius); box-shadow: var(--tcm-shadow); padding: 22px 24px; }
.tcm-filtres { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 18px; }
.tcm-filtres input[type="search"], .tcm-filtres select {
	padding: 8px 12px; border: 1px solid var(--tcm-border); border-radius: var(--tcm-radius-sm); font-size: 14px; background: #fbfcfd;
}
.tcm-count { color: var(--tcm-muted); font-size: 14px; margin-left: auto; }
.tcm-pagination { margin-top: 18px; display: flex; gap: 6px; flex-wrap: wrap; }
.tcm-pagination .page-numbers { padding: 6px 11px; border: 1px solid var(--tcm-border); border-radius: 8px; text-decoration: none; color: var(--tcm-text); }
.tcm-pagination .page-numbers.current { background: var(--tcm-accent); color: #fff; border-color: var(--tcm-accent); }

/* --------------------------------------------------------------------------
   Boutons
   -------------------------------------------------------------------------- */
.tcm-app .button,
.tcm-crm-detail .button {
	display: inline-block;
	padding: 8px 16px;
	border-radius: var(--tcm-radius-sm);
	border: 1px solid var(--tcm-border);
	background: #fff;
	color: var(--tcm-text);
	font-size: 14px; font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	line-height: 1.4;
	transition: background .12s ease, border-color .12s ease;
}
.tcm-app .button:hover { background: #f5f7fa; }
.tcm-app .button-primary { background: var(--tcm-accent); border-color: var(--tcm-accent); color: #fff; }
.tcm-app .button-primary:hover { background: #1d4ed8; }
.tcm-app .button-small { padding: 4px 10px; font-size: 13px; }
.tcm-act { display: inline-flex; align-items: center; gap: 6px; }
.tcm-act .tcm-act-ico { display: none; }

/* --------------------------------------------------------------------------
   Formulaires d'édition ACF (fiche-adherent / personne / reglement / commande)
   rendus dans l'app-shell — mise en carte cohérente avec le CRM.
   -------------------------------------------------------------------------- */
.tcm-app .tcm-form {
	background: var(--tcm-surface);
	border: 1px solid var(--tcm-border);
	border-radius: var(--tcm-radius);
	box-shadow: var(--tcm-shadow);
	padding: 26px 30px;
	max-width: 780px;
}
.tcm-form-title { margin: 0 0 18px; font-size: 20px; font-weight: 600; color: var(--tcm-text); }

.tcm-app .tcm-form .acf-fields { border: 0 !important; background: none !important; }
.tcm-app .tcm-form .acf-fields > .acf-field {
	padding: 14px 0 !important;
	border-top: 1px solid var(--tcm-border-2) !important;
	margin: 0 !important;
}
.tcm-app .tcm-form .acf-fields > .acf-field:first-child { border-top: 0 !important; padding-top: 0 !important; }
.tcm-app .tcm-form .acf-label label { font-weight: 600; color: var(--tcm-text); font-size: 14px; }
.tcm-app .tcm-form .acf-label p.description { color: var(--tcm-muted); font-weight: 400; }

.tcm-app .tcm-form .acf-input input[type="text"],
.tcm-app .tcm-form .acf-input input[type="email"],
.tcm-app .tcm-form .acf-input input[type="number"],
.tcm-app .tcm-form .acf-input input[type="url"],
.tcm-app .tcm-form .acf-input input[type="password"],
.tcm-app .tcm-form .acf-input input[type="date"],
.tcm-app .tcm-form .acf-input textarea,
.tcm-app .tcm-form .acf-input select,
.tcm-app .tcm-form .acf-input .select2-container--default .select2-selection--single {
	border: 1px solid var(--tcm-border) !important;
	border-radius: var(--tcm-radius-sm) !important;
	background: #fbfcfd !important;
	font-family: var(--tcm-sans) !important;
	font-size: 14px !important;
	min-height: 40px;
	color: var(--tcm-text) !important;
	box-shadow: none !important;
}
.tcm-app .tcm-form .acf-input .select2-selection__rendered { line-height: 38px !important; }
.tcm-app .tcm-form .acf-input .select2-selection__arrow { height: 38px !important; }
.tcm-app .tcm-form .acf-input input:focus,
.tcm-app .tcm-form .acf-input textarea:focus,
.tcm-app .tcm-form .acf-input select:focus { border-color: var(--tcm-accent-bd) !important; background: #fff !important; outline: none; }

.tcm-app .tcm-form .acf-form-submit { margin-top: 22px; }
.tcm-app .tcm-form input[type="submit"] {
	background: var(--tcm-accent) !important;
	border: 1px solid var(--tcm-accent) !important;
	color: #fff !important;
	padding: 10px 22px !important;
	border-radius: var(--tcm-radius-sm) !important;
	font: 600 15px/1.4 var(--tcm-sans) !important;
	cursor: pointer;
	height: auto !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.tcm-app .tcm-form input[type="submit"]:hover { background: #1d4ed8 !important; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.tcm-stats { grid-template-columns: repeat(2, 1fr); }
	.tcm-crm { grid-template-columns: 1fr; }
	.tcm-crm-detail { order: -1; }
	.tcm-coord { grid-template-columns: 1fr; }
}
@media (max-width: 782px) {
	.tcm-shell { flex-direction: column; }
	.tcm-sidebar { flex-basis: auto; width: 100%; border-right: 0; border-bottom: 1px solid var(--tcm-border); position: static; height: auto; overflow: visible; }
	.tcm-sidebar-top { display: flex; align-items: center; justify-content: space-between; }
	.tcm-sidebar-top .tcm-brand { padding-bottom: 4px; margin-bottom: 0; border-bottom: 0; }
	/* Styles du burger : voir le bloc scopé « body.tcm-crm-shell » en fin de fichier
	   (nécessaire pour primer sur les styles <button> du thème public). */
	.tcm-sidebar-body { display: none; padding-top: 8px; margin-top: 6px; border-top: 1px solid var(--tcm-border-2); }
	.tcm-sidebar.is-open .tcm-sidebar-body { display: flex; }
	.tcm-app { padding: 20px 16px 40px; }
	.tcm-stats { grid-template-columns: 1fr 1fr; }
	.tcm-fiche-header { flex-wrap: wrap; }
}

/* --------------------------------------------------------------------------
   Durcissement app-shell — neutralise le CSS du thème public (hello-elementor
   + kit Elementor) qui déborde dans le back-office : les <button> des onglets
   et les <h3> de section héritaient d'un style bouton rouge / police condensée.
   -------------------------------------------------------------------------- */
body.tcm-crm-shell .tcm-tabs-nav { gap: 22px !important; border-bottom: 2px solid var(--tcm-border) !important; }
body.tcm-crm-shell .tcm-tab {
	background: none !important;
	color: var(--tcm-muted) !important;
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 10px 2px !important;
	margin: 0 0 -2px 0 !important;
	height: auto !important; width: auto !important; min-width: 0 !important;
	font: 600 15px/1.4 var(--tcm-sans) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
body.tcm-crm-shell .tcm-tab:hover { color: var(--tcm-text) !important; }
body.tcm-crm-shell .tcm-tab.is-active { color: var(--tcm-accent) !important; border-bottom-color: var(--tcm-accent) !important; }
body.tcm-crm-shell .tcm-fiche-section h3 {
	font-family: var(--tcm-sans) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: var(--tcm-text) !important;
}
body.tcm-crm-shell .tcm-app .button-small,
body.tcm-crm-shell .tcm-crm-detail .button-small {
	background: #fff !important;
	color: var(--tcm-text) !important;
	border: 1px solid var(--tcm-border) !important;
	text-transform: none !important;
	font-weight: 500 !important;
	letter-spacing: normal !important;
}

/* --------------------------------------------------------------------------
   Onglets de fiche en pastilles sur mobile (5 onglets ne tiennent pas en une
   ligne à 375px). Placé APRÈS le durcissement pour surcharger ses !important.
   -------------------------------------------------------------------------- */
@media (max-width: 782px) {
	body.tcm-crm-shell .tcm-tabs-nav {
		flex-wrap: wrap; gap: 8px; overflow: visible;
		border-bottom: 1px solid var(--tcm-border) !important;
		padding-bottom: 14px; margin-bottom: 18px;
	}
	body.tcm-crm-shell .tcm-tab {
		border: 1px solid var(--tcm-border) !important;
		border-radius: 999px !important;
		padding: 7px 14px !important;
		margin: 0 !important;
		font-size: 14px !important;
	}
	body.tcm-crm-shell .tcm-tab.is-active {
		background: var(--tcm-accent-bg) !important;
		color: var(--tcm-accent) !important;
		border-color: var(--tcm-accent-bd) !important;
	}
	/* Boutons d'action de la fiche en icône seule sur mobile. */
	body.tcm-crm-shell .tcm-act .tcm-act-ico { display: inline-flex; }
	body.tcm-crm-shell .tcm-act .tcm-act-label { display: none; }
	body.tcm-crm-shell .tcm-fiche-actions .tcm-act { padding: 10px 12px !important; }

	/* Lignes règlements / commandes : actions à la ligne + boutons compacts. */
	.tcm-row { flex-wrap: wrap; }
	.tcm-row-main { flex: 1 1 100%; }
	.tcm-row-actions { flex-wrap: wrap; width: 100%; justify-content: flex-start; }
	body.tcm-crm-shell .tcm-row-actions .button { font-size: 12px !important; padding: 5px 9px !important; }
}

/* --------------------------------------------------------------------------
   Formulaire d'inscription public [tcm_inscription]
   -------------------------------------------------------------------------- */
.tcm-insc { max-width: 720px; margin: 24px auto; font-family: var(--tcm-sans); color: var(--tcm-text); }
.tcm-insc-title { font-size: 24px; font-weight: 700; margin: 0 0 18px; padding-top: 16px; }
.tcm-insc-intro { margin: 0 0 22px; font-size: 16px; line-height: 1.6; color: var(--tcm-muted); }
.tcm-insc-intro p { margin: 0 0 10px; }
.tcm-insc-ok { background: var(--tcm-ok-bg); color: var(--tcm-ok); padding: 22px 26px; border-radius: var(--tcm-radius); }
.tcm-insc-ok h3 { margin: 0 0 8px; }
.tcm-insc-err { background: var(--tcm-warn-bg); color: var(--tcm-warn); padding: 12px 16px; border-radius: var(--tcm-radius-sm); margin-bottom: 16px; font-weight: 600; }
.tcm-insc-form fieldset { border: 1px solid var(--tcm-border); border-radius: var(--tcm-radius); padding: 18px 20px; margin: 0 0 18px; }
.tcm-insc-form legend { font-weight: 600; padding: 0 8px; }
.tcm-insc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.tcm-insc-field { display: flex; flex-direction: column; gap: 4px; }
.tcm-insc-field.tcm-col-2 { grid-column: 1 / -1; }
.tcm-insc-field label { font-size: 13px; font-weight: 600; color: var(--tcm-muted); }
.tcm-insc-field input, .tcm-insc-field select, .tcm-insc textarea {
	padding: 9px 12px; border: 1px solid var(--tcm-border); border-radius: var(--tcm-radius-sm);
	font-size: 14px; font-family: var(--tcm-sans); background: #fff; color: var(--tcm-text);
	box-sizing: border-box; width: 100%;
}
.tcm-insc-field input:focus, .tcm-insc-field select:focus, .tcm-insc textarea:focus { outline: none; border-color: var(--tcm-accent-bd); }
.tcm-req { color: #b42318; }
.tcm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tcm-insc-check { margin: 4px 0 16px; }
.tcm-insc-check label { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; }
.tcm-insc-submit { margin-top: 8px; }
.tcm-insc-btn {
	display: inline-flex; align-items: center; justify-content: center;
	background: #F4C020 !important; color: #1A1815 !important;
	font-family: 'Rubik', var(--tcm-sans) !important; font-weight: 700 !important;
	text-transform: uppercase; font-size: 15px; letter-spacing: .5px; line-height: 1;
	padding: 14px 30px !important; border: 0 !important; border-radius: 40px !important;
	box-shadow: none !important; cursor: pointer; -webkit-appearance: none; appearance: none;
	transition: background .2s ease, color .2s ease;
}
.tcm-insc-btn:hover { background: #E0851A !important; color: #fff !important; }

/* Groupes radio (déjà adhérent, changement, attestation, droit à l'image) */
.tcm-insc-radio { display: flex; flex-direction: column; gap: 8px; margin: 4px 0; }
.tcm-insc-radiolabel { font-size: 14px; font-weight: 600; color: var(--tcm-text); }
.tcm-insc-radios { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.tcm-insc-radio-opt { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; cursor: pointer; }
.tcm-insc-radio-opt input { width: 18px; height: 18px; accent-color: var(--tcm-accent); }

/* Consentements (règlement intérieur, assurance) */
.tcm-insc-consent { margin: 8px 0; }
.tcm-insc-consent label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; cursor: pointer; }
.tcm-insc-consent input { margin-top: 2px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--tcm-accent); }
.tcm-insc-consent a { color: var(--tcm-accent); text-decoration: underline; }

/* Blocs conditionnels : léger fond pour les distinguer */
.tcm-insc-mineur, .tcm-insc-chg-wrap { background: var(--tcm-accent-bg, #f4f7ff); }
/* [hidden] doit primer sur display:grid/flex des blocs conditionnels */
.tcm-insc [hidden] { display: none !important; }

@media (max-width: 600px) {
	.tcm-insc-grid { grid-template-columns: 1fr; }
	/* Bouton de validation centré sur mobile */
	.tcm-insc-submit { text-align: center; }
	.tcm-insc-title { padding-top: 20px; padding-left: 16px; }
}

/* --------------------------------------------------------------------------
   Burger + barre latérale mobile — bloc scopé PRIORITAIRE : le thème public
   colore les <button> (fond/bordure rose) et reset les <span>. On force ici
   le rendu « hamburger noir sur fond blanc » facon home, et on masque le
   burger hors mobile (sinon sa bordure rose apparaît dans la sidebar desktop).
   -------------------------------------------------------------------------- */
body.tcm-crm-shell .tcm-burger{
	display:none !important; box-sizing:border-box; flex-direction:column;
	align-items:center; justify-content:center; gap:4px; width:36px; height:36px;
	padding:7px; background:#fff !important; border:0 !important; border-radius:3px !important;
	box-shadow:none !important; cursor:pointer; -webkit-appearance:none; appearance:none;
}
body.tcm-crm-shell .tcm-burger span{
	display:block !important; width:22px !important; height:2px !important; min-height:2px;
	background:#1a1815 !important; border-radius:2px !important; opacity:1 !important;
	transition:transform .25s ease, opacity .2s ease;
}
body.tcm-crm-shell .tcm-sidebar.is-open .tcm-burger span:nth-child(1){ transform:translateY(6px) rotate(45deg) !important; }
body.tcm-crm-shell .tcm-sidebar.is-open .tcm-burger span:nth-child(2){ opacity:0 !important; }
body.tcm-crm-shell .tcm-sidebar.is-open .tcm-burger span:nth-child(3){ transform:translateY(-6px) rotate(-45deg) !important; }
@media (max-width:782px){
	body.tcm-crm-shell .tcm-burger{ display:flex !important; }
	/* Barre logo+burger collée en haut, hauteur réduite */
	body.tcm-crm-shell .tcm-sidebar{ position:sticky !important; top:0; z-index:30; background:var(--tcm-surface); padding-top:8px !important; padding-bottom:8px !important; }
	body.tcm-crm-shell .tcm-brand{ padding-top:0 !important; padding-bottom:0 !important; }
	body.tcm-crm-shell .tcm-brand-logo{ height:40px !important; }
}

/* --------------------------------------------------------------------------
   Calculette (section Commandes) — aide au calcul.
   -------------------------------------------------------------------------- */
body.tcm-crm-shell .tcm-calc-open{ display:inline-flex !important; align-items:center; justify-content:center; width:34px; height:34px;
	border:1px solid var(--tcm-border) !important; border-radius:var(--tcm-radius-sm) !important; background:#fff !important; color:var(--tcm-text) !important;
	box-shadow:none !important; cursor:pointer; margin-left:10px; vertical-align:middle; padding:0 !important; }
body.tcm-crm-shell .tcm-calc-open:hover{ background:var(--tcm-accent-bg) !important; color:var(--tcm-accent) !important; border-color:var(--tcm-accent-bd) !important; }
.tcm-calc-backdrop{ position:fixed; inset:0; background:rgba(26,24,21,.45); display:none; align-items:center; justify-content:center; z-index:9999; }
.tcm-calc-backdrop.is-open{ display:flex; }
.tcm-calc{ width:280px; max-width:92vw; background:#fff; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.3); overflow:hidden; font-family:var(--tcm-sans); }
.tcm-calc-head{ display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:var(--tcm-text); color:#fff; }
.tcm-calc-head strong{ font-weight:600; font-size:15px; }
body.tcm-crm-shell .tcm-calc-close{ background:none !important; border:0 !important; box-shadow:none !important; color:#fff !important; font-size:22px; line-height:1; cursor:pointer; padding:0 4px !important; width:auto !important; height:auto !important; }
.tcm-calc-screen{ padding:16px; text-align:right; }
.tcm-calc-expr{ min-height:18px; font-size:13px; color:var(--tcm-muted); word-break:break-all; }
.tcm-calc-val{ font-size:32px; font-weight:600; color:var(--tcm-text); word-break:break-all; }
.tcm-calc-keys{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--tcm-border); }
body.tcm-crm-shell .tcm-calc-keys button{ border:0 !important; background:#fff !important; padding:16px 0 !important; font-size:18px !important; font-weight:500 !important; color:var(--tcm-text) !important; cursor:pointer; font-family:var(--tcm-sans) !important; border-radius:0 !important; box-shadow:none !important; width:auto !important; height:auto !important; text-transform:none !important; letter-spacing:normal !important; }
body.tcm-crm-shell .tcm-calc-keys button:hover{ background:#f5f7fa !important; }
body.tcm-crm-shell .tcm-calc-keys .op{ color:var(--tcm-accent) !important; font-weight:700 !important; }
body.tcm-crm-shell .tcm-calc-keys .fn{ color:var(--tcm-muted) !important; }
body.tcm-crm-shell .tcm-calc-keys .eq{ background:var(--tcm-accent) !important; color:#fff !important; }
body.tcm-crm-shell .tcm-calc-keys .eq:hover{ background:#1d4ed8 !important; }
.tcm-calc-keys .span2{ grid-column:span 2; }
