/* /styles.css */
/* =========================
ENGAGEMENT HUB LAYOUT
========================= */

.engagement-hub{

  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;

  margin-top:18px;
}

.hub-header{
  grid-column:1 / -1;
}

.mobile-search-logo img{
  height:47px;
  width:47px;
  border-radius:50%;
  object-fit:cover;
}


.hub-card{

  background:#ffffff;
  border:1px solid #e6e6e6;

  border-radius:12px;

  padding:14px;

  box-shadow:0 2px 6px rgba(0,0,0,0.05);
}

.hub-card h3{

  margin:0 0 10px 0;
  font-size:16px;
  font-weight:600;

}

/* feed items */

.hub-feed-item{

  padding:8px 0;
  border-bottom:1px solid #eee;

}

.hub-feed-item:last-child{
  border-bottom:none;
}

.hub-feed-top{

  display:flex;
  justify-content:space-between;

  font-size:13px;
}

.hub-feed-store{

  font-size:13px;
  font-weight:600;

}

.hub-feed-text{

  font-size:12px;
  color:#666;

}

.week-event-top-actions{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.week-event-menu-wrap{
  flex:0 0 auto;
}

.week-event-menu-wrap .inline-action-menu-btn{
  box-shadow:none;
}


.week-event-menu-wrap .inline-action-menu-panel{
  top:auto;
  bottom:calc(100% + 8px);
}

/* alerts */

.hub-alert{

  padding:8px 10px;
  background:#f7f7f7;
  border-radius:8px;

  font-size:13px;

  margin-bottom:6px;
}

/* forms */

.hub-form-grid{

  display:grid;
  gap:8px;
  margin-bottom:10px;

}

.hub-form-grid input,
.hub-form-grid select,
.hub-form-grid textarea{

  width:100%;
  padding:8px;

  border-radius:8px;
  border:1px solid #ddd;

  font-size:13px;

}

.hub-btn{

  background:#ee5aa6;
  color:white;

  border:none;
  border-radius:8px;

  padding:8px 10px;

  font-weight:600;
  cursor:pointer;

}

.hub-btn:hover{
  background:#e14c97;
}

.hub-link-btn{

  background:none;
  border:none;

  font-size:12px;
  color:#ee5aa6;

  cursor:pointer;
}

/* finds grid */

.find-grid{

  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;

}

.find-card{

  border:1px solid #eee;
  border-radius:10px;

  overflow:hidden;

  background:white;
}

.find-card img{

  width:100%;
  height:120px;

  object-fit:cover;

}

.find-meta{

  padding:8px;

}

/* voting */

.hub-vote-row{

  padding:6px 0;
}

/* stats */

.hub-stat-row{

  display:flex;
  gap:14px;

  margin-bottom:10px;

}

.hub-stat-row div{

  background:#f7f7f7;

  padding:8px;
  border-radius:8px;

  font-size:12px;

}

/* badges */

.hub-badges{

  display:flex;
  flex-wrap:wrap;

  gap:6px;

}

.hub-badge{

  font-size:11px;
  padding:4px 8px;

  border-radius:999px;
  background:#f1f1f1;

}

.hub-badge.earned{
  background:#ee5aa6;
  color:white;
}

/* mobile */

@media(max-width:900px){

  .engagement-hub{

    grid-template-columns:1fr;

  }

  .find-grid{

    grid-template-columns:1fr;

  }

}
/* ============================
   Brand Theme (Thrifters Guide)
   ============================ */
:root{
  --brand-pink: #ee5aa6;
  --brand-pink-ink: #cc3e88;
  --brand-teal: #1fb8b6;
  --brand-sand: #fff7ef;
  --brand-ink: #1b1e26;
  --brand-muted: #6b7280;

  --bg: var(--brand-sand);
  --border: #000000;
  --muted: var(--brand-muted);
  --text: var(--brand-ink);
  --accent: var(--brand-pink);
}

/* Global base */
* { box-sizing: border-box; }
html, body { height: 100%; }

body{
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: "Quicksand", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  padding-bottom: 34px;
}

/* ============================
   Layout
   ============================ */
.app{ display:flex; min-height:100vh; }

/* Sidebar (desktop) */
.sidebar{
  width:360px;
  max-width:100%;
  border-right:1px solid var(--border);
  background:#fff;
  display:flex;
  flex-direction:column;
  height:100vh;
  overflow:hidden;
}

/* Map column (desktop) */
.map{
  flex:1;
  position:relative;
  height:100vh;
  background: radial-gradient(1200px 800px at 30% -10%, #ffeaf4 0%, transparent 60%) no-repeat;
}

/* IMPORTANT: let Leaflet fill the map column (desktop) */
#map{
  height: 100%;
  width: 100%;
}

/* Stacked layout (mobile) */
@media (max-width: 900px){
  .app.stacked{ flex-direction:column; }
  .app.stacked .sidebar{
    width:100%;
    border-right:none;
    border-bottom:1px solid var(--border);
    height:auto;
  }

  /* IMPORTANT: preserve your mobile look (map ~50vh) */
  .app.stacked .map{
    height: 50vh;
  }

  /* keep Leaflet filling whatever height we give it */
  #map{
    height: 100%;
    width: 100%;
  }
}

/* ============================
   Collapsible list / panel
   ============================ */
/* On DESKTOP collapse, hide the list */
.app:not(.stacked) .sidebar.collapsed .panel + .list,
.app:not(.stacked) .sidebar.collapsed .list{ display:none; }

/* On MOBILE (stacked), keep the list visible while collapsed.
   The JS pins a single item, so the list will show just that one. */
.app.stacked .sidebar.collapsed .list{ display:block; }

/* Collapse button */
.collapse-btn{
  display:inline-block;
  margin:0 0 0 12px;
  padding:6px 10px;
  border-radius:10px;
  border:1px solid var(--border);
  background: #fff;
  cursor:pointer;
  font-size:12px;
}

.panel-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:6px;
}

/* ============================
   Panel & form controls
   ============================ */
.panel{
  position:sticky; top:0; z-index:2;
  background:#fff;
  border-bottom:1px solid var(--border);
  padding:16px;
}

.panel h1{
  margin:0 0 8px;
  font-size:22px;
  font-family: "Pacifico", cursive;
  color: var(--brand-pink);
  letter-spacing: 0.2px;
  text-shadow: 0 1px 0 rgba(255,255,255,0.7);
}

.row{ display:flex; gap:8px; margin-bottom:8px; }

input[type="text"], select{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  font-size:14px;
  background:#fff;
}

.muted{ color:var(--muted); font-size:12px; margin:6px 0 0; }

/* Pills */
#categoryPills{
  display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 10px;
}
#categoryPills button{
  padding:7px 12px;
  border-radius:999px;
  border:1px solid #f1d7e6;
  background:#fff;
  cursor:pointer;
  font-size:12px; line-height:1;
}
#categoryPills button:hover{
  border-color: var(--brand-pink);
  box-shadow: 0 0 0 3px rgba(238,90,166,0.12);
}

/* List */
.list{ list-style:none; margin:0; padding:0; }
#list{
  flex:1;
  overflow-y:auto; overflow-x:hidden;
  -webkit-overflow-scrolling:touch;

  /* Approximate one row height for smooth math; tweak if your LI height changes */
  --row-height: 76px;
  transition: max-height 220ms ease;
}

.list li{
  padding:12px 16px;
  border-bottom:1px solid var(--border);
  transition: background 120ms ease;
}
.list li:hover{ background:#fff7fb; }
/* tighten spacing between store name and town/type */

.location-name{
  margin-bottom: 2px !important;
  line-height: .02 !important;
}

.location-meta{
  margin-top: 0 !important;
  line-height: 1.1 !important;
  font-size: 13px !important;
}

/* Actions */
.actions{ display:flex; gap:10px; margin-top:8px; flex-wrap:wrap; }
.actions a{
  font-size:12px;
  text-decoration: underline;
  color: var(--brand-pink-ink);
}
.actions a:hover{
  text-decoration: none;
  filter: saturate(1.1);
}

/* ============================
   Map controls + logo
   ============================ */
.geo-btn, .fit-btn{
  position:absolute;
  top:12px; right:12px;
  z-index:1000;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid var(--border);
  background: #fff;
  box-shadow:0 2px 6px rgba(0,0,0,0.08);
  font-size:12px; cursor:pointer;
}
.fit-btn{ top:52px; }

.geo-btn:hover, .fit-btn:hover{
  border-color: var(--brand-pink);
  box-shadow: 0 0 0 3px rgba(238,90,166,0.12);
}

.map-logo{
  padding:6px;
  background:#fff;
  border-radius:12px;
  box-shadow:0 3px 10px rgba(0,0,0,0.15);
}

/* Pink frame */
.map { position: relative; }
.map-frame {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 300;
  border: 6px solid var(--brand-pink);
}

.map-loader{
  position:absolute;
  inset:0;
  z-index:320;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(255,247,239,0.94);
  backdrop-filter:blur(4px);
  transition:opacity .28s ease, visibility .28s ease;
}

.map-loader.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.map-loader-card{
  min-width:min(100%, 280px);
  max-width:340px;
  text-align:center;
  background:#fff;
  border:1px solid rgba(238,90,166,0.18);
  border-radius:22px;
  padding:22px 20px;
  box-shadow:0 16px 40px rgba(27,30,38,0.12);
}

.map-loader-spinner{
  width:46px;
  height:46px;
  margin:0 auto 14px;
  border-radius:999px;
  border:4px solid rgba(238,90,166,0.18);
  border-top-color:var(--brand-pink);
  animation:mapLoaderSpin .9s linear infinite;
}

.map-loader-title{
  font-size:18px;
  font-weight:800;
  color:#1b1e26;
}

.map-loader-text{
  margin-top:6px;
  font-size:14px;
  line-height:1.45;
  color:#6b7280;
}

@keyframes mapLoaderSpin{
  to{ transform:rotate(360deg); }
}

/* === Collapsed list viewport (shows ~2 items, still scrollable) === */
#list.list--collapsed {
  max-height: calc(var(--row-height) * 2 + 2px);
  overflow-y: auto;
}

/* Override earlier rule that hid the list entirely on desktop when collapsed */
.app:not(.stacked) .sidebar.collapsed .list{ display:block; }
.app:not(.stacked) .sidebar.collapsed #list{ display:block; }

/* === Tighter spacing between countShown and filter options === */
.panel p.muted {
  margin-bottom: 4px; /* default was ~8px → 50% tighter */
  line-height: 1.1;
}

#filtersToggle {
  margin-top: 4px; /* pulls the filter button closer to the count */
}
/* ============================
   News Ticker (seamless, mobile-safe)
   ============================ */

.news-ticker{
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 34px;
  background: #FACACC;
  color: #000000;
  overflow: hidden;
  z-index: 2000;
  display: flex;
  align-items: center;
  font-size: 13px;
}

.news-track{
  width: 100%;
  overflow: hidden;
}

/* We animate the TEXT using vw so it always travels fully across any screen */
#newsTickerText{
  display: inline-block;
  white-space: nowrap;
  will-change: transform;

  /* start off-screen right */
  transform: translateX(100vw);

  /* default desktop speed */
  animation-name: tickerScroll;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: 45s;
}

/* end off-screen left */
@keyframes tickerScroll{
  0%   { transform: translateX(100vw); }
  100% { transform: translateX(-100%); }
}

/* Mobile: a bit faster, but still readable */
@media (max-width: 900px){
  #newsTickerText{
    animation-duration: 26s;
  }
}
/* ============================
   Map cluster + list polish
   ============================ */
.store-cluster-icon {
  background: transparent;
  border: 0;
}

.store-cluster-square {
  width: 42px;
  height: 42px;
  background: #0F4A9C;
  color: #fff;
  border: 3px solid #fff;
  border-radius: 8px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 14px;
  line-height: 1;
}

.store-name-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.store-name-left,
.store-name-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.store-number-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: var(--brand-pink);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25);
  flex: 0 0 auto;
}

.store-status-line {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.store-status-text {
  font-size: 12px;
  color: var(--text);
  font-weight: 700;
}

.store-description-wrap {
  margin-bottom: 8px;
}

.store-description {
  line-height: 1.45;
}

.store-location-line {
  margin-bottom: 4px;
}

.desc-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--brand-pink-ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  padding: 0;
  margin-left: 6px;
  text-decoration: underline;
}

.desc-toggle:hover {
  text-decoration: none;
}
/* ============================
   Engagement Hub MVP
   ============================ */
#engagementHub {
  border-bottom: 1px solid var(--border);
  background: #fff8fc;
  max-height: 38vh;
  overflow-y: auto;
}

.engagement-hub {
  padding: 12px 16px 16px;
}

.hub-header h2 {
  margin: 0;
  font-size: 18px;
  color: var(--brand-pink-ink);
}

.hub-header p,
.hub-mini {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--muted);
}

.hub-card {
  background: #fff;
  border: 1px solid #f4d6e7;
  border-radius: 14px;
  padding: 12px;
  margin-top: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.hub-card h3 {
  margin: 0 0 8px;
  font-size: 14px;
}

.hub-inline-actions,
.hub-trip-row,
.hub-stat-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.hub-btn,
.eng-action-btn {
  appearance: none;
  border: 1px solid #f0bfd8;
  background: #fff;
  color: var(--brand-pink-ink);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.hub-link-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--brand-pink-ink);
  text-decoration: underline;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
}

.hub-feed-item,
.hub-town-card,
.hub-alert {
  border-top: 1px solid #f7e3ee;
  padding-top: 8px;
  margin-top: 8px;
}

.hub-feed-item:first-child,
.hub-town-card:first-child,
.hub-alert:first-child {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}

.hub-feed-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 12px;
}

.hub-feed-store {
  font-size: 12px;
  font-weight: 700;
  margin-top: 2px;
}

.hub-feed-text {
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
  line-height: 1.4;
}

.hub-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.hub-badge {
  font-size: 11px;
  padding: 6px 8px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
}

.hub-badge.earned {
  border-color: #7bc87d;
  background: #eef9ee;
}

.hub-stat-row > div {
  min-width: 90px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.hub-stat-row strong {
  font-size: 18px;
}

.hub-stat-row span {
  font-size: 11px;
  color: var(--muted);
}

.hub-form-grid {
  display: grid;
  gap: 8px;
}

.hub-form-grid textarea {
  min-height: 74px;
  resize: vertical;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  font-size: 14px;
  background: #fff;
  font-family: inherit;
}

.find-grid {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.find-card {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 8px;
  align-items: start;
  border-top: 1px solid #f7e3ee;
  padding-top: 8px;
}

.find-card img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid #f1d7e6;
}

.find-meta {
  min-width: 0;
}

.store-highlight {
  font-size: 12px;
  color: var(--brand-pink-ink);
  margin-bottom: 6px;
  line-height: 1.35;
}

@media (max-width: 900px) {
  #engagementHub {
    max-height: 42vh;
  }
}
/* =========================
NEAR ME FILTER BLOCK
========================= */

.nearme-block{
  border:1px solid #e3e3e3;
  border-radius:10px;
  padding:10px;
  background:#fafafa;
}

.nearme-title{
  font-weight:600;
  font-size:13px;
  margin-bottom:6px;
}

.nearme-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:4px;
}

.nearme-btn{
  border:1px solid #ccc;
  background:white;
  padding:4px 8px;
  border-radius:8px;
  font-size:12px;
  cursor:pointer;
}

.nearme-btn:hover{
  background:#f2f2f2;
}

.nearme-clear{
  border:none;
  background:transparent;
  font-size:12px;
  text-decoration:underline;
  cursor:pointer;
}

.nearme-help{
  font-size:11px;
  color:#777;
}


/* =========================
ENGAGEMENT HUB
========================= */

.engagement-hub{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:14px;
}

.hub-card{
  border:1px solid #e5e5e5;
  border-radius:10px;
  padding:10px;
  background:white;
}

.hub-card h3{
  margin:0 0 6px 0;
  font-size:14px;
}

.hub-feed-item{
  border-top:1px solid #eee;
  padding:6px 0;
}

.hub-feed-item:first-child{
  border-top:none;
}

.hub-feed-top{
  display:flex;
  justify-content:space-between;
  font-size:12px;
}

.hub-feed-store{
  font-weight:600;
  font-size:13px;
}

.hub-feed-text{
  font-size:12px;
  color:#555;
}

.hub-mini{
  font-size:11px;
  color:#777;
}

.hub-btn{
  border:1px solid #ccc;
  background:white;
  padding:5px 10px;
  border-radius:8px;
  font-size:12px;
  cursor:pointer;
}

.hub-btn:hover{
  background:#f2f2f2;
}


/* =========================
FIND WALL
========================= */

.find-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}

.find-card{
  border:1px solid #eee;
  border-radius:8px;
  overflow:hidden;
  background:white;
}

.find-card img{
  width:100%;
  display:block;
}

.find-meta{
  padding:6px;
  font-size:12px;
}
/* =========================
MY THRIFTING FLOAT BUTTON
========================= */

#myThriftingBtn{
  position:absolute;
  bottom:18px;
  right:18px;
  z-index:800;

  background:#ee5aa6;
  color:white;

  border:none;
  border-radius:999px;

  padding:10px 16px;
  font-size:13px;
  font-weight:600;

  box-shadow:0 4px 10px rgba(0,0,0,0.25);
  cursor:pointer;

  display:flex;
  align-items:center;
  gap:6px;
}

#myThriftingBtn:hover{
  background:#e24f99;
}

#myThriftingBtn svg{
  width:16px;
  height:16px;
}
/* =========================
APP NAVIGATION BAR
========================= */

#appNavBar{
  position:sticky;
  top:0;
  z-index:1000;

  background:white;
  border-bottom:1px solid #e5e5e5;

  display:flex;
  justify-content:center;
  gap:24px;

  padding:10px 16px;

  font-size:14px;
  font-weight:600;
}

#appNavBar button{
  background:none;
  border:none;
  cursor:pointer;

  padding:6px 10px;
  border-radius:8px;

  font-weight:600;
}

#appNavBar button:hover{
  background:#f4f4f4;
}

#appNavBar button.active{
  color:#ee5aa6;
}

/* mobile spacing */
@media (max-width:900px){

  #appNavBar{
    gap:14px;
    font-size:13px;
  }

}
/* =========================
MOBILE NAV MENU
========================= */

#appNavWrap{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  border-bottom:1px solid #e5e5e5;
}

#appNavInner{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}

#appMenuToggle{
  display:none;
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  background:none;
  border:none;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  padding:4px 8px;
  border-radius:8px;
}

#appMenuToggle:hover{
  background:#f4f4f4;
}

/* desktop nav stays inline */
#appNavBar{
  position:static;
  border-bottom:none;
  width:100%;
}

