@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,700;0,900;1,400;1,500;1,700&display=swap');

/* Police Buddys : DM Sans */
html, body, button, input, select, textarea, label, a, p, span, div, h1, h2, h3, h4, h5, h6, li, td, th, small, strong, em {
  font-family: 'DM Sans', Arial, Helvetica, sans-serif !important;
}
code, pre, kbd, samp { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important; }
.hidden{display:none !important}

:root{
  --violet:#C084FC;--violet-light:#E9D5FF;--violet-dark:#7C3AED;--violet-deep:#D8B4FE;
  --violet-pale:#29263A;--bg:#1F1F1D;--card:rgba(39,40,38,.86);
  --border:rgba(192,132,252,.42);--text:#F4F1F7;--muted:#BDB8C7;
  --danger:#F58E96;--shadow:0 14px 42px rgba(124,58,237,.22);
}
*{box-sizing:border-box;margin:0;padding:0}
body{min-height:100vh;font-family: 'DM Sans', Arial, Helvetica, sans-serif !important;background:var(--bg);color:var(--text)}
body:before{content:"";position:fixed;inset:0;z-index:-1;background:
radial-gradient(circle at 18% 18%,rgba(168,85,247,.35),transparent 35%),
radial-gradient(circle at 85% 70%,rgba(139,92,246,.22),transparent 38%),
linear-gradient(135deg,#272826,#242220)}
.app{max-width:1120px;margin:auto;padding:18px}
.header{position:sticky;top:0;z-index:10;margin:-18px -18px 18px;padding:14px 18px;background:rgba(39,40,38,.82);backdrop-filter:blur(22px);border-bottom:1px solid var(--border)}
.header-inner{max-width:1120px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:14px}
.logo{display:flex;align-items:center;gap:10px;font-family: 'DM Sans', Arial, Helvetica, sans-serif !important;font-size:28px;font-weight:700;color:var(--violet-deep)}
.logo span{width:44px;height:44px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,var(--violet),var(--violet-dark));color:white;box-shadow:var(--shadow)}
.nav{display:flex;flex-wrap:wrap;gap:8px}
button,.btn{border:0;border-radius:14px;padding:11px 15px;font:inherit;font-weight:800;cursor:pointer;background:#272826;color:#FFFFFF}
.nav button{background:#272826;color:var(--muted);border:1px solid var(--border)}
.nav button.active,.btn-primary{background:linear-gradient(135deg,var(--violet),var(--violet-dark));color:white;box-shadow:0 8px 22px rgba(139,92,246,.25)}
.btn-secondary{background:#272826;color:var(--violet-deep);border:1px solid var(--border)}
.btn-danger{background:#3A2325;color:var(--danger);border:1px solid rgba(197,69,80,.25)}
.btn-full{width:100%}
.screen{display:none}.screen.active{display:block;animation:fade .25s ease}@keyframes fade{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}
.card{background:var(--card);border:1px solid var(--border);border-radius:24px;padding:20px;box-shadow:var(--shadow);backdrop-filter:blur(22px)}
.card+ .card{margin-top:18px}
.auth{max-width:760px;margin:34px auto}
.tabs{display:flex;gap:8px;margin-bottom:18px}.tabs button{flex:1;background:var(--violet-pale);color:#FFFFFF}.tabs button.active{background:var(--violet-dark);color:white}
h1{font-size:clamp(30px,5vw,56px);line-height:.98;margin-bottom:8px}.muted{color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{margin:12px 0}.field label{display:block;margin-bottom:6px;color:var(--muted);font-weight:800;font-size:13px}
input,textarea,select{width:100%;padding:12px 14px;border-radius:14px;border:1.5px solid var(--border);background:rgba(39,40,38,.90);color:#FFFFFF;font:inherit;outline:none;color-scheme:dark}
input::placeholder,textarea::placeholder{color:#FFFFFF;opacity:.85}
select option{background:#272826;color:#FFFFFF}
textarea{min-height:90px;resize:vertical}input:focus,textarea:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgba(168,85,247,.18)}
.notice{display:none;margin:12px 0;padding:12px;border-radius:14px;background:var(--violet-pale);border:1px solid var(--border);color:var(--violet-deep);font-weight:800}.notice.show{display:block}.notice.success{background:#223428;color:#8FD9A2;border-color:rgba(36,90,42,.22)}.notice.error{background:#3A2325;color:var(--danger);border-color:rgba(197,69,80,.25)}
.pending-post-banner{display:none;align-items:center;justify-content:space-between;gap:10px}.pending-post-banner.show{display:flex}.pending-post-banner-close{background:none;border:none;color:inherit;font-weight:800;font-size:16px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:8px}.pending-post-banner-close:hover{background:rgba(0,0,0,.06)}
.grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:center;margin-bottom:18px}.hero-dog{min-height:220px;border-radius:28px;background:linear-gradient(135deg,var(--violet-light),var(--violet));display:grid;place-items:center;font-size:90px}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.post-list{display:grid;gap:14px;margin-top:16px}.post-head{display:flex;gap:12px;align-items:center;margin-bottom:10px}.avatar{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--violet-light),var(--violet));overflow:hidden;display:grid;place-items:center;font-size:26px}.avatar img,.dog-photo{width:100%;height:100%;object-fit:cover}
.photos-preview{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0}.photo-preview{height:76px;border-radius:14px;overflow:hidden;position:relative}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-preview button{position:absolute;right:4px;top:4px;width:24px;height:24px;border-radius:99px;background:rgba(0,0,0,.55);color:white;padding:0}
.carousel{position:relative;overflow:hidden;border-radius:18px;margin:12px 0}.carousel img{width:100%;height:300px;object-fit:cover;display:block}.carousel button{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:99px;background:rgba(39,40,38,.82);padding:0}.carousel .prev{left:10px}.carousel .next{right:10px}.count{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.45);color:white;border-radius:99px;padding:5px 10px;font-size:12px}
.profile-grid{display:grid;grid-template-columns:250px 1fr;gap:18px}.profile-photo{height:250px;border-radius:24px;background:linear-gradient(135deg,var(--violet-light),var(--violet-dark));display:grid;place-items:center;overflow:hidden;font-size:80px;color:white}
.map-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px}.map{min-height:390px;border-radius:20px;overflow:hidden;border:1px solid var(--border)}#leaflet-map{height:390px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.chip{background:#272826;color:var(--muted);border:1px solid var(--border)}.chip.active{background:var(--violet-dark);color:white}.places{display:grid;gap:10px;max-height:520px;overflow:auto}.place{background:#272826;border:1px solid var(--border);border-radius:16px;padding:12px}.place b{color:var(--violet-deep)}
.share-row{display:none;gap:8px;flex-wrap:wrap;margin-top:8px}.share-row.show{display:flex}
@media(max-width:850px){.grid,.hero,.profile-grid,.map-grid,.form-grid{grid-template-columns:1fr}.header-inner{align-items:flex-start;flex-direction:column}.photos-preview{grid-template-columns:repeat(3,1fr)}.carousel img{height:220px}}

.event-list{display:grid;gap:10px;margin-top:12px}
.event-card{
  background:rgba(39,40,38,.88);
  border:1px solid var(--border);
  border-radius:18px;
  padding:12px;
}
.event-head{display:flex;gap:10px;align-items:center}
.event-avatar{
  width:44px;height:44px;border-radius:14px;overflow:hidden;
  background:linear-gradient(135deg,var(--violet-light),var(--violet));
  display:grid;place-items:center;font-size:22px;flex:0 0 auto
}
.event-avatar img{width:100%;height:100%;object-fit:cover}
.event-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:9px;font-size:12px;color:var(--muted)}
.event-badge{
  padding:4px 8px;border-radius:999px;
  background:var(--violet-pale);color:var(--violet-deep);
  font-weight:900;border:1px solid var(--border)
}
.event-badge.other{background:#272826;color:var(--muted)}

.clickable-event{cursor:pointer;transition:transform .15s, box-shadow .15s}
.clickable-event:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(139,92,246,.16)}
.event-details{
  display:none;
  margin-top:10px;
  padding:11px;
  border-radius:14px;
  background:var(--violet-pale);
  border:1px solid var(--border);
  color:var(--text);
  line-height:1.45;
}
.event-details.show{display:block}
.event-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}
.event-action-btn{
  padding:8px 10px;
  font-size:12px;
}
.event-comments{
  display:none;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--border);
}
.event-comments.show{display:block}
.event-comments-list{
  display:grid;
  gap:8px;
  margin-bottom:10px;
}
.event-comment{
  display:flex;
  gap:8px;
  padding:9px;
  border-radius:14px;
  background:rgba(39,40,38,.82);
  border:1px solid var(--border);
}
.event-comment-avatar{
  width:34px;
  height:34px;
  border-radius:11px;
  overflow:hidden;
  background:linear-gradient(135deg,var(--violet-light),var(--violet));
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
.event-comment-avatar img{width:100%;height:100%;object-fit:cover}
.event-comment p{margin-top:2px}
.event-comment-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
}
.event-comment-form button{
  padding:10px 12px;
}

.place{transition:transform .15s, box-shadow .15s}
.place:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(139,92,246,.12)}
.chips{align-items:center}

.reels-feed{
  display:grid;
  gap:26px;
  margin-top:18px;
  scroll-snap-type:y mandatory;
}
.reel-card{
  position:relative;
  height:88vh;
  min-height:620px;
  max-height:900px;
  border-radius:30px;
  overflow:hidden;
  background:#000;
  box-shadow:0 18px 48px rgba(0,0,0,.22);
  scroll-snap-align:start;
}
.reel-video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  background:#000;
}
.reel-gradient{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.78),transparent 45%,rgba(0,0,0,.25));
  pointer-events:none;
}
.reel-info{
  position:absolute;
  left:18px;
  right:90px;
  bottom:24px;
  color:#fff;
  z-index:2;
}
.reel-info p{
  margin:10px 0 5px;
  line-height:1.45;
}
.reel-dog{
  display:flex;
  align-items:center;
  gap:10px;
}
.reel-dog span{
  display:block;
  opacity:.78;
  font-size:13px;
}
.reel-avatar{
  width:48px;
  height:48px;
  border-radius:16px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--violet-light),var(--violet));
  flex:0 0 auto;
}
.reel-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.reel-actions{
  position:absolute;
  right:14px;
  bottom:90px;
  display:flex;
  flex-direction:column;
  gap:12px;
  z-index:3;
}
.reel-btn{
  width:64px;
  min-height:64px;
  border-radius:999px;
  background:rgba(39,40,38,.22);
  color:#fff;
  backdrop-filter:blur(16px);
  border:1px solid rgba(39,40,38,.35);
  display:grid;
  place-items:center;
  font-size:24px;
  padding:8px;
}
.reel-btn span{
  display:block;
  font-size:10px;
  margin-top:2px;
}
.reel-comments{
  display:none;
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  z-index:5;
  max-height:42vh;
  overflow:auto;
  padding:12px;
  border-radius:22px;
  background:rgba(39,40,38,.92);
  backdrop-filter:blur(18px);
}
.reel-comments.show{display:block}
.reel-comments-list{
  display:grid;
  gap:8px;
  margin-bottom:10px;
}
.reel-comment{
  display:flex;
  gap:8px;
  padding:8px;
  border-radius:14px;
  background:rgba(39,40,38,.82);
  border:1px solid var(--border);
}
.reel-comment-avatar{
  width:34px;
  height:34px;
  border-radius:11px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--violet-light),var(--violet));
  flex:0 0 auto;
}
.reel-comment-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.reel-comment-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
}
.reel-comment-form button{
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:white;
}
@media(max-width:850px){
  .reel-card{
    height:82vh;
    min-height:520px;
    border-radius:24px;
  }
}

.post-interactions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--border);
}
.post-comments{
  display:none;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--border);
}
.post-comments.show{display:block}
.post-comments-list{
  display:grid;
  gap:8px;
  margin-bottom:10px;
}
.post-comment{
  display:flex;
  gap:8px;
  padding:9px;
  border-radius:14px;
  background:rgba(39,40,38,.82);
  border:1px solid var(--border);
}
.post-comment-avatar{
  width:36px;
  height:36px;
  border-radius:12px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--violet-light),var(--violet));
  flex:0 0 auto;
}
.post-comment-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.post-comment-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
}
.post-comment-form button{
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:white;
}

.share-row button{
  background:#272826;
  color:var(--violet-deep);
  border:1px solid var(--border);
  border-radius:12px;
  padding:9px 11px;
  font-weight:800;
}
.share-row button:hover{
  background:var(--violet-pale);
}

.event-photo-preview{
  margin:10px 0 12px;
}
.event-photo-preview img{
  width:100%;
  max-height:190px;
  object-fit:cover;
  border-radius:16px;
  border:1px solid var(--border);
}
.event-image{
  margin-top:10px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--violet-pale);
}
.event-image img{
  width:100%;
  max-height:220px;
  object-fit:cover;
  display:block;
}

.event-share-row.show,
.share-row.show{
  display:flex;
}
.share-row{
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.share-row button{
  background:#272826;
  color:var(--violet-deep);
  border:1px solid var(--border);
  border-radius:12px;
  padding:9px 11px;
  font-weight:800;
}
.share-row button:hover{
  background:var(--violet-pale);
}

.clickable-place{
  cursor:pointer;
}
.clickable-place:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(139,92,246,.12);
}
.place-details{
  display:none;
  margin-top:10px;
  padding:10px;
  border-radius:14px;
  background:var(--violet-pale);
  border:1px solid var(--border);
  line-height:1.55;
}
.place-details.show{
  display:block;
}
.place-details a{
  color:var(--violet-deep);
  font-weight:900;
  text-decoration:none;
}

