/* ── DESIGN TOKENS ─────────────────────────────────────── */
:root {
  --bg:          #f2f4f6;
  --surface:     #ffffff;
  --surface2:    #f8f9fa;
  --border:      #dde1e7;
  --border2:     #c8cdd6;
  --text:        #111827;
  --text2:       #374151;
  --muted:       #6b7280;
  --brand:       #0e7490;
  --brand-dark:  #0a5c73;
  --brand-light: #cffafe;
  --brand-mid:   #000;
  --danger:      #ec3452;
  --danger-soft: #fef2f2;
  --warn:        #d97706;
  --warn-soft:   #fffbeb;
  --safe:        #059669;
  --safe-soft:   #ecfdf5;
  --info:        #2563eb;
  --info-soft:   #eff6ff;
  --green:       #059669;
  --green-soft:  #ecfdf5;
  /* Sitrep accent colors */
  --offer-bg:   var(--accent); /* blue */
  --radius:    12px;
  /* ── Accent color (swappable) ───────────────────────────── */
  --accent:        #3498ec;
  --accent-r:      52;
  --accent-g:      152;
  --accent-b:      236;
  --radius-sm: 8px;
  --shadow:    0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 16px rgba(0,0,0,.09);
  --shadow-lg: 0 8px 32px rgba(0,0,0,.13);
}

/* Slim dark scrollbars */
*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent;}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2);}


*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;line-height:1.6;min-height:100vh;}

/* ── HEADER ─────────────────────────────────────────────── */
header{
  background:#000;
  position:sticky;top:0;z-index:1000;
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;height:56px;padding:0 1.5rem;
}
.logo{
  font-size:.92rem;font-weight:700;color:#fff;
  display:flex;align-items:center;
  justify-self:start;white-space:nowrap;text-decoration:none;
}
.logo-accent{color:var(--accent);}
.pulse-dot{
  width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:.5rem;
  flex-shrink:0;animation:pdot 2s infinite;
}
@keyframes pdot{0%,100%{transform:scale(1);box-shadow:0 0 0 0 var(--accent);}50%{transform:scale(.8);box-shadow:0 0 0 5px rgba(0,0,0,0);}}