/* mobile menu behavior */
@media (max-width:900px){

  #appNavInner{
    min-height:52px;
    justify-content:flex-start;
    padding-left:10px;
    padding-right:52px;
  }

  #appMenuToggle{
    display:block;
  }

  #appNavBar{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    padding:10px;
  }

  #appNavBar.mobile-collapsed{
    display:none;
  }

  #appNavBar button{
    width:100%;
    text-align:left;
    padding:10px 12px;
    border:1px solid #eee;
    background:#fff;
  }
}
/* =========================
SECTION DESTINATION POLISH
========================= */

/* make nav jumps land nicely below sticky nav */
#engagementHub,
#eventsFeed,
#findsWall{
  scroll-margin-top: 90px;
}

/* destination feel for section targets */
#eventsFeed,
#findsWall{
  position: relative;
  border-top: 2px solid #f1f1f1;
  padding-top: 14px;
  margin-top: 6px;
}

/* label blocks so This Week and Community feel intentional */
#eventsFeed::before{
  content: "THIS WEEK";
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #fff3f8;
  color: #ee5aa6;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

#findsWall::before{
  content: "COMMUNITY";
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #f7f3ff;
  color: #7a57d1;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
}


/* keep This Week action menus above feed hover states */
.engagement-hub .hub-card{
  position: relative;
  z-index: 1;
}

#eventsFeed{
  overflow: visible !important;
  z-index: 40 !important;
  isolation: isolate;
}

#eventsFeed:hover,
#eventsFeed:focus-within,
#eventsFeed.hub-card:hover,
#eventsFeed .hub-card:hover,
#eventsFeed .hub-card:focus-within,
#eventsFeed .hub-feed-item:hover,
#eventsFeed .hub-feed-item:focus-within{
  transform: none !important;
  z-index: 50 !important;
}

#eventsFeed,
#eventsFeed:hover,
#eventsFeed:focus-within,
#eventsFeed.hub-card:hover,
#eventsFeed .hub-card,
#eventsFeed .hub-card:hover,
#eventsFeed .hub-card:focus-within,
#eventsFeed .hub-feed-item,
#eventsFeed .hub-feed-item:hover,
#eventsFeed .hub-feed-item:focus-within{
  transition: none !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05) !important;
  border-color: #e6e6e6 !important;
}

#eventsFeed .hub-feed-item,
#eventsFeed .hub-feed-top,
#eventsFeed .week-event-top-actions,
#eventsFeed .week-event-menu-wrap{
  position: relative;
}

#eventsFeed .week-event-menu-wrap,
#eventsFeed .week-event-menu-wrap .inline-action-menu-panel{
  z-index: 7000 !important;
}

/* stronger destination card look */
.hub-card{
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.hub-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  border-color: #dcdcdc;
}

/* give event + community anchor areas a little more breathing room */
#eventsFeed .hub-feed-item,
#findsWall .find-card,
#votingSection .hub-vote-row{
  margin-bottom: 6px;
}

/* make My Thrifting feel more like a real app pill */
#myThriftingBtn{
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow: 0 8px 22px rgba(0,0,0,0.22);
}

#myThriftingBtn::before{
  content: "★";
  margin-right: 6px;
  font-size: 12px;
}

/* subtle card separation for dashboard sections */
.engagement-hub .hub-card{
  min-height: 100%;
}

/* tighten mobile so destination sections still feel clean */
@media (max-width: 900px){

  #engagementHub,
  #eventsFeed,
  #findsWall{
    scroll-margin-top: 74px;
  }

  #eventsFeed,
  #findsWall{
    padding-top: 12px;
    margin-top: 4px;
  }

  #myThriftingBtn{
    right: 14px;
    bottom: 14px;
    padding: 11px 16px;
  }
}
.view{
display:none;
height:100%;
width:100%;
}

.view.active{
display:block;
}

.top-nav{
display:flex;
gap:8px;
margin-bottom:10px;
}

.top-nav button{
border:1px solid #ccc;
background:white;
padding:6px 10px;
border-radius:10px;
font-size:12px;
cursor:pointer;
}

.top-nav button:hover{
background:#f2f2f2;
}
/* ============================
   Right-side stage switching
   ============================ */

.stage-nav{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:10px 0 12px;
}

.stage-btn{
  appearance:none;
  border:1px solid #d7d7d7;
  background:#fff;
  border-radius:14px;
  padding:10px 16px;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}

.stage-btn.active{
  border-color: var(--brand-pink);
  color: var(--brand-pink-ink);
  background:#fff7fb;
}

.map{
  position:relative;
  overflow:hidden;
}

.stage-view{
  position:absolute;
  inset:0;
  display:none;
  width:100%;
  height:100%;
}

.stage-view.active{
  display:block;
}

#mapView{
  background:transparent;
}

#mapView #map{
  width:100%;
  height:100%;
}

.panel-view{
  background:#f8f4f8;
  overflow:hidden;
}

.stage-panel-scroll{
  height:100%;
  overflow-y:auto;
  padding:18px;
}

.stage-panel-scroll .engagement-hub{
  margin:0;
}

/* hide old floating thrifting button once stage system is active */
#myThriftingBtn{
  display:none !important;
}

/* hide old top sticky nav if it still exists from previous step */
#appNavWrap,
#appNavBar{
  display:none !important;
}
/* ============================
   Full-page My Thrifting view fix
   ============================ */

#myThriftView{
  height: 100%;
  width: 100%;
  overflow: hidden;
}

#myThriftView .stage-panel-scroll{
  height: 100%;
  overflow-y: auto;
  padding: 18px;
}

#myThriftView #engagementHub{
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  border-bottom: 0 !important;
  background: transparent !important;
}

#myThriftView .engagement-hub{
  min-height: 100%;
  margin: 0;
  padding: 0;
}
/* ============================
   My Thrifting scroll fix only
   ============================ */

#myThriftView{
  overflow: hidden;
}

#myThriftView #engagementHub{
  height: 100% !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 18px 18px 90px !important;
  border-bottom: 0 !important;
  background: transparent !important;
}

#myThriftView #engagementHub .engagement-hub{
  min-height: 100%;
}
/* ============================
   Top navigation above map
   ============================ */

.top-stage-nav{
  position:absolute;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:1000;
  background:rgba(255,255,255,0.95);
  padding:8px 12px;
  border-radius:12px;
  box-shadow:0 3px 10px rgba(0,0,0,0.15);
}

.top-stage-nav .stage-btn{
  border:1px solid #d7d7d7;
  background:#fff;
  border-radius:14px;
  padding:8px 14px;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}

.top-stage-nav .stage-btn.active{
  border-color:#FACACC;
  color:#FACACC;
  background:#fff7fb;
}
.stage-nav{
  display:none !important;
}

.top-stage-nav{
  position:absolute;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:1200;
  background:rgba(255,255,255,0.96);
  padding:8px 12px;
  border-radius:12px;
  box-shadow:0 3px 10px rgba(0,0,0,0.15);
}

.top-stage-nav .stage-btn{
  border:1px solid #d7d7d7;
  background:#fff;
  border-radius:14px;
  padding:8px 14px;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}

.top-stage-nav .stage-btn.active{
  border-color: var(--brand-pink);
  color: var(--brand-pink-ink);
  background:#fff7fb;
}
/* =================================
   Store List Card Upgrade
================================= */

.list{
  padding:12px;
  background:#FCE4EC;
}

.list-item{
  
  background:#ffffff;
  border-radius:14px;
  padding:14px;
  margin-bottom:12px;
  box-shadow:0 2px 6px rgba(0,0,0,0.08);
  border:1px solid #eee;
  transition:all .15s ease;
}

.list-item:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 14px rgba(0,0,0,0.12);
}

.list-item-title{
  font-size:16px;
  font-weight:800;
  color:#000000;
}

.list-item-town{
  font-size:12px;
  color:#000000;
  margin-top:2px;
}

.list-item-status{
  font-size:12px;
  font-weight:600;
}

.status-open{
  color:#1a8f3c;
}

.status-closed{
  color:#c63c3c;
}

.list-item-desc{
  font-size:12px;
  color:#000000;
  margin-top:6px;
  line-height:1.35;
}

.list-item-actions{
  margin-top:10px;
  display:flex;
  gap:8px;
}

.list-btn{
  font-size:11px;
  border-radius:10px;
  padding:6px 10px;
  border:1px solid #ddd;
  background:#fafafa;
  cursor:pointer;
}

.list-btn:hover{
  background:#f0f0f0;
}
.list-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:#333;
}
/* =================================
   C2 — Map Popup Redesign
================================= */

.leaflet-popup-content-wrapper{
  border-radius:16px;
  padding:0;
  box-shadow:0 10px 24px rgba(0,0,0,0.18);
}

.leaflet-popup-content{
  margin:0 !important;
  min-width:280px;
}

.popup{
  padding:14px 14px 12px;
  font-family:"Quicksand", system-ui, sans-serif;
}

.popup .store-highlight{
  background:#fff3f8;
  border:1px solid #f3c5da;
  border-radius:10px;
  padding:8px 10px;
  margin-bottom:8px;
  font-size:12px;
  color:#8a2d61;
  line-height:1.35;
}

.popup .actions,
.popup .popup-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.popup a,
.popup .eng-action-btn,
.popup .popup-find-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 12px;
  border-radius:10px;
  border:1px solid #e2e2e2;
  background:#fff;
  color:#222;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  transition:all .15s ease;
}

.popup a:hover,
.popup .eng-action-btn:hover,
.popup .popup-find-btn:hover{
  background:#fff7fb;
  border-color:#ee5aa6;
  color:#b13676;
}

.popup .fav-btn{
  border-radius:10px !important;
  min-height:34px;
  min-width:34px;
}

.popup strong{
  color:#111;
}

.popup .hub-feed-text,
.popup .store-meta,
.popup div{
  word-wrap:break-word;
}

.leaflet-popup-tip{
  background:#fff;
}

@media (max-width:900px){
  .leaflet-popup-content{
    min-width:240px;
    max-width:280px;
  }

  .popup{
    padding:12px;
  }
}
/* =================================
   C2 tweak — restore larger social icons
================================= */

.popup .social-icons,
.popup .popup-socials{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
  margin-bottom:12px;
}

.popup .social-icons a,
.popup .popup-socials a{
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  padding:0;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #d9d9d9;
  background:#fff;
}

.popup .social-icons a svg,
.popup .popup-socials a svg,
.popup .social-icons a img,
.popup .popup-socials a img{
  width:20px;
  height:20px;
}

.popup .popup-actions a,
.popup .popup-actions .popup-find-btn,
.popup .actions a,
.popup .actions .popup-find-btn{
  min-height:38px;
  padding:8px 14px;
  border-radius:12px;
}
/* =================================
C3 — Top Map Navigation
================================= */

.top-stage-nav{
  position:absolute;
  top:12px;
  left:50%;
  transform:translateX(-50%);
  z-index:800;
  display:flex;
  gap:10px;
  padding:6px;
  border-radius:14px;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(6px);
  box-shadow:0 6px 18px rgba(0,0,0,0.15);
}

.top-stage-nav button{
  border:1px solid #e3e3e3;
  background:#fff;
  padding:8px 14px;
  border-radius:999px;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  transition:all .15s ease;
}

.top-stage-nav button:hover{
  background:#fff3f8;
  border-color:#ee5aa6;
  color:#b13676;
}

.top-stage-nav button.active{
  background:#fccfac;
  border-color:#f3a8c9;
  color:#7a1f4a;
}

/* mobile */

@media (max-width:900px){

  .top-stage-nav{
    top:10px;
    gap:6px;
    padding:5px;
  }

  .top-stage-nav button{
    padding:7px 10px;
    font-size:13px;
  }

}
/* =================================
   C4 — Store card refinement
================================= */

.list-item{
  background:#fff;
  border:1px solid rgba(0,0,0,0.06);
  border-radius:16px;
  padding:14px 14px 12px;
  margin-bottom:12px;
  box-shadow:0 3px 10px rgba(0,0,0,0.08);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.list-item:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(0,0,0,0.12);
  border-color:#f2b7d0;
}

.list-item-title{
  display:block;
  font-size:16px;
  font-weight:800;
  color:#111;
  line-height:1.2;
}

.list-item-town{
  font-size:12px;
  font-weight:700;
  color:#333;
  margin:2px 0 8px;
}

.store-status-line{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:8px;
}

.list-item-status{
  font-size:12px;
  font-weight:700;
  line-height:1.2;
}

.status-open{
  color:#1a8f3c;
}

.status-closed{
  color:#b42323;
}

.list-item-desc{
  font-size:12px;
  color:#222;
  line-height:1.45;
  margin:8px 0 10px;
}

.store-meta{
  font-size:12px;
  color:#333;
  line-height:1.35;
}

.store-location-line{
  margin-bottom:3px;
}

.list-item-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.list-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:8px 12px;
  border-radius:12px;
  border:1px solid #ddd;
  background:#fafafa;
  color:#222;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  transition:all .15s ease;
}

.list-btn:hover{
  background:#fff3f8;
  border-color:#ee5aa6;
  color:#a52b67;
}

.store-number-badge{
  width:24px;
  height:24px;
  font-size:12px;
}

.store-name-row{
  margin-bottom:4px;
}

.store-name-left{
  align-items:flex-start;
}

.store-name-right{
  flex:0 0 auto;
}

.desc-toggle{
  margin-left:4px;
  font-size:12px;
  font-weight:700;
  color:#a52b67;
}

@media (max-width:900px){
  .list-item{
    padding:13px 12px 11px;
    border-radius:14px;
  }

  .list-item-title{
    font-size:15px;
  }

  .list-item-actions{
    gap:6px;
  }

  .list-btn{
    padding:7px 10px;
    min-height:34px;
    font-size:11px;
  }
}
/* =================================
   D6 — Active list item highlight
================================= */

.list-item.is-active{
  border-color:#ee5aa6 !important;
  box-shadow:0 0 0 3px rgba(238,90,166,0.18), 0 8px 18px rgba(0,0,0,0.12);
  background:#fffafd;
}
/* =================================
   D7 — Favorites visual polish
================================= */

.list-item:has(.fav-btn[aria-pressed="true"]),
.list-item.is-favorite{
  border-color:#ee5aa6 !important;
  box-shadow:0 0 0 2px rgba(238,90,166,0.18), 0 8px 18px rgba(0,0,0,0.10);
  background:linear-gradient(180deg, #fff 0%, #fff8fc 100%);
}

.list-item:has(.fav-btn[aria-pressed="true"]) .list-item-title,
.list-item.is-favorite .list-item-title{
  color:#a52b67;
}

.list-item:has(.fav-btn[aria-pressed="true"]) .store-number-badge,
.list-item.is-favorite .store-number-badge{
  box-shadow:0 0 0 3px rgba(238,90,166,0.18);
}

.popup .fav-btn[aria-pressed="true"]{
  box-shadow:0 0 0 3px rgba(238,90,166,0.18);
  border-color:#ee5aa6 !important;
  background:#fff7fb !important;
}

.popup{
  position:relative;
}

.popup:has(.fav-btn[aria-pressed="true"])::after{
  content:"★ Favorite";
  position:absolute;
  top:12px;
  right:56px;
  font-size:11px;
  font-weight:800;
  color:#a52b67;
  background:#fff3f8;
  border:1px solid #f3c5da;
  border-radius:999px;
  padding:4px 8px;
}
/* =================================
   D8 — Empty states
================================= */

.list-empty-state{
  list-style:none;
  background:#fff;
  border:1px dashed #f1b9d3;
  border-radius:16px;
  padding:24px 18px;
  margin:10px;
  text-align:center;
  box-shadow:0 3px 10px rgba(0,0,0,0.05);
}

.list-empty-icon{
  font-size:28px;
  margin-bottom:8px;
}

.list-empty-title{
  font-size:16px;
  font-weight:800;
  color:#8f2d62;
  margin-bottom:6px;
}

.list-empty-text{
  font-size:13px;
  color:#444;
  line-height:1.4;
}

.hub-empty-state{
  background:#fff;
  border:1px dashed #f1b9d3;
  border-radius:14px;
  padding:18px 16px;
  text-align:center;
  color:#444;
}

.hub-empty-state .hub-empty-icon{
  font-size:24px;
  margin-bottom:8px;
}

.hub-empty-state .hub-empty-title{
  font-size:15px;
  font-weight:800;
  color:#8f2d62;
  margin-bottom:6px;
}

.hub-empty-state .hub-empty-text{
  font-size:13px;
  line-height:1.4;
  color:#555;
}

/* =================================
   D10 — Mobile UX polish
================================= */

:root{
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}

html{
  height: 100%;
  -webkit-text-size-adjust: 100%;
}

body{
  min-height: 100dvh;
  padding-left: var(--safe-left);
  padding-right: var(--safe-right);
  padding-bottom: calc(34px + var(--safe-bottom));
  overscroll-behavior-y: none;
}

.app{
  min-height: calc(100dvh - 34px - var(--safe-bottom));
}

.sidebar,
.stage-panel-scroll,
#list,
#engagementHub,
#weekView,
#communityView,
#myThriftView{
  -webkit-overflow-scrolling: touch;
}

.stage-view,
.panel-view,
.stage-panel-scroll,
.sidebar,
.map{
  min-height: 0;
}

.top-stage-nav .stage-btn,
.geo-btn,
.fit-btn,
.fav-btn,
.list-btn,
.desc-toggle,
.nearme-btn,
.nearme-clear,
.popup .eng-action-btn,
.popup .popup-find-btn,
.popup a,
#filtersToggle{
  touch-action: manipulation;
}

.geo-btn,
.fit-btn{
  min-height: 44px;
  min-width: 44px;
  padding: 10px 12px;
  font-size: 13px;
}

.list-btn{
  min-height: 40px;
  padding: 9px 12px;
}

.fav-btn{
  min-width: 40px;
  min-height: 40px;
}

.desc-toggle{
  min-height: 32px;
  padding: 6px 2px;
}

#filtersToggle{
  min-height: 32px;
}

@supports (padding: max(0px)) {
  body{
    padding-left: max(0px, var(--safe-left));
    padding-right: max(0px, var(--safe-right));
    padding-bottom: max(34px, calc(34px + var(--safe-bottom)));
  }
}

