@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap');

.to-hd {
	--to-green-900: #064e3b;
	--to-green-800: #065f46;
	--to-green-700: #047857;
	--to-green-600: #059669;
	--to-green-50: #ecfdf5;
	--to-stone-900: #1c1917;
	--to-stone-600: #57534e;
	--to-stone-400: #a8a29e;
	--to-stone-200: #e7e5e4;
	--to-stone-100: #f5f5f4;
	--to-stone-50: #fafaf9;
	--to-amber-50: #fffbeb;
	--to-amber-200: #fde68a;
	--to-amber-800: #92400e;
	--to-red-50: #fef2f2;
	--to-red-700: #b91c1c;

	max-width: 1100px;
	margin: 0;
	padding: 24px 16px 64px;
	color: var(--to-stone-900);
	background: var(--to-stone-50);
	font-family: 'Inter', -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* .to-hd-reviews n'a plus besoin d'override : .to-hd n'est plus centré
   par défaut (voir plus haut) et partage déjà le même max-width. */

.to-hd h1, .to-hd h2 {
	font-family: 'Fraunces', Georgia, "Times New Roman", serif;
	font-weight: 600;
	margin: 0 0 4px;
}
.to-hd-title { font-size: 26px; margin-bottom: 20px; }

.to-hd-card {
	background: #fff;
	border: 1px solid var(--to-stone-200);
	border-radius: 18px;
	padding: 26px 28px;
	margin-bottom: 20px;
	box-shadow: 0 1px 2px rgba(28, 25, 23, 0.03);
	transition: box-shadow .15s ease;
}
.to-hd-card:hover { box-shadow: 0 4px 16px rgba(28, 25, 23, 0.06); }

.to-hd-card h2 {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 18px;
	color: var(--to-green-800);
	margin-bottom: 6px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--to-stone-100);
	margin-left: -28px;
	margin-right: -28px;
	padding-left: 28px;
	padding-right: 28px;
}
.to-hd-icon { flex: 0 0 auto; color: var(--to-green-600); }

.to-hd-count-pill {
	margin-left: auto;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	background: var(--to-green-50);
	color: var(--to-green-800);
	padding: 2px 9px;
	border-radius: 999px;
}

.to-hd-help { font-size: 13px; color: var(--to-stone-600); margin: 8px 0 16px; line-height: 1.5; }

