/* ════════════════════════════════════════════════════════════
   PAGE LAYOUT — masquage des sections d'accueil hors vue Feed
   (évite la friction "5 écrans de scroll pour atteindre le login")
   ════════════════════════════════════════════════════════════ */
body:not([data-ls-view="feed"]) .ls-hero,
body:not([data-ls-view="feed"]) .ls-how,
body:not([data-ls-view="feed"]) .ls-value-strip,
body:not([data-ls-view="feed"]) .ls-testimonials,
body:not([data-ls-view="feed"]) .ls-trust-banner,
body:not([data-ls-view="feed"]) .ls-earnings { display: none !important; }
body:not([data-ls-view="feed"]) .ls-app { padding-top: calc(var(--header-h) + 24px); min-height: auto; padding-bottom: 32px; }
body:not([data-ls-view="feed"]) .ls-footer { margin-top: 24px; }
body[data-ls-view="login"] .ls-view#view-login,
body[data-ls-view="publish"] .ls-view#view-publish { max-width: 720px; margin: 0 auto; padding: 0 20px 48px; }

:root{
--bg:#F7FCFF;--bg-card:#fff;--bg-elevated:#ECFAFF;--bg-input:#F7FCFF;
--text:#2D3436;--text-secondary:#636E72;--text-muted:#B2BEC3;
--border:#DDEFF6;--border-light:#ECF7FB;
--primary:#10AEEA;--primary-light:#E4F7FF;--primary-dark:#0583BA;
--secondary:#2FE47D;--secondary-light:#E8FBF0;--secondary-dark:#18A957;
--sun:#FFE66D;--sun-light:#FFFDE7;
--sky:#45B7D1;--sky-light:#E8F7FB;
--purple:#A29BFE;
--warning:#FBBF24;--danger:#FF4757;
--bg-light:#F7FBFD;--text-light:#8A99A3;
--primary-rgb:16,174,234;--secondary-rgb:47,228,125;
--hero-bg:#173443;--earnings-bg:#172E3A;
--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;
--shadow:0 2px 8px rgba(0,0,0,.06);--shadow-md:0 4px 16px rgba(0,0,0,.08);--shadow-lg:0 12px 32px rgba(0,0,0,.1);
--header-h:64px;--transition:.2s cubic-bezier(.4,0,.2,1);
--font:'Inter',-apple-system,sans-serif;--font-display:'Plus Jakarta Sans',var(--font);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}

.ls-header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.85);backdrop-filter:blur(16px);border-bottom:1px solid rgba(0,0,0,.05);height:var(--header-h);box-shadow:0 1px 3px rgba(0,0,0,.02)}
.ls-header__inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:24px;padding:0 24px;height:100%}
.ls-logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0;transition:transform .2s ease;min-width:150px}
.ls-logo:hover{transform:scale(1.02)}
.ls-logo__img,.custom-logo{display:block;height:48px;width:auto;object-fit:contain;max-width:260px}
.ls-search{flex:1;max-width:540px;position:relative}
.ls-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:18px;pointer-events:none}
.ls-search input{width:100%;padding:12px 20px 12px 46px;background:#f8fafc;border:1px solid transparent;border-radius:var(--radius-full);font-size:15px;color:var(--text);outline:none;transition:all .3s ease;font-family:var(--font)}
.ls-search input::placeholder{color:var(--text-muted)}
.ls-search input:hover{background:#f1f5f9}
.ls-search input:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}
.ls-nav{display:flex;align-items:center;gap:8px;margin-left:auto}
.ls-nav__btn{position:relative;display:flex;align-items:center;gap:8px;padding:10px 16px;background:transparent;border:none;border-radius:var(--radius-full);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:var(--font)}
.ls-nav__btn:hover,.ls-nav__btn.active{background:var(--primary-light);color:var(--primary-dark)}
.ls-nav__btn i{font-size:22px}
.ls-nav__avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;aspect-ratio:1/1;object-position:center;border:2px solid #fff;box-shadow:0 2px 4px rgba(0,0,0,.1)}
.ls-nav__unread{position:absolute;top:3px;right:5px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--secondary);color:#fff;border:2px solid #fff;font-size:10px;font-weight:900;line-height:14px;display:inline-flex;align-items:center;justify-content:center}
.ls-nav__unread[hidden]{display:none}
.ls-nav__btn--logout{color:var(--text-muted);padding:10px}
.ls-nav__btn--logout:hover{background:#FFF0F0;color:var(--danger)}

.ls-app{padding-top:var(--header-h);min-height:100vh}
.ls-view{display:none;animation:fadeUp .3s ease}.ls-view--active{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* HERO CTA */
.ls-hero{position:relative;padding:80px 20px 60px;text-align:center;overflow:hidden;background:var(--hero-bg);min-height:500px;display:flex;align-items:center;justify-content:center}
.ls-hero__bg{position:absolute;inset:0;background:url('../img/hero-bg.jpg') center/cover no-repeat;z-index:0;opacity:0.4}
.ls-hero__bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.5) 0%,rgba(0,0,0,0.8) 100%);}
.ls-hero__inner{max-width:800px;margin:0 auto;position:relative;z-index:10;color:#fff}
.ls-hero__pill{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;background:rgba(255,255,255,0.15);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.2);border-radius:var(--radius-full);font-size:14px;font-weight:600;margin-bottom:24px;color:#fff}
/* Fusée — palette emoji 🚀 : corps rouge vif + flammes orange/jaune */
.ls-hero__pill-icon{color:#E63946;font-size:22px;filter:drop-shadow(0 0 6px rgba(230,57,70,.55))}
.ls-hero__pill-icon.ph-duotone::after{color:#FFB300;opacity:1}
.ls-hero h1{font-family:var(--font-display);font-size:40px;font-weight:800;margin-bottom:16px;line-height:1.2;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,0.5)}
.ls-hero h1 em{font-style:normal;color:var(--secondary);text-shadow:0 0 20px rgba(var(--secondary-rgb),0.3)}
.ls-hero p{font-size:18px;margin-bottom:32px;line-height:1.6;color:rgba(255,255,255,0.9);text-shadow:0 1px 4px rgba(0,0,0,0.5)}
.ls-hero__ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:8px}
.ls-hero__cta{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border:none;border-radius:var(--radius-full);font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;font-family:var(--font);min-height:50px}
.ls-hero__cta--primary{background:var(--primary);color:#fff;box-shadow:0 0 20px rgba(var(--primary-rgb),0.4)}
.ls-hero__cta--primary:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 0 30px rgba(var(--primary-rgb),0.6)}
.ls-hero__cta--outline{background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.6);backdrop-filter:blur(8px)}
.ls-hero__cta--outline:hover{background:rgba(255,255,255,.18);border-color:#fff;transform:translateY(-2px)}
.ls-hero__cta i{font-size:22px}
@media(max-width:560px){
  .ls-hero__ctas{flex-direction:column;align-items:stretch;padding:0 8px}
  .ls-hero__cta{width:100%;justify-content:center}
}
.ls-hero__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:36px auto 0;max-width:1080px}
.ls-hero__stat{display:flex;align-items:center;gap:12px;padding:14px 16px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:14px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .25s ease,background .25s ease,box-shadow .25s ease;text-align:left;min-width:0}
.ls-hero__stat:hover{transform:translateY(-3px);background:rgba(255,255,255,.16);box-shadow:0 12px 28px rgba(0,0,0,.18)}
.ls-hero__stat>i{font-size:30px;color:var(--secondary);flex-shrink:0;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}
.ls-hero__stat-body{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.ls-hero__stat strong{display:block;font-size:18px;font-weight:800;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,0.35);line-height:1.1;font-family:var(--font-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-hero__stat span{font-size:12px;color:rgba(255,255,255,0.85);font-weight:500;margin-top:3px;line-height:1.3}

/* FLOATING ICONS (Neon & Dynamic) */
.ls-hero__floating-icons{position:absolute;inset:0;z-index:5;pointer-events:none}
.float-icon{position:absolute;width:56px;height:56px;background:rgba(255,255,255,0.05);backdrop-filter:blur(8px);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;border:1px solid rgba(255,255,255,0.1);animation:floatDyn 8s cubic-bezier(0.4,0,0.2,1) infinite alternate}
.float-icon--1{top:15%;left:12%;color:var(--primary);box-shadow:0 0 20px rgba(var(--primary-rgb),0.6),inset 0 0 10px rgba(var(--primary-rgb),0.2);animation-delay:0s;animation-duration:7s}
.float-icon--2{top:45%;right:12%;color:var(--secondary);box-shadow:0 0 20px rgba(var(--secondary-rgb),0.6),inset 0 0 10px rgba(var(--secondary-rgb),0.2);animation-delay:-2s;animation-duration:8s}
.float-icon--3{bottom:20%;left:25%;color:var(--warning);box-shadow:0 0 20px rgba(251,191,36,0.6),inset 0 0 10px rgba(251,191,36,0.2);animation-delay:-4s;animation-duration:6s}
.float-icon--4{top:20%;right:25%;color:#a29bfe;box-shadow:0 0 20px rgba(162,155,254,0.6),inset 0 0 10px rgba(162,155,254,0.2);animation-delay:-3s;animation-duration:9s}
.float-icon--5{bottom:30%;right:30%;color:var(--secondary);box-shadow:0 0 20px rgba(47,228,125,0.55),inset 0 0 10px rgba(47,228,125,0.18);animation-delay:-1s;animation-duration:7.5s}

@keyframes floatDyn{
  0%{transform:translate(0,0) rotate(0deg)}
  33%{transform:translate(15px,-25px) rotate(8deg)}
  66%{transform:translate(-10px,-15px) rotate(-5deg)}
  100%{transform:translate(0,-30px) rotate(10deg)}
}

/* Bandeau succès post-réservation (rassurance novice : délai 48h + annulation possible) */
.ls-reservation-success{
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;
  padding:16px 18px;border-radius:16px;
  background:linear-gradient(135deg,var(--secondary-light) 0%,#F0FAFF 100%);
  border:1px solid rgba(47,228,125,.32);
  margin-top:8px;
}
.ls-reservation-success__icon{font-size:36px;color:var(--secondary-dark);flex-shrink:0;line-height:1}
.ls-reservation-success__icon.ph-duotone::after{color:var(--primary);opacity:1}
.ls-reservation-success__body{flex:1;min-width:180px}
.ls-reservation-success__body strong{display:block;font-size:15px;color:var(--text);font-weight:800;margin-bottom:6px}
.ls-reservation-success__body p{font-size:13px;color:var(--text-secondary);line-height:1.5;margin:6px 0 0;display:flex;align-items:flex-start;gap:8px}
.ls-reservation-success__body p i{color:var(--primary-dark);flex-shrink:0;margin-top:2px}
.ls-reservation-success__cancel{margin-top:6px!important}
.ls-reservation-success__cancel i{color:var(--text-muted)!important}
.ls-reservation-success__actions{flex-basis:100%;display:flex;justify-content:flex-end;margin-top:4px}
@media(max-width:480px){
  .ls-reservation-success{padding:14px}
  .ls-reservation-success__actions{justify-content:stretch}
  .ls-reservation-success__actions .ls-btn{flex:1;justify-content:center}
}

/* Logout row dans le panneau Mes informations (accessible y compris en mobile) */
.ls-profile__logout-row{margin-top:18px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.ls-profile__logout-sep{width:100%;border:0;border-top:1px solid var(--border-light);margin:0}
.ls-profile__logout-link{color:var(--text-secondary);border-color:var(--border)}
.ls-profile__logout-link:hover{color:var(--danger);border-color:var(--danger);background:#FFF0F0}

/* ─── HELP FAB GROUP : pilule native cyan unifiée, accent vert chat ─────
   Reprend le code couleur du logo (anneau cyan + accent vert), sans
   overlap maladroit. Container unique avec deux zones cliquables. */
.ls-help-fab-group{
  position:fixed;bottom:24px;right:24px;z-index:280;
  display:inline-flex;align-items:stretch;gap:0;
  padding:5px;border-radius:99px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  box-shadow:0 10px 28px rgba(var(--primary-rgb),.38),0 2px 6px rgba(0,0,0,.10);
  transition:transform .22s cubic-bezier(.4,0,.2,1),box-shadow .22s ease;
}
.ls-help-fab-group:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(var(--primary-rgb),.55),0 4px 10px rgba(0,0,0,.12)}

/* Sous-bouton CHAT : cercle vert "satellite" intégré DANS la pilule cyan
   (reprend l'esprit du logo où le point vert vit dans l'anneau cyan). */
.ls-help-fab-chat{
  width:40px;height:40px;flex:0 0 auto;
  border:0;cursor:pointer;border-radius:50%;
  background:linear-gradient(135deg,var(--secondary) 0%,var(--secondary-dark) 100%);
  color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 3px 8px rgba(0,0,0,.18),inset 0 -2px 4px rgba(0,0,0,.12);
  transition:transform .15s ease,filter .15s ease;
}
.ls-help-fab-chat:hover{transform:scale(1.08) rotate(-4deg);filter:brightness(1.06) saturate(1.08)}
.ls-help-fab-chat:active{transform:scale(.96)}
.ls-help-fab-chat i{font-size:20px;line-height:1}
.ls-help-fab-chat.ph-duotone::after{color:rgba(255,255,255,.55);opacity:1}
.ls-help-fab-chat:focus-visible{outline:3px solid #fff;outline-offset:3px}

/* Bouton AIDE principal : zone label/icône à droite dans la pilule */
.ls-help-fab{
  display:inline-flex;align-items:center;gap:8px;
  padding:0 18px 0 14px;border:0;cursor:pointer;
  background:transparent;color:#fff;border-radius:99px;
  font-family:var(--font);font-size:15px;font-weight:700;line-height:1;
  min-height:40px;
  transition:background .15s ease,transform .15s ease;
}
.ls-help-fab:hover{background:rgba(255,255,255,.14);transform:none}
.ls-help-fab:active{background:rgba(255,255,255,.22)}
.ls-help-fab i{font-size:20px;line-height:1}
.ls-help-fab.ph-duotone::after{color:#FFD700;opacity:1}
.ls-help-fab:focus-visible{outline:none;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 2px #fff}

/* Masque tout le groupe quand une modal plein écran du thème est ouverte */
body.is-modal-open .ls-help-fab-group{display:none}

@media(max-width:768px){
  .ls-help-fab-group{bottom:calc(82px + env(safe-area-inset-bottom));right:14px;padding:4px}
  .ls-help-fab-chat{width:36px;height:36px}
  .ls-help-fab-chat i{font-size:18px}
  .ls-help-fab{padding:0 14px 0 10px;font-size:14px;min-height:36px}
  .ls-help-fab span{display:none}
  .ls-help-fab i{font-size:18px}
}
.ls-help-modal{position:fixed;inset:0;z-index:420;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s ease}
.ls-help-modal.is-open{opacity:1;pointer-events:auto}
.ls-help-modal__backdrop{position:absolute;inset:0;background:rgba(7,24,33,.6);backdrop-filter:blur(6px)}
.ls-help-modal__panel{position:relative;background:#fff;border-radius:22px;width:100%;max-width:580px;max-height:88vh;overflow:auto;padding:26px 24px;box-shadow:0 30px 80px rgba(7,24,33,.4)}
.ls-help-modal__close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;background:rgba(7,24,33,.08);color:var(--text);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px}
.ls-help-modal h3{font-family:var(--font-display);font-size:20px;font-weight:800;margin-bottom:6px;display:flex;align-items:center;gap:10px;color:var(--text)}
.ls-help-modal h3 i{font-size:28px;color:var(--primary)}
.ls-help-modal h3 i.ph-duotone::after{color:var(--secondary);opacity:1}
.ls-help-modal__intro{font-size:14px;color:var(--text-secondary);margin-bottom:18px}
.ls-help-faq{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:8px}
.ls-help-faq details{border:1px solid var(--border-light);border-radius:12px;background:var(--bg);transition:background .15s ease}
.ls-help-faq details[open]{background:#fff;border-color:var(--primary-light);box-shadow:0 4px 14px rgba(16,50,70,.06)}
.ls-help-faq summary{padding:12px 14px;cursor:pointer;font-weight:700;font-size:14px;color:var(--text);display:flex;align-items:center;gap:10px;list-style:none}
.ls-help-faq summary::-webkit-details-marker{display:none}
.ls-help-faq summary i{font-size:18px;color:var(--primary);flex:0 0 auto}
.ls-help-faq summary::after{content:'+';margin-left:auto;font-size:18px;font-weight:800;color:var(--text-muted);transition:transform .2s ease}
.ls-help-faq details[open] summary::after{content:'−';color:var(--primary-dark)}
.ls-help-faq p{padding:0 14px 14px 44px;font-size:13px;color:var(--text-secondary);line-height:1.55;margin:0}
.ls-help-modal__cta{display:flex;gap:10px;flex-wrap:wrap}
.ls-help-modal__cta .ls-btn{flex:1;min-width:160px;justify-content:center}

/* HOW IT WORKS — onboarding novices */
.ls-how{padding:48px 20px 36px;background:linear-gradient(180deg,#fff 0%,var(--bg) 100%)}
.ls-how__inner{max-width:1100px;margin:0 auto;text-align:center}
.ls-how__title{font-family:var(--font-display);font-size:clamp(22px,3vw,30px);font-weight:800;color:var(--text);margin-bottom:6px}
.ls-how__sub{font-size:15px;color:var(--text-secondary);margin-bottom:28px}
.ls-how__steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;counter-reset:step}
.ls-how__step{position:relative;background:#fff;border:1px solid var(--border-light);border-radius:20px;padding:24px 20px 20px;text-align:left;box-shadow:0 8px 22px rgba(16,50,70,.05);transition:transform .25s ease,box-shadow .25s ease}
.ls-how__step:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(16,50,70,.1)}
.ls-how__num{position:absolute;top:-14px;left:18px;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-family:var(--font-display);box-shadow:0 6px 14px rgba(var(--primary-rgb),.35);font-size:16px}
.ls-how__icon{font-size:42px;color:var(--primary);margin:8px 0 12px;display:block}
.ls-how__icon.ph-duotone::after{color:var(--secondary);opacity:1}
.ls-how__step h3{font-family:var(--font-display);font-size:17px;font-weight:800;color:var(--text);margin-bottom:6px}
.ls-how__step p{font-size:14px;color:var(--text-secondary);line-height:1.5}
.ls-how__more{display:inline-flex;align-items:center;gap:6px;margin-top:22px;color:var(--primary-dark);font-weight:700;text-decoration:none;font-size:14px}
.ls-how__more:hover{text-decoration:underline}
@media(max-width:768px){
  .ls-how{padding:32px 14px 24px}
  .ls-how__steps{grid-template-columns:1fr;gap:22px}
}

/* TESTIMONIALS — preuve sociale */
.ls-testimonials{padding:42px 20px;background:#fff;border-top:1px solid var(--border-light)}
.ls-testimonials__inner{max-width:1100px;margin:0 auto}
.ls-testimonials__title{font-family:var(--font-display);font-size:clamp(20px,2.6vw,26px);font-weight:800;color:var(--text);text-align:center;margin-bottom:24px}
.ls-testimonials__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ls-testimonial{margin:0;background:var(--bg);border:1px solid var(--border-light);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:12px}
.ls-testimonial__head{display:flex;align-items:center;gap:12px}
.ls-testimonial__avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;font-family:var(--font-display);flex-shrink:0}
.ls-testimonial__head strong{display:block;font-size:14px;color:var(--text)}
.ls-testimonial__role{font-size:12px;color:var(--text-muted)}
.ls-testimonial blockquote{margin:0;font-size:14px;color:var(--text-secondary);font-style:italic;line-height:1.55;quotes:none}
.ls-testimonial__stars{color:var(--warning);font-size:14px;letter-spacing:1px}
@media(max-width:900px){.ls-testimonials__grid{grid-template-columns:1fr;gap:14px}}

/* VALUE STRIP (fusion Trust + Earnings) */
.ls-value-strip{background:#fff;padding:18px 20px;border-bottom:1px solid var(--border-light)}
.ls-value-strip__inner{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;
}
.ls-value-item{
  display:flex;align-items:center;gap:12px;
  background:var(--bg);border:1px solid var(--border-light);border-radius:14px;
  padding:12px 14px;min-width:0;
}
.ls-value-item__icon{font-size:28px;color:var(--primary);flex:0 0 auto}
.ls-value-item__icon--accent{color:var(--secondary)}
.ls-value-item__icon--warn{color:var(--warning)}
.ls-value-item strong{display:block;font-size:15px;font-weight:800;color:var(--text);line-height:1.15;font-family:var(--font-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-value-item span{display:block;font-size:12px;color:var(--text-secondary);line-height:1.3;margin-top:2px}
@media(max-width:768px){
  .ls-value-strip__inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ls-value-item{padding:10px 12px;gap:10px}
  .ls-value-item__icon{font-size:24px}
  .ls-value-item strong{font-size:14px}
}

@media(max-width:768px){
  .ls-hero h1{font-size:36px}
  .ls-hero__stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:420px;gap:10px}
  .float-icon{display:none}
}

/* LOCATION BAR */
.ls-location-bar{padding:12px 20px;max-width:1200px;margin:0 auto}
.ls-location-bar__btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--secondary-light);border:1px solid #C6F7E2;border-radius:var(--radius-full);color:#0B8457;font-size:13px;font-weight:500;cursor:pointer;transition:var(--transition);font-family:var(--font)}
.ls-location-bar__btn:hover{background:#C6F7E2}
.ls-location-bar__btn.active{background:var(--secondary);color:#fff;border-color:var(--secondary)}

/* CATEGORIES */
.ls-categories{display:flex;gap:8px;padding:0 20px 16px;width:100%;max-width:none;overflow-x:auto;scrollbar-width:none;position:sticky;top:var(--header-h);z-index:50;background:var(--bg);padding-top:8px;box-sizing:border-box}
.ls-categories::-webkit-scrollbar{display:none}
.ls-cat-pill{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:var(--transition);font-family:var(--font)}
.ls-cat-pill:hover{border-color:var(--primary);color:var(--primary)}
.ls-cat-pill--active{background:var(--secondary-light);color:var(--secondary-dark);border-color:var(--secondary-dark)}
.ls-cat-pill i{font-size:16px}

/* FEED */
.ls-feed{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:0 20px 40px;max-width:1200px;margin:0 auto}

/* CARD */
.ls-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-light);overflow:hidden;cursor:pointer;transition:all .3s ease;animation:fadeUp .4s ease both}
.ls-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border)}
.ls-card--highlight{transform:translateY(-4px);box-shadow:0 0 24px rgba(16,174,234,.18);border-color:rgba(16,174,234,.15)}
.ls-card__img{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background:#F7F1EC}
.ls-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.ls-card:hover .ls-card__img img{transform:scale(1.05)}
.ls-card__badge{position:absolute;top:12px;left:12px;padding:4px 10px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);color:var(--text);font-size:11px;font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em}
.ls-card__distance{position:absolute;top:12px;right:12px;padding:4px 10px;background:var(--secondary);color:#fff;font-size:11px;font-weight:600;border-radius:var(--radius-full);display:flex;align-items:center;gap:4px}
.ls-card__body{padding:14px 16px}
.ls-card__price{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--primary)}
.ls-card__price span{font-size:13px;font-weight:400;color:var(--text-muted)}
.ls-card__title{font-size:15px;font-weight:600;margin:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-card__meta{display:flex;align-items:center;gap:12px;margin-top:8px}
.ls-card__author{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.ls-card__author img{width:24px;height:24px;border-radius:50%;border:2px solid var(--border)}
.ls-card__author span{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-verified-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--secondary-light);color:var(--secondary-dark);border:1px solid rgba(47,228,125,.28);border-radius:var(--radius-full);font-size:11px;font-weight:700;white-space:nowrap}
.ls-verified-badge i{font-size:14px}
.ls-verified-badge--large{font-size:12px;margin-top:6px}
.ls-verified-badge--pending{background:var(--primary-light);color:var(--primary-dark);border-color:rgba(16,174,234,.25)}
.ls-card__rating{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--warning);font-weight:600}
.ls-card__city{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:4px;margin-top:6px}
.ls-card__city i{color:var(--primary)}

.ls-stars{display:inline-flex;gap:2px}
.ls-stars i{color:#9CA3AF;font-size:14px}.ls-stars i.filled{color:var(--warning)}

.ls-feed__loader,.ls-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--text-muted)}
.ls-empty i{font-size:64px;margin-bottom:16px;opacity:.3}.ls-empty h3{color:var(--text);font-size:18px;margin-bottom:8px}
.ls-load-more{text-align:center;padding:0 20px 40px}

.ls-spinner{width:32px;height:32px;margin:0 auto 12px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* BUTTONS */
.ls-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-full);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;font-family:var(--font)}
.ls-btn--primary{background:var(--primary);color:#fff}
.ls-btn--primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 16px rgba(16,174,234,.3)}
.ls-btn--primary:active{transform:scale(.97)}
.ls-btn--outline{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}
.ls-btn--outline:hover{border-color:var(--primary);color:var(--primary)}
.ls-btn--full{width:100%}.ls-btn--sm{padding:8px 16px;font-size:13px}
.ls-btn--danger{background:var(--danger);color:#fff}
.ls-btn--secondary{background:var(--secondary);color:#fff}
.ls-btn--secondary:hover{background:var(--secondary-dark)}

/* FORMS */
.ls-publish,.ls-auth{max-width:560px;margin:0 auto;padding:32px 20px}
.ls-publish__title{font-family:var(--font-display);font-size:24px;font-weight:700;margin-bottom:24px;display:flex;align-items:center;gap:10px}
.ls-publish__title i{color:var(--primary)}
.ls-form__group{margin-bottom:16px}
.ls-form__group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-secondary)}
.ls-form__group input,.ls-form__group select,.ls-form__group textarea{width:100%;padding:11px 14px;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text);outline:none;transition:var(--transition);font-family:var(--font)}
.ls-form__group input::placeholder,.ls-form__group textarea::placeholder{color:var(--text-muted)}
.ls-form__group input:focus,.ls-form__group select:focus,.ls-form__group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.ls-form__group textarea{resize:vertical;min-height:100px}
.ls-form__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ls-form__upload{margin-bottom:20px}
.ls-form__upload-preview{width:100%;aspect-ratio:16/10;border:2px dashed var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:var(--text-muted);transition:var(--transition);overflow:hidden;background:var(--bg)}
.ls-form__upload-preview:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}
.ls-form__upload-preview i{font-size:40px}.ls-form__upload-preview p{font-size:14px}
.ls-form__upload-preview img{width:100%;height:100%;object-fit:cover}

/* AUTH */
.ls-auth__tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:2px solid var(--border)}
.ls-auth__tab{flex:1;padding:14px;text-align:center;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:15px;font-weight:600;color:var(--text-muted);cursor:pointer;transition:var(--transition);font-family:var(--font)}
.ls-auth__tab--active{color:var(--primary);border-bottom-color:var(--primary)}
.ls-auth__form{display:none}.ls-auth__form--active{display:block;animation:fadeUp .3s ease}

/* PROFILE */
.ls-profile{max-width:800px;margin:0 auto;padding:32px 20px}
.ls-profile__header{display:flex;gap:24px;align-items:center;padding:32px;background:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border-light);margin-bottom:32px;box-shadow:var(--shadow)}
.ls-profile__avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;aspect-ratio:1/1;object-position:center;border:3px solid var(--primary-light)}
.ls-profile__info h2{font-family:var(--font-display);font-size:24px;font-weight:700}
.ls-profile__joined{font-size:13px;color:var(--text-muted);margin-top:2px}
.ls-profile__stats{display:flex;gap:24px;margin-top:12px}
.ls-stat{text-align:center}.ls-stat strong{display:block;font-size:20px;font-weight:700;color:var(--primary)}.ls-stat span{font-size:12px;color:var(--text-muted)}
.ls-profile__section-title{font-size:18px;font-weight:700;margin-bottom:16px}
.ls-feed--profile{padding:0}
.ls-identity-card,.ls-contract-form,.ls-reservation-form{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:18px;margin-bottom:24px}
.ls-identity-card{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ls-identity-card--doc-choice{align-items:stretch;flex-direction:column}
.ls-profile-details{align-items:flex-start}
.ls-profile-details__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;flex:1}
.ls-profile-details__grid input{width:100%}
.ls-profile-details{align-items:stretch;flex-direction:column}
.ls-profile-details__head{width:100%;padding-bottom:12px;border-bottom:1px solid var(--border-light)}
.ls-profile-details__section{width:100%;padding-top:16px}
.ls-profile-details__section h4{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:var(--text);margin-bottom:10px}
.ls-profile-details__grid{width:100%;flex:none}
.ls-profile-details__grid .ls-form__group{margin-bottom:0}
.ls-form__group--wide{grid-column:1/-1}
.ls-profile-details__submit{align-self:flex-start;margin-top:4px}
.ls-contract-article-preview{margin-top:10px}
.ls-contract-article-preview__empty{border:1px dashed var(--border);border-radius:var(--radius);padding:12px;color:var(--text-secondary);font-size:13px;background:var(--bg)}
.ls-contract-article-preview__card{display:grid;grid-template-columns:78px 1fr;gap:12px;align-items:center;border:1px solid var(--border-light);border-radius:var(--radius);padding:10px;background:#F7FCFF}
.ls-contract-article-preview__card img{width:78px;height:78px;object-fit:cover;border-radius:10px;background:var(--bg)}
.ls-contract-article-preview__card strong{display:block;font-size:14px;font-weight:800;margin-bottom:4px}
.ls-contract-article-preview__card p{font-size:12px;color:var(--text-secondary);margin-bottom:3px}
.ls-contract-article-preview__card small{font-size:11px;font-weight:700;color:var(--primary)}
.ls-identity-card h3,.ls-contract-form h3,.ls-reservation-form h3{font-size:16px;font-weight:800;margin-bottom:4px;display:flex;align-items:center;gap:8px}
.ls-identity-card p,.ls-form__hint,.ls-contract-login,.ls-reservation-login{font-size:12px;color:var(--text-secondary)}
.ls-identity-card form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ls-identity-card input[type=file],.ls-form input[type=file]{font-size:13px;max-width:260px}
.ls-contract-form,.ls-reservation-form{margin-top:20px}
.ls-contract-form__result,.ls-reservation-form__result{margin-top:12px;font-size:13px;color:var(--secondary-dark);font-weight:700}
.ls-reservation-form__result .ls-btn{margin-top:8px}
.ls-contract-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-weight:700;text-decoration:none}
.ls-contract-link:hover{text-decoration:underline}

/* MODAL */
.ls-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);z-index:200;opacity:0;pointer-events:none;transition:opacity .3s}.ls-modal-overlay.active{opacity:1;pointer-events:all}
.ls-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:90%;max-width:640px;max-height:90vh;background:#fff;border-radius:var(--radius-xl);z-index:201;overflow-y:auto;opacity:0;pointer-events:none;transition:all .3s;box-shadow:var(--shadow-lg)}
.ls-modal.active{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}
.ls-modal__close{position:absolute;top:16px;right:16px;z-index:10;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;border:none;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center}
.ls-detail__img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ls-detail__body{padding:24px}
.ls-detail__price-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.ls-detail__price{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--primary)}.ls-detail__price span{font-size:15px;font-weight:400;color:var(--text-muted)}
.ls-verified-badge--price{font-size:12px;padding:5px 10px}
.ls-detail__title{font-size:20px;font-weight:700;margin:8px 0}
.ls-detail__rating{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;color:var(--text-secondary)}
.ls-detail__rating span{font-weight:700;color:var(--text)}
.ls-detail__desc{color:var(--text-secondary);line-height:1.7;margin-bottom:20px}
.ls-detail__tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.ls-detail__tag{padding:6px 12px;background:var(--bg);border-radius:var(--radius-full);font-size:12px;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:4px;border:1px solid var(--border)}
.ls-detail__footer-owner{margin-top:22px;padding:16px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg);display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-secondary)}
.ls-detail__footer-owner img{width:44px;height:44px;border-radius:50%;border:2px solid var(--border)}
.ls-detail__footer-owner div{display:grid;gap:3px;min-width:0}
.ls-detail__footer-owner strong{font-size:14px;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ls-reservation-price{margin:-6px 0 14px;padding:10px 12px;border:1px solid rgba(16,174,234,.18);border-radius:var(--radius);background:var(--primary-light);display:grid;gap:3px;font-size:12px;color:var(--text-secondary)}
.ls-reservation-price strong{font-size:16px;color:var(--primary-dark)}

/* REVIEWS */
.ls-reviews{margin-top:24px;border-top:1px solid var(--border);padding-top:20px}
.ls-reviews__title{font-size:16px;font-weight:700;margin-bottom:16px}
.ls-review{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-light)}
.ls-review img{width:36px;height:36px;border-radius:50%}
.ls-review__content{flex:1}.ls-review__header{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.ls-review__header strong{font-size:13px}.ls-review__header span{font-size:11px;color:var(--text-muted)}
.ls-review p{font-size:13px;color:var(--text-secondary)}
.ls-review-form{margin-top:16px}
.ls-review-form p{font-size:13px;font-weight:700;margin-bottom:8px}
.ls-review-form textarea{width:100%;padding:10px;border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font);font-size:13px;margin-bottom:8px}
.ls-review-gate{font-size:13px;color:var(--text-muted);margin-top:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg)}
.ls-review-form__stars{display:flex;gap:4px;margin-bottom:12px}
.ls-review-form__stars i{font-size:24px;color:var(--text-muted);cursor:pointer;transition:var(--transition)}
.ls-review-form__stars i:hover,.ls-review-form__stars i.active{color:var(--warning)}