@media (max-width:900px){
  .app.stacked{
    min-height: calc(100dvh - 34px - var(--safe-bottom));
  }

  .app.stacked .sidebar{
    position: relative;
    z-index: 20;
  }

  .app.stacked .panel{
    top: 0;
    padding-top: calc(16px + var(--safe-top));
  }

  .app.stacked .map{
    height: clamp(320px, 48dvh, 560px);
    min-height: 320px;
  }

  #map,
  #mapView,
  #mapView #map{
    min-height: 320px;
  }

  .top-stage-nav{
    left: 0;
    right: 0;
    transform: none;
    width: auto;
    margin: calc(10px + var(--safe-top)) 10px 0;
    padding: 6px;
    gap: 6px;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .top-stage-nav::-webkit-scrollbar{
    display: none;
  }

  .top-stage-nav .stage-btn,
  .top-stage-nav button{
    flex: 0 0 auto;
    min-height: 42px;
    padding: 9px 12px;
    font-size: 13px;
  }

  .geo-btn,
  .fit-btn{
    right: 10px;
    border-radius: 14px;
  }

  .geo-btn{
    top: calc(64px + var(--safe-top));
  }

  .fit-btn{
    top: calc(116px + var(--safe-top));
  }

  .panel{
    padding-left: 14px;
    padding-right: 14px;
  }

  .row{
    margin-bottom: 10px;
  }

  #controlsTopRow{
    gap: 10px !important;
  }

  #filtersPanel{
    padding-bottom: 2px;
  }

  input[type="text"],
  select,
  .hub-form-grid input,
  .hub-form-grid select,
  .hub-form-grid textarea{
    min-height: 44px;
    font-size: 16px;
  }

  .list{
    padding: 10px;
  }

  .list-item{
    padding: 14px 12px 12px;
    margin-bottom: 10px;
    border-radius: 16px;
  }

  .store-name-row{
    gap: 8px;
  }

  .store-name-left,
  .store-name-right{
    gap: 8px;
  }

  .store-number-badge{
    width: 26px;
    height: 26px;
    font-size: 12px;
  }

  .list-item-title{
    font-size: 15px;
    line-height: 1.25;
  }

  .list-item-town,
  .list-item-status,
  .list-item-desc,
  .store-meta{
    font-size: 13px;
  }

  .list-item-actions{
    gap: 8px;
  }

  .list-btn{
    flex: 1 1 calc(50% - 8px);
  }

  .leaflet-popup-content{
    min-width: 250px;
    max-width: min(300px, calc(100vw - 32px));
  }

  .popup{
    padding: 13px 13px 12px;
  }

  .popup a,
  .popup .eng-action-btn,
  .popup .popup-find-btn{
    min-height: 40px;
    padding: 9px 12px;
  }

  .stage-panel-scroll{
    padding: 14px 14px 90px;
  }

  #myThriftView #engagementHub{
    padding: 14px 14px 100px !important;
  }

  .news-ticker{
    padding-bottom: var(--safe-bottom);
    height: calc(34px + var(--safe-bottom));
  }
}
/* ============================
MOBILE APP SHELL
============================ */

.mobile-shell{
  display:none;
}

.mobile-bottom-nav{
  display:none;
}

.mobile-sheet{
  display:none;
}

@media (max-width:900px){

  .mobile-shell{
    display:block;
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:2000;
    padding:10px;
  }

  .mobile-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-weight:700;
    background:white;
    padding:10px 12px;
    border-radius:12px;
    box-shadow:0 4px 10px rgba(0,0,0,0.15);
  }

  .mobile-brand{
    font-size:16px;
  }

  .mobile-search{
    margin-top:8px;
    display:flex;
    gap:6px;
  }

  .mobile-search input{
    flex:1;
    padding:10px;
    border-radius:10px;
    border:1px solid #ddd;
  }

  .mobile-search button{
    border:none;
    padding:10px;
    border-radius:10px;
    background:white;
    border:1px solid #ddd;
  }

  .mobile-bottom-nav{
    display:flex;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    height:60px;
    background:white;
    border-top:1px solid #ddd;
    z-index:2000;
  }

  .mobile-bottom-nav button{
    flex:1;
    border:none;
    background:white;
    font-weight:600;
    font-size:12px;
  }

  .mobile-sheet{
    display:block;
    position:fixed;
    bottom:60px;
    left:0;
    right:0;
    background:white;
    border-radius:16px 16px 0 0;
    padding:10px;
    box-shadow:0 -6px 20px rgba(0,0,0,0.2);
    z-index:1500;
  }

  .mobile-sheet-handle{
    width:40px;
    height:4px;
    background:#ccc;
    border-radius:2px;
    margin:0 auto 8px;
  }

  .mobile-sheet-title{
    text-align:center;
    font-weight:700;
  }

}
/* =================================
   MOBILE SHELL RESET / GOOGLE-STYLE PASS
================================= */

.news-ticker{
  display:none !important;
}

body{
  padding-bottom:0 !important;
}

.app{
  min-height:100dvh !important;
}

.mobile-shell{
  display:none;
}

.mobile-bottom-nav{
  display:none;
}

.mobile-profile{
  border:none;
  background:transparent;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}

@media (max-width:900px){

  body{
    overflow:hidden;
  }

  .mobile-shell{
    display:block;
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:2400;
    padding:10px 10px 0;
    pointer-events:none;
  }

  .mobile-shell > *{
    pointer-events:auto;
  }

  .mobile-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    background:rgba(255,255,255,0.96);
    border:1px solid #e6e6e6;
    border-radius:18px;
    box-shadow:0 6px 18px rgba(0,0,0,0.12);
    padding:14px 14px;
  }

  .mobile-brand{
    font-size:16px;
    font-weight:800;
    color:#222;
  }

  .mobile-search{
    margin-top:10px;
    display:flex;
    align-items:center;
    gap:8px;
  }

  .mobile-search input{
    flex:1;
    min-height:52px;
    padding:0 14px;
    border-radius:16px;
    border:1px solid #d9d9d9;
    background:rgba(255,255,255,0.96);
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
    font-size:16px;
  }

  .mobile-search button{
    width:52px;
    height:52px;
    flex:0 0 52px;
    border-radius:16px;
    border:1px solid #d9d9d9;
    background:rgba(255,255,255,0.96);
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
    font-size:18px;
    cursor:pointer;
  }

  .top-stage-nav{
    display:none !important;
  }

  .app,
  .app.stacked{
    display:block !important;
    min-height:100dvh !important;
    height:100dvh !important;
  }

  .map,
  .app.stacked .map{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    height:100dvh !important;
    min-height:100dvh !important;
    z-index:1;
    border:none !important;
  }

  #map,
  #mapView,
  #mapView #map{
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
  }

  .map-frame{
    display:none !important;
  }

  .geo-btn{
    top:120px !important;
    right:10px !important;
    z-index:1200 !important;
  }

  .fit-btn{
    top:174px !important;
    right:10px !important;
    z-index:1200 !important;
  }

  .sidebar,
  .app.stacked .sidebar{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:68px !important;
    top:auto !important;
    width:100% !important;
    max-width:none !important;
    height:42dvh !important;
    z-index:2200 !important;
    background:#fff !important;
    border:none !important;
    border-top:1px solid #e6e6e6 !important;
    border-radius:24px 24px 0 0 !important;
    box-shadow:0 -10px 28px rgba(0,0,0,0.18) !important;
    overflow:hidden !important;
  }

  .sidebar::before{
    content:"";
    position:absolute;
    top:10px;
    left:50%;
    transform:translateX(-50%);
    width:44px;
    height:5px;
    border-radius:999px;
    background:#cfcfcf;
    z-index:5;
  }

  .sidebar .panel{
    display:none !important;
  }

  body.mobile-filters-open .sidebar{
    height:58dvh !important;
  }

  body.mobile-filters-open .sidebar .panel{
    display:block !important;
    position:sticky !important;
    top:0 !important;
    z-index:4 !important;
    padding-top:24px !important;
    border-bottom:1px solid #ededed !important;
  }

  body.mobile-filters-open .sidebar .panel h1,
  body.mobile-filters-open .sidebar .panel .row:first-of-type{
    display:none !important;
  }

  body.mobile-filters-open .sidebar .panel .muted{
    margin-top:8px !important;
  }

  #list{
    height:100% !important;
    overflow-y:auto !important;
    padding:26px 10px 16px !important;
    background:#fff !important;
  }

  body.mobile-filters-open #list{
    height:calc(100% - 130px) !important;
  }

  .list{
    background:#fff !important;
  }

  .list-item{
    border-radius:18px !important;
    margin-bottom:12px !important;
  }

  .mobile-bottom-nav{
    display:flex;
    align-items:center;
    justify-content:space-around;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:2300;
    height:68px;
    background:rgba(255,255,255,0.98);
    border-top:1px solid #e6e6e6;
    box-shadow:0 -2px 10px rgba(0,0,0,0.08);
  }

  .mobile-bottom-nav button{
    flex:1;
    height:100%;
    border:none;
    background:transparent;
    font-size:12px;
    font-weight:700;
    color:#444;
    cursor:pointer;
  }

  .mobile-bottom-nav button.active{
    color:#b13676;
  }

  .mobile-sheet{
    display:none !important;
  }
}
/* =================================
   MOBILE TOP BAR CLEANUP
   remove title pill and move search to top
================================= */

@media (max-width:900px){

  .mobile-header{
    display:none !important;
  }

  .mobile-profile{
    display:none !important;
  }

  .mobile-brand{
    display:none !important;
  }

  .mobile-shell{
    top:0 !important;
    padding:8px 10px 0 !important;
  }

  .mobile-search{
    margin-top:0 !important;
    display:flex;
    align-items:center;
    gap:8px;
  }

  .mobile-search input{
    flex:1;
    min-height:54px;
    padding:0 16px;
    border-radius:18px;
    font-size:16px;
  }

  .mobile-search button{
    width:54px;
    height:54px;
    flex:0 0 54px;
    border-radius:18px;
  }

  .geo-btn{
    top:74px !important;
  }

  .fit-btn{
    top:136px !important;
  }
}
/* ============================
DRAGGABLE MOBILE SHEET
============================ */

@media (max-width:900px){

  .sidebar{

    height:140px;
    transition:height .2s ease;

  }

}
/* =================================
   M2 — REAL DRAG HANDLE / POINTER SHEET
================================= */

@media (max-width:900px){

  .sidebar::before{
    display:none !important;
  }

  .sidebar,
  .app.stacked .sidebar{
    display:flex !important;
    flex-direction:column !important;
    min-height:160px !important;
    transition:height 180ms ease, transform 180ms ease !important;
    will-change:height, transform;
  }

  .mobile-sheet-dragger{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 28px;
    height:28px;
    cursor:grab;
    touch-action:none;
    background:#fff;
  }

  .mobile-sheet-dragger:active{
    cursor:grabbing;
  }

  .mobile-sheet-grab{
    width:44px;
    height:5px;
    border-radius:999px;
    background:#cfcfcf;
  }

  #list{
    flex:1 1 auto !important;
    min-height:0 !important;
  }

  body.mobile-sheet-dragging{
    user-select:none;
    -webkit-user-select:none;
  }

  body.mobile-sheet-dragging .sidebar{
    transition:none !important;
  }

  body.mobile-sheet-hidden .sidebar{
    transform:translateY(calc(100% + 24px)) !important;
    pointer-events:none;
  }
}

/* =================================
   M4 — marker and list sync polish
================================= */

@media (max-width:900px){

  .mobile-sheet-dragger{
    position:relative;
    z-index:4;
  }

  .mobile-sheet-grab{
    width:52px;
    height:6px;
    transition:all .18s ease;
  }

  body[data-mobile-sheet-state="collapsed"] .mobile-sheet-grab{
    width:44px;
  }

  body[data-mobile-sheet-state="full"] .mobile-sheet-grab{
    width:60px;
    background:#bdbdbd;
  }

  .list-item{
    scroll-margin-top:18px;
  }

  .list-item.is-active{
    border-color:#ee5aa6 !important;
    box-shadow:0 0 0 3px rgba(238,90,166,0.18), 0 10px 20px rgba(0,0,0,0.14) !important;
  }
}


/* =================================
   M5 — mobile search bar polish
================================= */

@media (max-width:900px){

  .mobile-shell{
    padding:10px 10px 0 !important;
  }

  .mobile-search{
    margin-top:0 !important;
    gap:10px !important;
    align-items:center;
  }

  .mobile-search-shell{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
    min-height:56px;
    padding:0 10px 0 10px;
    border-radius:20px;
    border:1px solid rgba(0,0,0,0.08);
    background:rgba(255,255,255,0.98);
    box-shadow:0 8px 22px rgba(0,0,0,0.14);
    backdrop-filter:blur(10px);
  }

  .mobile-search-logo{
    flex:0 0 auto;
    width:34px;
    height:34px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(180deg, #fff3f8 0%, #ffe6f1 100%);
    border:1px solid #f3c5da;
    color:#a52b67;
    font-size:12px;
    font-weight:800;
    letter-spacing:0.02em;
  }

  .mobile-search input{
    min-width:0;
    flex:1 1 auto;
    min-height:54px;
    height:54px;
    border:none !important;
    background:transparent !important;
    box-shadow:none !important;
    padding:0 !important;
    border-radius:0 !important;
    font-size:15px;
    color:#111;
  }

  .mobile-search input::placeholder{
    color:#70757a;
  }

  .mobile-search input:focus{
    outline:none;
  }

  #mobileSearchClear{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border:none;
    background:#f3f4f6;
    color:#555;
    border-radius:999px;
    font-size:14px;
    opacity:0;
    pointer-events:none;
    transform:scale(0.9);
    transition:opacity .15s ease, transform .15s ease;
    box-shadow:none;
  }

  #mobileSearchClear.visible{
    opacity:1;
    pointer-events:auto;
    transform:scale(1);
  }

  #mobileFilterBtn{
    width:56px !important;
    height:56px !important;
    flex:0 0 56px !important;
    border-radius:20px !important;
    border:1px solid rgba(0,0,0,0.08) !important;
    background:rgba(255,255,255,0.98) !important;
    box-shadow:0 8px 22px rgba(0,0,0,0.14) !important;
    font-size:18px;
    color:#333;
  }

  body.mobile-filters-open #mobileFilterBtn{
    color:#a52b67;
    border-color:#f3c5da !important;
    background:#fff4fa !important;
  }

  .geo-btn{
    top:76px !important;
  }

  .fit-btn{
    top:138px !important;
  }
}


/* =================================
   M6 — bottom navigation polish
================================= */

@media (max-width:900px){

  .mobile-bottom-nav{
    align-items:stretch !important;
    justify-content:space-between !important;
    gap:6px;
    height:74px;
    padding:8px 8px calc(8px + env(safe-area-inset-bottom, 0px));
    background:rgba(255,255,255,0.98);
    backdrop-filter:blur(14px);
    box-shadow:0 -8px 22px rgba(0,0,0,0.10);
  }

  .mobile-bottom-nav .mobile-nav-btn{
    position:relative;
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    min-width:0;
    height:100%;
    border-radius:18px;
    border:1px solid transparent;
    background:transparent;
    color:#575757;
    transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
    -webkit-tap-highlight-color:transparent;
  }

  .mobile-bottom-nav .mobile-nav-btn:active{
    transform:scale(0.98);
  }

  .mobile-nav-icon{
    display:block;
    line-height:1;
    font-size:18px;
    transform:translateY(1px);
  }

  .mobile-nav-label{
    display:block;
    min-width:0;
    max-width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:11px;
    font-weight:800;
    letter-spacing:0.01em;
    line-height:1.05;
  }

  .mobile-bottom-nav .mobile-nav-btn.active{
    color:#9f2e67 !important;
    background:linear-gradient(180deg, #fff7fb 0%, #fff0f7 100%);
    border-color:#f3c5da;
    box-shadow:0 4px 12px rgba(238,90,166,0.16);
  }

  .mobile-bottom-nav .mobile-nav-btn.active .mobile-nav-icon{
    transform:translateY(0);
  }

  .mobile-bottom-nav .mobile-nav-btn.active::before{
    content:"";
    position:absolute;
    top:5px;
    left:50%;
    transform:translateX(-50%);
    width:26px;
    height:3px;
    border-radius:999px;
    background:#ee5aa6;
  }

  body.mobile-filters-open .mobile-bottom-nav .mobile-nav-btn[data-stage-target="mapView"]{
    color:#9f2e67;
    background:linear-gradient(180deg, #fff7fb 0%, #fff0f7 100%);
    border-color:#f3c5da;
  }
}


/* =================================
   M7 — unified top bar + mobile filter mode
================================= */

@media (max-width:900px){

  .mobile-header,
  .mobile-profile,
  .mobile-brand,
  #mobileSearchClear,
  .geo-btn,
  .fit-btn,
  #filtersToggle,
  .collapse-btn,
  .panel-summary,
  .sidebar .panel > .row:first-of-type,
  .sidebar .panel > .muted{
    display:none !important;
  }

  .mobile-shell{
    top:0 !important;
    left:0;
    right:0;
    padding:8px 10px 0 !important;
    z-index:2400;
  }

  .mobile-search{
    margin-top:0 !important;
    gap:0 !important;
  }

  .mobile-search-shell{
    width:100%;
    gap:8px !important;
    min-height:58px;
    padding:0 10px 0 10px !important;
    border-radius:20px !important;
    border:1px solid rgba(255,255,255,0.16) !important;
    background:rgba(46, 54, 64, 0.72) !important;
    box-shadow:0 10px 24px rgba(0,0,0,0.20) !important;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
  }

  .mobile-search-logo{
    width:34px;
    height:34px;
    border-radius:12px;
    background:rgba(255,255,255,0.12) !important;
    border:1px solid rgba(255,255,255,0.16) !important;
    color:#fff !important;
    font-size:17px !important;
    line-height:1;
  }

  .mobile-search input{
    color:#fff !important;
    font-size:15px !important;
  }

  .mobile-search input::placeholder{
    color:rgba(255,255,255,0.78) !important;
  }

  .mobile-search-action{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:12px;
    background:rgba(255,255,255,0.10);
    color:#fff;
    font-size:17px;
    cursor:pointer;
    transition:background .16s ease, transform .16s ease;
  }

  .mobile-search-action:active{
    transform:scale(0.97);
  }

  .mobile-search-action.active,
  body.mobile-filters-open #mobileFilterBtn{
    background:rgba(255,255,255,0.18) !important;
  }

  .sidebar,
  .app.stacked .sidebar{
    bottom:82px !important;
    background:rgba(34, 39, 46, 0.54) !important;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-top:1px solid rgba(255,255,255,0.16) !important;
    box-shadow:0 -14px 32px rgba(0,0,0,0.24) !important;
  }

  .mobile-sheet-dragger{
    background:transparent !important;
    height:22px;
    flex:0 0 22px;
    padding-top:8px;
  }

  .mobile-sheet-grab{
    width:52px;
    height:6px;
    background:rgba(255,255,255,0.72) !important;
  }

  .mobile-sheet-summary{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    padding:0 14px 8px;
    font-size:13px;
    font-weight:800;
    color:#fff;
    text-shadow:0 1px 1px rgba(0,0,0,0.22);
  }

  #list{
    padding:6px 10px 12px !important;
    background:transparent !important;
  }

  .list{
    background:transparent !important;
  }

  .list-item{
    background:rgba(255,255,255,0.92) !important;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }

  .sidebar .panel{
    display:none !important;
  }

  body.mobile-filters-open .sidebar{
    height:calc(100dvh - 76px - 86px) !important;
    background:rgba(20, 24, 29, 0.78) !important;
  }

  body.mobile-filters-open .mobile-sheet-summary,
  body.mobile-filters-open #list{
    display:none !important;
  }

  body.mobile-filters-open .sidebar .panel{
    display:flex !important;
    flex-direction:column;
    position:static !important;
    height:100%;
    padding:16px 14px 0 !important;
    background:transparent !important;
    border-bottom:none !important;
  }

  body.mobile-filters-open .sidebar .panel h1{
    display:block !important;
    margin:0 0 12px !important;
    font-size:22px !important;
    color:#fff !important;
    text-align:left;
    font-family:"Quicksand", system-ui, sans-serif !important;
    text-shadow:none !important;
  }

  body.mobile-filters-open #mapControls{
    display:flex !important;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
    margin-top:0 !important;
  }

  body.mobile-filters-open #controlsTopRow{
    display:none !important;
  }

  body.mobile-filters-open #filtersPanel{
    display:flex !important;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
    margin-top:0 !important;
    overflow-y:auto;
    padding:2px 0 14px;
  }

  body.mobile-filters-open #categoryPills{
    margin:0 0 12px !important;
  }

  body.mobile-filters-open #categoryPills button,
  body.mobile-filters-open #townSelect,
  body.mobile-filters-open .nearme-block,
  body.mobile-filters-open .nearme-btn,
  body.mobile-filters-open .nearme-clear,
  body.mobile-filters-open .list-btn,
  body.mobile-filters-open .hub-btn{
    box-shadow:none;
  }

  body.mobile-filters-open #categoryPills button{
    min-height:38px;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,0.18);
    background:rgba(255,255,255,0.08);
    color:#fff;
  }

  body.mobile-filters-open #categoryPills button:hover,
  body.mobile-filters-open #categoryPills button:active{
    border-color:rgba(255,255,255,0.26);
  }

  body.mobile-filters-open #townSelect,
  body.mobile-filters-open .hub-form-grid input,
  body.mobile-filters-open .hub-form-grid select,
  body.mobile-filters-open .hub-form-grid textarea{
    background:rgba(255,255,255,0.10) !important;
    border:1px solid rgba(255,255,255,0.18) !important;
    color:#fff !important;
  }

  body.mobile-filters-open #townSelect option{
    color:#111;
  }

  body.mobile-filters-open label,
  body.mobile-filters-open span,
  body.mobile-filters-open .nearme-title,
  body.mobile-filters-open .nearme-help{
    color:#fff !important;
  }

  body.mobile-filters-open .nearme-block{
    background:rgba(255,255,255,0.08) !important;
    border:1px solid rgba(255,255,255,0.14) !important;
  }

  body.mobile-filters-open .nearme-btn{
    border:1px solid rgba(255,255,255,0.18);
    background:rgba(255,255,255,0.10);
    color:#fff;
  }

  body.mobile-filters-open .nearme-clear{
    color:#fff;
  }

  #mobileFilterActions{
    display:none;
  }

  body.mobile-filters-open #mobileFilterActions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:auto;
    padding:14px 0 calc(6px + env(safe-area-inset-bottom, 0px));
    position:sticky;
    bottom:0;
    background:linear-gradient(180deg, rgba(20,24,29,0) 0%, rgba(20,24,29,0.92) 18%);
  }

  .mobile-filter-secondary,
  .mobile-filter-primary{
    min-height:48px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,0.18);
    font-size:14px;
    font-weight:800;
    cursor:pointer;
  }

  .mobile-filter-secondary{
    background:rgba(255,255,255,0.08);
    color:#fff;
  }

  .mobile-filter-primary{
    background:#ee5aa6;
    color:#fff;
    border-color:#ee5aa6;
  }
}
/* =========================
Unified Mobile Search Bar
========================= */

