/* bonhome. Feed mobile, direction Nuit (validée le 6 septembre 2026).
   Tout est scopé sous .feed-body / .fd-* pour ne pas toucher au reste du site. */
.feed-body {
  --fd-bg: #0C171B;
  --fd-surface: #13252B;
  --fd-surface-2: #1B3036;
  --fd-text: #FFFFFF;
  --fd-text-soft: #C9D2CF;
  --fd-text-mute: #7E8C88;
  --fd-teal: #2A6670;
  --fd-sage: #8FA780;
  --fd-sage-soft: #C2D1B3;
  --fd-terracotta: #C96A44;
  --fd-line: rgba(255,255,255,0.12);
  --fd-display: "Bricolage Grotesque", "Instrument Sans", system-ui, sans-serif;
  --fd-body: "Instrument Sans", system-ui, -apple-system, sans-serif;
  --fd-brand: "Fraunces", Georgia, serif;
  margin: 0;
  background: var(--fd-bg);
  color: var(--fd-text);
  font-family: var(--fd-body);
  -webkit-font-smoothing: antialiased;
  overscroll-behavior: none;
}
.feed-body * { box-sizing: border-box; }
.feed-body [hidden] { display: none !important; }
.feed-body a { color: var(--fd-sage-soft); text-decoration: none; }

.feed-app { position: relative; height: 100dvh; width: 100%; max-width: 480px; margin: 0 auto; overflow: hidden; background: var(--fd-bg); }

/* Barre du haut, fixe */
.fd-top {
  position: absolute; top: 0; left: 0; right: 0; z-index: 20;
  display: flex; justify-content: space-between; align-items: center;
  padding: calc(env(safe-area-inset-top, 0px) + 14px) 20px 0;
  pointer-events: none;
}
.fd-top > * { pointer-events: auto; }
.fd-wordmark { position: relative; font-family: var(--fd-brand); font-size: 26px; line-height: 1; letter-spacing: -0.035em; color: var(--fd-text); }
.fd-wordmark .dot { color: var(--fd-terracotta); }
.fd-wordmark svg { position: absolute; left: 52%; top: -0.34em; width: 0.42em; height: 0.26em; }
.fd-chips { display: flex; gap: 8px; }
.fd-chip {
  display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 13px;
  border-radius: 999px; background: rgba(12,23,27,0.6); backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.14);
  font-size: 13px; font-weight: 600; color: var(--fd-text); white-space: nowrap;
}
.fd-chip-icon { padding: 0; width: 36px; justify-content: center; }
.fd-chip .pip { width: 8px; height: 8px; border-radius: 50%; background: var(--fd-terracotta); }
.fd-chip.is-link { cursor: pointer; }
.fd-chip .ico-heart { color: var(--fd-terracotta); display: inline-flex; }

/* Progression */
.fd-progress { position: absolute; top: calc(env(safe-area-inset-top, 0px) + 60px); left: 20px; right: 20px; z-index: 20; display: flex; gap: 4px; pointer-events: none; }
.fd-progress i { flex: 1; height: 3px; border-radius: 2px; background: rgba(255,255,255,0.3); }
.fd-progress i.done { background: #FFFFFF; }
.fd-progress-label { position: absolute; top: calc(env(safe-area-inset-top, 0px) + 70px); left: 20px; z-index: 20; font-size: 11px; font-weight: 600; color: rgba(255,255,255,0.75); letter-spacing: 0.04em; text-shadow: 0 1px 4px rgba(0,0,0,0.5); pointer-events: none; }

/* Défilement vertical, un bien par écran */
.fd-scroll {
  height: 100%; overflow-y: auto; scroll-snap-type: y mandatory;
  scrollbar-width: none; -webkit-overflow-scrolling: touch; touch-action: pan-y;
}
.fd-scroll::-webkit-scrollbar { display: none; }
.fd-card {
  position: relative; height: 100dvh; scroll-snap-align: start; scroll-snap-stop: always;
  overflow: hidden; background: var(--fd-bg);
  transition: transform .24s cubic-bezier(.2,.75,.25,1), opacity .2s ease;
  backface-visibility: hidden;
}
.fd-card.is-dragging,
.fd-card.is-leaving-right,
.fd-card.is-leaving-left { will-change: transform, opacity; }
.fd-card.is-leaving-right { transform: translateX(120%) rotate(8deg); opacity: 0; }
.fd-card.is-leaving-left { transform: translateX(-120%) rotate(-8deg); opacity: 0; }

.fd-photo { position: absolute; top: 0; left: 0; right: 0; height: 66%; background: var(--fd-surface-2); overflow: hidden; }
.fd-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fd-photo .fd-nophoto { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--fd-text-mute); font-size: 14px; font-weight: 600; letter-spacing: 0.04em; }
.fd-photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 55%; background: linear-gradient(180deg, rgba(12,23,27,0) 0%, rgba(12,23,27,0.92) 78%, var(--fd-bg) 100%); }
.fd-photo::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 130px; background: linear-gradient(180deg, rgba(12,23,27,0.6) 0%, rgba(12,23,27,0) 100%); z-index: 1; }

