/**
 * Tableau de bord partenaire — refonte 2026.
 *
 * Le handoff ne couvre que l'écran de connexion de cet espace. Le tableau de bord connecté
 * (réservation, historique, villas, commissions, compte) est donc reconstruit ici à partir
 * du système de design, sans maquette de référence : rayon 0, aucune ombre, filets 1px,
 * Cormorant pour les titres, Jost pour le reste, palette ivoire / encre / or.
 *
 * Le markup vient de `espace-partenaire.php` et n'est pas modifié : on habille ses classes.
 */

.partenaire-dashboard {
	padding: 74px var(--e-gutter) 118px;
	max-width: var(--e-container);
	margin-inline: auto;
}

/* ------------------------------------------------------------------ *
 * En-tête
 * ------------------------------------------------------------------ */

.partenaire-header {
	margin-bottom: 44px;
	padding-bottom: 30px;
	border-bottom: 1px solid var(--e-line);
	background: none;
	box-shadow: none;
	border-radius: 0;
}

.partenaire-header h2 {
	font-family: var(--e-serif);
	font-size: 48px;
	font-weight: 300;
	line-height: 1.08;
	color: var(--e-text);
	margin: 0 0 10px;
}

.partenaire-subtitle {
	font-size: 14.5px;
	font-weight: 300;
	color: var(--e-text-muted);
	margin: 0;
}

/* ------------------------------------------------------------------ *
 * Onglets
 * ------------------------------------------------------------------ */

.partenaire-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	margin-bottom: 48px;
	border-bottom: 1px solid var(--e-line);
	background: none;
	border-radius: 0;
	padding: 0;
}

.partenaire-tab {
	display: block;
	padding: 0 0 16px;
	margin-bottom: -1px;
	border: 0;
	border-bottom: 1px solid transparent;
	border-radius: 0;
	background: none;
	font-family: var(--e-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--e-text-subtle);
	transition: color var(--e-transition), border-color var(--e-transition);
}

.partenaire-tab:hover {
	background: none;
	color: var(--e-text);
}

.partenaire-tab.active {
	background: none;
	color: var(--e-text);
	border-bottom-color: var(--e-gold);
}

.partenaire-tab-content {
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
}

/* ------------------------------------------------------------------ *
 * Titres de section
 * ------------------------------------------------------------------ */

.partenaire-reservation-section h3,
.partenaire-historique-section h3,
.partenaire-villas-section h3,
.partenaire-commissions-section h3,
.partenaire-compte-section h3 {
	font-family: var(--e-serif);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--e-text);
	margin: 0 0 12px;
}

.partenaire-count {
	font-size: 11.5px;
	font-weight: 400;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--e-text-subtle);
	background: none;
	padding: 0;
	border-radius: 0;
}

.partenaire-empty-state {
	border-top: 1px solid var(--e-line);
	background: none;
	border-radius: 0;
	padding: 40px 0 0;
	text-align: left;
}

.partenaire-empty-state p {
	font-size: 14.5px;
	font-weight: 300;
	line-height: 1.85;
	color: var(--e-text-muted);
	margin: 0 0 10px;
}

/* ------------------------------------------------------------------ *
 * Boutons
 * ------------------------------------------------------------------ */

.partenaire-btn {
	display: inline-block;
	border: 1px solid var(--e-text);
	border-radius: 0;
	background: transparent;
	color: var(--e-text);
	font-family: var(--e-sans);
	font-size: 11px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.19em;
	text-transform: uppercase;
	white-space: nowrap;
	padding: 16px 26px;
	cursor: pointer;
	box-shadow: none;
	transition: background-color var(--e-transition), color var(--e-transition),
		border-color var(--e-transition);
}

.partenaire-btn:hover {
	background: var(--e-text);
	color: var(--e-base);
	box-shadow: none;
	transform: none;
}

.partenaire-btn-primary {
	background: var(--e-text);
	border-color: var(--e-text);
	color: var(--e-base);
}

.partenaire-btn-primary:hover {
	background: #2c2a27;
	border-color: #2c2a27;
	color: var(--e-base);
}

.partenaire-btn-outline {
	background: transparent;
	border-color: var(--e-text);
	color: var(--e-text);
}

.partenaire-btn-danger {
	background: transparent;
	border-color: var(--e-field);
	color: var(--e-text-subtle);
}

.partenaire-btn-danger:hover {
	background: transparent;
	border-color: #a4453d;
	color: #a4453d;
}

.partenaire-btn-sm {
	padding: 11px 18px;
	font-size: 10px;
}

/* ------------------------------------------------------------------ *
 * Onglet Réservation
 * ------------------------------------------------------------------ */

.partenaire-villa-selector {
	margin-bottom: 34px;
}

.partenaire-villa-selector label {
	display: block;
	font-family: var(--e-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--e-text-muted);
	margin-bottom: 12px;
}

.partenaire-select {
	width: 100%;
	max-width: 520px;
	border: 1px solid var(--e-field);
	border-radius: 0;
	background: var(--e-base);
	padding: 16px 18px;
	font-family: var(--e-sans);
	font-size: 15px;
	font-weight: 300;
	color: var(--e-text);
	box-shadow: none;
}