@media (max-width:900px){

.mobile-search{
  padding:10px;
}

.mobile-search-shell{

  display:flex;
  align-items:center;
  gap:10px;

  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(8px);

  border-radius:18px;

  padding:8px 12px;

  box-shadow:0 6px 18px rgba(0,0,0,0.15);

}

.mobile-search-logo{

  font-size:18px;
  flex-shrink:0;

}

.mobile-search-shell input{

  flex:1;
  border:none;
  background:transparent;

  font-size:16px;
  outline:none;

}

.mobile-search-actions{

  display:flex;
  gap:6px;

}

.mobile-search-btn{

  border:none;
  background:transparent;

  font-size:18px;
  cursor:pointer;

  padding:4px;

}

}
/* =========================
MOBILE SEARCH BAR - ONE SINGLE BAR
put this at the VERY BOTTOM
========================= */

@media (max-width: 900px) {

  .mobile-search {
    padding: 10px !important;
  }

 .mobile-search-shell {

  background: linear-gradient(
    to bottom,
    rgba(255, 241, 242, 0.75),
    rgba(250, 202, 204, 0.25)
  ) !important;

  backdrop-filter: blur(20px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(140%) !important;

  border-radius: 22px !important;
  padding: 8px 12px !important;

  border: 1px solid rgba(255,255,255,0.45) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.18) !important;
}



  .mobile-search-logo {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 18px !important;
    line-height: 1 !important;
    margin-right: 2px !important;
  }

  .mobile-search-shell input,
  .mobile-search-shell #mobileSearchInput {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;

    color: #f3f4f6 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
  }

  .mobile-search-shell input::placeholder,
  .mobile-search-shell #mobileSearchInput::placeholder {
    color: rgba(255, 255, 255, 0.82) !important;
  }

  .mobile-search-actions {
    display: flex !important;
    align-items: center !important;
    gap: 2px !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
  }

  .mobile-search-btn,
  #mobileFilterBtn,
  #mobileGeoBtn,
  #mobileFitBtn {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;

    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;

    padding: 6px 8px !important;
    margin: 0 !important;

    color: #ffffff !important;
    font-size: 20px !important;
    line-height: 1 !important;
  }

  .mobile-search-btn:hover,
  .mobile-search-btn:focus,
  #mobileFilterBtn:hover,
  #mobileGeoBtn:hover,
  #mobileFitBtn:hover,
  #mobileFilterBtn:focus,
  #mobileGeoBtn:focus,
  #mobileFitBtn:focus {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
  }

  .mobile-search-btn.active,
  #mobileFilterBtn.active {
    color: #facacc !important;
  }

  #mobileFilterBtn{
    position: relative !important;
  }

  #mobileFilterBtn.has-active-filters::after{
    content: '!' !important;
    position: absolute !important;
    top: -2px !important;
    right: -2px !important;
    width: 16px !important;
    height: 16px !important;
    border-radius: 999px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--brand-pink) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    box-shadow: 0 0 0 2px rgba(94, 109, 122, 0.92) !important;
  }

  /* hide any old mobile standalone button wrappers if they still exist */
  .mobile-search > button,
  .mobile-search .mobile-search-extra,
  .mobile-search .mobile-search-pill {
    display: none !important;
  }
}
/* tighten search bar buttons */

@media (max-width:900px){

.mobile-search-actions{
  display:flex !important;
  align-items:center !important;
  gap:0px !important;        /* remove spacing between buttons */
  margin-left:auto !important;
}

.mobile-search-btn{
  padding:4px 4px !important; /* smaller click padding */
  margin:0 !important;
}

.mobile-search-logo{
  margin-right:6px !important;
}

}
/* ===== tighten mobile search icons ===== */

@media (max-width:900px){

.mobile-search-shell{
  display:flex !important;
  align-items:center !important;
}

.mobile-search-shell input{
  flex:1 !important;
  min-width:0 !important;
}

.mobile-search-actions{
  display:flex !important;
  margin-left:auto !important;
  gap:0 !important;
  align-items:center !important;
}

.mobile-search-btn,
#mobileFilterBtn,
#mobileGeoBtn,
#mobileFitBtn{
  width:auto !important;
  height:auto !important;
  padding:2px 4px !important;
  margin:0 !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  font-size:18px !important;
}

}
/* ===== force mobile search icons tight on right ===== */

@media (max-width:900px){

  .mobile-search-shell{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
  }

  .mobile-search-logo{
    flex:0 0 auto !important;
  }

  .mobile-search-shell input,
  #mobileSearchInput{
    flex:1 1 auto !important;
    min-width:0 !important;
    width:auto !important;
  }

  .mobile-search-actions{
    flex:0 0 auto !important;
    display:inline-flex !important;
    width:auto !important;
    min-width:unset !important;
    max-width:none !important;
    margin-left:auto !important;
    justify-content:flex-end !important;
    align-items:center !important;
    gap:0 !important;
  }

  .mobile-search-btn,
  #mobileFilterBtn,
  #mobileGeoBtn,
  #mobileFitBtn{
    flex:0 0 auto !important;
    width:auto !important;
    min-width:auto !important;
    max-width:none !important;
    height:auto !important;
    padding:2px 3px !important;
    margin:0 !important;
    border:none !important;
    background:transparent !important;
    box-shadow:none !important;
    border-radius:0 !important;
    line-height:1 !important;
    font-size:18px !important;
  }

}

/* =================================
   M9 — collapsed summary + reliable full filter mode
================================= */

@media (max-width:900px){
  .sidebar,
  .app.stacked .sidebar{
    min-height:74px !important;
  }

  body[data-mobile-sheet-state="collapsed"] .sidebar{
    overflow:hidden !important;
  }

  body[data-mobile-sheet-state="collapsed"] #list{
    display:none !important;
  }

  body[data-mobile-sheet-state="collapsed"] .mobile-sheet-summary{
    min-height:30px;
    padding:0 14px 12px;
  }

  body.mobile-filters-open .sidebar{
    height:calc(100dvh - 76px - 86px) !important;
  }

  body.mobile-filters-open .sidebar .panel{
    display:flex !important;
    overflow:hidden !important;
  }

  body.mobile-filters-open #filtersPanel{
    display:flex !important;
    flex-direction:column !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
  }

  body.mobile-filters-open #list,
  body.mobile-filters-open .mobile-sheet-summary{
    display:none !important;
  }

  body.mobile-filters-open #mobileFilterActions{
    display:grid !important;
    grid-template-columns:1fr 1fr;
    gap:12px;
  }

  body.mobile-filters-open #mobileFilterCancelBtn,
  body.mobile-filters-open #mobileFilterApplyBtn{
    min-height:48px;
    border:none;
    border-radius:14px;
    font-size:15px;
    font-weight:800;
    color:#fff;
    cursor:pointer;
  }

  body.mobile-filters-open #mobileFilterCancelBtn{
    background:#d94b4b;
  }

  body.mobile-filters-open #mobileFilterApplyBtn{
    background:#2a9d57;
  }
}
/* =================================
   M9.1 — restore 80% full and remove collapsed dead space
================================= */

@media (max-width:900px){

  .sidebar,
  .app.stacked .sidebar{
    min-height:64px !important;
  }

  body[data-mobile-sheet-state="collapsed"] .sidebar,
  body[data-mobile-sheet-state="collapsed"] .app.stacked .sidebar{
    min-height:64px !important;
  }

  body[data-mobile-sheet-state="collapsed"] .mobile-sheet-dragger{
    flex:0 0 22px !important;
    height:22px !important;
    padding-top:4px !important;
    padding-bottom:0 !important;
  }

  body[data-mobile-sheet-state="collapsed"] .mobile-sheet-grab{
    width:44px !important;
    height:5px !important;
  }

  body[data-mobile-sheet-state="collapsed"] #list{
    display:none !important;
  }

  body[data-mobile-sheet-state="collapsed"] .panel{
    display:none !important;
  }

  body[data-mobile-sheet-state="collapsed"] #mobileSheetSummary{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:auto !important;
    padding:0 14px 10px !important;
    margin:0 !important;
    font-size:13px !important;
    font-weight:700 !important;
    line-height:1.15 !important;
    background:transparent !important;
    border:0 !important;
  }

  body[data-mobile-sheet-state="half"] #list,
  body[data-mobile-sheet-state="full"] #list{
    display:block !important;
  }

  body[data-mobile-sheet-state="half"] .panel,
  body[data-mobile-sheet-state="full"] .panel{
    display:none !important;
  }
}
/* =================================
   M9.2 — lift and slim the search bar
================================= */

@media (max-width:900px){

  .mobile-shell{
    top:0 !important;
    padding:2px 10px 0 !important;
  }

  .mobile-search{
    margin-top:0 !important;
    padding:0 !important;
  }

  .mobile-search-shell{
    min-height:48px !important;
    height:48px !important;
    padding:0 10px !important;
    border-radius:20px !important;
    gap:8px !important;
    align-items:center !important;
  }

  .mobile-search-logo{
    width:30px !important;
    height:30px !important;
    border-radius:10px !important;
    font-size:16px !important;
    margin-right:4px !important;
  }

  .mobile-search-shell input,
  #mobileSearchInput{
    min-height:44px !important;
    height:44px !important;
    font-size:14px !important;
    line-height:44px !important;
    padding:0 !important;
  }

  .mobile-search-actions{
    gap:0 !important;
    margin-left:auto !important;
    align-items:center !important;
  }

  .mobile-search-btn,
  #mobileFilterBtn,
  #mobileGeoBtn,
  #mobileFitBtn{
    padding:2px 3px !important;
    font-size:18px !important;
    line-height:1 !important;
  }

  /* keep the sheet below the search bar visually */
  body[data-mobile-sheet-state="half"] .sidebar,
  body[data-mobile-sheet-state="full"] .sidebar{
    box-shadow:0 -10px 28px rgba(0,0,0,0.22) !important;
  }
}
/* =================================
   M9.3 — tighten collapsed sheet
================================= */

@media (max-width:900px){

  body[data-mobile-sheet-state="collapsed"] .sidebar,
  body[data-mobile-sheet-state="collapsed"] .app.stacked .sidebar{
    min-height:50px !important;
    padding:0 !important;
    background:rgba(94, 109, 122, 0.82) !important;
    backdrop-filter:blur(10px) !important;
    -webkit-backdrop-filter:blur(10px) !important;
    overflow:hidden !important;
  }

  body[data-mobile-sheet-state="collapsed"] .mobile-sheet-dragger{
    flex:0 0 16px !important;
    height:16px !important;
    padding:2px 0 0 !important;
    margin:0 !important;
    background:transparent !important;
  }

  body[data-mobile-sheet-state="collapsed"] .mobile-sheet-grab{
    width:42px !important;
    height:5px !important;
    margin:0 auto !important;
  }

  body[data-mobile-sheet-state="collapsed"] #mobileSheetSummary{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:28px !important;
    height:28px !important;
    padding:0 12px 4px !important;
    margin:0 !important;
    font-size:12px !important;
    font-weight:700 !important;
    line-height:1 !important;
    background:transparent !important;
    border:0 !important;
  }

  body[data-mobile-sheet-state="collapsed"] #list,
  body[data-mobile-sheet-state="collapsed"] .panel{
    display:none !important;
  }
}
/* =================================
   M9.4 — remove gap above bottom nav
   and make bottom nav pink + shorter
================================= */

@media (max-width:900px){

  /* pull the sheet down so it meets the nav cleanly */
  .sidebar,
  .app.stacked .sidebar{
    bottom:56px !important;
    border-bottom:0 !important;
    margin-bottom:0 !important;
  }

  /* collapsed state should also sit directly on the nav */
  body[data-mobile-sheet-state="collapsed"] .sidebar,
  body[data-mobile-sheet-state="collapsed"] .app.stacked .sidebar{
    bottom:56px !important;
  }

  /* bottom nav shorter and pink */
  .mobile-bottom-nav{
    height:56px !important;
    min-height:56px !important;
    background:#FACACC !important;
    border-top:1px solid rgba(0,0,0,0.08) !important;
    box-shadow:0 -2px 8px rgba(0,0,0,0.08) !important;
    padding:0 !important;
  }

  .mobile-bottom-nav button,
  .mobile-nav-btn{
    height:56px !important;
    min-height:56px !important;
    padding:4px 2px !important;
    background:transparent !important;
  }

  .mobile-nav-icon{
    font-size:15px !important;
    line-height:1 !important;
    margin-bottom:2px !important;
  }

  .mobile-nav-label{
    font-size:11px !important;
    line-height:1 !important;
  }

  /* active tab still readable on pink */
  .mobile-bottom-nav button.active,
  .mobile-nav-btn.active{
    color:#8f2d62 !important;
  }

  /* keep safe area from adding fake extra white space */
  .mobile-bottom-nav{
    padding-bottom:0 !important;
  }

  /* if any inner wrapper is creating white space, kill it */
  .mobile-bottom-nav::before,
  .mobile-bottom-nav::after{
    display:none !important;
  }
}
/* =================================
   M9.5 — mobile search clear X
================================= */

@media (max-width:900px){

  .mobile-search-input-wrap{
    flex:1 1 auto !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    position:relative !important;
  }

  .mobile-search-input-wrap input,
  .mobile-search-input-wrap #mobileSearchInput{
    flex:1 1 auto !important;
    min-width:0 !important;
    width:100% !important;
    padding-right:22px !important;
  }

  .mobile-search-clear-btn{
    position:absolute !important;
    right:2px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:18px !important;
    height:18px !important;
    padding:0 !important;
    margin:0 !important;
    border:none !important;
    background:transparent !important;
    box-shadow:none !important;
    border-radius:0 !important;
    color:rgba(255,255,255,0.78) !important;
    font-size:12px !important;
    line-height:1 !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  .mobile-search-clear-btn.visible{
    opacity:1 !important;
    pointer-events:auto !important;
  }

  .mobile-search-clear-btn:hover,
  .mobile-search-clear-btn:focus{
    color:#ffffff !important;
    background:transparent !important;
    box-shadow:none !important;
  }
}

/* =================================
   FINAL MOBILE FILTER OVERLAY + PINK SHEET
================================= */