/* Tampon de score */
.fd-stamp {
  position: absolute; right: 18px; top: 46%; height: 44px; padding: 0 14px; border-radius: 999px;
  background: rgba(12,23,27,0.72); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1.5px solid var(--fd-sage); color: #fff; display: flex; align-items: center; justify-content: center; gap: 4px; z-index: 3;
}
.fd-stamp.is-b { border-color: var(--fd-sage-soft); }
.fd-stamp.is-c, .fd-stamp.is-d { border-color: rgba(255,255,255,0.28); }
.fd-stamp b { font-family: var(--fd-display); font-weight: 800; font-size: 24px; line-height: 1; letter-spacing: -0.03em; }
.fd-stamp small { font-family: var(--fd-body); font-weight: 600; font-size: 11px; color: var(--fd-text-mute); letter-spacing: 0.02em; }

/* Infos */
.fd-info { position: absolute; left: 20px; right: 128px; top: 55%; z-index: 3; display: flex; flex-direction: column; gap: 9px; text-shadow: 0 1px 6px rgba(0,0,0,0.45); }
.fd-price { display: flex; align-items: baseline; gap: 8px; }
.fd-price b { font-family: var(--fd-display); font-weight: 800; font-size: 36px; letter-spacing: -0.03em; line-height: 1; }
.fd-price span { font-size: 15px; color: var(--fd-text-soft); }
.fd-facts { font-size: 17px; font-weight: 600; line-height: 1.3; }
.fd-where { display: flex; align-items: center; gap: 6px; font-size: 15px; color: var(--fd-text-soft); line-height: 1.3; }
.fd-where svg { flex: none; }