.auth-choice{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:18px;
}
.auth-choice button{
  background:#272826;
  color:var(--muted);
  border:1px solid var(--border);
  border-radius:16px;
  padding:13px;
  font-weight:900;
}
.auth-choice button.active{
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:white;
}
.clickable-name{
  cursor:pointer;
  color:var(--violet-deep);
  text-decoration:underline;
  text-underline-offset:3px;
}
.reel-info .clickable-name{
  color:white;
}
.public-profile-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(0,0,0,.45);
  padding:20px;
  overflow:auto;
}
.public-profile-modal.show{
  display:grid;
  place-items:center;
}
.public-profile-card{
  width:min(720px,100%);
  background:rgba(39,40,38,.96);
  border:1px solid var(--border);
  border-radius:28px;
  box-shadow:0 24px 80px rgba(0,0,0,.22);
  padding:18px;
  position:relative;
  backdrop-filter:blur(22px);
}
.public-profile-close{
  position:absolute;
  right:14px;
  top:14px;
  width:40px;
  height:40px;
  border-radius:999px;
  background:#272826;
  border:1px solid var(--border);
  color:var(--violet-deep);
  font-size:24px;
  padding:0;
}
.public-profile-hero{
  text-align:center;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:white;
}
.public-profile-photo{
  width:110px;
  height:110px;
  border-radius:30px;
  overflow:hidden;
  display:grid;
  place-items:center;
  margin:0 auto 12px;
  background:rgba(39,40,38,.35);
  font-size:60px;
  border:3px solid rgba(39,40,38,.5);
}
.public-profile-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.public-profile-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:14px 0;
}
.public-profile-stats div{
  background:var(--violet-pale);
  border:1px solid var(--border);
  border-radius:18px;
  padding:12px;
  text-align:center;
}
.public-profile-stats b{
  display:block;
  font-size:24px;
  color:var(--violet-deep);
}
.public-profile-stats span{
  font-size:12px;
  color:var(--muted);
}
.public-profile-info{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.public-profile-info div{
  background:#272826;
  border:1px solid var(--border);
  border-radius:16px;
  padding:12px;
}
.public-profile-info .full{
  grid-column:1/-1;
}
.public-profile-info small{
  display:block;
  color:var(--violet-dark);
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:4px;
}
@media(max-width:650px){
  .auth-choice,.public-profile-info{
    grid-template-columns:1fr;
  }
}

.public-profile-section-title{
  margin:16px 0 10px;
  color:var(--violet-deep);
  font-size:18px;
  font-weight:900;
}

.public-profile-kicker{
  display:inline-flex;
  margin-bottom:10px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(39,40,38,.22);
  border:1px solid rgba(39,40,38,.35);
  color:white;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.8px;
}
.clickable-name:hover{
  color:var(--violet-dark);
}
.reel-info .clickable-name:hover{
  color:var(--violet-light);
}

.feed-layout{
  display:grid;
  grid-template-columns:minmax(0,760px);
  justify-content:center;
  gap:18px;
  align-items:start;
}
.feed-only-layout{
  grid-template-columns:minmax(0,760px);
  justify-content:center;
}
.left-auth-panel,
.right-events-panel{
  position:sticky;
  top:92px;
}
.auth-side-card h2{
  margin-bottom:6px;
}
.auth-choice.side{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:14px 0;
}
.auth-choice.side button{
  border-radius:14px;
  padding:10px;
  border:1px solid var(--border);
  background:#272826;
  color:var(--muted);
  font-size:13px;
}
.auth-choice.side button.active{
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:white;
}
.side-register-box h3{
  margin-top:14px;
  margin-bottom:8px;
  color:var(--violet-deep);
}
.register-toggle{
  margin-bottom:10px;
}
.full-register-fields{
  max-height:70vh;
  overflow:auto;
  padding-right:4px;
}
.feed-main{
  min-width:0;
}
@media(max-width:1100px){
  .feed-layout{
    grid-template-columns:1fr;
  }
  .left-auth-panel,
  .right-events-panel{
    position:static;
  }
}

.legacy-auth-screen{
  display:none !important;
}
.side-connected-box{
  margin-top:14px;
}

.register-intro{
  margin:10px 0 12px;
  line-height:1.45;
}
#start-register-btn{
  margin-top:8px;
}

.register-popup{
  display:none;
  position:fixed;
  inset:0;
  z-index:10000;
  background:rgba(0,0,0,.45);
  padding:20px;
  overflow:auto;
}
.register-popup.show{
  display:grid;
  place-items:center;
}
.register-popup-card{
  width:min(780px,100%);
  max-height:92vh;
  overflow:auto;
  position:relative;
  background:rgba(39,40,38,.96);
  border:1px solid var(--border);
  border-radius:28px;
  box-shadow:0 24px 80px rgba(0,0,0,.24);
  padding:22px;
  backdrop-filter:blur(22px);
}
.register-popup-close{
  position:absolute;
  right:14px;
  top:14px;
  width:40px;
  height:40px;
  border-radius:999px;
  background:#272826;
  border:1px solid var(--border);
  color:var(--violet-deep);
  font-size:24px;
  padding:0;
}
.register-popup-fields{
  margin-top:14px;
}
.register-popup-fields h3{
  margin:16px 0 10px;
  color:var(--violet-deep);
}

/* Login module fix */
#side-login-msg.show{display:block;}

.signup-success-popup{
  display:none;
  position:fixed;
  inset:0;
  z-index:11000;
  background:rgba(0,0,0,.45);
  padding:20px;
}
.signup-success-popup.show{
  display:grid;
  place-items:center;
}
.signup-success-card{
  width:min(420px,100%);
  background:rgba(39,40,38,.96);
  border:1px solid var(--border);
  border-radius:28px;
  padding:26px;
  text-align:center;
  box-shadow:0 24px 80px rgba(0,0,0,.25);
  backdrop-filter:blur(22px);
}
.signup-success-icon{
  width:72px;
  height:72px;
  margin:0 auto 14px;
  display:grid;
  place-items:center;
  border-radius:24px;
  background:var(--violet-pale);
  font-size:38px;
}
.signup-success-card h2{
  color:var(--violet-deep);
  margin-bottom:8px;
}
.signup-success-card p{
  color:var(--muted);
  margin-bottom:18px;
  line-height:1.5;
}

button:disabled{
  opacity:.65;
  cursor:not-allowed;
}

.login-success-card{
  text-align:left;
}
.login-success-card > .signup-success-icon,
.login-success-card > h2,
.login-success-card > p{
  text-align:center;
}
.mini-login-box{
  margin-top:18px;
  padding:16px;
  border-radius:20px;
  background:var(--violet-pale);
  border:1px solid var(--border);
}
.mini-login-box h3{
  margin-bottom:12px;
  color:var(--violet-deep);
  text-align:center;
  font-size:24px;
}
.mini-login-box label{
  display:block;
  margin:10px 0 6px;
  color:var(--muted);
  font-weight:900;
  font-size:13px;
}
.mini-login-box input[type="text"],
.mini-login-box input[type="password"]{
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1.5px solid var(--border);
  background:#272826;
}
.mini-login-box a{
  display:inline-block;
  margin-top:10px;
  color:var(--violet-deep);
  font-weight:900;
  text-decoration:none;
}
.remember-line{
  display:flex !important;
  align-items:center;
  gap:8px;
  margin:12px 0 !important;
}
.remember-line input{
  width:auto;
}
.mini-login-box .btn-secondary{
  margin-top:10px;
}

.online-members-card,
.new-users-card{
  margin-top:18px;
}
.mini-member-list{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.mini-member{
  display:flex;
  gap:10px;
  align-items:center;
  padding:10px;
  border-radius:16px;
  background:rgba(39,40,38,.86);
  border:1px solid var(--border);
  cursor:pointer;
  transition:transform .15s, box-shadow .15s;
}
.mini-member:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(139,92,246,.12);
}
.mini-member-avatar{
  width:44px;
  height:44px;
  border-radius:14px;
  overflow:hidden;
  background:linear-gradient(135deg,var(--violet-light),var(--violet));
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
.mini-member-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.mini-member b{
  display:block;
  color:var(--violet-deep);
}
.mini-member span,
.mini-member small{
  display:block;
  color:var(--muted);
  font-size:12px;
}

/* ── ÉCRAN SORTIES ─────────────────────────────────────────────────────── */
.sorties-layout{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:24px;
  max-width:1280px;
  margin:0 auto;
  padding:24px 16px;
  align-items:start;
}
@media(max-width:900px){
  .sorties-layout{grid-template-columns:1fr}
}
.sorties-create-panel .card{
  position:sticky;
  top:80px;
}
.sorties-main{
  display:flex;
  flex-direction:column;
  gap:0;
}
.sorties-section-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:16px 0 10px;
  border-bottom:2px solid var(--border);
  margin-bottom:16px;
}
.sorties-section-header h2{
  margin:0;
  font-size:1.15rem;
  font-weight:800;
}

/* Badge "Mes sorties" vs "Communauté" visuel distinct */
#my-events-list .event-card{
  border-left:4px solid var(--violet);
}
#community-events-list .event-card{
  border-left:4px solid var(--border);
}

/* ═══════════════════════════════════════════════════════════
   ÉCRAN SORTIES – CALENDRIER
═══════════════════════════════════════════════════════════ */
#sorties-screen { padding-bottom: 48px; }

.sorties-page { max-width: 1300px; margin: 0 auto; padding: 20px 16px; }

/* ── Bandeau top ── */
.sorties-topbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 14px 20px;
  margin-bottom: 20px;
  background: linear-gradient(90deg, var(--violet-pale), #29263A);
  border: 1.5px solid var(--violet);
  flex-wrap: wrap;
  text-align: center;
}
.sorties-topbar-msg { display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center; }
.sorties-topbar-msg span { font-weight: 700; font-size: .97rem; color: var(--violet-deep); }

/* ── Layout 2 colonnes ── */
.sorties-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 24px;
  align-items: start;
}
@media (max-width: 960px) {
  .sorties-layout { grid-template-columns: 1fr; }
}

/* ── Navigation semaine ── */
.sorties-week-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  margin-bottom: 12px;
  gap: 12px;
}
.sorties-nav-btn {
  background: var(--violet);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 6px 14px;
  font-weight: 900;
  font-size: .9rem;
  cursor: pointer;
  transition: background .15s;
}
.sorties-nav-btn:hover { background: var(--violet-deep); }
.sorties-week-label {
  font-weight: 800;
  font-size: .95rem;
  color: var(--violet-deep);
  text-align: center;
  flex: 1;
}