@media (max-width:900px){
  .sidebar,
  .app.stacked .sidebar{
    background:#FACACC !important;
    border-top:0 !important;
  }

  body[data-mobile-sheet-state="collapsed"] .sidebar,
  body[data-mobile-sheet-state="collapsed"] .app.stacked .sidebar{
    background:#FACACC !important;
  }

  body.mobile-filters-open .sidebar,
  body.mobile-filters-open .app.stacked .sidebar{
    top:60px !important;
    bottom:56px !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    border-radius:0 !important;
    background:#FACACC !important;
    box-shadow:none !important;
    border:none !important;
    overflow:hidden !important;
  }

  body.mobile-filters-open .mobile-sheet-dragger,
  body.mobile-filters-open .mobile-sheet-summary,
  body.mobile-filters-open #list{
    display:none !important;
  }

  body.mobile-filters-open .sidebar .panel{
    display:flex !important;
    flex-direction:column !important;
    position:static !important;
    height:100% !important;
    min-height:0 !important;
    padding:14px 14px 0 !important;
    background:#FACACC !important;
    border:0 !important;
    overflow:hidden !important;
  }

  body.mobile-filters-open .sidebar .panel h1{
    display:block !important;
    margin:0 0 10px !important;
    padding:0 !important;
    font-family:"Quicksand", system-ui, sans-serif !important;
    font-size:22px !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    color:#8f2d62 !important;
    text-shadow:none !important;
  }

  body.mobile-filters-open #mapControls{
    display:flex !important;
    flex-direction:column !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    margin-top:0 !important;
  }

  body.mobile-filters-open #controlsTopRow,
  body.mobile-filters-open #filtersToggle,
  body.mobile-filters-open .panel .row:first-of-type,
  body.mobile-filters-open .panel .muted{
    display:none !important;
  }

  body.mobile-filters-open #filtersPanel{
    display:flex !important;
    flex-direction:column !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    padding:4px 0 12px !important;
    margin:0 !important;
    background:transparent !important;
  }

  body.mobile-filters-open #categoryPills{
    margin:0 0 12px !important;
    gap:8px !important;
  }

  body.mobile-filters-open #categoryPills button{
    min-height:40px !important;
    padding:8px 12px !important;
    border:1px solid rgba(143,45,98,0.18) !important;
    background:rgba(255,255,255,0.72) !important;
    color:#7a1f4a !important;
    box-shadow:none !important;
  }

  body.mobile-filters-open #townSelect,
  body.mobile-filters-open .nearme-block,
  body.mobile-filters-open .nearme-btn,
  body.mobile-filters-open .nearme-clear{
    box-shadow:none !important;
  }

  body.mobile-filters-open #townSelect{
    min-height:44px !important;
    background:rgba(255,255,255,0.8) !important;
    border:1px solid rgba(143,45,98,0.18) !important;
    color:#4d2340 !important;
  }

  body.mobile-filters-open label,
  body.mobile-filters-open span,
  body.mobile-filters-open .nearme-title,
  body.mobile-filters-open .nearme-help{
    color:#6d294d !important;
  }

  body.mobile-filters-open .nearme-block{
    background:rgba(255,255,255,0.66) !important;
    border:1px solid rgba(143,45,98,0.14) !important;
  }

  body.mobile-filters-open .nearme-btn{
    border:1px solid rgba(143,45,98,0.16) !important;
    background:rgba(255,255,255,0.76) !important;
    color:#6d294d !important;
  }

  body.mobile-filters-open .nearme-clear{
    color:#8f2d62 !important;
  }

  body.mobile-filters-open #mobileFilterActions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
    margin-top:auto !important;
    padding:12px 0 calc(8px + env(safe-area-inset-bottom, 0px)) !important;
    position:sticky !important;
    bottom:0 !important;
    background:linear-gradient(180deg, rgba(250,202,204,0) 0%, rgba(250,202,204,0.96) 22%) !important;
  }

  body.mobile-filters-open #mobileFilterCancelBtn,
  body.mobile-filters-open #mobileFilterApplyBtn{
    min-height:46px !important;
    border:none !important;
    border-radius:16px !important;
    font-size:14px !important;
    font-weight:800 !important;
    cursor:pointer !important;
  }

  body.mobile-filters-open #mobileFilterCancelBtn{
    background:#d9534f !important;
    color:#fff !important;
  }

  body.mobile-filters-open #mobileFilterApplyBtn{
    background:#2e9f57 !important;
    color:#fff !important;
  }
}
/* =================================
   MOBILE FILTER OVERLAY FIX
   append only - do not replace file
================================= */

@media (max-width:900px){

  /* pink swipe area */
  .sidebar,
  .app.stacked .sidebar{
    background:#FACACC !important;
  }

  /* hide old desktop filter trigger on mobile */
  #filtersToggle{
    display:none !important;
  }

  /* normal mobile list mode */
  .sidebar .panel{
    display:none !important;
  }

  /* real mobile filter overlay */
  body.mobile-filters-open .sidebar,
  body.mobile-filters-open .app.stacked .sidebar{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    top:58px !important;
    bottom:56px !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    border-radius:24px 24px 0 0 !important;
    background:#FACACC !important;
    box-shadow:0 -8px 24px rgba(0,0,0,0.14) !important;
    overflow:hidden !important;
    z-index:2200 !important;
  }

  body.mobile-filters-open .mobile-sheet-dragger,
  body.mobile-filters-open .mobile-sheet-summary,
  body.mobile-filters-open #list{
    display:none !important;
  }

  body.mobile-filters-open .sidebar .panel{
    display:flex !important;
    flex-direction:column !important;
    position:static !important;
    height:100% !important;
    padding:18px 14px 0 !important;
    background:transparent !important;
    border:0 !important;
    overflow:hidden !important;
  }

  body.mobile-filters-open .sidebar .panel h1{
    display:block !important;
    margin:0 0 12px !important;
    font-size:22px !important;
    font-family:"Quicksand", system-ui, sans-serif !important;
    color:#8f2d62 !important;
    text-shadow:none !important;
  }

  body.mobile-filters-open #mapControls{
    display:flex !important;
    flex-direction:column !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    margin-top:0 !important;
  }

  body.mobile-filters-open #controlsTopRow{
    display:none !important;
  }

  body.mobile-filters-open #filtersPanel{
    display:flex !important;
    flex-direction:column !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    margin-top:0 !important;
    padding:0 0 12px !important;
  }

  body.mobile-filters-open #categoryPills{
    margin:0 0 12px !important;
  }

  body.mobile-filters-open #categoryPills button{
    min-height:40px !important;
    padding:8px 12px !important;
    border:1px solid rgba(143,45,98,0.18) !important;
    background:rgba(255,255,255,0.72) !important;
    color:#8f2d62 !important;
    box-shadow:none !important;
  }

  body.mobile-filters-open #townSelect,
  body.mobile-filters-open .nearme-block{
    background:rgba(255,255,255,0.78) !important;
    border:1px solid rgba(143,45,98,0.16) !important;
    color:#402033 !important;
    box-shadow:none !important;
  }

  body.mobile-filters-open .nearme-btn{
    background:#fff !important;
    border:1px solid rgba(143,45,98,0.14) !important;
    color:#8f2d62 !important;
  }

  body.mobile-filters-open .nearme-clear,
  body.mobile-filters-open label,
  body.mobile-filters-open span,
  body.mobile-filters-open .nearme-title,
  body.mobile-filters-open .nearme-help{
    color:#6f2d52 !important;
  }

  #mobileFilterActions{
    display:none !important;
  }

  body.mobile-filters-open #mobileFilterActions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
    margin-top:auto !important;
    padding:14px 0 calc(8px + env(safe-area-inset-bottom, 0px)) !important;
    position:sticky !important;
    bottom:0 !important;
    background:linear-gradient(180deg, rgba(250,202,204,0) 0%, rgba(250,202,204,0.96) 20%) !important;
  }

  .mobile-filter-secondary,
  .mobile-filter-primary{
    min-height:46px !important;
    border-radius:14px !important;
    font-size:14px !important;
    font-weight:800 !important;
    border:none !important;
    cursor:pointer !important;
  }

  .mobile-filter-secondary{
    background:#d94b59 !important;
    color:#fff !important;
  }

  .mobile-filter-primary{
    background:#2da44e !important;
    color:#fff !important;
  }
}
/* =================================
   FINAL MOBILE FILTER OVERLAY FIX
   put this at the VERY BOTTOM
================================= */

@media (max-width:900px){

  /* real overlay container */
  #mobileFilterOverlay{
    display:none !important;
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    top:58px !important;
    bottom:56px !important;
    z-index:5000 !important;
    padding:0 !important;
    margin:0 !important;
    pointer-events:none !important;
  }

  body.mobile-filters-open #mobileFilterOverlay{
    display:block !important;
    pointer-events:auto !important;
  }

  #mobileFilterOverlay .mobile-filter-overlay-card{
    position:absolute !important;
    inset:0 !important;
    display:flex !important;
    flex-direction:column !important;
    background:#FACACC !important;
    border-radius:24px 24px 0 0 !important;
    overflow:hidden !important;
    box-shadow:0 -8px 24px rgba(0,0,0,0.14) !important;
  }

  #mobileFilterOverlay .mobile-filter-overlay-header{
    flex:0 0 auto !important;
    padding:16px 16px 10px !important;
    font-size:22px !important;
    font-weight:800 !important;
    color:#8f2d62 !important;
    background:#FACACC !important;
  }

  #mobileFilterOverlay .mobile-filter-overlay-body{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    padding:0 16px 12px !important;
    background:#FACACC !important;
  }

  /* while filters are open, hide the sheet completely */
  body.mobile-filters-open .sidebar,
  body.mobile-filters-open .app.stacked .sidebar{
    display:none !important;
  }

  /* the filter panel has been moved into the overlay */
  body.mobile-filters-open #filtersPanel{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
  }

  /* hide desktop-only pieces inside filter panel */
  body.mobile-filters-open #controlsTopRow,
  body.mobile-filters-open #filtersToggle,
  body.mobile-filters-open .panel .row:first-of-type,
  body.mobile-filters-open .panel .muted{
    display:none !important;
  }

  /* make pills and fields readable */
  body.mobile-filters-open #categoryPills{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    margin:0 !important;
  }

  body.mobile-filters-open #categoryPills button{
    min-height:40px !important;
    padding:8px 12px !important;
    border:1px solid rgba(143,45,98,0.18) !important;
    background:rgba(255,255,255,0.78) !important;
    color:#8f2d62 !important;
    box-shadow:none !important;
  }


  body.mobile-filters-open #categoryPills button.is-active,
  body.mobile-filters-open #categoryPills button[aria-pressed="true"]{
    border-color:var(--brand-pink) !important;
    background:var(--brand-pink) !important;
    color:#fff !important;
    box-shadow:0 0 0 2px rgba(238,90,166,0.18) !important;
  }

  body.mobile-filters-open #townSelect{    display:block !important;
    width:100% !important;
    min-height:44px !important;
    padding:10px 12px !important;
    border-radius:12px !important;
    border:1px solid rgba(143,45,98,0.16) !important;
    background:rgba(255,255,255,0.82) !important;
    color:#402033 !important;
  }

  body.mobile-filters-open .nearme-block{
    border:1px solid rgba(143,45,98,0.16) !important;
    border-radius:12px !important;
    padding:12px !important;
    background:rgba(255,255,255,0.72) !important;
  }

  body.mobile-filters-open .nearme-btn{
    background:#fff !important;
    border:1px solid rgba(143,45,98,0.14) !important;
    color:#8f2d62 !important;
  }

  body.mobile-filters-open .nearme-clear,
  body.mobile-filters-open label,
  body.mobile-filters-open span,
  body.mobile-filters-open .nearme-title,
  body.mobile-filters-open .nearme-help{
    color:#6f2d52 !important;
  }

  /* buttons row */
  #mobileFilterActions{
    display:none !important;
  }

  body.mobile-filters-open #mobileFilterActions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
    margin-top:16px !important;
    padding:14px 0 calc(8px + env(safe-area-inset-bottom, 0px)) !important;
    position:sticky !important;
    bottom:0 !important;
    background:linear-gradient(180deg, rgba(250,202,204,0) 0%, rgba(250,202,204,0.96) 22%) !important;
  }

  body.mobile-filters-open #mobileFilterCancelBtn,
  body.mobile-filters-open #mobileFilterApplyBtn{
    min-height:46px !important;
    border:none !important;
    border-radius:14px !important;
    font-size:14px !important;
    font-weight:800 !important;
    color:#fff !important;
    cursor:pointer !important;
  }

  body.mobile-filters-open #mobileFilterCancelBtn{
    background:#d94b59 !important;
  }

  body.mobile-filters-open #mobileFilterApplyBtn{
    background:#2da44e !important;
  }
}
/* =================================
   FINAL swipe sheet glass fix
   keep this as the LAST block
================================= */

@media (max-width:900px){

  .sidebar,
  .app.stacked .sidebar{
    background: linear-gradient(
      to bottom,
      rgba(255, 245, 246, 0.78),
      rgba(253, 230, 231, 0.42)
    ) !important;
    backdrop-filter: blur(18px) saturate(135%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(135%) !important;
    border-top: 1px solid rgba(255,255,255,0.42) !important;
    box-shadow: 0 -14px 32px rgba(0,0,0,0.18) !important;
  }

  body[data-mobile-sheet-state="collapsed"] .sidebar,
  body[data-mobile-sheet-state="collapsed"] .app.stacked .sidebar{
    background: linear-gradient(
      to bottom,
      rgba(255, 245, 246, 0.86),
      rgba(253, 230, 231, 0.52)
    ) !important;
    backdrop-filter: blur(18px) saturate(135%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(135%) !important;
  }

  .mobile-sheet-dragger{
    background: transparent !important;
  }

  .mobile-sheet-grab{
    width: 52px !important;
    height: 6px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,0.92) !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08) !important;
  }

  .mobile-sheet-summary,
  #mobileSheetSummary{
    color: #7a1f4a !important;
    text-shadow: none !important;
    font-weight: 800 !important;
  }

  .mobile-bottom-nav{
    background: rgba(255, 241, 242, 0.92) !important;
    backdrop-filter: blur(16px) saturate(135%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(135%) !important;
    border-top: 1px solid rgba(255,255,255,0.45) !important;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.10) !important;
  }

  .mobile-bottom-nav button,
  .mobile-nav-btn{
    background: transparent !important;
    color: #7a1f4a !important;
  }

  .mobile-nav-icon,
  .mobile-nav-label{
    color: #7a1f4a !important;
  }

  .mobile-bottom-nav button.active,
  .mobile-nav-btn.active{
    color: #ee5aa6 !important;
  }

  .mobile-bottom-nav button.active .mobile-nav-icon,
  .mobile-bottom-nav button.active .mobile-nav-label,
  .mobile-nav-btn.active .mobile-nav-icon,
  .mobile-nav-btn.active .mobile-nav-label{
    color: #ee5aa6 !important;
  }
}


/* =================================
   POPUP + LIST REWORK
================================= */

.list-item{
  padding:12px 12px 10px;
}

.store-name-row{
  margin-bottom:2px !important;
  align-items:center;
}

.store-name-left{
  gap:8px;
  min-width:0;
}

.list-item-title{
  margin:0 !important;
  line-height:1.12 !important;
}

.list-item-town{
  margin:0 0 6px !important;
  line-height:1.15 !important;
}

.store-description-wrap{
  margin-bottom:0 !important;
}

.list-item-desc{
  margin:0 !important;
}

.list-item-desc--empty{
  display:none;
}

.list-extra-info{
  display:none;
  margin-top:8px;
}

.list-extra-info.is-expanded{
  display:block;
}

.list-extra-info .store-status-line{
  margin-bottom:6px;
}

.list-extra-info .store-meta{
  margin-bottom:4px;
}

.list-extra-info .social-icons,
.list-extra-info .popup-socials{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:10px 0 10px;
}

.list-extra-info .social-icons a,
.list-extra-info .popup-socials a{
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  padding:0;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #e3d484;
  background:#fff8dc;
}

.list-extra-info .social-icons a svg,
.list-extra-info .popup-socials a svg,
.list-extra-info .social-icons a img,
.list-extra-info .popup-socials a img{
  width:20px;
  height:20px;
}

.list-item-actions--details{
  margin-top:8px;
  align-items:center;
}

.list-btn-circle{
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  padding:0 !important;
  border-radius:999px !important;
  font-size:18px !important;
  line-height:1 !important;
  flex:0 0 auto !important;
}

.popup--minimal{
  padding:12px;
}

.popup-header-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}

.popup-title-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.popup-title-text{
  font-weight:800;
  font-size:16px;
  line-height:1.15;
  color:#111;
}

.popup-number-badge{
  width:20px;
  height:20px;
  min-width:20px;
  min-height:20px;
  font-size:11px;
}

.popup-header-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}

.popup-actions--single{
  margin-top:12px !important;
}

.popup-actions--single .popup-find-btn{
  width:100%;
}

@media (max-width:900px){
  .list-item{
    padding:11px 11px 9px !important;
  }

  .store-name-row{
    margin-bottom:1px !important;
  }

  .list-item-title{
    font-size:15px;
    line-height:1.08 !important;
  }

  .list-item-town{
    font-size:12px;
    margin-bottom:5px !important;
  }

  .list-btn-circle{
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
    font-size:17px !important;
  }

  .popup-title-text{
    font-size:15px;
  }

  .popup-number-badge{
    width:18px;
    height:18px;
    min-width:18px;
    min-height:18px;
    font-size:10px;
  }
}

/* =================================
   FINAL list card visible socials/actions
================================= */

.list-social-row{
  margin-top:10px;
}

.list-social-row .social-icons,
.list-social-row .popup-socials{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0;
}

.list-social-row .social-icons a,
.list-social-row .popup-socials a{
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  padding:0;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #e3d484;
  background:#fff8dc;
}

.list-social-row .social-icons a svg,
.list-social-row .popup-socials a svg,
.list-social-row .social-icons a img,
.list-social-row .popup-socials a img{
  width:20px;
  height:20px;
}

.list-item-actions--details{
  margin-top:10px;
  align-items:center;
}

.list-item-actions--details-empty{
  display:none;
}

.list-item-actions--details .list-btn:last-child{
  min-width:120px;
}

@media (max-width:900px){
  .list-social-row .social-icons a,
  .list-social-row .popup-socials a{
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
  }

  .list-item-actions--details .list-btn:last-child{
    min-width:110px;
  }
}


/* =================================
   FINAL popup glass + closed card state
   keep this at the very bottom
================================= */

.leaflet-popup-content-wrapper{
  background: linear-gradient(
    to bottom,
    rgba(255, 245, 246, 0.90),
    rgba(253, 230, 231, 0.72)
  ) !important;
  backdrop-filter: blur(18px) saturate(135%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(135%) !important;
  border: 1px solid rgba(255,255,255,0.42) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,0.16) !important;
}

.leaflet-popup-tip{
  background: rgba(255, 241, 242, 0.96) !important;
}

.popup,
.popup--minimal{
  background: transparent !important;
}

.popup-title-text{
  color:#7a1f4a !important;
}

.popup .popup-find-btn,
.popup .eng-action-btn,
.popup .popup-actions a,
.popup .actions a{
  background: rgba(255,255,255,0.70) !important;
  border: 1px solid rgba(122,31,74,0.14) !important;
  color:#7a1f4a !important;
  box-shadow:none !important;
}

.popup .popup-find-btn:hover,
.popup .eng-action-btn:hover,
.popup .popup-actions a:hover,
.popup .actions a:hover{
  background: rgba(255,255,255,0.86) !important;
  border-color: rgba(122,31,74,0.22) !important;
  color:#7a1f4a !important;
}

.popup .fav-btn{
  background: rgba(255,255,255,0.72) !important;
  border: 1px solid rgba(122,31,74,0.14) !important;
}

.list-item.is-closed{
  opacity: 0.72;
}

.list-item.is-closed .list-item-title,
.list-item.is-closed .list-item-town,
.list-item.is-closed .list-item-status,
.list-item.is-closed .store-meta,
.list-item.is-closed .list-item-desc{
  color:#555 !important;
}

.list-item.is-dimmed-by-open-filter{
  opacity: 0.55 !important;
}

