/*
 * T-Prospect'In - feuille de style front (app de capture)
 * Direction : "business clair et dynamique".
 * Fond blanc lumineux, bleu signal (univers electronique/reseau/IoT),
 * degrade bleu->cyan sur les actions, accents diagonaux, transitions vives.
 * Outil de terrain : cibles tactiles >=48px, focus visible, mobile-first.
 *
 * Contrat : feuille unique partagee par le shortcode et l'application autonome.
 * Les differences d'integration sont portees par .tprospectin-app--embedded.
 */

/* ------------------------------------------------------------- Tokens */
.tprospectin-body,
#tprospectin-app,
.tprospectin-webcam-dialog {
	--tpi-bg: #eef3fb;
	--tpi-bg-accent: #e3ecfa;
	--tpi-surface: #ffffff;
	--tpi-surface-soft: #f5f8fd;
	--tpi-line: #dbe4f0;
	--tpi-line-strong: #c3d2e6;
	--tpi-ink: #0f1b2d;
	--tpi-ink-soft: #46566b;
	--tpi-muted: #7688a0;
	--tpi-primary: #1f6bff;
	--tpi-cyan: #16c8e6;
	--tpi-primary-tint: #e7f0ff;
	--tpi-primary-ink: #0a3ba3;
	--tpi-danger: #d93a3a;
	--tpi-danger-tint: #fdeceb;
	--tpi-ok: #1a9e63;
	--tpi-ok-tint: #e6f7ef;
	--tpi-radius: 16px;
	--tpi-radius-sm: 10px;
	--tpi-tap: 48px;
	--tpi-shadow: 0 1px 2px rgba(15,27,45,.05), 0 10px 30px -14px rgba(15,27,45,.20);
	--tpi-shadow-lift: 0 4px 8px rgba(15,27,45,.08), 0 22px 48px -20px rgba(31,107,255,.38);
	--tpi-grad: linear-gradient(120deg, var(--tpi-primary) 0%, var(--tpi-cyan) 130%);
	--tpi-display: "Space Grotesk", "Inter Tight", "Segoe UI", system-ui, sans-serif;
	--tpi-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
}

/* -------------------------------------------------------------- Reset */
#tprospectin-app,
#tprospectin-app *,
#tprospectin-app *::before,
#tprospectin-app *::after,
.tprospectin-webcam-dialog,
.tprospectin-webcam-dialog *,
.tprospectin-webcam-dialog *::before,
.tprospectin-webcam-dialog *::after {
	box-sizing: border-box;
}

.tprospectin-body {
	margin: 0;
	padding: 0;
	background: var(--tpi-bg);
	color: var(--tpi-ink);
}

#tprospectin-app {
	font-family: var(--tpi-body);
	color: var(--tpi-ink);
	background:
		radial-gradient(90% 55% at 100% 0%, var(--tpi-bg-accent) 0%, transparent 60%),
		radial-gradient(80% 50% at 0% 8%, #eaf6fb 0%, transparent 55%),
		var(--tpi-bg);
	width: min(100%, 1290px);
	min-width: 0;
	min-height: 100vh;
	margin: 0 auto;
	padding: 22px 16px 64px;
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
}

#tprospectin-app.tprospectin-app--embedded {
	width: 100%;
	min-height: 0;
	margin: 0;
	background: transparent;
	padding: 0;
}

#tprospectin-app > *,
#tprospectin-auth-shell,
#tprospectin-auth-shell > * {
	min-width: 0;
	max-width: 100%;
}


/* -------------------------------------------------------------- Brand */
.tprospectin-brand { display: flex; margin: 2px 0 20px; }
.tprospectin-brand--left { justify-content: flex-start; }
.tprospectin-brand--center { justify-content: center; }
.tprospectin-brand img { display: block; max-width: min(360px, 78%); max-height: 105px; width: auto; height: auto; margin: 0 auto; object-fit: contain; }
.tprospectin-brand--left img { margin-left: 0; margin-right: auto; }