/* Lia */
.fd-lou { position: absolute; left: 20px; right: 20px; top: 71%; z-index: 3; display: flex; gap: 12px; padding: 13px 15px; border-radius: 18px; background: var(--fd-surface); border: 1px solid rgba(255,255,255,0.08); cursor: pointer; }
.fd-lou .avatar { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--fd-teal); display: flex; align-items: center; justify-content: center; font-family: var(--fd-brand); font-size: 20px; }
.fd-lou .who { font-size: 12px; font-weight: 600; color: var(--fd-sage); letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 3px; }
.fd-lou .say { font-size: 15px; line-height: 1.4; color: #E6EAE8; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Actions */
.fd-actions { position: absolute; left: 20px; right: 20px; bottom: calc(env(safe-area-inset-bottom, 0px) + 40px); z-index: 3; display: flex; align-items: center; justify-content: space-between; }
.fd-btn { border: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--fd-text); background: transparent; padding: 0; font-family: inherit; -webkit-tap-highlight-color: transparent; }
.fd-btn:active { transform: scale(0.94); }
.fd-btn.undo { width: 52px; height: 52px; border-radius: 50%; color: #B7C2BE; border: 1.5px solid rgba(255,255,255,0.18); }
.fd-btn.undo:disabled { opacity: 0.35; }
.fd-btn.pass { width: 64px; height: 64px; border-radius: 50%; background: var(--fd-surface-2); border: 1.5px solid rgba(255,255,255,0.14); }
.fd-btn.like { width: 78px; height: 78px; border-radius: 50%; background: var(--fd-terracotta); transform: rotate(-6deg); box-shadow: 0 12px 30px rgba(201,106,68,0.4); }
.fd-btn.like:active { transform: rotate(-6deg) scale(0.94); }
.fd-mid { display: flex; gap: 16px; align-items: center; }
.fd-source { display: flex; align-items: center; gap: 6px; height: 52px; padding: 0 8px; font-size: 13px; font-weight: 600; color: var(--fd-sage-soft); }
.fd-hint { position: absolute; left: 0; right: 0; bottom: calc(env(safe-area-inset-bottom, 0px) + 10px); z-index: 3; display: flex; justify-content: center; align-items: center; gap: 6px; font-size: 12px; color: var(--fd-text-mute); letter-spacing: 0.04em; }

/* Carte de fin, états */
.fd-end { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; height: 100dvh; padding: 40px 32px; text-align: center; scroll-snap-align: start; }
.fd-end h2 { font-family: var(--fd-display); font-weight: 800; font-size: 32px; letter-spacing: -0.03em; margin: 0; line-height: 1.1; }
.fd-end p { color: var(--fd-text-soft); font-size: 16px; line-height: 1.5; margin: 0; max-width: 300px; }
.fd-end .fd-cta { margin-top: 10px; height: 52px; padding: 0 22px; border-radius: 999px; background: var(--fd-terracotta); color: #fff; font-weight: 600; font-size: 15px; display: inline-flex; align-items: center; gap: 8px; border: 0; cursor: pointer; font-family: inherit; }
.fd-end .fd-cta.ghost { background: transparent; border: 1.5px solid var(--fd-line); color: var(--fd-text); }
.fd-loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--fd-text-mute); font-size: 14px; letter-spacing: 0.04em; }