/* ── Tableau calendaire ── */
.sorties-table-card { padding: 0; overflow: hidden; }
.sorties-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}
.sorties-table thead th {
  background: var(--violet);
  color: #fff;
  padding: 10px 14px;
  text-align: left;
  font-weight: 800;
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.sorties-table thead th:nth-child(1) { width: 100px; }
.sorties-table thead th:nth-child(3) { width: 130px; }
.sorties-table thead th:nth-child(4) { width: 110px; }

/* Mois header */
.sorties-month-row td {
  background: #24303A;
  color: var(--violet-deep);
  font-weight: 900;
  font-size: .85rem;
  padding: 6px 14px;
  border-top: 2px solid var(--violet);
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* Lignes */
.sorties-row {
  cursor: pointer;
  transition: background .12s;
  border-bottom: 1px solid var(--border);
}
.sorties-row:hover { background: #24303A; }
.sorties-row.sorties-mine { background: #223428; }
.sorties-row.sorties-mine:hover { background: #26382C; }
.sorties-row.sorties-joined { background: #2D2740; }
.sorties-row.sorties-joined:hover { background: #423823; }
.sorties-row.sorties-full td { opacity: .7; }

/* Cellule jour */
.sorties-day {
  font-weight: 900;
  font-size: .88rem;
  padding: 10px 14px;
  vertical-align: top;
  border-right: 2px solid var(--border);
  color: var(--violet-deep);
  white-space: nowrap;
  background: #242220;
}

/* Cellule titre */
.sorties-title-cell {
  padding: 8px 12px;
  vertical-align: middle;
}
.sorties-time {
  display: inline-block;
  background: var(--violet-pale);
  color: var(--violet-deep);
  border-radius: 6px;
  padding: 2px 7px;
  font-size: .78rem;
  font-weight: 800;
  margin-right: 7px;
  white-space: nowrap;
}
.sorties-name {
  font-weight: 700;
  color: var(--text);
}
.sorties-place {
  display: block;
  font-size: .78rem;
  color: var(--muted);
  margin-top: 2px;
}

/* Cellule inscrits */
.sorties-count {
  padding: 8px 10px;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
}
.sorties-count.full .sorties-count-num { color: #F58E96; font-weight: 900; }
.sorties-count-num {
  display: block;
  font-weight: 800;
  font-size: .9rem;
  margin-bottom: 4px;
}
.sorties-join-btn {
  background: var(--violet);
  color: #fff;
  border: none;
  border-radius: 7px;
  padding: 3px 10px;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s;
  white-space: nowrap;
}
.sorties-join-btn:hover { background: var(--violet-deep); }
.sorties-join-btn.joined { background: #4caf50; }
.sorties-join-btn.joined:hover { background: #388e3c; }
.sorties-full-badge {
  display: inline-block;
  background: #3A2325;
  color: #F58E96;
  border-radius: 6px;
  padding: 2px 8px;
  font-size: .78rem;
  font-weight: 800;
}
.sorties-full-badge.big {
  padding: 8px 18px;
  font-size: 1rem;
}

/* Cellule organisateur */
.sorties-organizer { padding: 8px 12px; vertical-align: middle; }
.sorties-org-name {
  font-weight: 700;
  color: var(--violet-deep);
  cursor: pointer;
  text-decoration: underline dotted;
}
.sorties-org-name:hover { color: var(--violet); }

/* Ligne vide */
.sorties-empty {
  padding: 32px;
  text-align: center;
  color: var(--muted);
  font-style: italic;
}

/* ── Colonne formulaire ── */
.sorties-create-card { position: sticky; top: 80px; }
.sorties-create-panel .card h2 { margin-bottom: 4px; }

/* ── Modale détail sortie ── */
.sorties-detail { padding: 4px 0; }
.sorties-detail-img img { width: 100%; border-radius: 12px; margin-bottom: 14px; max-height: 220px; object-fit: cover; }
.sorties-detail-kicker { font-size: .78rem; text-transform: uppercase; font-weight: 800; letter-spacing: .08em; color: var(--violet); margin-bottom: 4px; }
.sorties-detail h2 { margin: 0 0 10px; font-size: 1.3rem; }
.sorties-detail-meta { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; font-size: .88rem; color: var(--muted); }
.sorties-detail-progress { margin-bottom: 14px; }
.sorties-progress-bar { height: 8px; background: var(--border); border-radius: 99px; overflow: hidden; margin-bottom: 5px; }
.sorties-progress-fill { height: 100%; background: var(--violet); border-radius: 99px; transition: width .3s; }
.sorties-detail-desc { font-size: .9rem; line-height: 1.5; margin-bottom: 14px; }
.sorties-detail-organizer { font-size: .88rem; color: var(--muted); margin-bottom: 16px; }
.sorties-detail-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }

@media (max-width: 600px) {
  .sorties-table thead th:nth-child(4) { display: none; }
  .sorties-organizer { display: none; }
}


/* Correctif Reels : coeur, commentaire, partage */
.reel-share-panel{
  display:none;
  position:absolute;
  right:88px;
  bottom:96px;
  z-index:6;
  gap:8px;
  flex-wrap:wrap;
  max-width:min(360px, calc(100% - 120px));
  padding:10px;
  border-radius:18px;
  background:rgba(39,40,38,.90);
  border:1px solid rgba(39,40,38,.4);
  backdrop-filter:blur(18px);
}
.reel-share-panel.show{display:flex}
.reel-share-panel button{
  background:#272826;
  color:var(--violet-deep);
  border:1px solid var(--border);
  padding:8px 10px;
  border-radius:12px;
  font-size:12px;
}
.reel-btn:hover,.reel-share-panel button:hover{transform:translateY(-1px)}
.reel-comments .btn-secondary{padding:6px 10px;border-radius:999px}
@media(max-width:850px){
  .reel-share-panel{right:12px;left:12px;bottom:165px;max-width:none}
  .reel-actions{right:10px;bottom:78px}
  .reel-btn{width:56px;min-height:56px;font-size:20px}
}


/* Upload mobile : choix séparé galerie / appareil photo */
.mobile-upload-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:center;
}
.upload-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:46px;
}
.upload-help{
  margin-top:7px;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}
@media(max-width:520px){
  .mobile-upload-row{grid-template-columns:1fr;}
  .upload-btn{width:100%;}
}

.selected-file-name{
  margin-top:8px;
  padding:9px 11px;
  border-radius:12px;
  background:rgba(39,40,38,.88);
  border:1px dashed var(--border);
  color:var(--violet-deep);
  font-size:13px;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}


/* Logo Buddys réduit pour remplacer les pattes */
.logo .logo-mark{
  width:44px;
  height:44px;
  padding:3px;
  overflow:hidden;
  border-radius:16px;
  background:#272826;
  color:transparent;
  box-shadow:0 8px 22px rgba(139,92,246,.22);
  border:1px solid rgba(168,85,247,.35);
}
.logo .logo-mark img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
@media(max-width:850px){
  .logo .logo-mark{
    width:40px;
    height:40px;
    padding:3px;
    border-radius:14px;
  }
}


/* Logo Buddys réduit dans l'en-tête : aucune grosse image affichée */
.logo{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:48px;
}
.logo .header-logo-img{
  display:block;
  width:auto;
  height:46px;
  max-width:150px;
  object-fit:contain;
  border-radius:14px;
}
.logo span.logo-mark,
.logo .logo-mark{
  width:auto;
  height:auto;
  padding:0;
  background:transparent;
  box-shadow:none;
  border:0;
}
@media(max-width:850px){
  .logo .header-logo-img{
    height:40px;
    max-width:128px;
  }
}


/* Correction finale : logo Buddys petit dans l'en-tête uniquement */
.logo{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  font-family: 'DM Sans', Arial, Helvetica, sans-serif !important;
  font-size:28px;
  font-weight:800;
  color:var(--violet-deep);
}
.logo .logo-mark{
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
  padding:0 !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background:#272826 !important;
  border:1px solid var(--border) !important;
  box-shadow:0 6px 18px rgba(139,92,246,.14) !important;
  display:grid !important;
  place-items:center !important;
}
.logo .logo-mark img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  display:block !important;
}
.logo .header-logo-img, .hero-logo-img{
  max-width:48px !important;
  max-height:48px !important;
  object-fit:contain !important;
}
@media(max-width:850px){
  .logo{font-size:24px;}
  .logo .logo-mark{width:42px !important;height:42px !important;min-width:42px !important;}
}


/* Bouton suppression Reels */
.reel-delete-btn{
  background:rgba(197,69,80,.82);
  border-color:rgba(39,40,38,.35);
}
.reel-delete-btn:hover{
  background:rgba(197,69,80,.95);
}

/* Géolocalisation corrigée */
.geo-search-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:12px;
}
.geo-search-row input{
  flex:1 1 260px;
  min-width:220px;
}
@media(max-width:700px){
  .geo-search-row button,
  .geo-search-row input{width:100%;flex-basis:100%;}
}


/* ===== Marketplace Buddys ===== */
.marketplace-page{display:grid;gap:18px}
.marketplace-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:center}
.marketplace-pay-notice,.marketplace-payment-inline{background:var(--violet-pale);border:1px solid var(--border);border-radius:18px;padding:14px;color:var(--violet-deep);line-height:1.45}
.marketplace-pay-notice p{margin-top:6px;color:var(--text)}
.marketplace-layout{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}
.marketplace-form-card{position:sticky;top:92px}
.marketplace-list-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.marketplace-filters{margin:0 0 16px;padding:14px;border:1px solid var(--border);border-radius:20px;background:rgba(255,255,255,.06);box-shadow:0 8px 24px rgba(139,92,246,.08)}
.marketplace-filters-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}
.marketplace-filters-title h3{margin:0;font-size:18px;color:var(--violet-deep)}
.marketplace-filters-title small{font-weight:800;color:var(--muted);white-space:nowrap}
.marketplace-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;align-items:end}
.marketplace-price-filter{margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:16px;background:rgba(139,92,246,.08)}
.marketplace-price-filter-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}
.marketplace-price-filter-head label{font-weight:900;color:var(--text)}
.marketplace-price-filter-head strong{color:var(--violet-deep)}
.marketplace-price-filter input[type="range"]{width:100%;accent-color:var(--violet-deep)}
.marketplace-filter-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.marketplace-list{display:grid;gap:14px}
.marketplace-card{display:grid;grid-template-columns:190px 1fr;gap:14px;background:rgba(39,40,38,.90);border:1px solid var(--border);border-radius:22px;padding:14px;box-shadow:0 8px 24px rgba(139,92,246,.10)}
.marketplace-photo{height:190px;border-radius:18px;overflow:hidden;background:var(--violet-pale);display:grid;place-items:center;font-size:58px;color:var(--violet-deep)}
.marketplace-photo img{width:100%;height:100%;object-fit:cover;display:block}
.marketplace-topline{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}
.marketplace-badge{background:var(--violet-pale);border:1px solid var(--border);color:var(--violet-deep);border-radius:999px;padding:5px 10px;font-weight:900;font-size:12px}
.marketplace-price{font-size:18px;color:var(--violet-deep)}
.marketplace-seller{margin:12px 0;padding:12px;border-radius:16px;background:rgba(39,40,38,.82);border:1px solid var(--border)}
.marketplace-seller h4{margin-bottom:6px;color:var(--violet-deep)}
.marketplace-seller p{margin:3px 0}
.marketplace-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.marketplace-conversations{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.marketplace-buyer-btn{font-size:13px;padding:8px 10px}
.marketplace-chat{margin-top:14px;padding:12px;border-radius:18px;background:var(--violet-pale);border:1px solid var(--border)}
.marketplace-chat-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.marketplace-messages{display:grid;gap:8px;max-height:260px;overflow:auto;padding-right:4px}
.marketplace-message{max-width:82%;background:#272826;border:1px solid var(--border);border-radius:16px;padding:9px 11px}
.marketplace-message.mine{justify-self:end;background:linear-gradient(135deg,var(--violet-light),#fff)}
.marketplace-message p{margin:3px 0;line-height:1.35}
.marketplace-message small{color:var(--muted);font-size:11px}
.marketplace-chat-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}
.marketplace-message-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}
.marketplace-report-btn{border:0;background:transparent;color:var(--danger);font-weight:800;font-size:11px;cursor:pointer;padding:2px 4px;border-radius:999px}
.marketplace-report-btn:hover{background:rgba(197,69,80,.12)}
.marketplace-card .btn-danger{white-space:nowrap}
@media(max-width:850px){.marketplace-hero,.marketplace-layout,.marketplace-card,.marketplace-filter-grid{grid-template-columns:1fr}.marketplace-form-card{position:static}.marketplace-photo{height:210px}.marketplace-list-head,.marketplace-filters-title,.marketplace-price-filter-head{flex-direction:column;align-items:flex-start}.marketplace-message{max-width:94%}}


/* Nouveau logo Buddys : image agrandie pour remplir la case */
.logo .logo-mark{
  width:68px !important;
  height:68px !important;
  min-width:68px !important;
  padding:0 !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:#272826 !important;
  display:grid !important;
  place-items:center !important;
}
.logo .logo-mark img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  display:block !important;
}
@media(max-width:850px){
  .logo .logo-mark{
    width:58px !important;
    height:58px !important;
    min-width:58px !important;
  }
}


/* Correction logo : l’image remplit toute la case, sans marge blanche */
.logo .logo-mark{
  width:78px !important;
  height:78px !important;
  min-width:78px !important;
  padding:0 !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:#272826 !important;
  border:1px solid var(--border) !important;
  box-shadow:0 6px 18px rgba(139,92,246,.16) !important;
  display:grid !important;
  place-items:center !important;
}
.logo .logo-mark img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  display:block !important;
}
@media(max-width:850px){
  .logo .logo-mark{
    width:66px !important;
    height:66px !important;
    min-width:66px !important;
  }
}

/* Mot de passe oublié */
.forgot-link{
  margin-top:10px;
  width:100%;
  background:transparent;
  color:var(--violet-deep);
  text-decoration:underline;
  box-shadow:none;
  padding:8px;
}
.forgot-link:hover{background:var(--violet-pale)}
.forgot-password-popup{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  place-items:center;
  padding:18px;
  background:rgba(10,35,31,.42);
  backdrop-filter:blur(10px);
}
.forgot-password-popup.show{display:grid}
.forgot-password-card{
  position:relative;
  width:min(520px,100%);
  max-height:92vh;
  overflow:auto;
  background:rgba(39,40,38,.96);
  border:1px solid var(--border);
  border-radius:26px;
  box-shadow:0 20px 60px rgba(0,0,0,.22);
  padding:22px;
}
.reset-code-zone{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--border);
}




/* Menu Buddys compact */
.nav button{
  font-size:13px;
  padding:9px 12px;
}
.logo{
  font-size:24px;
}
.logo span{
  width:40px;
  height:40px;
}
.logo span img,
.logo-mark img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:14px;
}


/* Carnet de santé Buddys */
.health-page{
  display:grid;
  gap:18px;
}
.health-hero{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
}
.health-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.health-card-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
}
.health-table-wrap{
  width:100%;
  overflow-x:auto;
}
.health-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 8px;
  min-width:760px;
}
.health-table th{
  text-align:left;
  color:var(--muted);
  font-size:12px;
  padding:0 8px;
}
.health-table td{
  background:rgba(39,40,38,.88);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:8px;
}
.health-table td:first-child{
  border-left:1px solid var(--border);
  border-radius:14px 0 0 14px;
}
.health-table td:last-child{
  border-right:1px solid var(--border);
  border-radius:0 14px 14px 0;
  width:48px;
}
.health-table input{
  padding:9px 10px;
  border-radius:10px;
  font-size:13px;
}
.health-delete{
  width:34px;
  height:34px;
  padding:0;
  border-radius:10px;
}
@media(max-width:850px){
  .health-hero,
  .health-card-head{
    flex-direction:column;
    align-items:stretch;
  }
  .health-actions{
    justify-content:stretch;
  }
  .health-actions button{
    width:100%;
  }
}

/* ===== Header actions (login/signup top right) ===== */
.header-actions{display:flex;align-items:center;gap:10px}
.header-auth-btn{white-space:nowrap}

/* ===== Bottom nav (Sorties / Géolocalisation / Reels / Profil / Marketplace) ===== */
.bottom-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:30;
  display:flex;justify-content:center;gap:10px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(39,40,38,.90);backdrop-filter:blur(18px);
  border-top:1px solid var(--border);
  box-shadow:0 -8px 24px rgba(139,92,246,.12);
}
.bottom-nav-btn{
  flex:0 1 150px;display:flex;flex-direction:column;align-items:center;gap:2px;
  background:#272826;color:var(--muted);border:1px solid var(--border);
  padding:8px 14px;border-radius:16px;font-weight:800;
}
.bottom-nav-btn.active{background:linear-gradient(135deg,var(--violet),var(--violet-dark));color:white;box-shadow:0 8px 22px rgba(139,92,246,.25)}
.bottom-nav-icon{font-size:18px;line-height:1}
.bottom-nav-label{font-size:12px}
.app{padding-bottom:84px}
@media(max-width:760px){.bottom-nav{gap:6px;padding-left:8px;padding-right:8px}.bottom-nav-btn{flex:1 1 0;padding:7px 5px}.bottom-nav-label{font-size:10px}.bottom-nav-icon{font-size:17px}}

/* ===== CGU checkbox line ===== */
.cgu-line{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-size:14px;color:var(--text);cursor:pointer}
.cgu-line input{width:auto;margin-top:3px;accent-color:var(--violet-dark)}

/* ===== Profile hero : photos + bio + rating ===== */
.profile-hero-card h1{font-size:clamp(26px,4vw,38px)}
.profile-hero{display:flex;gap:18px;align-items:center;margin:16px 0 22px;flex-wrap:wrap}
.profile-photos{position:relative;flex:0 0 auto}
.profile-owner-photo{
  position:absolute;right:-10px;bottom:-10px;width:74px;height:74px;border-radius:50%;
  background:linear-gradient(135deg,var(--violet-light),var(--violet-dark));
  display:grid;place-items:center;font-size:30px;color:white;overflow:hidden;
  border:3px solid white;box-shadow:0 6px 16px rgba(139,92,246,.25);
}
.profile-owner-photo img{width:100%;height:100%;object-fit:cover}
.profile-hero-info{flex:1 1 260px;display:flex;flex-direction:column;gap:8px}
.profile-rating-summary{font-size:15px}
.profile-bio-display{font-style:italic}
.stars-display{color:#f0a93a;letter-spacing:1px;font-size:16px}

/* ===== Ratings list ===== */
.ratings-list{display:grid;gap:10px;margin-top:12px}
.rating-item{background:rgba(39,40,38,.88);border:1px solid var(--border);border-radius:16px;padding:12px}
.rating-item-head{display:flex;align-items:center;gap:10px}
.rating-item-head small{margin-left:auto}
.rating-item p{margin-top:8px;color:var(--text)}
.rating-form{margin:14px 0;padding:14px;border-radius:16px;background:var(--violet-pale);border:1px solid var(--border)}
.rating-star-input{font-size:30px;letter-spacing:4px;cursor:pointer;margin-bottom:10px;color:#f0a93a}
.rating-star-input span{cursor:pointer}
.rating-form textarea{margin-bottom:10px}

/* ===== Profile outings (à venir / réalisées) ===== */
.profile-outings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
@media(max-width:850px){.profile-outings-grid{grid-template-columns:1fr}}

/* ===== Public profile : owner photo alongside dog photo ===== */
.public-profile-photos{position:relative;display:inline-block;margin:0 auto}
.public-profile-owner-photo{
  position:absolute;right:-8px;bottom:-8px;width:54px;height:54px;border-radius:50%;
  background:linear-gradient(135deg,var(--violet-light),var(--violet-dark));
  display:grid;place-items:center;font-size:22px;color:white;overflow:hidden;
  border:3px solid white;box-shadow:0 6px 14px rgba(139,92,246,.25);
}
.public-profile-owner-photo img{width:100%;height:100%;object-fit:cover}
.public-profile-bio{padding:0 8px;color:var(--text)}

/* ===== Cookie consent banner ===== */
.cookie-banner{
  position:fixed;
  inset:0;
  z-index:200;
  display:none;
  padding:16px;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.cookie-banner.show{display:flex}
.cookie-banner-card{
  max-width:760px;
  width:min(100%,760px);
  max-height:calc(100vh - 120px);
  overflow:auto;
  background:rgba(39,40,38,.97);backdrop-filter:blur(18px);
  border:1px solid var(--border);border-radius:22px;padding:20px 22px;
  box-shadow:0 18px 50px rgba(0,0,0,.28);
  pointer-events:auto;
}
.cookie-banner-text h3{margin-bottom:6px;color:var(--violet-deep)}
.cookie-banner-text p{font-size:14px;color:var(--muted)}
.cookie-banner-options{display:grid;gap:8px;margin:14px 0;padding:12px;border-radius:14px;background:var(--violet-pale)}
.cookie-option{display:flex;align-items:flex-start;gap:10px;font-size:13px}
.cookie-option input{width:auto;margin-top:3px;accent-color:var(--violet-dark)}
.cookie-banner-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;justify-content:flex-end}
@media(max-width:600px){.cookie-banner-actions{justify-content:stretch}.cookie-banner-actions button{flex:1 1 auto}}

.auth-popup-card{width:min(520px,100%)}

/* Fil d’actualité centré sans modules latéraux */
.left-auth-panel,.right-events-panel{display:none !important;}
.feed-only-layout .feed-main{width:100%;}


/* ===== Demande 21/06 : fil d’actualité seul et centré ===== */
/* Carnet accessible uniquement depuis le profil */
.nav button[data-screen="health"]{display:none !important;}
#feed-screen{width:100%;}
.feed-layout,
.feed-only-layout{
  width:100%;
  display:flex !important;
  justify-content:center !important;
  align-items:flex-start !important;
  grid-template-columns:none !important;
}
.feed-main{
  width:min(100%, 760px) !important;
  max-width:760px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.left-auth-panel,
.right-events-panel,
.auth-side-card,
.online-members-card,
.new-users-card{
  display:none !important;
}
@media(max-width:850px){
  .feed-main{max-width:100% !important;}
}

/* Documents légaux dans Profil + bouton suppression compte */
.profile-legal-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}
#delete-account-btn{
  white-space:nowrap;
}
@media(max-width:700px){
  .header-actions{
    width:100%;
    flex-wrap:wrap;
  }
  .header-actions button{
    flex:1 1 auto;
  }
}

/* Accès public au fil d'actualité avant connexion */
.public-feed-card{
  margin-bottom:18px;
}
.public-feed-card h2{
  margin-bottom:6px;
}

#post-form-card h2{
  color:var(--violet);
}
#public-feed-auth-btn.hidden{
  display:none !important;
}