nav{display:flex;justify-self:center;}
nav button{
  background:none;border:none;border-bottom:2px solid transparent;
  color:rgba(255,255,255,.6);font-family:'Inter',sans-serif;font-size:.85rem;font-weight:500;
  padding:0 1.1rem;height:56px;margin-bottom:-1px;cursor:pointer;transition:all .15s;white-space:nowrap;
}
nav button.active{color:#fff;border-bottom-color:var(--accent);}
nav button:hover:not(.active){color:rgba(255,255,255,.9);}

.header-right{display:flex;align-items:center;gap:.75rem;justify-self:end;}
.back-btn{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.85);border-radius:8px;
  padding:.42rem 1.1rem;font-family:'Inter',sans-serif;font-size:.82rem;font-weight:600;
  cursor:pointer;white-space:nowrap;transition:all .15s;letter-spacing:.01em;
}
.back-btn:hover{background:rgba(255,255,255,.15);color:#fff;}

/* ── SITREP BAR ─────────────────────────────────────────── */
.sitrep-bar{
  background:#000;
  display:flex;overflow-x:auto;scrollbar-width:none;
  transition:opacity .2s;
}
.sitrep-bar.hidden{display:none;}
.sitrep-bar::-webkit-scrollbar{display:none;}
.sitrep-stat{
  flex:1;min-width:130px;
  padding:.9rem 1rem 1rem;
  border-right:1px solid rgba(255,255,255,.1);
  text-align:center;cursor:pointer;
  user-select:none;position:relative;
  transition:background .15s;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.sitrep-stat:hover{background:rgba(255,255,255,.04);}
.sitrep-stat--offer-room svg,
.sitrep-stat--im-stranded svg,
.sitrep-stat--help-money svg{margin-bottom:3px;}
.sitrep-stat.active-filter{background:#000;}

/* Colored stat cells */
.sitrep-stat--offer{background:#000 !important;}
.sitrep-stat--offer:hover{background:rgba(255,255,255,.04) !important;}
.sitrep-stat--offer.active-filter{background:#000 !important;}

.sitrep-num{
  font-size:2.1rem;font-weight:900;letter-spacing:-.04em;
  line-height:1;margin-bottom:.2rem;display:block;
  color:#fff;font-variant-numeric:tabular-nums;
}
.sitrep-label{
  font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:rgba(255,255,255,.7);line-height:1.3;
}
.sitrep-sub{font-size:.5rem;color:rgba(255,255,255,.5);margin-top:.1rem;}
.sitrep-refresh{
  display:flex;align-items:center;justify-content:center;
  padding:0 1.1rem;flex-shrink:0;
  cursor:pointer;border:none;background:none;
  color:rgba(255,255,255,.4);transition:color .2s;
}
.sitrep-refresh:hover{color:var(--accent);}
@keyframes spin{to{transform:rotate(360deg);}}
.spinning{animation:spin 1s linear infinite;display:inline-block;}

/* ── LAYOUT ─────────────────────────────────────────────── */
.container{max-width:1300px;margin:0 auto;padding:0 2rem;}
.view{display:none;}.view.active{display:block;}

/* ── MAP VIEW ───────────────────────────────────────────── */
#map-view{position:relative;height:calc(100vh - 56px - 96px);}
#crisis-map{width:100%;height:100%;}

/* Filter legend */
.map-legend{
  position:absolute;bottom:2rem;left:1.5rem;z-index:999;
  background:#111;border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);padding:.85rem 1.05rem;
  box-shadow:var(--shadow-lg);min-width:200px;
  transition:opacity .2s;
}
.legend-header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:.6rem;
}
.legend-title{
  font-size:.6rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:rgba(255,255,255,.5);
}
.legend-close{
  background:none;border:none;color:rgba(255,255,255,.4);
  font-size:.9rem;cursor:pointer;padding:.1rem .25rem;
  border-radius:4px;transition:color .15s;line-height:1;
}
.legend-close:hover{color:#fff;}
.legend-divider{height:1px;background:rgba(255,255,255,.1);margin:.5rem 0;}
.legend-item{
  display:flex;align-items:center;gap:.65rem;
  margin-bottom:.3rem;font-size:.78rem;color:rgba(255,255,255,.82);
  cursor:pointer;border-radius:5px;padding:.2rem .35rem;transition:background .15s;
}
.legend-item:hover{background:rgba(255,255,255,.08);}
.legend-item.active-legend{background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.18);color:var(--accent);font-weight:600;}
.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.legend-icon{width:13px;height:13px;flex-shrink:0;opacity:.75;}
.legend-community{color:rgba(255,255,255,.65);font-size:.73rem;}
.legend-community:hover{color:#fff;}
.legend-clear{
  font-size:.68rem;color:var(--accent);margin-top:.45rem;
  cursor:pointer;padding:.2rem .35rem;border-radius:4px;
  display:flex;align-items:center;gap:.3rem;
}
.legend-clear:hover{color:#a5f3fc;}

/* Legend re-open button */
.legend-toggle-btn{
  position:absolute;bottom:2rem;left:1.5rem;z-index:999;
  background:#111;border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.7);border-radius:8px;
  padding:.45rem .9rem;font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;
  cursor:pointer;display:flex;align-items:center;gap:.4rem;
  transition:all .15s;
}
.legend-toggle-btn:hover{background:#222;color:#fff;}

/* Dual CTA buttons bottom-right */
.map-community-bar{
  position:absolute;bottom:1.2rem;z-index:1060;
  left:calc(var(--sidebar-w, 290px) + (100% - var(--sidebar-w, 290px) - var(--right-sidebar-w, 0px)) / 2);
  transform:translateX(-50%);
  transition:left .3s cubic-bezier(.4,0,.2,1);
  background:#000;padding:.6rem 1.2rem;border-radius:8px;
  display:flex;align-items:center;gap:.7rem;
  font-family:'Inter',sans-serif;
  box-shadow:0 4px 20px rgba(0,0,0,.4);
  border:1px solid rgba(255,255,255,.08);
}
.community-text{
  font-size:.84rem;font-weight:700;color:rgb(255 255 255 / 88%);
  letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;
}
.community-link{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:8px;
  background:var(--accent);border:1px solid rgba(255,255,255,.15);
  transition:background .15s,opacity .15s;
}
.community-link:hover{opacity:.82;}

/* Form field icons — PC gets extra right margin */
.m-field-icon{flex-shrink:0;}
@media(min-width:601px){.m-field-icon{margin-right:5px;}}

/* Leaflet */
.leaflet-container{background:#c9d2d8 !important;}
/* Eliminate tile seam lines — GPU compositing trick, doesn't break Leaflet's tile sizing */
.leaflet-tile{
  outline:1px solid transparent;
  transform:translate3d(0,0,0);
}
/* Zoom controls — transparent, oversized, theme-aware color */
.leaflet-control-zoom{display:none !important;}
.leaflet-control-zoom-in,
.leaflet-control-zoom-out{
  background:transparent !important;border:none !important;
  width:36px !important;height:36px !important;
  line-height:36px !important;font-size:35px !important;font-weight:300 !important;
  display:block !important;text-align:center !important;
  color:#fff !important;
  transition:opacity .15s !important;
}
.leaflet-control-zoom-in{border-radius:0 !important;}
.leaflet-control-zoom-out{border-radius:0 !important;}
.leaflet-control-zoom-in:hover,
.leaflet-control-zoom-out:hover{background:transparent !important;opacity:.6;}
/* Light map theme — dark symbols */
.leaflet-control-zoom.theme-light .leaflet-control-zoom-in,
.leaflet-control-zoom.theme-light .leaflet-control-zoom-out{color:#000 !important;}
.leaflet-popup-content-wrapper{
  background:#000 !important;border:1px solid rgba(255,255,255,.12) !important;
  color:#fff !important;border-radius:var(--radius) !important;
  box-shadow:var(--shadow-lg) !important;font-family:'Inter',sans-serif !important;
}
.leaflet-popup-tip{background:#000 !important;}
.leaflet-popup-content{margin:.85rem 1rem !important;}
/* Marker clusters — blue theme */
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{
  background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.35);
}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{
  background:var(--accent);color:#fff;
  font-family:'Inter',sans-serif;font-weight:800;font-size:13px;
}
.marker-cluster{background-clip:padding-box;border-radius:50%;}
.marker-cluster div{
  width:36px;height:36px;margin-left:6px;margin-top:6px;
  border-radius:50%;text-align:center;line-height:36px;
}
.marker-cluster span{line-height:36px;}
.help-pin{background:none !important;border:none !important;}

/* ── LOCATION AUTOCOMPLETE ───────────────────────────────── */
.loc-ac-wrap{position:relative;}
.loc-ac-list{
  position:absolute;left:0;right:0;top:100%;z-index:100;
  background:#1a1c1e;border:1.5px solid rgba(255,255,255,.15);
  border-top:none;border-radius:0 0 10px 10px;
  max-height:200px;overflow-y:auto;display:none;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
}
.loc-ac-list.open{display:block;}
.loc-ac-item{
  padding:.55rem .85rem;font-size:.82rem;color:rgba(255,255,255,.8);
  cursor:pointer;border-bottom:1px solid rgba(255,255,255,.06);
  font-family:'Inter',sans-serif;
}
.loc-ac-item:last-child{border-bottom:none;}
.loc-ac-item:hover,.loc-ac-item.active{background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.15);color:#fff;}
.loc-ac-item small{display:block;font-size:.68rem;color:rgba(255,255,255,.4);margin-top:.1rem;}

/* ── RESOURCES VIEW ─────────────────────────────────────── */
#resources-view{padding:2.5rem 0;background:#0c0d0d;}
.section-header{margin-bottom:1.5rem;}
.section-title{font-size:1.4rem;font-weight:700;margin-bottom:.3rem;color:#fff;}
.section-subtitle{font-size:.88rem;color:var(--muted);}
.filter-bar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem;}
.filter-btn{
  background:#000;border:1.5px solid #8e9092;color:#fff;
  border-radius:999px;padding:.38rem 1rem;font-family:'Inter',sans-serif;
  font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s;
}
.filter-btn.active,.filter-btn:hover{border-color:var(--accent);color:#fff;background:var(--accent);}
.countries-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:3.9rem;min-height:60vh;}

/* Fix select dropdowns — dark bg with white text */
#res-stuck-in, #res-from,
#m-res-stuck, #m-res-from,
#res-sb-host, #res-sb-nat {
  color-scheme: dark;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.4)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .5rem center;
  padding-right: 2rem;
}
#res-stuck-in option, #res-from option,
#m-res-stuck option, #m-res-from option,
#res-sb-host option, #res-sb-nat option {
  background: #1a1a2e;
  color: #fff;
}
.country-card{
  background:#000;border:5px solid #2e2e2f;
  border-top:8px solid rgba(255,255,255,.15);border-radius:var(--radius);
  padding:1.2rem;box-shadow:var(--shadow);transition:box-shadow .2s;
}
.country-card:hover{box-shadow:var(--shadow-md);}
.country-card.danger{border-top-color:var(--danger);}
.country-card.warn  {border-top-color:#ff8900;}
.country-card.safe  {border-top-color:var(--safe);}
.country-card.highlight{box-shadow:var(--shadow-md);border-color:var(--brand);}
.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.55rem;}
.card-name{font-size:1rem;font-weight:700;color:#fff;}
.status-badge{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.2rem .6rem;border-radius:999px;}
.status-badge.danger{background:var(--danger);color:#fff;}
.status-badge.warn  {background:#ff8900;color:#fff;}
.status-badge.safe  {background:var(--safe-soft);color:var(--safe);}
.card-advisory{font-size:.82rem;color:#fff;line-height:1.55;margin-bottom:.85rem;}
.info-row{display:flex;justify-content:space-between;align-items:center;padding:.28rem 0;border-bottom: 1px solid#3f4855;font-size:.8rem;}
.info-row:last-child{border-bottom:none;}
.info-label{color:#fff;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.embassy-section{margin-top:.85rem;}
.embassy-title{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.4);margin-bottom:.45rem;}
.embassy-row{display:flex;align-items:center;gap:.6rem;padding:.38rem 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:.8rem;}
.embassy-row:last-child{border-bottom:none;}
.embassy-name{flex:1;font-weight:500;color:#fff;}
.embassy-note{font-size:.7rem;color:rgba(255,255,255,.4);}
.call-btn{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.28rem .7rem;font-size:.7rem;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;font-family:'Inter',sans-serif;}
.call-btn:hover{opacity:.85;}
.ngo-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem;}
.ngo-tag{background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.12);color:var(--accent);font-size:.63rem;font-weight:600;border-radius:4px;padding:.14rem .48rem;}
.telegram-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--info);font-size:.8rem;font-weight:500;text-decoration:none;margin-top:.6rem;}
.telegram-link:hover{text-decoration:underline;}
.resource-card{background:#000;border:5px solid #2e2e2f;border-radius:var(--radius);padding:1.1rem;box-shadow:var(--shadow);transition:box-shadow .2s;}
.resource-card:hover{box-shadow:var(--shadow-md);}
.resource-type{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:.3rem;}
.resource-name{font-size:.9rem;font-weight:700;margin-bottom:.3rem;color:#fff;}
.resource-desc{font-size:.78rem;color:var(--muted);line-height:1.5;margin-bottom:.7rem;}
.resource-link{color:var(--accent);font-size:.8rem;font-weight:600;text-decoration:none;}
.resource-link:hover{text-decoration:underline;}

/* ── HELP VIEW ──────────────────────────────────────────── */
#help-view{padding:2.5rem 0;background:#000;}

/* ── PROFILE ───────────────────────────────────────────── */
#profile-view{padding:2.5rem 0;background:#000;}
.profile-btn{
  background:rgba(255,255,255,.08);border:1px solid rgba(var(--accent-r),var(--accent-g),var(--accent-b),.31);
  color:rgba(255,255,255,.85);border-radius:50%;width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .15s;overflow:hidden;padding:0;
}
.profile-btn:hover{background:rgba(255,255,255,.15);color:#fff;}
.p-verify-row{
  display:flex;align-items:center;gap:.75rem;
  padding:.7rem 0;border-bottom:1px solid rgba(255,255,255,.07);
}
.p-verify-row > div[style*="flex:1"] { min-width: 0; }
.p-verify-btn { flex-shrink: 0; }
.p-verify-row:last-of-type{border-bottom:none;}
.p-verify-icon{
  width:36px;height:36px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:.88rem;font-weight:800;flex-shrink:0;
}
.p-verify-btn{
  padding:.32rem .85rem;border-radius:7px;font-family:'Inter',sans-serif;
  font-size:.68rem;font-weight:600;white-space:nowrap;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.3);cursor:default;
  display:inline-flex;align-items:center;gap:.35rem;
}
.p-verify-btn--linked{
  background:rgba(52,152,236,.15);border-color:rgba(52,152,236,.3);
  color:#3498ec;
}
.p-verify-btn--link{
  background:rgba(52,152,236,.1);border-color:rgba(52,152,236,.25);
  color:#3498ec;cursor:pointer;
}
.p-verify-btn--link:hover{background:rgba(52,152,236,.2);}
.badge-verified{color:#3498ec;font-size:.72rem;font-weight:700;}
.badge-unverified{color:rgba(150,150,150,.35);font-size:.72rem;font-weight:700;}
.profile-post-card{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-left:3px solid var(--accent);border-radius:10px;
  padding:1rem;margin-bottom:.6rem;
}
.profile-post-actions{display:flex;gap:.4rem;margin-top:.6rem;}

/* Auth tabs */
.auth-tab{
  flex:1;padding:.55rem;border:none;border-radius:8px;
  font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;
  cursor:pointer;background:transparent;color:rgba(255,255,255,.35);
  transition:all .15s;
}
.auth-tab--active{background:rgba(255,255,255,.12);color:#fff;}
.auth-provider-btn{
  width:100%;border:none;border-radius:10px;padding:.75rem;
  font-family:'Inter',sans-serif;font-size:.92rem;font-weight:600;
  cursor:pointer;transition:all .15s;
  display:flex;align-items:center;justify-content:center;gap:.65rem;
}
.auth-provider-btn--m{padding:.65rem;font-size:.85rem;border-radius:9px;}

/* Linked account input fields */
.linked-input{
  position:relative;display:flex;align-items:center;
  background:#1a1c1e;border:none;
  border-radius:10px;overflow:hidden;transition:border-color .15s;
}
.linked-input--active{border:none;}
.linked-input-icon{
  width:30px;height:30px;min-width:30px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;
  margin:4px 0 4px 6px;cursor:pointer;transition:opacity .15s;
}
.linked-input-icon:hover{opacity:.8;}
.linked-input-field{
  flex:1;border:none !important;background:transparent !important;
  padding:.6rem .7rem !important;margin:0 !important;
  font-family:'Inter',sans-serif;font-size:.82rem;color:rgba(255,255,255,.35);
  outline:none;cursor:default;
}
.linked-input-field.filled{color:#fff;font-weight:500;}
.linked-input-lock{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  color:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.5);display:none;
}
.linked-input--active .linked-input-lock{display:block;}

.help-tabs{display:none;}
.help-tab{
  display:flex;align-items:center;gap:.5rem;
  padding:.55rem 1.4rem;border-radius:999px;border:2px solid var(--border);
  background:var(--surface);color:var(--muted);font-family:'Inter',sans-serif;
  font-size:.84rem;font-weight:600;cursor:pointer;transition:all .15s;
}
.help-tab.active{border-color:var(--brand);color:var(--brand);background:var(--brand-light);}
.help-tab-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.help-tab-dot--offer{background:var(--accent);}

.post-form-header{
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:.6rem 1rem;border-radius:var(--radius-sm) var(--radius-sm) 0 0;
}
.post-form-header--offer{color:#fff;background:var(--accent);border-left:3px solid var(--accent);}
.post-form-header--live{color:#fff;background:var(--accent);border-left:3px solid var(--accent);}

.post-form{background:#000;border:none;border-radius:0 var(--radius-sm) var(--radius-sm);border-top:none;padding:1.25rem;margin-bottom:1.25rem;}
.form-note{font-size:.78rem;color:#1c1e22;line-height:1.5;margin-bottom:1rem;background:#c9d5ed;border-radius:6px;padding:.6rem .75rem;border-left:3px solid var(--accent);}
.form-row{margin-bottom:.9rem;}
.form-row label{display:block;font-size:.72rem;font-weight:600;color:#fff;margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em;}
.form-row input,.form-row select,.form-row textarea{
  width:100%;border:none;border-radius:var(--radius-sm);
  padding:.55rem .85rem;font-family:'Inter',sans-serif;font-size:.88rem;
  color:#fff;background:#ffffff14;outline:none;transition:border-color .15s;
}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border:1.5px solid var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-r),var(--accent-g),var(--accent-b),.12);}
.form-row textarea{min-height:80px;resize:vertical;}
.submit-btn{border:none;border-radius:var(--radius-sm);padding:.65rem 1.5rem;font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .15s;color:#fff;}
.submit-btn--offer{background:var(--accent);}
.submit-btn--offer:hover{background:#2980c8;}
.posts-list{display:flex;flex-direction:column;gap:.75rem;}
.post-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-left:3px solid var(--safe);border-radius:var(--radius-sm);padding:1rem;}
.post-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem;}
.post-type{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--safe);}
.post-time{font-size:.63rem;color:rgba(255,255,255,.4);}
.post-loc{font-size:.78rem;font-weight:600;color:rgba(255,255,255,.7);margin-bottom:.3rem;}
.post-body{font-size:.84rem;color:rgba(255,255,255,.6);line-height:1.5;margin-bottom:.6rem;}
.post-footer{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.tip-btn{background:var(--green);color:#fff;border:none;border-radius:6px;padding:.2rem .6rem;font-size:.68rem;font-weight:600;cursor:pointer;text-decoration:none;font-family:'Inter',sans-serif;}
.empty-state{padding:2rem 1rem;text-align:center;color:var(--muted);font-size:.88rem;}

/* ── MOBILE ≤600px ──────────────────────────────────────── */
@media (max-width:600px){
  header,.sitrep-bar,.map-community-bar{display:none !important;}
  body{overflow:hidden;min-height:80px;background:#000;}
  .view{display:none !important;}

  #m-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden;}

  /* 3-stat bar */
  #m-statbar{
    background:#000;
    display:grid;grid-template-columns:1fr 1fr;
    flex-shrink:0;height:65px;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .m-stat{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:.45rem .2rem;height:65px;
    border-right:1px solid rgba(255,255,255,.1);cursor:pointer;
    transition:background .15s;position:relative;user-select:none;
  }
  .m-stat:last-child{border-right:none;}
  .m-stat:hover{background:rgba(255,255,255,.08);}
  .m-stat.active-filter::after{
    content:'';position:absolute;bottom:0;left:0;right:0;
    height:3px;background:var(--accent);border-radius:3px 3px 0 0;
  }
  /* OFFER SPARE ROOM stat — blue bg */
  .m-stat--offer{background:#ffffff !important;}
  .m-stat--offer:hover{background:#ffffff !important;}
  .m-stat--offer .m-stat-num{color:#fff !important;}
  .m-stat--offer .m-stat-label{color:rgba(0, 0, 0, 0.85) !important;}

  .m-stat-num{
    font-size:1.5rem;font-weight:900;letter-spacing:-.03em;line-height:1;display:block;
    color:#fff;font-variant-numeric:tabular-nums;
  }
  .m-stat-label{
    font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
    color:rgb(255, 255, 255);margin-top:.1rem;text-align:center;line-height:1.25;
  }

  /* Map */
  #m-map-wrap{flex:1;position:relative;overflow:hidden;min-height:0;}
  #m-crisis-map{width:100%;height:100%;}

  /* Mobile filter legend popup */
  .m-filter-legend{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);
    z-index:960;opacity:0;pointer-events:none;
    background:#111;border:1px solid rgba(255,255,255,.15);
    border-radius:14px;padding:1rem 1.15rem;min-width:220px;
    box-shadow:0 12px 40px rgba(0,0,0,.6);
    transition:opacity .2s,transform .2s;
  }
  .m-filter-legend.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1);}
  .m-filter-legend-header{
    display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;
  }
  .m-filter-legend-title{
    font-size:.96rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
    color:rgb(255, 255, 255);
  }
  .m-filter-legend-close{
    background:none;border:none;color:rgba(255,255,255,.5);
    font-size:1rem;cursor:pointer;padding:.1rem .3rem;line-height:1;
  }
  .m-filter-legend-close:hover{color:#fff;}
  .m-filter-legend-item{
    display:flex;align-items:center;gap:.7rem;
    padding:.45rem .2rem;border-bottom:1px solid rgba(255,255,255,.07);
    font-size:.82rem;color:rgba(255,255,255,.82);cursor:pointer;
  }
  .m-filter-legend-item:last-of-type{border-bottom:none;}
  .m-filter-legend-item:hover{color:#fff;}
  .m-filter-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
  .m-filter-clear{
    font-size:.72rem;color:var(--accent);margin-top:.5rem;
    cursor:pointer;padding:.2rem 0;
    display:flex;align-items:center;gap:.3rem;
  }

  /* Map floating pills */
  .m-map-pill{
    position:absolute;bottom:1.2rem;z-index:950;
    background:#111;border:1px solid rgba(255,255,255,.15);
    color:rgba(255,255,255,.8);border-radius:20px;
    padding:.45rem .9rem;font-family:'Inter',sans-serif;font-size:.7rem;font-weight:600;
    cursor:pointer;display:flex;align-items:center;gap:.4rem;
    box-shadow:0 4px 16px rgba(0,0,0,.4);transition:all .15s;
    text-decoration:none;
  }
  .m-map-pill:hover{background:#222;color:#fff;}
  .m-map-pill--left{left:1rem;}
  .m-map-pill--center{left:50%;transform:translateX(-50%);}
  .m-map-pill--right{right:1rem;}

  /* Country full-screen popup */
  #m-country-popup{
    position:absolute;inset:0;z-index:1110;
    background:#000;overflow-y:auto;
    transform:translateY(100%);
    transition:transform .3s cubic-bezier(.4,0,.2,1);
    -webkit-overflow-scrolling:touch;
  }
  #m-country-popup.open{transform:translateY(0);}

  /* Pin detail bottom sheet */
  #m-pin-sheet-backdrop{
    position:absolute;inset:0;z-index:1115;
    background:rgba(0,0,0,.5);
    opacity:0;pointer-events:none;
    transition:opacity .25s ease;
  }
  #m-pin-sheet-backdrop.open{opacity:1;pointer-events:auto;}
  #m-pin-sheet{
    position:absolute;bottom:0;left:0;right:0;z-index:1120;
    background:#0a0a0a;border-radius:20px 20px 0 0;
    border-top:1px solid rgba(255,255,255,.08);
    max-height:80dvh;
    display:flex;flex-direction:column;
    transform:translateY(100%);
    transition:transform .3s cubic-bezier(.4,0,.2,1);
    box-shadow:0 -8px 40px rgba(0,0,0,.6);
  }
  #m-pin-sheet.open{transform:translateY(0);}
  .m-pin-sheet-header{
    display:flex;align-items:center;justify-content:flex-end;
    padding:.65rem 1rem .1rem;
    flex-shrink:0;
  }
  .m-pin-sheet-handle-bar{
    position:absolute;left:50%;transform:translateX(-50%);
    width:36px;height:4px;background:rgba(255,255,255,.25);border-radius:2px;
    margin-top:.15rem;
  }
  #m-pin-sheet-inner{
    overflow-y:auto;
    flex:1;
    padding:.1rem 1.25rem 2rem;
    -webkit-overflow-scrolling:touch;
  }

  /* Shared close button style for all slide-ups */
  .m-sheet-x{
    background:rgba(255,255,255,.12);border:none;
    border-radius:50%;width:32px;height:32px;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;
    color:#fff;transition:background .15s;
    padding:0;line-height:0;
  }
  .m-sheet-x:hover{background:rgba(255,255,255,.22);}
  .m-sheet-x svg{width:16px;height:16px;stroke:#fff;stroke-width:2.5;}

  .m-popup-header{
    position:sticky;top:0;background:#000;border-bottom:1px solid rgba(255,255,255,.1);
    padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;z-index:1;
  }
  .m-popup-title{font-size:1rem;font-weight:700;color:#fff;}
  .m-popup-close{
    background:rgba(255,255,255,.12);border:none;
    border-radius:50%;width:32px;height:32px;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;color:#fff;transition:background .15s;padding:0;line-height:0;
  }
  .m-popup-close:hover{background:rgba(255,255,255,.22);}
  .m-popup-close svg{width:16px;height:16px;stroke:#fff;stroke-width:2.5;}
  .m-popup-body{padding:1rem;}
  .m-popup-badge{display:inline-block;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:.22rem .7rem;margin-bottom:.65rem;}
  .m-popup-advisory{font-size:.84rem;color:#ffffff;line-height:1.6;margin-bottom:.85rem;}
  .m-popup-section-title{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;margin-bottom:.5rem;margin-top:.85rem;}
  .m-popup-info-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.3rem 0;border-bottom:1px solid #6b7280;font-size:.82rem;gap:.5rem;}
  .m-popup-info-row:last-child{border-bottom:none;}
  .m-emb-row{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px solid var(--border);}
  .m-emb-row:last-child{border-bottom:none;}
  .m-emb-who{flex:1;}
  .m-emb-country{font-weight:700;font-size:.82rem;display:block;color:var(--text);}
  .m-emb-role{font-size:.68rem;color:var(--muted);display:block;margin-top:.05rem;}
  .m-call-btn{background:var(--brand);color:#fff;border:none;border-radius:7px;padding:.32rem .75rem;font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;font-family:'Inter',sans-serif;display:inline-flex;align-items:center;gap:.3rem;}

  /* Tab bar */
  #m-tabbar{
    display:flex !important;background:#000;
    flex-shrink:0;height:65px;
    padding-bottom:env(safe-area-inset-bottom);
    position:relative;z-index:1200;
  }
  .m-tab{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.22rem;
    background:#000;border:none;border-top:2px solid transparent;
    color:rgba(255,255,255,.45);cursor:pointer;transition:all .15s;
    padding:.4rem 0;font-family:'Inter',sans-serif;font-size:.55rem;
    font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  }
  .m-tab svg{width:25px;height:25px;stroke:rgb(255, 255, 255);}
  .m-tab#mtab-help svg{stroke:var(--accent);}
  .m-tab.active{color:#fff;border-top-color:var(--accent);}
  .m-tab.active svg{stroke:#fff;}
  .m-tab:hover:not(.active){color:rgb(255, 255, 255);}

  /* SPARE ROOMS tab — toggle style */
  .m-tab-spare{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;
    background:rgb(255, 255, 255);border:none;border-top:2px solid rgba(var(--accent-r),var(--accent-g),var(--accent-b),.2);
    color:#000000 !important;cursor:pointer;
    padding:.4rem 0;font-family:'Inter',sans-serif;font-size:.55rem;
    font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    transition:background .15s;
  }
  .m-tab-spare:hover{background:rgb(52, 153, 236);}
  .m-tab-spare .m-tab-spare-num{
    font-size:1.5rem;font-weight:900;letter-spacing:-.03em;line-height:1;
    color:var(--accent);font-variant-numeric:tabular-nums;
  }

  /* Bottom sheet */
  #m-sheet{
    position:absolute;bottom:65px;left:0;right:0;z-index:1105;
    background:#000000;border-radius:20px 20px 0 0;
    max-height:calc(100dvh - 65px - 65px - 20px);
    display:flex;flex-direction:column;
    transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  }
  #m-sheet.open{transform:translateY(0);}
  #m-sheet-handle{padding:.7rem .75rem .2rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer;flex-shrink:0;}
  .m-handle-bar{width:36px;height:4px;background:rgba(255,255,255,.25);border-radius:2px;}
  .m-sheet-title{font-size:1.3rem;font-weight:800;color:#fff;text-align:center;padding:.4rem 0 .2rem;}
  #m-sheet-body{overflow-y:auto;flex:1;padding:0 1.2rem 1.2rem;-webkit-overflow-scrolling:touch;}

  .m-form-label{display:flex;align-items:center;gap:.35rem;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#fff;margin-bottom:.32rem;}
  .m-form-label span{color:rgba(255,255,255,.45);font-weight:500;text-transform:none;letter-spacing:0;}
  .m-form-row{margin-bottom:.9rem;}
  .m-form-row input:not(.linked-input-field),.m-form-row select,.m-form-row textarea{
    width:100%;border:none;border-radius:10px;
    padding:.7rem .95rem;font-family:'Inter',sans-serif;font-size:.95rem;
    color:#fff;background:rgba(255,255,255,.08);outline:none;-webkit-appearance:none;
    transition:border-color .15s;
  }
  .m-form-row input:not(.linked-input-field)::placeholder,.m-form-row textarea::placeholder{color:rgba(255,255,255,.35);}
  .m-form-row input:not(.linked-input-field):focus,.m-form-row textarea:focus{border:1.5px solid var(--accent);background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.06);}
  .m-form-row textarea{min-height:88px;resize:none;}
  .m-form-note{font-size:.74rem;color:rgba(255,255,255,.55);line-height:1.55;margin-bottom:1rem;}
  .m-submit{
    width:100%;background:var(--accent);color:#fff;
    border:none;border-radius:12px;padding:.95rem;font-family:'Inter',sans-serif;
    font-size:1rem;font-weight:800;cursor:pointer;margin-top:.25rem;
    letter-spacing:.01em;transition:opacity .15s;
  }
  .m-submit:hover{opacity:.85;}

  .m-res-row{display:flex;align-items:center;gap:.65rem;padding:.72rem 0;border-bottom:1px solid rgba(255,255,255,.08);}
  .m-res-row:last-child{border-bottom:none;}
  .m-res-name{font-size:.82rem;font-weight:600;flex:1;color:#fff;}
  .m-res-type{font-size:.6rem;color:rgba(255,255,255,.45);display:block;margin-top:.1rem;}
  .m-res-go{background:var(--accent);border:1.5px solid rgba(var(--accent-r),var(--accent-g),var(--accent-b),.3);color:#fff;border-radius:6px;padding:.28rem .6rem;font-size:.7rem;font-weight:600;text-decoration:none;cursor:pointer;font-family:'Inter',sans-serif;white-space:nowrap;}

  .m-emb-section{margin-bottom:.85rem;}
  .m-emb-country-title{font-size:.72rem;font-weight:700;color:#fff;background:rgba(255,255,255,.08);border-radius:6px;padding:.38rem .6rem;margin-bottom:.38rem;}
  .m-emb-row{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.08);}
  .m-emb-row:last-child{border-bottom:none;}
  .m-emb-who{flex:1;}
  .m-emb-country{font-weight:700;font-size:.82rem;display:block;color:#fff;}
  .m-emb-role{font-size:.68rem;color:rgba(255,255,255,.45);display:block;margin-top:.05rem;}
  .m-call-btn{background:var(--accent);color:#fff;border:none;border-radius:7px;padding:.32rem .75rem;font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;font-family:'Inter',sans-serif;display:inline-flex;align-items:center;gap:.3rem;}

  .m-verify-row{
    display:flex;align-items:center;gap:.5rem;
    padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.08);
  }
  .m-verify-row:last-of-type{border-bottom:none;}
}

@media(max-width:768px){
  
  
  
}

/* Ground Report Pins */

/* Report Modal */

/* Stranded */
.modal-label{color:#fff;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.3rem;display:block;}
.modal-input{width:100%;padding:.55rem .85rem;border:none;border-radius:10px;background:#1a1c1e;color:#fff;font-family:Inter,sans-serif;font-size:.85rem;outline:none;-webkit-appearance:none;}
select.modal-input{-webkit-appearance:menulist;appearance:menulist;color-scheme:dark;background-color:#1a1c1e;}
.modal-input:focus{border:1.5px solid var(--accent);}
.need-chip{display:flex;align-items:center;gap:.3rem;padding:.3rem .65rem;background:rgba(255,255,255,.06);border:none;border-radius:20px;font-size:.72rem;color:rgba(255,255,255,.6);cursor:pointer;font-family:Inter,sans-serif;transition:all .15s;}
.need-chip:has(input:checked){background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.15);border-color:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.3);color:var(--accent);}
.need-chip input{display:none;}
.pet-take-chip{display:flex;align-items:center;gap:.3rem;padding:.35rem .75rem;background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.12);border:1.5px solid rgba(var(--accent-r),var(--accent-g),var(--accent-b),.35);border-radius:20px;font-size:.75rem;font-weight:600;color:var(--accent);cursor:pointer;font-family:Inter,sans-serif;transition:all .15s;}
.pet-take-chip:has(input:checked){background:var(--accent);border-color:var(--accent);color:#fff;}
.pet-take-chip input{display:none;}

/* Stranded pins */
.stranded-pin{
  width:10px;height:10px;border-radius:50%;
  background:#ec3452;border:2px solid #fff;
  box-shadow:0 2px 6px rgba(236,52,82,.5);
  animation:stranded-pulse 2.5s infinite;
}
@keyframes stranded-pulse{0%,100%{box-shadow:0 0 0 0 rgba(236,52,82,.5);}50%{box-shadow:0 0 0 5px rgba(236,52,82,0);}}

/* Stranded cluster */
.stranded-cluster{
  background:rgba(236,52,82,.85);color:#fff;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:Inter,sans-serif;font-weight:800;font-size:11px;
  border:2px solid #fff;box-shadow:0 2px 8px rgba(236,52,82,.4);
}
/* Map theme toggle */
.map-theme-btn{
  position:absolute;bottom:1.5rem;left:1.5rem;z-index:800;
  width:36px;height:36px;border-radius:50%;
  background:#111;border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.6);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.3);transition:all .15s;
}
.map-theme-btn:hover{background:#222;color:#fff;} 
/* $HELP CTA */

/* ═══ Filter Panel ═══ */
.filter-panel{
  position:absolute;top:0;left:0;bottom:0;width:290px;z-index:900;
  background:rgba(10,10,10,.95);backdrop-filter:blur(12px);
  border-right:1px solid rgba(255,255,255,.08);
  transform:translateX(-100%);transition:transform .3s ease;
  overflow-y:auto;padding:0;
}
.filter-panel.open{transform:translateX(0);}
.fp-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.1rem .75rem;border-bottom:1px solid rgba(255,255,255,.06);}
.fp-title{font-size:.95rem;font-weight:800;color:#fff;letter-spacing:.02em;}
.fp-close{background:none;border:none;color:rgba(255,255,255,.4);cursor:pointer;padding:4px;line-height:0;}
.fp-close:hover{color:#fff;}

/* Sections */
.fp-section{border-bottom:1px solid rgba(255,255,255,.06);}
.fp-section-head{
  display:flex;align-items:center;gap:.5rem;padding:.75rem 1.1rem;cursor:pointer;
  font-size:.82rem;font-weight:800;color:#fff;transition:background .15s;
}
.fp-section-head:hover{background:rgba(255,255,255,.04);}
.fp-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.fp-chevron{margin-left:auto;transition:transform .2s;color:#fff;width:20px !important;height:20px !important;}
.fp-badge{
  font-size:.55rem;font-weight:800;padding:.12rem .45rem;border-radius:8px;
  background:color-mix(in srgb, var(--badge-c) 20%, transparent);
  color:var(--badge-c);min-width:1.2rem;text-align:center;line-height:1.3;
}
.fp-badge:empty{display:none;}
.fp-badge--lg{font-size:.63rem;padding:.15rem .52rem;}
.fp-section-head:has(+ .fp-section-body.open) .fp-chevron{transform:rotate(180deg);}
.fp-section-body{display:none;padding:0 1.1rem .85rem;}
.fp-section-body.open{display:block;}

/* Toggle switch */
.fp-toggle{
  display:flex;align-items:center;gap:.55rem;cursor:pointer;
  font-size:.75rem;color:rgba(255,255,255,.55);font-family:'Inter',sans-serif;
  margin-bottom:.55rem;
}
.fp-toggle input{display:none;}
.fp-toggle-slider{
  width:32px;height:18px;background:rgba(255,255,255,.12);border-radius:10px;
  position:relative;transition:background .2s;flex-shrink:0;
}
.fp-toggle-slider::after{
  content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;
  border-radius:50%;background:#fff;transition:transform .2s;
}
.fp-toggle input:checked + .fp-toggle-slider{background:var(--accent);}
.fp-section--blue .fp-toggle input:checked + .fp-toggle-slider{background:var(--accent);}
.fp-toggle input:checked + .fp-toggle-slider::after{transform:translateX(14px);}

/* Labels, chips, selects */
.fp-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.3);margin:.55rem 0 .35rem;}
.fp-chips{display:flex;flex-wrap:wrap;gap:.3rem;}
.fp-chip{
  display:inline-flex;align-items:center;gap:.25rem;
  padding:.25rem .55rem;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);border-radius:16px;
  font-size:.68rem;color:rgba(255,255,255,.45);cursor:pointer;
  font-family:'Inter',sans-serif;transition:all .15s;
}
.fp-chip input{display:none;}
.fp-chip--blue:has(input:checked){background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.15);border-color:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.3);color:var(--accent);}
.fp-chip--red:has(input:checked){background:rgba(236,52,82,.15);border-color:rgba(236,52,82,.3);color:#ec3452;}
.fp-chip--amber:has(input:checked){background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.15);border-color:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.3);color:var(--accent);}
.fp-select{
  width:100%;padding:.45rem .7rem;background:#1a1a1a;border:1px solid rgba(255,255,255,.1);
  border-radius:8px;color:#fff;font-family:'Inter',sans-serif;font-size:.78rem;
  outline:none;-webkit-appearance:none;cursor:pointer;
}
.fp-clear{
  display:flex;align-items:center;justify-content:center;gap:.4rem;
  width:100%;padding:.6rem;background:none;border:1px solid rgba(255,255,255,.08);
  border-radius:10px;color:rgba(255,255,255,.35);font-family:'Inter',sans-serif;
  font-size:.72rem;font-weight:600;cursor:pointer;margin:1rem 1.1rem 1rem;
  width:calc(100% - 2.2rem);transition:all .15s;
}
.fp-clear:hover{color:#fff;border-color:rgba(255,255,255,.2);}

/* Sitrep filter stat */
.sitrep-stat--filter{
  flex:0 0 290px !important;min-width:auto !important;cursor:pointer;
  border-right:1px solid rgba(255,255,255,.08);
}
.sitrep-stat--filter svg{stroke:var(--accent);transition:stroke .15s;}
.sitrep-stat--filter:hover{background:rgba(255,255,255,.04);}
.sitrep-stat--filter:hover svg{stroke:var(--accent);}
.sitrep-stat--filter.active-filter{background:rgba(255,255,255,.04);}
.sitrep-stat--filter.active-filter svg{stroke:var(--accent);} 

@media(max-width:768px){
  .filter-panel{display:none !important;}
}
/* Sitrep action buttons */
.sitrep-stat--im-stranded{background:#000 !important;cursor:pointer;transition:background .15s;}
.sitrep-stat--im-stranded:hover{background:rgba(255,255,255,.04) !important;}
.sitrep-stat--offer-room{background:#000 !important;cursor:pointer;transition:background .15s;}
.sitrep-stat--offer-room:hover{background:rgba(255,255,255,.04) !important;}
.sitrep-stat--help-money{background:#000 !important;cursor:pointer;transition:background .15s;}
.sitrep-stat--help-money:hover{background:rgba(255,255,255,.04) !important;} 

/* $HELP modal */
/* $HELP Panel */
/* ── $HELP interactive panel ─────────────────────────────── */
#help-money-modal{
  display:none;position:fixed;inset:0;z-index:9999;
  background:rgba(0,0,0,.65);backdrop-filter:blur(4px);
  align-items:center;justify-content:center;
}
#help-money-modal.open{display:flex;}
.help-panel-inner{
  background:#0a0a0a;border:1px solid rgba(255,255,255,.1);
  border-radius:18px;width:90%;max-width:440px;
  padding:1.3rem 1.3rem 1.1rem;position:relative;
  max-height:90vh;overflow-y:auto;
}
.help-panel-x{
  position:absolute;top:.6rem;right:1rem;
  background:rgba(255,255,255,.08);border:none;border-radius:50%;
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s;z-index:1;
}
.help-panel-x:hover{background:rgba(255,255,255,.18);}
.help-panel-head{margin-bottom:.9rem;text-align:center;}

/* Brighter CA line */
.help-buy-ca{
  font-size:.55rem;color:rgba(255,255,255,.6);cursor:pointer;user-select:all;
  font-family:monospace;letter-spacing:.02em;margin-bottom:.3rem;
  transition:color .2s;
}
.help-buy-ca:hover{color:#fff;}
.help-panel-ticker{
  display:flex;align-items:center;justify-content:center;gap:.4rem;
  font-size:2.6rem;font-weight:900;letter-spacing:-.04em;line-height:1;
  color:#fff;
  margin-bottom:.25rem;
}
@media(max-width:600px){
  .help-panel-ticker{
    background:linear-gradient(135deg,var(--accent),#c084fc);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
    color:transparent;
  }
}
.help-panel-sub{font-size:.7rem;color:rgba(255,255,255,.28);line-height:1.5;}

/* Buy $HELP hero */
.help-buy-hero{
  background:none;border:none;
  padding:.4rem 0;margin-bottom:.8rem;text-align:center;
}
.help-buy-label{
  font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  color:rgba(255,255,255,.7);margin-bottom:.75rem;
}
.help-buy-exchanges{
  display:flex;justify-content:center;gap:1.4rem;margin-bottom:.65rem;
}
.help-buy-ex{
  display:flex;flex-direction:column;align-items:center;gap:.35rem;
  text-decoration:none;transition:opacity .15s;
}
.help-buy-ex:hover{opacity:.7;}
.help-buy-icon{
  width:54px;height:54px;display:flex;align-items:center;justify-content:center;
  background:var(--accent);border-radius:10px;border:1px solid rgba(255,255,255,.15);
  transition:background .15s;
}
.help-buy-icon img{width:34px;height:34px;object-fit:contain;display:block;}
.help-buy-name{
  font-size:.6rem;font-weight:700;color:rgba(255,255,255,.5);letter-spacing:.01em;
}
.help-buy-bankr{
  font-size:.58rem;color:rgba(255,255,255,.3);line-height:1.5;
}
.help-buy-bankr a{color:var(--accent);text-decoration:none;font-weight:600;}

/* Toggle bar */
.help-toggle-bar{
  display:flex;justify-content:center;background:rgba(255,255,255,.05);border-radius:10px;
  padding:3px;gap:3px;margin:0 auto 1rem;width:85%;
  border:1px solid rgba(255,255,255,.08);
}
.help-toggle-btn{
  flex:1;padding:.48rem .5rem;border:none;border-radius:8px;
  font-family:'Inter',sans-serif;font-size:.7rem;font-weight:800;
  letter-spacing:.04em;cursor:pointer;transition:all .2s;text-align:center;
  color:rgba(255,255,255,.35);background:transparent;
}
.help-toggle-btn.active{background:#fff;color:#000;}

/* Steps */
.hstep{
  display:flex;gap:.75rem;padding:.75rem 0;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.hstep:last-child{border-bottom:none;}
.hstep-num{
  width:22px;height:22px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.07);
  display:flex;align-items:center;justify-content:center;
  font-size:.62rem;font-weight:800;color:rgba(255,255,255,.3);
  margin-top:.1rem;transition:all .3s;
}
.hstep-num.done{background:var(--accent);color:#fff;font-size:0;}
.hstep-num.done::after{content:"✓";font-size:.62rem;font-weight:800;color:#fff;}
.hstep-body{flex:1;min-width:0;}
.hstep-title{font-size:.82rem;font-weight:700;color:#fff;margin-bottom:.22rem;}
.hstep-desc{font-size:.74rem;color:rgba(255,255,255,.4);line-height:1.6;margin-bottom:.5rem;}
.hstep-desc strong{color:rgba(255,255,255,.85);}

/* Verified badge inline */
.hstep-badge{
  display:inline-flex;align-items:center;gap:.22rem;
  background:rgba(52,152,236,.18);border:1.5px solid rgba(52,152,236,.45);
  border-radius:4px;padding:.08rem .32rem;font-size:.63rem;font-weight:700;color:#3498ec;
  vertical-align:middle;white-space:nowrap;
}

/* Buttons inside steps */
.hstep-btn{
  display:inline-flex;align-items:center;gap:.38rem;
  padding:.42rem .78rem;border-radius:8px;
  font-family:'Inter',sans-serif;font-size:.73rem;font-weight:700;
  text-decoration:none;cursor:pointer;border:none;transition:opacity .15s;
  white-space:nowrap;
}
.hstep-btn + .hstep-btn{margin-left:.35rem;}
.hstep-btn:hover{opacity:.78;text-decoration:none;}
.hstep-btn--x{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.12);}
.hstep-btn--x.done{background:var(--accent);color:#fff;border-color:var(--accent);pointer-events:none;}
.hstep-btn--blue.done,.hstep-btn--purple.done{background:var(--accent);color:#fff;border-color:var(--accent);}
.hstep-btn--ghost.done{background:var(--accent);color:#fff;border-color:var(--accent);}
.hstep-btn--blue{background:var(--accent);color:#fff;border:1px solid var(--accent);}
.hstep-btn--purple{background:rgba(52,152,236,.13);color:#3498ec;border:1px solid rgba(52,152,236,.22);}
.hstep-btn--red{background:#ec3452;color:#fff;border:1px solid #ec3452;}
.hstep-btn--ghost{background:rgba(255,255,255,.05);color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.1);}
.hstep-btn:disabled,.hstep-btn[disabled]{opacity:.25;pointer-events:none;}
.hstep-muted{font-size:.68rem;color:rgba(255,255,255,.22);margin-top:.35rem;font-style:italic;}

/* Social checklist (receive step 1) */
.hstep-social-checks{display:flex;flex-direction:column;gap:.32rem;margin-bottom:.5rem;}
.hstep-social-row{
  display:flex;align-items:center;gap:.5rem;
  font-size:.74rem;color:rgba(255,255,255,.5);
}
.hstep-social-dot{
  width:7px;height:7px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.1);transition:background .3s;
}
.hstep-social-dot.linked{background:var(--accent);box-shadow:0 0 5px rgba(var(--accent-r),var(--accent-g),var(--accent-b),.4);}
.hstep-link-btn{
  margin-left:auto;padding:.18rem .55rem;border-radius:6px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  font-family:'Inter',sans-serif;font-size:.63rem;font-weight:700;
  color:rgba(255,255,255,.45);cursor:pointer;transition:all .15s;white-space:nowrap;
}
.hstep-link-btn:hover{background:rgba(255,255,255,.12);color:#fff;}
.hstep-link-btn.linked{
  background:var(--accent);border-color:var(--accent);
  color:#fff;pointer-events:none;
}

/* Bankr note */
.hstep-bankr-note{
  display:flex;align-items:flex-start;gap:.32rem;
  font-size:.67rem;color:rgba(255,255,255,.22);line-height:1.5;margin-top:.5rem;
}
.hstep-bankr-note a{color:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.6);}
.hstep-bankr-note svg{flex-shrink:0;margin-top:.15rem;opacity:.4;}

/* Bottom row */
.help-donate-row{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.3rem;
  padding:.7rem 0 0;margin-top:.15rem;
  border-top:1px solid rgba(255,255,255,.05);
  font-size:.68rem;color:rgba(255,255,255,.18);
}
.help-donate-row a{color:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.55);font-weight:700;}
.help-donate-row a:hover{color:var(--accent);text-decoration:none;}

/* Mobile — slide-up sheet */
@media(max-width:600px){
  #help-money-modal{align-items:flex-end;}
  .help-panel-inner{
    width:100%;max-width:100%;border-radius:20px 20px 0 0;
    border-bottom:none;
    padding:1.2rem 1.1rem calc(1.4rem + env(safe-area-inset-bottom));
    max-height:88dvh;
  }
  #help-money-modal .help-panel-x{display:none;}
  .help-toggle-bar{width:100%;}
  body:not(.map-light) .gd-cluster{backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);}
}
/* Theme toggle in header */
.theme-header-btn{
  background:none;border:none;cursor:pointer;padding:6px;
  color:#fff;transition:color .15s;display:flex;align-items:center;
}
.theme-header-btn:hover{color:#fff;opacity:.75;}
@media(max-width:768px){.theme-header-btn{display:none;}}

/* Help view toggle */
.help-toggle{
  flex:1;padding:.65rem;border:none;border-radius:10px;
  font-family:'Inter',sans-serif;font-size:.88rem;font-weight:700;
  cursor:pointer;background:transparent;color:rgba(255,255,255,.35);
  transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;
}
.help-toggle--stranded.active{background:rgba(236,52,82,.15);color:#ec3452;border:none;}
.help-toggle--helper.active{background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.15);color:var(--accent);border:1px solid rgba(var(--accent-r),var(--accent-g),var(--accent-b),.2);}
/* GPS button */
.gps-btn{align-self:center;
  width:42px;height:42px;min-width:42px;border-radius:10px;
  background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.15);border:none;
  color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .15s;
}
.gps-btn:hover{background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.25);}
@media(max-width:768px){.gps-btn{align-self:center;width:38px;height:38px;min-width:38px;}}
/* Translate widget */
.translate-wrap{position:relative;}
.translate-overlay{
  display:none;position:fixed;top:0;right:0;z-index:99999;
  padding:.8rem;
}
.translate-overlay.open{display:block;}
.translate-panel{
  background:#000;border:none;border-radius:10px;
  padding:.8rem 1rem;min-width:280px;max-width:340px;
  box-shadow:0 8px 40px rgba(0,0,0,.8);
}
.lang-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:4px;
  max-height:50vh;overflow-y:auto;
}
.lang-btn{
  background:#1a1b1c;border:none;border-radius:6px;
  padding:.45rem .6rem;font-family:Inter,sans-serif;font-size:.75rem;font-weight:600;
  color:#fff;cursor:pointer;text-align:left;transition:all .12s;
  display:flex;align-items:center;gap:6px;
}
.lang-btn:hover{background:rgba(255,255,255,.12);color:#fff;}
.lang-btn.active{background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.2);color:var(--accent);}
.lang-btn .lang-native{font-size:.65rem;color:rgba(255,255,255,.4);}
.lang-reset{
  display:block;width:100%;margin-top:.5rem;padding:.4rem;
  background:#1a1b1c;border:none;border-radius:6px;
  color:#fff;font-family:Inter,sans-serif;font-size:.7rem;font-weight:600;
  cursor:pointer;text-align:center;
}
.lang-reset:hover{background:rgba(255,255,255,.12);color:#fff;}
@media(max-width:600px){
  .translate-overlay{
    position:fixed;inset:auto 0 0 0;padding:0;
    /* prevent anything spilling off-screen */
    max-width:100vw;box-sizing:border-box;
  }
  .translate-panel{
    border-radius:16px 16px 0 0;
    min-width:0;max-width:100%;width:100%;
    padding:1rem 1rem calc(1.5rem + env(safe-area-inset-bottom));
    box-sizing:border-box;
  }
  .lang-grid{grid-template-columns:1fr 1fr;max-height:45vh;}
}

/* Restyle Google Translate widget to dark */
.goog-te-gadget{font-family:Inter,sans-serif !important;font-size:0 !important;color:transparent !important;}
.goog-te-gadget .goog-te-combo{
  background:#1a1a1a !important;color:#fff !important;
  border:1px solid rgba(255,255,255,.15) !important;border-radius:6px !important;
  padding:.4rem .5rem !important;font-family:Inter,sans-serif !important;font-size:.82rem !important;
  width:100% !important;cursor:pointer !important;outline:none !important;
  -webkit-appearance:none !important;appearance:none !important;
}
.goog-te-gadget .goog-te-combo:focus{border-color:rgba(52,152,236,.5) !important;}
.goog-te-gadget > span{display:none !important;}
/* Hide Google Translate banner — force everything offscreen */
/* Hide Google Translate banner — keep iframe alive for translation engine */
.goog-te-banner-frame{height:0 !important;overflow:hidden !important;border:none !important;}
body > .skiptranslate:first-child{height:0 !important;overflow:hidden !important;position:fixed !important;top:0 !important;z-index:-999 !important;}
#google_translate_element .skiptranslate{display:block !important;}
body{top:0 !important;position:static !important;}
html.translated-ltr body,html.translated-rtl body{top:0 !important;}
/* Global disruption dots */
.global-disruption-dot{transition:fill-opacity .3s;}
.global-disruption-dot:hover{fill-opacity:.6 !important;}
/* Direction toggle (Stranded at / Heading to) */
.fp-dir-toggle{display:flex;gap:0;margin:.5rem 0;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.08);}
.fp-dir-btn{flex:1;padding:.4rem .5rem;font-family:Inter,sans-serif;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:transparent;border:none;color:rgba(255,255,255,.35);cursor:pointer;transition:all .15s;}
.fp-dir-btn:first-child{border-right:1px solid rgba(255,255,255,.08);}
.fp-dir-btn.active{background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.15);color:var(--accent);}
.fp-dir-btn:hover:not(.active){background:rgba(255,255,255,.04);color:rgba(255,255,255,.5);}
/* ── Success Stories / Match System ─────────────────────────── */

/* Green pulse pin on map */
@keyframes success-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(34,197,94,.6), 0 0 0 0 rgba(34,197,94,.3); }
  70%  { box-shadow: 0 0 0 8px rgba(34,197,94,0), 0 0 0 16px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}
.success-pin {
  width: 16px; height: 16px;
  background: #22c55e; border: 2.5px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(34,197,94,.6);
  animation: success-pulse 2.4s ease-out infinite;
}

/* Match + Story modals — same overlay pattern as help panel */
#match-modal, #story-modal {
  display: none; position: fixed; inset: 0; z-index: 9998;
  background: rgba(0,0,0,.7); backdrop-filter: blur(4px);
  align-items: center; justify-content: center;
}
#match-modal.open, #story-modal.open { display: flex; }
.match-modal-inner {
  background: #0a0a0a; border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px; width: 90%; max-width: 460px;
  padding: 1.4rem 1.3rem 1.2rem; position: relative;
  max-height: 88vh; overflow-y: auto;
}
.match-modal-title {
  font-size: 1rem; font-weight: 800; color: #fff;
  margin-bottom: .2rem; padding-right: 2.5rem;
}
.match-modal-sub {
  font-size: .73rem; color: rgba(255,255,255,.35);
  margin-bottom: 1rem; line-height: 1.5;
}

/* Offer cards inside match picker */
.match-offer-card {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px; padding: .75rem .9rem; margin-bottom: .5rem;
  cursor: pointer; transition: border-color .15s, background .15s;
}
.match-offer-card:hover { border-color: rgba(34,197,94,.35); background: rgba(34,197,94,.04); }
.match-offer-card.selected { border-color: #22c55e; background: rgba(34,197,94,.08); }
.match-offer-name { font-size: .83rem; font-weight: 700; color: #fff; margin-bottom: .15rem; }
.match-offer-loc { font-size: .73rem; color: rgba(255,255,255,.45); margin-bottom: .2rem; }
.match-offer-dist { font-size: .65rem; font-weight: 700; color: rgba(34,197,94,.8); }
.match-offer-body { font-size: .73rem; color: rgba(255,255,255,.4); line-height: 1.5; margin-top: .25rem; }

/* Notification banner on offer post cards */
.match-notif-banner {
  background: rgba(34,197,94,.07); border: 1px solid rgba(34,197,94,.2);
  border-radius: 8px; padding: .55rem .75rem; margin-top: .6rem;
  display: flex; align-items: center; gap: .55rem; flex-wrap: wrap;
}
.match-notif-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: #22c55e; flex-shrink: 0;
  animation: success-pulse 2s ease-out infinite;
}
.match-notif-text {
  font-size: .73rem; color: rgba(255,255,255,.65); flex: 1; line-height: 1.4;
}
.match-notif-btn {
  padding: .28rem .7rem; border-radius: 7px; border: none; cursor: pointer;
  font-family: Inter, sans-serif; font-size: .68rem; font-weight: 700;
  background: #22c55e; color: #000; transition: opacity .15s;
}
.match-notif-btn:hover { opacity: .85; }
.match-notif-btn--skip {
  background: transparent; color: rgba(255,255,255,.3);
  border: 1px solid rgba(255,255,255,.1);
}

/* Found-a-place button on stranded cards */
.found-place-btn {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .3rem .75rem; border-radius: 7px; border: 1px solid rgba(34,197,94,.3);
  background: rgba(34,197,94,.08); color: #22c55e;
  font-family: Inter, sans-serif; font-size: .7rem; font-weight: 700;
  cursor: pointer; transition: all .15s;
}
.found-place-btn:hover { background: rgba(34,197,94,.15); }
.found-place-btn.pending {
  color: rgba(255,255,255,.35); border-color: rgba(255,255,255,.1);
  background: transparent; pointer-events: none;
}
.found-place-btn.matched {
  color: #22c55e; border-color: rgba(34,197,94,.4);
  background: rgba(34,197,94,.1);
}

/* Story textarea */
.story-textarea {
  width: 100%; background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12); border-radius: 10px;
  color: #fff; font-family: Inter, sans-serif; font-size: .82rem;
  padding: .75rem; resize: none; line-height: 1.6; min-height: 90px;
  box-sizing: border-box; margin-bottom: .6rem;
}
.story-textarea:focus { outline: none; border-color: rgba(34,197,94,.35); }
.story-char-count { font-size: .65rem; color: rgba(255,255,255,.25); text-align: right; margin-bottom: .75rem; }

@media(max-width:600px){
  #match-modal, #story-modal { align-items: flex-end; }
  .match-modal-inner {
    width: 100%; max-width: 100%; border-radius: 20px 20px 0 0;
    border-bottom: none;
    padding: 1.2rem 1.1rem calc(1.4rem + env(safe-area-inset-bottom));
    max-height: 90dvh;
  }
}

/* ── Success popup toggle ──────────────────────────────────── */
.success-popup-toggle {
  display: flex; background: rgba(255,255,255,.06); border-radius: 6px;
  padding: 2px; gap: 2px; margin-bottom: .6rem;
  border: 1px solid rgba(255,255,255,.08);
}
.spt-btn {
  flex: 1; padding: .28rem .4rem; border: none; border-radius: 5px;
  font-family: Inter,sans-serif; font-size: .62rem; font-weight: 700;
  letter-spacing: .03em; cursor: pointer; transition: all .15s;
  color: rgba(255,255,255,.35); background: transparent;
}
.spt-btn.active { background: rgba(34,197,94,.2); color: #22c55e; }

/* ── Arc lines ─────────────────────────────────────────────── */
.success-arc { pointer-events: none; }

/* ── Got home modal ─────────────────────────────────────────── */
#gohome-modal {
  display: none; position: fixed; inset: 0; z-index: 9998;
  background: rgba(0,0,0,.7); backdrop-filter: blur(4px);
  align-items: center; justify-content: center;
}
#gohome-modal.open { display: flex; }
#gohome-modal .match-modal-inner { max-width: 400px; }
.gohome-loc-wrap { position: relative; margin-bottom: .5rem; }
.gohome-loc-input {
  width: 100%; background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12); border-radius: 10px;
  color: #fff; font-family: Inter, sans-serif; font-size: .82rem;
  padding: .65rem .8rem; box-sizing: border-box;
}
.gohome-loc-input:focus { outline: none; border-color: rgba(34,197,94,.35); }

/* Role-block warning */
.role-block-msg {
  background: rgba(241,196,68,.08); border: 1px solid rgba(241,196,68,.2);
  border-radius: 10px; padding: .75rem 1rem; margin-bottom: 1rem;
  font-size: .78rem; color: rgba(241,196,68,.9); line-height: 1.5;
}

@media(max-width:600px){
  #gohome-modal { align-items: flex-end; }
  #gohome-modal .match-modal-inner {
    width: 100%; max-width: 100%; border-radius: 20px 20px 0 0;
    border-bottom: none;
    padding: 1.2rem 1.1rem calc(1.4rem + env(safe-area-inset-bottom));
    max-height: 90dvh;
  }
}

/* ── Filter panel crisis snapshot ─────────────────────────── */
/* fp-timeline-card removed */

/* ── Accent color picker ─────────────────────────────────── */
.accent-picker-wrap {
  position: relative; display: inline-flex; align-items: center;
}
.accent-swatch-btn {
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px; padding: .38rem .5rem; cursor: pointer;
  transition: background .15s;
}
.accent-swatch-btn:hover { background: rgba(255,255,255,.12); }
.accent-swatch-dot {
  display: block; width: 12px; height: 12px; border-radius: 50%;
  background: var(--accent); flex-shrink: 0;
  box-shadow: 0 0 6px var(--accent);
}
.accent-dropdown {
  display: none; position: absolute; top: calc(100% + 8px); right: 0;
  background: #0f1113; border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px; padding: .65rem .75rem; z-index: 99999;
  box-shadow: 0 8px 32px rgba(0,0,0,.5); min-width: 200px;
  backdrop-filter: blur(8px);
}
.accent-dropdown.open { display: block; }
.accent-dropdown--mobile { right: auto; left: 0; top: calc(100% + 8px); }
.accent-dropdown-label {
  font-size: .58rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: rgba(255,255,255,.3); margin-bottom: .5rem;
}
.accent-swatches {
  display: flex; gap: .45rem; align-items: center;
}
.accent-opt {
  background: none; border: 2px solid transparent; border-radius: 50%;
  padding: 2px; cursor: pointer; transition: border-color .15s, transform .12s;
  display: flex; align-items: center; justify-content: center;
}
.accent-opt:hover { transform: scale(1.15); }
.accent-opt.active { border-color: rgba(255,255,255,.5); }
.accent-opt-dot {
  display: block; width: 18px; height: 18px; border-radius: 50%;
  box-shadow: 0 0 8px currentColor;
}
/* ── Loading state ─────────────────────────────────────── */
@keyframes statPulse {
  0%,100% { opacity: 1; }
  50%      { opacity: .25; }
}
@keyframes toastDot {
  0%,100% { opacity: .25; transform: scale(.8); }
  50%      { opacity: 1;   transform: scale(1.2); }
}
@keyframes toastSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.stat-loading {
  animation: statPulse 1.2s ease-in-out infinite;
  color: rgba(255,255,255,.35) !important;
}
.toast-spin { animation: toastSpin 1s linear infinite; }
#data-loading-toast.toast-hidden {
  opacity: 0 !important;
  transform: translateX(-50%) translateY(12px) !important;
  pointer-events: none;
}
@media (max-width: 600px) {
  #data-loading-toast { bottom: 5rem; }
}

/* ── Digit flip animation ──────────────────────────────── */
.flip-display {
  display: inline-flex;
  align-items: flex-end;
  gap: 0;
  overflow: hidden;
  vertical-align: baseline;
}
.flip-digit-wrap {
  display: inline-block;
  overflow: hidden;
  position: relative;
  line-height: 1;
}
.flip-digit-inner {
  display: flex;
  flex-direction: column;
  will-change: transform;
  transition: transform 0s;
}
.flip-digit-inner.is-spinning {
  animation: none;
}
.flip-char {
  display: block;
  text-align: center;
  line-height: 1;
}
.flip-sep {
  display: inline-block;
  line-height: 1;
  align-self: flex-end;
  padding-bottom: .05em;
}
/* ═══════════════════════════════════════════════════════════════════════
   PC PIN INFO SIDEBAR  — slides in from the right edge of the map.
   Arcs stay live on the map behind it. Click bare map to close.
═══════════════════════════════════════════════════════════════════════ */
#pin-sidebar {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 320px;
  z-index: 950;
  background: rgba(7,7,12,1);
  border-left: 1px solid rgba(255,255,255,.08);
  box-shadow: -8px 0 40px rgba(0,0,0,.6);
  transform: translateX(100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  pointer-events: none;
}
#pin-sidebar.open {
  transform: translateX(0);
  pointer-events: all;
}

#pin-sidebar-header {

  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: .75rem;
  padding: 1rem 1rem .85rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
}
#pin-sidebar-header-text { flex: 1; min-width: 0; text-align: center; }
#pin-sidebar-city {
  font-size: 2rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.01em;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#pin-sidebar-meta {
  display: flex;justify-content: center;
  gap: .5rem;
  align-items: center;
  margin-top: .2rem;
}
#pin-sidebar-code {
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .1em;
  color: var(--accent);
  text-transform: uppercase;
}
#pin-sidebar-country {
  font-size: .8rem;
  color: #fff;
  font-weight: 500;
}
#pin-sidebar-close {
  flex-shrink: 0; display: none;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.45);
  cursor: pointer;
  padding: 5px;
  line-height: 0;
  border-radius: 7px;
  transition: color .15s, background .15s, border-color .15s;
  margin-top: .1rem;
}
#pin-sidebar-close:hover {
  color: #fff;
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.15); 
}

#pin-sidebar-body {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 1rem 2rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.1) transparent;
}
#pin-sidebar-body::-webkit-scrollbar { width: 4px; }
#pin-sidebar-body::-webkit-scrollbar-track { background: transparent; }
#pin-sidebar-body::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.12);
  border-radius: 4px;
}

/* Hide on mobile — mobile uses its own m-pin-sheet */
@media (max-width: 600px) {
  #pin-sidebar { display: none !important; }
}
/* ── POST SIDEBAR ──────────────────────────────────────────── */
#post-sidebar {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 360px;
  z-index: 950;
  background: rgba(7,7,12,.99);
  /* backdrop-filter removed — causes Leaflet SVG GPU compositor reset on iOS/Safari */
  will-change: transform;
  border-left: 1px solid rgba(255,255,255,.08);
  box-shadow: -8px 0 40px rgba(0,0,0,.6);
  transform: translateX(100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  pointer-events: none;
}
#post-sidebar.open {
  transform: translateX(0);
  pointer-events: all;
}
#post-sidebar-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1rem 1rem .85rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
}
#post-sidebar-avatar-wrap {
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
}
#post-sidebar-avatar-initials {
  width: 100%; height: 100%;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  background: var(--accent);
}
#post-sidebar-avatar-img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
#post-sidebar-header-text { flex: 1; min-width: 0; }
#post-sidebar-name {
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
#post-sidebar-meta {
  display: flex;
  gap: .4rem;
  align-items: center;
  margin-top: .25rem;
  flex-wrap: wrap;
}
#post-sidebar-type-badge {
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .15rem .45rem;
  border-radius: 4px;
}
#post-sidebar-time {
  font-size: .62rem;
  color: rgba(255,255,255,.3);
}
#post-sidebar-close {
  flex-shrink: 0;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.45);
  cursor: pointer;
  padding: 5px;
  line-height: 0;
  border-radius: 7px;
  transition: color .15s, background .15s;
  align-self: flex-start;
  margin-top: .1rem;
}
#post-sidebar-close:hover {
  color: #fff;
  background: rgba(255,255,255,.1);
}
#post-sidebar-body {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 1rem 2rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.1) transparent;
}
#post-sidebar-body::-webkit-scrollbar { width: 4px; }
#post-sidebar-body::-webkit-scrollbar-track { background: transparent; }
#post-sidebar-body::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.12);
  border-radius: 4px;
}
.post-sidebar-section {
  margin-bottom: 1rem;
}
.post-sidebar-label {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.25);
  margin-bottom: .35rem;
}
.post-sidebar-value {
  font-size: .85rem;
  color: rgba(255,255,255,.8);
  line-height: 1.55;
}
.post-sidebar-divider {
  border: none;
  border-top: 1px solid rgba(255,255,255,.06);
  margin: .85rem 0;
}
@media (max-width: 600px) {
  #post-sidebar { display: none !important; }
}