.partenaire-select:focus {
	outline: 1px solid var(--e-gold-light);
	border-color: var(--e-gold-light);
	box-shadow: none;
}

.partenaire-villa-info {
	margin-bottom: 30px;
}

.partenaire-villa-badge {
	display: inline-block;
	background: var(--e-sand);
	color: var(--e-gold-dark);
	border-radius: 0;
	font-family: var(--e-sans);
	font-size: 10.5px;
	font-weight: 400;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	padding: 8px 12px;
}

/* Le formulaire de recherche est le même composant que sur la page « Prendre RDV ». */
.partenaire-search-form {
	background: var(--e-surface);
	border: 1px solid var(--e-line-soft);
	border-radius: 0;
	box-shadow: none;
	padding: 40px 44px;
}

.partenaire-search-form h3 {
	font-size: 26px;
	margin-bottom: 10px;
}

.partenaire-search-form p {
	font-size: 14.5px;
	font-weight: 300;
	line-height: 1.85;
	color: var(--e-text-muted);
	margin: 0 0 24px;
}

.partenaire-search-form #adresseClient {
	width: 100%;
	border: 1px solid var(--e-field);
	border-radius: 0;
	background: var(--e-base);
	padding: 16px 18px;
	font-family: var(--e-sans);
	font-size: 15px;
	font-weight: 300;
	color: var(--e-text);
	box-shadow: none;
}

.partenaire-search-form #adresseClient[readonly] {
	background: var(--e-base);
	color: var(--e-text-muted);
	cursor: default;
}

/* ------------------------------------------------------------------ *
 * Tableaux (historique, commissions)
 * ------------------------------------------------------------------ */

.partenaire-table-wrapper {
	overflow-x: auto;
	border-radius: 0;
	box-shadow: none;
	background: none;
}

.partenaire-table {
	width: 100%;
	border-collapse: collapse;
	background: none;
	font-family: var(--e-sans);
	font-size: 14px;
	font-weight: 300;
}

.partenaire-table thead th {
	background: none;
	border: 0;
	border-bottom: 1px solid var(--e-text);
	padding: 0 20px 14px 0;
	text-align: left;
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--e-text-subtle);
}

.partenaire-table tbody td {
	background: none;
	border: 0;
	border-bottom: 1px solid var(--e-line);
	padding: 20px 20px 20px 0;
	vertical-align: top;
	color: var(--e-text-soft);
}

.partenaire-table tbody tr:hover {
	background: var(--e-surface);
}

.partenaire-table tbody td small {
	display: block;
	font-size: 12px;
	color: var(--e-text-subtle);
	margin-top: 4px;
}

/* Statuts — le vocabulaire vient de epiona_partenaire_statut_commission(). */
.status-badge {
	display: inline-block;
	border-radius: 0;
	font-family: var(--e-sans);
	font-size: 10.5px;
	font-weight: 400;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	padding: 8px 12px;
	white-space: nowrap;
}

.status-approved,
.status-done {
	background: var(--e-sand);
	color: var(--e-gold-dark);
	border: 0;
}

.status-pending {
	background: transparent;
	border: 1px solid var(--e-line);
	color: var(--e-text-subtle);
}

.status-cancelled,
.status-rejected {
	background: transparent;
	border: 1px solid var(--e-field);
	color: #a4453d;
}

/* Pagination */
.partenaire-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 40px;
	padding-top: 26px;
	border-top: 1px solid var(--e-line);
}

.partenaire-page-link,
.partenaire-page-current {
	display: block;
	border: 1px solid var(--e-line);
	border-radius: 0;
	background: none;
	padding: 10px 15px;
	font-size: 12.5px;
	font-weight: 300;
	color: var(--e-text-muted);
}

.partenaire-page-link:hover {
	background: none;
	border-color: var(--e-gold-light);
	color: var(--e-text);
}

.partenaire-page-current {
	border-color: var(--e-text);
	color: var(--e-text);
}

/* ------------------------------------------------------------------ *
 * Onglet Villas
 * ------------------------------------------------------------------ */

.partenaire-villas-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 26px;
	margin-bottom: 44px;
}

.villa-card {
	background: var(--e-surface);
	border: 1px solid var(--e-line-soft);
	border-radius: 0;
	box-shadow: none;
	padding: 32px;
	transition: border-color var(--e-transition);
}

.villa-card:hover {
	border-color: var(--e-gold-light);
	box-shadow: none;
	transform: none;
}

.villa-card-inactive {
	opacity: 0.55;
}

.villa-card-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 16px;
}

.villa-card-header h4 {
	font-family: var(--e-serif);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.25;
	color: var(--e-text);
	margin: 0;
}

.villa-status-badge {
	flex: none;
	border-radius: 0;
	font-family: var(--e-sans);
	font-size: 10px;
	font-weight: 400;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	padding: 7px 10px;
}

.badge-active {
	background: var(--e-sand);
	color: var(--e-gold-dark);
	border: 0;
}