.to-hd-listing-switcher {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--to-stone-200);
}
.to-hd-listing-tab {
	font-size: 13px;
	font-weight: 600;
	color: var(--to-stone-600);
	background: var(--to-stone-100);
	padding: 8px 16px;
	border-radius: 999px;
	text-decoration: none;
}
.to-hd-listing-tab.is-active { background: var(--to-green-800); color: #fff; }
.to-hd-listing-tab--add { background: #fff; color: var(--to-green-700); border: 1.5px dashed var(--to-green-600); }
.to-hd-new-listing-link, .to-hd-back-link { font-size: 13px; margin: 0 0 16px; }
.to-hd-new-listing-link a, .to-hd-back-link a { color: var(--to-green-700); font-weight: 600; text-decoration: none; }

.to-hd-status-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; }
.to-hd-badge {
	font-size: 12px;
	font-weight: 600;
	padding: 5px 13px;
	border-radius: 999px;
	background: var(--to-stone-200);
	color: var(--to-stone-600);
}
.to-hd-badge--published { background: var(--to-green-50); color: var(--to-green-700); }
.to-hd-badge--pending_verification {
	background: var(--to-red-50); color: var(--to-red-700);
	animation: to-hd-badge-pulse 1.8s ease-in-out infinite;
}
@keyframes to-hd-badge-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(185,28,28,.35); }
	50%      { box-shadow: 0 0 0 5px rgba(185,28,28,0); }
}
.to-hd-confirm-pulse {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: #fff;
	background: var(--to-red-600, #dc2626);
	padding: 4px 10px;
	border-radius: 999px;
	text-decoration: none;
	animation: to-hd-badge-pulse 1.8s ease-in-out infinite;
}
.to-hd-confirm-pulse:hover { background: var(--to-red-700, #b91c1c); color: #fff; }
.to-hd-badge--pending_review { background: var(--to-amber-50); color: var(--to-amber-800); }
.to-hd-badge--suspended { background: #fff7ed; color: #9a3412; }
.to-hd-badge--rejected { background: var(--to-red-50); color: var(--to-red-700); }
.to-hd-badge--archived { background: var(--to-stone-100); color: var(--to-stone-400); }
.to-hd-badge--plan { background: #fff; border: 1px solid var(--to-stone-200); }
.to-hd-upsell { font-size: 12px; color: var(--to-stone-400); }
.to-hd-save-reminder {
	display: flex; align-items: center; gap: 8px;
	background: #fffbeb; border: 1px solid #fde68a; color: #92400e;
	border-radius: 10px; padding: 12px 16px; font-size: 13.5px; margin: 0 0 20px;
}
.to-hd-save-reminder svg { flex-shrink: 0; color: #b45309; }

.to-hd-field { display: block; font-size: 14px; font-weight: 700; color: var(--to-stone-800, #292524); margin-bottom: 16px; }
.to-hd-field[hidden] { display: none; }
.to-hd-grid-2 label, .to-hd-grid-3 label, .to-hd-grid-4 label {
	font-size: 14px; font-weight: 700; color: var(--to-stone-800, #292524); display: block;
}
.to-hd-form input[type="text"],
.to-hd-form input[type="url"],
.to-hd-form input[type="number"],
.to-hd-form input[type="date"],
.to-hd-form select,
.to-hd-form textarea {
	width: 100%;
	margin-top: 6px;
	padding: 10px 12px;
	border: 1px solid var(--to-stone-200);
	border-radius: 10px;
	font-size: 14px;
	font-family: inherit;
	font-weight: 400;
	color: var(--to-stone-900);
	box-sizing: border-box;
	background: var(--to-stone-50);
	transition: border-color .15s ease, background .15s ease;
}
.to-hd-form input:focus,
.to-hd-form select:focus,
.to-hd-form textarea:focus {
	outline: none;
	border-color: var(--to-green-600);
	background: #fff;
}

.to-hd-grid-2, .to-hd-grid-3, .to-hd-grid-4 {
	display: grid;
	gap: 16px;
	margin-bottom: 16px;
}
.to-hd-grid-2 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.to-hd-grid-3 { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.to-hd-grid-4 { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }

.to-hd-checkbox { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--to-stone-600); }
.to-hd-checkbox input { width: auto; margin: 0; }

.to-hd-amenities {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 12px 16px;
}

/* ---- Photos ---- */
.to-hd-photo-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 12px;
}
.to-hd-photo-tile {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
	background: var(--to-stone-100);
	border: 2px solid transparent;
}
.to-hd-photo-tile.is-cover { border-color: var(--to-green-600); }
.to-hd-photo-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.to-hd-cover-tag {
	position: absolute;
	top: 8px;
	left: 8px;
	background: var(--to-green-800);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	padding: 3px 9px;
	border-radius: 999px;
	letter-spacing: .02em;
}
.to-hd-photo-actions {
	position: absolute;
	inset: auto 0 0 0;
	display: flex;
	justify-content: center;
	gap: 4px;
	padding: 6px;
	background: linear-gradient(to top, rgba(0,0,0,.6), transparent);
	opacity: 0;
	transition: opacity .15s ease;
}
.to-hd-photo-tile:hover .to-hd-photo-actions,
.to-hd-photo-tile:focus-within .to-hd-photo-actions { opacity: 1; }
.to-hd-photo-btn {
	width: 26px;
	height: 26px;
	border-radius: 999px;
	border: none;
	background: rgba(255,255,255,.92);
	color: var(--to-stone-900);
	font-size: 13px;
	cursor: pointer;
	line-height: 1;
}
.to-hd-photo-btn:hover { background: #fff; }
.to-hd-photo-btn--danger { color: var(--to-red-700); }
.to-hd-photo-add {
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	border: 2px dashed var(--to-stone-200);
	background: var(--to-stone-50);
	color: var(--to-green-700);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	font-size: 12.5px;
	font-weight: 600;
	cursor: pointer;
}
.to-hd-photo-add:hover { border-color: var(--to-green-600); background: var(--to-green-50); }
.to-hd-photo-add-icon { font-size: 22px; line-height: 1; }
.to-hd-photo-status { font-size: 12.5px; color: var(--to-green-700); min-height: 16px; margin: 10px 0 0; }
.to-hd-photo-status.is-error { color: var(--to-red-700); }

.to-hd-map-confirm { font-size: 13px; color: var(--to-green-700); display: flex; align-items: center; gap: 8px; margin: 4px 0 0; }
.to-hd-map-warning { font-size: 13px; color: var(--to-amber-800); background: var(--to-amber-50); padding: 10px 14px; border-radius: 10px; margin: 4px 0 0; }

.to-hd-review-avatar-preview {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--to-green-50);
	border-radius: 12px;
	padding: 10px 14px;
	margin-bottom: 16px;
	font-size: 12.5px;
	color: var(--to-green-800);
}
.to-hd-review-avatar-img { border-radius: 999px; width: 40px; height: 40px; object-fit: cover; }

.to-hd-rate-row {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 0.8fr auto;
	gap: 8px;
	margin-bottom: 8px;
	align-items: center;
}
.to-hd-rule-row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px;
	margin-bottom: 8px;
	align-items: center;
}
.to-hd-rule-input-wrap { position: relative; display: block; }
.to-hd-rule-input-wrap input { padding-right: 64px; }
.to-hd-charcount {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 11px;
	color: var(--to-stone-400);
	pointer-events: none;
}
.to-hd-charcount.is-near-limit { color: var(--to-amber-800); font-weight: 700; }

.to-hd-faq-row {
	display: grid;
	grid-template-columns: 1fr 1.4fr auto;
	gap: 8px;
	margin-bottom: 8px;
	align-items: start;
}
.to-hd-faq-row textarea { resize: vertical; }
.to-hd-remove-row {
	border: 1px solid var(--to-stone-200);
	background: #fff;
	color: var(--to-stone-600);
	border-radius: 8px;
	width: 34px;
	height: 34px;
	cursor: pointer;
	flex: 0 0 auto;
}
.to-hd-remove-row:hover { background: var(--to-red-50); color: var(--to-red-700); border-color: #fca5a5; }

/* ---- Liens OTA brandés ---- */
.to-hd-ota-choice {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 10px;
	margin-top: 4px;
}
.to-hd-ota-option {
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1.5px solid var(--to-stone-200);
	border-radius: 12px;
	padding: 10px 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--to-stone-600);
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}
.to-hd-ota-option input { width: auto; margin: 0 2px 0 0; }
.to-hd-ota-option:has(input:checked) { border-color: var(--to-green-600); background: var(--to-green-50); color: var(--to-green-900); }
.to-hd-ota-logo {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	border-radius: 7px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: Georgia, serif;
	font-weight: 700;
	font-size: 14px;
}
.to-hd-ota-option--booking .to-hd-ota-logo { background: #003580; color: #febb02; }
.to-hd-ota-option--airbnb .to-hd-ota-logo { background: #ff385c; color: #fff; }
.to-hd-ota-logo--round { border-radius: 999px; }
.to-hd-ota-option--airbnb .to-hd-ota-logo svg { width: 15px; height: 15px; fill: #fff; stroke: none; }
.to-hd-ota-option--website .to-hd-ota-logo { background: var(--to-stone-900); color: #fff; }

.to-hd-btn {
	display: inline-block;
	text-align: center;
	border-radius: 999px;
	padding: 11px 22px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	border: 1px solid transparent;
}
.to-hd-btn--primary { background: var(--to-green-800); color: #fff; }
.to-hd-btn--primary:hover { background: var(--to-green-900); color: #fff; }
.to-hd-btn:disabled, .to-hd-btn[disabled] { opacity: .45; cursor: not-allowed; pointer-events: none; }
.to-hd-btn--outline { background: #fff; color: var(--to-green-700); border-color: var(--to-green-700); }
.to-hd-btn--outline:hover { background: var(--to-green-50); }
.to-hd-btn--full { display: block; width: 100%; box-sizing: border-box; margin-top: 8px; }
.to-hd-btn--small { padding: 6px 14px; font-size: 12.5px; }

.to-hd-badge--rejected { background: #fef2f2; color: #991b1b; }

.to-hd-benefits { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; }
.to-hd-benefits li { font-size: 13px; color: var(--to-green-900); display: flex; align-items: flex-start; gap: 8px; line-height: 1.5; }
.to-hd-benefits .to-hd-icon { flex: 0 0 auto; margin-top: 2px; }
.to-hd-benefits u { text-decoration-color: var(--to-green-600); }


.to-hd-identity-card .to-hd-badge { margin-top: 4px; }
.to-hd-doc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
	margin-top: 16px;
}
.to-hd-doc-tile {
	border: 1px solid var(--to-stone-200);
	border-radius: 12px;
	padding: 16px;
	background: var(--to-stone-50);
}
.to-hd-doc-tile strong { font-size: 13.5px; display: block; margin-bottom: 6px; }
.to-hd-doc-status { font-size: 12px; color: var(--to-stone-600); margin: 0 0 10px; }
.to-hd-doc-status--missing { color: var(--to-amber-800); }
.to-hd-doc-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.to-hd-doc-form input[type="file"] { flex: 1 1 160px; font-size: 12px; margin: 0; padding: 6px; }
.to-hd-doc-history { margin-top: 10px; font-size: 12px; color: var(--to-stone-600); }
.to-hd-doc-history summary { cursor: pointer; font-weight: 600; }
.to-hd-doc-history ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }

.to-hd-submit-bar {
	position: sticky;
	bottom: 16px;
	margin-top: 8px;
	margin-bottom: 28px;
	z-index: 5;
}
.to-hd-submit-bar .to-hd-btn {
	box-shadow: 0 8px 24px rgba(6, 95, 70, 0.28);
	font-size: 15px;
	padding: 14px 22px;
}

.to-hd-feedback { padding: 12px 16px; border-radius: 10px; font-size: 14px; margin-bottom: 18px; line-height: 1.5; }
.to-hd-feedback--success { background: var(--to-green-50); color: var(--to-green-800); }
.to-hd-feedback--error { background: var(--to-red-50); color: #991b1b; }
/* Cas "propriété non confirmée" (22/08, demande de Vincent) — fond plus
   rouge et effet pulse pour marquer clairement l'échec (pas appliqué
   aux autres messages d'erreur du formulaire, seulement à celui-ci via
   .to-hd-feedback--urgent, ajouté en plus de .to-hd-feedback--error). */
.to-hd-feedback--urgent {
	background: #fee2e2;
	border: 1.5px solid #fca5a5;
	animation: to-hd-feedback-pulse 1.8s ease-in-out infinite;
}
@keyframes to-hd-feedback-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(153,27,27,.35); }
	50%      { box-shadow: 0 0 0 8px rgba(153,27,27,0); }
}
.to-hd-feedback--warning { background: #fff7ed; color: #9a3412; }

.to-hd-login { text-align: center; padding: 32px 0; color: var(--to-stone-600); }

.to-hd-invite {
	background: var(--to-green-50);
	border-color: #a7f3d0;
}
.to-hd-invite h2, .to-hd-invite p { color: var(--to-green-900); }

@media (max-width: 640px) {
	.to-hd { padding: 16px 12px 48px; }
	.to-hd-card { padding: 20px 18px; }
	.to-hd-card h2 { margin-left: -18px; margin-right: -18px; padding-left: 18px; padding-right: 18px; }
}

/* Liste "Mes annonces" (dashboard-list.php) */
.to-hd-listing-rows { display: flex; flex-direction: column; gap: 10px; }
.to-hd-listing-row {
	display: flex;
	align-items: center;
	gap: 14px;
	background: #fff;
	border: 1px solid var(--to-stone-200);
	border-radius: 12px;
	padding: 12px 16px;
}
.to-hd-listing-row-thumb {
	flex: 0 0 auto;
	width: 56px;
	height: 56px;
	border-radius: 10px;
	object-fit: cover;
	background: var(--to-stone-100);
}
.to-hd-listing-row-thumb--empty { display: inline-block; }
.to-hd-listing-row-main { flex: 1 1 auto; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.to-hd-listing-row-main strong { font-family: 'Fraunces', Georgia, serif; font-size: 14.5px; margin-right: 4px; }
.to-hd-listing-row-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.to-hd-listing-row-actions form { margin: 0; }
.to-hd-row-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 8px;
	border: 1px solid var(--to-stone-200);
	background: #fff;
	color: var(--to-stone-600);
	cursor: pointer;
	text-decoration: none;
}
.to-hd-row-icon-btn:hover { background: var(--to-stone-100); }
.to-hd-row-icon-btn--danger { color: #b91c1c; }
.to-hd-row-icon-btn--danger:hover { background: var(--to-red-50); border-color: #fca5a5; }

/* Bloc vert "sur quelle annonce" (Promos séjour) */
.to-hd-green-block {
	background: linear-gradient(135deg,#0a7355 0%,#065f46 55%,#043c2c 100%);
	border-radius: 14px;
	padding: 18px 22px;
	margin: 4px 0 22px;
	color: #fff;
}
.to-hd-green-block strong { display: block; font-family: 'Fraunces', Georgia, serif; font-size: 15px; margin-bottom: 10px; }
.to-hd-green-block p { margin: 0; font-size: 14px; color: #d1fae5; }
.to-hd-green-block-switcher { display: flex; flex-wrap: wrap; gap: 8px; }
.to-hd-green-block-tab {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgba(255,255,255,0.12);
	color: #fff;
	font-size: 12.5px;
	font-weight: 600;
	text-decoration: none;
}
.to-hd-green-block-tab.is-active { background: #fff; color: #065f46; }
.to-hd-green-block-tab:not(.is-active):hover { background: rgba(255,255,255,0.22); }

/* Bouton "+ Ajouter une annonce" en tête de page (vert, effet pulse) */
.to-hd-add-listing-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #065f46;
	color: #fff;
	border-radius: 999px;
	padding: 11px 22px;
	font-size: 13.5px;
	font-weight: 600;
	text-decoration: none;
	margin-bottom: 20px;
	animation: to-hd-add-listing-pulse 1.8s ease-in-out infinite;
}
.to-hd-add-listing-btn:hover { background: #064e3b; color: #fff; }
@keyframes to-hd-add-listing-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(6,95,70,0.45); }
	50% { box-shadow: 0 0 0 9px rgba(6,95,70,0); }
}

/* Chenillard "en cours…" (actions sur les photos) */
.to-hd-photo-status { display: flex; align-items: center; gap: 8px; min-height: 18px; }
.to-hd-spinner {
	display: inline-block;
	width: 14px;
	height: 14px;
	border: 2px solid var(--to-green-200, #a7e8c4);
	border-top-color: var(--to-green-700, #047857);
	border-radius: 999px;
	animation: to-hd-spin .7s linear infinite;
}
.to-hd-spinner[hidden] { display: none; }
@keyframes to-hd-spin { to { transform: rotate(360deg); } }
.to-hd-photo-grid.is-loading { opacity: .6; pointer-events: none; }

/* Lien "Voir votre annonce" à côté du message de succès */
.to-hd-view-listing-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-left: 10px;
	font-weight: 600;
	text-decoration: none;
	color: inherit;
}
.to-hd-view-listing-link:hover { text-decoration: underline; }
.to-hd-view-listing-link svg { width: 15px; height: 15px; }

/* ------------------------------------------------------------------
 * Avis clients (Options > Avis clients)
 * ------------------------------------------------------------------ */
.to-hd-reviews-listing-switch { margin: 0 0 10px; display: flex; align-items: center; gap: 10px; }
.to-hd-reviews-listing-switch label {
	font-size: 13px;
	font-weight: 600;
	color: var(--to-stone-600);
	white-space: nowrap;
}
.to-hd-reviews-listing-switch select {
	padding: 9px 12px;
	border: 1px solid var(--to-stone-200);
	border-radius: 8px;
	font-size: 14px;
	background: #fff;
	max-width: 340px;
}

.to-hd-reviews-existing-list {
	background: var(--to-amber-50);
	color: var(--to-amber-800);
	border-radius: 10px;
	padding: 10px 14px;
	font-size: 13px;
	line-height: 1.6;
	margin: 10px 0 0;
}

.to-hd-reviews-intro { display: block; }
.to-hd-reviews-intro-img {
	display: block;
	width: 75%;
	height: auto;
	border-radius: 12px;
	margin-bottom: 16px;
}
.to-hd-reviews-intro-text h2 { font-size: 19px; margin-bottom: 10px; }
.to-hd-reviews-intro-text p { font-size: 14px; color: var(--to-stone-600); line-height: 1.6; margin: 0 0 10px; }
.to-hd-reviews-intro-text p:last-child { margin-bottom: 0; }

.to-hd-reviews-emma { text-align: left; }
.to-hd-reviews-emma-img {
	display: block;
	margin: 12px 0 16px;
	width: 75%;
	height: auto;
	border-radius: 12px;
}
.to-hd-reviews-emma-caption {
	font-size: 14px;
	color: var(--to-stone-600);
	line-height: 1.6;
	max-width: 640px;
	margin: 0 0 14px;
}
.to-hd-reviews-free-badge {
	display: inline-block;
	background: var(--to-green-50);
	color: var(--to-green-800);
	font-weight: 600;
	font-size: 13px;
	padding: 7px 16px;
	border-radius: 999px;
	margin: 0;
}

.to-hd-reviews-step {
	display: flex;
	gap: 18px;
	padding: 18px 0;
	border-top: 1px solid var(--to-stone-100);
}
.to-hd-reviews-step:first-of-type { border-top: none; padding-top: 6px; }
.to-hd-reviews-step-num {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--to-green-800);
	color: #fff;
	font-weight: 700;
	font-family: 'Fraunces', Georgia, serif;
	display: flex;
	align-items: center;
	justify-content: center;
}
.to-hd-reviews-step-body { flex: 1; min-width: 0; }
.to-hd-reviews-step-body h3 { font-size: 15.5px; margin: 0 0 6px; font-family: 'Inter', sans-serif; font-weight: 600; }

.to-hd-reviews-form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-top: 10px;
}
.to-hd-reviews-form input[type="text"],
.to-hd-reviews-form input[type="email"] {
	padding: 9px 12px;
	border: 1px solid var(--to-stone-200);
	border-radius: 8px;
	font-size: 13.5px;
	flex: 1 1 160px;
}
.to-hd-reviews-form input[type="file"] { font-size: 13px; }

.to-hd-reviews-manual-details { margin-top: 14px; }
.to-hd-reviews-manual-details summary {
	cursor: pointer;
	font-weight: 600;
	font-size: 13.5px;
	color: var(--to-green-700);
}
.to-hd-reviews-manual-details .to-hd-help { margin: 8px 0 4px; }

.to-hd-reviews-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.to-hd-reviews-table th, .to-hd-reviews-table td {
	text-align: left;
	padding: 10px 8px;
	border-bottom: 1px solid var(--to-stone-100);
}
.to-hd-reviews-table th { color: var(--to-stone-400); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .02em; }

.to-hd-badge--pending { background: var(--to-stone-100); color: var(--to-stone-600); }
.to-hd-badge--invited { background: var(--to-amber-50); color: var(--to-amber-800); }
.to-hd-badge--relance_1 { background: var(--to-amber-50); color: var(--to-amber-800); }
.to-hd-badge--relance_2 { background: #fff7ed; color: #9a3412; }
.to-hd-badge--completed { background: var(--to-green-50); color: var(--to-green-800); }

/* Résumé de note en tête de page (si des avis existent déjà) */
.to-hd-reviews-summary {
	display: flex;
	align-items: center;
	gap: 18px;
}
.to-hd-reviews-summary-thumb {
	width: 64px;
	height: 64px;
	border-radius: 12px;
	object-fit: cover;
	flex-shrink: 0;
	background: var(--to-stone-100);
}
.to-hd-reviews-summary-body { flex: 1 1 auto; min-width: 0; }
.to-hd-reviews-summary-body strong { display: block; font-size: 16px; }
.to-hd-reviews-summary-body p { margin: 4px 0 0; font-size: 13px; color: var(--to-stone-400); }
.to-hd-reviews-summary-score {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}
.to-hd-reviews-summary-circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--to-green-800);
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	font-family: 'Fraunces', Georgia, serif;
}
.to-hd-reviews-summary-stars { display: flex; gap: 2px; }
.to-hd-star { font-size: 18px; color: var(--to-stone-200); }
.to-hd-star.is-filled { color: #f59e0b; }

@media (max-width: 640px) {
	.to-hd-reviews-summary { flex-direction: column; align-items: flex-start; }
}

/* ------------------------------------------------------------------
 * Verrouillage par palier (Free/Starter/Premium/Premium+)
 * ------------------------------------------------------------------ */
.to-hd-required { color: var(--to-red-700, #b91c1c); }

.to-hd-admin-ratings-card { border-style: dashed; border-color: var(--to-stone-200); }

.to-hd-card--locked { position: relative; overflow: hidden; }

.to-hd-fieldset { border: none; margin: 0; padding: 0; min-width: 0; }
.to-hd-card--locked .to-hd-fieldset {
	opacity: .35;
	filter: grayscale(60%);
	pointer-events: none;
	user-select: none;
}

.to-hd-lock-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	text-align: center;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(1.5px);
	padding: 20px;
}
.to-hd-lock-overlay p {
	margin: 0;
	font-size: 13.5px;
	color: var(--to-stone-600);
	background: #fff;
	border: 1px solid var(--to-stone-200);
	border-radius: 999px;
	padding: 7px 18px;
	box-shadow: 0 2px 8px rgba(28,25,23,0.06);
}
.to-hd-lock-overlay p strong { color: var(--to-green-800); }

/* Ambiance reste toujours au-dessus du bandeau de verrouillage de la
   carte "Informations générales" — jamais recouverte ni bloquée, même
   quand le reste de la carte est verrouillé selon le palier. */
.to-hd-field--above-lock { position: relative; z-index: 3; }

.to-hd-upsell a { color: inherit; font-weight: 700; text-decoration: underline; }

/* ------------------------------------------------------------------
 * Bloc "Gérer Emma" (Premium+)
 * ------------------------------------------------------------------ */
.to-hd-emma-card {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: 12px;
	background: linear-gradient(120deg, var(--to-green-900) 0%, var(--to-green-800) 100%);
	color: #fff;
	border: none;
}
.to-hd-emma-badge {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255,255,255,0.15);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fde68a;
}
.to-hd-emma-body { flex: 1 1 auto; min-width: 0; }
.to-hd-emma-body h2 { margin: 0 0 4px; color: #fff; font-size: 17px; }
.to-hd-emma-body p { margin: 0; font-size: 13px; color: #d7ede4; }
.to-hd-emma-card .to-hd-btn--primary { background: #fff; color: var(--to-green-800); flex-shrink: 0; }
.to-hd-emma-card .to-hd-btn--primary:hover { background: #f5f5f4; }

@media (max-width: 640px) {
	.to-hd-emma-card { flex-direction: column; text-align: center; }
}

/* ------------------------------------------------------------------
 * Contrôle de propriété (annonces importées Google Maps)
 * ------------------------------------------------------------------ */
.to-hd-ownership-card { border: 1px solid var(--to-amber-200); background: var(--to-amber-50); }
.to-hd-ownership-card h2 { color: #92400e; border-bottom-color: #fde68a; }
.to-hd-ownership-card .to-hd-help { color: #78350f; }

.to-hd-ownership-notice {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--to-green-50);
	border: 1px solid #a7f3d0;
	color: var(--to-green-900);
	font-size: 13px;
	border-radius: 10px;
	padding: 10px 16px;
	margin: 0 0 20px;
}
.to-hd-ownership-notice svg { flex-shrink: 0; }

.to-hd-ownership-steps { display: flex; flex-direction: column; gap: 0; margin-top: 16px; }
.to-hd-ownership-step {
	display: flex;
	gap: 14px;
	padding: 14px 0;
	border-bottom: 1px solid #fde68a;
}
.to-hd-ownership-step:last-child { border-bottom: none; padding-bottom: 0; }
.to-hd-ownership-step-num {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #fde68a;
	color: #92400e;
	font-weight: 700;
	font-size: 13px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.to-hd-ownership-step.is-done .to-hd-ownership-step-num { background: var(--to-green-600, #059669); color: #fff; }
.to-hd-ownership-step.is-active .to-hd-ownership-step-num { background: #92400e; color: #fff; }
.to-hd-ownership-step > div > strong { display: block; font-size: 14px; color: #1c1917; margin-bottom: 3px; }
.to-hd-ownership-step p { margin: 0 0 8px; font-size: 13px; color: #57534e; line-height: 1.55; }
.to-hd-ownership-step.is-done p { margin-bottom: 0; }

/* Choix de méthode de vérification (18/08) — 2 cartes côte à côte,
   vert pour "pas de site" (le chemin le plus simple), rouge pastel pour
   "j'ai déjà un site" (nécessite une manip un peu plus longue). */
.to-hd-verif-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.to-hd-verif-choice-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px;
	border-radius: 12px;
	text-decoration: none;
	text-align: left;
	font-family: inherit;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease;
}
.to-hd-verif-choice-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px -12px rgba(0,0,0,.25); }
.to-hd-verif-choice-card.is-picked { box-shadow: 0 0 0 2px currentColor; }
.to-hd-verif-choice-card strong { font-size: 14px; color: #1c1917; }
.to-hd-verif-choice-card span { font-size: 12.5px; color: #57534e; line-height: 1.5; }
.to-hd-verif-choice-card--green { background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46; }
.to-hd-verif-choice-card--red { background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; }
.to-hd-verif-choice-cta { font-weight: 700; color: #065f46; margin-top: 4px; }
.to-hd-verif-choice-card--red .to-hd-verif-choice-cta { color: #b91c1c; }
/* (21/08) Carte "Vous avez déjà un site" n'est plus un bouton unique —
   elle contient 2 sous-choix distincts (remplacer / garder + envoyer
   justificatifs) sous forme de petits boutons, plutôt qu'une seule
   action. --static neutralise le curseur "pointeur" et le survol
   hérités de .to-hd-verif-choice-card (elle-même ne fait plus rien au
   clic). */
.to-hd-verif-choice-card--static { cursor: default; }
.to-hd-verif-choice-card--static:hover { transform: none; box-shadow: none; }
.to-hd-verif-choice-quote { font-style: italic; display: block; margin: 2px 0; }
.to-hd-verif-subchoice { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.to-hd-verif-subchoice .to-hd-btn { text-align: left; }
.to-hd-verif-subchoice .to-hd-btn.is-picked { box-shadow: 0 0 0 2px currentColor; }
@media (max-width: 640px) { .to-hd-verif-choice { grid-template-columns: 1fr; } }

.to-hd-verif-method-radios { display: flex; flex-direction: column; gap: 8px; margin: 10px 0 14px; }
.to-hd-verif-method-radios label { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: #44403c; }
.to-hd-verif-certify {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 12px 0 14px;
	padding: 10px 12px;
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-radius: 8px;
	font-size: 13px;
	color: #78350f;
	line-height: 1.5;
}
/* Bug réel (21/08) : l'attribut HTML "hidden" (posé par render_step())
   n'a pas d'effet ici — une règle CSS qui fixe "display" sur le même
   sélecteur écrase toujours la valeur "display:none" implicite de
   [hidden] côté navigateur, quelle que soit la spécificité. Résultat :
   la case à cocher restait visible dès le chargement de la page, avant
   même d'avoir choisi une méthode (site/service) — l'hôte pouvait la
   cocher sans que la méthode soit enregistrée, et "Je confirme" restait
   grisé sans qu'il comprenne pourquoi. */
.to-hd-verif-certify[hidden] { display: none; }
.to-hd-verif-certify input { margin-top: 2px; flex-shrink: 0; }

.to-hd-ownership-steps--guide { margin-top: 10px; }
/* Liste à coches vertes de l'étape 3 "Créez votre produit" (19/08) —
   remplace les puces classiques, espacée pour occuper naturellement la
   hauteur de la capture d'écran à droite. */
.to-hd-guide-checklist { list-style: none; margin: 10px 0 0; padding: 0; }
.to-hd-guide-checklist li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14.5px;
	color: #57534e;
	line-height: 1.5;
	margin-bottom: 16px;
}
.to-hd-guide-checklist li:last-child { margin-bottom: 0; }
/* Le texte de chaque ligne DOIT être un seul bloc, pas des nœuds de
   texte + <strong> livrés nus comme enfants directs du <li> flex —
   sinon chaque segment devient son propre item flex et casse sur sa
   propre ligne (piège flexbox classique, déjà rencontré le 19/08). */
.to-hd-guide-checklist li > span:last-child { flex: 1 1 auto; min-width: 0; }
.to-hd-guide-check {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--to-green-600, #059669);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	margin-top: 1px;
}
.to-hd-guide-quote {
	margin: 18px 0 0;
	padding: 12px 16px;
	border-left: 3px solid var(--to-green-600, #059669);
	background: #f9fafb;
	font-size: 13.5px;
	font-style: italic;
	color: #57534e;
	line-height: 1.6;
}

/* Captures d'écran du guide "Créer un produit" (19/08) */
.to-hd-guide-screenshot { display: block; width: 100%; max-width: 1000px; height: auto; margin-top: 10px; border-radius: 10px; border: 1px solid #e7e5e4; }
.to-hd-guide-step3-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 24px; align-items: start; }
.to-hd-guide-step3-text > strong { display: block; font-size: 17px; color: #1c1917; margin-bottom: 6px; }
.to-hd-guide-step3-text p { margin: 0 0 8px; font-size: 14.5px; color: #57534e; line-height: 1.6; }
.to-hd-guide-step3-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
	border: 1px solid #e7e5e4;
}
@media (max-width: 720px) { .to-hd-guide-step3-grid { grid-template-columns: 1fr; } }

/* Guide "Comment trouver ce lien ?" (import fiche Google Maps) — même
   langage visuel que .to-hd-ownership-step (cercles numérotés), classes
   dédiées pour ne pas dépendre du contexte "vérification de propriété". */
.to-hd-find-url-steps { display: flex; flex-direction: column; gap: 0; margin: 10px 0 20px; }
.to-hd-find-url-step {
	display: flex;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--to-stone-200, #e7e5e4);
}
.to-hd-find-url-step:last-child { border-bottom: none; padding-bottom: 0; }
.to-hd-find-url-step-num {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--to-green-50, #ecfdf5);
	color: var(--to-green-700, #047857);
	font-weight: 700;
	font-size: 12.5px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.to-hd-find-url-step strong { display: block; font-size: 13.5px; color: #1c1917; margin-bottom: 3px; }
.to-hd-find-url-step p { margin: 0; font-size: 13px; color: #57534e; line-height: 1.55; }
.to-hd-find-url-step code { background: #f5f5f4; border-radius: 4px; padding: 1px 5px; font-size: 12px; }

.to-hd-ownership-url { display: flex; align-items: flex-start; gap: 8px; max-width: 100%; margin: 4px 0 2px; }
.to-hd-ownership-url input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 8px 12px;
	border: 1px solid #fde68a;
	border-radius: 8px;
	font-size: 12.5px;
	color: #44403c;
	background: #fff;
}
.to-hd-ownership-url textarea {
	flex: 1 1 auto;
	min-width: 0;
	padding: 8px 12px;
	border: 1px solid #fde68a;
	border-radius: 8px;
	font-size: 12.5px;
	font-family: inherit;
	color: #44403c;
	background: #fff;
	resize: vertical;
	line-height: 1.5;
}
.to-hd-ownership-url .to-hd-btn { flex-shrink: 0; }
/* Bloc "description prête à coller" (21/08) — sort de la grille étroite
   .to-hd-guide-step3-grid (3fr sur 5) pour occuper toute la largeur de
   la carte, sinon l'URL est coupée sur 2 lignes faute de place. */
.to-hd-guide-prefilled { grid-column: 1 / -1; margin-top: 14px; }

/* Pages de confirmation premium (22/08) — après validation de propriété
   (méthode "site", instantanée) ou déclaration de justificatifs (en
   attente de vérification admin). Même habillage, icône et couleur
   d'accent différentes selon le cas. */
/* Pages de confirmation premium (22/08) — après validation de propriété
   (méthode "site", instantanée) ou déclaration de justificatifs (en
   attente de vérification admin). Redesign (22/08, "pas premium, bloc
   bizarre au milieu de page") : bande de fond pleine largeur teintée
   selon le cas, carte flottante avec ombre marquée plutôt qu'un bloc
   blanc plat sans contexte. Mêmes composants, couleur d'accent
   différente entre succès (vert) et attente (ambre). */
.to-hd-confirmation-wrap {
	padding: 56px 24px;
	display: flex;
	justify-content: center;
	border-radius: 20px;
	margin-bottom: 20px;
}
.to-hd-confirmation-wrap--success { background: linear-gradient(180deg, #ecfdf5 0%, #f7faf8 100%); }
.to-hd-confirmation-wrap--pending { background: linear-gradient(180deg, #fffbeb 0%, #faf8f5 100%); }
.to-hd-confirmation-card {
	background: #fff;
	max-width: 520px;
	width: 100%;
	text-align: center;
	padding: 44px 40px;
	border-radius: 20px;
	box-shadow: 0 20px 50px -20px rgba(28,25,23,0.25);
}
.to-hd-confirmation-icon {
	width: 68px;
	height: 68px;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 20px;
	box-shadow: 0 8px 20px -6px rgba(0,0,0,0.25);
}
.to-hd-confirmation-wrap--success .to-hd-confirmation-icon { background: linear-gradient(145deg, #059669, #047857); }
.to-hd-confirmation-wrap--pending .to-hd-confirmation-icon { background: linear-gradient(145deg, #d97706, #b45309); }
.to-hd-confirmation-title {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 26px;
	color: #1c1917;
	margin: 0 0 14px;
}
.to-hd-confirmation-intro { font-size: 15px; color: #44403c; line-height: 1.6; margin: 0 0 8px; }
.to-hd-confirmation-detail { font-size: 13.5px; color: #78716c; line-height: 1.6; margin: 0 0 4px; }
.to-hd-confirmation-warning { text-align: left; margin: 20px 0; }
.to-hd-confirmation-cta { margin-top: 18px; }
@media (max-width: 640px) {
	.to-hd-confirmation-wrap { padding: 40px 16px; }
	.to-hd-confirmation-card { padding: 32px 24px; }
}

.to-hd-checkbox-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	color: #292524;
	margin: 8px 0;
	cursor: pointer;
}
.to-hd-checkbox-label input[type="checkbox"] { width: auto; margin: 0; }
#to-classement-afficher-wrap { margin-left: 22px; padding-left: 14px; border-left: 2px solid #f0efec; }
#to-classement-details { margin: 8px 0 0; }
.to-hd-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 12px; }
@media (max-width: 560px) {
	.to-hd-form-row { grid-template-columns: 1fr; }
}

/* Bloc "obligatoire manquant" (22/08, demande de Vincent) — même esprit
   que .to-account-required-block.is-missing sur la page Compte : fond
   et bordure rouges tant que le rapport de classement, obligatoire une
   fois l'affichage activé, n'a pas été envoyé. */
.to-hd-required-block { margin-top: 8px; }
.to-hd-required-block.is-missing {
	border: 1.5px solid #fca5a5;
	background: #fef2f2;
	border-radius: 10px;
	padding: 14px 16px;
}

/* Tarifs saisonniers : une carte par saison, six champs explicitement étiquetés. */
.to-hd-rate-row--packages { position:relative; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 16px; padding:20px 46px 20px 20px; border:1px solid #dce8e0; border-radius:14px; background:#f8fbf9; margin-bottom:14px; align-items:end; }
.to-hd-rate-row--packages .to-hd-field { display:flex; flex-direction:column; gap:7px; min-width:0; font-size:12px; font-weight:600; color:#395449; }
.to-hd-rate-row--packages input { width:100%; min-width:0; box-sizing:border-box; }
.to-hd-rate-row--packages .to-hd-remove-row { position:absolute; right:9px; top:16px; }
.to-hd-admin-ratings-card { border-color:#d9e6df; box-shadow:0 4px 18px rgba(6,78,59,.04); }
.to-hd-admin-ratings-card .to-hd-ratings-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:20px 0; }
.to-hd-admin-ratings-card .to-hd-rating-field { display:flex; flex-direction:column; gap:10px; padding:16px; background:#f5f9f6; border:1px solid #e0e9e3; border-radius:12px; font-size:13px; font-weight:600; color:#234c3b; }
.to-hd-rating-control { display:flex; align-items:center; gap:10px; }
.to-hd-admin-ratings-card .to-hd-rating-control input { display:block; min-width:0; width:100%; height:46px; padding:10px 12px; border:1px solid #cbdcd1; border-radius:9px; background:#fff; color:#064e3b; font:600 17px/1.4 Inter,Arial,sans-serif; box-sizing:border-box; }
.to-hd-admin-ratings-card .to-hd-rating-control input:focus { border-color:#08745d; outline:3px solid rgba(8,116,93,.12); }
.to-hd-rating-max { white-space:nowrap; font-size:14px; font-weight:500; color:#778b7e; }
@media(max-width:760px) { .to-hd-rate-row--packages { grid-template-columns:repeat(2,minmax(0,1fr)); } .to-hd-admin-ratings-card .to-hd-ratings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:440px) { .to-hd-rate-row--packages { grid-template-columns:1fr; padding-left:16px; } .to-hd-admin-ratings-card .to-hd-ratings-grid { grid-template-columns:1fr; } }

/* Claim dossiers: shared host/admin cards, protected document previews. */
.to-dossier, .to-dossier-admin, .to-claim-entry, .to-claim-search { min-width:0; }
.to-dossier-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:18px 0; }
.to-dossier-heading,.to-dossier-piece header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.to-dossier-heading h2,.to-dossier-heading h3,.to-dossier-piece h3 { margin:0; color:#17382b; }
.to-dossier-piece { min-width:0; padding:22px; border:1px solid #e3e9e3; border-radius:16px; background:#fff; box-shadow:0 4px 18px rgba(23,56,43,.035); }
.to-dossier-piece h3 { font-size:17px; line-height:1.4; }
.to-dossier-piece label { display:block; font-size:13px; color:#57534e; margin:14px 0; }
.to-dossier-piece input[type=file] { display:block; max-width:100%; margin:10px 0; }
.to-dossier-piece textarea,.to-claim-search-form input,.to-claim-search-form select { box-sizing:border-box; width:100%; min-width:0; padding:12px 14px; border:1px solid #d9e2da; border-radius:10px; background:#fff; font:inherit; color:#17382b; }
.to-dossier-piece textarea:focus,.to-claim-search-form input:focus { outline:2px solid #93c5ae; outline-offset:2px; }
.to-dossier-piece .to-doc-thumb { display:flex; width:140px; height:105px; margin:12px 0; overflow:hidden; align-items:center; justify-content:center; border-radius:12px; background:#f2f6f3; }
.to-dossier-piece .to-doc-thumb img { width:100%; height:100%; object-fit:contain; }
.to-dossier-piece .to-doc-thumb--pdf { gap:10px; color:#065f46; text-decoration:none; }
.to-dossier-piece form { margin-top:16px; }
.to-dossier-piece .to-hd-btn,.to-dossier-piece .to-admin-btn { margin:4px 0; }
.to-dossier-status { display:inline-flex; align-items:center; padding:6px 11px; border-radius:999px; font-size:12px; font-weight:650; line-height:1.4; background:#f2f3f2; color:#57534e; white-space:normal; }
.to-dossier-status--approved,.to-dossier-status--validated { background:#e8f7ee; color:#065f46; }
.to-dossier-status--pending,.to-dossier-status--ready { background:#fff4d9; color:#8c5e11; }
.to-dossier-status--rejected { background:#fff0ef; color:#ac3530; }
.to-dossier-help { margin:18px 0; padding:14px 16px; border:1px solid #e3e9e3; border-radius:12px; background:#fafcf9; }
.to-dossier-help summary { cursor:pointer; font-weight:600; color:#315b46; }
.to-dossier-help p { line-height:1.65; }
.to-claim-search-form { display:flex; align-items:end; gap:12px; flex-wrap:wrap; margin:18px 0; }
.to-claim-search-form input { flex:1 1 220px; width:auto; }
.to-claim-search-result { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:18px 0; border-top:1px solid #edf0e9; }
.to-claim-search-result p { margin:6px 0; color:#78716c; font-size:13px; }
.to-claim-listing-recap { display:flex; align-items:center; gap:16px; margin:22px 0; min-width:0; }
.to-claim-listing-recap img { width:90px; height:75px; border-radius:12px; object-fit:cover; }
.to-claim-listing-recap p { margin:6px 0 0; }
.to-dossier .to-hd-btn[disabled] { opacity:.45; cursor:not-allowed; }
.to-console-doc-blocks > .to-dossier-piece { flex:1 1 260px; }
@media(max-width:760px) { .to-dossier-grid { grid-template-columns:minmax(0,1fr); } .to-claim-search-result { align-items:flex-start; flex-direction:column; } .to-dossier-piece { padding:16px; } }