@media (max-width:900px){
  .leaflet-popup-content-wrapper{
    background: linear-gradient(
      to bottom,
      rgba(255, 245, 246, 0.94),
      rgba(253, 230, 231, 0.80)
    ) !important;
    backdrop-filter: blur(18px) saturate(135%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(135%) !important;
  }
}


/* =================================
   FINAL compact glass popup polish
   keep this at the very bottom
================================= */

.leaflet-popup-content-wrapper{
  max-width: 292px !important;
  border-radius: 18px !important;
  padding: 0 !important;
  background: linear-gradient(
    to bottom,
    rgba(255, 245, 246, 0.96),
    rgba(253, 230, 231, 0.90)
  ) !important;
  backdrop-filter: blur(18px) saturate(135%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(135%) !important;
  border: 1px solid rgba(255,255,255,0.52) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,0.16) !important;
}

.leaflet-popup-content{
  margin: 0 !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 292px !important;
}

.popup{
  padding: 11px 11px 10px !important;
  font-family: "Quicksand", system-ui, sans-serif;
}

.popup .store-name-row{
  gap: 8px !important;
  margin-bottom: 4px !important;
}

.popup .store-name-left,
.popup .store-name-right{
  gap: 8px !important;
}

.popup .store-number-badge{
  width: 20px !important;
  height: 20px !important;
  font-size: 11px !important;
}

.popup .store-highlight{
  margin-bottom: 6px !important;
  padding: 7px 8px !important;
  border-radius: 9px !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
}

.popup .store-meta,
.popup .store-location-line,
.popup .store-status-text,
.popup .hub-feed-text,
.popup .list-item-town,
.popup .list-item-status,
.popup .list-item-desc,
.popup div{
  font-size: 11px !important;
  line-height: 1.3 !important;
}

.popup .social-icons,
.popup .popup-socials{
  gap: 8px !important;
  margin-top: 9px !important;
  margin-bottom: 9px !important;
}

.popup .social-icons a,
.popup .popup-socials a{
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,0.52) !important;
  background: rgba(255,255,255,0.74) !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.06) !important;
}

.popup .social-icons a svg,
.popup .popup-socials a svg,
.popup .social-icons a img,
.popup .popup-socials a img{
  width: 17px !important;
  height: 17px !important;
}

.popup .actions,
.popup .popup-actions{
  gap: 7px !important;
  margin-top: 9px !important;
}

.popup a,
.popup .eng-action-btn,
.popup .popup-find-btn,
.popup .popup-actions a,
.popup .popup-actions .popup-find-btn,
.popup .actions a,
.popup .actions .popup-find-btn{
  min-height: 34px !important;
  padding: 7px 10px !important;
  border-radius: 11px !important;
  border: 1px solid rgba(255,255,255,0.52) !important;
  background: rgba(255,255,255,0.76) !important;
  color: #7a1f4a !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05) !important;
}

.popup a:hover,
.popup .eng-action-btn:hover,
.popup .popup-find-btn:hover,
.popup .popup-actions a:hover,
.popup .actions a:hover{
  background: rgba(255,255,255,0.92) !important;
  border-color: rgba(238,90,166,0.40) !important;
  color: #a52b67 !important;
}

.popup .fav-btn{
  min-width: 34px !important;
  min-height: 34px !important;
  border-radius: 11px !important;
}

.popup:has(.fav-btn[aria-pressed="true"])::after{
  top: 10px !important;
  right: 46px !important;
  font-size: 10px !important;
  padding: 3px 7px !important;
}

.leaflet-popup-tip-container{
  margin-top: -1px !important;
}

.leaflet-popup-tip{
  background: rgba(255, 241, 242, 0.94) !important;
  box-shadow: none !important;
}

@media (max-width:900px){
  .leaflet-popup-content-wrapper{
    max-width: min(268px, calc(100vw - 34px)) !important;
  }

  .leaflet-popup-content{
    max-width: min(268px, calc(100vw - 34px)) !important;
  }

  .popup{
    padding: 10px 10px 9px !important;
  }

  .popup .social-icons a,
  .popup .popup-socials a{
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }

  .popup a,
  .popup .eng-action-btn,
  .popup .popup-find-btn,
  .popup .popup-actions a,
  .popup .actions a{
    min-height: 32px !important;
    padding: 6px 9px !important;
    font-size: 10.5px !important;
  }
}


/* =========================
   V4.3.1 COMMUNITY RECOVERY
   Clean Community only
   ========================= */

#communityContainer{
  padding: 0;
}

#communityContainer .community-shell{
  --community-bottom-safe: calc(92px + env(safe-area-inset-bottom, 0px));
  display: grid;
  gap: 12px;
  padding: 12px 12px var(--community-bottom-safe);
}

#communityContainer .community-sticky-wrap{
  position: sticky;
  top: 0;
  z-index: 12;
  display: grid;
  gap: 10px;
  padding-bottom: 2px;
  background: linear-gradient(180deg, rgba(250,247,249,0.98) 0%, rgba(250,247,249,0.96) 78%, rgba(250,247,249,0) 100%);
  backdrop-filter: blur(8px);
}

#communityContainer .community-top-switcher{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  transition: transform .22s ease, opacity .22s ease, max-height .22s ease, margin .22s ease, padding .22s ease;
  transform-origin: top center;
  max-height: 70px;
  overflow: hidden;
}

#communityContainer .community-top-switcher.is-chrome-hidden{
  transform: translateY(-14px);
  opacity: 0;
  max-height: 0;
  margin: 0;
  pointer-events: none;
}

#communityContainer .community-switch-btn{
  appearance: none;
  border: 1px solid #ead7e1;
  background: #ffffff;
  color: #5b4651;
  border-radius: 999px;
  min-height: 44px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 800;
}

#communityContainer .community-switch-btn.is-active{
  background: #ef5aa6;
  color: #ffffff;
  border-color: #ef5aa6;
}

#communityContainer .community-switch-btn.is-disabled{
  opacity: 0.6;
}

#communityContainer .community-post-now-row{
  display: grid;
  position: sticky;
  top: 0;
  z-index: 13;
}

#communityContainer .community-post-trigger{
  width: 100%;
  min-height: 46px;
  border-radius: 16px;
}

#communityContainer .community-mobile-pager{
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
}

#communityContainer .community-mobile-pager-text{
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  color: #6e5b66;
}

#communityContainer .community-pager-btn{
  appearance: none;
  border: 1px solid #ead7e1;
  background: #fff;
  color: #5f4a56;
  border-radius: 12px;
  min-height: 36px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 800;
}

#communityContainer .community-mobile-stage{
  display: block;
  min-height: calc(100dvh - 190px - var(--community-bottom-safe));
}

#communityContainer .community-desktop-feed{
  display: none;
}

#communityContainer .community-post-card{
  position: relative;
  display: grid;
  grid-template-rows: minmax(220px, 35vh) auto;
  min-height: calc(100dvh - 214px - var(--community-bottom-safe));
  border: 1px solid #eadce4;
  border-radius: 22px;
  background: #ffffff;
  overflow: visible;
  box-shadow: 0 14px 34px rgba(23, 18, 23, 0.08);
}

#communityContainer .community-post-media{
  position: relative;
  background: radial-gradient(circle at top, #fff6fb 0%, #f8eef3 72%, #f2e3eb 100%);
  overflow: hidden;
}


.inline-action-menu-wrap{
  position:relative;
}

.inline-action-menu-btn{
  appearance:none;
  width:38px;
  height:38px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,0.94);
  color:#4a3943;
  font-size:24px;
  line-height:1;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(20,18,20,0.14);
}

.inline-action-menu-btn-small{
  width:30px;
  height:30px;
  font-size:20px;
}

.inline-action-menu-panel{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  min-width:148px;
  max-width:min(220px, calc(100vw - 16px));
  padding:6px;
  border-radius:16px;
  background:#fff;
  border:1px solid #ead7e1;
  box-shadow:0 16px 34px rgba(20,18,20,0.16);
  display:grid;
  gap:4px;
  z-index:5000;
}

.inline-action-menu-panel[hidden]{
  display:none !important;
}

.inline-action-menu-panel-right{
  left:auto;
  right:0;
}

.inline-action-menu-item{
  appearance:none;
  width:100%;
  text-align:left;
  border:none;
  background:#fff;
  color:#44363f;
  border-radius:12px;
  padding:10px 12px;
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}

.inline-action-menu-item:hover{
  background:#faf4f7;
}

.inline-action-menu-item-danger{
  color:#b13262;
}

#communityContainer .community-post-menu-wrap{
  position:absolute;
  top:12px;
  right:12px;
  z-index:4;
}

#communityContainer .community-comment-top-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}

#communityContainer .community-comment-menu-wrap{
  flex:0 0 auto;
}

#communityContainer .community-post-image{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center;
  background: transparent;
}

#communityContainer .community-post-image-placeholder{
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8e667a;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

#communityContainer .community-post-content{
  display: grid;
  grid-template-rows: auto auto minmax(92px, 1fr) auto auto;
  gap: 10px;
  min-height: 0;
  padding: 14px 14px 12px;
}

#communityContainer .community-post-date-row{
  font-size: 12px;
  font-weight: 700;
  color: #7a6872;
}


#communityContainer .community-post-author-row{
  font-size:12px;
  line-height:1.35;
  color:#7a6b75;
  margin:0 0 8px;
}

#communityContainer .community-comment-author{
  font-size:12px;
  line-height:1.35;
  font-weight:700;
  color:#5c4b56;
  margin:0 0 4px;
}
#communityContainer .community-post-title-row{
  font-size: 20px;
  line-height: 1.15;
  font-weight: 900;
  color: #241c21;
  word-break: break-word;
}

#communityContainer .community-post-description-box{
  min-height: 92px;
  max-height: 156px;
  border: 1px solid #efdfE8;
  border-radius: 16px;
  background: #fff8fb;
  overflow: hidden;
}

#communityContainer .community-post-description-inner{
  height: 100%;
  max-height: 156px;
  padding: 12px;
  overflow-y: auto;
  color: #4f4750;
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}

#communityContainer .community-post-tag-row{
  min-height: 22px;
  font-size: 12px;
  font-weight: 700;
  color: #8d5b76;
  word-break: break-word;
}

#communityContainer .community-post-footer{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-self: end;
  margin-top: auto;
}

#communityContainer .community-footer-btn{
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid #ead7e1;
  background: #ffffff;
  color: #5c4953;
  font-size: 13px;
  font-weight: 800;
}

#communityContainer .community-like-btn.is-liked,
#communityContainer .community-like-btn:disabled{
  background: #fff2f7;
  color: #ca447f;
  border-color: #f2bfd5;
  cursor: default;
}

#communityContainer .community-comments-panel{
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  display: none;
  grid-template-rows: auto auto minmax(80px, 1fr) auto;
  gap: 10px;
  max-height: min(54vh, 420px);
  padding: 12px;
  border: 1px solid #e8d6df;
  border-radius: 18px;
  background: rgba(255,255,255,0.98);
  box-shadow: 0 18px 42px rgba(22,18,22,0.18);
  backdrop-filter: blur(8px);
}

#communityContainer .community-comments-panel.is-open{
  display: grid;
}

#communityContainer .community-comments-panel-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #241c21;
}

#communityContainer .community-comments-close{
  appearance: none;
  border: 1px solid #ead7e1;
  background: #fff;
  color: #584650;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 900;
}

#communityContainer .community-comments-preview{
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: 10px;
  align-items: start;
  min-height: 0;
}

#communityContainer .community-comments-preview-media{
  width: 68px;
  height: 68px;
  overflow: hidden;
  border-radius: 12px;
  background: #f7eef3;
}

#communityContainer .community-comments-preview-media img,
#communityContainer .community-comments-preview-placeholder{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

#communityContainer .community-comments-preview-placeholder{
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8e667a;
  font-size: 11px;
  font-weight: 800;
}

#communityContainer .community-comments-preview-copy{
  min-width: 0;
}

#communityContainer .community-comments-preview-title{
  font-size: 13px;
  font-weight: 900;
  color: #261d22;
  margin-bottom: 4px;
  word-break: break-word;
}

#communityContainer .community-comments-preview-desc{
  font-size: 12px;
  line-height: 1.45;
  color: #5b5158;
  max-height: 52px;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

#communityContainer .community-comments-list{
  min-height: 80px;
  max-height: 170px;
  overflow-y: auto;
  display: grid;
  gap: 8px;
  padding-right: 2px;
}

#communityContainer .community-comment-row{
  padding: 9px 10px;
  border-radius: 12px;
  background: #faf4f7;
  border: 1px solid #efdfE8;
}

#communityContainer .community-comment-text{
  color: #30272c;
  font-size: 13px;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}

#communityContainer .community-comment-date{
  margin-top: 5px;
  font-size: 11px;
  color: #7f6c77;
}

#communityContainer .community-comment-reactions{
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

#communityContainer .community-comment-reaction-btn{
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #ead7e1;
  background: #ffffff;
  color: #6f5b66;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
}

#communityContainer .community-comment-reaction-btn.is-active{
  border-color: #ef5aa6;
  color: #ef5aa6;
  background: #fff2f8;
}

#communityContainer .community-comments-empty{
  padding: 16px 10px;
  border-radius: 12px;
  background: #faf4f7;
  border: 1px dashed #ead7e1;
  color: #7c6973;
  font-size: 12px;
  text-align: center;
}

#communityContainer .community-comments-compose{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: end;
}

#communityContainer .community-comment-input{
  width: 100%;
  min-height: 74px;
  resize: none;
  padding: 11px 12px;
  border-radius: 14px;
  border: 1px solid #e7d7df;
  background: #ffffff;
  color: #2a2126;
  font: inherit;
}

#communityContainer .community-comment-submit{
  appearance: none;
  min-width: 74px;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 14px;
  border: none;
  background: #ef5aa6;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

#communityContainer .community-empty-state{
  display: grid;
  gap: 6px;
  padding: 22px 18px;
  border: 1px dashed #ead7e1;
  border-radius: 20px;
  background: #ffffff;
  text-align: center;
}

#communityContainer .community-empty-title{
  font-size: 18px;
  font-weight: 900;
  color: #241c21;
}

#communityContainer .community-empty-text{
  color: #5e545b;
  font-size: 14px;
}

#communityContainer .community-modal-backdrop{
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(22, 18, 22, 0.54);
}

#communityContainer .community-modal-backdrop.is-open{
  display: flex;
}

#communityContainer .community-modal{
  width: min(560px, 100%);
  max-height: calc(100dvh - 32px);
  overflow: auto;
  padding: 18px;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(20, 16, 20, 0.3);
}

#communityContainer .community-modal-head{
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

#communityContainer .community-modal-kicker{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #fff2f7;
  color: #d24787;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

#communityContainer .community-modal-head h3{
  margin: 8px 0 0;
  font-size: 24px;
  line-height: 1.1;
}

#communityContainer .community-modal-close,
#communityContainer .community-secondary-btn{
  appearance: none;
  border: none;
  background: #f6edf3;
  color: #5b4854;
}

#communityContainer .community-modal-close{
  width: 40px;
  height: 40px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 900;
}

#communityContainer .community-compose-form{
  display: grid;
  gap: 12px;
}

#communityContainer .community-compose-form label{
  display: grid;
  gap: 6px;
}

#communityContainer .community-compose-form label span{
  font-size: 12px;
  font-weight: 800;
  color: #5f4d58;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

#communityContainer .community-compose-form input,
#communityContainer .community-compose-form textarea{
  width: 100%;
  border: 1px solid #e8d8e0;
  border-radius: 14px;
  background: #fff;
  color: #2c2227;
  font: inherit;
  padding: 12px 13px;
}

#communityContainer .community-compose-form textarea{
  min-height: 130px;
  resize: vertical;
}

#communityContainer .community-compose-actions{
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

#communityContainer .community-secondary-btn,
#communityContainer .community-primary-btn{
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 800;
}

@media (max-width: 900px){
  #communityContainer{
    overflow: hidden;
  }

  #communityContainer .community-shell{
    --community-mobile-safe-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
    grid-template-rows: auto 1fr;
    gap: 10px;
    min-height: calc(100dvh - 12px);
    padding: 12px 12px var(--community-mobile-safe-bottom);
    overflow: hidden;
  }

  #communityContainer .community-sticky-wrap{
    gap: 8px;
    padding-bottom: 0;
  }

  #communityContainer .community-mobile-stage{
    min-height: 0;
    height: calc(100dvh - 146px - var(--community-mobile-safe-bottom));
    overflow: hidden;
  }

  #communityContainer .community-mobile-stage > .community-post-card,
  #communityContainer .community-mobile-stage > [data-community-post-id]{
    height: 100%;
    min-height: 0;
  }

  #communityContainer .community-post-card{
    grid-template-rows: minmax(200px, 42%) minmax(0, 1fr);
    min-height: 0;
    height: 100%;
  }

  #communityContainer .community-post-content{
    grid-template-rows: auto auto auto minmax(0, 1fr) auto auto;
    gap: 8px;
    min-height: 0;
    overflow: hidden;
  }

  #communityContainer .community-post-description-box{
    min-height: 0;
    max-height: none;
    height: 100%;
  }

  #communityContainer .community-post-description-inner{
    max-height: none;
    min-height: 0;
    height: 100%;
  }

  #communityContainer .community-comments-panel{
    max-height: min(48vh, 360px);
  }
}

@media (min-width: 901px){
  #communityContainer .community-shell{
    padding: 16px 16px 24px;
  }

  #communityContainer .community-sticky-wrap{
    position: sticky;
    top: 0;
  }

  #communityContainer .community-mobile-stage{
    display: none;
    min-height: 0;
  }

  #communityContainer .community-mobile-pager{
    display: none;
  }

  #communityContainer .community-desktop-feed{
    display: grid;
    gap: 16px;
  }

  #communityContainer .community-post-card{
    grid-template-columns: minmax(260px, 320px) 1fr;
    grid-template-rows: none;
    min-height: 420px;
    height: auto;
  }

  #communityContainer .community-post-image{
    object-fit: contain;
  }

  #communityContainer .community-post-content{
    grid-template-rows: auto auto auto minmax(140px, 1fr) auto auto;
    padding: 16px;
  }

  #communityContainer .community-post-description-box{
    min-height: 140px;
    max-height: 240px;
    height: auto;
  }

  #communityContainer .community-post-description-inner{
    max-height: 240px;
    height: auto;
  }

  #communityContainer .community-comments-panel{
    left: auto;
    right: 14px;
    bottom: 14px;
    width: min(460px, calc(100% - 28px));
    max-height: 360px;
  }
}

#communityContainer .community-sticky-wrap{
  transition: opacity .22s ease;
}

#communityContainer .community-mobile-stage [data-community-post-id]{
  touch-action: pan-y pinch-zoom;
}

#communityContainer .community-mobile-pager{
  display: none !important;
}


