/**
 * Spicy Moments — composants legacy & pages (modules)
 * Shell : tokens.css + shell.css (chargés avant ce fichier)
 */

.booking-card {
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-md);
	padding: var(--ms-space-md);
	margin-bottom: var(--ms-space-md);
	background: var(--ms-bg-surface);
}

.ride-map {
	height: 280px;
	width: 100%;
	max-width: 48rem;
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-md);
	margin: var(--ms-space-sm) 0 var(--ms-space-md);
}

.ride-landmark {
	margin: var(--ms-space-md) 0;
	padding: var(--ms-space-md);
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-md);
	background: var(--ms-bg-surface);
}

.ride-landmark__situation {
	margin: var(--ms-space-sm) 0 0;
	line-height: 1.55;
	max-width: 42rem;
}

.ride-landmark__ambiance {
	margin: var(--ms-space-sm) 0 var(--ms-space-md);
	line-height: 1.6;
	max-width: 42rem;
	font-style: italic;
	color: var(--ms-text-muted, inherit);
}

.ride-landmark__preview {
	margin: var(--ms-space-sm) 0 0;
}

.ride-landmark__preview img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: var(--ms-radius-sm);
}

.ride-landmark__preview figcaption {
	margin-top: var(--ms-space-xs);
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.address-ac {
	position: relative;
}

.address-ac__list {
	position: absolute;
	z-index: 40;
	left: 0;
	right: 0;
	max-height: 14rem;
	overflow-y: auto;
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
	background: var(--ms-bg-elevated);
	border: 1px solid var(--ms-border-strong);
	border-radius: var(--ms-radius-md);
	box-shadow: var(--ms-shadow-md);
}

.address-ac__option {
	padding: var(--ms-space-sm) var(--ms-space-md);
	cursor: pointer;
	color: var(--ms-text-primary);
}

.address-ac__option:hover,
.address-ac__option--active {
	background: var(--ms-accent-soft);
	outline: none;
}

.address-ac__status {
	display: flex;
	align-items: center;
	gap: var(--ms-space-sm);
	margin-top: var(--ms-space-xs);
	font-size: 0.9rem;
	color: var(--ms-text-muted, #666);
}

.address-ac__status[hidden] {
	display: none !important;
}

.address-ac__progress {
	flex: 0 0 6rem;
	height: 0.35rem;
	accent-color: var(--ms-accent, #b85c38);
}

.address-ac__progress:not([value]) {
	/* barre indéterminée native (Chrome, Firefox, Safari récents) */
	overflow: hidden;
}

/* ── Accueil & sections legacy ───────────────────────────── */

.nous_rejoindre {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--ms-space-md);
	margin: var(--ms-space-lg) 0;
}

.button_main {
	min-width: min(100%, 14rem);
	margin: var(--ms-space-sm) 0;
	display: inline-flex;
	justify-content: center;
}

.button_main_petit {
	min-width: min(100%, 12rem);
}

.div_liens {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--ms-space-lg);
	margin: var(--ms-space-lg) 0;
}

.liens {
	width: 3rem;
	transition: transform 0.2s ease;
}

.liens_images {
	width: 100%;
	object-fit: cover;
}

.liens:hover {
	transform: scale(1.08);
}

.dernier_article,
.dernier_com {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: center;
	gap: var(--ms-space-md);
}

.dernier_article_div,
.dernier_com_div {
	width: min(100%, 25rem);
	min-height: 12rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: var(--ms-bg-surface);
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-md);
	padding: var(--ms-space-md);
	box-shadow: var(--ms-shadow-sm);
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
	cursor: pointer;
}

.dernier_article_div p,
.dernier_com_div p {
	margin: var(--ms-space-xs) 0 0;
}

.dernier_article_div:hover,
.dernier_com_div:hover {
	border-color: var(--ms-accent-secondary);
	box-shadow: var(--ms-shadow-md);
}

/* ── Formulaires ─────────────────────────────────────────── */

.formulaire_div {
	text-align: center;
	margin: var(--ms-space-xl) auto;
	padding: var(--ms-space-lg);
	background: var(--ms-bg-surface);
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-lg);
	width: min(100%, 42rem);
	box-shadow: var(--ms-shadow-sm);
}

.form-group {
	display: flex;
	flex-wrap: wrap;
	margin: var(--ms-space-md) 0;
	text-align: start;
}

.form-group-check {
	display: flex;
	margin: var(--ms-space-md) 0;
}

.form-group-check label {
	width: 100%;
	font-weight: 700;
	text-align: start;
}

.form-check {
	width: 1.5rem;
	margin: 0 var(--ms-space-md);
}

.form-group label {
	width: 100%;
	font-weight: 700;
	color: var(--ms-text-primary);
}

