/* ===================================================================
   Prospection Locations Saisonnières — charte graphique reprise du logo
   Noir #141414, jaune #FFC61A, orange #FF6A00 → #E04E00
   Règle stricte : jamais de texte blanc sur fond blanc/clair.
=================================================================== */

.psl-dashboard.psl-dashboard {
	--psl-orange: #FF6A00;
	--psl-orange-dark: #E04E00;
	--psl-yellow: #FFC61A;
	--psl-dark: #141414;
	--psl-cream: #FFF3E6;
	--psl-peach: #FFE3CC;
	--psl-grey: #6b6b6b;
	font-family: -apple-system, "Segoe UI", Arial, sans-serif;
	color: var(--psl-dark) !important;           /* jamais de blanc par défaut, la page est blanche */
	max-width: 1100px;
	margin: 0 auto;
	line-height: 1.5;
}
.psl-dashboard.psl-dashboard * { box-sizing: border-box; }

/* Verrou de sécurité : le thème du site peut imposer du texte blanc avec une
   priorité plus forte que nos règles (badges, cellules de tableau...). On force
   donc le noir partout dans le plugin, puis on rétablit le blanc UNIQUEMENT
   sur les 3 endroits à fond plein noir, avec la même priorité renforcée. */
.psl-dashboard.psl-dashboard, .psl-dashboard.psl-dashboard * { color: var(--psl-dark) !important; }
.psl-dashboard.psl-dashboard .psl-table th,
.psl-dashboard.psl-dashboard .psl-table tr.psl-total td,
.psl-dashboard.psl-dashboard .psl-filters button { color: #fff !important; }

.psl-dashboard.psl-dashboard h2 { color: var(--psl-dark) !important; font-size: 1.5em; margin-bottom: 0.2em; }
.psl-dashboard.psl-dashboard h3 { color: var(--psl-orange-dark) !important; margin-top: 2em; font-size: 1.15em; }
.psl-dashboard.psl-dashboard .psl-mois { color: var(--psl-orange-dark) !important; font-weight: bold; margin-top: 0; }

/* ---------- Cartes chiffres clés ---------- */
.psl-dashboard.psl-dashboard .psl-cards { display: flex; flex-wrap: wrap; gap: 12px; margin: 1em 0; }
.psl-dashboard.psl-dashboard .psl-card {
	background: var(--psl-cream);
	border-radius: 10px;
	padding: 16px 20px;
	flex: 1 1 180px;
	display: flex;
	flex-direction: column;
	border: 1px solid #FFE3CC;
	box-shadow: 0 1px 3px rgba(0,0,0,0.03);
	transition: transform .15s, box-shadow .15s;
}
.psl-dashboard.psl-dashboard .psl-card:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.06); }
.psl-dashboard.psl-dashboard .psl-card .psl-label { font-size: 0.85em; color: var(--psl-grey) !important; }
.psl-dashboard.psl-dashboard .psl-card .psl-value { font-size: 1.6em; font-weight: 800; color: var(--psl-orange-dark) !important; }

.psl-dashboard.psl-dashboard .psl-recompense {
	background: var(--psl-yellow);
	color: var(--psl-dark) !important;           /* fond clair -> texte noir, jamais blanc */
	padding: 12px 16px;
	border-radius: 8px;
	font-weight: bold;
}