.badge-inactive {
	background: transparent;
	border: 1px solid var(--e-line);
	color: var(--e-text-subtle);
}

.villa-address,
.villa-city {
	font-size: 14px;
	font-weight: 300;
	line-height: 1.8;
	color: var(--e-text-muted);
	margin: 0 0 4px;
}

.villa-city {
	color: var(--e-text-subtle);
	font-size: 13px;
}

.villa-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--e-line);
}

/* Formulaire d'ajout / édition de villa */
.partenaire-villa-form {
	background: var(--e-surface);
	border: 1px solid var(--e-line-soft);
	border-radius: 0;
	box-shadow: none;
	padding: 40px 44px;
}

.partenaire-villa-form h4 {
	font-family: var(--e-serif);
	font-size: 26px;
	font-weight: 400;
	color: var(--e-text);
	margin: 0 0 28px;
}

.partenaire-form-group {
	margin-bottom: 26px;
}

.partenaire-form-group label {
	display: block;
	font-family: var(--e-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--e-text-muted);
	margin-bottom: 10px;
}

.partenaire-form-group :is(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"]),
.partenaire-form-group textarea {
	width: 100%;
	border: 1px solid var(--e-field);
	border-radius: 0;
	background: var(--e-base);
	padding: 14px 16px;
	font-family: var(--e-sans);
	font-size: 15px;
	font-weight: 300;
	color: var(--e-text);
	box-shadow: none;
}

.partenaire-form-group textarea {
	min-height: 110px;
	line-height: 1.7;
	resize: vertical;
}

.partenaire-form-group input:focus,
.partenaire-form-group textarea:focus {
	outline: 1px solid var(--e-gold-light);
	border-color: var(--e-gold-light);
	box-shadow: none;
}

.partenaire-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
}

.partenaire-form-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 34px;
	padding-top: 26px;
	border-top: 1px solid var(--e-line);
}

/* ------------------------------------------------------------------ *
 * Adaptatif
 * ------------------------------------------------------------------ */

@media (max-width: 900px) {
	.partenaire-dashboard {
		padding: 36px var(--e-gutter) 56px;
	}

	.partenaire-header {
		margin-bottom: 32px;
		padding-bottom: 22px;
	}

	.partenaire-header h2 {
		font-size: 30px;
	}

	.partenaire-tabs {
		gap: 18px;
		margin-bottom: 32px;
		overflow-x: auto;
		flex-wrap: nowrap;
	}

	.partenaire-reservation-section h3,
	.partenaire-historique-section h3,
	.partenaire-villas-section h3,
	.partenaire-commissions-section h3,
	.partenaire-compte-section h3 {
		font-size: 23px;
	}

	.partenaire-search-form,
	.partenaire-villa-form {
		padding: 28px 22px;
	}

	.partenaire-villas-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.partenaire-form-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}

	.partenaire-btn {
		width: 100%;
		text-align: center;
	}

	.partenaire-btn-sm {
		width: auto;
	}
}

/* ------------------------------------------------------------------ *
 * Écran de connexion et messages d'état
 *
 * Le bloc de connexion est mutualisé avec l'espace thérapeute
 * (voir inc/design/espace-connexion.php) : les styles vivent dans espaces.css.
 * Reste ici l'état « compte désactivé », qui garde la classe historique.
 * ------------------------------------------------------------------ */

.partenaire-login-prompt,
.epiona-notice {
	max-width: var(--e-container-prose);
	margin-inline: auto;
	padding: 118px var(--e-gutter);
	text-align: left;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.partenaire-login-prompt :is(h1, h2),
.epiona-notice h1 {
	font-family: var(--e-serif);
	font-size: 48px;
	font-weight: 300;
	line-height: 1.08;
	color: var(--e-text);
	margin: 0 0 22px;
}

.partenaire-login-prompt p,
.epiona-notice p {
	font-size: 15.5px;
	font-weight: 300;
	line-height: 1.9;
	color: var(--e-text-muted);
	max-width: 520px;
	margin: 0 0 32px;
}

@media (max-width: 900px) {
	.partenaire-login-prompt,
	.epiona-notice {
		padding: 56px var(--e-gutter);
	}

	.partenaire-login-prompt :is(h1, h2),
	.epiona-notice h1 {
		font-size: 30px;
	}
}

/* ------------------------------------------------------------------ *
 * Onglet Mon compte
 * ------------------------------------------------------------------ */

/* Identifiant et e-mail sont en lecture seule : on le montre sans les faire passer
   pour des champs saisissables. */
.partenaire-form-group input[disabled],
.partenaire-form-group input[readonly] {
	background: var(--e-base);
	border-color: var(--e-line);
	color: var(--e-text-muted);
	cursor: default;
	opacity: 1;
}

/* Aide de saisie : sous le champ, pas à côté. */
.partenaire-form-group small {
	display: block;
	margin-top: 8px;
	font-size: 12.5px;
	font-weight: 300;
	color: var(--e-text-subtle);
}

/* Retour de changement de mot de passe. */
#password-feedback {
	display: block;
	margin-bottom: 24px;
}