/* ── AIRPORT STRANDED ZOOM LABELS ──────────────────────────── */
.airport-stranded-label {
  font-family: Inter, sans-serif;
  font-size: .58rem;
  font-weight: 800;
  color: #ec3452;
  background: rgba(7,7,12,.82);
  border: 1px solid rgba(236,52,82,.3);
  border-radius: 5px;
  padding: .15rem .4rem;
  white-space: nowrap;
  pointer-events: none;
  transform: translateX(-50%);
  display: inline-block;
  letter-spacing: .02em;
  /* backdrop-filter removed from map overlay — Leaflet compositor risk */
}

/* ── STRANDED CLUSTER (red, shows est. stranded) ───────────── */
.stranded-cluster {
  background: rgba(236,52,82,.85);
  border: 2px solid rgba(236,52,82,.4);
  border-radius: 50%;
  color: #fff;
  font-family: Inter, sans-serif;
  font-size: .68rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 4px rgba(236,52,82,.15), 0 2px 8px rgba(0,0,0,.4);
  letter-spacing: -.01em;
}

/* ── GLOBAL DISRUPTION CLUSTERS ────────────────────────────── */
.gd-cluster {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  /* background, border, box-shadow set inline per heatmap tier */
  cursor: pointer;
  transition: transform .15s, box-shadow .15s;
  /* backdrop-filter removed from map marker — Leaflet compositor risk */
}
.gd-cluster:hover,
.gd-cluster.gd-active {
  transform: scale(1.06);
  box-shadow:
    0 0 0 8px rgba(var(--accent-r),var(--accent-g),var(--accent-b),.12),
    0 0 48px rgba(var(--accent-r),var(--accent-g),var(--accent-b),.4),
    0 4px 24px rgba(0,0,0,.6);
}
.gd-cluster.gd-active .gd-cluster-ring {
  border-color: rgba(var(--accent-r),var(--accent-g),var(--accent-b),.45);
  animation: gdPulseActive 1.8s ease-in-out infinite;
}
@keyframes gdPulseActive {
  0%, 100% { opacity: .7; transform: scale(1); }
  50%       { opacity: .25; transform: scale(1.12); }
}
.gd-cluster-ring {
  position: absolute;
  border-radius: 50%;
  border: 8px solid rgba(var(--accent-r),var(--accent-g),var(--accent-b),.99);
  pointer-events: none;
  animation: gdPulse 4s ease-in-out infinite;
}
@keyframes gdPulse {
  0%, 100% { opacity: .5; transform: scale(1); }
  50%       { opacity: .15; transform: scale(1.08); }
}
.gd-cluster-inner {
  text-align: center;
  line-height: 1.1;
}
.gd-cluster-num {
  font-family: Inter, sans-serif;
font-size: clamp(.7rem, 2.5vw, 1.7rem);
  font-weight: 900;
  color: #fff;
  line-height: 1;
}
.gd-cluster-lbl {
  font-family: Inter, sans-serif;
font-size: clamp(.45rem, 1.2vw, .58rem);
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-top: .15rem;
}

