/* MyZen — Planning public (P6-1). Mobile-first, sans dépendance. */

.myzen-planning {
	max-width: 640px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.4;
}

.myzen-planning__login {
	padding: 12px 16px;
	background: #f0f4ff;
	border-radius: 8px;
	margin-bottom: 16px;
}

.myzen-planning__feedback {
	margin: 0 0 16px;
	padding: 0;
}

.myzen-planning__feedback.is-error,
.myzen-planning__feedback.is-success {
	padding: 12px 16px;
	border-radius: 8px;
}

.myzen-planning__feedback.is-error {
	background: #fde8e8;
	color: #8a1f1f;
}

.myzen-planning__feedback.is-success {
	background: #e6f6ea;
	color: #1f5a2e;
}

.myzen-planning__empty {
	padding: 24px 16px;
	text-align: center;
	color: #666;
}

.myzen-planning__day {
	margin-bottom: 24px;
}

.myzen-planning__day-title {
	margin: 0 0 8px;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #555;
}

.myzen-planning__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.myzen-session {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px;
	border: 1px solid #e2e2e2;
	border-radius: 12px;
	margin-bottom: 8px;
	background: #fff;
}

.myzen-session__main {
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.myzen-session__time {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.myzen-session__title {
	font-weight: 600;
}

.myzen-session__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
	color: #666;
}

.myzen-session__places {
	font-size: 14px;
	color: #444;
}

.myzen-session__action {
	margin-top: 8px;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.myzen-btn {
	appearance: none;
	border: 1px solid #366eff;
	background: #fff;
	color: #366eff;
	border-radius: 8px;
	padding: 8px 16px;
	font-size: 16px;
	cursor: pointer;
	min-height: 44px; /* cible tactile mobile */
}

.myzen-btn--primary {
	background: #366eff;
	color: #fff;
}

.myzen-btn:disabled {
	opacity: 0.6;
	cursor: default;
}

.myzen-badge {
	display: inline-block;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 13px;
	background: #eee;
	color: #444;
}

.myzen-badge--ok {
	background: #e6f6ea;
	color: #1f5a2e;
}

.myzen-badge--full {
	background: #fde8e8;
	color: #8a1f1f;
}

@media (min-width: 480px) {
	.myzen-session {
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
	}

	.myzen-session__main {
		flex: 1 1 auto;
	}

	.myzen-session__action {
		margin-top: 0;
	}
}

/* --- Espace membre (P6-2) — réutilise .myzen-btn / .myzen-badge ci-dessus --- */
.myzen-member { max-width: 640px; margin: 0 auto; font-size: 16px; line-height: 1.4; }
.myzen-member__login { padding: 12px 16px; background: #f0f4ff; border-radius: 8px; }
.myzen-member__feedback { margin: 0 0 16px; padding: 0; }
.myzen-member__feedback.is-error { padding: 12px 16px; border-radius: 8px; background: #fde8e8; color: #8a1f1f; }
.myzen-member__feedback.is-success { padding: 12px 16px; border-radius: 8px; background: #e6f6ea; color: #1f5a2e; }
.myzen-member section { margin-bottom: 24px; }
.myzen-member__balance { font-size: 20px; }
.myzen-member__no-credits { color: #8a1f1f; }
.myzen-member__packs { list-style: none; margin: 0; padding: 0; }
.myzen-member__packs li { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 0; border-bottom: 1px solid #eee; font-size: 14px; }
.myzen-member__exp { color: #666; }
.myzen-member__list { list-style: none; margin: 0; padding: 0; }
.myzen-mbooking { display: flex; flex-direction: column; gap: 8px; padding: 16px; border: 1px solid #e2e2e2; border-radius: 12px; margin-bottom: 8px; background: #fff; }
.myzen-mbooking__main { display: flex; flex-direction: column; }
.myzen-mbooking__date { font-weight: 700; }
.myzen-mbooking__title { color: #333; }
.myzen-mbooking__status { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.myzen-member__empty { color: #666; padding: 16px 0; }
@media (min-width: 480px) {
	.myzen-mbooking { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* --- Achat de pack (P6-3) --- */
.myzen-packs { max-width: 640px; margin: 0 auto; font-size: 16px; line-height: 1.4; }
.myzen-packs__balance { font-weight: 600; }
.myzen-packs__note { padding: 12px 16px; background: #f0f4ff; border-radius: 8px; }
.myzen-packs__empty { color: #666; padding: 16px 0; }
.myzen-packs__list { list-style: none; margin: 0; padding: 0; }
.myzen-pack { display: flex; flex-direction: column; gap: 8px; padding: 16px; border: 1px solid #e2e2e2; border-radius: 12px; margin-bottom: 12px; background: #fff; }
.myzen-pack__head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.myzen-pack__name { font-weight: 700; }
.myzen-pack__price { font-weight: 700; }
.myzen-pack__meta { display: flex; flex-wrap: wrap; gap: 12px; font-size: 14px; color: #555; }
.myzen-pack__buy { align-self: flex-start; text-decoration: none; display: inline-block; }

/* --- Espace coach (P7-1 front) — réutilise .myzen-badge --- */
.myzen-coach { max-width: 680px; margin: 0 auto; font-size: 16px; line-height: 1.45; }
.myzen-coach__login { padding: 12px 16px; background: #f0f4ff; border-radius: 8px; }
.myzen-coach__feedback { margin: 0; }
.myzen-coach__empty { color: #666; padding: 16px 0; }
.myzen-coach__day { margin: 24px 0 8px; font-size: 14px; text-transform: uppercase; letter-spacing: .04em; color: #555; }
.myzen-coach-session { border: 1px solid #e2e2e2; border-radius: 10px; padding: 16px; margin-bottom: 10px; background: #fff; }
.myzen-coach-session__head { margin: 0 0 8px; }
.myzen-coach-session__roster { margin: 4px 0 8px 20px; }

/* --- Pointage présences coach (P7-2) --- */
.myzen-coach-session__recap { color: #555; font-weight: 400; font-size: 14px; }
.myzen-coach-session__roster { list-style: none; margin: 8px 0; padding: 0; }
.myzen-coach-session__waitlist { margin: 4px 0 0 20px; }
.myzen-attendee { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 0; border-bottom: 1px solid #f0f0f0; flex-wrap: wrap; }
.myzen-attendee__name { flex: 1 1 auto; }
.myzen-attendee__ctrl { display: flex; gap: 6px; }
.myzen-att-btn { appearance: none; border: 1px solid #ccc; background: #fff; color: #444; border-radius: 8px; padding: 8px 14px; font-size: 15px; min-height: 44px; cursor: pointer; }
.myzen-att-btn:disabled { opacity: .6; cursor: default; }
.myzen-att-btn--present.is-active { background: #1f7a3d; border-color: #1f7a3d; color: #fff; }
.myzen-att-btn--absent.is-active { background: #b32d2e; border-color: #b32d2e; color: #fff; }

/* --- Espace membre : boutons d'action + cours passés (sprint membre) --- */
.myzen-member__actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.myzen-member__actions .myzen-btn { text-decoration: none; }
.myzen-member__past { margin-top: 24px; }
.myzen-member__past summary { cursor: pointer; font-weight: 600; padding: 8px 0; }

/* Verrouillage par niveau (lot 2) — la séance reste visible, non réservable. */
.myzen-badge--locked {
    background: #ece9e6;
    color: #6b625c;
}

.myzen-locked-why {
    display: inline-block;
    margin-left: 6px;
    font-size: 0.85em;
    color: #6b625c;
}