.form-control {
	width: 100%;
	min-height: 2.75rem;
	margin: var(--ms-space-sm) 0;
	padding: 0.5em 0.75em;
	font-family: inherit;
	font-size: 1rem;
	color: var(--ms-text-primary);
	background: var(--ms-bg-elevated);
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-sm);
}

.form-control-grand {
	min-height: 12rem;
}

.form-control:focus {
	outline: none;
	border-color: var(--ms-accent);
	box-shadow: var(--ms-focus-ring);
}

.form-control-contact {
	min-height: 8em;
}

.formulaire_bouton {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row-reverse;
	justify-content: center;
	gap: var(--ms-space-md);
}

.formulaire_bouton a {
	margin-top: var(--ms-space-md);
}

.bouton_form {
	display: inline-flex;
	font-size: 1rem;
	justify-content: center;
}

fieldset {
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-md);
	padding: var(--ms-space-md);
	margin: var(--ms-space-lg) 0;
	background: var(--ms-bg-surface);
}

legend {
	font-weight: 700;
	padding: 0 var(--ms-space-sm);
	color: var(--ms-text-primary);
}

/* ── Articles legacy ─────────────────────────────────────── */

.article {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: var(--ms-bg-surface);
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-md);
	margin: var(--ms-space-xl) auto;
	max-width: 50rem;
	padding: var(--ms-space-md);
	box-shadow: var(--ms-shadow-sm);
	transition: box-shadow 0.2s ease;
}

.article p {
	margin: var(--ms-space-xs) 0;
}

.article:hover {
	box-shadow: var(--ms-shadow-md);
	border-color: var(--ms-accent-secondary);
}

.bouton_article {
	font-size: 1rem;
	margin-left: auto;
}

.article_bouton_admin {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--ms-space-md);
}

.button_oups,
.button_article_detail,
.moderation_button,
.moderation_button_grand,
.button_newsleter,
.button_profil {
	display: inline-flex;
	justify-content: center;
}

.article_detail_h3 {
	text-align: start;
	margin-bottom: 0;
}

.article_detail_date {
	margin: 0 0 var(--ms-space-md);
	color: var(--ms-text-muted);
}

.p_newsleter {
	margin-top: var(--ms-space-xl);
}

.newsleter_div_button {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--ms-space-md);
}

.user_div_admin {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--ms-space-md);
}

.user_mdp_lost {
	color: var(--ms-link);
}

.user_mdp_lost:hover {
	color: var(--ms-link-hover);
}

/* ── Profils & conversations ─────────────────────────────── */

.profile-link {
	font-weight: 600;
	color: var(--ms-link);
	text-decoration: underline;
}

.profile-link:hover {
	color: var(--ms-link-hover);
}

.profile-link--missing {
	font-weight: 600;
	color: inherit;
}

.profile-link__meta {
	font-size: 0.9em;
	color: var(--ms-text-muted);
	font-weight: normal;
}

.people-block {
	margin: var(--ms-space-xs) 0;
}

.profile-primary-picker {
	margin-top: var(--ms-space-md);
	padding-top: var(--ms-space-md);
	border-top: 1px solid var(--ms-border);
}

.profile-primary-picker__title {
	margin: 0 0 var(--ms-space-sm);
	font-size: 1rem;
	font-weight: 600;
}

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

.conversation-list__item {
	margin-bottom: var(--ms-space-md);
	border-bottom: 1px solid var(--ms-border);
}

.conversation-list__link {
	display: block;
	padding: var(--ms-space-sm) 0 var(--ms-space-md);
	color: inherit;
	text-decoration: none;
}

.conversation-list__link:hover .conversation-list__title {
	text-decoration: underline;
	color: var(--ms-link);
}

.conversation-list__title {
	margin: 0 0 var(--ms-space-xs);
	font-size: 1.1rem;
	font-weight: 600;
}

.conversation-list__preview {
	margin: 0;
	font-size: 0.95rem;
	color: var(--ms-text-muted);
	line-height: 1.4;
}

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

.message-item {
	margin-bottom: var(--ms-space-lg);
	padding-bottom: var(--ms-space-md);
	border-bottom: 1px solid var(--ms-border);
}

.message-item__sender {
	margin: 0 0 0.2rem;
	font-size: 1rem;
	font-weight: 600;
}

.message-item__meta {
	margin: 0 0 var(--ms-space-xs);
	font-size: 0.85rem;
	color: var(--ms-text-muted);
}

.message-item__content {
	margin: 0;
	line-height: 1.45;
}

.people-block__line {
	margin: 0.15rem 0;
}

.people-block__type {
	margin: 0 0 var(--ms-space-xs);
	font-weight: 600;
	color: var(--ms-text-secondary);
}