/* ===== Supprime le module connexion en bas + popup auth fonctionnelle ===== */
#auth-screen,
.legacy-auth-screen,
#signup-success-popup{
  display:none !important;
}
.global-hidden-logout{
  display:none !important;
}
#auth-popup,
#register-popup,
#forgot-password-popup{
  display:none;
}
#auth-popup.show,
#register-popup.show,
#forgot-password-popup.show{
  display:grid !important;
  place-items:center;
}
#side-login-box.hidden,
#side-register-box.hidden,
#side-connected-box.hidden{
  display:none !important;
}
.auth-popup-card{
  max-width:520px;
}
.register-popup{
  position:fixed;
  inset:0;
  z-index:10000;
  background:rgba(0,0,0,.45);
  padding:20px;
  overflow:auto;
}
.register-popup-card{
  width:min(780px,100%);
  max-height:92vh;
  overflow:auto;
  position:relative;
  background:rgba(39,40,38,.96);
  border:1px solid var(--border);
  border-radius:28px;
  box-shadow:0 24px 80px rgba(0,0,0,.24);
  padding:22px;
  backdrop-filter:blur(22px);
}
.register-popup-close{
  position:absolute;
  right:14px;
  top:14px;
  width:40px;
  height:40px;
  border-radius:999px;
  background:#272826;
  border:1px solid var(--border);
  color:var(--violet-deep);
  font-size:24px;
  padding:0;
}
.auth-choice.side{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:14px 0;
}
.auth-choice.side button{
  background:#272826;
  color:var(--muted);
  border:1px solid var(--border);
}
.auth-choice.side button.active{
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:white;
}
.forgot-link{
  display:inline-block;
  margin-top:10px;
  color:var(--violet-deep);
  background:transparent;
  text-decoration:underline;
  font-weight:900;
}
.cgu-line{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:12px 0;
  color:var(--muted);
  font-weight:700;
}
.cgu-line input{
  width:auto !important;
  margin-top:4px;
}


/* ===== Navigation du bas : icônes uniquement + clic mobile corrigé ===== */
.bottom-nav{
  position:fixed;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  z-index:9998;
  width:min(720px, calc(100% - 20px));
  display:grid !important;
  grid-template-columns:repeat(6, 1fr);
  gap:6px;
  padding:8px;
  border-radius:24px;
  background:rgba(39,40,38,.96);
  border:1px solid var(--border);
  box-shadow:0 16px 46px rgba(0,0,0,.18);
  backdrop-filter:blur(18px);
  pointer-events:auto;
}
.bottom-nav button,
.bottom-nav-btn{
  min-height:54px;
  width:100%;
  border-radius:18px;
  padding:0;
  display:flex !important;
  align-items:center;
  justify-content:center;
  background:#272826;
  color:var(--violet-deep);
  border:1px solid var(--border);
  cursor:pointer;
  pointer-events:auto;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.bottom-nav button.active,
.bottom-nav-btn.active{
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:#fff;
}
.bottom-nav-icon{
  display:block !important;
  font-size:25px;
  line-height:1;
  pointer-events:none;
}
.bottom-nav-label{
  display:none !important;
}
body{
  padding-bottom:92px;
}
.app{
  padding-bottom:96px;
}
@media(max-width:520px){
  .bottom-nav{
    bottom:8px;
    width:calc(100% - 12px);
    gap:4px;
    padding:6px;
    border-radius:20px;
  }
  .bottom-nav button,
  .bottom-nav-btn{
    min-height:50px;
    border-radius:15px;
  }
  .bottom-nav-icon{
    font-size:23px;
  }
}


/* ===== Carte de France — services animaux ===== */
.geoloc-hero-card{
  margin-bottom:18px;
}
.geo-main-search{
  display:grid;
  grid-template-columns:1.5fr .7fr auto;
  gap:12px;
  align-items:end;
  margin-top:14px;
}
.geo-search-btn{
  min-height:48px;
  margin-bottom:12px;
}
.geo-category-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:10px;
}
.geo-category-grid label{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:14px;
  background:#272826;
  border:1px solid var(--border);
  color:var(--violet-deep);
  font-weight:900;
  cursor:pointer;
}
.geo-category-grid input{
  width:auto !important;
}
.geo-data-note{
  margin-top:12px;
  color:var(--muted);
  font-size:13px;
}
.animal-map-grid{
  grid-template-columns:1.1fr .9fr;
}
.animal-map,
#leaflet-map{
  min-height:620px;
}
.animal-results-panel{
  min-width:0;
}
.animal-results-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.animal-places{
  max-height:620px;
  overflow:auto;
  padding-right:4px;
}
.animal-place-card{
  cursor:pointer;
}
.animal-place-top{
  display:flex;
  gap:10px;
  align-items:center;
}
.animal-place-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--violet-pale);
  border:1px solid var(--border);
  font-size:22px;
}
.animal-place-top small{
  display:block;
  margin-top:2px;
  color:var(--muted);
}
.animal-place-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
}
.animal-place-links a,
.animal-place-links span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 8px;
  border-radius:999px;
  background:var(--violet-pale);
  color:var(--violet-deep);
  border:1px solid var(--border);
  text-decoration:none;
  font-size:12px;
  font-weight:900;
}
.animal-marker div{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#272826;
  border:2px solid var(--violet-dark);
  box-shadow:0 8px 20px rgba(0,0,0,.18);
  font-size:20px;
}
@media(max-width:950px){
  .geo-main-search,
  .animal-map-grid{
    grid-template-columns:1fr;
  }
  .geo-category-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:560px){
  .geo-category-grid{
    grid-template-columns:1fr;
  }
  .animal-map,
  #leaflet-map{
    min-height:440px;
  }
}


/* ===== Fix géolocalisation ===== */
#geo-city{
  text-transform:none;
}
.geo-data-note strong{
  color:var(--violet-deep);
}


/* ===== Source data.gouv affichée dans les cartes ===== */
.animal-place-links span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 8px;
  border-radius:999px;
  background:#272826;
  color:var(--muted);
  border:1px solid var(--border);
  font-size:12px;
  font-weight:900;
}

.geo-data-note a{
  color:var(--violet-deep);
  font-weight:900;
}


/* ===== Sorties animaux enrichies ===== */
.sortie-card-plus{
  border-left:5px solid var(--violet-dark);
}
.sortie-meta-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:12px 0;
}
.sortie-meta-grid span{
  background:var(--violet-pale);
  color:var(--violet-deep);
  border:1px solid var(--border);
  border-radius:14px;
  padding:8px 10px;
  font-size:13px;
  font-weight:900;
}
@media(max-width:720px){
  .sortie-meta-grid{
    grid-template-columns:1fr;
  }
}


/* ===== Fix affichage tableau Sorties ===== */
.sortie-row td{
  vertical-align:top;
  padding:12px 10px;
}
.sortie-row small{
  color:var(--muted);
  font-weight:800;
}
.sortie-desc{
  margin-top:6px;
  color:var(--muted);
  font-size:13px;
}
#sorties-screen table,
#events-screen table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 8px;
}
#sorties-screen tbody tr,
#events-screen tbody tr{
  background:#272826;
  border-radius:16px;
  box-shadow:0 8px 20px rgba(20,80,72,.08);
}
#sorties-screen tbody td:first-child,
#events-screen tbody td:first-child{
  border-radius:16px 0 0 16px;
}
#sorties-screen tbody td:last-child,
#events-screen tbody td:last-child{
  border-radius:0 16px 16px 0;
}


/* ===== Sorties préremplies ===== */
.preloaded-sortie td,
.sortie-row td{
  vertical-align:top;
  padding:12px 10px;
  background:#272826;
}
.preloaded-sortie small,
.sortie-row small{
  color:var(--muted);
  font-weight:800;
}
.sortie-desc{
  margin-top:6px;
  color:var(--muted);
  font-size:13px;
}