/* TOASTS */
.ls-toasts{position:fixed;bottom:24px;right:24px;z-index:300;display:flex;flex-direction:column;gap:8px}
.ls-toast{padding:14px 20px;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-weight:500;box-shadow:var(--shadow-lg);animation:slideIn .3s ease;max-width:360px}
.ls-toast--success{border-color:var(--secondary);color:#0B8457}.ls-toast--error{border-color:var(--danger);color:var(--danger)}
.ls-toast--info{border-color:var(--primary);color:var(--primary-dark)}
.ls-form__forgot{text-align:right;margin-top:8px}
.ls-form__forgot a{color:var(--primary-dark);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:4px}
.ls-form__forgot a:hover{text-decoration:underline}
@keyframes slideIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}

/* LEGAL PAGES */
.ls-page{max-width:800px;margin:0 auto;padding:40px 20px}
.ls-page__title{font-family:var(--font-display);font-size:28px;font-weight:800;margin-bottom:24px;color:var(--text)}
.ls-page__content{color:var(--text-secondary);line-height:1.8;font-size:15px}
.ls-page__content h2{font-size:20px;font-weight:700;color:var(--text);margin:28px 0 12px;padding-top:16px;border-top:1px solid var(--border-light)}
.ls-page__content ul{margin:8px 0 16px 24px}.ls-page__content li{margin-bottom:6px}
.ls-page__content table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13px}
.ls-page__content th,.ls-page__content td{padding:10px 12px;border:1px solid var(--border);text-align:left}
.ls-page__content th{background:var(--bg);font-weight:600;color:var(--text)}
.ls-page__content a{color:var(--primary)}
.ls-page__content strong{color:var(--text)}
.ls-contract-page{max-width:920px}
.ls-contract-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.ls-contract-sign-panel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--border-light);border-radius:var(--radius);background:#fff;padding:12px 14px;margin-bottom:18px}
.ls-contract-sign-panel p{margin:0;font-size:13px;color:var(--text-secondary)}
.ls-contract-print h1{font-family:var(--font-display);font-size:28px;color:var(--text);margin-bottom:10px}
.ls-contract-print h2{font-size:20px;margin:28px 0 12px;color:var(--primary)}
.ls-contract-print h3{font-size:16px;margin:16px 0 8px;color:var(--text)}
.ls-contract-parties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.ls-contract-parties>div{border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--bg-card)}
.ls-contract-signature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.ls-contract-signature-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px;background:#fff}
.ls-contract-signature-card.is-signed{border-color:rgba(47,228,125,.38);background:#F0FFF7}
.ls-contract-signature-card.is-pending{border-style:dashed;background:var(--bg)}
.ls-contract-signature-card p{margin:5px 0;font-size:13px}
.ls-contract-cancelled{border:1px solid rgba(239,68,68,.22);border-left:4px solid var(--danger);border-radius:var(--radius);background:#FFF0F0;color:#8F1D1D;padding:12px 14px;margin:14px 0}
.ls-contract-gallery{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.ls-contract-gallery img{width:120px;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}
.ls-contract-condition-table{width:100%;border-collapse:collapse;margin:14px 0 18px;font-size:12px}
.ls-contract-condition-table th,.ls-contract-condition-table td{border:1px solid var(--border);padding:9px 10px;vertical-align:top;text-align:left}
.ls-contract-condition-table th{background:var(--bg);font-weight:800;color:var(--text)}
.ls-contract-condition-table td:nth-child(2),.ls-contract-condition-table td:nth-child(3){min-width:150px;height:42px}

@media print{
  .ls-header,.ls-footer,.ls-contract-actions,.ls-cookie-banner,.ls-modal-overlay,.ls-modal,.ls-toasts{display:none!important}
  .ls-app{padding:0}
  .ls-page{max-width:none;padding:0}
  body{background:#fff;color:#111}
  .ls-contract-parties>div{break-inside:avoid}
}
@media(max-width:720px){
  .ls-contract-actions{justify-content:stretch}
  .ls-contract-actions .ls-btn{width:100%}
  .ls-contract-signature-grid,.ls-contract-parties{grid-template-columns:1fr}
}

.ls-footer{padding:32px 20px 18px;border-top:1px solid var(--border-light);color:var(--text-muted);font-size:13px;background:#fff}
.ls-footer__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;max-width:1080px;margin:0 auto 18px;text-align:left}
.ls-footer__col h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text);margin-bottom:10px;font-weight:800}
.ls-footer__col ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.ls-footer__col a{color:var(--text-secondary);text-decoration:none;font-size:13px;transition:color .15s ease}
.ls-footer__col a:hover{color:var(--primary);text-decoration:underline}
.ls-footer__logo{display:inline-flex;align-items:center;gap:9px;text-decoration:none;margin-bottom:8px;color:var(--primary)}
.ls-footer__logo:hover{text-decoration:none}
.ls-footer__logo-img{display:block;width:42px;height:42px;object-fit:contain;flex:0 0 auto}
.ls-footer__wordmark{display:inline-flex;align-items:center;font-family:var(--font-display);font-size:24px;font-weight:800;line-height:1;color:var(--primary);letter-spacing:0;white-space:nowrap}
.ls-footer__wordmark-share{color:var(--secondary)}
.ls-footer__wordmark-domain{color:var(--primary);font-size:.72em;font-weight:800;margin-left:1px;align-self:flex-end;line-height:.95}
.ls-footer__brand{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--primary);display:block;margin-bottom:6px}
.ls-footer__brand span{color:var(--secondary)}
.ls-footer__sub{font-size:12px;color:var(--text-muted);line-height:1.5;margin-bottom:10px}
.ls-footer__copy{font-size:12px;color:var(--text-muted);text-align:center;border-top:1px solid var(--border-light);padding-top:14px;margin:0}
.ls-footer__by{color:inherit;text-decoration:none;font-weight:600;transition:color .15s ease}
.ls-footer__by:hover{color:var(--primary);text-decoration:underline}
.ls-footer__social{display:flex;gap:10px;margin-top:6px}
.ls-footer__social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--bg);color:var(--text-secondary);transition:all .2s ease;text-decoration:none}
.ls-footer__social a:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}
.ls-footer__social i{font-size:18px}
@media(max-width:768px){
  .ls-footer__cols{grid-template-columns:1fr;gap:22px;text-align:left}
  .ls-footer__col h4{margin-bottom:8px}
}