/* V4.3.1 Community mobile height auto-fit override */
@media (max-width: 900px){
  #communityContainer .community-shell{
    --community-mobile-safe-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
    min-height: calc(100dvh - 12px);
    height: calc(100dvh - 12px);
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
  }

  #communityContainer .community-sticky-wrap{
    flex: 0 0 auto;
  }

  #communityContainer .community-mobile-stage{
    min-height: 0;
    height: 100%;
    overflow: hidden;
    display: flex;
  }

  #communityContainer .community-mobile-stage > .community-post-card,
  #communityContainer .community-mobile-stage > [data-community-post-id]{
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
  }

  #communityContainer .community-post-card{
    height: 100%;
    min-height: 0;
    max-height: 100%;
    grid-template-rows: minmax(180px, 42%) minmax(0, 1fr);
  }

  #communityContainer .community-post-media{
    min-height: 0;
    height: 100%;
  }

  #communityContainer .community-post-content{
    min-height: 0;
    height: 100%;
    grid-template-rows: auto auto auto minmax(0, 1fr) auto auto;
    align-content: stretch;
  }

  #communityContainer .community-post-description-box{
    min-height: 0;
    height: 100%;
    max-height: none;
  }

  #communityContainer .community-post-description-inner{
    min-height: 0;
    height: 100%;
    max-height: none;
  }
}

/* A2 auth + profile */
.auth-shell{
  display:grid;
  gap:18px;
  padding:18px 0 28px;
}

.auth-card-head h2,
.profile-head h2{
  margin:0 0 6px;
}

.auth-card-head p,
.profile-head p{
  margin:0;
  color:#666;
}

.auth-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}

.auth-form{
  display:grid;
  gap:12px;
  padding:16px;
  background:#fffafc;
  border:1px solid #f0d7e0;
  border-radius:14px;
}

.auth-form h3{
  margin:0;
}

.auth-form label,
.auth-dynamic-fields{
  display:grid;
  gap:10px;
}

.auth-dynamic-fields[hidden]{
  display:none !important;
}

.auth-two-col{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}

.auth-region-label{
  display:flex;
  align-items:center;
  gap:8px;
}

.auth-help-btn{
  width:26px;
  height:26px;
  border-radius:999px;
  border:1px solid #dfc6d0;
  background:#fff;
  color:#704b5f;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
}

.auth-form label span{
  font-weight:600;
}

.auth-form input,
.auth-form select,
.auth-form textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid #d6c1cc;
  border-radius:10px;
  font:inherit;
  box-sizing:border-box;
  background:#fff;
}

.auth-form textarea{
  resize:vertical;
  min-height:96px;
}

.auth-form input[type="date"]{
  min-height:46px;
}

.auth-check{
  grid-template-columns:auto 1fr;
  align-items:start;
}

.auth-check input{
  width:auto;
  margin-top:3px;
}

.auth-mini{
  font-size:.88rem;
  color:#6d5560;
}

.auth-notice{
  padding:12px 14px;
  border-radius:12px;
  background:rgba(15,74,156,.08);
  border:1px solid rgba(15,74,156,.18);
  color:#24446d;
  font-size:.94rem;
}

.auth-message{
  min-height:20px;
  color:#1d5f2c;
  font-size:.92rem;
}

.auth-message.is-error{
  color:#a33434;
}

.profile-card{
  display:grid;
  gap:12px;
}

.profile-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.profile-detail{
  font-size:.97rem;
}

.profile-detail strong{
  color:#444;
}

@media (max-width: 900px){
  .auth-grid{
    grid-template-columns:1fr;
  }

  .auth-two-col{
    grid-template-columns:1fr;
  }

  .profile-head{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* A2 modal auth flow */
.auth-shell-logged-out{
  min-height:100%;
}

.auth-card-logged-out{
  display:grid;
  gap:18px;
  align-content:start;
}

.auth-card-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.auth-overlay{
  position:fixed;
  inset:0;
  background:rgba(21,12,18,.34);
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:1200;
}

.auth-overlay.is-open{
  display:flex;
}

.auth-modal{
  width:min(100%, 560px);
  max-height:min(88vh, 820px);
  overflow:auto;
  background:#fffdfd;
  border:1px solid #efd4df;
  border-radius:22px;
  box-shadow:0 24px 50px rgba(52,24,38,.18);
  padding:18px;
}

.auth-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.auth-modal-head h3{
  margin:0;
}

.auth-modal-close{
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid #dfc6d0;
  background:#fff;
  color:#704b5f;
  font:inherit;
  cursor:pointer;
}

.auth-form-modal{
  padding:0;
  border:0;
  background:transparent;
}

.auth-submit-btn{
  width:100%;
}

.auth-switch-link{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin:4px 0 0;
  color:#c24f8e;
  font:inherit;
  font-weight:700;
  text-align:left;
  cursor:pointer;
}

.auth-image-overlay{
  position:fixed;
  inset:0;
  background:rgba(21,12,18,.42);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:1250;
}

.auth-image-overlay[hidden]{
  display:none;
}

.auth-image-modal{
  width:min(100%, 760px);
  max-height:min(90vh, 900px);
  overflow:auto;
  background:#fffdfd;
  border:1px solid #efd4df;
  border-radius:22px;
  box-shadow:0 24px 50px rgba(52,24,38,.18);
  padding:18px;
}

.auth-image-head{
  margin-bottom:14px;
}

.auth-region-image{
  display:block;
  width:100%;
  height:auto;
  max-height:min(74vh, 780px);
  object-fit:contain;
  border-radius:16px;
  border:1px solid #efd4df;
  background:#eef6ff;
}

@media (max-width: 640px){
  .auth-overlay{
    align-items:flex-start;
    justify-content:center;
    padding:8px 12px calc(env(safe-area-inset-bottom, 0px) + 74px);
  }

  .auth-modal{
    width:100%;
    max-height:calc(100dvh - 16px - env(safe-area-inset-bottom, 0px) - 57px);
    min-height:calc(100dvh - 16px - env(safe-area-inset-bottom, 0px) - 57px);
    margin-top:0;
    border-radius:22px;
    padding:16px;
  }

  .auth-image-overlay{
    padding:12px;
  }

  .auth-image-modal{
    width:100%;
    padding:14px;
  }

  .auth-region-image{
    max-height:68vh;
  }

  .auth-card-actions{
    flex-direction:column;
  }

  .auth-card-actions .hub-btn,
  .auth-card-actions .community-secondary-btn{
    width:100%;
  }
}


/* ============================
A2.3 PERSONAL PROFILE
============================ */
.profile-shell{
  gap:18px;
}

.profile-card-personalized{
  position:relative;
  overflow:visible;
}


.profile-quick-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:14px;
}

.profile-quick-actions-own{
  width:100%;
}

.profile-quick-action-btn{
  border:1px solid rgba(0,0,0,0.08);
  background:#fff;
  border-radius:14px;
  width:64px;
  min-width:64px;
  height:46px;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,0.05);
  position:relative;
  flex:0 0 64px;
}

.profile-quick-action-btn.is-active,
.profile-quick-action-btn:hover,
.profile-quick-action-btn:focus-visible{
  background:#faf3f8;
  border-color:rgba(165,47,92,0.18);
}

.profile-quick-action-icon{
  font-size:16px;
  line-height:1;
}

.profile-quick-action-badge{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:22px;
  height:22px;
  border-radius:999px;
  background:#a52f5c;
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.85rem;
  font-weight:800;
  box-shadow:0 8px 18px rgba(165,47,92,0.28);
}

.profile-menu-wrap-top{
  position:relative;
  flex:0 0 64px;
}

.profile-top-menu-btn{
  width:64px;
  min-width:64px;
  height:46px;
  font-size:20px;
}

.profile-top-menu-btn .profile-quick-action-icon{
  font-size:20px;
}


.profile-visitor-actions{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.profile-store-link-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.profile-store-link-btn{
  text-decoration:none;
}

.profile-store-link-btn svg{
  width:18px;
  height:18px;
  display:block;
}

.profile-message-visit-btn{
  min-width:120px;
}

.stage-btn.has-alert,
.mobile-nav-btn.has-alert{
  position:relative;
}

.stage-btn.has-alert::after,
.mobile-nav-btn.has-alert::after{
  content:'!';
  position:absolute;
  top:6px;
  right:10px;
  width:18px;
  height:18px;
  border-radius:999px;
  background:#a52f5c;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.78rem;
  font-weight:800;
}

.profile-message-card,
.profile-notification-card{
  margin-top:0;
}
.profile-inbox-overlay{
  z-index:1260;
}

.profile-inbox-modal{
  width:min(100%, 720px);
  max-height:min(88vh, 900px);
  display:flex;
  flex-direction:column;
}

.profile-inbox-head{
  margin-bottom:10px;
}

.profile-inbox-body{
  overflow:auto;
}

.profile-inbox-panel-card{
  border:none;
  box-shadow:none;
  padding:0;
}


.message-recipient-field{
  position:relative;
}

.message-recipient-field input[type="text"]{
  position:relative;
  z-index:1;
}

.message-recipient-suggestions{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  right:0;
  z-index:40;
  max-height:260px;
  overflow:auto;
  border:1px solid rgba(0,0,0,0.09);
  border-radius:16px;
  background:#fff;
  box-shadow:0 14px 30px rgba(15,23,42,0.12);
}

.message-recipient-suggestion{
  width:100%;
  border:none;
  border-bottom:1px solid rgba(0,0,0,0.06);
  background:#fff;
  padding:12px 14px;
  text-align:left;
  display:grid;
  gap:4px;
  cursor:pointer;
}

.message-recipient-suggestion:last-child{
  border-bottom:none;
}

.message-recipient-suggestion:hover,
.message-recipient-suggestion:focus-visible{
  background:#faf7fb;
}

.message-recipient-suggestion strong{
  color:#2b2b2b;
  font-size:.96rem;
}

.message-recipient-suggestion span{
  color:#5f6368;
  font-size:.86rem;
}

.message-list,
.notification-list{
  display:grid;
  gap:12px;
  margin-top:14px;
}

.message-thread-list{
  display:grid;
  gap:12px;
  margin-top:14px;
}

.message-thread-row{
  width:100%;
  text-align:left;
  border:1px solid rgba(0,0,0,0.07);
  border-radius:16px;
  padding:14px;
  background:#fff;
  cursor:pointer;
}

.message-thread-row:hover,
.message-thread-row:focus-visible{
  background:#faf7fb;
  border-color:rgba(165,47,92,0.18);
}

.message-thread-row-head,
.message-thread-row-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.message-thread-row-head{
  margin-bottom:6px;
}

.message-thread-row-head span,
.message-thread-row-meta span:first-child{
  color:#5f6368;
  font-size:.92rem;
}

.message-thread-row-preview{
  color:#2b2b2b;
  line-height:1.5;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.message-thread-row-meta{
  margin-top:10px;
}

.message-thread-badge{
  min-width:24px;
  height:24px;
  padding:0 8px;
  border-radius:999px;
  background:#a52f5c;
  color:#fff !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.82rem;
  font-weight:800;
}

.profile-section-head-stack{
  align-items:flex-start;
}

.profile-section-head-stack p{
  margin:4px 0 0;
  color:#5f6368;
}

.message-row.is-unread{
  border-color:rgba(165,47,92,0.22);
  background:#fff8fb;
}

.message-save-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  color:#5f6368;
  font-size:.92rem;
}

.message-save-toggle input{
  accent-color:#a52f5c;
}

.message-row,
.notification-row{
  border:1px solid rgba(0,0,0,0.07);
  border-radius:16px;
  padding:12px 14px;
  background:#fff;
}

.notification-row{
  width:100%;
  text-align:left;
  cursor:default;
}

.notification-row.is-actionable{
  cursor:pointer;
}

.notification-row:disabled{
  opacity:1;
}

.message-row.is-mine{
  background:#faf7fb;
}

.notification-row.is-unread{
  border-color:rgba(165,47,92,0.22);
  background:#fff8fb;
}

.message-row-head,
.notification-row-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:6px;
  font-size:.92rem;
}

.message-row-head span,
.notification-row-head span{
  color:#5f6368;
}

.message-row-text,
.notification-row-text{
  color:#2b2b2b;
  line-height:1.5;
  white-space:pre-wrap;
}

.notification-row-action{
  margin-top:8px;
  font-size:.82rem;
  color:#a52f5c;
  font-weight:700;
}
.profile-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.profile-hero-main{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.profile-avatar{
  width:74px;
  height:74px;
  border-radius:999px;
  background:linear-gradient(135deg,#f7d5e5,#f4f1fb);
  border:1px solid rgba(0,0,0,0.08);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  font-weight:800;
  color:#743057;
  flex:0 0 74px;
}

.profile-hero-copy h2{
  margin:0;
  font-size:1.4rem;
}

.profile-hero-location,
.profile-hero-type{
  color:#5f6368;
  margin-top:4px;
}

.profile-menu-wrap{
  position:relative;
  flex:0 0 auto;
}

.profile-menu-btn{
  border:1px solid rgba(0,0,0,0.1);
  background:#fff;
  border-radius:14px;
  width:44px;
  height:44px;
  font-size:20px;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(0,0,0,0.08);
}

.profile-menu-panel[hidden]{
  display:none !important;
}

.profile-menu-panel{
  position:absolute;
  top:52px;
  right:0;
  min-width:210px;
  background:#fff;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:18px;
  box-shadow:0 16px 36px rgba(0,0,0,0.14);
  padding:8px;
  display:grid;
  gap:6px;
  z-index:50;
}

.profile-menu-item{
  border:none;
  background:#fff;
  text-align:left;
  border-radius:12px;
  padding:12px 14px;
  font:inherit;
  cursor:pointer;
}

.profile-menu-item:hover,
.profile-menu-item:focus-visible{
  background:#f7f3f8;
}

.profile-menu-item-logout{
  color:#a52f5c;
  font-weight:700;
}

.profile-mini-stats{
  margin-top:16px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.profile-mini-stat{
  border:1px solid rgba(0,0,0,0.07);
  background:#faf7fb;
  border-radius:16px;
  padding:12px;
  text-align:center;
}

.profile-mini-stat strong{
  display:block;
  font-size:1.15rem;
}

.profile-mini-stat span{
  color:#5f6368;
  font-size:.92rem;
}

.profile-completion-card{
  display:grid;
  gap:12px;
}

.profile-completion-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}

.profile-completion-head h3{
  margin:0 0 4px;
}

.profile-completion-head p{
  margin:0;
  color:#5f6368;
}

.profile-completion-head strong{
  font-size:1rem;
  color:#a52f5c;
}

.profile-completion-bar{
  width:100%;
  height:12px;
  border-radius:999px;
  background:#f1e4eb;
  overflow:hidden;
}

.profile-completion-bar span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#ee5aa6,#f7a8cb);
}

.profile-completion-steps{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.profile-completion-step{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,0.08);
  background:#fcfbfc;
  color:#4b5563;
  text-align:left;
  font:inherit;
  cursor:pointer;
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.profile-completion-step:hover{
  transform:translateY(-1px);
  border-color:#ee5aa6;
  box-shadow:0 8px 18px rgba(238,90,166,0.12);
}

.profile-completion-step:focus-visible{
  outline:none;
  border-color:#ee5aa6;
  box-shadow:0 0 0 3px rgba(238,90,166,0.18);
}

.profile-completion-step.is-done{
  background:#fff4f8;
  border-color:#f2bfd5;
  color:#8f2451;
}

.profile-completion-icon{
  width:24px;
  height:24px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#f3e6ed;
  font-size:.95rem;
  font-weight:800;
  flex:0 0 24px;
}

.profile-completion-step.is-done .profile-completion-icon{
  background:#ee5aa6;
  color:#fff;
}

.profile-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.profile-section-head h3,
.profile-trip-embed h3{
  margin:0;
}

.profile-section-head p{
  margin:0;
  color:#5f6368;
}

.profile-section-head-copy{
  display:grid;
  gap:4px;
}

.profile-post-now-btn{
  flex:0 0 auto;
  white-space:nowrap;
}

.profile-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.profile-grid-card{
  position:relative;
  padding:0;
  border:none;
  border-radius:18px;
  overflow:visible;
  aspect-ratio:1 / 1;
  background:#f3f3f3;
  cursor:pointer;
}


.profile-grid-menu-wrap{
  position:absolute;
  top:10px;
  right:10px;
  z-index:3;
}

.profile-post-modal-menu-wrap{
  position:absolute;
  top:14px;
  right:62px;
  z-index:3;
}

.profile-inline-secondary-btn{
  appearance:none;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid #ead7e1;
  background:#fff;
  color:#5c4953;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}

.profile-comment-manage-action-buttons{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}


.inline-action-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(20, 18, 24, 0.62);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:4200;
}

.inline-action-modal{
  width:min(560px, 100%);
  background:#fff;
  border-radius:24px;
  box-shadow:0 24px 60px rgba(0,0,0,0.22);
  padding:18px 18px 16px;
  max-height:calc(90vh - 24px);
  overflow:auto;
}

.inline-action-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}

.inline-action-modal-head h3{
  margin:0 0 6px;
}

.inline-action-modal-head p{
  margin:0;
  color:#6b7280;
  line-height:1.45;
}

.inline-action-modal-close{
  border:none;
  width:40px;
  height:40px;
  border-radius:999px;
  background:#f4f4f5;
  font-size:20px;
  cursor:pointer;
  flex:0 0 auto;
}

.inline-action-modal-form{
  display:grid;
  gap:12px;
}

.inline-action-modal-field{
  display:grid;
  gap:7px;
}

.inline-action-modal-field span{
  font-size:.95rem;
  color:#4b5563;
}

.inline-action-modal-field input,
.inline-action-modal-field textarea{
  width:100%;
  border:1px solid rgba(0,0,0,0.12);
  border-radius:16px;
  padding:12px 14px;
  font:inherit;
  resize:vertical;
  background:#fff;
}

.inline-action-modal-field textarea{
  min-height:120px;
}

.inline-action-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:6px;
}

.inline-action-modal-actions-stack{
  flex-direction:column;
  align-items:stretch;
}

body.inline-action-modal-open{
  overflow:hidden;
}

@media (max-width:700px){
  .inline-action-modal{
    width:100%;
    border-radius:22px;
    padding:16px 16px 14px;
  }

  .inline-action-modal-actions{
    flex-direction:column;
    align-items:stretch;
  }
}

.profile-grid-image,
.profile-post-modal-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.profile-grid-placeholder,
.profile-post-modal-placeholder{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#efe7f1;
  color:#7a3a63;
  font-weight:800;
  font-size:2rem;
}

.profile-grid-overlay{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:24px 10px 10px;
  font-size:.82rem;
  color:#fff;
  background:linear-gradient(to top,rgba(0,0,0,.65),rgba(0,0,0,0));
  text-align:left;
}

.profile-grid-empty{
  grid-column:1 / -1;
  border:1px dashed rgba(0,0,0,0.12);
  border-radius:20px;
  padding:28px 18px;
  text-align:center;
  background:#fafafa;
}

.profile-grid-empty-title{
  font-weight:800;
  margin-bottom:6px;
}

.profile-grid-empty-text{
  color:#5f6368;
}

.profile-trip-embed > h3{
  display:none;
}

.profile-post-modal-backdrop[hidden]{
  display:none !important;
}