/* ===== Sorties Buddys 250 + filtres ===== */
.buddys-sorties-module{
  margin-top:18px;
}
.sorties-filter-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.sorties-filters{
  display:grid;
  grid-template-columns:2fr 1fr 1fr auto;
  gap:12px;
  align-items:end;
  margin:16px 0;
}
.sorties-count{
  font-weight:900;
  color:var(--violet-deep);
  margin:8px 0 12px;
}
.buddys-sorties-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 8px;
}
.buddys-sorties-table th{
  text-align:left;
  color:var(--muted);
  font-size:13px;
  padding:8px 10px;
}
.buddys-sorties-table td{
  background:#272826;
  vertical-align:top;
  padding:12px 10px;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.buddys-sorties-table td:first-child{
  border-left:1px solid var(--border);
  border-radius:16px 0 0 16px;
  min-width:110px;
}
.buddys-sorties-table td:last-child{
  border-right:1px solid var(--border);
  border-radius:0 16px 16px 0;
}
.sortie-desc{
  margin-top:6px;
  color:var(--muted);
  font-size:13px;
}
.sortie-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.sortie-actions button{
  border:0;
  border-radius:999px;
  padding:8px 10px;
  font-weight:900;
  cursor:pointer;
  background:var(--violet-pale);
  color:var(--violet-deep);
}
.sortie-actions button:last-child{
  background:var(--violet-dark);
  color:white;
}
@media(max-width:900px){
  .sorties-filters{
    grid-template-columns:1fr;
  }
  .buddys-sorties-table{
    font-size:13px;
  }
  .sortie-actions{
    flex-direction:column;
  }
}


/* ===== Compteur participation sorties ===== */
.sortie-count-cell{
  font-weight:900;
  color:var(--violet-deep);
}
.sortie-actions button:disabled{
  opacity:.55;
  cursor:not-allowed;
  background:#3A3B38 !important;
  color:#ABA69D !important;
}

/* Admin données lieux animaux */
#geo-data-admin-card{margin-top:16px}


/* ===== Carte de France Sorties ===== */
.buddys-france-map-card{
  margin:16px 0;
  overflow:hidden;
}
.france-map-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.buddys-france-map{
  display:grid;
  grid-template-columns:minmax(260px, 1fr) minmax(220px, .65fr);
  gap:16px;
  align-items:stretch;
}
.france-map-shape{
  position:relative;
  min-height:430px;
  border-radius:34px;
  background:
    radial-gradient(circle at 46% 35%, rgba(39,40,38,.82), transparent 26%),
    linear-gradient(145deg, #E9D5FF, #C084FC 55%, #7C3AED);
  clip-path:polygon(44% 2%, 62% 8%, 72% 18%, 76% 30%, 88% 43%, 80% 58%, 84% 75%, 72% 92%, 55% 87%, 43% 98%, 30% 85%, 20% 82%, 14% 68%, 5% 60%, 12% 45%, 8% 30%, 22% 22%, 27% 8%);
  box-shadow:inset 0 0 0 4px rgba(39,40,38,.35), 0 18px 40px rgba(20,80,72,.14);
}
.france-map-point{
  position:absolute;
  transform:translate(-50%,-50%);
  border:0;
  border-radius:999px;
  min-width:44px;
  min-height:44px;
  padding:6px 10px;
  background:#272826;
  color:var(--violet-deep);
  box-shadow:0 10px 26px rgba(0,0,0,.16);
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:5px;
  font-weight:900;
  z-index:2;
}
.france-map-point span{
  font-size:18px;
}
.france-map-point small{
  display:none;
  white-space:nowrap;
}
.france-map-point:hover small,
.france-map-point.active small{
  display:inline;
}
.france-map-point.active{
  background:var(--violet-dark);
  color:white;
}
.france-map-list{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  align-content:start;
  max-height:430px;
  overflow:auto;
  padding-right:4px;
}
.france-map-list button{
  border:1px solid var(--border);
  background:#272826;
  color:var(--violet-deep);
  border-radius:16px;
  padding:10px 12px;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}
.france-map-list button:hover,
.france-map-list button.active{
  background:var(--violet-pale);
  border-color:var(--violet-dark);
}

/* ===== Profil : photos cliquables sans textes Galerie/Appareil photo ===== */
.buddys-hidden-photo-text,
.buddys-hidden-file-input,
input[type="file"].buddys-hidden-file-input{
  display:none !important;
  visibility:hidden !important;
  width:0 !important;
  height:0 !important;
  opacity:0 !important;
  position:absolute !important;
  pointer-events:none !important;
}
.buddys-click-photo{
  cursor:pointer !important;
  outline:3px solid rgba(53,191,167,.25);
  outline-offset:4px;
  transition:.18s ease;
}
.buddys-click-photo:hover{
  transform:scale(1.03);
  outline-color:var(--violet-dark);
  filter:brightness(1.03);
}
.buddys-click-photo::after{
  content:'📸';
}
.buddys-profile-photo-click-zone{
  display:grid;
  grid-template-columns:repeat(2,minmax(180px,1fr));
  gap:14px;
  margin:14px 0 18px;
}
.photo-click-card{
  border:2px dashed var(--violet-dark);
  background:var(--violet-pale);
  color:var(--violet-deep);
  border-radius:24px;
  padding:16px;
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  cursor:pointer;
  font-weight:900;
}
.photo-click-card:hover{
  background:#272826;
  box-shadow:0 14px 34px rgba(20,80,72,.13);
}
.photo-click-preview{
  width:74px;
  height:74px;
  border-radius:999px;
  background:#272826;
  display:grid;
  place-items:center;
  font-size:34px;
  background-size:cover;
  background-position:center;
  border:3px solid white;
  box-shadow:0 10px 22px rgba(20,80,72,.12);
}
.photo-click-card small{
  color:var(--muted);
}
@media(max-width:820px){
  .buddys-france-map{
    grid-template-columns:1fr;
  }
  .france-map-shape{
    min-height:340px;
  }
  .france-map-list{
    grid-template-columns:repeat(2,1fr);
    max-height:none;
  }
  .buddys-profile-photo-click-zone{
    grid-template-columns:1fr;
  }
}


/* ===== Profil : suppression modules upload visibles, clic uniquement sur icônes ===== */
#buddys-profile-photo-click-zone,
.buddys-profile-photo-click-zone,
.photo-click-card,
.buddys-hidden-photo-text,
.buddys-force-hide-photo-upload{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  overflow:hidden !important;
}

input[type="file"],
input[type="file"].buddys-real-file-hidden,
input[type="file"].buddys-hidden-file-input{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  position:absolute !important;
  left:-99999px !important;
  width:0 !important;
  height:0 !important;
  pointer-events:none !important;
}

.buddys-photo-icon-clickable{
  cursor:pointer !important;
  position:relative;
  outline:3px solid rgba(53,191,167,.35);
  outline-offset:4px;
  transition:.18s ease;
}

.buddys-photo-icon-clickable:hover{
  transform:scale(1.03);
  outline-color:var(--violet-dark);
  filter:brightness(1.05);
}

.buddys-photo-icon-clickable::after{
  content:'📸';
  position:absolute;
  right:-8px;
  bottom:-8px;
  width:32px;
  height:32px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#272826;
  color:var(--violet-deep);
  box-shadow:0 8px 20px rgba(20,80,72,.18);
  font-size:16px;
  z-index:5;
}

.buddys-has-photo-preview{
  background-size:cover !important;
  background-position:center !important;
}


/* ===== Fix Leaflet France visible ===== */
.buddys-leaflet-card{
  margin:16px 0;
}
#buddys-leaflet-france-map,
.buddys-leaflet-fixed-map,
#map,
.leaflet-map,
#france-map-leaflet{
  width:100% !important;
  height:430px !important;
  min-height:430px !important;
  display:block !important;
  border-radius:24px;
  overflow:hidden;
  border:1px solid var(--border);
  background:#DCCBFF;
  position:relative;
  z-index:1;
}
.leaflet-container{
  width:100% !important;
  height:430px !important;
  min-height:430px !important;
  border-radius:24px;
  font-family:inherit;
}
.leaflet-tile-container img,
.leaflet-tile{
  max-width:none !important;
  max-height:none !important;
}
.leaflet-fallback-france{
  height:430px;
  display:grid;
  place-items:center;
  text-align:center;
  font-weight:900;
  color:var(--violet-deep);
  background:linear-gradient(145deg,#272826,#C084FC);
  border-radius:24px;
  padding:20px;
}
@media(max-width:720px){
  #buddys-leaflet-france-map,
  .buddys-leaflet-fixed-map,
  #map,
  .leaflet-map,
  #france-map-leaflet,
  .leaflet-container{
    height:340px !important;
    min-height:340px !important;
  }
}


/* ===== Profil : clic photo maître + photo animal uniquement ===== */
.buddys-upload-remove,
#buddys-profile-photo-click-zone,
.buddys-profile-photo-click-zone,
.photo-click-card,
.buddys-hidden-photo-text,
.buddys-force-hide-photo-upload{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  overflow:hidden !important;
}

input[type="file"],
input[type="file"].buddys-hidden-real-file,
input[type="file"].buddys-real-file-hidden,
input[type="file"].buddys-hidden-file-input{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  position:absolute !important;
  left:-99999px !important;
  width:0 !important;
  height:0 !important;
  pointer-events:none !important;
}

.buddys-photo-click-target{
  cursor:pointer !important;
  position:relative !important;
  outline:4px solid rgba(53,191,167,.35) !important;
  outline-offset:5px !important;
  transition:.18s ease !important;
  overflow:visible !important;
}

.buddys-photo-click-target:hover{
  transform:scale(1.025);
  outline-color:var(--violet-dark) !important;
  filter:brightness(1.04);
}

.buddys-photo-click-target::after{
  content:'📸';
  position:absolute;
  right:-12px;
  bottom:-12px;
  width:34px;
  height:34px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#272826;
  color:var(--violet-deep);
  box-shadow:0 8px 22px rgba(20,80,72,.22);
  font-size:16px;
  z-index:999;
}

.buddys-dog-click-zone::after{
  right:-8px;
  bottom:-8px;
  width:28px;
  height:28px;
  font-size:13px;
}

.buddys-photo-has-preview{
  background-size:cover !important;
  background-position:center !important;
  color:transparent !important;
}


/* ===== Buddys : images gauche profil cliquables ===== */
.buddys-hide-upload-ui,
#buddys-profile-photo-click-zone,
.buddys-profile-photo-click-zone,
.photo-click-card,
.buddys-hidden-photo-text,
.buddys-force-hide-photo-upload,
.buddys-upload-remove{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}

input[type="file"].buddys-hidden-file-input-force,
input[type="file"].buddys-hidden-real-file,
input[type="file"].buddys-real-file-hidden,
input[type="file"].buddys-hidden-file-input{
  display:none !important;
  position:absolute !important;
  left:-99999px !important;
  width:0 !important;
  height:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.buddys-profile-photo-clickable{
  cursor:pointer !important;
  position:relative !important;
  outline:4px solid rgba(53,191,167,.38) !important;
  outline-offset:4px !important;
  transition:transform .18s ease, outline-color .18s ease, filter .18s ease !important;
}
.buddys-profile-photo-clickable:hover{
  transform:scale(1.03);
  outline-color:var(--violet-dark) !important;
  filter:brightness(1.05);
}
.buddys-profile-photo-clickable::after{
  content:'📸';
  position:absolute;
  right:-10px;
  bottom:-10px;
  width:32px;
  height:32px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#272826;
  box-shadow:0 8px 20px rgba(20,80,72,.22);
  z-index:20;
  font-size:15px;
}
.buddys-left-owner-photo::after{
  width:28px;
  height:28px;
  right:-6px;
  bottom:-6px;
  font-size:13px;
}
.buddys-photo-replaced{
  background-size:cover !important;
  background-position:center !important;
  color:transparent !important;
}


/* ===== Boutons photo exacts profil : rond rouge + rond bleu ===== */
.profile-photos{
  position:relative !important;
}

#profile-photo,
#profile-owner-photo{
  cursor:pointer !important;
  position:relative !important;
  overflow:visible !important;
}

.profile-photo-click-target{
  outline:4px solid rgba(53,191,167,.36) !important;
  outline-offset:5px !important;
  transition:transform .18s ease, outline-color .18s ease, filter .18s ease !important;
}

.profile-photo-click-target:hover{
  transform:scale(1.025);
  outline-color:var(--violet-dark) !important;
  filter:brightness(1.05);
}

.photo-overlay-btn{
  position:absolute;
  right:-14px;
  bottom:-14px;
  width:38px;
  height:38px;
  border-radius:999px;
  border:3px solid #fff;
  background:var(--violet-dark);
  color:#fff;
  display:grid;
  place-items:center;
  box-shadow:0 8px 24px rgba(20,80,72,.28);
  cursor:pointer;
  z-index:9999;
  font-size:17px;
  padding:0;
}

.photo-overlay-btn.small{
  width:30px;
  height:30px;
  right:-7px;
  bottom:-7px;
  font-size:13px;
  border-width:2px;
}

.photo-overlay-btn:hover{
  transform:scale(1.08);
  background:#7C3AED;
}

.has-custom-profile-photo{
  color:transparent !important;
}

.buddys-hide-upload-ui{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  overflow:hidden !important;
}

input[type="file"].buddys-hidden-file-force{
  display:none !important;
  position:absolute !important;
  left:-99999px !important;
  width:0 !important;
  height:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
}





/* ===== Carte sorties supprimée ===== */
#sorties-france-map-card,
#sorties-france-map,
#sorties-map-list,
.sorties-radius-filters{
  display:none !important;
}


/* ===== Réparation bloc Reels ===== */
#reels-screen .upload-help,
.reels-time-help{
  display:block;
  margin-top:8px;
  padding:10px 12px;
  border-radius:14px;
  background:var(--violet-pale);
  border:1px solid var(--border);
  color:var(--violet-deep);
  font-weight:900;
}
#reel-video-selected{
  margin-top:8px;
  font-weight:900;
  color:var(--violet-deep);
}

/* ===== Modération Reels par mail ===== */
.reels-moderation-help{
  display:block;
  margin:10px 0;
  padding:10px 12px;
  border-radius:14px;
  background:var(--violet-pale);
  border:1px solid var(--border);
  color:var(--violet-deep);
  font-weight:900;
}


/* ===== Correctif Buddys Leaflet : carte visible + hauteur stable ===== */
#map-screen .animal-map,
#map-screen .map,
#map-screen #leaflet-map{
  width:100% !important;
  min-height:620px !important;
  height:620px !important;
  display:block !important;
  position:relative !important;
  overflow:hidden !important;
  border-radius:20px;
  background:#DCCBFF;
}
#map-screen #leaflet-map.leaflet-container,
#map-screen .leaflet-container{
  width:100% !important;
  min-height:620px !important;
  height:620px !important;
  display:block !important;
  z-index:1;
}
#map-screen .leaflet-tile,
#map-screen .leaflet-tile-container img{
  max-width:none !important;
  max-height:none !important;
}
.geo-main-search{
  display:grid;
  grid-template-columns:1fr 180px auto auto;
  gap:12px;
  align-items:end;
}
.geo-locate-btn{
  white-space:nowrap;
  height:48px;
}
@media(max-width:950px){
  .geo-main-search{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  .geo-main-search{grid-template-columns:1fr;}
  #map-screen .animal-map,
  #map-screen .map,
  #map-screen #leaflet-map,
  #map-screen #leaflet-map.leaflet-container,
  #map-screen .leaflet-container{
    min-height:460px !important;
    height:460px !important;
  }
}


/* ===== CORRECTION PROFIL : recadrage photos animal / maître ===== */
#profile-photo,
#profile-owner-photo{
  overflow:hidden !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

#profile-photo{
  width:100% !important;
  min-height:250px !important;
  aspect-ratio:1 / 1 !important;
}

#profile-owner-photo{
  aspect-ratio:1 / 1 !important;
}

#profile-photo img,
#profile-owner-photo img,
.profile-photo .dog-photo,
.profile-owner-photo .dog-photo,
.buddys-profile-crop-img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border-radius:inherit !important;
}

#profile-photo .photo-overlay-btn,
#profile-owner-photo .photo-overlay-btn{
  z-index:20 !important;
  right:10px !important;
  bottom:10px !important;
}

#profile-owner-photo .photo-overlay-btn.small{
  right:5px !important;
  bottom:5px !important;
}

/* ===== CORRECTION REELS : bouton suppression visible et clair ===== */
.reel-delete-btn{
  background:rgba(197,69,80,.92) !important;
  color:white !important;
  border:1px solid rgba(39,40,38,.35) !important;
}
.reel-delete-btn:hover{
  filter:brightness(1.08);
}


/* ===== Carnet de santé dans le profil, côté gauche ===== */
.health-floating-link{
  display:none !important;
}
.profile-photos{
  align-self:flex-start;
}
.health-profile-link{
  width:100%;
  margin-top:12px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  padding:14px 16px;
  border-radius:20px;
  border:1px solid var(--border);
  background:linear-gradient(135deg, rgba(168,85,247,.24), rgba(39,40,38,.95));
  color:var(--violet-deep);
  box-shadow:0 10px 26px rgba(139,92,246,.14);
  text-align:left;
  cursor:pointer;
}
.health-profile-link:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(139,92,246,.18);
}
.health-profile-icon{
  width:42px;
  height:42px;
  min-width:42px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:#fff;
  font-size:22px;
}
.health-profile-link strong{
  display:block;
  font-size:15px;
  line-height:1.1;
}
.health-profile-link small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-weight:800;
  font-size:12px;
}
#health-screen.screen.active{
  display:block !important;
}
@media(max-width:760px){
  .health-profile-link{
    margin-bottom:12px;
  }
}


/* === CARNET DE SANTÉ COMPLET — bouton profil à gauche === */
.health-profile-link{
  display:flex;align-items:center;gap:12px;width:100%;margin-top:12px;padding:13px 14px;
  border-radius:18px;text-decoration:none;background:linear-gradient(135deg,#272826,#353230);
  color:var(--violet-deep,#DDD6FE);border:1px solid var(--border,rgba(168,85,247,.32));
  box-shadow:0 10px 28px rgba(139,92,246,.12);font-weight:900
}
.health-profile-link:hover{transform:translateY(-1px);box-shadow:0 14px 32px rgba(139,92,246,.18)}
.health-profile-link small{display:block;font-weight:700;color:var(--muted,#A8A099);font-size:12px;margin-top:2px}
.health-profile-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--violet,#C084FC),var(--violet-dark,#7C3AED));color:white;font-size:22px;flex:0 0 auto}
@media(max-width:760px){.health-profile-link{margin-bottom:12px}}


/* === Actions compte sous les sorties du profil === */
.profile-account-actions{
  margin:18px 0 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  align-items:center;
}
.profile-account-actions.hidden{display:none!important}
.btn-profile-logout,.btn-profile-delete{
  width:100%;
  min-height:52px;
  border:0;
  border-radius:18px;
  padding:14px 18px;
  color:#fff;
  font-weight:900;
  font-size:16px;
  cursor:pointer;
  box-shadow:0 12px 26px rgba(0,0,0,.12);
}
.btn-profile-logout{
  background:linear-gradient(135deg,#2f80ed,#1f5fbf);
}
.btn-profile-logout:hover{
  filter:brightness(.96);
  transform:translateY(-1px);
}
.btn-profile-delete{
  background:linear-gradient(135deg,#e53935,#b71c1c);
}
.btn-profile-delete:hover{
  filter:brightness(.96);
  transform:translateY(-1px);
}
@media(max-width:700px){
  .profile-account-actions{grid-template-columns:1fr}
}


/* ===== Menu compte deux traits parallèles ===== */
.account-menu-wrap{position:relative;margin-left:auto;display:flex;align-items:center;justify-content:flex-end;}
.account-menu-btn{
  width:52px;height:46px;border-radius:16px;background:rgba(39,40,38,.92);
  border:1px solid var(--border);box-shadow:0 8px 22px rgba(139,92,246,.14);
  display:grid;place-content:center;gap:7px;padding:0;cursor:pointer;
}
.account-menu-btn span{display:block;width:26px;height:3px;border-radius:99px;background:var(--violet-deep);}
.account-menu{position:absolute;right:0;top:calc(100% + 10px);min-width:190px;display:none;z-index:10001;background:rgba(39,40,38,.96);border:1px solid var(--border);border-radius:18px;box-shadow:0 18px 46px rgba(0,0,0,.16);padding:8px;backdrop-filter:blur(18px);}
.account-menu.show{display:grid;gap:6px;}
.account-menu-item{width:100%;text-align:left;background:#272826;color:var(--violet-deep);border:1px solid var(--border);border-radius:13px;padding:11px 13px;font-weight:900;cursor:pointer;}
.account-menu-item:hover{background:var(--violet-pale);}
.header-auth-btn.hidden{display:none !important;}
@media(max-width:700px){.account-menu-wrap{width:auto;margin-left:auto}.account-menu{right:0}.header-inner{flex-direction:row;align-items:center}.header-actions{width:auto}}

/* Le module informatif du fil d'actualité a été retiré */
#public-feed-card{display:none !important;}

/* ===== Import CSV admin établissements animaux ===== */
.animal-csv-admin-card{margin-top:18px;padding:16px;border-radius:22px;background:rgba(39,40,38,.80);border:1px dashed var(--violet-dark);box-shadow:0 10px 28px rgba(139,92,246,.10);}
.animal-csv-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.animal-csv-admin-head h2{font-size:22px;margin-bottom:5px;}
.animal-csv-import-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.animal-csv-import-row .selected-file-name{min-width:180px;}
@media(max-width:700px){.animal-csv-admin-head{flex-direction:column}.animal-csv-import-row button,.animal-csv-import-row label{width:100%;justify-content:center}.animal-csv-import-row .selected-file-name{width:100%;}}

/* Correctif CSV géolocalisation — bouton upload sous Vétérinaires */
.geo-category-grid .geo-cat-tile{
  padding:10px 12px;
  border-radius:14px;
  background:#272826;
  border:1px solid var(--border);
  color:var(--violet-deep);
}
.geo-category-grid .geo-cat-tile label{
  padding:0;
  border:0;
  background:transparent;
}
.csv-quick-upload{
  margin-top:10px;
  padding-top:10px;
  border-top:1px dashed var(--border);
}
.csv-quick-upload-btn{
  width:100%;
  border:0;
  border-radius:12px;
  background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  color:#fff;
  font-weight:900;
  padding:10px 12px;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(46,191,164,.18);
}
.csv-quick-upload small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  line-height:1.35;
  font-size:11px;
}

.moderation-toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%) translateY(20px);z-index:9999;max-width:min(92vw,560px);padding:14px 18px;border-radius:18px;background:#223428;color:#8FD9A2;border:1px solid rgba(36,90,42,.22);box-shadow:0 14px 40px rgba(0,0,0,.18);font-weight:900;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.moderation-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}button:disabled,.btn-primary:disabled{opacity:.65;cursor:not-allowed}

/* ===== Correctif demandé : titre publication + menu hamburger en violet pastel ===== */
#post-form-card h2,
#feed-screen #post-form-card h2,
.card#post-form-card > h2{
  color:#C084FC !important;
}
.hamburger-btn,
#hamburger-btn{
  border-color:#C084FC !important;
  color:#C084FC !important;
}
.hamburger-btn span,
#hamburger-btn span,
.account-menu-btn span{
  background:#C084FC !important;
}
.hamburger-btn:hover,
#hamburger-btn:hover{
  box-shadow:0 2px 8px rgba(168,85,247,.24) !important;
}


/* ===== Violet pastel demandé : titre publication + menu hamburger ===== */
#post-form-card h2,
#feed-screen #post-form-card h2,
.card#post-form-card > h2{
  color:#C084FC !important;
}
.hamburger-btn,
#hamburger-btn{
  border-color:#C084FC !important;
  color:#C084FC !important;
}
.hamburger-btn span,
#hamburger-btn span,
.account-menu-btn span{
  background:#C084FC !important;
}
.hamburger-btn:hover,
#hamburger-btn:hover{
  box-shadow:0 2px 8px rgba(168,85,247,.24) !important;
}
.hamburger-item:hover,
.hamburger-dropdown a:hover{
  background:#29263A !important;
  color:#C084FC !important;
}