/* Password strength meter */
.ls-pwd-strength{margin-top:8px}
.ls-pwd-strength__bar{height:4px;background:#E5EDF2;border-radius:99px;overflow:hidden;position:relative}
.ls-pwd-strength__fill{height:100%;width:0;background:var(--danger);border-radius:99px;transition:width .25s ease,background-color .25s ease}
.ls-pwd-strength__label{font-size:11px;font-weight:700;color:var(--text-muted);margin-top:4px;display:block;letter-spacing:.02em}
.ls-pwd-strength--weak   .ls-pwd-strength__fill{width:25%;background:#FF4757}
.ls-pwd-strength--fair   .ls-pwd-strength__fill{width:55%;background:#FBBF24}
.ls-pwd-strength--good   .ls-pwd-strength__fill{width:80%;background:#10AEEA}
.ls-pwd-strength--strong .ls-pwd-strength__fill{width:100%;background:var(--secondary)}
.ls-pwd-strength--weak   .ls-pwd-strength__label{color:var(--danger)}
.ls-pwd-strength--fair   .ls-pwd-strength__label{color:#9A6700}
.ls-pwd-strength--good   .ls-pwd-strength__label{color:var(--primary-dark)}
.ls-pwd-strength--strong .ls-pwd-strength__label{color:var(--secondary-dark)}

.ls-cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:250;background:#fff;border-top:1px solid var(--border);box-shadow:0 -4px 20px rgba(0,0,0,.1);padding:16px 20px}
.ls-cookie-banner__inner{max-width:1000px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ls-cookie-banner__inner p{flex:1;font-size:13px;color:var(--text-secondary);min-width:250px}
.ls-cookie-banner__inner a{color:var(--primary);text-decoration:underline}
.ls-cookie-banner__actions{display:flex;gap:8px;flex:0 0 auto}
.ls-cookie-banner__actions .ls-btn{white-space:nowrap}
@media(max-width:540px){
  .ls-cookie-banner__actions{width:100%;justify-content:flex-end}
  .ls-cookie-banner__actions .ls-btn{flex:1}
}

.ls-card__delete{position:absolute;bottom:12px;right:12px;width:32px;height:32px;border-radius:50%;background:rgba(255,71,87,.9);color:#fff;border:none;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--transition)}
.ls-card:hover .ls-card__delete{opacity:1}

/* ─── Verso prompt : encart affiché si extraction recto incomplète ─── */
.ls-id-doc__verso-prompt{margin:12px 0 0;padding:14px 14px;border-radius:14px;background:var(--secondary-light);border:1px solid rgba(var(--secondary-rgb),.35);display:flex;flex-direction:column;gap:10px;animation:fadeUp .25s ease}
.ls-id-doc__verso-msg{margin:0;display:flex;align-items:flex-start;gap:8px;font-size:13.5px;color:var(--text);line-height:1.5}
.ls-id-doc__verso-msg i{color:var(--secondary-dark);font-size:18px;flex:0 0 auto;margin-top:1px}
.ls-id-doc__verso-msg strong{color:var(--secondary-dark);font-weight:700}
.ls-id-doc__verso-btn{align-self:flex-start}

/* ─── Footer logo : copie stricte du header (.ls-logo) ─────────────
   Même image (logo-icon.png), mêmes dimensions, mêmes couleurs wordmark.
   Aucun effet (pas de drop-shadow, pas de hover-background) pour matcher
   exactement le header. */
.ls-footer__logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--primary);transition:transform .2s ease;margin-bottom:8px}
.ls-footer__logo:hover{transform:scale(1.02)}
.ls-footer__logo-img{display:block;height:50px;width:auto;max-width:170px;object-fit:contain;flex:0 0 auto}
.ls-footer__wordmark{display:inline-flex;align-items:center;font-family:var(--font-display);font-size:28px;font-weight:800;line-height:1;color:var(--primary);letter-spacing:0;white-space:nowrap;flex-shrink:0}
.ls-footer__wordmark-share{color:var(--secondary)}
.ls-footer__wordmark-domain{color:var(--primary);font-size:.74em;font-weight:800;margin-left:1px;align-self:flex-end;line-height:.95}
@media(max-width:768px){
  .ls-footer__logo{gap:8px}
  .ls-footer__logo-img{height:40px;width:40px;max-width:40px}
  .ls-footer__wordmark{font-size:22px}
}

/* RESPONSIVE */
@media(max-width:768px){
.ls-search{display:none}
.ls-logo__img,.custom-logo{height:42px;max-width:190px}
.ls-feed{grid-template-columns:repeat(2,1fr);gap:10px;padding:0 12px 32px}
.ls-categories{padding:0 12px 12px}
.ls-profile__header{flex-direction:column;text-align:center;padding:24px}.ls-profile__stats{justify-content:center}
.ls-identity-card{align-items:flex-start;flex-direction:column}
.ls-identity-card form{width:100%}
.ls-modal{width:100%;max-width:100%;max-height:100vh;border-radius:0;top:0;left:0;transform:translateY(20px)}.ls-modal.active{transform:translateY(0)}
.ls-form__row{grid-template-columns:1fr}
.ls-card__title{font-size:13px}.ls-card__price{font-size:17px}.ls-card__meta{display:none}
.ls-hero h1{font-size:24px}.ls-hero__stats{gap:10px}
/* C1 — Les anciennes règles transformant .ls-nav en barre basse mobile ont été
   retirées : sur mobile, .ls-nav (#main-nav) est masquée et remplacée par
   .ls-bottomnav (voir bloc « BOTTOM-NAV MOBILE » en fin de feuille). */
}
@media(max-width:480px){.ls-feed{grid-template-columns:1fr}.ls-card__img{aspect-ratio:4/3}.ls-card__meta{display:flex}}
@media(max-width:640px){.ls-contract-parties{grid-template-columns:1fr}}

/* UX polish */
body{background:linear-gradient(180deg,#F7FCFF 0%,#F4FBF7 100%);overflow-x:hidden}
a,button,input,select,textarea{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--primary);outline-offset:3px;box-shadow:0 0 0 5px rgba(var(--primary-rgb),.18)}
button:disabled,.ls-btn:disabled{opacity:.68;cursor:not-allowed;transform:none!important;box-shadow:none!important}
.ls-header{background:rgba(255,255,255,.92)}
.ls-header__inner{gap:18px}
.ls-logo{min-width:178px}
.ls-logo__img,.custom-logo{height:44px;max-width:230px}
.ls-search input{height:44px;background:#fff;border-color:var(--border-light)}
.ls-hero{min-height:430px;padding:70px 20px 48px}
.ls-hero__bg{opacity:.5;filter:saturate(.9)}
.ls-hero__bg::after{background:linear-gradient(180deg,rgba(6,30,42,.72) 0%,rgba(6,30,42,.58) 48%,rgba(6,30,42,.82) 100%)}
.ls-hero__pill{background:rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.ls-hero h1{font-size:clamp(34px,5vw,58px);letter-spacing:0}
.ls-hero p{max-width:680px;margin-left:auto;margin-right:auto}
.ls-hero__stats{gap:14px}
.ls-location-bar{padding-top:18px}
.ls-categories{top:var(--header-h);padding-bottom:12px;background:rgba(247,252,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(221,239,246,.7)}
.ls-cat-pill{min-height:38px;background:#fff;box-shadow:0 1px 4px rgba(16,174,234,.04)}
.ls-feed{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;padding-bottom:52px}
.ls-card{border-radius:16px;box-shadow:0 8px 24px rgba(16,50,70,.05)}
.ls-card:hover{box-shadow:0 16px 38px rgba(16,50,70,.12)}
.ls-card__img{aspect-ratio:4/3;background:#EAF8FD}
.ls-card__title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:42px;line-height:1.35}
.ls-card__meta{align-items:flex-start}
.ls-card__author{flex-wrap:wrap;row-gap:4px}
.ls-card__author img{flex:0 0 auto}
.ls-card__author>span{max-width:120px}
.ls-verified-badge{flex:0 0 auto}
.ls-publish,.ls-auth,.ls-profile{padding-top:42px}
.ls-form,.ls-auth__form--active{background:#fff;border:1px solid var(--border-light);border-radius:18px;box-shadow:0 10px 30px rgba(16,50,70,.06);padding:22px}
.ls-profile .ls-form{background:transparent;border:0;box-shadow:none;padding:0}
.ls-form__group input,.ls-form__group select,.ls-form__group textarea{min-height:44px}
.ls-form__hint{display:block;margin-top:6px;line-height:1.45}
.ls-auth__tabs{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-full);padding:4px;box-shadow:var(--shadow);margin-bottom:18px}
.ls-auth__tab{border:0;border-radius:var(--radius-full);margin:0;padding:11px 14px}
.ls-auth__tab--active{background:var(--primary);color:#fff;border:0}
.ls-profile__header,.ls-identity-card,.ls-contract-form,.ls-reservation-form{border-radius:18px;box-shadow:0 10px 30px rgba(16,50,70,.06)}
.ls-identity-card input[type=file],.ls-form input[type=file]{max-width:100%;padding:8px;background:var(--bg);border-radius:var(--radius)}
.ls-modal-overlay{background:rgba(7,24,33,.58)}
.ls-modal{max-width:880px;border-radius:20px;box-shadow:0 24px 80px rgba(7,24,33,.28)}
.ls-modal__close{background:rgba(7,24,33,.72)}
.ls-modal__close:hover{background:rgba(7,24,33,.92)}
.ls-detail__img{aspect-ratio:16/10;background:#EAF8FD}
.ls-detail__title{font-size:24px;line-height:1.25}
.ls-detail__desc{font-size:15px}
.ls-detail__tag{background:#F7FCFF}
.ls-reviews{margin-top:28px}
.ls-toasts{left:auto;right:20px;bottom:20px}
/* Mobile : toasts et cookie banner remontent au-dessus de la nav bottom */
@media(max-width:768px){
  .ls-toasts{bottom:calc(90px + env(safe-area-inset-bottom));right:12px;left:12px;align-items:stretch}
  .ls-cookie-banner{bottom:calc(72px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;margin:0 6px}
}
.ls-toast{border-left:4px solid var(--primary)}
.ls-cookie-banner{padding:14px 20px}

@media(min-width:900px){
  .ls-modal__content{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);max-height:88vh}
  .ls-detail__img{height:100%;min-height:520px;aspect-ratio:auto}
  .ls-detail__body{overflow:auto}
}

@media(max-width:768px){
  .ls-header__inner{padding:0 14px}
  .ls-logo{min-width:138px}
  .ls-logo__img,.custom-logo{height:34px;max-width:152px}
  .ls-hero{min-height:390px;padding:48px 16px 38px}
  .ls-hero p{font-size:16px}
  .ls-hero__cta{width:100%;max-width:360px;padding:14px 20px;font-size:15px}
  .ls-hero__stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:420px;gap:10px}
  .ls-feed{grid-template-columns:1fr;gap:14px;padding-left:14px;padding-right:14px}
  .ls-card__meta{display:flex}
  .ls-card__title{font-size:15px}
  .ls-card__price{font-size:22px}
  .ls-publish,.ls-auth,.ls-profile{padding:24px 14px}
  .ls-form,.ls-auth__form--active{padding:18px;border-radius:16px}
  .ls-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}
  .ls-detail__body{padding:20px 16px 90px}
  .ls-toasts{left:14px;right:14px;bottom:86px}
  .ls-toast{max-width:none}
  .ls-cookie-banner{bottom:64px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
}

/* Header logo lockup — l'image utilise toute la hauteur, le wordmark ne se coupe pas */
.ls-logo{width:auto;min-width:auto;height:54px;justify-content:flex-start;gap:10px;flex-shrink:0;overflow:visible}
.ls-logo__img,.custom-logo{height:50px;width:auto;max-width:170px;object-fit:contain;flex:0 0 auto}
.ls-logo__wordmark{display:inline-flex;align-items:center;font-family:var(--font-display);font-size:28px;font-weight:800;line-height:1;color:var(--primary);letter-spacing:0;white-space:nowrap;flex-shrink:0}
.ls-logo__wordmark-share{color:var(--secondary)}
@media(max-width:768px){
  .ls-logo{min-width:156px;height:46px;gap:8px}
  .ls-logo__img,.custom-logo{width:40px;height:40px;max-width:40px}
  .ls-logo__wordmark{font-size:22px}
}
@media(max-width:420px){
  .ls-logo{min-width:46px}
  .ls-logo__wordmark{display:none}
}

/* Email verification banner */
.ls-email-verify-banner{display:flex;align-items:center;gap:12px;background:#FFF8E7;border:1px solid #FFC107;border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:20px;flex-wrap:wrap}
.ls-email-verify-banner i{font-size:22px;color:#FF9800;flex-shrink:0}
.ls-email-verify-banner p{flex:1;font-size:13px;color:var(--text);margin:0;min-width:160px}
/* Contract tab form */
.ls-contract-tab-form{border:none;box-shadow:none;padding:0;margin-bottom:0;background:transparent}
.ls-contract-renter-info{display:flex;align-items:flex-start;gap:10px;background:var(--bg-light);border:1px solid var(--border-light);border-radius:8px;padding:10px 14px;margin:8px 0 4px}
.ls-contract-renter-info i{font-size:20px;color:var(--primary);flex-shrink:0;margin-top:2px}
.ls-contract-renter-info div{display:flex;flex-direction:column;gap:2px}
.ls-contract-renter-info strong{font-size:14px;color:var(--text)}
.ls-contract-renter-info span{font-size:12px;color:var(--text-light)}
/* Identity extraction */
.ls-identity-extract-error{display:flex;align-items:center;gap:8px;background:#FFF3F3;border:1px solid #FFCDD2;border-radius:8px;padding:10px 14px;color:#C62828;font-size:13px;margin-top:10px}
.ls-identity-extract-error i{font-size:18px;flex-shrink:0}
.ls-identity-extracted{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-light)}
.ls-identity-extracted__intro{font-size:13px;color:#2E7D32;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.ls-identity-extracted__intro i{font-size:16px}
/* Profile settings */
.ls-profile__settings-btn{margin-left:auto;align-self:flex-start;flex-shrink:0}
.ls-profile__settings-btn.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}
.ls-profile__settings-panel{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:20px 24px;margin-bottom:24px;box-shadow:var(--shadow)}
.ls-profile__settings-panel h4{font-size:16px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}
/* Account management */
.ls-account-tools{background:#fff;border:1px solid var(--border-light);border-radius:18px;box-shadow:0 10px 30px rgba(16,50,70,.06);padding:20px;margin-bottom:28px}
.ls-account-tools__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.ls-account-tools__head h3{font-size:18px;font-weight:800;margin-bottom:3px}
.ls-account-tools__head p{font-size:13px;color:var(--text-secondary)}
.ls-account-tabs{display:flex;gap:6px;background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-full);padding:4px;margin-bottom:16px}
.ls-account-tab{flex:1;border:0;background:transparent;border-radius:var(--radius-full);padding:10px 14px;font-family:var(--font);font-size:13px;font-weight:700;color:var(--text-secondary);cursor:pointer}
.ls-account-tab.active{background:var(--primary);color:#fff}
.ls-account-panel{display:none}
.ls-account-panel.active{display:block}
.ls-account-list{display:grid;gap:14px}
.ls-account-empty{padding:22px;text-align:center;color:var(--text-muted);background:var(--bg);border-radius:var(--radius);font-size:13px}
.ls-management-card{display:grid;grid-template-columns:112px 1fr;gap:16px;border:1px solid var(--border-light);border-radius:16px;padding:14px;background:#fff}
.ls-management-card>img{width:112px;height:112px;object-fit:cover;border-radius:12px;background:var(--bg)}
.ls-management-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.ls-management-card__top h4,.ls-location-row h4{font-size:15px;font-weight:800;margin-bottom:4px}
.ls-management-card__top p,.ls-location-row p{font-size:12px;color:var(--text-secondary)}
.ls-management-edit{background:transparent;border:0;box-shadow:none;padding:0}
.ls-management-actions{display:flex;flex-wrap:wrap;gap:8px}
.ls-status-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:var(--radius-full);padding:4px 9px;font-size:11px;font-weight:800;border:1px solid var(--border)}
.ls-status-pill.is-live{background:var(--secondary-light);color:var(--secondary-dark);border-color:rgba(47,228,125,.28)}
.ls-status-pill.is-draft{background:var(--primary-light);color:var(--primary-dark);border-color:rgba(16,174,234,.25)}
.ls-status-pill.is-refused{background:#FFF0F0;color:var(--danger);border-color:rgba(239,68,68,.22)}
.ls-status-pill.is-role{background:var(--bg);color:var(--text-secondary);border-color:var(--border)}
.ls-location-row{display:flex;align-items:flex-start;gap:16px;border:1px solid var(--border-light);border-radius:16px;padding:14px;background:#fff;margin-bottom:10px;transition:border-color .15s ease,box-shadow .15s ease}
.ls-location-row:hover{border-color:rgba(var(--primary-rgb),.30);box-shadow:0 4px 14px rgba(var(--primary-rgb),.08)}
.ls-location-row__img{width:96px;height:96px;border-radius:12px;object-fit:cover;flex-shrink:0;background:var(--bg);display:block}

/* Image cliquable : overlay "Voir la conversation" au hover */
.ls-location-row__img-link{
  position:relative;flex-shrink:0;background:none;border:0;padding:0;cursor:pointer;
  border-radius:12px;overflow:hidden;display:block;
  transition:transform .15s ease;
}
.ls-location-row__img-link:hover{transform:scale(1.02)}
.ls-location-row__img-link:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.ls-location-row__img-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;
  background:linear-gradient(135deg,rgba(16,174,234,.85),rgba(5,131,186,.85));
  color:#fff;font-size:11px;font-weight:700;text-align:center;padding:6px;line-height:1.25;
  opacity:0;transition:opacity .18s ease;border-radius:12px;
}
.ls-location-row__img-overlay i{font-size:18px}
.ls-location-row__img-link:hover .ls-location-row__img-overlay,
.ls-location-row__img-link:focus-visible .ls-location-row__img-overlay{opacity:1}

/* Titre cliquable : underline subtil + flèche */
.ls-location-row__title-link{
  background:none;border:0;padding:0;font:inherit;color:var(--text);
  cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  text-align:left;transition:color .15s ease;
}
.ls-location-row__title-link i{font-size:14px;color:var(--text-muted);opacity:0;transform:translateX(-4px);transition:all .15s ease}
.ls-location-row__title-link:hover{color:var(--primary-dark);text-decoration:underline}
.ls-location-row__title-link:hover i{opacity:1;transform:translateX(0);color:var(--primary)}
.ls-location-row__title-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}

/* Highlight de la conversation cible après navigation depuis Réservations */
.ls-chat-card.is-highlighted{
  animation:lsHighlight 2.2s ease;
  border-color:var(--secondary) !important;
  box-shadow:0 0 0 4px rgba(var(--secondary-rgb),.22),0 10px 26px rgba(var(--secondary-rgb),.16) !important;
}
@keyframes lsHighlight{
  0%   { box-shadow:0 0 0 0   rgba(var(--secondary-rgb),0);    border-color:var(--border-light); }
  20%  { box-shadow:0 0 0 8px rgba(var(--secondary-rgb),.30),0 14px 30px rgba(var(--secondary-rgb),.22); border-color:var(--secondary); }
  100% { box-shadow:0 0 0 4px rgba(var(--secondary-rgb),.22),0 10px 26px rgba(var(--secondary-rgb),.16); border-color:var(--secondary); }
}
.ls-location-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.ls-location-row__pills{display:flex;gap:6px;flex-wrap:wrap}
.ls-location-row h4{font-size:15px;font-weight:800;margin:0}
.ls-location-row__meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text-secondary);margin:0}
.ls-location-row__meta span{display:inline-flex;align-items:center;gap:4px}
.ls-location-row__meta i{font-size:14px;color:var(--primary)}
.ls-location-row__price{display:flex;align-items:baseline;gap:8px;margin-top:2px}
.ls-location-row__price strong{font-size:16px;font-weight:800;color:var(--primary)}
.ls-location-row__price span{font-size:12px;color:var(--text-muted)}
.ls-location-row__created{font-size:11px;color:var(--text-muted);margin:0;font-style:italic}
.ls-location-row__actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.ls-location-row__actions .ls-btn{display:inline-flex;align-items:center;gap:6px}
@media(max-width:480px){.ls-location-row__actions .ls-btn{width:100%;justify-content:center}}
.ls-location-price{font-size:13px;font-weight:800;color:var(--primary);margin-top:4px}

@media(max-width:480px){
  .ls-location-row{flex-direction:column;align-items:stretch;padding:12px}
  .ls-location-row__img{width:100%;height:140px}
}
.ls-locations-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.ls-filter-pills{display:flex;flex-wrap:wrap;gap:6px}
.ls-filter-pill{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-full);padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--font);transition:all .15s ease}
.ls-filter-pill:hover{border-color:var(--primary);color:var(--primary)}
.ls-filter-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.ls-filter-dates{display:flex;align-items:center;gap:8px;margin-left:auto}
.ls-filter-dates label{font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:4px;font-weight:600}
.ls-filter-dates input[type="date"]{border:1px solid var(--border);border-radius:8px;padding:5px 10px;font-size:12px;font-family:var(--font);background:var(--bg-card);color:var(--text);cursor:pointer;outline:none}
.ls-filter-dates input[type="date"]:focus{border-color:var(--primary)}
.ls-chat-card{border:1px solid var(--border-light);border-radius:16px;background:#fff;padding:0;display:block;overflow:hidden}
.ls-chat-card.has-unread{border-color:rgba(47,228,125,.45);box-shadow:0 10px 26px rgba(47,228,125,.12)}
.ls-chat-card__summary{display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.ls-chat-card__summary::-webkit-details-marker,.ls-chat-card__summary::marker{display:none}
.ls-chat-card__summary:hover{background:var(--bg-card)}
.ls-chat-card__summary:focus-visible{outline:3px solid rgba(var(--primary-rgb),.28);outline-offset:-3px}
.ls-chat-card__thumb{width:58px;height:58px;border-radius:12px;object-fit:cover;flex:0 0 auto;background:var(--bg)}
.ls-chat-card__summary-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.ls-chat-card__summary-main>span,.ls-chat-card__summary-main>strong{min-width:0}
.ls-chat-card__title{font-size:15px;font-weight:850;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ls-chat-card__summary-side{flex:0 0 170px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;min-width:0}
.ls-chat-card__summary-side strong{font-size:16px;font-weight:900;color:var(--primary-dark);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ls-chat-card__summary-side small{font-size:11px;font-weight:700;color:var(--text-secondary);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ls-chat-card__open-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:850;color:var(--primary-dark)}
.ls-chat-card__open-label i{font-size:14px;transition:transform .18s ease}
.ls-chat-card[open] .ls-chat-card__open-label i{transform:rotate(180deg)}
.ls-chat-card__body{display:grid;gap:14px;padding:0 16px 16px;border-top:1px solid var(--border-light)}
.ls-chat-card__body .ls-chat-card__price{margin-top:14px}
.ls-chat-card__price{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;background:var(--secondary-light);border:1px solid rgba(47,228,125,.28);color:var(--secondary-dark)}
.ls-chat-card__price span,.ls-chat-card__price small{font-size:12px;font-weight:700}
.ls-chat-card__price strong{font-size:18px;font-weight:900;color:var(--secondary-dark)}
.ls-chat-card__price.is-refused{background:#FFF0F0;border-color:rgba(239,68,68,.22);color:var(--danger)}
.ls-chat-card__price.is-refused strong{color:var(--danger)}
.ls-chat-card__price.is-draft{background:var(--primary-light);border-color:rgba(16,174,234,.25);color:var(--primary-dark)}
.ls-chat-card__price.is-draft strong{color:var(--primary-dark)}
.ls-chat-card__body-head,.ls-chat-card__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.ls-chat-card__eyebrow,.ls-chat-actions,.ls-renter-review-form__row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ls-chat-card__head h4{font-size:15px;font-weight:800;margin:5px 0 3px}
.ls-chat-card__head p{font-size:12px;color:var(--text-secondary)}
.ls-chat-party,.ls-chat-preview{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ls-chat-party strong{color:var(--text)}
.ls-chat-meta,.ls-chat-state,.ls-chat-preview{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ls-chat-meta{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-wrap:nowrap}
.ls-chat-preview{flex-wrap:nowrap;color:var(--text-muted)}
.ls-chat-preview i,.ls-chat-meta i,.ls-chat-state i{flex:0 0 auto;color:var(--primary)}
.ls-chat-state{font-size:12px;color:var(--text-secondary);margin:0}
.ls-unread-pill{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:4px 9px;background:var(--secondary);color:#fff;font-size:11px;font-weight:900}
.ls-renter-rating{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:3px 8px;border-radius:var(--radius-full);background:#FFF8E6;color:#9A6200;border:1px solid rgba(245,158,11,.25);font-size:11px;font-weight:900;white-space:nowrap}
.ls-renter-rating.is-empty{background:var(--bg);color:var(--text-muted);border-color:var(--border)}
.ls-renter-review-note{font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}
.ls-renter-review-form{padding:12px;border:1px solid var(--border-light);border-radius:14px;background:#FFFDF7;display:grid;gap:8px}
.ls-renter-review-form label{font-size:12px;font-weight:800;color:var(--text)}
.ls-renter-review-form select,.ls-renter-review-form input{min-height:40px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-family:var(--font)}
.ls-renter-review-form input{flex:1;min-width:180px}
.ls-chat-messages{display:grid;gap:8px;padding:12px;border-radius:14px;background:var(--bg);max-height:260px;overflow:auto}
.ls-chat-message{max-width:82%;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid var(--border-light)}
.ls-chat-message.is-mine{justify-self:end;background:var(--primary-light);border-color:rgba(16,174,234,.22)}
.ls-chat-message strong{font-size:12px}
.ls-chat-message p{font-size:13px;margin:3px 0;white-space:pre-wrap}
.ls-chat-message small{font-size:10px;color:var(--text-muted)}
.ls-chat-reply{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.ls-chat-reply textarea{min-height:44px}
.ls-chat-contract{margin:0;background:#F7FCFF;box-shadow:none}
.ls-chat-contract h5{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;margin-bottom:8px}

/* ─── Bouton "Archiver" discret (icône seule, hover doux) ─── */
.ls-chat-card__archive{
  flex:0 0 auto;align-self:flex-start;
  width:32px;height:32px;border-radius:50%;border:0;cursor:pointer;
  background:transparent;color:var(--text-muted);
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .15s ease,color .15s ease,transform .15s ease;
}
.ls-chat-card__archive i{font-size:16px;line-height:1}
.ls-chat-card__archive:hover{background:var(--bg);color:var(--text);transform:scale(1.05)}
.ls-chat-card__archive:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.ls-chat-card.is-archived .ls-chat-card__archive,
.ls-chat-card__archive[data-reservation-archive="0"]{color:var(--secondary-dark)}

/* ─── Statut "Contrat en cours de rédaction" (pendant la génération) ─── */
.ls-chat-contract-status{
  margin-top:8px;padding:10px 12px;border-radius:10px;
  background:linear-gradient(90deg,rgba(var(--primary-rgb),.08),rgba(var(--secondary-rgb),.08));
  border:1px solid rgba(var(--primary-rgb),.20);
  display:flex;align-items:center;gap:8px;
  color:var(--text);font-size:12.5px;line-height:1.4;
  animation:fadeUp .3s ease;
}
.ls-chat-contract-status i{color:var(--primary-dark);font-size:18px;flex:0 0 auto}
.ls-chat-contract-status strong{color:var(--primary-dark);font-weight:800}

@media(max-width:720px){
  .ls-account-tools__head,.ls-location-row{flex-direction:column;align-items:stretch}
  .ls-locations-filters{flex-direction:column;align-items:stretch}
  .ls-filter-dates{margin-left:0;flex-wrap:wrap}
  .ls-identity-card{flex-direction:column;align-items:stretch}
  .ls-profile-details__grid{grid-template-columns:1fr}
  .ls-management-card{grid-template-columns:1fr}
  .ls-management-card>img{width:100%;height:auto;aspect-ratio:16/9}
  .ls-management-card__top{flex-direction:column}
  .ls-chat-card__summary{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:start}
  .ls-chat-card__summary-side{grid-column:1/-1;flex:1;width:100%;align-items:flex-start;text-align:left;flex-direction:row;justify-content:space-between;gap:10px}
  .ls-chat-card__summary-side small{display:none}
  .ls-chat-card__body-head{align-items:stretch}
  .ls-chat-reply{grid-template-columns:1fr}
  .ls-chat-message{max-width:100%}
}

/* Responsive consolidation */
img,video,canvas,svg{max-width:100%}
input,select,textarea,button{font-size:16px}
.ls-page__content,.ls-detail__body,.ls-management-card__body{min-width:0}
.ls-page__content table{display:block;max-width:100%;overflow-x:auto}

/* Tablette horizontale (legacy) — neutralisé : la sidebar Instagram s'applique désormais ici.
   Anciennes règles conservées seulement pour les conteneurs de contenu (formulaires/management) */
@media(min-width:769px) and (max-width:1024px){
  .ls-publish,.ls-auth,.ls-profile{max-width:720px}
  .ls-profile{padding-left:18px;padding-right:18px}
  .ls-management-card{grid-template-columns:140px 1fr}
  .ls-management-card>img{width:140px;height:140px}
}

@media(max-width:768px){
  :root{--header-h:58px}
  html,body{width:100%;overflow-x:hidden}
  body{padding-bottom:env(safe-area-inset-bottom)}
  .ls-app{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .ls-header{height:var(--header-h)}
  .ls-header__inner{justify-content:space-between}
  .ls-logo{min-width:auto;max-width:54vw}
  .ls-logo__wordmark{font-size:21px;white-space:nowrap}
  .ls-nav{min-height:64px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px rgba(16,50,70,.09)}
  .ls-nav__btn{min-width:58px;min-height:48px;justify-content:center;border-radius:14px}
  .ls-nav__btn--logout{min-width:48px}
  .ls-nav__avatar{width:24px;height:24px}
  .ls-location-bar{padding:12px 14px}
  .ls-location-bar__btn{width:100%;justify-content:center}
  .ls-categories{top:var(--header-h);padding:8px 14px 12px}
  .ls-cat-pill{flex:0 0 auto}
  .ls-hero{min-height:auto;padding:42px 16px 34px}
  .ls-hero h1{font-size:32px;line-height:1.08}
  .ls-hero p{font-size:15px;line-height:1.5}
  .ls-hero__stats{margin-top:22px}
  .ls-hero__stat{padding:12px 14px;min-width:0}
  .ls-hero__stat>i{font-size:28px}
  .ls-hero__stat strong{font-size:20px}
  .ls-feed{grid-template-columns:1fr;gap:14px;padding:0 14px 42px}
  .ls-card:hover{transform:none}
  .ls-card__delete{opacity:1}
  .ls-card__author>span{max-width:48vw}
  .ls-publish__title,.ls-profile__section-title{text-wrap:balance}
  .ls-profile__header{gap:16px;margin-bottom:20px}
  .ls-profile__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
  .ls-stat{min-width:0}
  .ls-account-tools{padding:16px;border-radius:16px}
  .ls-account-tabs{border-radius:14px}
  .ls-account-tab{border-radius:10px;padding:10px 8px}
  .ls-management-actions{display:grid;grid-template-columns:1fr 1fr}
  .ls-management-actions .ls-btn{width:100%;justify-content:center}

  /* Boutons identité pleine largeur */
  .ls-identity-card form{flex-direction:column;align-items:stretch}
  .ls-identity-card form .ls-btn,.ls-identity-extracted .ls-btn{width:100%;justify-content:center;min-height:46px}
  .ls-identity-card input[type=file]{width:100%}

  /* Filtres locations : scroll horizontal + dates empilées */
  .ls-filter-pills{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scroll-snap-type:x mandatory}
  .ls-filter-pill{flex-shrink:0;scroll-snap-align:start;min-height:38px}
  .ls-filter-dates{width:100%;flex-wrap:wrap;gap:8px}
  .ls-filter-dates label{flex:1;min-width:120px}
  .ls-filter-dates input[type="date"]{flex:1;width:100%;min-height:38px}

  .ls-modal{height:100dvh;max-height:100dvh}
  .ls-modal__content{min-height:100%}
  .ls-modal__close{top:12px;right:12px}
  .ls-cookie-banner{bottom:calc(64px + env(safe-area-inset-bottom));padding:12px 14px}
  .ls-cookie-banner__inner{gap:10px}
  .ls-cookie-banner__inner p{min-width:0;flex-basis:100%}
  .ls-cookie-banner .ls-btn{width:100%;justify-content:center}
  .ls-footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}

@media(max-width:420px){
  .ls-header__inner{padding:0 10px}
  .ls-logo{max-width:44px}
  .ls-logo__img,.custom-logo{width:38px;height:38px;max-width:38px}
  .ls-hero h1{font-size:28px}
  .ls-hero__cta{font-size:14px}
  .ls-management-actions{grid-template-columns:1fr}
  .ls-nav__btn{min-width:52px;padding-left:8px;padding-right:8px}
  /* Mobile compact : 2×2 harmonisé */
  .ls-hero__stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:340px;gap:8px}
  .ls-hero__stat{padding:10px;gap:8px;align-items:center}
  .ls-hero__stat>i{font-size:22px}
  .ls-hero__stat strong{font-size:15px}
  .ls-hero__stat span{font-size:10.5px;line-height:1.25}
}

/* Publish location choice */
.ls-location-choice{padding:14px;border:1px solid var(--border-light);border-radius:16px;background:#F7FCFF}
.ls-location-choice__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}
.ls-location-choice__options label{display:flex;align-items:center;gap:8px;margin:0;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);font-size:13px;font-weight:700;cursor:pointer}
.ls-location-choice__options input{width:18px;height:18px;accent-color:var(--primary);flex:0 0 auto}
.ls-location-address,.ls-location-gps{margin-bottom:18px;padding:16px;border:1px solid var(--border-light);border-radius:16px;background:#fff;box-shadow:0 6px 20px rgba(16,50,70,.04)}
.ls-location-address[hidden],.ls-location-gps[hidden]{display:none!important}
#geocode-status,#publish-gps-status{margin-top:10px}
#geocode-status a{color:var(--primary-dark);font-weight:800;text-decoration:underline;text-underline-offset:3px}

@media(max-width:560px){
  .ls-location-choice__options{grid-template-columns:1fr}
}

/* Mobile compatibility final pass */
.ls-logo__wordmark-domain{color:var(--primary);font-size:.74em;font-weight:800;margin-left:1px;align-self:flex-end;line-height:.95}
@media(max-width:768px){
  .ls-header__inner{min-width:0}
  .ls-logo{flex:1 1 auto;min-width:0;max-width:58vw}
  .ls-logo__wordmark{min-width:0;overflow:hidden;text-overflow:clip}
  .ls-logo__wordmark-domain{font-size:.7em}
  .ls-nav{gap:4px}
  .ls-nav__btn span{max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ls-publish,.ls-auth,.ls-profile{width:100%}
  .ls-form__upload-preview p,.ls-form__hint{overflow-wrap:anywhere}
  .ls-detail__tags{align-items:flex-start}
}
@media(max-width:420px){
  .ls-logo{max-width:132px;gap:6px}
  .ls-logo__wordmark{display:inline-flex;font-size:16px}
  .ls-logo__wordmark-domain{font-size:.68em}
  .ls-nav__btn{min-width:48px}
  .ls-nav__btn span{font-size:9px;max-width:52px}
}
@media(max-width:360px){
  .ls-logo{max-width:112px}
  .ls-logo__img,.custom-logo{width:34px;height:34px;max-width:34px}
  .ls-logo__wordmark{font-size:14px}
  .ls-nav__btn{min-width:44px;padding-left:6px;padding-right:6px}
}

/* Availability planning */
.ls-availability-editor,.ls-management-availability{padding:16px;border:1px solid var(--border-light);border-radius:16px;background:#F7FCFF;margin:18px 0}
.ls-availability-editor h3,.ls-management-availability h5{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--text);margin-bottom:6px}
.ls-management-availability h5{font-size:14px}
.ls-availability{padding:18px;border:1px solid var(--border-light);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(16,50,70,.05);margin:20px 0}
.ls-availability__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.ls-availability__head h3{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800}
.ls-availability__next{font-size:12px;color:var(--text-secondary);text-align:right}
.ls-availability__legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;font-size:11px;color:var(--text-secondary)}
.ls-availability__legend span{display:inline-flex;align-items:center;gap:5px}
.ls-availability__legend i,.ls-availability-dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.ls-availability__grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.ls-availability-day{min-height:46px;border-radius:12px;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;color:var(--text)}
.ls-availability-day strong{font-size:14px;line-height:1}
.ls-availability-day small{font-size:10px;color:var(--text-muted);text-transform:uppercase}
.ls-availability-day.is-available,.ls-availability__legend .is-available,.ls-availability-dot.is-available{background:var(--secondary-light);border-color:rgba(47,228,125,.35);color:var(--secondary-dark)}
.ls-availability-day.is-reserved,.ls-availability__legend .is-reserved,.ls-availability-dot.is-reserved{background:#FFF4D8;border-color:#FFE1A3;color:#9A6700}
.ls-availability-day.is-unavailable,.ls-availability__legend .is-unavailable,.ls-availability-dot.is-unavailable{background:#F3F6F8;border-color:#DDE6EA;color:var(--text-muted)}
.ls-availability-mini{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--border-light);font-size:12px;color:var(--text-secondary)}
.ls-availability-mini>div{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}

@media(max-width:768px){
  .ls-availability__head{flex-direction:column}
  .ls-availability__next{text-align:left}
  .ls-availability__grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .ls-availability-day{min-height:44px}
  .ls-availability-mini{align-items:flex-start;flex-direction:column}
}

/* ════════════════════════════════════════════════════════════
   MOBILE UX OPTIMIZATIONS — Thumb-Driven Design
   ════════════════════════════════════════════════════════════ */

/* — CTA "Publier" — vert sur les deux formats, cercle élevé uniquement sur mobile — */
.ls-nav__btn--cta{background:linear-gradient(135deg,var(--secondary) 0%,var(--secondary-dark) 100%);color:#fff;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.ls-nav__btn--cta i,.ls-nav__btn--cta span{color:#fff}
.ls-nav__btn--cta:hover,.ls-nav__btn--cta.active{background:linear-gradient(135deg,var(--secondary-dark) 0%,var(--secondary) 100%);color:#fff;transform:translateY(-1px);box-shadow:0 6px 14px rgba(47,228,125,.35)}
.ls-nav__btn--cta:hover i,.ls-nav__btn--cta:hover span,.ls-nav__btn--cta.active i,.ls-nav__btn--cta.active span{color:#fff}

/* Cache éléments desktop-only sur mobile */
.ls-nav__btn--desktop-only{display:inline-flex}

@media(max-width:768px){
  /* Search visible et compacte sur mobile */
  .ls-search{display:block!important;flex:1 1 auto;max-width:none;margin:0 8px;min-width:0}
  .ls-search input{height:42px;font-size:14px;padding:10px 16px 10px 40px}
  .ls-search i{font-size:16px;left:14px}

  /* Bottom nav: CTA central élevé en cercle (entièrement contenu dans la nav) */
  .ls-nav{justify-content:space-around;align-items:center;gap:2px;padding:14px 4px calc(8px + env(safe-area-inset-bottom));min-height:78px;overflow:visible}
  .ls-nav__btn{flex:1 1 0;min-width:0;max-width:80px;padding:6px 4px;min-height:56px}
  .ls-nav__btn--cta{flex:0 0 auto;width:54px;height:54px;min-height:54px;margin:0;padding:0;border:3px solid #fff;border-radius:50%!important;box-shadow:0 6px 18px rgba(47,228,125,.45),0 2px 6px rgba(0,0,0,.08);align-self:center}
  .ls-nav__btn--cta i{font-size:26px!important}
  .ls-nav__btn--cta span{display:none!important}
  .ls-nav__btn--desktop-only{display:none!important}

  /* Tap targets ≥48px partout */
  .ls-btn,.ls-cat-pill,.ls-filter-pill,.ls-account-tab,button[type=submit]{min-height:46px}
  .ls-form input,.ls-form select,.ls-form textarea{min-height:46px;font-size:16px} /* 16px évite zoom iOS */

  /* Espacement entre boutons d'action côte à côte */
  .ls-management-actions{gap:10px}
  .ls-management-actions .ls-btn{padding:11px 14px}

  /* Formulaire de réservation : positionné en flux normal sous le planning */
  .ls-reservation-form{margin-top:20px}
  .ls-reservation-form h3{font-size:15px;margin-bottom:8px}
  .ls-reservation-form .ls-btn{width:100%;justify-content:center;min-height:50px;font-size:15px;font-weight:800}
}

/* — Mini badge "vérifié" sur les avatars (rassurance visuelle) — */
.ls-avatar-wrap{position:relative;display:inline-block;flex-shrink:0;overflow:visible;line-height:0;font-size:0}
.ls-avatar-wrap img{display:block}
.ls-avatar-verified{position:absolute;bottom:-3px;right:-3px;width:14px;height:14px;border-radius:50%;background:var(--secondary);color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid #fff;line-height:1;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.ls-avatar-verified i{font-size:8px;line-height:1;color:#fff;font-weight:900}
/* Badge plus grand pour les avatars > 40px */
.ls-detail__footer-owner .ls-avatar-verified{width:18px;height:18px;bottom:-2px;right:-2px}
.ls-detail__footer-owner .ls-avatar-verified i{font-size:10px}
/* Empêche le .ls-card__author span de masquer la pastille */
.ls-card__author .ls-avatar-wrap{overflow:visible;white-space:normal}

/* — Caution Swikly dans la publication — */
.ls-deposit-group{background:#F0FAFF;border:1px solid #BFE7FF;border-radius:12px;padding:14px;margin-top:6px}
.ls-deposit-group label{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--primary-dark);margin-bottom:8px}
.ls-deposit-group label i{font-size:20px;color:var(--primary)}
.ls-deposit-group .ls-form__row{margin-top:6px}
.ls-deposit-group select,.ls-deposit-group input{background:#fff}
.ls-deposit-group .ls-form__hint{margin-top:8px}

/* — Multi-photos publish : galerie de prévisualisation — */
.ls-gallery-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
@media(max-width:480px){.ls-gallery-preview{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ls-gallery-preview__item{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:var(--bg);border:1px solid var(--border-light)}
.ls-gallery-preview__item img{width:100%;height:100%;object-fit:cover;display:block}
.ls-gallery-preview__badge{position:absolute;top:4px;left:4px;background:var(--primary);color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;font-weight:700}
.ls-gallery-preview__remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;border:none;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.ls-gallery-preview__remove:hover{background:var(--danger)}
.ls-form__upload-sub{display:block;font-size:11px;color:var(--text-muted);margin-top:4px}

/* — Carousel galerie sur fiche détail — */
.ls-detail__gallery{position:relative;width:100%;aspect-ratio:4/3;background:#000;overflow:hidden}
@media(min-width:900px){.ls-detail__gallery{aspect-ratio:16/9}}
.ls-detail__slides{position:relative;width:100%;height:100%}
.ls-detail__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease;pointer-events:none}
.ls-detail__slide.is-active{opacity:1;pointer-events:auto}
.ls-detail__nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:22px;transition:background .2s}
.ls-detail__nav:hover{background:rgba(0,0,0,.8)}
.ls-detail__nav--prev{left:10px}
.ls-detail__nav--next{right:10px}
.ls-detail__dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.ls-detail__dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);border:none;cursor:pointer;padding:0;transition:background .2s,transform .2s}
.ls-detail__dot.is-active{background:#fff;transform:scale(1.3)}
.ls-detail__counter{position:absolute;top:10px;right:12px;background:rgba(0,0,0,.55);color:#fff;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:700}
.ls-detail__gallery[data-count="1"] .ls-detail__nav,.ls-detail__gallery[data-count="1"] .ls-detail__dots,.ls-detail__gallery[data-count="1"] .ls-detail__counter{display:none}

/* — Page 404 custom — */
.ls-404{max-width:520px;margin:80px auto;padding:40px 20px;text-align:center}
.ls-404>i{font-size:72px;color:var(--primary);margin-bottom:18px;display:block}
.ls-404 h1{font-size:28px;font-weight:800;margin-bottom:12px;color:var(--text)}
.ls-404 p{color:var(--text-secondary);font-size:15px;margin-bottom:24px;line-height:1.5}
.ls-404__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
@media(max-width:480px){.ls-404__actions{flex-direction:column;align-items:stretch}.ls-404__actions .ls-btn{justify-content:center}}

/* — Tri/select dans les filtres de l'espace client — */
.ls-account-sort{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}
.ls-account-sort select{border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:13px;background:#fff;font-family:var(--font);cursor:pointer}
@media(max-width:480px){.ls-account-sort{width:100%}.ls-account-sort select{flex:1}}

/* — Preview de la pièce d'identité uploadée — */
.ls-identity-preview{margin-top:14px;padding:12px;background:#F7FCFF;border:1px solid var(--border-light);border-radius:12px}
.ls-identity-preview__head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--primary-dark);margin-bottom:10px}
.ls-identity-preview__head i{font-size:18px}
.ls-identity-preview__img{max-width:100%;max-height:200px;border-radius:8px;border:1px solid var(--border-light);display:block}

/* — Modal close button plus large + bouton retour en bas — */
.ls-modal__close{width:44px;height:44px;font-size:22px}
.ls-detail__bottom-close{margin-top:20px;padding-top:14px;border-top:1px solid var(--border-light)}
.ls-detail__bottom-close .ls-btn{justify-content:center}

/* — Checkbox CGU à l'inscription — */
.ls-form__checkbox{display:flex;align-items:flex-start;gap:10px;padding:10px 0;font-size:13px;color:var(--text-secondary);cursor:pointer}
.ls-form__checkbox input{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--primary)}
.ls-form__checkbox a{color:var(--primary-dark);text-decoration:underline;text-underline-offset:2px}

/* — Champs verrouillés (compte vérifié) — */
.ls-locked-note{background:#E8F5E9;border:1px solid #A5D6A7;border-radius:10px;padding:10px 14px;margin-bottom:12px;color:#1B5E20;display:flex;align-items:center;gap:8px;font-size:13px}
.ls-locked-note i{font-size:18px;color:#2E7D32;flex-shrink:0}
input.is-locked,select.is-locked,textarea.is-locked{background:#F5F5F5;color:var(--text-secondary);cursor:not-allowed;border-color:var(--border-light)}
input.is-locked:focus{outline:none;box-shadow:none}

/* — Annonces du profil : dropdown via <details>/<summary> — */
.ls-management-card{display:block;border:1px solid var(--border-light);border-radius:16px;background:#fff;margin-bottom:10px;padding:0;overflow:hidden}
.ls-management-card>summary{display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.ls-management-card>summary::-webkit-details-marker,.ls-management-card>summary::marker{display:none}
.ls-management-card>summary>img{width:64px;height:64px;border-radius:10px;object-fit:cover;flex-shrink:0;background:var(--bg)}
.ls-management-card__head{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ls-management-card__head h4{font-size:14px;font-weight:800;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ls-management-card__head p{font-size:12px;color:var(--text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-management-card__head .ls-status-pill{align-self:flex-start;margin-top:2px}
.ls-management-card__chevron{font-size:18px;color:var(--text-muted);flex-shrink:0;transition:transform .2s ease}
.ls-management-card[open]>summary .ls-management-card__chevron{transform:rotate(180deg)}
.ls-management-card__body{padding:0 14px 14px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--border-light)}
.ls-management-card__detail{padding-top:12px;font-size:13px;color:var(--text-secondary)}
.ls-management-card__detail p{margin:4px 0}
.ls-management-card__detail strong{color:var(--text)}
.ls-management-edit{padding-top:8px;border-top:1px dashed var(--border)}

/* — Onglets nav : afficher/cacher selon clic (profil vs locations/etc.) — */
.ls-profile.is-view-profile-only .ls-account-tools{display:none}
.ls-profile.is-view-account-only .ls-profile__header,
.ls-profile.is-view-account-only .ls-profile__settings-panel,
.ls-profile.is-view-account-only .ls-identity-card,
.ls-profile.is-view-account-only .ls-email-verify-banner{display:none}
.ls-profile.is-view-account-only .ls-account-tools{padding:14px}
.ls-profile.is-view-account-only .ls-account-tools__head{margin-bottom:10px}

/* — Liste des contrats dans l'onglet Contrats — */
.ls-contracts-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--border-light)}
.ls-contracts-section__head{margin-bottom:14px}
.ls-contracts-section__head h3{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;color:var(--text);margin-bottom:4px}
.ls-contracts-section__head h3 i{color:var(--primary);font-size:20px}
.ls-contract-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--border-light);border-radius:16px;padding:16px;background:#fff;margin-bottom:10px}
.ls-contract-row__body{flex:1;min-width:0}
.ls-contract-row__pills{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.ls-contract-row h4{font-size:15px;font-weight:800;margin-bottom:4px}
.ls-contract-row p{font-size:12px;color:var(--text-secondary)}
.ls-contract-row__note{display:flex;align-items:flex-start;gap:6px;margin-top:6px;line-height:1.45;color:var(--text-muted)!important}
.ls-contract-row__note i{font-size:15px;color:var(--primary);flex:0 0 auto;margin-top:1px}
.ls-contract-row__actions{flex:0 0 auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:768px){
  .ls-contract-row{flex-direction:column;align-items:stretch}
  .ls-contract-row__actions{justify-content:stretch}
  .ls-contract-row__actions .ls-btn{width:100%;justify-content:center}
}

/* — CTA "Générer un contrat" dans les discussions — */
.ls-chat-contract-cta{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ls-chat-contract-cta p{margin:0;font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}
.ls-chat-contract-cta p i{font-size:14px}
.ls-chat-contract-cta p i.ph-warning-circle{color:#FF9800}
.ls-chat-contract-cta p i.ph-seal-check,.ls-chat-contract-cta p i.ph-check-circle{color:var(--secondary-dark)}
@media(max-width:768px){
  .ls-chat-contract-cta{flex-direction:column;align-items:stretch}
  .ls-chat-contract-cta .ls-btn{width:100%;justify-content:center}
}

/* — Champs manuels du locataire dans l'onglet Contrats — */
#contract-renter-manual-fields{background:#FFF8E7;border:1px solid #FFE4B0;border-radius:12px;padding:14px;margin-top:10px}
#contract-renter-manual-fields > .ls-form__hint{margin-bottom:10px;color:#8B6914;display:flex;align-items:center;gap:6px}
#contract-renter-manual-fields > .ls-form__hint i{font-size:16px;color:#FF9800;flex-shrink:0}

/* ════════════════════════════════════════════════════════════
   PUBLISH PROGRESS OVERLAY + PREVIEW + MULTI-DATE PICKER
   ════════════════════════════════════════════════════════════ */
.ls-publish-overlay{
  position:fixed;inset:0;z-index:400;
  background:rgba(7,24,33,.6);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.ls-publish-overlay.is-open{opacity:1;pointer-events:auto}
.ls-publish-overlay__card{
  background:#fff;border-radius:20px;padding:28px 26px;
  width:100%;max-width:440px;text-align:center;
  box-shadow:0 30px 80px rgba(7,24,33,.4);
}
.ls-publish-overlay__spinner .ls-spinner{width:42px;height:42px;border-width:3px;margin:0 auto 14px}
.ls-publish-overlay__title{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--text);margin-bottom:6px}
.ls-publish-overlay__step{font-size:13px;color:var(--text-secondary);margin-bottom:14px;min-height:18px}
.ls-publish-overlay__bar{height:8px;background:#E5EDF2;border-radius:99px;overflow:hidden;margin-bottom:8px}
.ls-publish-overlay__fill{height:100%;width:0;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 100%);transition:width .35s ease}
.ls-publish-overlay__count{font-size:12px;font-weight:700;color:var(--primary-dark);margin-bottom:8px;min-height:14px}
.ls-publish-overlay__hint{font-size:11px;color:var(--text-muted)}

.ls-preview-overlay{
  position:fixed;inset:0;z-index:380;
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.ls-preview-overlay.is-open{opacity:1;pointer-events:auto}
.ls-preview-overlay__backdrop{position:absolute;inset:0;background:rgba(7,24,33,.55);backdrop-filter:blur(4px)}
.ls-preview-overlay__panel{
  position:relative;background:#fff;border-radius:20px;
  width:100%;max-width:540px;max-height:90vh;overflow:auto;
  padding:22px;box-shadow:0 30px 80px rgba(7,24,33,.4);
}
.ls-preview-overlay__close{
  position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;
  background:rgba(7,24,33,.08);color:var(--text);border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:18px;
}
.ls-preview-overlay__title{font-family:var(--font-display);font-size:18px;font-weight:800;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.ls-preview-card{border:1px solid var(--border-light);border-radius:16px;overflow:hidden;background:#fff;margin-bottom:18px}
.ls-preview-card__photos{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;height:240px;background:#EAF8FD}
.ls-preview-card__photos img{width:100%;height:100%;object-fit:cover;display:block}
.ls-preview-card__photos img.is-main{grid-row:1/3}
.ls-preview-card__photos img:nth-child(1):not(.is-main),.ls-preview-card__photos img:only-child{grid-column:1/-1;grid-row:1/-1}
.ls-preview-card__nophoto{grid-column:1/-1;grid-row:1/-1;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--text-muted);gap:6px}
.ls-preview-card__nophoto i{font-size:36px}
.ls-preview-card__more{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.65);color:#fff;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700}
.ls-preview-card__body{padding:14px 16px}
.ls-preview-card__price{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--primary)}
.ls-preview-card__price span{font-size:13px;font-weight:400;color:var(--text-muted)}
.ls-preview-card__title{font-size:16px;font-weight:700;margin:4px 0 6px}
.ls-preview-card__meta{font-size:12px;color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ls-preview-card__meta i{color:var(--primary)}
.ls-preview-card__desc{font-size:13px;color:var(--text-secondary);margin-top:8px;white-space:pre-wrap}
.ls-preview-overlay__actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.ls-preview-overlay__actions .ls-btn{min-width:140px;justify-content:center}
@media(max-width:540px){
  .ls-preview-overlay__actions .ls-btn{width:100%}
}

/* Multi-date picker — calendrier inline */
.ls-multidate{margin-top:10px;background:#fff;border:1px solid var(--border-light);border-radius:14px;padding:14px}
.ls-multidate__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.ls-multidate__head button{
  background:var(--bg);border:1px solid var(--border);border-radius:8px;
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--text);font-size:18px;
}
.ls-multidate__head button:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}
.ls-multidate__title{font-weight:800;font-size:14px;color:var(--text);text-transform:capitalize}
.ls-multidate__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.ls-multidate__weekdays span{font-size:10px;font-weight:800;color:var(--text-muted);text-align:center;text-transform:uppercase;letter-spacing:.03em}
.ls-multidate__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.ls-multidate__day{
  aspect-ratio:1/1;border:1px solid var(--border-light);border-radius:8px;
  background:#fff;color:var(--text);font-size:13px;font-weight:600;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .12s ease;
}
.ls-multidate__day:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}
.ls-multidate__day:disabled,.ls-multidate__day--past{background:#F7F9FB;color:var(--text-muted);cursor:not-allowed;border-color:transparent}
.ls-multidate__day--blocked{background:var(--danger);border-color:var(--danger);color:#fff}
.ls-multidate__day--blocked:hover{background:#d63a48;border-color:#d63a48}
.ls-multidate__day--empty{visibility:hidden}
.ls-multidate__legend{display:flex;gap:14px;margin-top:10px;font-size:11px;color:var(--text-secondary)}
.ls-multidate__legend span{display:inline-flex;align-items:center;gap:5px}
.ls-multidate__legend i{width:10px;height:10px;border-radius:3px;display:inline-block;background:var(--border)}
.ls-multidate__legend .is-blocked{background:var(--danger)}

/* ═══════════════════════════════════════════════════════════
   PUBLISH FORM — refonte UX/UI complète
   ═══════════════════════════════════════════════════════════ */

/* Étapes : plus de cercle numéroté dans le header (la progress bar suffit) */
.ls-form-step{position:relative;padding:24px 0 8px;border-top:1px solid var(--border-light);margin-top:18px;scroll-margin-top:calc(var(--header-h) + 110px)}
.ls-form-step:first-of-type{border-top:none;margin-top:0;padding-top:4px}
.ls-form-step__header{display:flex;align-items:flex-start;gap:0;margin-bottom:16px}
.ls-form-step__title{font-size:18px;font-weight:800;color:var(--text);margin:0;line-height:1.25;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:var(--font-display)}
.ls-form-step__title > i{color:var(--primary);font-size:22px;flex:0 0 auto}
.ls-form-step__title i.ph-duotone::after{color:var(--secondary);opacity:1}
.ls-form-step__hint{font-size:13px;color:var(--text-secondary);margin-top:4px;line-height:1.45}

/* ─── Badge "gratuit illimité" sous le titre h2 ─── */
.ls-publish__badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;background:linear-gradient(135deg,var(--secondary-light),var(--primary-light));color:var(--secondary-dark);font-weight:700;font-size:13px;margin:0 0 18px;border:1px solid rgba(var(--secondary-rgb),.25)}
.ls-publish__badge i{font-size:18px;color:var(--secondary-dark)}
.ls-publish__badge i.ph-duotone::after{color:var(--primary);opacity:1}
.ls-publish__badge strong{color:var(--secondary-dark);font-weight:800}

/* ─── Progress bar STICKY en haut du form ─── */
.ls-form-progress{list-style:none;padding:14px 8px;margin:0 0 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;position:sticky;top:calc(var(--header-h) + 6px);z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-light);border-radius:16px;box-shadow:0 6px 20px rgba(16,50,70,.06)}
.ls-form-progress::before{content:"";position:absolute;left:34px;right:34px;top:32px;height:3px;background:var(--border-light);border-radius:99px;z-index:0}
.ls-form-progress__step{flex:1;list-style:none;position:relative;z-index:1}
.ls-form-progress__btn{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;background:none;border:0;font-family:inherit;padding:0;width:100%}
.ls-form-progress__btn:hover .ls-form-progress__num{transform:scale(1.04)}
.ls-form-progress__num{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;border:2px solid var(--border-light);transition:all .25s ease}
.ls-form-progress__label{font-size:12px;font-weight:700;color:var(--text-muted);transition:color .2s ease;text-align:center;line-height:1.3}
.ls-form-progress__step.is-active .ls-form-progress__num{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:var(--primary);box-shadow:0 4px 12px rgba(var(--primary-rgb),.35);transform:scale(1.06)}
.ls-form-progress__step.is-active .ls-form-progress__label{color:var(--primary-dark)}
.ls-form-progress__step.is-done .ls-form-progress__num{background:var(--secondary);border-color:var(--secondary);color:#fff}
.ls-form-progress__step.is-done .ls-form-progress__label{color:var(--secondary-dark)}
@media(max-width:480px){
  .ls-form-progress{padding:10px 4px}
  .ls-form-progress__label{font-size:10.5px}
  .ls-form-progress__num{width:30px;height:30px;font-size:13px}
  .ls-form-progress::before{left:24px;right:24px;top:28px}
}

/* ─── Astérisque requis + libellé facultatif + compteur description ─── */
.ls-form__req{color:#E63946;font-weight:800;margin-left:2px;font-size:14px;line-height:1}
.ls-form__opt{color:var(--text-muted);font-weight:500;font-size:11px;margin-left:4px;letter-spacing:.02em}
.ls-form__counter{float:right;font-size:11px;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums;line-height:1.4}
.ls-form__counter.is-near-limit{color:#E69500}
.ls-form__counter.is-over-limit{color:#E63946}

/* Hint "tip" (lampe) distinct du hint info classique */
.ls-form__hint--tip{background:linear-gradient(90deg,rgba(255,215,0,.10),transparent);border-left:3px solid #FFD700;padding:6px 10px;border-radius:4px;margin-top:6px}
.ls-form__hint--tip i{color:#E69500}

/* Hint privacy (eye-slash) dans bloc adresse : visuel rassurant */
.ls-form__hint--privacy{background:var(--secondary-light);border:1px solid rgba(var(--secondary-rgb),.25);padding:10px 12px;border-radius:10px;margin-bottom:14px;color:var(--text);font-size:12.5px;line-height:1.5}
.ls-form__hint--privacy i{color:var(--secondary-dark);font-size:16px;flex:0 0 auto}
.ls-form__hint--privacy i.ph-duotone::after{color:var(--primary);opacity:1}

/* Row "N° + Rue" : N° plus étroit (90px), plus de hack inline */
.ls-form__row--street{grid-template-columns:90px 1fr}
@media(max-width:480px){.ls-form__row--street{grid-template-columns:80px 1fr}}

/* Boutons photo : caméra cachée sur desktop, label adaptatif */
.ls-btn__lbl-desktop{display:inline}
.ls-btn__lbl-mobile{display:none}
@media(max-width:768px){
  .ls-btn__lbl-desktop{display:none}
  .ls-btn__lbl-mobile{display:inline}
}
@media(min-width:769px){
  .ls-btn--photo-mobile{display:none !important}
}

/* ─── Catégorie en PILLS (cohérence DA avec .ls-cat-pill du feed) ─── */
.ls-publish-cats{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}
.ls-publish-cat{cursor:pointer;margin:0;position:relative}
.ls-publish-cat input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.ls-publish-cat__pill{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-full);color:var(--text-secondary);font-size:13px;font-weight:600;transition:all .15s ease;white-space:nowrap}
.ls-publish-cat__pill i{font-size:16px;color:var(--primary)}
.ls-publish-cat__pill i.ph-duotone::after{color:var(--secondary);opacity:1}
.ls-publish-cat:hover .ls-publish-cat__pill{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}
.ls-publish-cat input:checked + .ls-publish-cat__pill{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-color:var(--primary-dark);color:#fff;box-shadow:0 4px 12px rgba(var(--primary-rgb),.30)}
.ls-publish-cat input:checked + .ls-publish-cat__pill i{color:#fff}
.ls-publish-cat input:checked + .ls-publish-cat__pill i.ph-duotone::after{color:rgba(255,255,255,.6)}
.ls-publish-cat input:focus-visible + .ls-publish-cat__pill{outline:3px solid var(--primary);outline-offset:2px}

/* ─── Caution Swikly : 3 cartes radio + champ montant qui se déplie ─── */
.ls-deposit{padding:0}
.ls-deposit__label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--text);margin-bottom:10px}
.ls-deposit__label i{color:var(--primary);font-size:18px}
.ls-deposit__label i.ph-duotone::after{color:var(--secondary);opacity:1}
.ls-deposit__choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ls-deposit__option{margin:0;cursor:pointer;position:relative}
.ls-deposit__option input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.ls-deposit__card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;background:#fff;border:1.5px solid var(--border);border-radius:14px;transition:all .15s ease;height:100%}
.ls-deposit__card i{font-size:22px;color:var(--text-muted);margin-bottom:2px}
.ls-deposit__card strong{font-size:13.5px;font-weight:800;color:var(--text);line-height:1.2}
.ls-deposit__card small{font-size:11.5px;color:var(--text-secondary);line-height:1.3}
.ls-deposit__option:hover .ls-deposit__card{border-color:var(--primary);transform:translateY(-1px)}
.ls-deposit__option input:checked + .ls-deposit__card{border-color:var(--primary);background:var(--primary-light);box-shadow:0 4px 12px rgba(var(--primary-rgb),.18)}
.ls-deposit__option input:checked + .ls-deposit__card i{color:var(--primary-dark)}
.ls-deposit__option input:focus-visible + .ls-deposit__card{outline:3px solid var(--primary);outline-offset:2px}
.ls-deposit__amount{margin-top:14px;padding:14px;border-radius:14px;background:var(--primary-light);border:1px solid rgba(var(--primary-rgb),.20);animation:fadeUp .2s ease}
.ls-deposit__amount label{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:6px}
@media(max-width:640px){
  .ls-deposit__choices{grid-template-columns:1fr}
}

/* ─── Disponibilités : sous-titre h4 aligné avec Caution (pas h3) ─── */
.ls-availability-editor__title{font-size:14px;font-weight:800;color:var(--text);margin:0 0 6px;display:flex;align-items:center;gap:8px}
.ls-availability-editor__title i{color:var(--primary);font-size:18px}
.ls-availability-editor__title i.ph-duotone::after{color:var(--secondary);opacity:1}

/* ─── CTA submit + hint : container ─── */
.ls-publish__submit{margin-top:24px}
.ls-publish__final-hint{text-align:center;margin-top:10px;font-size:12px;color:var(--text-muted)}

/* ─── CTA submit STICKY en bas sur mobile (au-dessus du bottom-nav) ─── */
@media(max-width:768px){
  .ls-publish__submit{position:sticky;bottom:calc(72px + env(safe-area-inset-bottom));z-index:50;padding:10px;margin:24px -12px -12px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border-light);box-shadow:0 -6px 18px rgba(16,50,70,.08)}
  .ls-publish__submit .ls-publish__final-hint{margin-top:4px}
}

/* — Photo upload zone agrandie sur mobile — */
@media(max-width:768px){
  .ls-form__upload{min-height:200px;border-style:dashed;border-width:2px;border-radius:14px}
  .ls-form__upload-preview i{font-size:48px}
  .ls-form__upload-preview p{font-size:15px;font-weight:700}
}

/* — Boutons "Appareil photo" / "Galerie" sous la zone d'upload — */
.ls-form__upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.ls-form__upload-actions .ls-btn{width:100%;justify-content:center;min-height:46px}
@media(max-width:420px){
  .ls-form__upload-actions{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════════════════════
   TIKTOK/INSTAGRAM FEED — cartes portrait immersives, infos en overlay
   ════════════════════════════════════════════════════════════ */

/* ── Conteneur feed ── */
.ls-feed.ls-feed--insta{
  display:flex;flex-direction:column;align-items:center;
  gap:20px;max-width:480px;margin:0 auto;
  padding:20px 0 80px;
}

/* ── Carte : portrait immersif ── */
.ls-feed--insta .ls-card{
  width:100%;
  display:block;           /* pas de grid — overlay CSS pur */
  position:relative;
  border-radius:20px;overflow:hidden;
  border:none;
  box-shadow:0 8px 32px rgba(16,50,70,.18);
  background:#000;
  opacity:0;transform:translateY(40px) scale(.97);
  transition:opacity .5s cubic-bezier(.2,.7,.3,1),transform .5s cubic-bezier(.2,.7,.3,1),box-shadow .2s ease;
}
.ls-feed--insta .ls-card.is-revealed{opacity:1;transform:translateY(0) scale(1)}
.ls-feed--insta .ls-card:hover{transform:translateY(-3px);box-shadow:0 20px 56px rgba(16,50,70,.26)}
.ls-feed--insta .ls-card.is-impression{box-shadow:0 0 0 2px var(--primary),0 20px 56px rgba(16,174,234,.22)}

/* ── Image : ratio portrait (3/4 comme Instagram/TikTok) ── */
.ls-feed--insta .ls-card__img{
  position:relative;
  width:100%;aspect-ratio:3/4;
  background:#0a1a22;
}
.ls-feed--insta .ls-card__img img{
  width:100%;height:100%;object-fit:cover;
  display:block;
  transition:transform .6s ease;
}
.ls-feed--insta .ls-card:hover .ls-card__img img{transform:scale(1.04)}

/* Dégradé en bas pour lisibilité du texte overlay */
.ls-feed--insta .ls-card__img::after{
  content:'';
  position:absolute;inset:auto 0 0 0;
  height:65%;
  background:linear-gradient(to top,
    rgba(0,0,0,.82) 0%,
    rgba(0,0,0,.45) 40%,
    transparent 100%);
  pointer-events:none;
  z-index:1;
}

/* ── Actions TikTok : icônes à droite, overlay sur l'image ── */
.ls-card__actions{
  position:absolute;
  right:12px;bottom:90px;
  display:flex;flex-direction:column;align-items:center;
  gap:18px;padding:0;
  background:transparent;border:none;
  z-index:3;
}
.ls-card__action{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  background:transparent;border:0;cursor:pointer;
  color:rgba(255,255,255,.92);
  text-shadow:0 1px 4px rgba(0,0,0,.6);
  padding:4px;border-radius:12px;font-family:var(--font);
  transition:transform .15s ease,color .15s ease;
}
.ls-card__action i{font-size:28px;line-height:1}
.ls-card__action small{font-size:10px;font-weight:800;letter-spacing:.02em;color:#fff}
.ls-card__action:hover{transform:scale(1.18)}
.ls-card__action.is-active{color:#ff4757}
.ls-card__action.is-active i{animation:heartPop .35s ease}
@keyframes heartPop{0%{transform:scale(1)}40%{transform:scale(1.4)}100%{transform:scale(1.1)}}
.ls-card__action--save.is-active{color:#10AEEA}
.ls-card__action--share.is-active{color:#a8edea}
.ls-card__distance-chip{
  display:inline-flex;flex-direction:column;align-items:center;gap:2px;
  color:rgba(255,255,255,.8);font-size:10px;font-weight:700;text-align:center;
}
.ls-card__distance-chip i{font-size:18px;color:#10AEEA}

/* ── Infos overlay : texte au bas de l'image ── */
.ls-feed--insta .ls-card__body{
  position:absolute;bottom:0;left:0;
  right:68px;           /* espace pour les actions */
  padding:0 16px 20px;
  background:transparent;
  z-index:2;
}
.ls-feed--insta .ls-card__price{
  font-size:22px;font-weight:900;
  color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.5);
}
.ls-feed--insta .ls-card__price span{font-size:13px;font-weight:500;color:rgba(255,255,255,.75)}
.ls-feed--insta .ls-card__title{
  font-size:15px;line-height:1.35;font-weight:600;
  color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5);
  white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;margin:3px 0 6px;
}
.ls-feed--insta .ls-card__city{
  font-size:12px;color:rgba(255,255,255,.8);
  display:flex;align-items:center;gap:4px;margin-top:0;
}
.ls-feed--insta .ls-card__city i{color:rgba(255,255,255,.8)}
.ls-feed--insta .ls-card__meta{
  display:flex;align-items:center;gap:10px;margin-top:8px;
}
.ls-feed--insta .ls-card__author span{color:rgba(255,255,255,.85);font-size:12px}
.ls-feed--insta .ls-card__rating{color:#fbbf24;font-size:12px;font-weight:700}
.ls-feed--insta .ls-card__rating span{color:rgba(255,255,255,.7)}

/* Badge et distance restent en haut */
.ls-feed--insta .ls-card__badge{top:14px;left:14px;z-index:3}
.ls-feed--insta .ls-card__distance{top:14px;right:14px;z-index:3}

/* ── Mobile ── */
@media(max-width:768px){
  .ls-feed.ls-feed--insta{padding:12px 0 100px;gap:14px}
  .ls-card__actions{right:10px;bottom:80px;gap:14px}
  .ls-card__action i{font-size:26px}
  .ls-feed--insta .ls-card__body{right:60px;padding:0 14px 18px}
  .ls-feed--insta .ls-card__price{font-size:20px}
  .ls-feed--insta .ls-card__title{font-size:14px}
}

/* Effet de transition au passage Hero → Feed (parallax-like) */
.ls-hero{transition:transform .8s cubic-bezier(.2,.7,.3,1),opacity .6s ease;will-change:transform}
.ls-app.is-scrolled-past-hero .ls-hero{transform:translateY(-12px);opacity:.96}

@media(prefers-reduced-motion:reduce){
  .ls-feed--insta .ls-card{transition:none!important;opacity:1;transform:none}
  .ls-hero{transition:none!important}
}

/* ════════════════════════════════════════════════════════════
   INSTAGRAM LAYOUT — sidebar gauche verticale ≥769px (tablette + desktop)
   ════════════════════════════════════════════════════════════ */
@media(min-width:769px){
  :root{--sidebar-w:220px}

  /* Header → sidebar verticale fixe à gauche */
  .ls-header{
    top:0;left:0;right:auto;bottom:0;
    width:var(--sidebar-w);height:100vh;
    background:#fff;backdrop-filter:none;
    border-right:1px solid var(--border-light);
    border-bottom:0;
    box-shadow:0 0 0 1px rgba(16,50,70,.02);
    padding:20px 12px 14px;
    overflow-y:auto;overflow-x:hidden;
  }
  .ls-header__inner{
    flex-direction:column;align-items:stretch;
    gap:6px;padding:0;height:auto;max-width:none;
  }

  /* Logo en haut, ample */
  .ls-logo{
    min-width:0;max-width:100%;width:100%;
    justify-content:flex-start;
    padding:10px 12px 6px;margin:0 0 14px;
    height:auto;gap:10px;
  }
  .ls-logo__img,.custom-logo{height:42px;max-width:42px;width:42px}
  .ls-logo__wordmark{font-size:22px}

  /* Search en haut, full-width style Insta */
  .ls-search{
    flex:0 0 auto;max-width:none;width:100%;
    margin:0 0 14px;
  }
  .ls-search input{height:42px;background:#F7FBFD;border-color:var(--border-light)}

  /* Nav verticale, items full-width */
  .ls-nav{
    flex-direction:column;align-items:stretch;
    gap:4px;margin:0;width:100%;
    flex:1 1 auto;min-height:0;
    background:none!important;backdrop-filter:none!important;
    position:static!important;
    padding:0;border:0;box-shadow:none;
  }
  .ls-nav__btn{
    width:100%;justify-content:flex-start;
    gap:14px;padding:12px 14px;
    border-radius:14px;font-size:15px;font-weight:500;
    color:var(--text);min-height:50px;
    flex-direction:row;
  }
  .ls-nav__btn i{font-size:26px;flex:0 0 auto;line-height:1}
  .ls-nav__btn span:not(.ls-nav__unread){
    display:inline-block!important;font-size:15px;font-weight:600;
    color:var(--text);text-align:left;flex:1 1 auto;
    max-width:none;overflow:visible;text-overflow:clip;white-space:normal;
  }
  .ls-nav__btn:hover{background:var(--primary-light);color:var(--primary-dark)}
  .ls-nav__btn:hover span{color:var(--primary-dark)}
  .ls-nav__btn.active{background:var(--primary-light);color:var(--primary-dark);font-weight:700}
  .ls-nav__btn.active span{font-weight:700;color:var(--primary-dark)}
  .ls-nav__avatar{width:28px;height:28px;flex:0 0 auto}
  .ls-nav__unread{
    position:static;margin-left:auto;
    background:var(--secondary);font-size:11px;
  }

  /* CTA Publier — gros bouton type Instagram Créer */
  .ls-nav__btn--cta{
    margin-top:6px;
    background:linear-gradient(135deg,var(--secondary) 0%,var(--secondary-dark) 100%)!important;
    color:#fff!important;border-radius:14px!important;
    width:100%!important;height:auto!important;
    padding:12px 14px!important;
    border:0!important;box-shadow:0 6px 16px rgba(var(--secondary-rgb),.28)!important;
  }
  .ls-nav__btn--cta i,.ls-nav__btn--cta span{color:#fff!important;font-size:26px}
  .ls-nav__btn--cta span{display:inline-block!important;font-size:15px!important;font-weight:700!important}

  /* Logout poussé en bas */
  .ls-nav__btn--logout{
    margin-top:auto;margin-bottom:4px;
    background:transparent;color:var(--text-secondary);
    padding:12px 14px;border-radius:14px;justify-content:flex-start;gap:14px;
  }
  .ls-nav__btn--logout i{font-size:24px}
  .ls-nav__btn--logout span{display:inline-block;font-size:15px;font-weight:600}
  .ls-nav__btn--logout:hover{background:#FFF0F0;color:var(--danger)}

  /* App décalée à droite, header-h annulé */
  .ls-app{
    padding-top:0;
    padding-left:var(--sidebar-w);
    padding-bottom:0;
  }
  .ls-app .ls-view{min-height:100vh}

  /* Categories sticky : colle au top maintenant (plus de header haut) */
  .ls-categories{top:0;padding-top:12px;background:rgba(247,252,255,.94)}

  /* Hero retrouve un padding-top normal */
  .ls-hero{padding-top:60px}

  /* Hamburger off */

  /* Footer aligné à la zone décalée */
  .ls-footer{padding-left:calc(var(--sidebar-w) + 20px);padding-right:20px}

  /* Cookie banner aligné aussi */
  .ls-cookie-banner{padding-left:calc(var(--sidebar-w) + 20px)}
}

/* Bouton toggle sidebar collapse — caché sur mobile, visible ≥769px */
.ls-sidebar-toggle{display:none}
@media(min-width:769px){
  .ls-sidebar-toggle{
    display:flex;align-items:center;justify-content:center;
    position:absolute;top:14px;right:-14px;
    width:28px;height:28px;border-radius:50%;
    background:#fff;border:1px solid var(--border);
    color:var(--text-secondary);cursor:pointer;
    box-shadow:0 4px 10px rgba(16,50,70,.08);
    z-index:10;transition:transform .2s ease,background .2s ease,color .2s ease;
  }
  .ls-sidebar-toggle:hover{color:var(--primary);background:var(--primary-light);transform:scale(1.06)}
  .ls-sidebar-toggle i{font-size:16px;transition:transform .3s cubic-bezier(.4,0,.2,1)}
  body.ls-sidebar-collapsed .ls-sidebar-toggle i{transform:rotate(180deg)}

  /* Sidebar collapsed → 72px, icons only */
  body.ls-sidebar-collapsed{--sidebar-w:72px}
  body.ls-sidebar-collapsed .ls-header{padding:20px 8px 14px;overflow:visible}
  body.ls-sidebar-collapsed .ls-logo{padding:8px 6px;margin-bottom:10px;justify-content:center;gap:0}
  body.ls-sidebar-collapsed .ls-logo__wordmark{display:none}
  body.ls-sidebar-collapsed .ls-logo__img,
  body.ls-sidebar-collapsed .custom-logo{height:36px;max-width:36px;width:36px}
  body.ls-sidebar-collapsed .ls-search{display:none}
  body.ls-sidebar-collapsed .ls-nav__btn{justify-content:center;gap:0;padding:12px 10px}
  body.ls-sidebar-collapsed .ls-nav__btn span:not(.ls-nav__unread){display:none!important}
  body.ls-sidebar-collapsed .ls-nav__btn--logout::after{display:none}
  body.ls-sidebar-collapsed .ls-nav__btn--cta{padding:10px!important;height:48px!important;border-radius:50%!important;width:48px!important;margin-left:auto;margin-right:auto}
  body.ls-sidebar-collapsed .ls-nav__btn--cta span{display:none!important}
  body.ls-sidebar-collapsed .ls-nav__unread{margin-left:0;position:absolute;top:6px;right:6px}
  body.ls-sidebar-collapsed .ls-nav__btn{position:relative}

  /* Tooltip natif au survol via title="" (Phosphor icon explicite) */
  body.ls-sidebar-collapsed .ls-nav__btn::after{
    content:attr(title);
    position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);
    background:#173443;color:#fff;padding:6px 10px;border-radius:6px;
    font-size:12px;font-weight:600;white-space:nowrap;
    opacity:0;pointer-events:none;transition:opacity .15s ease;
    box-shadow:0 4px 12px rgba(0,0,0,.18);z-index:30;
  }
  body.ls-sidebar-collapsed .ls-nav__btn:hover::after{opacity:1}

  /* App padding s'ajuste automatiquement via --sidebar-w */
}

/* Layout XL : sidebar plus large et feed un peu plus aéré */
@media(min-width:1024px){
  :root{--sidebar-w:244px}
  body.ls-sidebar-collapsed{--sidebar-w:72px}
}
@media(min-width:1280px){
  :root{--sidebar-w:260px}
  .ls-feed.ls-feed--insta{max-width:600px}
  .ls-feed--insta .ls-card{max-width:600px}
}

/* Ajustements spécifiques tablette (769-1023px) pour ne pas écraser le feed */
@media(min-width:769px) and (max-width:1023px){
  .ls-feed.ls-feed--insta{max-width:480px;padding-left:10px;padding-right:10px}
  .ls-feed--insta .ls-card{max-width:480px}
  .ls-logo__img,.custom-logo{height:38px;max-width:38px;width:38px}
  .ls-logo__wordmark{font-size:19px}
  .ls-nav__btn{font-size:14px;min-height:46px;padding:10px 12px}
  .ls-nav__btn i{font-size:24px}
  .ls-nav__btn span:not(.ls-nav__unread){font-size:14px}
  .ls-hero{padding-top:48px;padding-left:16px;padding-right:16px}
  .ls-hero h1{font-size:clamp(28px,4.6vw,42px)}
  .ls-hero__stats{max-width:none}
}

/* ════════════════════════════════════════════════════════════
   LISIBILITÉ — léger agrandissement global pour confort
   ════════════════════════════════════════════════════════════ */
body { font-size: 16px; }
p { font-size: 15px; }
.ls-page__content { font-size: 16px; line-height: 1.7; }
.ls-page__content h2 { font-size: 22px; }
.ls-page__content h3 { font-size: 18px; }
.ls-page__content li { font-size: 15px; }
.ls-form__group label { font-size: 14px; }
.ls-form__group input,
.ls-form__group select,
.ls-form__group textarea { font-size: 16px; }
.ls-card__title { font-size: 16px; }
.ls-card__price { font-size: 24px; }
.ls-card__city,
.ls-card__author span { font-size: 13px; }
.ls-publish__title { font-size: 26px; }
.ls-detail__title { font-size: 26px; }
.ls-detail__desc { font-size: 16px; }
.ls-how__step h3 { font-size: 18px; }
.ls-how__step p { font-size: 15px; }
.ls-testimonial blockquote { font-size: 15px; }
.ls-testimonial__head strong { font-size: 15px; }
.ls-value-item strong { font-size: 16px; }
.ls-value-item span { font-size: 13px; }
.ls-help-modal h3 { font-size: 22px; }
.ls-help-modal__intro { font-size: 15px; }
.ls-help-faq summary { font-size: 15px; }
.ls-help-faq p { font-size: 14px; }
.ls-auth__tab { font-size: 16px; }
.ls-btn { font-size: 15px; }
.ls-btn--sm { font-size: 14px; }
.ls-footer { font-size: 14px; }
.ls-footer__col ul a { font-size: 14px; }
.ls-footer__copy { font-size: 13px; }
.ls-nav__btn { font-size: 15px; }

/* ════════════════════════════════════════════════════════════
   PIÈCE D'IDENTITÉ — choix CNI (recto+verso) ou Passeport
   ════════════════════════════════════════════════════════════ */
.ls-id-doc { display: grid; gap: 12px; padding: 16px; background: #F7FCFF; border: 1px solid var(--border-light); border-radius: 14px; }
.ls-identity-card .ls-id-doc { width: 100%; display: grid; align-items: stretch; justify-content: initial; }
.ls-id-doc--profile { margin-top: 2px; }
.ls-id-doc__label { font-size: 15px; font-weight: 700; color: var(--text); }
.ls-id-doc__intro { margin: 0; font-size: 14px; color: var(--text-secondary); }
.ls-id-doc__choice { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ls-id-doc__option { cursor: pointer; }
.ls-id-doc__option input { position: absolute; opacity: 0; pointer-events: none; }
.ls-id-doc__card {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; padding: 16px 14px; background: #fff; border: 2px solid var(--border-light);
  border-radius: 14px; transition: all .15s ease; text-align: center;
}
.ls-id-doc__option:hover .ls-id-doc__card { border-color: var(--primary); transform: translateY(-1px); }
.ls-id-doc__option input:checked + .ls-id-doc__card {
  border-color: var(--primary); background: var(--primary-light);
  box-shadow: 0 4px 14px rgba(var(--primary-rgb), .18);
}
.ls-id-doc__option input:focus-visible + .ls-id-doc__card { outline: 3px solid rgba(var(--primary-rgb), .35); outline-offset: 3px; }
.ls-id-doc__icon { font-size: 38px; color: var(--primary); display: flex; align-items: center; justify-content: center; line-height: 1; }
.ls-id-doc__icon.ph-duotone::after,
.ls-id-doc__icon .ph-duotone::after { color: var(--secondary); opacity: 1; }
.ls-id-doc__card strong { font-size: 15px; font-weight: 700; color: var(--text); }
.ls-id-doc__card small { font-size: 12px; color: var(--text-secondary); }
.ls-id-doc__option input:checked + .ls-id-doc__card strong { color: var(--primary-dark); }

.ls-id-doc__fields[hidden] { display: none !important; }
.ls-id-doc__upload-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ls-id-doc__upload-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; padding: 18px 14px; min-height: 130px;
  background: #fff; border: 2px dashed #C9DDE7; border-radius: 14px; cursor: pointer;
  transition: all .15s ease;
}
.ls-id-doc__upload-card:hover { border-color: var(--primary); background: #F0FAFF; }
.ls-id-doc__upload-card.is-filled { border-style: solid; border-color: var(--secondary); background: #ECFDF5; }
.ls-id-doc__upload-card--wide { min-height: 150px; }
.ls-id-doc__upload-icon { font-size: 34px; color: var(--primary); line-height: 1; }
.ls-id-doc__upload-icon.ph-duotone::after,
.ls-id-doc__upload-icon .ph-duotone::after { color: var(--secondary); opacity: 1; }
.ls-id-doc__upload-card.is-filled .ls-id-doc__upload-icon { color: var(--secondary-dark); }
.ls-id-doc__upload-title { font-size: 14px; font-weight: 700; color: var(--text); }
.ls-id-doc__upload-hint { font-size: 12px; color: var(--text-secondary); text-align: center; max-width: 95%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ls-id-doc__upload-card.is-filled .ls-id-doc__upload-hint { color: var(--secondary-dark); font-weight: 600; }
.ls-id-doc__fallback { margin: 4px 0 0; font-size: 12px; color: var(--text-muted); font-style: italic; }
@media (max-width: 540px) {
  .ls-id-doc__choice,
  .ls-id-doc__upload-row { grid-template-columns: 1fr; }
}

/* ─── Profil > Vérification d'identité ───
   Force les 2 cards CNI/Passeport côte à côte horizontalement,
   même sur les écrans étroits où la grille passerait en 1 colonne.
   Layout compact horizontal (icône à gauche, texte à droite) sur mobile. */
.ls-identity-card .ls-id-doc__choice {
  grid-template-columns: 1fr 1fr !important;
  gap: 8px;
}
@media (max-width: 540px) {
  .ls-identity-card .ls-id-doc__choice {
    grid-template-columns: 1fr 1fr !important;
  }
  .ls-identity-card .ls-id-doc__card {
    flex-direction: row;
    text-align: left;
    gap: 10px;
    padding: 12px 10px;
    align-items: center;
    justify-content: flex-start;
  }
  .ls-identity-card .ls-id-doc__icon {
    font-size: 28px;
    flex: 0 0 auto;
  }
  .ls-identity-card .ls-id-doc__card strong {
    font-size: 14px;
    display: block;
  }
  .ls-identity-card .ls-id-doc__card small {
    font-size: 11px;
    display: block;
    line-height: 1.3;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   REFONTE UX/UI — 2026-05-29  (audit "ludique, simple, intuitif")
   Objectif : réduire la charge d'information, supprimer les frictions de
   navigation, hiérarchiser les actions. Chaque bloc cite la stratégie suivie.
   N.B. : bloc d'overrides placé en fin de feuille → gagne la cascade sans
   toucher au code existant (réversible : supprimer ce bloc = retour à l'état
   d'origine).
   ═══════════════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────────────────────────────
   F5 — FEED PRIORITAIRE POUR LES UTILISATEURS CONNECTÉS
   Stratégie : "results first" (Airbnb, Leboncoin, Vinted). Un visiteur
   connecté récurrent vient chercher/gérer, pas relire l'argumentaire
   marketing. On masque le hero + sections de conversion (déjà vues lors de
   l'inscription) pour que la recherche, les catégories et les annonces
   soient visibles immédiatement (NN/g — "Aesthetic and minimalist design",
   loi de Hick : moins d'éléments avant l'action = décision plus rapide).
   `body.logged-in` est ajouté automatiquement par WordPress.
   ─────────────────────────────────────────────────────────────────────── */
body.logged-in[data-ls-view="feed"] .ls-hero,
body.logged-in[data-ls-view="feed"] .ls-how,
body.logged-in[data-ls-view="feed"] .ls-value-strip,
body.logged-in[data-ls-view="feed"] .ls-testimonials,
body.logged-in[data-ls-view="feed"] .ls-trust-banner,
body.logged-in[data-ls-view="feed"] .ls-earnings { display: none !important; }
/* Le feed commence juste sous le header → on rétablit une respiration en haut */
body.logged-in[data-ls-view="feed"] #view-feed { padding-top: 12px; }

/* ───────────────────────────────────────────────────────────────────────
   F4 — RECHERCHE TOUJOURS ACCESSIBLE SUR MOBILE
   Constat : sous 768px, le header devient la barre d'onglets du bas et la
   recherche (`.ls-search`) passe en display:none → la fonction n°1 d'une
   marketplace disparaît (Baymard : la recherche est le 1er point d'entrée).
   Correction : une barre de recherche dédiée, collante en haut du feed,
   visible uniquement sur mobile. Reprend le style "pilule" du header pour
   la cohérence de la DA.
   ─────────────────────────────────────────────────────────────────────── */
.ls-feed-search { display: none; }
@media (max-width: 768px) {
  .ls-feed-search {
    display: block;
    position: sticky; top: 8px; z-index: 80;
    margin: 0 0 12px;
  }
  .ls-feed-search__field { position: relative; }
  .ls-feed-search__field i {
    position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
    color: var(--text-muted); font-size: 18px; pointer-events: none;
  }
  .ls-feed-search input {
    width: 100%; padding: 12px 16px 12px 46px;
    background: #fff; border: 1px solid var(--border);
    border-radius: var(--radius-full); font-size: 15px; color: var(--text);
    outline: none; font-family: var(--font);
    box-shadow: var(--shadow); transition: all .2s ease;
  }
  .ls-feed-search input::placeholder { color: var(--text-muted); }
  .ls-feed-search input:focus {
    border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-light);
  }
}

/* ───────────────────────────────────────────────────────────────────────
   F2 — FILTRES DE STATUT : DÉSENCOMBREMENT
   Constat : les panneaux Réservations / Conversations affichent 7 pastilles
   de filtre qui se replient sur 2-3 lignes sur mobile (bruit visuel, loi de
   Hick). Correction : sur mobile, rangée horizontale défilable (pattern
   éprouvé Leboncoin/Vinted/App Store "chips"), une seule ligne nette avec
   indice de défilement. On conserve le 1-tap (visibilité du filtre actif),
   supérieur à un <select> pour un filtre rapide récurrent.
   ─────────────────────────────────────────────────────────────────────── */
.ls-filter-pills { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (max-width: 768px) {
  .ls-filter-pills {
    flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch; padding-bottom: 4px;
    /* masque dégradé à droite = affordance "ça défile" */
    -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent);
            mask-image: linear-gradient(90deg, #000 85%, transparent);
  }
  .ls-filter-pills::-webkit-scrollbar { height: 0; display: none; }
  .ls-filter-pills { scrollbar-width: none; }
  .ls-filter-pill { scroll-snap-align: start; white-space: nowrap; flex: 0 0 auto; }
  /* Les filtres de dates passent sous les pills sur mobile, en pleine largeur */
  .ls-filter-dates { flex-wrap: wrap; gap: 8px; }
  .ls-filter-dates label { flex: 1 1 45%; }
}

/* ───────────────────────────────────────────────────────────────────────
   F1 — PROFIL : RÉDUIRE L'EMPILEMENT, RÉVÉLATION PROGRESSIVE
   Constat : l'onglet "Contrats" empile un formulaire de génération de 4
   sections TOUJOURS déplié AVANT la liste "Mes contrats". Or la majorité
   des visites = consulter/signer un contrat existant, pas en générer un.
   Correction (NN/g — "Progressive disclosure") :
   1) "Mes contrats" remonte en premier (CSS order, sans toucher au DOM/JS).
   2) Le formulaire de génération est replié dans un <details> (accordéon
      natif, accessible) ouvert à la demande.
   ─────────────────────────────────────────────────────────────────────── */
#account-panel-contrats { display: flex; flex-direction: column; gap: 22px; }
#account-panel-contrats .ls-contracts-section { order: -1; }       /* liste d'abord */
#account-panel-contrats .ls-contract-generator { order: 0; }

.ls-contract-generator {
  border: 1px solid var(--border); border-radius: var(--radius-lg);
  background: var(--bg-card); overflow: hidden;
}
.ls-contract-generator > summary {
  list-style: none; cursor: pointer; user-select: none;
  display: flex; align-items: center; gap: 10px;
  padding: 16px 18px; font-family: var(--font-display);
  font-weight: 700; font-size: 15px; color: var(--text);
  background: var(--bg-elevated); transition: background .2s ease;
}
.ls-contract-generator > summary::-webkit-details-marker { display: none; }
.ls-contract-generator > summary:hover { background: var(--primary-light); }
.ls-contract-generator > summary > i:first-child { font-size: 20px; color: var(--primary); }
.ls-contract-generator > summary .ls-contract-generator__chev {
  margin-left: auto; transition: transform .25s ease; color: var(--text-muted); font-size: 18px;
}
.ls-contract-generator[open] > summary .ls-contract-generator__chev { transform: rotate(180deg); }
.ls-contract-generator > summary .ls-contract-generator__tag {
  margin-left: 8px; font-family: var(--font); font-weight: 600; font-size: 11px;
  color: var(--primary-dark); background: var(--primary-light);
  padding: 3px 10px; border-radius: var(--radius-full);
}
.ls-contract-generator[open] > summary .ls-contract-generator__tag { margin-left: 8px; }
/* le formulaire conserve ses styles ; on enlève juste sa bordure car
   l'accordéon en fournit une */
.ls-contract-generator > .ls-contract-tab-form {
  border: none !important; box-shadow: none !important;
  padding: 18px; margin: 0;
}

/* Espace client : on allège le bandeau d'en-tête (chrome superflu) */
.ls-account-tools__head h3 { font-size: 18px; }
.ls-account-tools__head p { color: var(--text-secondary); font-size: 13.5px; }

/* Onglets du compte : défilables sur mobile comme les filtres (cohérence) */
@media (max-width: 768px) {
  .ls-account-tabs {
    flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent);
            mask-image: linear-gradient(90deg, #000 88%, transparent);
  }
  .ls-account-tabs::-webkit-scrollbar { display: none; }
  .ls-account-tab { flex: 0 0 auto; white-space: nowrap; }
}

/* ───────────────────────────────────────────────────────────────────────
   F3 — PAGE CONTRAT : HIÉRARCHIE DES ACTIONS
   Constat : 3 boutons de poids visuel ÉGAL, dont "Annuler" (rouge plein,
   destructif) aussi proéminent que "Signer", et "Télécharger" en primaire
   alors que l'action attendue est "Signer". Anti-pattern (NN/g — "Error
   prevention" : une action destructive ne doit pas être au même niveau
   qu'une action constructive).
   Correction : 1 action PRIMAIRE (Signer) + 1 SECONDAIRE (Télécharger) +
   "Annuler" rétrogradé en lien discret. Barre d'actions collante pour
   rester atteignable sans re-scroller le contrat.
   (la ré-attribution des classes se fait dans single-locashare_contract.php)
   ─────────────────────────────────────────────────────────────────────── */
.ls-contract-actions {
  position: sticky; top: 12px; z-index: 30;
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
  padding: 12px 14px; margin-bottom: 18px;
  background: rgba(255,255,255,.92); backdrop-filter: blur(10px);
  border: 1px solid var(--border-light); border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.ls-contract-actions .js-cancel-contract,
.ls-contract-actions .ls-btn--cancel-link {
  margin-left: auto;
  background: transparent !important; color: var(--text-muted) !important;
  box-shadow: none !important; border: none !important; padding: 8px 10px !important;
  font-weight: 600; text-decoration: underline; text-underline-offset: 3px;
}
.ls-contract-actions .js-cancel-contract:hover,
.ls-contract-actions .ls-btn--cancel-link:hover {
  color: var(--danger) !important; background: #FFF0F0 !important; text-decoration: none;
}
@media (max-width: 600px) {
  .ls-contract-actions { gap: 8px; }
  .ls-contract-actions .ls-btn { flex: 1 1 100%; justify-content: center; }
  .ls-contract-actions .js-cancel-contract,
  .ls-contract-actions .ls-btn--cancel-link { flex-basis: 100%; margin-left: 0; }
}

/* ───────────────────────────────────────────────────────────────────────
   F6 — BANDEAU COOKIES / FAB D'AIDE : SUPPRESSION DU CHEVAUCHEMENT
   Constat (captures) : le FAB d'aide (bottom-right) chevauche le bandeau
   cookies plein écran, et sur mobile les deux télescopent la barre d'onglets
   du bas. Correction : empilement vertical propre (NN/g — pas d'éléments qui
   se masquent). `:has()` lève le FAB tant que le bandeau est affiché.
   ─────────────────────────────────────────────────────────────────────── */
.ls-cookie-banner { z-index: 300; }
/* Tant que le bandeau est visible, le FAB monte au-dessus de lui */
body:has(#ls-cookie-banner:not([hidden])) .ls-help-fab-group { bottom: 92px; }
@media (max-width: 768px) {
  /* au-dessus de la barre d'onglets (64px) */
  .ls-help-fab-group { bottom: 76px; right: 16px; }
  .ls-cookie-banner { bottom: 64px; }
  body:has(#ls-cookie-banner:not([hidden])) .ls-help-fab-group { bottom: 148px; }
}
/* Fallback navigateurs sans :has() — laisse de la marge au bandeau pour ne
   pas passer sous le FAB */
@supports not selector(:has(*)) {
  .ls-cookie-banner__inner { padding-right: 84px; }
}
/* FIN REFONTE UX 2026-05-29 */

/* ── Catégories : bandeau UNE SEULE LIGNE défilant (≥769px) ──
   Même langage « chips défilantes » que le mobile (.ls-categories de base) et
   que .ls-filter-pills / .ls-account-tabs : ligne unique, scroll horizontal,
   scrollbar masquée, pills qui ne rétrécissent pas, fondu à droite comme
   affordance « ça défile ». Calé sur la largeur de la colonne feed. */
@media(min-width:769px){
  #categories-bar{
    flex-flow:row nowrap;justify-content:flex-start;
    overflow-x:auto;overflow-y:hidden;height:auto;
    width:100%;max-width:100%;margin:0 auto;
    scrollbar-width:none;
  }
  #categories-bar::-webkit-scrollbar{display:none}
  #categories-bar .ls-cat-pill{
    width:auto;flex:0 0 auto;justify-content:center;white-space:nowrap;
    padding:8px 16px;border-radius:var(--radius-full);
  }
}

/* Fondu de défilement du bandeau catégories — piloté par JS (footer.php) selon
   la position de scroll. S'applique mobile ET desktop (mêmes classes) :
   début → fondu à droite | milieu → fondu des deux côtés | fin → fondu à gauche
   | pas de débordement → aucun fondu. */
#categories-bar.is-scroll-none{-webkit-mask-image:none;mask-image:none}
#categories-bar.is-scroll-start{
  -webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);
          mask-image:linear-gradient(90deg,#000 90%,transparent);
}
#categories-bar.is-scroll-middle{
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
}
#categories-bar.is-scroll-end{
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%);
          mask-image:linear-gradient(90deg,transparent,#000 10%);
}

/* ════════════════════════════════════════════════════════════
   BOTTOM-NAV MOBILE (.ls-bottomnav) — rapatriée depuis functions.php
   (C2 : source de vérité unique). L'élément vit dans footer.php (enfant
   direct de <body>) pour ne pas être piégé par le backdrop-filter du header.
   Visible uniquement < 769px ; remplace l'ancienne .ls-nav (#main-nav).
   ════════════════════════════════════════════════════════════ */
.ls-bottomnav{display:none}
@media(max-width:768px){
  /* L'ancienne .ls-nav (barre header) est masquée puis remplacée par la
     bottom-nav. Ses boutons restent cliquables par programme (.click()). */
  #main-nav{display:none!important}
  .ls-bottomnav{
    display:flex;align-items:stretch;justify-content:space-around;
    position:fixed;left:0;right:0;bottom:0;z-index:300;
    background:rgba(255,255,255,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    border-top:1px solid var(--border-light,#DDEFF6);
    box-shadow:0 -6px 24px rgba(16,50,70,.08);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));
  }
  .ls-bottomnav__btn{
    position:relative;flex:1 1 0;min-width:0;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    background:none;border:0;cursor:pointer;padding:6px 2px;
    color:var(--text-secondary,#636E72);font-family:var(--font);font-size:10px;font-weight:600;
  }
  .ls-bottomnav__btn i{font-size:23px;line-height:1}
  .ls-bottomnav__btn span{font-size:10px;white-space:nowrap}
  .ls-bottomnav__btn:active{color:var(--primary,#10AEEA)}
  .ls-bottomnav__btn--cta{
    flex:0 0 auto;margin-top:-22px;
    width:54px;height:54px;border-radius:50%;
    background:linear-gradient(135deg,var(--secondary,#2FE47D),var(--secondary-dark,#18A957));
    color:#fff;box-shadow:0 6px 18px rgba(47,228,125,.4);
    align-self:flex-start;
  }
  .ls-bottomnav__btn--cta i{font-size:28px;color:#fff}
  .ls-bottomnav__unread{
    position:absolute;top:2px;right:calc(50% - 20px);
    min-width:16px;height:16px;padding:0 4px;border-radius:99px;
    background:var(--danger,#FF4757);color:#fff;border:2px solid #fff;
    font-size:9px;font-weight:800;line-height:12px;
    display:inline-flex;align-items:center;justify-content:center;
  }
  /* Espace bas pour ne pas masquer le contenu sous la barre */
  .ls-app{padding-bottom:calc(74px + env(safe-area-inset-bottom))!important}
  .ls-footer{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}

/* ════════════════════════════════════════════════════════════
   B1 — COLONNE FEED ALIGNÉE (desktop ≥769px)
   #view-feed est plafonné à une largeur de colonne unique et centré, pour que
   barre de localisation, catégories et feed partagent les mêmes bords. Corrige
   le feed insta qui s'élargissait à 1200px entre 1024 et 1279px et la barre de
   localisation qui débordait en pleine largeur.
   ════════════════════════════════════════════════════════════ */
@media(min-width:769px){
  #view-feed{max-width:600px;margin-left:auto;margin-right:auto;width:100%}
  .ls-feed.ls-feed--insta{max-width:100%}   /* largeur gouvernée par #view-feed */
  #categories-bar{max-width:100%}
}
@media(min-width:769px) and (max-width:1023px){
  #view-feed{max-width:480px}
}

/* B4 — Fond de vignette unifié avant chargement image (évite le flash de
   couleur incohérent #F7F1EC vs #EAF8FD selon les règles). */
.ls-card__img{background:var(--bg-elevated)}

/* B2 — Rayons alignés sur l'échelle 8/12/16/24 (cohérence du rythme d'arrondi). */
.ls-value-item{border-radius:var(--radius)}            /* 14 → 12 */
.ls-testimonial{border-radius:var(--radius-lg)}        /* 18 → 16 */
.ls-how__step{border-radius:var(--radius-lg)}          /* 20 → 16 */
.ls-help-modal__panel{border-radius:var(--radius-xl)}  /* 22 → 24 */

/* ════════════════════════════════════════════════════════════
   BOUTON « REMONTER EN HAUT » — essentiel avec le scroll infini : permet de
   revenir au hero / nav / recherche sans remonter à la main. Apparaît après
   600px de défilement. Placé en bas à GAUCHE pour ne pas chevaucher le FAB
   d'aide (bas droite) ni la bottom-nav mobile.
   ════════════════════════════════════════════════════════════ */
.ls-totop{
  position:fixed;bottom:24px;left:24px;z-index:280;
  width:46px;height:46px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:#fff;border:0;cursor:pointer;
  box-shadow:0 8px 22px rgba(var(--primary-rgb),.40),0 2px 6px rgba(0,0,0,.12);
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .25s ease,transform .25s ease,visibility .25s;
}
.ls-totop.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.ls-totop:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(var(--primary-rgb),.55),0 4px 10px rgba(0,0,0,.14)}
.ls-totop:active{transform:scale(.95)}
.ls-totop i{font-size:22px;line-height:1}
.ls-totop:focus-visible{outline:3px solid #fff;outline-offset:3px}
/* Masqué quand une modal plein écran est ouverte (cohérent avec le FAB d'aide) */
body.is-modal-open .ls-totop{display:none}
@media(max-width:768px){
  /* au-dessus de la bottom-nav (≈64px + safe-area) */
  .ls-totop{bottom:calc(82px + env(safe-area-inset-bottom));left:14px;width:42px;height:42px}
  .ls-totop i{font-size:20px}
}
@media(prefers-reduced-motion:reduce){
  .ls-totop{transition:opacity .2s ease}
}

/* === Fiche feed v2 (2026-06-12) : prix + etoiles en ligne, ville + pseudo regroupes en bas === */
.ls-card__priceline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ls-card__priceline .ls-card__rating{margin:0}
.ls-card__owner{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap;row-gap:4px;font-size:12px;color:var(--text-muted)}
.ls-card__owner .ls-card__author{flex:0 1 auto;min-width:0}
.ls-card__owner .ls-card__city{margin:0}

/* === Fiche feed v2.1 (2026-06-12) : realignement note sur la ligne de base + tailles (disposition inchangee) === */
.ls-card__priceline{align-items:baseline;gap:8px}
.ls-card__priceline .ls-card__rating{margin:0;font-size:12px;gap:4px;font-weight:600}
.ls-card__priceline .ls-stars{display:inline-flex;align-items:center;gap:1px;font-size:13px;line-height:1}
.ls-card__owner{gap:10px}
.ls-card__owner .ls-card__author{gap:6px}
.ls-card__owner .ls-card__author img{width:22px;height:22px}
.ls-card__owner .ls-card__city{gap:3px}

/* === Zone specs rapides reservee (vide pour l instant ; remplie par categorie plus tard) === */
.ls-card__specs{position:absolute;right:58px;bottom:72px;display:flex;flex-direction:column;gap:6px;align-items:flex-end;z-index:3;pointer-events:none}
.ls-card__specs:empty{display:none}
.ls-spec{display:inline-flex;align-items:center;gap:4px;background:rgba(0,0,0,.5);color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;line-height:1.3}
.ls-spec i{font-size:13px}

/* ─── Logement (location saisonnière) ─── */
.ls-logement-fields{border:1px solid #e6e8ec;background:#f7faf9;border-radius:16px;padding:16px;margin:4px 0 18px;}
.ls-logement-fields__head{display:flex;align-items:center;gap:8px;font-weight:700;color:#1a2230;margin-bottom:14px;font-size:.98rem;}
.ls-logement-fields__head i{color:#0FA958;font-size:1.25rem;}
.ls-form__row--3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.ls-form__sublabel{display:block;font-weight:600;font-size:.9rem;color:#1a2230;margin:8px 0 10px;}
.ls-amenities{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
.ls-amenity{position:relative;cursor:pointer;}
.ls-amenity input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0;}
.ls-amenity__box{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1.5px solid #e6e8ec;border-radius:12px;background:#fff;font-size:.9rem;color:#1a2230;transition:border-color .15s,background .15s,box-shadow .15s;}
.ls-amenity__box i{font-size:1.1rem;color:#6b7280;transition:color .15s;}
.ls-amenity input:checked + .ls-amenity__box{border-color:#0FA958;background:rgba(15,169,88,.08);box-shadow:inset 0 0 0 1px #0FA958;font-weight:600;}
.ls-amenity input:checked + .ls-amenity__box i{color:#0FA958;}
.ls-amenity input:focus-visible + .ls-amenity__box{outline:2px solid #0FA958;outline-offset:2px;}
@media(max-width:520px){.ls-amenities{grid-template-columns:repeat(auto-fill,minmax(115px,1fr));}.ls-form__row--3{gap:8px;}}

/* Logement : fiche annonce */
.ls-logement-detail{margin:14px 0;}
.ls-logement-detail__title{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:700;color:#1a2230;margin:0 0 10px;}
.ls-logement-detail__title i{color:#0FA958;font-size:1.2rem;}
.ls-amenity-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.ls-amenity-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(15,169,88,.08);color:#0d7a44;font-size:.85rem;font-weight:600;}
.ls-amenity-chip i{font-size:1rem;}

/* ═══ AUTOCOMPLETE ADRESSE ═══════════════════════════════════════════════ */
.ls-address-search{position:relative;}
.ls-address-search__input{width:100%;padding:10px 14px;border:1.5px solid var(--border,#dde2e8);border-radius:var(--radius,10px);font-size:.95rem;font-family:inherit;background:#fff;outline:none;transition:border-color .15s;}
.ls-address-search__input:focus{border-color:var(--primary,#10AAEB);}
.ls-address-search__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1.5px solid var(--border,#dde2e8);border-radius:var(--radius,10px);box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:900;overflow:hidden;}
.ls-addr-suggestion{padding:10px 14px;font-size:.9rem;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.06);transition:background .1s;}
.ls-addr-suggestion:last-child{border-bottom:none;}
.ls-addr-suggestion:hover,.ls-addr-suggestion:focus{background:var(--primary-light,#E8F6FE);outline:none;}

/* ═══ TARIFICATION DÉGRESSIVE ════════════════════════════════════════════ */
.ls-degressif-block{border:1.5px dashed var(--primary,#10AAEB);border-radius:var(--radius,10px);padding:14px;background:rgba(16,170,235,.04);}
.ls-price-tiers{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.ls-price-tier{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:rgba(16,170,235,.1);color:var(--primary-dark,#0880b5);border-radius:999px;font-size:.82rem;font-weight:600;}
.ls-price-tier i{font-size:.9rem;}
.ls-price-discount{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;color:var(--primary-dark,#0880b5);font-weight:600;margin-left:6px;}
.ls-price-discount i{font-size:.9rem;}

/* ═══ SOURCE ADRESSE ═════════════════════════════════════════════════════ */
.ls-addr-source{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text-muted,#888);margin-top:4px;}

/* ─── Conversion de devise indicative (≈ X $) — 24 juin 2026 ─── */
.ls-fx-hint{
  display:inline-block;
  margin-left:.45em;
  font-size:.72em;
  font-weight:600;
  color:var(--text-muted,#8a8f98);
  opacity:.85;
  white-space:nowrap;
  vertical-align:baseline;
}
.ls-card__price .ls-fx-hint{font-size:.62em;display:block;margin:.1em 0 0;opacity:.7}
.ls-detail__price .ls-fx-hint{font-size:.55em}
/* Support RTL global pour les langues ar/he */
html[dir="rtl"] .ls-fx-hint{margin-left:0;margin-right:.45em}
html[dir="rtl"] .ls-card__priceline,
html[dir="rtl"] .ls-detail__price-row{direction:rtl}

/* Avertissement tarif dégressif non avantageux */
.ls-degressif-warn{
  margin-top:.6rem;
  padding:.55rem .7rem;
  background:rgba(230,57,70,.08);
  border:1px solid rgba(230,57,70,.25);
  border-radius:8px;
  color:#c1121f;
  font-size:.82rem;
  line-height:1.4;
}
.ls-degressif-warn i{margin-right:.3em}
