/*
 * Les Pros du Var : coque d'application des espaces (artisan, particulier, suivi).
 * Registre produit : sobre, dense, lisible en plein soleil sur un chantier. Méditerranée moderne en retenue :
 * neutres crème teintés, terre cuite pour l'action principale, bleu rade pour la sélection et les liens.
 * Mobile d'abord : barre d'onglets en bas ; barre latérale à partir de 960 px.
 */
.lpdv-app {
	--a-fond: oklch(97.6% 0.012 80);
	--a-fond-2: oklch(95% 0.018 78);
	--a-surface: oklch(99.4% 0.004 80);
	--a-encre: oklch(25% 0.012 240);
	--a-encre-2: oklch(43% 0.012 240);
	--a-encre-3: oklch(55% 0.01 240);
	--a-bord: oklch(89% 0.02 78);
	--a-bord-fort: oklch(78% 0.025 78);
	--a-terre: oklch(54% 0.14 40);
	--a-terre-fonce: oklch(46% 0.13 38);
	--a-terre-clair: oklch(93% 0.035 45);
	--a-rade: oklch(43% 0.08 235);
	--a-rade-clair: oklch(94% 0.025 230);
	--a-ok: oklch(45% 0.09 150);
	--a-ok-clair: oklch(94% 0.04 150);
	--a-attente: oklch(48% 0.1 75);
	--a-attente-clair: oklch(95% 0.05 85);
	--a-err: oklch(48% 0.16 28);
	--a-err-clair: oklch(95% 0.03 28);
	--a-r: 12px;
	--a-r-s: 8px;
	--a-nav-h: 64px;
	--a-top-h: 56px;
	--a-ease: cubic-bezier(.22, 1, .36, 1);
	--a-f: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	background: var(--a-fond);
	color: var(--a-encre);
	font-family: var(--a-f);
	font-size: 16px;
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
}
.lpdv-app h1, .lpdv-app h2, .lpdv-app h3 { font-family: var(--a-f); color: var(--a-encre); letter-spacing: -0.01em; }
.lpdv-app a { color: var(--a-rade); }
.lpdv-app .lien-evitement { position: absolute; left: -9999px; }
.lpdv-app .lien-evitement:focus { left: 1rem; top: 1rem; z-index: 100; background: var(--a-surface); padding: .5rem 1rem; }
.lpdv-app :focus-visible { outline: 3px solid var(--a-rade); outline-offset: 2px; }
.lpdv-app:has(.app-bandeau) { --a-bandeau: 29px; }
.app-bandeau { position: sticky; top: 0; z-index: 31; height: 29px; box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: var(--a-encre); color: var(--a-fond); font-size: .8rem; text-align: center; padding: .3rem 1rem; }