/* -------------------------------------------------------------- Cards */
.tprospectin-card {
	position: relative;
	width: 100%;
	min-width: 0;
	background: var(--tpi-surface);
	border: 1px solid var(--tpi-line);
	border-radius: var(--tpi-radius);
	padding: 22px 20px;
	margin: 0 0 16px;
	box-shadow: var(--tpi-shadow);
	overflow: hidden;
}
/* Signature : filet diagonal bleu->cyan en coin superieur */
.tprospectin-card::before {
	content: "";
	position: absolute;
	top: -30px;
	right: -30px;
	width: 120px;
	height: 60px;
	background: var(--tpi-grad);
	transform: rotate(35deg);
	opacity: .12;
	pointer-events: none;
}
.tprospectin-login-card {
	max-width: 500px;
	margin-inline: auto;
	border-top: 3px solid transparent;
	background:
		linear-gradient(var(--tpi-surface), var(--tpi-surface)) padding-box,
		var(--tpi-grad) border-box;
	border: 1px solid transparent;
}

.tprospectin-card h1,
.tprospectin-card h2,
.tprospectin-card p { margin: 0; }
.tprospectin-card h1 { font-family: var(--tpi-display); font-size: 1.45rem; font-weight: 600; letter-spacing: -.01em; }
.tprospectin-card h2 { font-family: var(--tpi-display); font-size: 1.2rem; font-weight: 600; letter-spacing: -.01em; }

.tprospectin-app-name {
	display: block;
	font-family: var(--tpi-display);
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: -.02em;
	color: var(--tpi-ink);
	margin: 0 0 2px;
}
.tprospectin-app-name.has-runtime-version::after {
	content: "v" attr(data-runtime-version);
	display: inline-block;
	margin-left: 7px;
	color: var(--tpi-muted);
	font-size: .52em;
	font-weight: 500;
	vertical-align: middle;
}

.tprospectin-app-tagline { display: block; color: var(--tpi-muted); font-size: .92rem; margin: 0 0 14px; }
.tprospectin-muted { color: var(--tpi-muted); }

.tprospectin-section-head,
.tprospectin-form-head { margin-bottom: 16px; }
/* Eyebrow diagonal devant les titres de section */
.tprospectin-section-head h2,
.tprospectin-form-head h2 {
	display: flex;
	align-items: center;
	gap: 10px;
}
.tprospectin-section-head h2::before,
.tprospectin-form-head h2::before {
	content: "";
	width: 4px;
	height: 20px;
	border-radius: 2px;
	background: var(--tpi-grad);
	transform: skewX(-12deg);
	flex: none;
}
.tprospectin-list-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}

/* ------------------------------------------------------------ Header */
.tprospectin-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	background: var(--tpi-surface);
	border: 1px solid var(--tpi-line);
	border-radius: var(--tpi-radius);
	padding: 14px 18px;
	margin: 0 0 18px;
	box-shadow: var(--tpi-shadow);
}
.tprospectin-header-identity { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.tprospectin-header-identity .tprospectin-app-name { font-size: 1.2rem; margin: 0; }
.tprospectin-header-identity .tprospectin-app-tagline { margin: 0; }
.tprospectin-header-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.tprospectin-session-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.tprospectin-context-badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: .9rem;
	font-weight: 650;
	padding: 7px 14px;
	border-radius: 999px;
	line-height: 1.3;
}
.tprospectin-context-badge:empty { display: none; }
.tprospectin-commercial-badge { background: var(--tpi-primary-tint); color: var(--tpi-primary-ink); }
.tprospectin-event-badge { background: var(--tpi-ok-tint); color: #0d6b45; }

/* -------------------------------------------------------------- Forms */
#tprospectin-app form { display: flex; flex-direction: column; gap: 14px; margin: 0; }

.tprospectin-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; font-size: .82rem; font-weight: 600; color: var(--tpi-ink-soft); }
#tprospectin-app :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea),
.tprospectin-contact-email-message-editor {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: var(--tpi-tap);
	margin: 0;
	padding: 11px 13px;
	border: 1.5px solid var(--tpi-line-strong);
	border-radius: var(--tpi-radius-sm);
	background: var(--tpi-surface);
	color: var(--tpi-ink);
	font: inherit;
	font-weight: 400;
	transition: border-color .14s ease, box-shadow .14s ease;
}

#tprospectin-app textarea { min-height: 84px; resize: vertical; line-height: 1.5; }
#tprospectin-app .tprospectin-prospect-address textarea { min-height: 62px; }
#tprospectin-app .tprospectin-prospect-activities textarea { min-height: 118px; }
.tprospectin-contact-email-message-editor { min-height: 150px; overflow-wrap: anywhere; }