/* =========================================================
   Thème global Buddys — Violet pastel
   Remplace l’ancien dégradé chaud par une palette violet pastel sur toute l’interface.
   ========================================================= */
:root{
  --violet:#C084FC;
  --violet-light:#C084FC;
  --violet-dark:#7C3AED;
  --violet-deep:#7C3AED;
  --violet-pale:#29263A;
  --bg:#1F1F1D;
  --card:rgba(255,255,255,.88);
  --border:rgba(168,85,247,.24);
  --text:#F4F1F7;
  --muted:#BDB8C7;
  --shadow:0 12px 40px rgba(139,92,246,.14);
}
body{
  background:var(--bg) !important;
  color:var(--text) !important;
  color-scheme:dark !important;
}
body:before{
  background:
    radial-gradient(circle at 18% 18%,rgba(196,181,253,.38),transparent 35%),
    radial-gradient(circle at 85% 70%,rgba(168,85,247,.16),transparent 38%),
    linear-gradient(135deg,#1F1F1D,#242522) !important;
}
.header{
  background:rgba(255,255,255,.86) !important;
  border-bottom:1px solid rgba(168,85,247,.16) !important;
  box-shadow:0 8px 30px rgba(139,92,246,.08) !important;
}
.logo,
.logo strong{
  color:var(--violet-dark) !important;
}
.logo .logo-mark{
  background:#FFFFFF !important;
  border:1px solid rgba(168,85,247,.20) !important;
  box-shadow:0 8px 24px rgba(139,92,246,.12) !important;
}
.card,
.event-card,
.public-feed-card,
.market-card,
.market-item,
.profile-hero-card,
.health-card,
.place,
.reel-card,
.modal,
.popup-card,
.auth-popup-card,
.csv-panel,
.geo-card,
.buddys-geo-csv-box,
.buddys-geo-place{
  background:rgba(255,255,255,.88) !important;
  border-color:var(--border) !important;
  color:var(--text) !important;
  box-shadow:var(--shadow) !important;
}
input,
textarea,
select{
  background:#FFFFFF !important;
  border-color:rgba(168,85,247,.25) !important;
  color:var(--text) !important;
  color-scheme:dark !important;
}
input::placeholder,
textarea::placeholder{
  color:#BDB8C7 !important;
  opacity:.85 !important;
}
select option{
  background:#FFFFFF !important;
  color:var(--text) !important;
}
button,
.btn,
.nav button,
.bottom-nav button,
.bottom-nav-btn,
.chip,
.event-badge,
.tabs button,
.btn-secondary{
  background:#FFFFFF !important;
  color:var(--violet-deep) !important;
  border:1px solid var(--border) !important;
}
.btn-primary,
.nav button.active,
.bottom-nav button.active,
.bottom-nav-btn.active,
.tabs button.active,
.chip.active,
.csv-quick-upload-btn,
.csv-quick-upload-primary,
.sorties-join-btn,
.sorties-nav-btn.active,
#csv-import-btn{
  background:linear-gradient(135deg,var(--violet-light),var(--violet-dark)) !important;
  color:#FFFFFF !important;
  border-color:transparent !important;
  box-shadow:0 10px 24px rgba(139,92,246,.24) !important;
}
.hamburger-btn,
#hamburger-btn{
  background:#FFFFFF !important;
  border-color:var(--violet-dark) !important;
  color:var(--violet-dark) !important;
  box-shadow:0 6px 18px rgba(139,92,246,.10) !important;
}
.hamburger-btn span,
#hamburger-btn span,
.account-menu-btn span{
  background:var(--violet-dark) !important;
}
.hamburger-btn:hover,
#hamburger-btn:hover{
  box-shadow:0 2px 10px rgba(139,92,246,.24) !important;
}
.hamburger-dropdown{
  background:#FFFFFF !important;
  border:1px solid var(--border) !important;
  box-shadow:0 16px 46px rgba(139,92,246,.16) !important;
}
.hamburger-item{
  color:var(--text) !important;
}
.hamburger-item:hover,
.hamburger-dropdown a:hover{
  background:#29263A !important;
  color:var(--violet-deep) !important;
}
#post-form-card h2,
#feed-screen #post-form-card h2,
.card#post-form-card > h2,
h1,h2,h3,
.place b,
.event-badge,
.selected-file-name,
.notice,
.sorties-topbar-msg span,
.sorties-detail-kicker,
.sorties-org-name{
  color:var(--violet-deep) !important;
}
.bottom-nav{
  background:rgba(255,255,255,.92) !important;
  border:1px solid rgba(168,85,247,.20) !important;
  box-shadow:0 16px 46px rgba(139,92,246,.14) !important;
}
.bottom-nav button,
.bottom-nav-btn{
  background:#FFFFFF !important;
  color:var(--violet-deep) !important;
}
.bottom-nav button.active,
.bottom-nav-btn.active{
  background:linear-gradient(135deg,var(--violet-light),var(--violet-dark)) !important;
  color:#FFFFFF !important;
}
.drag-over,
.dropzone,
#csv-drop-zone{
  background:#29263A !important;
  border-color:var(--violet-light) !important;
}
.profile-photo,
.avatar,
.event-avatar,
.hero-dog,
.health-profile-icon{
  background:linear-gradient(135deg,var(--violet-light),var(--violet-dark)) !important;
}
::selection{
  background:#DDD6FE;
  color:#F4F1F7;
}