/* ── SINGLE AIRPORT DOT + LABEL ─────────────────────────────── */
.gd-single {
  position: relative;
}
.gd-single-dot {
  transition: transform .15s, box-shadow .15s;
}
.gd-single:hover .gd-single-dot,
.gd-single.gd-active .gd-single-dot {
  transform: scale(1.2);
}
.gd-single-label {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 4px;
  font-family: Inter, sans-serif;
  font-size: .55rem;
  font-weight: 800;
  color: #ec3452;
  background: rgba(7,7,12,.85);
  border: 1px solid rgba(236,52,82,.25);
  border-radius: 4px;
  padding: .1rem .35rem;
  white-space: nowrap;
  pointer-events: none;
  /* backdrop-filter removed from map label — Leaflet compositor risk */
  opacity: 0;
  transition: opacity .2s;
}
.leaflet-zoom-level-5 .gd-single-label,
.leaflet-zoom-level-6 .gd-single-label,
.leaflet-zoom-level-7 .gd-single-label,
.leaflet-zoom-level-8 .gd-single-label,
.leaflet-zoom-level-9 .gd-single-label,
.leaflet-zoom-level-10 .gd-single-label {
  opacity: 1;
}
.gd-single:hover .gd-single-label,
.gd-single.gd-active .gd-single-label {
  opacity: 1;
}