#tprospectin-app :is(input, select, textarea):focus,
.tprospectin-contact-email-message-editor:focus {
	outline: none;
	border-color: var(--tpi-primary);
	box-shadow: 0 0 0 3px rgba(31,107,255,.18);
}

#tprospectin-app :is(input.tprospectin-low-confidence, textarea.tprospectin-low-confidence) {
	border-color: #dba617;
	box-shadow: 0 0 0 1px #dba617;
}


.tprospectin-prospect-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	grid-template-areas:
		"company company company activities activities activities"
		"address address address activities activities activities"
		"phone phone phone website website website"
		"last last first first job job"
		"email email email mobile mobile mobile";
	gap: 14px 16px;
	min-width: 0;
}
.tprospectin-prospect-grid > * { min-width: 0; }
.tprospectin-prospect-company { grid-area: company; }
.tprospectin-prospect-activities { grid-area: activities; }
.tprospectin-prospect-address { grid-area: address; }
.tprospectin-prospect-phone { grid-area: phone; }
.tprospectin-prospect-website { grid-area: website; }
.tprospectin-prospect-last-name { grid-area: last; }
.tprospectin-prospect-first-name { grid-area: first; }
.tprospectin-prospect-job-title { grid-area: job; }
.tprospectin-prospect-email { grid-area: email; }
.tprospectin-prospect-mobile { grid-area: mobile; }

@media (min-width: 961px) {
	.tprospectin-prospect-activities { display: grid; grid-template-rows: auto minmax(0, 1fr); align-content: stretch; }
	#tprospectin-app .tprospectin-prospect-activities textarea { height: 100%; min-height: 0; max-height: 100%; overflow-y: auto; resize: none; }
}

.tprospectin-form-section {
	border: 1px solid var(--tpi-line);
	border-radius: var(--tpi-radius);
	padding: 16px;
	background: var(--tpi-surface-soft);
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.tprospectin-form-section h2 { font-family: var(--tpi-display); font-size: 1.1rem; margin: 0; }
#tprospectin-app fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
#tprospectin-app legend {
	display: block;
	width: 100%;
	min-height: 46px;
	padding: 0;
	margin: 0;
	font-size: .82rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: normal;
	line-height: 1.35;
	color: var(--tpi-ink-soft);
}
.tprospectin-qualification-controls {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: 18px;
	margin-top: 20px;
}
#tprospectin-app .tprospectin-qualification-controls > fieldset { margin: 0; min-width: 0; }
.tprospectin-qualification-notes {
	grid-column: 1 / -1;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
}
.tprospectin-qualification-notes .tprospectin-notes-label {
	flex: 0 0 46px;
	min-height: 46px;
	margin: 0;
}
.tprospectin-qualification-notes textarea { flex: 1 1 auto; min-height: 120px; }

@media (min-width: 1101px) {
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-controls {
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) minmax(0, 5fr);
	}
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-notes { grid-column: auto; height: 100%; }
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-notes textarea { flex: 1 1 0; min-height: 0; height: auto; resize: vertical; }
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-level .tprospectin-radios { grid-template-columns: 1fr; }
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-todo .tprospectin-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.tprospectin-field-title,
.tprospectin-group-title,
.tprospectin-notes-label label {
	font-size: .82rem;
	font-weight: 700;
	color: var(--tpi-ink-soft);
	margin-bottom: 6px;
	display: block;
}

/* Interets = groupes responsives, accordéon sur petits écrans */
.tprospectin-interest-groups {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	align-items: start;
	gap: 10px;
}
.tprospectin-interest-group,
.tprospectin-interest-group-only { min-width: 0; border-radius: var(--tpi-radius-sm); }
.tprospectin-interest-group {
	border: 1px solid var(--tpi-line);
	background: var(--tpi-surface);
	padding: 9px;
}
.tprospectin-interest-group > summary {
	position: relative;
	list-style: none;
	cursor: pointer;
	margin-bottom: 8px;
	padding: 8px 22px 9px 9px;
	border-radius: 6px;
	background: var(--tpi-primary-tint);
	font-size: .85rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--tpi-ink);
}
.tprospectin-interest-group > summary::-webkit-details-marker { display: none; }
.tprospectin-interest-group > summary::after {
	position: absolute;
	right: 10px;
	top: 50%;
	content: "⌄";
	transform: translateY(-55%);
	color: var(--tpi-primary);
	font-size: 15px;
	font-weight: 700;
}
.tprospectin-interest-group[open] > summary::after { content: "⌃"; }
.tprospectin-interest-group-only { padding: 0; border: 0; background: transparent; }