/* === Thème demandé : fond couleur photo (#1F1F1D) + boutons violet pastel === */
:root{
  --photo-bg:#1F1F1D;
  --surface:#272826;
  --surface-soft:rgba(39,40,38,.88);
  --surface-purple:#29263A;
  --violet:#C084FC;
  --violet-light:#E9D5FF;
  --violet-dark:#7C3AED;
  --violet-deep:#D8B4FE;
  --violet-pale:#29263A;
  --bg:#1F1F1D;
  --card:rgba(39,40,38,.88);
  --border:rgba(192,132,252,.42);
  --text:#F4F1F7;
  --muted:#BDB8C7;
  --shadow:0 14px 42px rgba(124,58,237,.22);
}
html,body{background:#1F1F1D!important;color:var(--text)!important;}
body:before{background:
  radial-gradient(circle at 18% 16%,rgba(192,132,252,.22),transparent 36%),
  radial-gradient(circle at 86% 72%,rgba(124,58,237,.18),transparent 38%),
  linear-gradient(135deg,#1F1F1D 0%,#242522 48%,#1F1F1D 100%)!important;}
.header,.top,.site-header{background:rgba(39,40,38,.86)!important;border-color:var(--border)!important;}
.card,.post-card,.event-card,.marketplace-card,.place,.animal-card,.record-card,.guide-card,.stat,main,.hamburger-dropdown,.bottom-nav{background:var(--surface-soft)!important;border-color:var(--border)!important;box-shadow:var(--shadow)!important;}
input,textarea,select,.chip,.btn-secondary,.nav button,.bottom-nav-btn,.hamburger-btn{background:#272826!important;color:var(--text)!important;border-color:var(--border)!important;}
.btn-primary,.nav button.active,.bottom-nav-btn.active,.tabs button.active,.chip.active,.cat-btn.active,.sorties-join-btn,.btn-publish,.publish-btn,.reel-action-btn.active{background:linear-gradient(135deg,#E9D5FF 0%,#C084FC 48%,#7C3AED 100%)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 10px 28px rgba(192,132,252,.28)!important;}
h1,h2,h3,.logo strong,.brand strong,.place b,.event-badge,.marketplace-price,.marketplace-seller h4,.entry-head h3,.stat strong,a{color:var(--violet-deep)!important;}
.logo,.brand,.hamburger-btn span,.hamburger-item:hover{color:var(--violet)!important;}
.hamburger-btn span{background:var(--violet)!important;}
.hamburger-item:hover,.drag-over,.notice,.marketplace-pay-notice,.marketplace-payment-inline,.marketplace-chat,.rating-form,.cookie-banner-options,.event-badge,.meta span,.badges span{background:var(--surface-purple)!important;border-color:var(--border)!important;color:var(--violet-deep)!important;}
button:hover,.btn:hover,.bottom-nav-btn:hover,.chip:hover{filter:brightness(1.08);}

/* === FINAL OVERRIDE — Buddys dark photo background + pastel violet buttons === */
:root{--photo-bg:#1F1F1D!important;--surface:#272826!important;--surface-soft:rgba(39,40,38,.90)!important;--surface-purple:#29263A!important;--violet:#C084FC!important;--violet-light:#E9D5FF!important;--violet-dark:#7C3AED!important;--violet-deep:#D8B4FE!important;--violet-pale:#29263A!important;--bg:#1F1F1D!important;--card:rgba(39,40,38,.90)!important;--border:rgba(192,132,252,.42)!important;--text:#F4F1F7!important;--muted:#BDB8C7!important;--shadow:0 14px 42px rgba(124,58,237,.22)!important;}
html,body{background:#1F1F1D!important;color:#F4F1F7!important;color-scheme:dark!important;}
body:before{background:radial-gradient(circle at 18% 16%,rgba(192,132,252,.22),transparent 36%),radial-gradient(circle at 86% 72%,rgba(124,58,237,.18),transparent 38%),linear-gradient(135deg,#1F1F1D 0%,#242522 48%,#1F1F1D 100%)!important;}
.header,.top,.site-header{background:rgba(39,40,38,.88)!important;border-color:rgba(192,132,252,.42)!important;box-shadow:0 14px 42px rgba(124,58,237,.14)!important;}
.card,.post-card,.event-card,.public-feed-card,.market-card,.market-item,.marketplace-card,.profile-hero-card,.health-card,.place,.reel-card,.modal,.popup-card,.auth-popup-card,.csv-panel,.geo-card,.buddys-geo-csv-box,.buddys-geo-place,.animal-card,.record-card,.guide-card,.stat,main,.hamburger-dropdown,.bottom-nav{background:rgba(39,40,38,.90)!important;border-color:rgba(192,132,252,.42)!important;color:#F4F1F7!important;box-shadow:0 14px 42px rgba(124,58,237,.20)!important;}
input,textarea,select,.chip,.btn-secondary,.nav button,.bottom-nav button,.bottom-nav-btn,.hamburger-btn,.tabs button,.cat-btn{background:#272826!important;color:#F4F1F7!important;border-color:rgba(192,132,252,.42)!important;color-scheme:dark!important;}
input::placeholder,textarea::placeholder{color:#BDB8C7!important;opacity:.85!important;}select option{background:#272826!important;color:#F4F1F7!important;}
.btn-primary,.nav button.active,.bottom-nav button.active,.bottom-nav-btn.active,.tabs button.active,.chip.active,.cat-btn.active,.csv-quick-upload-btn,.csv-quick-upload-primary,.sorties-join-btn,.sorties-nav-btn.active,#csv-import-btn,.btn-publish,.publish-btn,.reel-action-btn.active{background:linear-gradient(135deg,#E9D5FF 0%,#C084FC 48%,#7C3AED 100%)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 10px 28px rgba(192,132,252,.30)!important;}
h1,h2,h3,.logo strong,.brand strong,#post-form-card h2,#feed-screen #post-form-card h2,.place b,.event-badge,.marketplace-price,.marketplace-seller h4,.entry-head h3,.stat strong,a,.sorties-detail-kicker,.sorties-org-name{color:#D8B4FE!important;}
.hamburger-btn,#hamburger-btn{background:#272826!important;border-color:#C084FC!important;color:#C084FC!important;}.hamburger-btn span,#hamburger-btn span,.account-menu-btn span{background:#C084FC!important;}.hamburger-item{color:#F4F1F7!important}.hamburger-item:hover,.hamburger-dropdown a:hover,.drag-over,.notice,.marketplace-pay-notice,.marketplace-payment-inline,.marketplace-chat,.rating-form,.cookie-banner-options,.event-badge,.meta span,.badges span,.dropzone,#csv-drop-zone{background:#29263A!important;border-color:rgba(192,132,252,.42)!important;color:#D8B4FE!important;}
.profile-photo,.avatar,.event-avatar,.hero-dog,.health-profile-icon,.logo span{background:linear-gradient(135deg,#E9D5FF 0%,#C084FC 48%,#7C3AED 100%)!important;color:white!important;}
.france-map-shape{background:radial-gradient(circle at 46% 35%,rgba(192,132,252,.28),transparent 28%),linear-gradient(145deg,#1F1F1D 0%,#29263A 45%,#C084FC 72%,#7C3AED 100%)!important;box-shadow:inset 0 0 0 4px rgba(192,132,252,.22),0 18px 40px rgba(124,58,237,.20)!important;}
button:hover,.btn:hover,.bottom-nav-btn:hover,.chip:hover{filter:brightness(1.08)!important;}
::selection{background:#C084FC!important;color:#1F1F1D!important;}

/* === Correctif menu hamburger — Connexion / Inscription en violet pastel === */
#hamburger-dropdown .hamburger-item,
#hamburger-dropdown .hamburger-item:visited,
#hamburger-dropdown .hamburger-dropdown a,
.hamburger-dropdown .hamburger-item,
.hamburger-dropdown a{
  color:#D8B4FE !important;
}
#hamburger-dropdown .hamburger-item:hover,
.hamburger-dropdown .hamburger-item:hover,
.hamburger-dropdown a:hover{
  color:#E9D5FF !important;
  background:#29263A !important;
}


/* ===== Buddys switch clair/dark global ===== */

    /* Switch clair / dark Buddys — boutons placés à gauche du menu hamburger */
    html[data-buddys-theme="light"]{
      --violet:#A855F7!important;
      --violet-light:#E9D5FF!important;
      --violet-dark:#7C3AED!important;
      --violet-deep:#8B5CF6!important;
      --violet-pale:#F3ECFF!important;
      --bg:#FBF8FF!important;
      --card:rgba(255,255,255,.94)!important;
      --border:rgba(168,85,247,.28)!important;
      --text:#2D2436!important;
      --muted:#756A82!important;
      --shadow:0 16px 44px rgba(124,58,237,.12)!important;
      color-scheme:light;
    }
    html[data-buddys-theme="dark"]{
      --violet:#C084FC!important;
      --violet-light:#E9D5FF!important;
      --violet-dark:#7C3AED!important;
      --violet-deep:#D8B4FE!important;
      --violet-pale:#29263A!important;
      --bg:#1F1F1D!important;
      --card:rgba(39,40,38,.90)!important;
      --border:rgba(192,132,252,.42)!important;
      --text:#F4F1F7!important;
      --muted:#BDB8C7!important;
      --shadow:0 14px 42px rgba(124,58,237,.22)!important;
      color-scheme:dark;
    }

    html[data-buddys-theme="light"],
    html[data-buddys-theme="light"] body{
      background:#FBF8FF!important;
      color:var(--text)!important;
    }
    html[data-buddys-theme="light"] body{
      background:
        radial-gradient(circle at 18% 18%, rgba(233,213,255,.55), transparent 34%),
        radial-gradient(circle at 88% 74%, rgba(192,132,252,.20), transparent 40%),
        linear-gradient(135deg,#FFFFFF 0%,#FBF8FF 44%,#F2EAFF 100%)!important;
    }
    html[data-buddys-theme="dark"],
    html[data-buddys-theme="dark"] body{
      background:#1F1F1D!important;
      color:var(--text)!important;
    }
    html[data-buddys-theme="dark"] body{
      background:
        radial-gradient(circle at 16% 18%, rgba(192,132,252,.20), transparent 34%),
        radial-gradient(circle at 86% 72%, rgba(124,58,237,.18), transparent 38%),
        linear-gradient(135deg,#1F1F1D 0%,#242522 50%,#1F1F1D 100%)!important;
    }
    html[data-buddys-theme] body:before{ pointer-events:none; }
    html[data-buddys-theme="light"] body:before{
      background:
        radial-gradient(circle at 18% 18%,rgba(233,213,255,.50),transparent 35%),
        radial-gradient(circle at 84% 74%,rgba(168,85,247,.16),transparent 38%),
        linear-gradient(135deg,#FFFFFF,#F4EDFF)!important;
    }
    html[data-buddys-theme="dark"] body:before{
      background:
        radial-gradient(circle at 18% 18%,rgba(192,132,252,.22),transparent 35%),
        radial-gradient(circle at 85% 70%,rgba(124,58,237,.18),transparent 38%),
        linear-gradient(135deg,#1F1F1D,#272826)!important;
    }

    html[data-buddys-theme="light"] .header,
    html[data-buddys-theme="light"] header,
    html[data-buddys-theme="light"] .top{
      background:rgba(255,255,255,.86)!important;
      border-color:rgba(168,85,247,.18)!important;
      color:var(--text)!important;
      box-shadow:0 10px 34px rgba(124,58,237,.08)!important;
      backdrop-filter:blur(22px)!important;
    }
    html[data-buddys-theme="dark"] .header,
    html[data-buddys-theme="dark"] header,
    html[data-buddys-theme="dark"] .top{
      background:rgba(39,40,38,.88)!important;
      border-color:var(--border)!important;
      color:var(--text)!important;
      box-shadow:0 12px 36px rgba(0,0,0,.22)!important;
      backdrop-filter:blur(22px)!important;
    }

    html[data-buddys-theme] .logo strong,
    html[data-buddys-theme] .brand,
    html[data-buddys-theme] h1,
    html[data-buddys-theme] h2,
    html[data-buddys-theme] h3,
    html[data-buddys-theme] a,
    html[data-buddys-theme] .stat strong{
      color:var(--violet-deep)!important;
    }
    html[data-buddys-theme] .logo span,
    html[data-buddys-theme] .brand span,
    html[data-buddys-theme] .btn-primary,
    html[data-buddys-theme] .nav button.active,
    html[data-buddys-theme] .bottom-nav-btn.active,
    html[data-buddys-theme] .cat-btn.active,
    html[data-buddys-theme] #publish-post-btn,
    html[data-buddys-theme] #post-submit,
    html[data-buddys-theme] button[type="submit"]{
      background:linear-gradient(135deg,var(--violet-light) 0%, var(--violet) 48%, var(--violet-dark) 100%)!important;
      color:#fff!important;
      border-color:transparent!important;
      box-shadow:0 10px 25px rgba(124,58,237,.25)!important;
    }
    html[data-buddys-theme="light"] .card,
    html[data-buddys-theme="light"] main,
    html[data-buddys-theme="light"] .box,
    html[data-buddys-theme="light"] .input-panel,
    html[data-buddys-theme="light"] .animal-card,
    html[data-buddys-theme="light"] .record-card,
    html[data-buddys-theme="light"] .guide-card,
    html[data-buddys-theme="light"] .stat,
    html[data-buddys-theme="light"] .bottom-nav{
      background:rgba(255,255,255,.92)!important;
      color:var(--text)!important;
      border-color:var(--border)!important;
      box-shadow:var(--shadow)!important;
    }
    html[data-buddys-theme="dark"] .card,
    html[data-buddys-theme="dark"] main,
    html[data-buddys-theme="dark"] .box,
    html[data-buddys-theme="dark"] .input-panel,
    html[data-buddys-theme="dark"] .animal-card,
    html[data-buddys-theme="dark"] .record-card,
    html[data-buddys-theme="dark"] .guide-card,
    html[data-buddys-theme="dark"] .stat,
    html[data-buddys-theme="dark"] .bottom-nav{
      background:var(--card)!important;
      color:var(--text)!important;
      border-color:var(--border)!important;
      box-shadow:var(--shadow)!important;
    }
    html[data-buddys-theme="light"] input,
    html[data-buddys-theme="light"] select,
    html[data-buddys-theme="light"] textarea,
    html[data-buddys-theme="light"] .btn-secondary,
    html[data-buddys-theme="light"] .cat-btn,
    html[data-buddys-theme="light"] .badges span,
    html[data-buddys-theme="light"] .meta span,
    html[data-buddys-theme="light"] .bottom-nav-btn{
      background:#FFFFFF!important;
      color:var(--text)!important;
      border-color:var(--border)!important;
    }
    html[data-buddys-theme="dark"] input,
    html[data-buddys-theme="dark"] select,
    html[data-buddys-theme="dark"] textarea,
    html[data-buddys-theme="dark"] .btn-secondary,
    html[data-buddys-theme="dark"] .cat-btn,
    html[data-buddys-theme="dark"] .badges span,
    html[data-buddys-theme="dark"] .meta span,
    html[data-buddys-theme="dark"] .bottom-nav-btn{
      background:#272826!important;
      color:var(--text)!important;
      border-color:var(--border)!important;
    }
    html[data-buddys-theme] input:focus,
    html[data-buddys-theme] select:focus,
    html[data-buddys-theme] textarea:focus{
      border-color:var(--violet)!important;
      box-shadow:0 0 0 4px rgba(168,85,247,.18)!important;
    }
    html[data-buddys-theme] input::placeholder,
    html[data-buddys-theme] textarea::placeholder{
      color:var(--muted)!important;
      opacity:.95!important;
    }

    .header-actions,
    .top-actions{
      display:flex!important;
      align-items:center!important;
      justify-content:flex-end!important;
      gap:10px!important;
      flex-wrap:nowrap!important;
    }
    .buddys-theme-switch{
      display:flex!important;
      align-items:center!important;
      gap:4px!important;
      padding:4px!important;
      border:1px solid var(--border)!important;
      border-radius:999px!important;
      background:rgba(255,255,255,.08)!important;
      box-shadow:0 8px 22px rgba(124,58,237,.12)!important;
      white-space:nowrap!important;
    }
    html[data-buddys-theme="light"] .buddys-theme-switch{
      background:rgba(255,255,255,.84)!important;
    }
    html[data-buddys-theme="dark"] .buddys-theme-switch{
      background:rgba(39,40,38,.92)!important;
    }
    .buddys-theme-btn{
      min-width:68px!important;
      height:34px!important;
      padding:7px 11px!important;
      border-radius:999px!important;
      border:1px solid transparent!important;
      background:transparent!important;
      color:var(--violet-deep)!important;
      font:inherit!important;
      font-size:13px!important;
      font-weight:900!important;
      line-height:1!important;
      cursor:pointer!important;
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      gap:5px!important;
      transition:transform .15s ease, box-shadow .15s ease, background .15s ease!important;
    }
    .buddys-theme-btn:hover{
      transform:translateY(-1px)!important;
      box-shadow:0 8px 18px rgba(124,58,237,.18)!important;
    }
    html[data-buddys-theme="light"] .buddys-theme-btn[data-theme-choice="light"],
    html[data-buddys-theme="dark"] .buddys-theme-btn[data-theme-choice="dark"]{
      background:linear-gradient(135deg,var(--violet-light) 0%, var(--violet) 52%, var(--violet-dark) 100%)!important;
      color:#FFFFFF!important;
      border-color:transparent!important;
    }
    .hamburger-btn{
      background:transparent!important;
      border:2px solid var(--violet)!important;
    }
    .hamburger-btn span{
      background:var(--violet)!important;
    }
    .hamburger-dropdown{
      background:var(--card)!important;
      border:1px solid var(--border)!important;
    }
    .hamburger-dropdown .hamburger-item,
    #hamburger-dropdown .hamburger-item,
    .hamburger-dropdown a{
      color:var(--violet-deep)!important;
    }
    .hamburger-dropdown .hamburger-item:hover,
    #hamburger-dropdown .hamburger-item:hover,
    .hamburger-dropdown a:hover{
      color:var(--violet-light)!important;
      background:rgba(168,85,247,.16)!important;
    }
    @media (max-width:640px){
      .header-inner{gap:8px!important;}
      .buddys-theme-switch{gap:3px!important;padding:3px!important;}
      .buddys-theme-btn{min-width:auto!important;width:38px!important;padding:7px 8px!important;font-size:0!important;}
      .buddys-theme-btn[data-theme-choice="light"]::before{content:"☀️";font-size:14px!important;}
      .buddys-theme-btn[data-theme-choice="dark"]::before{content:"🌙";font-size:14px!important;}
    }

/* ===== Correctif mode clair : sorties + paiement hors plateforme ===== */
html[data-buddys-theme="light"] #sorties-screen .sorties-table-card,
html[data-buddys-theme="light"] #sorties-screen .sorties-table,
html[data-buddys-theme="light"] #sorties-screen .sorties-table tbody,
html[data-buddys-theme="light"] #sorties-screen .buddys-sorties-table,
html[data-buddys-theme="light"] #sorties-screen .sortie-row,
html[data-buddys-theme="light"] #sorties-screen .sorties-row,
html[data-buddys-theme="light"] #sorties-screen .preloaded-sortie,
html[data-buddys-theme="light"] #sorties-screen .sortie-row td,
html[data-buddys-theme="light"] #sorties-screen .sorties-row td,
html[data-buddys-theme="light"] #sorties-screen .preloaded-sortie td,
html[data-buddys-theme="light"] .buddys-sorties-table td{
  background:#FFFFFF!important;
  color:#111111!important;
  border-color:rgba(168,85,247,.24)!important;
}
html[data-buddys-theme="light"] #sorties-screen .sortie-row:hover,
html[data-buddys-theme="light"] #sorties-screen .sorties-row:hover,
html[data-buddys-theme="light"] #sorties-screen .sortie-row:hover td,
html[data-buddys-theme="light"] #sorties-screen .sorties-row:hover td,
html[data-buddys-theme="light"] .buddys-sorties-table tr:hover td{
  background:#FAF7FF!important;
}
html[data-buddys-theme="light"] #sorties-screen .sorties-row.sorties-mine,
html[data-buddys-theme="light"] #sorties-screen .sorties-row.sorties-joined,
html[data-buddys-theme="light"] #sorties-screen .sorties-row.sorties-mine td,
html[data-buddys-theme="light"] #sorties-screen .sorties-row.sorties-joined td{
  background:#FFFFFF!important;
}
html[data-buddys-theme="light"] #sorties-screen .sorties-month-row td{
  background:#F3ECFF!important;
  color:#8B5CF6!important;
  border-color:rgba(168,85,247,.32)!important;
}
html[data-buddys-theme="light"] #sorties-screen .sorties-day,
html[data-buddys-theme="light"] #sorties-screen .sorties-title-cell,
html[data-buddys-theme="light"] #sorties-screen .sorties-count,
html[data-buddys-theme="light"] #sorties-screen .sorties-organizer{
  background:#FFFFFF!important;
  color:#111111!important;
}
html[data-buddys-theme="light"] #sorties-screen .sortie-row strong,
html[data-buddys-theme="light"] #sorties-screen .preloaded-sortie strong,
html[data-buddys-theme="light"] #sorties-screen .sorties-name,
html[data-buddys-theme="light"] #sorties-screen .sorties-org-name,
html[data-buddys-theme="light"] #sorties-screen .sorties-day,
html[data-buddys-theme="light"] #sorties-screen .sorties-count-num,
html[data-buddys-theme="light"] .buddys-sorties-table td strong{
  color:#8B5CF6!important;
}
html[data-buddys-theme="light"] #sorties-screen .sortie-desc,
html[data-buddys-theme="light"] #sorties-screen .sortie-row small,
html[data-buddys-theme="light"] #sorties-screen .preloaded-sortie small,
html[data-buddys-theme="light"] #sorties-screen .sorties-place,
html[data-buddys-theme="light"] #sorties-screen .sorties-detail-desc,
html[data-buddys-theme="light"] #sorties-screen .sorties-detail-meta,
html[data-buddys-theme="light"] #sorties-screen .sorties-detail-organizer{
  color:#111111!important;
}
html[data-buddys-theme="light"] #sorties-screen .sorties-time{
  background:#F3ECFF!important;
  color:#8B5CF6!important;
  border:1px solid rgba(168,85,247,.22)!important;
}
html[data-buddys-theme="light"] #sorties-screen .sorties-table thead th,
html[data-buddys-theme="light"] .buddys-sorties-table th{
  background:linear-gradient(135deg,#E9D5FF 0%,#C084FC 52%,#7C3AED 100%)!important;
  color:#FFFFFF!important;
}
html[data-buddys-theme="light"] .marketplace-pay-notice,
html[data-buddys-theme="light"] .marketplace-payment-inline,
html[data-buddys-theme="light"] .payment-box,
html[data-buddys-theme="light"] .pay-notice,
html[data-buddys-theme="light"] [class*="payment"]{
  background:#FFFFFF!important;
  color:#111111!important;
  border:1px solid rgba(168,85,247,.28)!important;
  box-shadow:0 12px 30px rgba(124,58,237,.10)!important;
}
html[data-buddys-theme="light"] .marketplace-pay-notice strong,
html[data-buddys-theme="light"] .marketplace-payment-inline b,
html[data-buddys-theme="light"] .marketplace-payment-inline strong,
html[data-buddys-theme="light"] .payment-box strong,
html[data-buddys-theme="light"] .pay-notice strong{
  color:#8B5CF6!important;
}
html[data-buddys-theme="light"] .marketplace-pay-notice p,
html[data-buddys-theme="light"] .marketplace-payment-inline,
html[data-buddys-theme="light"] .payment-box p,
html[data-buddys-theme="light"] .pay-notice p{
  color:#111111!important;
}



/* ===== Buddys 2026-07-03 : mode clair carte/menu/sorties proches/popup ===== */
html[data-buddys-theme="light"] .hamburger-btn,
html[data-buddys-theme="light"] #hamburger-btn{background:#fff!important;color:#8B5CF6!important;border-color:rgba(168,85,247,.38)!important;box-shadow:0 10px 26px rgba(124,58,237,.10)!important}
html[data-buddys-theme="light"] .hamburger-btn span,
html[data-buddys-theme="light"] #hamburger-btn span{background:#8B5CF6!important}
html[data-buddys-theme="light"] .hamburger-dropdown,
html[data-buddys-theme="light"] #hamburger-dropdown{background:#fff!important;color:#111!important;border:1px solid rgba(168,85,247,.24)!important;box-shadow:0 16px 40px rgba(45,36,54,.14)!important}
html[data-buddys-theme="light"] .hamburger-dropdown .hamburger-item,
html[data-buddys-theme="light"] #hamburger-dropdown .hamburger-item,
html[data-buddys-theme="light"] .hamburger-dropdown a{background:#fff!important;color:#8B5CF6!important;border-color:rgba(168,85,247,.14)!important}
html[data-buddys-theme="light"] .hamburger-dropdown .hamburger-item:hover,
html[data-buddys-theme="light"] #hamburger-dropdown .hamburger-item:hover,
html[data-buddys-theme="light"] .hamburger-dropdown a:hover{background:#F7F1FF!important;color:#7C3AED!important}
html[data-buddys-theme="light"] #map-screen .geoloc-hero-card,
html[data-buddys-theme="light"] #map-screen .geo-main-search,
html[data-buddys-theme="light"] #map-screen .geo-category-grid,
html[data-buddys-theme="light"] #map-screen .geo-zoo-csv-actions,
html[data-buddys-theme="light"] #map-screen .animal-results-panel,
html[data-buddys-theme="light"] #map-screen #map-events,
html[data-buddys-theme="light"] #map-screen .event-list,
html[data-buddys-theme="light"] #map-screen .animal-results-head,
html[data-buddys-theme="light"] #map-screen .buddys-nearby-title-wrap,
html[data-buddys-theme="light"] #map-screen #csv-quick-upload,
html[data-buddys-theme="light"] #map-screen #csv-import-module{background:#fff!important;color:#111!important;border-color:rgba(168,85,247,.24)!important;box-shadow:0 12px 30px rgba(124,58,237,.08)!important}
html[data-buddys-theme="light"] #map-screen #geo-msg,
html[data-buddys-theme="light"] #map-screen .notice.show,
html[data-buddys-theme="light"] #map-screen .notice{background:#fff!important;color:#111!important;border:1px solid rgba(168,85,247,.24)!important;box-shadow:0 10px 24px rgba(124,58,237,.08)!important}
html[data-buddys-theme="light"] #map-screen .geo-category-grid label,
html[data-buddys-theme="light"] #map-screen .geo-main-search .field,
html[data-buddys-theme="light"] #map-screen .place,
html[data-buddys-theme="light"] #map-screen .event-card,
html[data-buddys-theme="light"] #map-screen #places>div,
html[data-buddys-theme="light"] #map-screen .animal-places>div{background:#fff!important;color:#111!important;border:1px solid rgba(168,85,247,.22)!important;box-shadow:0 10px 24px rgba(124,58,237,.07)!important}
.buddys-map-create-row{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;margin:12px 0 10px!important}.buddys-map-plus-btn{width:46px!important;height:46px!important;border-radius:999px!important;border:0!important;cursor:pointer!important;font-size:25px!important;font-weight:900!important;background:linear-gradient(135deg,#E9D5FF 0%,#C084FC 52%,#7C3AED 100%)!important;color:#fff!important;box-shadow:0 14px 30px rgba(124,58,237,.28)!important}.buddys-map-plus-label{font-weight:800!important;color:#8B5CF6!important}.buddys-sortie-popup{position:fixed!important;inset:0!important;display:none!important;align-items:center!important;justify-content:center!important;padding:18px!important;background:rgba(18,14,24,.58)!important;z-index:999999!important}.buddys-sortie-popup.show{display:flex!important}.buddys-sortie-popup-card{width:min(560px,100%)!important;max-height:92vh!important;overflow:auto!important;border-radius:24px!important;padding:20px!important;background:#272826!important;color:#F4F1F7!important;border:1px solid rgba(192,132,252,.38)!important;box-shadow:0 30px 80px rgba(0,0,0,.36)!important}html[data-buddys-theme="light"] .buddys-sortie-popup-card{background:#fff!important;color:#111!important;border-color:rgba(168,85,247,.24)!important}.buddys-city-sorties-banner{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:0 0 14px!important;padding:12px 14px!important;border-radius:16px!important;background:#fff!important;color:#111!important;border:1px solid rgba(168,85,247,.24)!important;box-shadow:0 10px 24px rgba(124,58,237,.08)!important}.buddys-city-sorties-banner strong{color:#8B5CF6!important}.buddys-city-sorties-reset{border:1px solid rgba(168,85,247,.28)!important;background:#F7F1FF!important;color:#8B5CF6!important;border-radius:999px!important;padding:8px 12px!important;cursor:pointer!important;font-weight:800!important}


/* === Buddys : bouton + flottant dans Sorties === */
.buddys-sorties-floating-plus{
  position:fixed!important;
  top:50%!important;
  right:max(18px, env(safe-area-inset-right))!important;
  transform:translateY(-50%)!important;
  width:62px!important;
  height:62px!important;
  border-radius:999px!important;
  border:0!important;
  display:none!important;
  align-items:center!important;
  justify-content:center!important;
  z-index:2147483600!important;
  cursor:pointer!important;
  font-size:38px!important;
  line-height:1!important;
  font-weight:900!important;
  color:#FFFFFF!important;
  background:linear-gradient(135deg,#E9D5FF 0%,#C084FC 52%,#7C3AED 100%)!important;
  box-shadow:0 18px 42px rgba(124,58,237,.38)!important;
  -webkit-tap-highlight-color:transparent!important;
}
body.buddys-sorties-active .buddys-sorties-floating-plus{
  display:flex!important;
}
.buddys-sorties-floating-plus:hover{
  transform:translateY(-50%) scale(1.06)!important;
  box-shadow:0 22px 50px rgba(124,58,237,.48)!important;
}
.buddys-sorties-floating-plus:active{
  transform:translateY(-50%) scale(.96)!important;
}
html[data-buddys-theme="light"] .buddys-sorties-floating-plus{
  color:#FFFFFF!important;
  box-shadow:0 18px 42px rgba(168,85,247,.32)!important;
}
.buddys-sortie-popup{
  z-index:2147483647!important;
}
body.buddys-sorties-active .hamburger-dropdown,
body.buddys-sorties-active .dropdown,
body.buddys-sorties-active .menu-dropdown,
body.buddys-sorties-active .select-dropdown{
  z-index:99999!important;
}
@media (max-width:640px){
  .buddys-sorties-floating-plus{
    right:max(12px, env(safe-area-inset-right))!important;
    width:56px!important;
    height:56px!important;
    font-size:34px!important;
  }
}


/* ===== Buddys : animaux proches + blocage Sorties sans compte ===== */
.member-animals-filter{
  margin-top:12px;
  padding:12px 14px;
  border:1.5px solid rgba(192,132,252,.35);
  border-radius:14px;
  background:rgba(192,132,252,.10);
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.member-animals-filter label{font-weight:800;color:var(--text,#1f1f1f)}
.member-animals-filter select{
  min-width:210px;
  border:1.5px solid rgba(192,132,252,.45);
  border-radius:12px;
  padding:10px 12px;
  background:var(--card,#fff);
  color:var(--text,#1f1f1f);
  font-weight:700;
}
.member-animals-filter span{font-size:12px;color:var(--muted,#777)}
.member-animal-card{
  border:1.5px solid rgba(192,132,252,.45)!important;
  background:linear-gradient(135deg, rgba(192,132,252,.16), rgba(216,180,254,.08))!important;
}
.member-animal-photo{
  width:46px;height:46px;border-radius:50%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:#F3E8FF;font-size:24px;flex:0 0 auto;
  border:2px solid rgba(192,132,252,.45);
}
.member-animal-photo img{width:100%;height:100%;object-fit:cover}
.member-animal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.member-animal-actions button{border:none;cursor:pointer}
.auth-required-highlight{
  background:rgba(192,132,252,.14)!important;
  border-radius:12px;
  padding:10px 12px;
  color:#8B5CF6!important;
  font-weight:800!important;
}
.public-profile-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:14px;
}
.public-profile-panel{
  border:1px solid rgba(192,132,252,.30);
  border-radius:16px;
  padding:14px;
  background:rgba(255,255,255,.05);
}
.public-profile-panel h3{margin-top:0;color:#8B5CF6}
.public-profile-photo.big{width:108px;height:108px;font-size:46px;margin:auto}
@media(max-width:760px){.public-profile-split{grid-template-columns:1fr}.member-animals-filter{align-items:stretch}.member-animals-filter select{width:100%}}
html[data-buddys-theme="light"] .member-animals-filter{background:#fff;color:#1f1f1f}
html[data-buddys-theme="light"] .member-animal-card{background:#fff!important}


/* ===== Buddys : suppression de l'ancienne grande carte France du haut ===== */
#buddys-leaflet-france-card,
#buddys-leaflet-france-map {
  display: none !important;
}

/* === Marketplace : publier une annonce en pop-up flottante === */
#marketplace-screen .marketplace-layout{
  grid-template-columns:1fr !important;
}
#marketplace-screen .marketplace-form-card{
  display:none !important;
}
#marketplace-screen .marketplace-form-card.marketplace-popup-open{
  display:block !important;
  position:fixed !important;
  top:74px !important;
  right:18px !important;
  bottom:auto !important;
  width:min(440px, calc(100vw - 28px)) !important;
  max-height:calc(100vh - 112px) !important;
  overflow:auto !important;
  z-index:12050 !important;
  border-radius:24px !important;
  box-shadow:0 24px 80px rgba(80,30,160,.35) !important;
  padding:18px !important;
}
.marketplace-popup-backdrop{
  display:none;
  position:fixed;
  inset:0;
  z-index:12040;
  background:rgba(20,12,35,.38);
  backdrop-filter:blur(4px);
}
.marketplace-popup-backdrop.show{
  display:block;
}
.marketplace-popup-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.marketplace-popup-head h2{
  margin:0;
}
.marketplace-popup-close{
  width:42px;
  height:42px;
  border-radius:16px;
  border:1px solid var(--border);
  background:var(--surface-soft);
  color:var(--violet-deep);
  font-size:24px;
  font-weight:900;
  cursor:pointer;
  display:grid;
  place-items:center;
  line-height:1;
}
.marketplace-popup-close:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
}
.marketplace-floating-plus{
  position:fixed;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  z-index:12030;
  width:64px;
  height:64px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.75);
  background:linear-gradient(135deg,#E9D5FF 0%,#C084FC 45%,#7C3AED 100%);
  color:#fff;
  font-size:42px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  box-shadow:0 16px 46px rgba(124,58,237,.38);
  display:grid;
  place-items:center;
}
.marketplace-floating-plus:hover{
  transform:translateY(-50%) scale(1.05);
}
body.marketplace-popup-lock{
  overflow:hidden;
}
@media(max-width:760px){
  .marketplace-floating-plus{
    right:14px;
    top:auto;
    bottom:104px;
    width:58px;
    height:58px;
    font-size:38px;
  }
  #marketplace-screen .marketplace-form-card.marketplace-popup-open{
    top:68px !important;
    left:10px !important;
    right:10px !important;
    width:auto !important;
    max-height:calc(100vh - 150px) !important;
    padding:16px !important;
  }
}

/* Plages pour animaux */
.animal-place-card .animal-place-links span.muted{display:inline-flex;align-items:center;gap:4px}

/* ===== Correctif Buddys : barre du menu tout en bas =====
   Déplace uniquement la barre du menu à la position la plus basse possible
   dans la zone du site, tout en gardant la barre au-dessus du contenu. */
.bottom-nav{
  position:fixed !important;
  left:50% !important;
  right:auto !important;
  bottom:0 !important;
  transform:translateX(-50%) !important;
  z-index:12020 !important;
  width:min(720px, calc(100vw - 20px)) !important;
  margin:0 !important;
}
@media(max-width:760px){
  .bottom-nav{
    bottom:0 !important;
    width:calc(100vw - 16px) !important;
  }
}

/* Import CSV du fil d'actualité — visible seulement pour kribeirozilio@gmail.com */
.feed-csv-import-card{
  margin-top:14px;
  padding:14px;
  border:1px dashed var(--border);
  border-radius:18px;
  background:rgba(199,139,255,.08);
}
.feed-csv-import-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.admin-only-badge{font-size:12px;padding:4px 9px;border-radius:999px;background:var(--violet-light);color:var(--violet-deep);font-weight:700}
.feed-csv-row{margin-top:8px}


/* Buddys - vidéos dans les posts démo du fil d'actualité */
.post-videos{display:grid;gap:10px;margin-top:12px}
.post-videos video{width:100%;max-height:460px;border-radius:18px;background:#111;object-fit:cover}

/* Correctif mobile fil d'actualité : pagination + rendu progressif pour éviter l'écran blanc. */
.feed-more-trigger{
  overflow-anchor:none;
  scroll-margin-top:84px;
  width:min(100%,760px);
  margin:14px auto 88px;
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:44px;
}
.feed-more-trigger.hidden{display:none!important;}
.feed-more-btn{width:100%;max-width:420px;}
.feed-loading{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:var(--muted);
  font-weight:800;
  padding:12px 14px;
}
.feed-loading span{
  width:18px;
  height:18px;
  border:3px solid rgba(192,132,252,.28);
  border-top-color:#C084FC;
  border-radius:50%;
  animation:csvSpin .75s linear infinite;
}
.feed-end{text-align:center;margin:0;}
.post-card{
  overflow-anchor:none;
  scroll-margin-top:84px;
  content-visibility:auto;
  contain-intrinsic-size: 1px 760px;
}
.post-card img,
.post-card video{
  max-width:100%;
}
@media(max-width:700px){
  .post-list{overflow-anchor:none;}
  .feed-more-trigger{margin-bottom:104px;padding:0 12px;}
}

/* Correctif Buddys : ancre invisible du bloc ajouté par "Voir plus".
   Elle évite que le navigateur mobile recolle automatiquement au bouton. */
.feed-page-start{
  display:block;
  width:100%;
  height:1px;
  margin:0;
  padding:0;
  overflow:hidden;
  overflow-anchor:none;
  scroll-margin-top:92px;
}
.carousel:empty{display:none!important;}