/* Coque */
.app { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; grid-template-areas: "top" "main"; padding-bottom: calc(var(--a-nav-h) + env(safe-area-inset-bottom)); }
.app-top { grid-area: top; }
.app-main { grid-area: main; }
.app--sans-nav { padding-bottom: 0; }
.app-top { position: sticky; top: var(--a-bandeau, 0px); z-index: 30; min-height: var(--a-top-h); box-sizing: border-box; margin: 0; display: flex; align-items: center; gap: .75rem; padding: 0 16px; background: var(--a-fond); border-bottom: 1px solid var(--a-bord); }
.app-top__logo { display: flex; align-items: center; gap: .5rem; text-decoration: none; color: var(--a-encre) !important; flex: none; }
.app-top__marque { font-weight: 700; font-size: .95rem; display: none; }
.app-top__titre { margin: 0; flex: 1; min-width: 0; font-weight: 650; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.app-main { min-width: 0; padding: 16px 16px 96px; position: relative; }
.app-contenu { max-width: 860px; margin: 0 auto; }

/* Navigation principale : barre d'onglets en bas sur mobile */
.app-nav { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; background: var(--a-surface); border-top: 1px solid var(--a-bord); padding-bottom: env(safe-area-inset-bottom); }
.app-nav ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); height: var(--a-nav-h); }
.app-nav__lien { position: relative; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; color: var(--a-encre-3) !important; text-decoration: none; font-size: .68rem; font-weight: 600; line-height: 1.1; text-align: center; padding: 0 2px; }
.app-nav__lien[aria-current="page"] { color: var(--a-rade) !important; }
.app-nav__lien[aria-current="page"] .lpdv-ico { stroke-width: 2.2; }
.app-nav__badge { position: absolute; top: 6px; left: calc(50% + 6px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--a-terre); color: #fff; font-size: .68rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }

.app-nav__long { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.app-cgv > summary { cursor: pointer; }
.app-cgv[open] > summary { margin-bottom: .5rem; }
.lpdv-app .lpdv-jauge { display: flex; gap: .85rem; align-items: flex-start; background: var(--a-surface); color: var(--a-encre); border: 1px solid var(--a-bord); border-radius: var(--a-r); padding: .9rem 1rem; box-shadow: none; }
.lpdv-app .lpdv-jauge__chiffre { flex: none; width: 48px; height: 48px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--a-rade-clair); color: var(--a-rade); font: 700 1.25rem var(--a-f); }
.lpdv-app .lpdv-jauge h2 { font-size: 1rem; margin: 0 0 .2rem; color: var(--a-encre); }
.lpdv-app .lpdv-jauge p { margin: 0 0 .35rem; color: var(--a-encre-2); font-size: .88rem; }
/* Menu compte */
.app-compte { position: relative; flex: none; }
.app-compte__bouton { list-style: none; display: flex; align-items: center; gap: .5rem; cursor: pointer; min-height: 44px; padding: 0 .25rem; border-radius: 999px; }
.app-compte__bouton::-webkit-details-marker { display: none; }
.app-compte__avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--a-rade-clair); color: var(--a-rade); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.app-compte__nom { display: none; font-weight: 600; font-size: .9rem; max-width: 14ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-compte__menu { position: absolute; right: 0; top: calc(100% + 6px); min-width: 240px; margin: 0; padding: .35rem; list-style: none; background: var(--a-surface); border: 1px solid var(--a-bord); border-radius: var(--a-r); box-shadow: 0 12px 32px oklch(25% 0.02 240 / .14); z-index: 50; }
.app-compte__menu a { display: block; padding: .65rem .75rem; border-radius: var(--a-r-s); color: var(--a-encre) !important; text-decoration: none; font-size: .95rem; }
.app-compte__menu a:hover, .app-compte__menu a[aria-current="page"] { background: var(--a-fond-2); }
.app-compte__sep { height: 1px; background: var(--a-bord); margin: .3rem .25rem; }

/* Bouton flottant */
.app-fab { position: fixed; z-index: 35; right: 16px; bottom: calc(var(--a-nav-h) + 16px + env(safe-area-inset-bottom)); display: inline-flex; align-items: center; gap: .4rem; min-height: 52px; padding: 0 1.15rem 0 .95rem; border-radius: 26px; background: var(--a-terre); color: #fff !important; font-weight: 700; text-decoration: none; box-shadow: 0 6px 18px oklch(46% 0.13 38 / .35); transition: background .2s var(--a-ease), transform .2s var(--a-ease); }
.app-fab:hover { background: var(--a-terre-fonce); }
.app-fab:active { transform: scale(.97); }

/* Boutons (harmonisation dans l'application) */
.lpdv-app .lpdv-bouton { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 44px; padding: .55rem 1rem; border-radius: var(--a-r-s); border: 1px solid var(--a-bord-fort); background: var(--a-surface); color: var(--a-encre); font: 600 .95rem/1.2 var(--a-f); text-decoration: none; cursor: pointer; transition: background .15s var(--a-ease), border-color .15s var(--a-ease); }
.lpdv-app .lpdv-bouton:hover { background: var(--a-fond-2); }
.lpdv-app .lpdv-bouton--primaire { background: var(--a-terre); border-color: var(--a-terre); color: #fff; }
.lpdv-app .lpdv-bouton--primaire:hover { background: var(--a-terre-fonce); border-color: var(--a-terre-fonce); }
.lpdv-app .lpdv-bouton--discret { background: transparent; border-color: transparent; color: var(--a-encre-2); }
.lpdv-app .lpdv-bouton--discret:hover { background: var(--a-fond-2); }
.lpdv-app .lpdv-bouton--lien { background: none; border: 0; color: var(--a-err); padding: .4rem 0; min-height: 0; text-decoration: underline; }
.lpdv-app .lpdv-bouton--petit { min-height: 38px; padding: .35rem .8rem; font-size: .88rem; }
.lpdv-app .lpdv-bouton[disabled], .lpdv-app .lpdv-bouton[aria-busy="true"] { opacity: .55; cursor: not-allowed; }
.lpdv-app .lpdv-bouton[aria-busy="true"]::after { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: app-tourne .7s linear infinite; }
@keyframes app-tourne { to { transform: rotate(360deg); } }
.lpdv-app .lpdv-inline-form { display: inline; margin: 0; }
.app-bouton-large { width: 100%; }

/* Champs */
.lpdv-app input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]), .lpdv-app select, .lpdv-app textarea { width: 100%; min-height: 46px; padding: .6rem .75rem; border: 1px solid var(--a-bord-fort); border-radius: var(--a-r-s); background: var(--a-surface); color: var(--a-encre); font: 400 1rem/1.4 var(--a-f); box-sizing: border-box; }
.lpdv-app textarea { min-height: 84px; }
.lpdv-app input:focus, .lpdv-app select:focus, .lpdv-app textarea:focus { border-color: var(--a-rade); outline: 2px solid var(--a-rade-clair); outline-offset: 0; }
.lpdv-app .lpdv-field label, .app-champ { display: block; font-weight: 600; font-size: .9rem; margin-bottom: .3rem; }
.lpdv-app .lpdv-hint, .lpdv-app .lpdv-small { color: var(--a-encre-2); font-size: .86rem; }
.lpdv-app .lpdv-check { display: flex; gap: .6rem; align-items: flex-start; }
.lpdv-app .lpdv-check input { width: 20px; height: 20px; margin-top: .15rem; flex: none; accent-color: var(--a-terre); }

/* En-têtes et sections */
.app-entete { margin: 0 0 1rem; }
.app-entete__retour { display: inline-flex; align-items: center; gap: .2rem; margin: 0 0 .4rem -.2rem; color: var(--a-encre-2) !important; text-decoration: none; font-size: .9rem; min-height: 32px; }
.app-entete__ligne { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.app-entete h1 { margin: 0; font-size: 1.45rem; line-height: 1.2; font-weight: 700; }
.app-entete__sous { margin: .3rem 0 0; color: var(--a-encre-2); font-size: .92rem; }
.app-section { margin: 1.5rem 0; }
.app-section__tete { display: flex; align-items: center; gap: .5rem; margin-bottom: .6rem; }
.app-section__tete h2, .app-carte__titre { margin: 0; font-size: 1.05rem; font-weight: 700; }
.app-sous-titre { font-size: .95rem; margin: 1.2rem 0 .5rem; }
.app-pastille { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--a-terre-clair); color: var(--a-terre-fonce); font-weight: 700; font-size: .78rem; display: inline-flex; align-items: center; justify-content: center; }
.app-carte { background: var(--a-surface); border: 1px solid var(--a-bord); border-radius: var(--a-r); padding: 1rem; margin: 0 0 1rem; }
.app-carte__tete { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.app-carte > .app-carte__titre { margin-bottom: .6rem; }
.app-alerte { padding: .75rem 1rem; border-radius: var(--a-r); background: var(--a-err-clair); color: var(--a-err); margin: 0 0 1rem; }
.app-apercu { margin: 0 0 1rem; padding: .6rem .9rem; border-radius: var(--a-r-s); background: var(--a-rade-clair); color: var(--a-rade); font-size: .88rem; }
.app-sim { margin: 0 0 .75rem; padding: .5rem .75rem; border-radius: var(--a-r-s); background: var(--a-attente-clair); color: var(--a-attente); font-size: .85rem; font-weight: 600; }
.app-regle { display: flex; gap: .5rem; align-items: flex-start; padding: .7rem .85rem; border-radius: var(--a-r); background: var(--a-rade-clair); color: var(--a-encre); font-size: .9rem; margin: 0 0 1rem; }
.app-regle .lpdv-ico, .app-masque .lpdv-ico { flex: none; color: var(--a-rade); margin-top: .1rem; }
.app-masque { display: flex; gap: .5rem; align-items: flex-start; color: var(--a-encre-2); font-size: .92rem; }
.app-plus { color: var(--a-encre-2); font-size: .86rem; margin: .5rem 0 0; }
.lpdv-app .app-masque-mobile { display: none; }

/* Segments */
.app-segments { margin: 0 0 1rem; overflow-x: auto; scrollbar-width: none; }
.app-segments ul { list-style: none; display: inline-flex; gap: .25rem; margin: 0; padding: .2rem; border-radius: 10px; background: var(--a-fond-2); }
.app-segments a { display: inline-flex; align-items: center; gap: .35rem; min-height: 38px; padding: 0 .8rem; border-radius: 8px; white-space: nowrap; color: var(--a-encre-2) !important; text-decoration: none; font-size: .88rem; font-weight: 600; }
.app-segments a[aria-current="page"] { background: var(--a-surface); color: var(--a-encre) !important; box-shadow: 0 1px 2px oklch(25% 0.02 240 / .12); }
.app-segments__n { font-size: .75rem; color: var(--a-encre-3); }

/* Étiquettes et états */
.app-etiquette { display: inline-flex; align-items: center; min-height: 24px; padding: 0 .55rem; border-radius: 6px; font-size: .76rem; font-weight: 700; background: var(--a-fond-2); color: var(--a-encre-2); white-space: nowrap; }
.app-etiquette--nouveau { background: var(--a-terre-clair); color: var(--a-terre-fonce); }
.app-etiquette--ok { background: var(--a-ok-clair); color: var(--a-ok); }
.app-etiquette--attente { background: var(--a-attente-clair); color: var(--a-attente); }
.app-etat { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.app-etat::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.app-etat--a_creer { background: var(--a-fond-2); color: var(--a-encre-2); }
.app-etat--verification { background: var(--a-attente-clair); color: var(--a-attente); }
.app-etat--actif { background: var(--a-ok-clair); color: var(--a-ok); }
.app-etat--action { background: var(--a-err-clair); color: var(--a-err); }

/* Accueil */
.app-bonjour h1 { margin: 0; font-size: 1.6rem; font-weight: 700; }
.app-bonjour p { margin: .2rem 0 1.2rem; color: var(--a-encre-2); font-size: .92rem; }
.app-demarrer__n { font-weight: 700; color: var(--a-encre-2); font-size: .9rem; }
.app-progres { height: 8px; border-radius: 4px; background: var(--a-fond-2); overflow: hidden; margin: .25rem 0 .75rem; }
.app-progres span { display: block; height: 100%; background: var(--a-ok); border-radius: 4px; transition: width .4s var(--a-ease); }
.app-demarrer__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
.app-demarrer__liste li { display: flex; align-items: center; gap: .5rem; min-height: 40px; color: var(--a-encre-2); }
.app-demarrer__liste li.est-fait { color: var(--a-ok); }
.app-demarrer__liste a { display: flex; flex: 1; align-items: center; justify-content: space-between; min-height: 40px; color: var(--a-encre) !important; text-decoration: none; font-weight: 600; }
.app-taches { list-style: none; margin: 0; padding: 0; border: 1px solid var(--a-bord); border-radius: var(--a-r); background: var(--a-surface); overflow: hidden; }
.app-taches li + li { border-top: 1px solid var(--a-bord); }
.app-tache { display: flex; gap: .75rem; align-items: center; padding: .8rem .9rem; color: inherit !important; text-decoration: none; }
.app-tache:hover { background: var(--a-fond); }
.app-tache__ico { flex: none; width: 38px; height: 38px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: var(--a-rade-clair); color: var(--a-rade); }
.app-tache__ico--urgent { background: var(--a-attente-clair); color: var(--a-attente); }
.app-tache__ico--retard { background: var(--a-err-clair); color: var(--a-err); }
.app-tache__corps { flex: 1; min-width: 0; display: grid; gap: .1rem; }
.app-tache__titre { font-weight: 650; font-size: .95rem; }
.app-tache__detail { color: var(--a-encre-2); font-size: .84rem; }
.app-tache__droite { flex: none; display: grid; justify-items: end; gap: .2rem; }
.app-tache__action { color: var(--a-rade); font-weight: 700; font-size: .85rem; }
.app-rebours { font-size: .76rem; font-weight: 700; color: var(--a-encre-2); white-space: nowrap; }
.app-rebours--urgent { color: var(--a-attente); }
.app-rebours--retard { color: var(--a-err); }
.app-chiffres { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; background: var(--a-bord); border: 1px solid var(--a-bord); border-radius: var(--a-r); overflow: hidden; }
.app-chiffres > div { background: var(--a-surface); padding: .75rem .85rem; }
.app-chiffres dt { font-size: .8rem; color: var(--a-encre-2); font-weight: 600; }
.app-chiffres dd { margin: .15rem 0 0; font-size: 1.15rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.app-chiffres__note { font-size: .74rem; font-weight: 500; color: var(--a-encre-3); }
.app-chiffres__vide { font-size: .85rem; font-weight: 500; color: var(--a-encre-3); }
.app-chiffres--3 { margin-bottom: 1rem; }
@media (max-width: 599px) { .app-chiffres > div:last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* Demandes */
.app-cartes-demandes { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.app-demande { background: var(--a-surface); border: 1px solid var(--a-bord); border-radius: var(--a-r); overflow: hidden; }
.app-demande__lien { display: grid; gap: .3rem; padding: .85rem .95rem .7rem; color: inherit !important; text-decoration: none; }
.app-demande__lien:hover .app-demande__titre { color: var(--a-rade); }
.app-demande__haut { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.app-demande__quand { font-size: .8rem; color: var(--a-encre-3); }
.app-demande__titre { font-weight: 700; font-size: 1.02rem; }
.app-demande__desc { color: var(--a-encre-2); font-size: .9rem; }
.app-demande__meta { display: flex; flex-wrap: wrap; gap: .35rem .75rem; align-items: center; font-size: .82rem; color: var(--a-encre-2); }
.app-demande__actions { display: flex; gap: .4rem; padding: 0 .95rem .85rem; flex-wrap: wrap; }
.app-demande__actions .lpdv-inline-form .lpdv-bouton, .app-demande__actions > .lpdv-bouton { min-height: 42px; }
.app-actions-demande { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.app-projet { margin: 0 0 .75rem; white-space: normal; }
.app-dl { display: grid; gap: 0; margin: 0; }
.app-dl > div { display: grid; grid-template-columns: 9.5rem 1fr; gap: .5rem; padding: .45rem 0; border-top: 1px solid var(--a-bord); }
.app-dl dt { color: var(--a-encre-2); font-size: .88rem; }
.app-dl dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.app-photos { font-size: .9rem; }
.app-refus { margin: 1rem 0; }
.app-refus label { font-weight: 600; font-size: .9rem; display: block; margin-bottom: .3rem; }
.app-refus__ligne { display: flex; gap: .5rem; }
.app-refus__ligne select { flex: 1; }
.app-replier > summary { list-style: none; cursor: pointer; }
.app-replier > summary::-webkit-details-marker { display: none; }
.app-replier[open] > summary { margin-bottom: .75rem; }
.app-creneau { border: 0; padding: 0; margin: 0 0 .6rem; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.app-creneau legend { font-weight: 600; font-size: .88rem; margin-bottom: .25rem; }
.app-creneau label { font-size: .82rem; color: var(--a-encre-2); }
.app-creneaux { margin: .25rem 0 .75rem; padding-left: 1.2rem; }
.app-visite__quand { display: flex; gap: .4rem; align-items: center; }
.app-visite { padding: .75rem 0; border-top: 1px solid var(--a-bord); }
.app-visite:first-of-type { border-top: 0; }
.app-boutons { display: flex; gap: .5rem; flex-wrap: wrap; }

/* Messagerie */
.lpdv-fil__liste { list-style: none; margin: 0 0 .75rem; padding: 0; display: grid; gap: .4rem; max-height: 52vh; overflow-y: auto; }
.lpdv-fil__vide { color: var(--a-encre-2); font-size: .9rem; padding: .5rem 0; }
.lpdv-bulle { max-width: 85%; justify-self: start; padding: .55rem .75rem; border-radius: 14px 14px 14px 4px; background: var(--a-fond-2); }
.lpdv-bulle--moi { justify-self: end; border-radius: 14px 14px 4px 14px; background: var(--a-rade-clair); }
.lpdv-bulle__texte { margin: 0; overflow-wrap: anywhere; }
.lpdv-bulle__meta { margin: .15rem 0 0; font-size: .72rem; color: var(--a-encre-3); }
.lpdv-fil__note { font-size: .8rem; color: var(--a-encre-2); margin: 0 0 .5rem; }
.lpdv-fil__form { display: flex; gap: .5rem; align-items: flex-end; }
.lpdv-fil__form textarea { min-height: 46px !important; flex: 1; }

/* Listes génériques */
.app-liste { list-style: none; margin: 0; padding: 0; border: 1px solid var(--a-bord); border-radius: var(--a-r); background: var(--a-surface); overflow: hidden; }
.app-liste > li + li { border-top: 1px solid var(--a-bord); }
.app-ligne { display: flex; gap: .75rem; align-items: center; justify-content: space-between; padding: .75rem .9rem; color: inherit !important; text-decoration: none; }
.app-ligne--lien:hover { background: var(--a-fond); }
.app-ligne__corps { min-width: 0; display: grid; gap: .1rem; }
.app-ligne__titre { font-weight: 650; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.app-ligne__detail { color: var(--a-encre-2); font-size: .84rem; }
.app-ligne__droite { flex: none; display: grid; justify-items: end; gap: .15rem; font-variant-numeric: tabular-nums; }

/* Éditeur de devis */
.app-editeur { padding-bottom: 5rem; }
.app-etape { border: 1px solid var(--a-bord); border-radius: var(--a-r); background: var(--a-surface); padding: .9rem 1rem 1rem; margin: 0 0 1rem; min-width: 0; }
.app-etape legend { display: flex; align-items: center; gap: .55rem; font-weight: 700; font-size: 1.02rem; padding: 0 .35rem; margin-left: -.35rem; }
.app-etape__n { width: 26px; height: 26px; border-radius: 50%; background: var(--a-encre); color: var(--a-fond); display: inline-flex; align-items: center; justify-content: center; font-size: .82rem; }
.app-etape__info { margin: 0 0 .75rem; color: var(--a-encre-2); }
.app-barre-devis { position: fixed; z-index: 45; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .6rem 16px calc(.6rem + env(safe-area-inset-bottom)); background: var(--a-surface); border-top: 1px solid var(--a-bord); box-shadow: 0 -6px 18px oklch(25% 0.02 240 / .08); }
.app-barre-devis__total span { display: block; font-size: .75rem; color: var(--a-encre-2); }
.app-barre-devis__total strong { font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.app-barre-devis__actions { display: flex; gap: .35rem; }
.app-barre-devis__actions .lpdv-bouton--discret { display: none; }
.app-barre-form { position: sticky; bottom: calc(var(--a-nav-h) + env(safe-area-inset-bottom)); padding: .6rem 0; background: var(--a-fond); }
.app-suppr { margin: 0 0 2rem; }
.lpdv-app.lpdv-app--artisan:has(.app-barre-devis) .app-nav { display: none; }
.lpdv-app:has(.app-barre-devis) .app { padding-bottom: 0; }

/* Recevoir vos paiements */
.app-pay { background: var(--a-surface); border: 1px solid var(--a-bord); border-radius: var(--a-r); padding: 1rem; margin: 0 0 1rem; }
.app-pay--a_creer, .app-pay--action { border-color: var(--a-terre); box-shadow: 0 0 0 3px var(--a-terre-clair); }
.app-pay__tete { display: flex; justify-content: space-between; gap: .75rem; align-items: flex-start; }
.app-pay__tete h2 { margin: 0; font-size: 1.15rem; font-weight: 700; }
.app-pay__tete p { margin: .25rem 0 0; color: var(--a-encre-2); font-size: .92rem; }
.app-pay__etapes { list-style: none; margin: .9rem 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem; counter-reset: e; }
.app-pay__etapes li { counter-increment: e; font-size: .74rem; color: var(--a-encre-3); padding-top: .55rem; border-top: 4px solid var(--a-fond-2); }
.app-pay__etapes li.est-fait { border-top-color: var(--a-ok); color: var(--a-ok); }
.app-pay__etapes li.est-courant { border-top-color: var(--a-terre); color: var(--a-encre); font-weight: 700; }
.app-pay__aide { margin: 0 0 .9rem; font-size: .92rem; }
.app-pay__aide summary { cursor: pointer; font-weight: 700; color: var(--a-rade); min-height: 32px; }
.app-stripe-sim__cadre { border: 1px solid var(--a-bord); border-radius: var(--a-r); padding: .9rem 1rem; margin: 0 0 .75rem; background: oklch(99% 0.004 270); }
.app-stripe-sim__marque { margin: 0 0 .6rem; font-weight: 800; color: oklch(50% 0.2 280); letter-spacing: -.02em; }
.app-stripe-sim__marque span { color: var(--a-encre-2); font-weight: 600; letter-spacing: 0; }
.app-stripe-sim__etapes { list-style: none; display: flex; gap: .4rem; margin: 0 0 .75rem; padding: 0; flex-wrap: wrap; font-size: .78rem; color: var(--a-encre-3); }
.app-stripe-sim__etapes li.est-courant { color: oklch(50% 0.2 280); font-weight: 700; }
.app-stripe-sim__etapes li + li::before { content: "›"; margin-right: .4rem; color: var(--a-encre-3); }
.app-stripe-sim__champs p { display: grid; grid-template-columns: 9.5rem 1fr; gap: .5rem; margin: 0; padding: .45rem 0; border-top: 1px solid var(--a-bord); font-size: .9rem; }
.app-stripe-sim__champs span:first-child { color: var(--a-encre-2); }
.app-stripe-sim__val { font-weight: 600; }
.app-stripe-sim__val--vide { font-weight: 400; color: var(--a-encre-3); }
.app-stripe-sim__note { font-size: .82rem; color: var(--a-encre-2); }

/* Bien démarrer */
.app-onb { max-width: 640px; margin: 0 auto; }
.app-onb__sur { margin: 0; color: var(--a-terre-fonce); font-weight: 700; }
.app-onb h1 { margin: .2rem 0 .3rem; font-size: 1.6rem; }
.app-onb__intro { color: var(--a-encre-2); margin: 0 0 1rem; }
.app-onb__compte { margin: 0; font-weight: 700; font-size: .9rem; }
.app-onb__etapes { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: .6rem; }
.app-onb__etape { display: flex; gap: .85rem; padding: .9rem 1rem; border: 1px solid var(--a-bord); border-radius: var(--a-r); background: var(--a-surface); }
.app-onb__etape.est-courant { border-color: var(--a-terre); box-shadow: 0 0 0 3px var(--a-terre-clair); }
.app-onb__etape.est-fait { background: var(--a-fond); }
.app-onb__etape h2 { margin: 0; font-size: 1.02rem; }
.app-onb__etape p { margin: .2rem 0 .5rem; color: var(--a-encre-2); font-size: .92rem; }
.app-onb__num { flex: none; width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; background: var(--a-fond-2); }
.app-onb__etape.est-fait .app-onb__num { background: var(--a-ok-clair); color: var(--a-ok); }
.app-onb__etape.est-courant .app-onb__num { background: var(--a-terre); color: #fff; }
.app-onb__suite { text-align: center; }

/* États vides */
.app-vide { text-align: center; padding: 2rem 1rem; border: 1px dashed var(--a-bord-fort); border-radius: var(--a-r); color: var(--a-encre-2); }
.app-vide__titre { margin: 0 0 .3rem; font-weight: 700; color: var(--a-encre); font-size: 1.02rem; }
.app-vide p { margin: 0 0 .6rem; max-width: 52ch; margin-inline: auto; }

/* Toasts */
.app-toasts { position: fixed; z-index: 60; left: 16px; right: 16px; top: calc(var(--a-top-h) + 8px); display: grid; gap: .5rem; justify-items: center; pointer-events: none; }
.app-toast { pointer-events: auto; display: flex; align-items: flex-start; gap: .55rem; max-width: 560px; width: 100%; padding: .75rem .85rem; border-radius: var(--a-r); background: var(--a-encre); color: var(--a-fond); box-shadow: 0 10px 30px oklch(25% 0.02 240 / .25); animation: app-entre .25s var(--a-ease); }
.app-toast--err { background: var(--a-err); color: #fff; }
.app-toast p { margin: 0; flex: 1; font-size: .92rem; }
.app-toast__fermer { background: none; border: 0; color: inherit; font-size: 1.3rem; line-height: 1; cursor: pointer; min-width: 32px; min-height: 32px; }
.app-toast.est-sorti { opacity: 0; transform: translateY(-8px); transition: opacity .2s var(--a-ease), transform .2s var(--a-ease); }
@keyframes app-entre { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* Squelettes de chargement (navigation) */
.app-skel { display: none; max-width: 860px; margin: 0 auto; }
.app-skel span { display: block; height: 72px; border-radius: var(--a-r); margin: 0 0 .6rem; background: linear-gradient(90deg, var(--a-fond-2) 0%, var(--a-surface) 50%, var(--a-fond-2) 100%); background-size: 200% 100%; animation: app-reflet 1.1s linear infinite; }
.app-skel span:first-child { height: 32px; width: 45%; }
.app-main.est-chargement .app-contenu { display: none; }
.app-main.est-chargement .app-skel { display: block; }
@keyframes app-reflet { to { background-position: -200% 0; } }

/* Connexion */
.app-connexion { max-width: 420px; margin: 2rem auto; }
.app-connexion h1 { font-size: 1.6rem; margin: 0 0 .3rem; }
.app-connexion > p { color: var(--a-encre-2); }
.app-connexion form p { margin: 0 0 .75rem; }
.app-connexion label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: .3rem; }
.app-connexion input[type=submit], .app-connexion .button-primary { width: 100%; min-height: 48px; border-radius: var(--a-r-s); border: 0; background: var(--a-terre); color: #fff; font: 700 1rem var(--a-f); cursor: pointer; }
.app-connexion__liens { display: grid; gap: .4rem; font-size: .92rem; }
.app-onglets-connexion { display: grid; gap: 1rem; }

/* Statuts hérités et éléments existants dans la coque */
.lpdv-app .lpdv-statut { border-radius: 6px; font-size: .74rem; padding: .15rem .5rem; font-weight: 700; }
.lpdv-app .lpdv-fiabilite { background: var(--a-surface); border: 1px solid var(--a-bord); border-radius: var(--a-r); padding: .85rem 1rem; margin: 0 0 1rem; }
.lpdv-app .lpdv-step-static { border: 1px solid var(--a-bord); border-radius: var(--a-r); background: var(--a-surface); padding: .9rem 1rem; margin: 0 0 1rem; }
.lpdv-app .lpdv-table-wrap { overflow-x: auto; border: 1px solid var(--a-bord); border-radius: var(--a-r); background: var(--a-surface); }
.lpdv-app .lpdv-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.lpdv-app .lpdv-table th, .lpdv-app .lpdv-table td { padding: .55rem .65rem; border-bottom: 1px solid var(--a-bord); text-align: left; }
.lpdv-app .lpdv-carte-action { background: var(--a-surface); border: 1px solid var(--a-bord); border-radius: var(--a-r); padding: 1rem; margin: 0 0 1rem; }
.lpdv-app .lpdv-jauge { margin: 1rem 0; }
.lpdv-app .lpdv-signal { margin: 1rem 0; font-size: .92rem; }
.lpdv-app .lpdv-evaluation { background: var(--a-surface); border: 1px solid var(--a-bord); border-radius: var(--a-r); padding: .85rem 1rem; margin: 0 0 1rem; }
.lpdv-app .lpdv-flash { padding: .7rem .9rem; border-radius: var(--a-r); background: var(--a-ok-clair); color: var(--a-ok); margin: 0 0 1rem; }
.lpdv-app .lpdv-flash--err { background: var(--a-err-clair); color: var(--a-err); }
.lpdv-app .lpdv-notice { padding: .7rem .9rem; border-radius: var(--a-r); background: var(--a-attente-clair); color: var(--a-encre); margin: 0 0 1rem; }
.lpdv-app .lpdv-client, .lpdv-app .lpdv-comparatif { max-width: 100%; }
.app-ligne--colonne { align-items: flex-start; }

@media (min-width: 600px) {
	.app-top__marque { display: inline; }
	.app-compte__nom { display: inline; }
	.app-chiffres { grid-template-columns: repeat(4, 1fr); }
	.app-chiffres--3 { grid-template-columns: repeat(3, 1fr); }
	.lpdv-app .app-masque-mobile { display: inline-flex; }
	.app-barre-devis__actions .lpdv-bouton--discret { display: inline-flex; }
}

/* Ordinateur : barre latérale */
@media (min-width: 960px) {
	.app { grid-template-columns: 232px minmax(0, 1fr); grid-template-areas: "top top" "nav main"; padding-bottom: 0; }
	.app--sans-nav { grid-template-columns: minmax(0, 1fr); grid-template-areas: "top" "main"; }
	.app-nav { grid-area: nav; align-self: start; position: sticky; top: calc(var(--a-top-h) + var(--a-bandeau, 0px)); height: calc(100vh - var(--a-top-h) - var(--a-bandeau, 0px)); border-top: 0; border-right: 1px solid var(--a-bord); background: var(--a-fond); padding: 1rem .75rem; }
	.app-nav ul { display: grid; grid-template-columns: 1fr; height: auto; gap: .15rem; }
	.app-nav__lien { flex-direction: row; justify-content: flex-start; gap: .7rem; min-height: 44px; padding: 0 .75rem; border-radius: var(--a-r-s); font-size: .95rem; }
	.app-nav__lien:hover { background: var(--a-fond-2); }
	.app-nav__lien[aria-current="page"] { background: var(--a-surface); box-shadow: 0 1px 2px oklch(25% 0.02 240 / .1); }
	.app-nav__badge { position: static; margin-left: auto; }
	.app-nav__court { display: none; }
	.app-nav__long { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
	.app-main { padding: 24px 32px 96px; }
	.app-fab { bottom: 24px; right: 32px; }
	.app-barre-devis { left: 232px; }
	.lpdv-app.lpdv-app--artisan:has(.app-barre-devis) .app-nav { display: block; }
	.app-toasts { left: 232px; }
	.app-barre-form { bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.lpdv-app *, .lpdv-app *::before, .lpdv-app *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Lignes de l'éditeur dans l'application */
.lpdv-app legend { font-family: var(--a-f); }
.lpdv-app .lpdv-ligne { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: .75rem 2.4rem .25rem .75rem; background: var(--a-fond); border-color: var(--a-bord); }
.lpdv-app .lpdv-ligne__lib { grid-column: 1 / -1; }
.lpdv-app .lpdv-ligne select, .lpdv-app .lpdv-ligne input { padding-left: .5rem; padding-right: .3rem; }
@media (max-width: 420px) { .lpdv-app .lpdv-ligne { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lpdv-app .lpdv-totaux { border-radius: var(--a-r); }

/* Évaluation du particulier dans l'application */
.lpdv-app .lpdv-eval-critere { border: 0; border-top: 1px solid var(--a-bord); border-radius: 0; padding: .6rem 0; margin: 0; background: none; box-shadow: none; }
.lpdv-app .lpdv-eval-critere legend { font: 600 .95rem/1.3 var(--a-f); padding: 0; margin: 0 0 .3rem; }
.lpdv-app .lpdv-eval-choix { display: inline-flex; align-items: center; gap: .3rem; margin-right: 1rem; min-height: 36px; }
.lpdv-app .lpdv-evaluation > summary, .lpdv-app .lpdv-signal > summary { cursor: pointer; font-weight: 600; min-height: 36px; }
/* Tâches regroupées */
.app-tache-groupe > summary { list-style: none; cursor: pointer; }
.app-tache-groupe > summary::-webkit-details-marker { display: none; }
.app-tache-groupe__liste { list-style: none; margin: 0; padding: 0 .9rem .3rem 4.1rem; }
.app-tache-groupe__liste a { display: flex; justify-content: space-between; gap: .5rem; padding: .45rem 0; border-top: 1px dashed var(--a-bord); color: var(--a-encre) !important; text-decoration: none; font-size: .9rem; }
.app-tache-groupe__tout { margin: 0; padding: .2rem .9rem .8rem 4.1rem; font-size: .88rem; font-weight: 600; }
.app-chiffres dd.app-chiffres__sous { margin: .1rem 0 0; font-size: .78rem; font-weight: 500; color: var(--a-encre-2); }