/* ---------- Progression vers le palier suivant ---------- */
.psl-dashboard.psl-dashboard .psl-progress { margin: 1.2em 0; }
.psl-dashboard.psl-dashboard .psl-progress p { color: var(--psl-dark) !important; font-weight: 600; }
.psl-dashboard.psl-dashboard .psl-bar { background: #F0F0F0; border-radius: 8px; height: 16px; overflow: hidden; }
.psl-dashboard.psl-dashboard .psl-bar-fill { background: linear-gradient(90deg, var(--psl-yellow), var(--psl-orange)); height: 100%; transition: width .3s; }

/* ---------- Tableaux ---------- */
.psl-dashboard.psl-dashboard .psl-table { width: 100%; border-collapse: collapse; margin-bottom: 1.5em; background: #fff; }
.psl-dashboard.psl-dashboard .psl-table th {
	background: var(--psl-dark);
	color: #fff !important;                       /* seul cas de texte blanc : fond noir plein */
	padding: 10px 8px;
	text-align: left;
	font-size: 0.9em;
}
.psl-dashboard.psl-dashboard .psl-table td { padding: 9px 8px; border-bottom: 1px solid #EFEFEF; color: var(--psl-dark) !important; }
.psl-dashboard.psl-dashboard .psl-table tr:hover td { background: #FFFBF5; }
.psl-dashboard.psl-dashboard .psl-table tr.psl-atteint td { background: #E4F7E9; }
.psl-dashboard.psl-dashboard .psl-table tr.psl-moi td { background: var(--psl-peach); font-weight: bold; }
.psl-dashboard.psl-dashboard .psl-table tr.psl-total td { background: var(--psl-dark); color: #fff !important; font-weight: bold; }

.psl-dashboard.psl-dashboard .psl-badge { display: inline-block; padding: 4px 12px; border-radius: 12px; font-size: 0.82em; font-weight: 700; background: var(--psl-dark); color: #fff !important; }
.psl-dashboard.psl-dashboard .psl-badge-Gagneclient { background: #1F7A3D; }
.psl-dashboard.psl-dashboard .psl-badge-Perdu { background: #A52A1A; }

/* ---------- Boutons ---------- */
.psl-dashboard.psl-dashboard .psl-btn {
	display: inline-block;
	background: linear-gradient(90deg, var(--psl-yellow), var(--psl-orange));
	color: var(--psl-dark) !important; /* fond clair -> texte foncé, jamais blanc */
	font-weight: 700;
	border: none;
	padding: 10px 20px;
	border-radius: 8px;
	text-decoration: none;
	cursor: pointer;
	transition: opacity .15s;
}
.psl-dashboard.psl-dashboard .psl-btn:hover { opacity: 0.85; }
.psl-dashboard.psl-dashboard .psl-btn-danger { background: #A52A1A; color: #fff !important; margin-left: 8px; }

/* ---------- Filtres ---------- */
.psl-dashboard.psl-dashboard .psl-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 1.2em; background: var(--psl-cream); padding: 10px 12px; border-radius: 8px; }
.psl-dashboard.psl-dashboard .psl-filters input, .psl-dashboard.psl-dashboard .psl-filters select { padding: 7px 10px; border: 1px solid #E3D4C0; border-radius: 6px; background: #fff; color: var(--psl-dark) !important; }
.psl-dashboard.psl-dashboard .psl-filters button { background: var(--psl-dark); color: #fff !important; border: none; padding: 7px 16px; border-radius: 6px; cursor: pointer; }

/* ---------- Formulaires ---------- */
.psl-dashboard.psl-dashboard .psl-form { display: flex; flex-wrap: wrap; gap: 14px 20px; background: #fff; }
.psl-dashboard.psl-dashboard .psl-form label { display: flex; flex-direction: column; font-weight: 600; font-size: 0.9em; gap: 4px; flex: 1 1 220px; color: var(--psl-dark) !important; }
.psl-dashboard.psl-dashboard .psl-form label.psl-full { flex-basis: 100%; }
.psl-dashboard.psl-dashboard .psl-form input, .psl-dashboard.psl-dashboard .psl-form select, .psl-dashboard.psl-dashboard .psl-form textarea {
	font-weight: normal;
	padding: 9px 10px;
	border: 1px solid #E0E0E0;
	border-radius: 6px;
	font-family: inherit;
	color: var(--psl-dark) !important;
	background: #fff;
}
.psl-dashboard.psl-dashboard .psl-form input:focus, .psl-dashboard.psl-dashboard .psl-form select:focus, .psl-dashboard.psl-dashboard .psl-form textarea:focus { outline: 2px solid var(--psl-yellow); border-color: var(--psl-orange) !important; }
.psl-dashboard.psl-dashboard .psl-form h3 { flex-basis: 100%; margin: 1.2em 0 0.2em; color: var(--psl-orange-dark) !important; }
.psl-dashboard.psl-dashboard .psl-actions { flex-basis: 100%; margin-top: 1em; }

.psl-dashboard.psl-dashboard .psl-networks { flex-basis: 100%; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap: 8px; background: var(--psl-cream); padding: 14px; border-radius: 10px; }
.psl-dashboard.psl-dashboard .psl-network-row { display: flex; align-items: center; gap: 8px; }
.psl-dashboard.psl-dashboard .psl-network-row label { flex-direction: row; align-items: center; flex: 0 0 auto; white-space: nowrap; font-weight: 500; }
.psl-dashboard.psl-dashboard .psl-network-row input[type=url] { flex: 1; padding: 5px 8px; }

.psl-dashboard.psl-dashboard .psl-service-row { flex-basis: 100%; display: flex; align-items: center; gap: 12px; background: #F6EEFF; padding: 10px 14px; border-radius: 8px; }
.psl-dashboard.psl-dashboard .psl-service-row strong { flex: 1 1 260px; font-weight: 700; color: #5B2D91 !important; }

/* ---------- Réglages ---------- */
.psl-dashboard.psl-dashboard .psl-reset-zone { margin-top: 2.5em; padding: 18px; background: #FFF6F5; border: 1px solid #F4C7BE; border-radius: 10px; }
.psl-dashboard.psl-dashboard .psl-checkbox-confirm { display: flex !important; flex-direction: row !important; align-items: center; gap: 8px; font-weight: 500 !important; margin: 10px 0; }
.psl-dashboard.psl-dashboard .psl-checkbox-confirm input { width: auto; }

/* ---------- Guide d'utilisation ---------- */
.psl-dashboard.psl-dashboard .psl-guide {
	background: var(--psl-cream);
	border: 1px solid var(--psl-peach);
	border-radius: 10px;
	padding: 10px 16px;
	margin: 1em 0 1.6em;
}
.psl-dashboard.psl-dashboard .psl-guide summary { cursor: pointer; font-weight: 700; color: var(--psl-orange-dark) !important; padding: 6px 0; }
.psl-dashboard.psl-dashboard .psl-guide ol { margin: 8px 0 4px; padding-left: 20px; }
.psl-dashboard.psl-dashboard .psl-guide li { margin-bottom: 8px; color: var(--psl-dark) !important; }
.psl-dashboard.psl-dashboard .psl-bugreport { margin-top: 2.5em; background: #FFF6F5; border-color: #F4C7BE; }
.psl-dashboard.psl-dashboard .psl-bugreport summary { color: #C0392B !important; }

.psl-dashboard.psl-dashboard .psl-note { font-size: 0.85em; color: var(--psl-grey) !important; }

/* ---------- Sous-navigation façon logiciel ---------- */
.psl-dashboard.psl-dashboard .psl-subnav {
	position: sticky;
	top: 0;
	z-index: 5;
	display: flex;
	gap: 4px;
	flex-wrap: wrap;
	background: #fff;
	border: 1px solid #EEE;
	border-radius: 10px;
	padding: 6px;
	margin: 1em 0 1.6em;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.psl-dashboard.psl-dashboard .psl-subnav a {
	color: var(--psl-dark) !important;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.85em;
	padding: 8px 14px;
	border-radius: 7px;
	transition: background .15s;
}
.psl-dashboard.psl-dashboard .psl-subnav a:hover { background: var(--psl-cream); }

/* ---------- Badges de statut de paiement ---------- */
/* Note : sanitize_html_class() retire les espaces (ne les remplace pas par un tiret) */
.psl-dashboard.psl-dashboard .psl-badge-paiement-Paye { background: #1F7A3D; }
.psl-dashboard.psl-dashboard .psl-badge-paiement-Afacturer { background: var(--psl-dark); }
.psl-dashboard.psl-dashboard .psl-badge-paiement-Facture { background: #B8860B; }
.psl-dashboard.psl-dashboard .psl-badge-paiement-Payepartiellement { background: var(--psl-orange-dark); }
.psl-dashboard.psl-dashboard .psl-badge-paiement-Annule { background: #A52A1A; }
.psl-dashboard.psl-dashboard .psl-badge-mover { background: var(--psl-orange-dark); }

/* ---------- Filtres rapides (pastilles) ---------- */
.psl-dashboard.psl-dashboard .psl-quick-filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.psl-dashboard.psl-dashboard .psl-quick-filters a {
	padding: 5px 12px;
	border-radius: 14px;
	background: var(--psl-cream);
	color: var(--psl-dark) !important;
	text-decoration: none;
	font-size: 0.85em;
	font-weight: 600;
	border: 1px solid #FFE3CC;
}
.psl-dashboard.psl-dashboard .psl-quick-filters a.psl-qf-active { background: var(--psl-orange); border-color: var(--psl-orange) !important; }

/* ---------- Formulaire compact (objectif, etc.) ---------- */
.psl-dashboard.psl-dashboard .psl-form-inline { gap: 10px; align-items: flex-end; background: var(--psl-cream); padding: 14px; border-radius: 10px; }
.psl-dashboard.psl-dashboard .psl-form-inline label { flex: 0 0 220px; }

/* ---------- Fil d'activité ---------- */
.psl-dashboard.psl-dashboard .psl-timeline { list-style: none; margin: 0; padding: 0; }
.psl-dashboard.psl-dashboard .psl-timeline li {
	display: flex;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid #F0F0F0;
	font-size: 0.9em;
}
.psl-dashboard.psl-dashboard .psl-timeline-time { flex: 0 0 90px; color: var(--psl-orange-dark) !important; font-weight: 700; font-size: 0.85em; }
.psl-dashboard.psl-dashboard .psl-timeline-text { color: var(--psl-dark) !important; }

/* ---------- Tâches ---------- */
.psl-dashboard.psl-dashboard .psl-btn-small { padding: 6px 14px; font-size: 0.85em; }
.psl-dashboard.psl-dashboard .psl-tasklist { list-style: none; margin: 0 0 8px; padding: 0; }
.psl-dashboard.psl-dashboard .psl-tasklist li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border-bottom: 1px solid #F0F0F0;
	font-size: 0.92em;
}
.psl-dashboard.psl-dashboard .psl-task-check { text-decoration: none; font-size: 1.2em; color: var(--psl-orange-dark) !important; flex: 0 0 auto; }
.psl-dashboard.psl-dashboard .psl-task-titre { flex: 1; color: var(--psl-dark) !important; }
.psl-dashboard.psl-dashboard .psl-task-prospect { color: var(--psl-grey) !important; font-weight: 500; }
.psl-dashboard.psl-dashboard .psl-task-date { font-size: 0.85em; color: var(--psl-grey) !important; font-weight: 600; }
.psl-dashboard.psl-dashboard .psl-tasklist li.psl-task-retard, .psl-dashboard.psl-dashboard tr.psl-task-retard td { color: #C0392B !important; }
.psl-dashboard.psl-dashboard .psl-tasklist li.psl-task-retard .psl-task-date { color: #C0392B !important; }
.psl-dashboard.psl-dashboard .psl-tasklist li.psl-task-done .psl-task-titre, .psl-dashboard.psl-dashboard tr.psl-task-done td { text-decoration: line-through; color: var(--psl-grey) !important; }
.psl-dashboard.psl-dashboard .psl-prospect-tasks { background: var(--psl-cream); padding: 12px 14px; border-radius: 10px; margin-bottom: 1.5em; }

/* ---------- Pagination ---------- */
.psl-dashboard.psl-dashboard .psl-pagination { display: flex; gap: 6px; flex-wrap: wrap; margin: 1em 0; }
.psl-dashboard.psl-dashboard .psl-pagination a { display: inline-block; padding: 6px 12px; border-radius: 6px; background: var(--psl-cream); color: var(--psl-dark) !important; text-decoration: none; font-weight: 600; }
.psl-dashboard.psl-dashboard .psl-pagination a.psl-page-active { background: var(--psl-orange); color: var(--psl-dark) !important; }

/* ---------- Avertissement doublon ---------- */
.psl-dashboard.psl-dashboard .psl-warning { background: #FFF4D6; border: 1px solid var(--psl-yellow); color: var(--psl-dark) !important; padding: 10px 14px; border-radius: 8px; font-weight: 600; }

/* ---------- Hub d'administration (cartes) ---------- */
.psl-dashboard.psl-dashboard .psl-hub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin: 1.4em 0; }
.psl-dashboard.psl-dashboard .psl-hub-grid-3 { grid-template-columns: repeat(3, 1fr); }
.psl-dashboard.psl-dashboard .psl-hub-card {
	background: #fff;
	border: 1px solid #EEE;
	border-radius: 12px;
	padding: 20px;
	box-shadow: 0 1px 4px rgba(0,0,0,0.04);
	transition: box-shadow .15s, transform .15s;
}
.psl-dashboard.psl-dashboard .psl-hub-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.08); transform: translateY(-2px); }
.psl-dashboard.psl-dashboard .psl-hub-card-link { text-decoration: none; color: inherit !important; display: block; }
.psl-dashboard.psl-dashboard .psl-hub-icon { font-size: 1.8em; margin-bottom: 6px; }
.psl-dashboard.psl-dashboard .psl-hub-card h3 { margin: 0 0 6px; color: var(--psl-dark) !important; font-size: 1.05em; }
.psl-dashboard.psl-dashboard .psl-hub-card p { margin: 0 0 6px; color: var(--psl-dark) !important; font-size: 0.92em; line-height: 1.45; }
.psl-dashboard.psl-dashboard .psl-hub-hint { font-size: 0.8em !important; color: var(--psl-orange-dark) !important; }
.psl-dashboard.psl-dashboard .psl-hub-hint code { background: var(--psl-cream); padding: 1px 6px; border-radius: 4px; }

/* ---------- Sections du hub (toujours visibles, jamais de contenu caché) ---------- */
.psl-dashboard.psl-dashboard .psl-hub-section {
	background: #fff;
	border: 1px solid #EEE;
	border-radius: 12px;
	padding: 18px;
	margin-bottom: 16px;
	box-shadow: 0 1px 4px rgba(0,0,0,0.03);
	scroll-margin-top: 70px; /* pour que l'ancre ne se cache pas sous la sous-navigation collante */
}
.psl-dashboard.psl-dashboard .psl-hub-section h3 { margin-top: 0; }
.psl-dashboard.psl-dashboard .psl-hub-section-body { padding-top: 6px; }
.psl-dashboard.psl-dashboard .psl-hub-section .psl-dashboard { max-width: none; margin: 0; }
.psl-dashboard.psl-dashboard .psl-diag-table td:nth-child(2) { font-weight: 700; }

/* Un bloc .psl-dashboard imbriqué dans un autre (Prospects/Ventes/Objectifs
   intégrés dans « Mon espace » ou dans le hub admin) ne doit pas répéter son
   propre titre : celui du bloc parent (h3) suffit. */
.psl-dashboard.psl-dashboard .psl-dashboard > h2:first-child { display: none; }

/* ---------- Graphiques en barres (statistiques) ---------- */
.psl-dashboard.psl-dashboard .psl-barchart { display: flex; flex-direction: column; gap: 10px; margin: 1em 0 2em; }
.psl-dashboard.psl-dashboard .psl-bar-row { display: grid; grid-template-columns: 140px 1fr 90px; align-items: center; gap: 10px; }
.psl-dashboard.psl-dashboard .psl-bar-label { font-size: 0.88em; font-weight: 600; color: var(--psl-dark) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.psl-dashboard.psl-dashboard .psl-bar-track { background: #F0F0F0; border-radius: 6px; height: 14px; overflow: hidden; }
.psl-dashboard.psl-dashboard .psl-bar-fill2 { background: linear-gradient(90deg, var(--psl-yellow), var(--psl-orange-dark)); height: 100%; }
.psl-dashboard.psl-dashboard .psl-bar-value { font-size: 0.88em; font-weight: 700; color: var(--psl-orange-dark) !important; text-align: right; }

@media (max-width: 780px) {
.psl-dashboard.psl-dashboard .psl-hub-grid-3 { grid-template-columns: 1fr; }
.psl-dashboard.psl-dashboard .psl-bar-row { grid-template-columns: 100px 1fr 70px; }
}

/* ---------- Responsive ---------- */
@media (max-width: 640px) {
.psl-dashboard.psl-dashboard .psl-cards { flex-direction: column; }
.psl-dashboard.psl-dashboard .psl-table { font-size: 0.85em; }
.psl-dashboard.psl-dashboard .psl-form label { flex-basis: 100%; }
}