/* ══════════════════════════════════════════════════════════════
   FORM SIDEBAR — PC fly-in for offer / stranded / help / profile
   Same pattern as #pin-sidebar — position:absolute inside #map-view
══════════════════════════════════════════════════════════════ */
#form-sidebar {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 400px;
  z-index: 1050;
  background: rgba(7,7,12,1);
  border-left: none;
  box-shadow: -8px 0 40px rgba(0,0,0,.6);
  transform: translateX(100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  pointer-events: none;
}
#form-sidebar.open {
  transform: translateX(0);
  pointer-events: all;
}
#form-sidebar-header {
  display: none;
}
#form-sidebar-title {
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.45);
}
#form-sidebar-close {
  background: none; border: none;
  color: rgba(255,255,255,.35);
  cursor: pointer; padding: 4px; line-height: 0;
  transition: color .15s;
}
#form-sidebar-close:hover { color: #fff; }
#form-sidebar-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.2rem 1.25rem 2rem;
  overscroll-behavior: contain;
}
#form-sidebar-body::-webkit-scrollbar { width: 4px; }
#form-sidebar-body::-webkit-scrollbar-track { background: transparent; }
#form-sidebar-body::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 2px; }
.fs-panel { display: none; }
/* Help panel inside sidebar — full width, no modal chrome */
#form-sidebar-body .help-panel-inner {
  width: 100% !important;
  max-width: 100% !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