.people-block__status {
	margin: 0 0 var(--ms-space-xs);
}

.people-block__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.people-block__list > li {
	margin-bottom: var(--ms-space-xs);
}

.report-form {
	margin: var(--ms-space-xs) 0 0;
}

.report-form__btn {
	font-size: 0.85rem;
	padding: 0.2rem 0.65rem;
	background: var(--ms-error);
	color: var(--ms-text-on-accent);
	border: 2px solid var(--ms-error);
	border-radius: var(--ms-radius-sm);
	cursor: pointer;
}

/* ── Connexion passkey ───────────────────────────────────── */

.user_login_device_link {
	margin-top: var(--ms-space-md);
	padding: var(--ms-space-md);
	background: var(--ms-bg-surface);
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-md);
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

.user_login_sub {
	text-align: center;
	margin-top: var(--ms-space-lg);
}

/* ── Coffre-fort ─────────────────────────────────────────── */

.vault-panel {
	margin: var(--ms-space-lg) 0;
}

.vault-status {
	font-weight: 600;
	margin: var(--ms-space-sm) 0 var(--ms-space-md);
}

.vault-status-locked {
	color: var(--ms-text-muted);
}

.vault-status-open {
	color: var(--ms-success);
}

.vault-banner {
	padding: var(--ms-space-md);
	border-radius: var(--ms-radius-md);
	margin: var(--ms-space-md) 0;
}

.vault-banner--warn {
	background: var(--ms-warning-bg);
	border: 1px solid var(--ms-amber);
	color: var(--ms-warning);
}

.vault-entry-list {
	display: flex;
	flex-direction: column;
	gap: var(--ms-space-md);
	margin-bottom: var(--ms-space-lg);
}

.vault-entry-row {
	display: grid;
	grid-template-columns: minmax(8rem, 1fr) 2fr auto;
	gap: var(--ms-space-sm) var(--ms-space-md);
	align-items: center;
	padding: var(--ms-space-md);
	border: 1px solid var(--ms-border);
	border-radius: var(--ms-radius-sm);
	background: var(--ms-bg-surface);
}

.vault-entry-title {
	font-weight: 600;
}

.vault-entry-secret {
	font-family: ui-monospace, monospace;
	word-break: break-all;
}

.vault-entry-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ms-space-xs);
}

.vault-empty {
	color: var(--ms-text-muted);
	font-style: italic;
}

.vault-repair-block {
	margin-top: var(--ms-space-xl);
	padding: var(--ms-space-md);
	border: 1px dashed var(--ms-border-strong);
	border-radius: var(--ms-radius-md);
}

.vault-repair-note,
.vault-hint,
.vault-share-meta,
.vault-share-hint {
	font-size: 0.95rem;
	color: var(--ms-text-muted);
}

.vault-share-meta--muted {
	color: var(--ms-text-muted);
	opacity: 0.85;
}

.vault-share-secret {
	margin: var(--ms-space-xs) 0 0;
	padding: var(--ms-space-md);
	background: var(--ms-sage-soft);
	border: 1px solid var(--ms-sage);
	border-radius: var(--ms-radius-sm);
	white-space: pre-wrap;
	word-break: break-word;
}

.vault-modal {
	position: fixed;
	inset: 0;
	background: rgba(44, 36, 32, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1000;
}

.vault-modal[hidden] {
	display: none !important;
}

.vault-modal__panel {
	background: var(--ms-bg-elevated);
	color: var(--ms-text-primary);
	padding: var(--ms-space-lg);
	border-radius: var(--ms-radius-md);
	max-width: 28rem;
	width: 92%;
	box-shadow: var(--ms-shadow-md);
	border: 1px solid var(--ms-border);
}

.vault-share-ttl {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--ms-space-sm);
}

.message-item--vault-share {
	border-left: 3px solid var(--ms-sage);
	padding-left: var(--ms-space-md);
}

.vault-badge {
	display: inline-block;
	margin-left: var(--ms-space-xs);
	padding: 0.1rem 0.45rem;
	font-size: 0.75rem;
	font-weight: 600;
	background: var(--ms-sage-soft);
	color: var(--ms-sage);
	border-radius: var(--ms-radius-sm);
}

.vault-legal-notice {
	padding: var(--ms-space-md);
	margin: var(--ms-space-md) 0;
	background: var(--ms-bg-muted);
	border-left: 3px solid var(--ms-border-strong);
	font-size: 0.95rem;
}

.vault-revoke-form {
	margin: var(--ms-space-xs) 0 0;
}

/* Listes profil (cases à cocher) */
.profile-check-list {
	list-style: none;
	padding: 0;
	margin: var(--ms-space-sm) 0;
	text-align: start;
}

.profile-check-list li {
	margin-bottom: var(--ms-space-xs);
}