.tprospectin-radios,
.tprospectin-checks {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 10px;
	min-width: 0;
}
.tprospectin-interest-group .tprospectin-checks { grid-template-columns: minmax(0, 1fr); padding: 0 0 2px 6px; }
.tprospectin-radios label,
.tprospectin-check-option {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	align-items: center;
	column-gap: 8px;
	min-width: 0;
	min-height: 36px;
	margin: 0;
	padding: 6px 10px;
	border: 1px solid var(--tpi-line);
	border-radius: 6px;
	background: var(--tpi-surface-soft);
	cursor: pointer;
	font-size: .86rem;
	font-weight: 500;
	line-height: 1.25;
	color: var(--tpi-ink);
	transition: border-color .14s ease, background .14s ease;
	user-select: none;
}
.tprospectin-interest-group .tprospectin-check-option { min-height: 28px; padding: 4px 0; border: 0; border-radius: 0; background: transparent; }
.tprospectin-interest-group-only .tprospectin-check-option { width: 100%; min-height: 38px; background: transparent; font-size: .88rem; font-weight: 600; }
.tprospectin-radios label:hover,
.tprospectin-check-option:hover { border-color: var(--tpi-line-strong); background: var(--tpi-surface); }
.tprospectin-interest-group .tprospectin-check-option:hover { background: transparent; }
.tprospectin-radios input,
.tprospectin-check-option input { display: block; width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; justify-self: center; accent-color: var(--tpi-primary); }
.tprospectin-radios span,
.tprospectin-check-option span { min-width: 0; }
.tprospectin-radios label:has(input:checked),
.tprospectin-check-option:has(input:checked) { border-color: var(--tpi-primary); background: var(--tpi-primary-tint); color: var(--tpi-primary-ink); }
.tprospectin-interest-group .tprospectin-check-option:has(input:checked) { background: var(--tpi-primary-tint); border-radius: 6px; }

/* ------------------------------------------------------------ Buttons */
/* Normalisation minimale : le thème WordPress ne doit pas changer casse ou apparence. */
#tprospectin-app :where(button),
.tprospectin-webcam-dialog :where(button) {
	font-family: inherit;
	font-style: normal;
	letter-spacing: normal;
	text-transform: none;
	-webkit-appearance: none;
	appearance: none;
}

#tprospectin-app :where(button):focus-visible,
.tprospectin-webcam-dialog :where(button):focus-visible {
	outline: 2px solid var(--tpi-primary);
	outline-offset: 2px;
}

#tprospectin-app .tprospectin-primary,
#tprospectin-app .tprospectin-button,
.tprospectin-webcam-dialog button {
	-webkit-appearance: none;
	appearance: none;
	font: inherit;
	font-weight: 600;
	letter-spacing: .005em;
	text-transform: none;
	text-decoration: none;
	line-height: 1.25;
	margin: 0;
	min-height: var(--tpi-tap);
	padding: 11px 18px;
	border-radius: var(--tpi-radius-sm);
	border: 1.5px solid transparent;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: transform .05s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, filter .16s ease;
}
#tprospectin-app .tprospectin-primary:active,
#tprospectin-app .tprospectin-button:active { transform: translateY(1px); }

#tprospectin-app .tprospectin-primary {
	background: var(--tpi-grad);
	background-size: 140% 140%;
	color: #fff;
	width: 100%;
	box-shadow: 0 10px 22px -12px rgba(31,107,255,.85);
}
#tprospectin-app .tprospectin-primary:hover { background-position: 100% 0; box-shadow: var(--tpi-shadow-lift); }

#tprospectin-app .tprospectin-button--secondary {
	background: var(--tpi-surface);
	color: var(--tpi-primary-ink);
	border-color: var(--tpi-line-strong);
}
#tprospectin-app .tprospectin-button--secondary:hover { border-color: var(--tpi-primary); background: var(--tpi-primary-tint); }