/* Offer form inside sidebar — no outer card border */
#form-sidebar-body #help-panel-offer > .post-form-card,
#form-sidebar-body .post-form-card {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}
.fs-panel.fs-active { display: block; }
/* Strip inner container widths */
#form-sidebar-body .container { max-width: 100% !important; padding: 0 !important; }
#form-sidebar-body #help-panel-offer { display: block !important; grid-template-columns: 1fr !important; }
/* Remove blue header card border + background in sidebar */
#form-sidebar-body #help-panel-offer > div:first-child > div:first-child {
  border: none !important;
  background: transparent !important;
  padding: 0 0 .5rem 0 !important;
}

/* Strip $HELP panel chrome — we're already in a sidebar */
#form-sidebar-body .help-panel-x { display: none !important; }
#form-sidebar-body .help-panel-inner { padding: 0 !important; box-shadow: none !important; max-height: none !important; overflow: visible !important; }
/* Hide on mobile */
@media (max-width: 768px) {
  #form-sidebar { display: none !important; }
}

/* form-sidebar content — managed by JS DOM moves */

/* ── Sidebar: offer/stranded form overrides ─────────────────────────────── */
/* Hide toggle bar & live posts column when form is inside the right sidebar */
#form-sidebar-body .help-toggle-wrap { display: none !important; }
#form-sidebar-body #help-panel-offer {
  display: block !important;
  grid-template-columns: 1fr !important;
}
/* Hide the right "SPARE ROOMS OFFERED" live column inside sidebar */
#form-sidebar-body #help-panel-offer > div:last-child:has(#offer-posts) { display: none !important; }
/* Give the offer form single-column card padding */
#form-sidebar-body #help-panel-offer .post-form { padding: 0; }
#form-sidebar-body #help-panel-offer > div:first-child { width: 100%; max-width: 100%; }
/* Stranded panel: remove centering max-width constraint in sidebar */
#form-sidebar-body #help-panel-stranded { max-width: 100% !important; margin: 0 !important; }
/* we're already in a sidebar */
#form-sidebar-body .help-panel-x { display: none !important; }
#form-sidebar-body .help-panel-inner { padding: 0 !important; box-shadow: none !important; max-height: none !important; overflow: visible !important; }
/* Hide on mobile */
@media (max-width: 768px) {
  #form-sidebar { display: none !important; }
}