.profile-post-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(19,18,24,0.72);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:2600;
}

.profile-post-modal{
  position:relative;
  width:min(720px,100%);
  max-height:90vh;
  overflow:auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 18px 54px rgba(0,0,0,0.24);
}

.profile-post-modal-media-wrap{
  position:relative;
  width:100%;
  aspect-ratio:1 / 1;
  background:#f3f3f3;
  overflow:visible;
}

.profile-post-modal-close{
  position:absolute;
  top:14px;
  right:14px;
  width:40px;
  height:40px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,0.92);
  font-size:20px;
  cursor:pointer;
  z-index:2;
}

.profile-post-modal-body{
  padding:18px;
}

.profile-post-modal-body h3{
  margin:4px 0 8px;
}

.profile-post-modal-date,
.profile-post-modal-tag{
  color:#5f6368;
  font-size:.92rem;
}

.profile-post-modal-meta{
  display:flex;
  gap:16px;
  margin-top:14px;
  color:#5f6368;
  font-weight:700;
}

.profile-post-modal-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:16px;
}

.profile-post-action-btn{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  min-height:46px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid #ead7e1;
  background:#fff;
  color:#5c4953;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}

.profile-post-action-btn.is-liked{
  background:#fff2f7;
  color:#ca447f;
  border-color:#f2bfd5;
}

body.profile-post-modal-open{
  overflow:hidden;
}

@media (max-width:900px){
  .profile-hero{
    align-items:flex-start;
  }

  .profile-avatar{
    width:64px;
    height:64px;
    flex-basis:64px;
    font-size:24px;
  }

  .profile-hero-copy h2{
    font-size:1.15rem;
  }

  .profile-section-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .profile-completion-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .profile-completion-steps{
    grid-template-columns:1fr;
  }

  .profile-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }

  .profile-menu-panel{
    right:0;
    left:auto;
    min-width:190px;
  }

  .profile-post-modal{
    width:100%;
    max-height:88vh;
    border-radius:22px;
  }
}


/* A2.3 polish: stronger menu close behavior pairs with JS, and make map search text black */
#searchInput,
#searchInput::placeholder,
.mobile-search-shell input,
.mobile-search-shell #mobileSearchInput {
  color:#111 !important;
}

#searchInput::placeholder,
.mobile-search-shell input::placeholder,
.mobile-search-shell #mobileSearchInput::placeholder {
  color:rgba(17, 17, 17, 0.72) !important;
}


.profile-card-personalized{
  border-top:4px solid var(--profile-accent, #ee5aa6);
}

.profile-avatar-btn{
  padding:0;
  overflow:hidden;
  cursor:pointer;
}

.profile-avatar-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.profile-info-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.profile-info-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border-radius:999px;
  background:#f8f4f9;
  border:1px solid rgba(0,0,0,0.06);
  color:#4b4f56;
  font-size:.88rem;
}

.store-profile-info-list{
  display:grid;
  gap:10px;
  width:100%;
  margin-top:10px;
}

.store-profile-info-row{
  display:grid;
  gap:4px;
  padding:0;
  background:none;
  border:none;
  color:#4b4f56;
}

.store-profile-info-label{
  font-weight:700;
  color:#40444b;
}

.store-profile-info-value{
  color:#5c6168;
  line-height:1.45;
  word-break:break-word;
}

.store-profile-info-value-wrap{
  display:grid;
  gap:6px;
}

.store-profile-info-value[data-store-profile-expandable-text]{
  white-space:pre-wrap;
}

.store-profile-info-value[data-store-profile-expandable-text].is-collapsed{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:1;
  overflow:hidden;
}

.store-profile-show-toggle{
  justify-self:start;
  border:none;
  background:none;
  padding:0;
  color:#a52f5c;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.store-profile-show-toggle:hover,
.store-profile-show-toggle:focus-visible{
  text-decoration:underline;
}

.store-profile-info-row-hours{
  gap:6px;
}

.store-profile-hours-list{
  display:grid;
  gap:3px;
}

.store-profile-hours-item{
  display:grid;
  grid-template-columns:minmax(92px, auto) 1fr;
  gap:10px;
  align-items:start;
  color:#5c6168;
}

.store-profile-hours-day{
  font-weight:600;
  color:#40444b;
}

.store-profile-hours-value{
  line-height:1.4;
}

.profile-visible-comments{
  display:grid;
  gap:10px;
}

.profile-visible-comment{
  border:1px solid rgba(0,0,0,0.08);
  border-radius:16px;
  padding:12px 14px;
  background:#fcfbfc;
}

.profile-visible-comment-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:.92rem;
  margin-bottom:6px;
}

.profile-visible-comment-head span{
  color:#6b7280;
}

.profile-visible-comment-text{
  color:#2e3338;
}

.profile-editor-backdrop[hidden]{
  display:none !important;
}

.profile-editor-backdrop{
  position:fixed;
  inset:0;
  background:rgba(18, 18, 24, 0.72);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:2800;
}

.profile-editor-modal{
  width:min(860px, 100%);
  max-height:calc(92vh - 36px);
  overflow:auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 24px 60px rgba(0,0,0,0.22);
  padding:18px 20px;
}

.profile-editor-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.profile-editor-head h3{
  margin:0 0 4px;
}

.profile-editor-head p{
  margin:0;
  color:#6b7280;
}

.profile-editor-close{
  border:none;
  width:42px;
  height:42px;
  border-radius:999px;
  background:#f4f4f5;
  font-size:20px;
  cursor:pointer;
}

.profile-editor-form{
  display:grid;
  gap:14px;
}

.profile-editor-section{
  border:1px solid rgba(0,0,0,0.08);
  border-radius:18px;
  padding:16px;
  background:#fff;
}

.profile-editor-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.profile-editor-section-head h4{
  margin:0;
}

.profile-color-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.profile-color-row input[type="color"]{
  width:64px;
  height:42px;
  padding:0;
  border:none;
  background:transparent;
}

.profile-editor-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.profile-editor-grid label,
.profile-color-row{
  font-size:.95rem;
}

.profile-editor-field-full{
  grid-column:1 / -1;
}

.profile-editor-grid label span{
  display:block;
  margin-bottom:6px;
  color:#4b5563;
}

.profile-editor-grid input{
  width:100%;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,0.12);
  font:inherit;
}

.profile-editor-grid input[readonly]{
  background:#f6f6f7;
  color:#6b7280;
}

.profile-visibility-list{
  display:grid;
  gap:8px;
  margin-top:14px;
}

.profile-visibility-item{
  display:flex;
  align-items:center;
  gap:10px;
}

.profile-visibility-item.is-locked{
  opacity:.72;
}

.profile-manage-list,
.profile-manage-comments-list{
  display:grid;
  gap:10px;
}

.profile-manage-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border-radius:14px;
  background:#faf7fb;
  border:1px solid rgba(0,0,0,0.06);
}

.profile-manage-copy{
  display:grid;
  gap:4px;
}

.profile-manage-copy span{
  color:#6b7280;
  font-size:.9rem;
}

.profile-inline-danger-btn{
  border:none;
  background:#fde8ef;
  color:#a92a5d;
  border-radius:12px;
  padding:10px 12px;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.profile-manage-empty{
  color:#6b7280;
  border:1px dashed rgba(0,0,0,0.12);
  border-radius:14px;
  padding:16px;
  text-align:center;
}

.profile-comment-manage-card{
  border:1px solid rgba(0,0,0,0.08);
  border-radius:16px;
  padding:12px;
  background:#fff;
}

.profile-comment-visibility-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}

.profile-comment-manage-post{
  font-size:.88rem;
  color:#6b7280;
  margin-bottom:6px;
}

.profile-comment-manage-text{
  margin-bottom:10px;
  white-space:pre-wrap;
  word-break:break-word;
}

.profile-comment-manage-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#6b7280;
  font-size:.88rem;
}

.profile-editor-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:4px;
}

.profile-photo-tab-row{
  display:flex;
  gap:8px;
  margin-bottom:16px;
}

.profile-photo-tab{
  border:none;
  border-radius:999px;
  padding:10px 14px;
  background:#f2f2f3;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.profile-photo-tab.is-active{
  background:#f7d7e7;
  color:#8d2e61;
}

.profile-photo-gallery{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.profile-photo-gallery-card{
  border:1px solid rgba(0,0,0,0.08);
  border-radius:18px;
  padding:10px;
  background:#fff;
}

.profile-photo-gallery-card.is-active{
  box-shadow:0 0 0 2px rgba(238,90,166,0.28) inset;
}

.profile-photo-gallery-thumb{
  border:none;
  background:#f4f4f5;
  width:100%;
  border-radius:14px;
  overflow:hidden;
  padding:0;
  cursor:pointer;
}

.profile-photo-gallery-thumb img{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  display:block;
}

.profile-photo-gallery-thumb-static{
  cursor:default;
}

.profile-photo-gallery-viewonly{
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
}

.profile-public-photos-modal{
  max-width:760px;
}

.profile-public-photos-body{
  padding-top:4px;
}

.profile-photo-gallery-viewonly .profile-photo-gallery-card{
  padding:8px;
}

.profile-photo-gallery-viewonly .profile-photo-gallery-thumb img{
  aspect-ratio:4 / 5;
}

.profile-photo-gallery-actions{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-top:10px;
}

body.profile-editor-open{
  overflow:hidden;
}

@media (max-width:900px){
  .profile-editor-modal{
    width:100%;
    border-radius:22px;
    max-height:calc(88vh - 24px);
    padding:14px 16px;
  }

  .profile-editor-grid{
    grid-template-columns:1fr;
  }

  .profile-manage-row,
  .profile-comment-manage-actions,
  .profile-editor-section-head,
  .profile-color-row,
  .profile-editor-head,
  .profile-photo-gallery-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .profile-photo-gallery{
    grid-template-columns:1fr;
  }
}

/* V5.9 search scope pills + profile search results */
#searchScopePills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:4px 0 12px;
}
.search-scope-pill{
  appearance:none;
  border:1px solid rgba(15,74,156,.18);
  background:#fff;
  color:#0f4a9c;
  border-radius:999px;
  padding:8px 14px;
  font-size:13px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.search-scope-pill:hover,
.search-scope-pill:focus{
  border-color:#0f4a9c;
  outline:none;
}
.search-scope-pill.is-active{
  background:#0f4a9c;
  color:#fff;
  border-color:#0f4a9c;
}
.profile-search-item{
  padding:14px;
}
.profile-search-row{
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.profile-search-avatar{
  width:52px;
  height:52px;
  min-width:52px;
  border-radius:50%;
  overflow:hidden;
  background:#f6d8e8;
  color:#0f4a9c;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:20px;
}
.profile-search-avatar-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.profile-search-copy{
  min-width:0;
  flex:1 1 auto;
}
.profile-search-head{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom:4px;
}
.profile-search-name{
  font-size:16px;
  font-weight:800;
  color:#1d2433;
}
.profile-search-type{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:rgba(250,202,204,.55);
  color:#8d2d61;
  font-size:11px;
  font-weight:800;
  padding:5px 9px;
}
.profile-search-location,
.profile-search-meta{
  font-size:13px;
  line-height:1.4;
  color:#4b5563;
}
.profile-search-meta{
  margin-top:3px;
  word-break:break-word;
}
@media (max-width: 900px){
  #searchScopePills{
    gap:6px;
    margin:6px 0 12px;
  }
  .search-scope-pill{
    padding:9px 12px;
    font-size:12px;
  }
  .profile-search-item{
    padding:12px;
  }
  .profile-search-avatar{
    width:46px;
    height:46px;
    min-width:46px;
    font-size:18px;
  }
  .profile-search-name{
    font-size:15px;
  }
}

.profile-settings-stack {
  display: grid;
  gap: 16px;
}
.profile-settings-form {
  display: grid;
  gap: 12px;
}
.profile-settings-form label {
  display: grid;
  gap: 6px;
}
.profile-settings-form input,
.profile-settings-form select,
.profile-settings-form textarea {
  width: 100%;
}
.profile-settings-status-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}
.profile-settings-status-row,
.profile-switch-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.72);
}
.profile-switch-list {
  display: grid;
  gap: 8px;
}
.profile-switch-btn {
  width: 100%;
  cursor: pointer;
  text-align: left;
}
.profile-switch-btn.is-active {
  border-color: rgba(238,90,166,.45);
  box-shadow: 0 0 0 2px rgba(238,90,166,.12) inset;
}
.profile-delete-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}

@media (max-width: 680px){
  .profile-quick-actions{
    gap:8px;
  }

  .profile-quick-action-btn{
    width:56px;
    min-width:56px;
    height:42px;
    flex:0 0 56px;
    font-size:.88rem;
  }
}

@media (max-width: 640px){
  .profile-inbox-modal{
    width:100%;
    max-height:calc(100dvh - 16px - env(safe-area-inset-bottom, 0px) - 57px);
    min-height:calc(100dvh - 16px - env(safe-area-inset-bottom, 0px) - 57px);
  }
}

.admin-approval-list {
  display: grid;
  gap: 12px;
}
.admin-approval-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.78);
}
.admin-approval-head,
.admin-report-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.admin-approval-head p,
.admin-report-row p {
  margin: 4px 0 0;
  font-size: .92rem;
  color: rgba(0,0,0,.62);
}
.admin-approval-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.admin-approval-meta div,
.admin-analytics-card {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(0,0,0,.08);
}
.admin-approval-meta span,
.admin-analytics-card span {
  font-size: .8rem;
  color: rgba(0,0,0,.62);
}
.admin-approval-image {
  width: 100%;
  max-height: 220px;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.08);
}
.admin-approval-note {
  width: 100%;
}
.admin-analytics-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.admin-analytics-card strong {
  font-size: 1.05rem;
}
.admin-analytics-table-wrap {
  overflow: auto;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.76);
}
.admin-analytics-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
}
.admin-analytics-table th,
.admin-analytics-table td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(0,0,0,.07);
  text-align: left;
  font-size: .9rem;
}
.admin-analytics-table th {
  background: rgba(238,90,166,.08);
  position: sticky;
  top: 0;
}
@media (max-width: 780px) {
  .admin-analytics-grid,
  .admin-approval-meta {
    grid-template-columns: 1fr;
  }
  .admin-approval-head,
  .admin-report-row {
    flex-direction: column;
  }
}


.profile-editor-grid textarea{
  width:100%;
  min-height:110px;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,0.12);
  font:inherit;
  resize:vertical;
}

.store-hours-editor-card{
  border:1px solid rgba(0,0,0,0.08);
  border-radius:16px;
  background:#faf7fb;
  padding:12px;
}

.store-hours-editor{
  display:grid;
  gap:10px;
}

.store-hours-row{
  display:grid;
  grid-template-columns:minmax(110px, 140px) minmax(260px, 1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(0,0,0,0.06);
}

.store-hours-row.is-closed{
  opacity:.82;
}

.store-hours-day{
  font-weight:700;
  color:#1f2937;
}

.store-hours-time-wrap{
  display:grid;
  grid-template-columns:minmax(108px, 132px) auto minmax(108px, 132px);
  align-items:center;
  gap:8px;
  min-width:0;
}

.store-hours-input{
  min-width:0;
  width:100%;
}

.store-hours-sep{
  color:#6b7280;
  font-size:.92rem;
  white-space:nowrap;
  justify-self:center;
}

.store-hours-closed-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  color:#374151;
  font-size:.92rem;
  white-space:nowrap;
}

.store-hours-closed-toggle input{
  width:auto;
  margin:0;
  flex:0 0 auto;
}

.store-hours-closed-toggle label{
  margin:0;
  cursor:default;
  user-select:none;
}

@media (max-width: 767px){
  .store-hours-row{
    grid-template-columns:1fr;
    align-items:flex-start;
  }

  .store-hours-time-wrap{
    width:100%;
    grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);
  }

  .store-hours-input{
    width:100%;
  }
}


/* hard fix: keep This Week sales/event card and admin menu above the updated stores card */
#eventsFeed .engagement-hub{
  position:relative;
  isolation:isolate;
}

#eventsFeed .engagement-hub > .hub-card{
  position:relative;
}

#eventsFeed .engagement-hub > .hub-card:first-of-type{
  z-index:2147482000 !important;
  overflow:visible !important;
}

#eventsFeed .engagement-hub > .hub-card:first-of-type:hover,
#eventsFeed .engagement-hub > .hub-card:first-of-type:focus-within{
  z-index:2147482000 !important;
}

#eventsFeed .engagement-hub > .hub-card:last-of-type{
  z-index:1 !important;
}

#eventsFeed .engagement-hub > .hub-card:last-of-type:hover,
#eventsFeed .engagement-hub > .hub-card:last-of-type:focus-within{
  z-index:2 !important;
}

#eventsFeed [data-inline-action-menu^="week-event-"],
#eventsFeed .week-event-menu-wrap,
#eventsFeed .week-event-menu-wrap .inline-action-menu-panel,
#eventsFeed .week-event-menu-wrap .inline-action-menu-item{
  position:relative;
  z-index:2147483000 !important;
}


/* hard stop: disable all hover lift in This Week Events and Sales */
#eventsFeed .hub-card,
#eventsFeed .hub-card:hover,
#eventsFeed .hub-card:focus-within,
#eventsFeed .hub-feed-item,
#eventsFeed .hub-feed-item:hover,
#eventsFeed .hub-feed-item:focus-within{
  transform:none !important;
  transition:none !important;
  box-shadow:0 2px 6px rgba(0,0,0,0.05) !important;
  border-color:#e6e6e6 !important;
}


/* This Week admin delete menu hard lock */
#thisWeekContainer.week-event-menu-open,
#thisWeekContainer.week-event-menu-open .engagement-hub,
#thisWeekContainer.week-event-menu-open #eventsFeed,
#thisWeekContainer.week-event-menu-open .week-event-menu-wrap,
#thisWeekContainer.week-event-menu-open .week-event-menu-wrap .inline-action-menu-panel{
  overflow: visible !important;
}

#thisWeekContainer.week-event-menu-open .engagement-hub > .hub-card:first-of-type,
#thisWeekContainer.week-event-menu-open .engagement-hub > .hub-card:first-of-type:hover,
#thisWeekContainer.week-event-menu-open .engagement-hub > .hub-card:first-of-type:focus-within{
  z-index: 2147483000 !important;
}

#thisWeekContainer.week-event-menu-open .engagement-hub > .hub-card:last-of-type,
#thisWeekContainer.week-event-menu-open .engagement-hub > .hub-card:last-of-type:hover,
#thisWeekContainer.week-event-menu-open .engagement-hub > .hub-card:last-of-type:focus-within{
  pointer-events: none !important;
  transform: none !important;
  z-index: 1 !important;
}

#thisWeekContainer.week-event-menu-open .week-event-menu-wrap,
#thisWeekContainer.week-event-menu-open .week-event-menu-wrap .inline-action-menu-panel,
#thisWeekContainer.week-event-menu-open [data-delete-week-event]{
  pointer-events: auto !important;
  z-index: 2147483647 !important;
}