#tprospectin-app .tprospectin-button--ghost {
	background: transparent;
	color: var(--tpi-ink-soft);
	border-color: var(--tpi-line-strong);
}
#tprospectin-app .tprospectin-button--ghost:hover { border-color: var(--tpi-primary); color: var(--tpi-primary-ink); }


#tprospectin-app :is(.tprospectin-primary, .tprospectin-button):disabled { cursor: default; opacity: .55; }
.tprospectin-login-forgot { width: 100%; }
.tprospectin-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.tprospectin-form-actions .tprospectin-primary { flex: 1 1 auto; }
.tprospectin-form-actions .tprospectin-button { flex: 1 1 auto; }

#tprospectin-analyze { margin-top: 16px; }
#tprospectin-status,
#tprospectin-form-status { margin-top: 12px; color: var(--tpi-ink-soft); }
#tprospectin-contact-email-status { font-size: .85rem; font-weight: 600; }

/* ------------------------------------------------------ Photo capture */
.tprospectin-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.tprospectin-photo-field { display: flex; flex-direction: column; gap: 8px; }
.tprospectin-photo-field > strong { font-size: .85rem; color: var(--tpi-ink); }
.tprospectin-photo-field small { color: var(--tpi-muted); font-weight: 400; }

.tprospectin-camera {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 132px;
	border: 2px dashed var(--tpi-line-strong);
	border-radius: var(--tpi-radius);
	background:
		radial-gradient(120% 80% at 50% 0%, var(--tpi-primary-tint) 0%, var(--tpi-surface-soft) 70%);
	cursor: pointer;
	overflow: hidden;
	transition: border-color .14s ease, background .14s ease;
}
.tprospectin-camera:hover { border-color: var(--tpi-primary); }
.tprospectin-camera input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.tprospectin-camera-text { font-weight: 600; font-size: .92rem; color: var(--tpi-primary-ink); text-align: center; padding: 0 12px; pointer-events: none; }
.tprospectin-camera-preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tprospectin-camera.has-preview .tprospectin-camera-text { display: none; }

.tprospectin-device-status { font-size: .85rem; color: var(--tpi-danger); background: var(--tpi-danger-tint); border-radius: var(--tpi-radius-sm); padding: 8px 11px; }

.tprospectin-qr-action {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px;
	margin: 4px 0 12px;
	border: 1px solid var(--tpi-line);
	border-radius: var(--tpi-radius);
	background: var(--tpi-surface-soft);
}
#tprospectin-app .tprospectin-qr-action .tprospectin-button { width: 100%; }
.tprospectin-help { font-size: .82rem; color: var(--tpi-muted); margin: 2px 0 0; }

/* -------------------------------------------------------- Attachments */
.tprospectin-form-bottom-grid { display: flex; flex-direction: column; gap: 18px; margin-top: 18px; }
.tprospectin-form-bottom-grid .tprospectin-attachments-field,
.tprospectin-form-bottom-grid .tprospectin-sector-field,
.tprospectin-form-bottom-actions { margin-top: 0; min-width: 0; }
.tprospectin-form-bottom-actions { display: flex; flex-direction: column; gap: 10px; }
.tprospectin-form-bottom-actions #tprospectin-form-status { margin-top: 0; }
.tprospectin-form-bottom-actions .tprospectin-form-actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
.tprospectin-form-bottom-actions .tprospectin-form-actions > * { width: 100%; }
@media (min-width: 1101px) {
	#tprospectin-app.tprospectin-app--embedded .tprospectin-form-bottom-grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: start;
		gap: 18px;
	}
}
.tprospectin-attachments-field,
.tprospectin-notes-field,
.tprospectin-sector-field { display: flex; flex-direction: column; gap: 8px; margin-top: 18px; }
.tprospectin-native-file { display: none; }
.tprospectin-file-picker {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: var(--tpi-tap);
	padding: 10px 14px;
	border: 1.5px solid var(--tpi-line-strong);
	border-radius: var(--tpi-radius-sm);
	background: var(--tpi-surface);
	cursor: pointer;
	transition: border-color .14s ease, background .14s ease;
}
.tprospectin-file-picker:hover,
.tprospectin-file-picker:focus-within { border-color: var(--tpi-primary); background: var(--tpi-primary-tint); }
.tprospectin-file-picker > span { font-weight: 600; color: var(--tpi-primary-ink); white-space: nowrap; }
.tprospectin-file-picker small { color: var(--tpi-muted); }
.tprospectin-attachment-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 10px;
	padding: 10px 12px;
	border: 1px solid var(--tpi-line);
	border-radius: var(--tpi-radius-sm);
	background: var(--tpi-surface-soft);
}
.tprospectin-attachment-list a { color: var(--tpi-primary-ink); overflow-wrap: anywhere; }