/* form-sidebar content — managed by JS DOM moves */

/* ── Sidebar: offer/stranded form overrides ─────────────────────────────── */
/* Hide toggle bar & live posts column when form is inside the right sidebar */
#form-sidebar-body .help-toggle-wrap { display: none !important; }
#form-sidebar-body #help-panel-offer {
  display: block !important;
  grid-template-columns: 1fr !important;
}
/* Hide the right "SPARE ROOMS OFFERED" live column inside sidebar */
#form-sidebar-body #help-panel-offer > div:last-child:has(#offer-posts) { display: none !important; }
/* Give the offer form single-column card padding */
#form-sidebar-body #help-panel-offer .post-form { padding: 0; }
#form-sidebar-body #help-panel-offer > div:first-child { width: 100%; max-width: 100%; }
/* Stranded panel: remove centering max-width constraint in sidebar */
#form-sidebar-body #help-panel-stranded { max-width: 100% !important; margin: 0 !important; }
/* ── MOBILE: larger dot text + bubbles ────────────────────── */
@media (max-width: 600px) {
  .gd-cluster-num {
    font-size: 1.5rem !important;
  }
  .gd-cluster-lbl {
    font-size: clamp(.6rem, 2.2vw, .9rem) !important;
  }
}

/* Hide popup city header inside PC sidebar (sidebar has its own header) */
#pin-sidebar-body .popup-city-header { display: none; }