/* Panneau détail (fiche) */
.fd-sheet-backdrop { position: absolute; inset: 0; z-index: 40; background: rgba(0,0,0,0.5); opacity: 0; pointer-events: none; transition: opacity .2s; }
.fd-sheet-backdrop.open { opacity: 1; pointer-events: auto; }
.fd-sheet { position: absolute; left: 0; right: 0; bottom: 0; z-index: 41; max-height: 88dvh; overflow-y: auto; background: var(--fd-bg); border-radius: 24px 24px 0 0; padding: 12px 20px calc(env(safe-area-inset-bottom, 0px) + 24px); transform: translateY(105%); transition: transform .28s cubic-bezier(.2,.8,.2,1); border-top: 1px solid var(--fd-line); }
.fd-sheet.open { transform: translateY(0); }
.fd-sheet .grab { width: 40px; height: 4px; border-radius: 2px; background: rgba(255,255,255,0.25); margin: 0 auto 16px; }
.fd-sheet h3 { font-family: var(--fd-display); font-weight: 700; font-size: 20px; margin: 0 0 4px; line-height: 1.25; letter-spacing: -0.02em; }
.fd-sheet .addr { color: var(--fd-text-soft); font-size: 14px; margin-bottom: 16px; display: flex; gap: 6px; align-items: center; }
.fd-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
.fd-grid div { display: flex; flex-direction: column; gap: 2px; align-items: center; padding: 10px 0; border-radius: 12px; background: var(--fd-surface); }
.fd-grid b { font-family: var(--fd-display); font-weight: 700; font-size: 18px; }
.fd-grid small { font-size: 11px; color: var(--fd-text-mute); }
.fd-why { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.fd-why b { font-size: 12px; font-weight: 600; color: var(--fd-sage); letter-spacing: 0.06em; text-transform: uppercase; }
.fd-why span { font-size: 12px; color: var(--fd-text-mute); }
.fd-bars { display: flex; flex-direction: column; gap: 7px; margin-bottom: 18px; }
.fd-bar { display: flex; align-items: center; gap: 10px; }
.fd-bar label { width: 90px; font-size: 13px; color: var(--fd-text-soft); }
.fd-bar .track { flex: 1; height: 6px; border-radius: 3px; background: var(--fd-surface-2); overflow: hidden; }
.fd-bar .fill { height: 6px; border-radius: 3px; background: var(--fd-sage); }
.fd-bar .fill.low { background: var(--fd-terracotta); }
.fd-bar output { width: 28px; text-align: right; font-size: 12px; font-weight: 600; }
.fd-desc { font-size: 14px; line-height: 1.5; color: var(--fd-text-soft); margin-bottom: 18px; white-space: pre-line; }
.fd-sheet .fd-cta { width: 100%; height: 56px; border-radius: 999px; background: var(--fd-terracotta); color: #fff; font-weight: 600; font-size: 16px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; cursor: pointer; font-family: inherit; }
.fd-sheet .fd-link { display: flex; align-items: center; justify-content: center; gap: 6px; height: 44px; font-size: 13px; font-weight: 600; margin-top: 6px; }
.fd-sheet .fd-cta.ghost { background: var(--fd-surface-2); }

/* Toast */
.fd-toast { position: absolute; left: 50%; bottom: calc(env(safe-area-inset-bottom, 0px) + 150px); transform: translateX(-50%) translateY(10px); z-index: 50; padding: 10px 16px; border-radius: 999px; background: #F2F4F3; color: var(--fd-bg); font-size: 13px; font-weight: 600; opacity: 0; transition: opacity .2s, transform .2s; pointer-events: none; white-space: nowrap; }
.fd-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* Match */
.fd-match { position: absolute; inset: 0; z-index: 45; display: none; align-items: center; justify-content: center; flex-direction: column; gap: 10px; background: rgba(12,23,27,0.85); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.fd-match.show { display: flex; animation: fdPop .35s ease; }
.fd-match .heart { width: 96px; height: 96px; border-radius: 50%; background: var(--fd-terracotta); display: flex; align-items: center; justify-content: center; transform: rotate(-6deg); box-shadow: 0 16px 40px rgba(201,106,68,0.5); }
.fd-match h2 { font-family: var(--fd-display); font-weight: 800; font-size: 34px; letter-spacing: -0.03em; margin: 8px 0 0; }
.fd-match p { color: var(--fd-text-soft); margin: 0; font-size: 15px; }
@keyframes fdPop { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }

@media (min-width: 481px) {
  .feed-app { box-shadow: 0 0 0 1px var(--fd-line); }
}

/* Onboarding : conversation avec Lia dans le feed */
.fd-ob { display: flex; flex-direction: column; height: 100dvh; padding: calc(env(safe-area-inset-top, 0px) + 14px) 20px calc(env(safe-area-inset-bottom, 0px) + 16px); gap: 12px; }
.fd-ob-head { display: flex; justify-content: space-between; align-items: center; }
.fd-ob-meta { font-size: 12px; font-weight: 600; color: var(--fd-text-mute); letter-spacing: 0.04em; }
.fd-ob-steps { display: flex; gap: 4px; }
.fd-ob-steps i { flex: 1; height: 3px; border-radius: 2px; background: rgba(255,255,255,0.18); }
.fd-ob-steps i.done { background: var(--fd-sage); }
.fd-ob-body { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 8px 0; scrollbar-width: none; }
.fd-ob-body::-webkit-scrollbar { display: none; }
.fd-ob-row { display: flex; gap: 10px; align-items: flex-end; }
.fd-ob-row.me { justify-content: flex-end; }
.fd-ob-avatar { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--fd-teal); display: flex; align-items: center; justify-content: center; font-family: var(--fd-brand); font-size: 20px; color: #fff; }
.fd-ob-msg { max-width: 82%; padding: 13px 16px; font-size: 16px; line-height: 1.4; }
.fd-ob-msg.bot { border-radius: 20px 20px 20px 6px; background: var(--fd-surface); border: 1px solid rgba(255,255,255,0.08); color: #F2F4F3; }
.fd-ob-msg.bot.ok { border-color: rgba(143,167,128,0.5); }
.fd-ob-msg.me { border-radius: 20px 20px 6px 20px; background: var(--fd-terracotta); color: #fff; font-weight: 500; }
.fd-ob-sugs { display: flex; flex-wrap: wrap; gap: 8px; }
.fd-ob-sugs:empty { display: none; }
.fd-ob-sugs button { height: 40px; padding: 0 14px; border-radius: 999px; border: 1.5px solid rgba(255,255,255,0.22); background: transparent; color: #fff; font-size: 14px; font-weight: 600; font-family: inherit; cursor: pointer; }
.fd-ob-form { display: flex; gap: 10px; align-items: center; }
.fd-ob-form input { flex: 1; height: 56px; padding: 0 18px; border-radius: 999px; background: var(--fd-surface); border: 1px solid rgba(255,255,255,0.14); color: #fff; font-size: 16px; font-family: inherit; outline: none; }
.fd-ob-form input::placeholder { color: var(--fd-text-mute); }
.fd-ob-form input:focus { border-color: var(--fd-sage); }
.fd-btn.send { flex: none; width: 56px; height: 56px; border-radius: 50%; background: var(--fd-terracotta); color: #fff; }

.fd-sheet-close { position: absolute; top: 10px; right: 14px; width: 44px; height: 44px; border-radius: 50%; background: var(--fd-surface-2); color: var(--fd-text); }
.fd-sheet { position: absolute; }

.fd-crit { font-size: 13px; color: var(--fd-text-mute); max-width: 320px; line-height: 1.5; }

/* ------------------------------------------------------------------
   Disposition bureau (>= 900 px) : menu a gauche, colonne feed au centre,
   fiche du bien courant a droite. Sur mobile, seule la colonne existe.
   ------------------------------------------------------------------ */
.fd-side, .fd-detail { display: none; }
.fd-main { position: relative; height: 100dvh; }
.fd-coach { position: absolute; inset: 0; z-index: 60; background: rgba(6,13,16,0.82); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; padding: 24px; }
.fd-coach-box { width: 100%; max-width: 380px; padding: 28px 24px; border-radius: 24px; background: var(--fd-surface); border: 1px solid var(--fd-line); display: flex; flex-direction: column; gap: 14px; }
.fd-coach-box h2 { font-family: var(--fd-display); font-weight: 800; font-size: 28px; letter-spacing: -0.03em; margin: 0 0 4px; line-height: 1.1; }
.fd-coach-box .row { display: flex; gap: 14px; align-items: center; font-size: 15px; line-height: 1.4; color: var(--fd-text-soft); }
.fd-coach-box .row b { color: var(--fd-text); }
.fd-coach-box p { margin: 4px 0 6px; font-size: 14px; color: var(--fd-text-mute); line-height: 1.5; }
.fd-coach-box .fd-cta { height: 52px; border-radius: 999px; background: var(--fd-terracotta); color: #fff; font-weight: 600; font-size: 15px; border: 0; cursor: pointer; font-family: inherit; }
.k { flex: none; width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--fd-surface-2); border: 1px solid rgba(255,255,255,0.14); color: var(--fd-text); }
.k.like { background: var(--fd-terracotta); border: 0; transform: rotate(-6deg); }

@media (min-width: 900px) {
  .feed-app { max-width: none; display: grid; grid-template-columns: 240px 440px minmax(0, 1fr); height: 100dvh; overflow: hidden; }
  .fd-side { display: flex; flex-direction: column; gap: 28px; padding: 28px 22px; border-right: 1px solid var(--fd-line); background: var(--fd-bg); }
  .fd-side .fd-wordmark { font-size: 28px; }
  .fd-nav { display: flex; flex-direction: column; gap: 4px; }
  .fd-nav a { display: flex; align-items: center; gap: 12px; height: 46px; padding: 0 12px; border-radius: 12px; font-size: 15px; font-weight: 600; color: var(--fd-text-soft); }
  .fd-nav a:hover { background: var(--fd-surface); color: var(--fd-text); }
  .fd-nav a.on { background: var(--fd-surface); color: var(--fd-text); }
  .fd-legend { margin-top: auto; display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: var(--fd-text-soft); }
  .fd-legend b { font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fd-sage); }
  .fd-legend > div { display: flex; align-items: center; gap: 10px; }
  .fd-legend .k { width: 32px; height: 32px; }
  .fd-legend .k svg { width: 16px; height: 16px; }
  .fd-legend p { margin: 4px 0 0; color: var(--fd-text-mute); font-size: 12px; }
  .fd-main { border-right: 1px solid var(--fd-line); }
  .fd-card { height: 100dvh; }
  .fd-hint { display: none; }
  .fd-detail { display: block; overflow-y: auto; padding: 28px 32px 40px; background: #0A1417; }
  .fd-detail h3 { font-family: var(--fd-display); font-weight: 700; font-size: 24px; margin: 0 0 6px; letter-spacing: -0.02em; line-height: 1.2; }
  .fd-detail .addr { color: var(--fd-text-soft); font-size: 14px; margin-bottom: 18px; display: flex; gap: 6px; align-items: center; }
  .fd-detail .fd-cta { width: 100%; max-width: 420px; height: 56px; border-radius: 999px; background: var(--fd-terracotta); color: #fff; font-weight: 600; font-size: 16px; display: flex; align-items: center; justify-content: center; gap: 8px; }
  .fd-detail .fd-link { display: inline-flex; align-items: center; gap: 6px; height: 44px; font-size: 13px; font-weight: 600; margin-top: 6px; }
  .fd-detail .fd-grid { max-width: 420px; }
  .fd-detail .fd-bars { max-width: 420px; }
  .fd-detail .fd-desc { max-width: 560px; }
  .fd-detail-empty { color: var(--fd-text-mute); font-size: 15px; padding-top: 40px; }
  .fd-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
  .fd-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; background: var(--fd-surface-2); }
  .fd-gallery img:first-child { grid-column: span 3; aspect-ratio: 16 / 9; }
  .fd-sheet, .fd-sheet-backdrop { display: none; }
  .fd-coach { position: fixed; }
}

/* Sans compte : aperçu de 3 biens, puis création de compte dans le feed (9.9.2026) */
button.fd-source { border: 0; background: transparent; cursor: pointer; font-family: inherit; }
button.fd-link { border: 0; background: transparent; cursor: pointer; font-family: inherit; color: var(--fd-sage-soft); width: 100%; }
.fd-detail button.fd-cta, .fd-sheet button.fd-cta { border: 0; cursor: pointer; font-family: inherit; }
.fd-auth { z-index: 70; }
.fd-auth .fd-coach-box { position: relative; gap: 8px; }
.fd-auth .fd-coach-box p { margin: 0 0 4px; }
.fd-auth-close { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border-radius: 50%; background: var(--fd-surface-2); }
.fd-auth-form { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.fd-auth-form input { height: 52px; padding: 0 16px; border-radius: 14px; background: var(--fd-bg); border: 1px solid rgba(255,255,255,0.14); color: #fff; font-size: 16px; font-family: inherit; outline: none; }
.fd-auth-form input:focus { border-color: var(--fd-sage); }
.fd-auth-form input::placeholder { color: var(--fd-text-mute); }
.fd-auth-err { color: #F0A58A; font-size: 14px; line-height: 1.4; }
.fd-auth-switch { border: 0; background: transparent; color: var(--fd-sage-soft); font-size: 14px; font-weight: 600; cursor: pointer; font-family: inherit; padding: 6px 0 0; }
.fd-end .fd-cta + .fd-cta { margin-top: 0; }

/* Audit launch: focus, resilient galleries, readable status. */
.feed-app :focus-visible{outline:3px solid #C2D1B3;outline-offset:4px}
.fd-gallery .fd-nophoto{min-height:160px;display:grid;place-items:center;background:#1B3036;color:#C9D2CF;padding:16px;text-align:center}
.fd-photo .fd-nophoto{padding:24px;text-align:center;color:#C9D2CF}
@media(prefers-reduced-motion:reduce){.feed-app *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:480px){.fd-chips #fd-new{display:none}.fd-top{gap:8px}.fd-chips{gap:6px}.fd-chip{padding:0 10px}.fd-source{max-width:110px}}
.fd-gallery .fd-nophoto{flex:1;min-width:160px;border-radius:12px}
.fd-grid small{line-height:1.4}

#manual-form label{display:grid;gap:6px;color:#C9D2CF}#manual-form input,#manual-form select{min-height:48px;padding:12px;border-radius:12px;background:#13252B;color:#fff;border:1px solid #7E8C88;font:inherit}#manual-form p{line-height:1.5;color:#C9D2CF}

/* Directional stamps stay on the exposed side while the card follows the finger. */
.fd-card[data-swipe]::after {
  content: attr(data-swipe); position: absolute; z-index: 8; top: 125px; left: 22px;
  transform: rotate(-10deg); padding: 10px 18px; border-radius: 12px;
  background: rgba(201,106,68,.96); color: #fff; border: 3px solid #cf7147;
  font-size: 26px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase;
  pointer-events: none; box-shadow: 0 4px 18px #0003;
}
.fd-card[data-swipe="Passé"]::after {
  left: auto; right: 22px; transform: rotate(10deg);
  background: rgba(27,48,54,.96); border-color: #e2e8e5;
}
.fd-card.is-dragging { user-select: none; }

/* Shared desktop/mobile gallery; full gallery opens without navigating the feed. */
.fd-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.fd-gallery-photo{padding:0;border:0;border-radius:12px;background:var(--fd-surface-2);overflow:hidden;cursor:zoom-in}
.fd-gallery-photo:first-child{grid-column:span 3}
.fd-gallery .fd-gallery-photo img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0}
.fd-gallery .fd-gallery-photo:first-child img{aspect-ratio:16/9}
.fd-all-photos{border:1px solid #8FA780;border-radius:24px;padding:12px 20px;background:transparent;color:inherit;font:inherit;cursor:pointer;margin-bottom:24px}
.fd-gallery-photo:focus-visible,.fd-all-photos:focus-visible{outline:3px solid #C96D44;outline-offset:3px}
.fd-location{margin:24px 0;padding:16px;background:#14282e;border-radius:16px}
.fd-location iframe{width:100%;height:260px;border:0;border-radius:12px;margin-top:12px}
.fd-location p{margin:12px 0 6px}.fd-location small{display:block;color:#C9D2CF;line-height:1.5}
.fd-lightbox{box-sizing:border-box;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:20px;padding-top:max(20px,env(safe-area-inset-top));border:0;background:#091317;color:#fff}
.fd-lightbox::backdrop{background:#091317}
.fd-lightbox-head{display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px}
.fd-lightbox button{min-width:48px;min-height:48px;border:1px solid #516266;border-radius:24px;background:#14282e;color:#fff;font:inherit;cursor:pointer;padding:10px 18px}
.fd-lightbox button:disabled{opacity:.35}.fd-lightbox button:focus-visible{outline:3px solid #C96D44}
.fd-lightbox-stage{height:calc(100% - 70px);display:flex;align-items:center;justify-content:space-between;gap:16px}
.fd-lightbox-stage img{min-width:0;max-width:calc(100% - 150px);max-height:100%;object-fit:contain}
.fd-lightbox-error{position:absolute;top:45%;left:20%;right:20%;text-align:center;pointer-events:none}
@media(max-width:600px){.fd-lightbox{padding:12px}.fd-lightbox-stage{position:relative}.fd-lightbox-stage img{max-width:100%;width:100%}.fd-lightbox-stage button{position:absolute;bottom:12px;z-index:1}.fd-lightbox-stage button:last-child{right:0}}

/* Align facts and their labels consistently, including multi-line values. */
.fd-grid{gap:10px;margin-bottom:8px}
.fd-grid div{min-height:92px;padding:14px 10px;justify-content:center;text-align:center;gap:6px}
.fd-grid b{line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fd-grid small{min-height:30px;line-height:1.35;color:var(--fd-text-soft);text-align:center}
.fd-distance-note{font-size:11px;line-height:1.45;color:var(--fd-text-mute);margin:0 0 24px}
.fd-lou{align-items:center;padding:14px 16px;gap:12px}
.fd-lou>div:last-child{min-width:0}.fd-lou .who{line-height:1.3;margin-bottom:4px}.fd-lou .say{line-height:1.45}
.fd-detail .fd-why,.fd-detail .fd-distance-note,.fd-detail .fd-grid,.fd-detail .fd-bars{max-width:560px}
.fd-why{gap:12px;flex-wrap:wrap}
.fd-sheet .addr,.fd-detail .addr{align-items:flex-start;line-height:1.45;gap:8px}
.fd-sheet .addr svg,.fd-detail .addr svg{flex-shrink:0;margin-top:3px}
@media(max-width:360px){.fd-grid{gap:6px}.fd-grid div{padding:12px 6px}.fd-grid b{font-size:16px}}