/* Notes + dictation */
.tprospectin-notes-label { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
#tprospectin-app button.tprospectin-dictation {
	width: auto;
	min-height: 46px;
	padding: 9px 15px;
	background: var(--tpi-surface);
	color: var(--tpi-ink-soft);
	border: 1.5px solid var(--tpi-line-strong);
	border-radius: 999px;
	gap: 7px;
	font-size: .92rem;
}
#tprospectin-app button.tprospectin-dictation svg { width: 19px; height: 19px; fill: currentColor; }
#tprospectin-app button.tprospectin-dictation.is-listening { background: var(--tpi-danger-tint); border-color: var(--tpi-danger); color: var(--tpi-danger); }
.tprospectin-dictation-status { font-size: .82rem; color: var(--tpi-muted); }

/* ----------------------------------------------------- Contact e-mail */
.tprospectin-contact-email {
	border: 1px solid var(--tpi-line);
	border-radius: var(--tpi-radius);
	padding: 16px;
	background: var(--tpi-surface-soft);
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.tprospectin-contact-email-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.tprospectin-contact-email-actions span:not(:empty) { font-size: .85rem; color: var(--tpi-ok); font-weight: 600; }
/* ------------------------------------------------------ Lead view */
.tprospectin-lead-view-context {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px 28px;
	margin: 0 0 16px;
	font-size: .95rem;
}
.tprospectin-lead-view-sector { display: flex; align-items: baseline; gap: 6px; color: var(--tpi-muted); }
.tprospectin-lead-view-sector strong { color: var(--tpi-ink); }
.tprospectin-lead-view-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 20px; align-items: stretch; }
#tprospectin-app:not(.tprospectin-app--embedded) .tprospectin-lead-view-layout { grid-template-columns: 1fr; }
.tprospectin-lead-view-block { min-width: 0; padding: 18px; border: 1px solid var(--tpi-line); border-radius: var(--tpi-radius-sm); background: var(--tpi-surface); }
.tprospectin-lead-view-prospect-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; min-width: 0; }
.tprospectin-lead-view-company-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; min-width: 0; height: 100%; }
.tprospectin-lead-view-column { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.tprospectin-view-field { min-width: 0; }
.tprospectin-view-label { display: block; margin-bottom: 4px; color: var(--tpi-muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.tprospectin-view-value,
.tprospectin-view-list { color: var(--tpi-ink); font-size: .9rem; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.tprospectin-view-field--multiline .tprospectin-view-value { white-space: pre-line; }
.tprospectin-view-field--activities { height: 100%; }
.tprospectin-view-media-links { display: flex; flex-direction: column; gap: 3px; }
.tprospectin-view-media-links a,
.tprospectin-view-value a { color: var(--tpi-primary-ink); }
.tprospectin-view-list { margin: 0; padding-left: 18px; }
.tprospectin-view-list li { margin: 0 0 3px; }
.tprospectin-view-list li:last-child { margin-bottom: 0; }
.tprospectin-view-empty { color: var(--tpi-muted); }
.tprospectin-lead-view-interests { margin-top: 18px; padding: 18px; border: 1px solid var(--tpi-line); border-radius: var(--tpi-radius-sm); background: var(--tpi-surface); }
.tprospectin-lead-view-level { display: flex; align-items: baseline; gap: 8px; margin-bottom: 16px; }
.tprospectin-lead-view-level span { color: var(--tpi-muted); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.tprospectin-lead-view-interest-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; align-items: start; }
.tprospectin-lead-view-interest-group { min-width: 0; padding: 10px; border: 1px solid var(--tpi-line); border-radius: var(--tpi-radius-sm); background: var(--tpi-surface-soft); }
.tprospectin-lead-view-interest-group > strong { display: block; margin-bottom: 6px; padding: 7px 9px; border-radius: 6px; background: var(--tpi-primary-tint); font-size: .84rem; }
.tprospectin-lead-view-interest-group > strong:only-child { margin-bottom: 0; background: transparent; padding: 0; }
.tprospectin-lead-view-interest-group .tprospectin-view-list { font-size: .84rem; font-weight: 500; }
.tprospectin-lead-view-actions { margin-top: 18px; }
#tprospectin-app .tprospectin-lead-view-actions .tprospectin-primary { width: auto; min-width: 190px; flex: 0 0 auto; }

/* ---------------------------------------------------------- Lead lists */
.tprospectin-list-limit {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .82rem;
	font-weight: 600;
	color: var(--tpi-ink-soft);
	white-space: nowrap;
}
.tprospectin-list-limit select {
	font: inherit;
	min-height: 40px;
	padding: 7px 10px;
	border: 1.5px solid var(--tpi-line-strong);
	border-radius: var(--tpi-radius-sm);
	background: var(--tpi-surface);
	color: var(--tpi-ink);
}

#tprospectin-app button.tprospectin-lead {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"company action"
		"contact action"
		"meta action";
	column-gap: 14px;
	row-gap: 2px;
	width: 100%;
	min-width: 0;
	min-height: 0;
	padding: 13px 14px 13px 16px;
	margin: 0 0 8px;
	border: 1px solid var(--tpi-line);
	border-radius: var(--tpi-radius-sm);
	background: var(--tpi-surface);
	box-shadow: none;
	color: var(--tpi-ink);
	text-align: left;
	transition: box-shadow .16s ease, transform .06s ease, border-color .16s ease;
}
#tprospectin-app button.tprospectin-lead::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	border-radius: 3px 0 0 3px;
	background: var(--tpi-grad);
}
#tprospectin-app button.tprospectin-lead:hover,
#tprospectin-app button.tprospectin-lead:focus-visible {
	border-color: var(--tpi-line-strong);
	box-shadow: var(--tpi-shadow);
	transform: translateX(2px);
}
#tprospectin-app button.tprospectin-lead:last-child { margin-bottom: 0; }
.tprospectin-lead-company {
	grid-area: company;
	display: block;
	min-width: 0;
	font-size: .98rem;
	font-weight: 700;
	color: var(--tpi-ink);
	overflow-wrap: anywhere;
}
.tprospectin-lead-contact {
	grid-area: contact;
	display: block;
	min-width: 0;
	font-size: .9rem;
	font-weight: 400;
	color: var(--tpi-ink);
	overflow-wrap: anywhere;
}
.tprospectin-lead-meta {
	grid-area: meta;
	display: block;
	min-width: 0;
	color: var(--tpi-muted);
	font-size: .8rem;
	font-weight: 400;
	line-height: 1.45;
	overflow-wrap: anywhere;
}
.tprospectin-lead-action {
	grid-area: action;
	align-self: center;
	color: var(--tpi-primary-ink);
	font-size: .78rem;
	font-weight: 700;
	white-space: nowrap;
}

#tprospectin-app button.tprospectin-lead.tprospectin-low-confidence { background: var(--tpi-danger-tint); }
#tprospectin-app button.tprospectin-lead.tprospectin-low-confidence::before { background: var(--tpi-danger); }

/* ------------------------------------------------------------- Alerts */
.tprospectin-alert {
	background: var(--tpi-danger-tint);
	color: var(--tpi-danger);
	border: 1px solid rgba(217,58,58,.28);
	border-radius: var(--tpi-radius-sm);
	padding: 11px 13px;
	font-size: .9rem;
	font-weight: 500;
}
.tprospectin-login-info { font-size: .88rem; }
.tprospectin-low-confidence { color: var(--tpi-danger); }

/* Honeypot */
.tprospectin-login-username-field { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* ------------------------------------------------------------ Dialogs */
.tprospectin-webcam-dialog {
	width: min(760px, calc(100vw - 28px));
	padding: 0;
	border: 1px solid var(--tpi-line-strong);
	border-radius: var(--tpi-radius-sm);
	background: var(--tpi-surface);
	color: var(--tpi-ink);
	box-shadow: var(--tpi-shadow-lift);
	font-family: var(--tpi-body);
}
.tprospectin-webcam-dialog::backdrop { background: rgba(15,27,45,.55); backdrop-filter: blur(3px); }
.tprospectin-webcam-panel { display: flex; flex-direction: column; gap: 12px; padding: 16px; }
.tprospectin-webcam-head,
.tprospectin-webcam-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tprospectin-webcam-head strong { font-family: var(--tpi-display); font-size: 1.1rem; }
.tprospectin-webcam-dialog video { display: block; width: 100%; max-height: 65vh; margin: 2px 0; border-radius: var(--tpi-radius-sm); background: #000; object-fit: contain; }
.tprospectin-webcam-actions .tprospectin-primary { width: auto; min-width: 180px; margin-left: auto; }

/* -------------------------------------------------------- Reset screen */
.tprospectin-reset-app { max-width: 500px; }

/* --------------------------------------------------- Visibility contract */
/* Le plugin masque login/formulaire/sections via l'attribut HTML [hidden]
   et le JS les revele au bon moment. Toute regle posant un display ecrase
   ce defaut : cette clause restaure le contrat. Seul !important legitime. */
#tprospectin-app [hidden],
.tprospectin-webcam-dialog[hidden],
.tprospectin-device-status:empty,
.tprospectin-dictation-status:empty { display: none !important; }

/* -------------------------------------------------------------- Motion */
@media (prefers-reduced-motion: reduce) {
	#tprospectin-app *,
	.tprospectin-webcam-dialog * { transition: none !important; }
}

/* ----------------------------------------------------------- Responsive */
@media (max-width: 1500px) and (min-width: 1101px) {
	.tprospectin-interest-groups,
	.tprospectin-lead-view-interest-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1100px) and (min-width: 783px) {
	.tprospectin-interest-groups,
	.tprospectin-lead-view-interest-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-notes { grid-column: 1 / -1; }
}

@media (max-width: 1400px) {
	.tprospectin-lead-view-layout { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
	.tprospectin-lead-view-prospect-grid,
	.tprospectin-lead-view-company-grid { grid-template-columns: 1fr; }
	.tprospectin-header { flex-direction: column; align-items: stretch; }
	.tprospectin-header-actions .tprospectin-button { flex: 1; }
	.tprospectin-prospect-grid {
		grid-template-columns: 1fr;
		grid-template-areas:
			"company"
			"activities"
			"address"
			"phone"
			"website"
			"last"
			"first"
			"job"
			"email"
			"mobile";
	}
	.tprospectin-list-head { flex-direction: column; align-items: stretch; }
	.tprospectin-list-limit { justify-content: space-between; }
}

@media (max-width: 782px) {
	.tprospectin-qualification-controls,
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-controls,
	.tprospectin-interest-groups,
	.tprospectin-lead-view-interest-grid,
	.tprospectin-radios,
	.tprospectin-checks,
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-level .tprospectin-radios,
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-todo .tprospectin-checks { grid-template-columns: 1fr; }
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-notes { grid-column: auto; height: auto; }
	#tprospectin-app.tprospectin-app--embedded .tprospectin-qualification-notes textarea { min-height: 120px; height: auto; }
	.tprospectin-qualification-controls { gap: 16px; }
}

@media (max-width: 600px) {
	#tprospectin-app { padding: 16px 12px 52px; }
	#tprospectin-app.tprospectin-app--embedded { padding: 0; }
	.tprospectin-app-name { font-size: 1.42rem; }
	.tprospectin-photo-grid { grid-template-columns: 1fr; }
	.tprospectin-form-actions .tprospectin-primary,
	.tprospectin-form-actions .tprospectin-button { flex: 1 1 100%; }
	.tprospectin-webcam-actions .tprospectin-primary { width: 100%; margin: 0; }
	#tprospectin-app .tprospectin-lead-view-actions .tprospectin-primary { width: 100%; min-width: 0; }
	#tprospectin-app button.tprospectin-lead {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "company" "contact" "meta" "action";
	}
	.tprospectin-lead-action { justify-self: start; margin-top: 3px; }
}