/* Mobile: larger section titles in pin sheet */
@media (max-width: 600px) {
  .popup-section-title {
    font-size: 1.5rem !important;
  }
}

/* Offer tab always white background */
.m-tab-spare, .m-tab-spare.active, .m-tab-spare:active {
  background: #fff !important;
  color: #000 !important;
}
.m-tab-spare svg { stroke: var(--accent) !important; }

/* ── LIGHT MAP THEME: darker dots + text ─────────────────── */
.map-light .gd-cluster-num {
  color: #1a1a2e;
  text-shadow: 0 0 8px rgba(255,255,255,.8);
}
.map-light .gd-cluster-lbl {
  color: rgba(0,0,0,.55);
  text-shadow: 0 0 6px rgba(255,255,255,.7);
}
.map-light .gd-cluster {
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 2px 12px rgba(0,0,0,.15), 0 0 24px rgba(0,0,0,.08);
}
.map-light .gd-cluster-ring {
  border-color: rgba(0,0,0,.12);
}

/* Light theme adjustments for user clusters */
/* ── User dot type colors (dark theme default) ─────────── */
/* Numbers: white | Labels: white for user-posted dots */
.gd-cluster--offer .gd-cluster-lbl,
.gd-cluster--stranded .gd-cluster-lbl,
.gd-cluster--success .gd-cluster-lbl,
.gd-cluster--pet .gd-cluster-lbl { color: #fff; }

/* ── Light theme: dark numbers + labels ── */
.map-light .gd-cluster--offer .gd-cluster-num,
.map-light .gd-cluster--stranded .gd-cluster-num,
.map-light .gd-cluster--success .gd-cluster-num,
.map-light .gd-cluster--pet .gd-cluster-num { color: #1a1a2e; text-shadow: 0 0 6px rgba(255,255,255,.7); }
.map-light .gd-cluster--offer .gd-cluster-lbl,
.map-light .gd-cluster--stranded .gd-cluster-lbl,
.map-light .gd-cluster--success .gd-cluster-lbl,
.map-light .gd-cluster--pet .gd-cluster-lbl { color: #1a1a2e; text-shadow: 0 0 4px rgba(255,255,255,.5); }

/* Mobile: light by default, dark override */
@media (max-width: 600px) {
  .gd-cluster--offer .gd-cluster-num,
  .gd-cluster--stranded .gd-cluster-num,
  .gd-cluster--success .gd-cluster-num,
  .gd-cluster--pet .gd-cluster-num { color: #1a1a2e; }
  .gd-cluster--offer .gd-cluster-lbl,
  .gd-cluster--stranded .gd-cluster-lbl,
  .gd-cluster--success .gd-cluster-lbl,
  .gd-cluster--pet .gd-cluster-lbl { color: #1a1a2e; }
  body:not(.map-light) .gd-cluster--offer .gd-cluster-num,
  body:not(.map-light) .gd-cluster--stranded .gd-cluster-num,
  body:not(.map-light) .gd-cluster--success .gd-cluster-num,
  body:not(.map-light) .gd-cluster--pet .gd-cluster-num { color: #fff; }
  body:not(.map-light) .gd-cluster--offer .gd-cluster-lbl,
  body:not(.map-light) .gd-cluster--stranded .gd-cluster-lbl,
  body:not(.map-light) .gd-cluster--success .gd-cluster-lbl,
  body:not(.map-light) .gd-cluster--pet .gd-cluster-lbl { color: #fff; }
}

/* ── Solid action buttons (accent-aware) ─────────────── */
.manage-action-btn {
  flex: 1;
  padding: .65rem;
  border-radius: 10px;
  font-family: Inter, sans-serif;
  font-size: .75rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  border: none;
  color: #fff;
  transition: opacity .15s;
}
.manage-action-btn--accent { background: var(--accent); }
.manage-action-btn--blue { background: var(--accent); }
.manage-action-btn--red { background: #ec3452; }
.manage-action-btn--green { background: #22c55e; color: #000; }
.manage-action-btn svg { stroke: currentColor; }

/* ── Dark overlay on map when sidebar is open ─────────── */
.sidebar-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.35);
  z-index: 999;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s ease;
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
}
.sidebar-overlay.active {
  opacity: 1;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
/* Pets form in sidebar — remove redundant post-form padding */
#form-sidebar-body #help-panel-pets .post-form {
  padding: 0 !important;
}


/* Resources sidebar — override OS blue select highlight */
#pc-manage-content select,
#m-manage-content select {
  background:#111 !important;
  color:#fff !important;
  color-scheme:dark;
}
#pc-manage-content select option,
#m-manage-content select option {
  background:#111;
  color:#fff;
}
#pc-manage-content select optgroup,
#m-manage-content select optgroup {
  background:#111;
  color:rgba(255,255,255,.4);
}

/* Override OS blue selection highlight on all resource dropdowns */
#pc-manage-content select,
#m-manage-content select,
#res-stuck-in, #res-from,
#m-res-stuck, #m-res-from,
#res-sb-host, #res-sb-nat {
  accent-color: var(--accent);
  color-scheme: dark;
}
/* ── Share Tray ────────────────────────────────────── */
.share-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.7);backdrop-filter:blur(6px);display:none;align-items:flex-end;justify-content:center;}
.share-overlay.open{display:flex;}
.share-tray{background:#111;border-radius:20px 20px 0 0;padding:1.2rem 1rem 1.6rem;width:100%;max-width:480px;animation:shareTrayUp .25s ease-out;}
@keyframes shareTrayUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.share-tray-handle{width:36px;height:4px;background:rgba(255,255,255,.2);border-radius:2px;margin:0 auto .8rem;}
.share-tray-title{font-size:.9rem;font-weight:800;color:#fff;text-align:center;margin-bottom:.15rem;}
.share-tray-preview{font-size:.72rem;color:rgba(255,255,255,.45);text-align:center;margin-bottom:1rem;line-height:1.5;max-height:2.8em;overflow:hidden;}
.share-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;}
@media(max-width:400px){.share-grid{grid-template-columns:repeat(4,1fr);}}
.share-btn{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem .2rem;border:none;background:transparent;cursor:pointer;border-radius:10px;transition:background .15s;font-family:Inter,sans-serif;}
.share-btn:hover{background:rgba(255,255,255,.06);}
.share-btn-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;}
.share-btn-label{font-size:.52rem;font-weight:600;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.03em;}
.share-inline{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);cursor:pointer;transition:all .15s;flex-shrink:0;}
.share-inline:hover{background:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.15);border-color:rgba(var(--accent-r),var(--accent-g),var(--accent-b),.3);}
.share-inline svg{width:12px;height:12px;stroke:rgba(255,255,255,.45);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
.share-inline:hover svg{stroke:var(--accent);}

/* Loading beacon */
@keyframes beacon-pulse{
  0%{transform:scale(1);opacity:.6;}
  50%{transform:scale(1.8);opacity:0;}
  100%{transform:scale(1);opacity:0;}
}
@keyframes beacon-glow{
  0%,100%{opacity:.9;}
  50%{opacity:.4;}
}
.loading-beacon{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:1.2rem 0;
}
.loading-beacon-dot{
  position:relative;width:12px;height:12px;
}
.loading-beacon-dot::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:var(--accent);animation:beacon-glow 1.4s ease-in-out infinite;
}
.loading-beacon-dot::after{
  content:'';position:absolute;inset:-4px;border-radius:50%;
  border:2px solid var(--accent);animation:beacon-pulse 1.4s ease-out infinite;
}
.loading-beacon-text{
  font-size:.72rem;font-weight:600;color:rgba(255,255,255,.35);
  letter-spacing:.04em;font-family:'Inter',sans-serif;
}