/* TogetherMap — dark, neon pins theme
:root{
    --bg:#071022;
    --card:#0f1724;
    --muted:#9aa6bf;
    --accent:#22d3ee; 
    --accent2:#ff6fb5; 
    --glass: rgba(255,255,255,0.04);
    --radius:12px;
    --shadow: 0 10px 30px rgba(2,6,23,0.6);
    --pin-size:18px;
  }
  
  *{box-sizing:border-box}
  html,body{height:100%}
  body{
    margin:0;background:linear-gradient(180deg,#071022 0%, #05111b 100%);color:#e6eef8;
    font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; -webkit-font-smoothing:antialiased;
    display:flex;flex-direction:column;min-height:100vh;
  }
  

  .topbar{
    display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,0.03);
  }
  .brand{display:flex;gap:12px;align-items:center}
  .logo{width:56px;height:56px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-weight:700;color:#021024}
  .title{font-weight:700;font-size:18px}
  .subtitle{font-size:12px;color:var(--muted)}
  
  .controls{display:flex;gap:10px;align-items:center}
  .btn{background:var(--accent);color:#021024;padding:9px 12px;border-radius:10px;border:none;cursor:pointer;font-weight:600;box-shadow:0 6px 18px rgba(34,211,238,0.08)}
  .btn.ghost{background:transparent;color:var(--muted);border:1px solid rgba(255,255,255,0.04);box-shadow:none}
  
 
  .layout{display:grid;grid-template-columns:1fr 340px;gap:18px;flex:1;padding:18px;align-items:start}
  .map-wrap{position:relative;min-height:66vh;border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
  .map{width:100%;height:66vh;background:#021024}
  
 
  .stats-panel{position:absolute;left:14px;top:14px;background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.02));backdrop-filter:blur(6px);
    padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,0.03);display:flex;gap:10px;z-index:600}
  .stat{display:flex;flex-direction:column;align-items:center;padding:6px 10px}
  .num{font-weight:800;font-size:18px}
  .lbl{font-size:11px;color:var(--muted)}
 
  .side{display:flex;flex-direction:column;gap:12px}
  .feed{background:var(--card);padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,0.03)}
  .feed-header{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
  .tiny{font-size:12px;color:var(--muted)}
  .feed-list{display:flex;flex-direction:column;gap:8px;max-height:62vh;overflow:auto;padding-right:6px}
  .feed-card{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,0.02);cursor:pointer;display:flex;gap:10px;align-items:flex-start}
  .feed-card:hover{transform:translateY(-4px);transition:all .18s}
  .feed-meta{display:flex;flex-direction:column;gap:4px}
  .feed-title{font-weight:700;font-size:14px;color:#fff}
  .feed-sub{font-size:12px;color:var(--muted)}
  

  .p-badge{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--accent2),var(--accent));display:flex;align-items:center;justify-content:center;font-weight:700;color:#021024}
  

  .legend{background:var(--card);padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,0.03);color:var(--muted);font-size:13px}
  
 
  .foot{text-align:center;padding:14px;font-size:13px;color:var(--muted);border-top:1px solid rgba(255,255,255,0.02)}
  

  .modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg, rgba(1,6,12,0.6), rgba(1,6,12,0.7));z-index:1000}
  .modal-card{background:#071829;padding:18px;border-radius:12px;max-width:640px;width:94%;box-shadow:0 30px 80px rgba(2,6,23,0.8);border:1px solid rgba(255,255,255,0.03)}
  .modal h2{margin:0 0 8px 0}
  .modal textarea{width:100%;min-height:84px;padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,0.03);background:transparent;color:#e6eef8}
  .modal input, .modal select{width:100%;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,0.03);background:transparent;color:#e6eef8}
  .row{display:flex;gap:8px;margin-top:8px}
  .col{flex:1}
  .small-gap .btn{padding:8px}
  
 
  .leaflet-marker-icon .pin {
    width: var(--pin-size);
    height: var(--pin-size);
    border-radius:50%;
    box-shadow: 0 6px 16px rgba(34,211,238,0.18);
    display:flex;align-items:center;justify-content:center;color:#021024;font-weight:800;
    transform-origin:center;
    animation:float 6s ease-in-out infinite;
  }
  @keyframes float{
    0%{transform:translateY(0)}
    50%{transform:translateY(-4px)}
    100%{transform:translateY(0)}
  }

  .pin-halo {
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
    width:44px;height:44px;background:radial-gradient(circle, rgba(34,211,238,0.22) 0%, rgba(34,211,238,0.06) 40%, transparent 60%);
    animation:halo 2.2s ease-out forwards;
  }
  @keyframes halo {
    from {opacity:0.9; transform:scale(.6)}
    to {opacity:0; transform:scale(2)}
  }
  
/
  @media (max-width:900px){
    .layout{grid-template-columns:1fr; padding:12px}
    .map{height:56vh}
    .side{order:2}
  }
  


.leaflet-marker-icon, .leaflet-div-icon {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }
  
 
  .custom-pin-icon {
    background: transparent !important;
    width: 40px;
    height: 40px;
    display: inline-block;
  }
  
 
  .custom-pin-icon .pin {
    width: 14px !important;
    height: 14px !important;
    border-radius: 50%;
    box-shadow: 0 6px 14px rgba(34,211,238,0.12);
    transform: translateY(-2px);
  }
  
  
  .custom-pin-icon .pin-halo {
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;
    width:42px;height:42px;background:radial-gradient(circle, rgba(34,211,238,0.22) 0%, rgba(34,211,238,0.06) 40%, transparent 60%);
    pointer-events:none; animation:halo 2.2s ease-out forwards;
  }
  @keyframes halo { from { opacity:0.9; transform:scale(.6) } to { opacity:0; transform:scale(2) } }

  /* TogetherMap — styles.css
   Dark neon theme, dot markers (no white square), feed, modals, responsive layout
*/

:root{
    --bg: #071022;
    --card: #0f1724;
    --muted: #9aa6bf;
    --accent: #22d3ee;
    --accent2: #ff6fb5;
    --glass: rgba(255,255,255,0.04);
    --radius: 12px;
    --shadow: 0 10px 30px rgba(2,6,23,0.6);
    --pin-size: 14px;
  }
  
  /* Reset & base */
  *{box-sizing:border-box}
  html,body{height:100%}
  body{
    margin:0;
    height:100%;
    font-family: 'Poppins', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    background: linear-gradient(180deg, #071022 0%, #05111b 100%);
    color: #e6eef8;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    display:flex;
    flex-direction:column;
    min-height:100vh;
  }
  
  /* Topbar */
  .topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 20px;
    border-bottom:1px solid rgba(255,255,255,0.03);
    z-index:1200;
  }
  .brand{display:flex;gap:12px;align-items:center}
  .logo{
    width:56px;height:56px;border-radius:10px;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    display:flex;align-items:center;justify-content:center;font-weight:700;color:#021024;font-size:20px;
    box-shadow: 0 10px 30px rgba(34,211,238,0.06);
  }
  .title{font-weight:700;font-size:18px}
  .subtitle{font-size:12px;color:var(--muted)}
  
  .controls{display:flex;gap:10px;align-items:center}
  .btn{
    background:var(--accent);color:#021024;padding:9px 12px;border-radius:10px;border:none;cursor:pointer;font-weight:600;
    box-shadow:0 6px 18px rgba(34,211,238,0.08);
    transition:transform .12s ease, opacity .12s ease;
  }
  .btn:hover{transform:translateY(-2px)}
  .btn.ghost{background:transparent;color:var(--muted);border:1px solid rgba(255,255,255,0.04);box-shadow:none}
  
  /* Layout */
  .layout{
    display:grid;
    grid-template-columns: 1fr 340px;
    gap:18px;
    padding:18px;
    flex:1;
    align-items:start;
  }
  .map-wrap{position:relative;min-height:66vh;border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
  .map{width:100%;height:66vh;background:#021024}
  
  /* Stats overlay */
  .stats-panel{
    position:absolute;left:14px;top:14px;background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.02));
    backdrop-filter:blur(6px);
    padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,0.03);display:flex;gap:10px;z-index:600;
  }
  .stat{display:flex;flex-direction:column;align-items:center;padding:6px 10px}
  .num{font-weight:800;font-size:18px}
  .lbl{font-size:11px;color:var(--muted)}
  
  /* Side feed */
  .side{display:flex;flex-direction:column;gap:12px}
  .feed{background:var(--card);padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,0.03)}
  .feed-header{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
  .tiny{font-size:12px;color:var(--muted)}
  .feed-list{display:flex;flex-direction:column;gap:8px;max-height:62vh;overflow:auto;padding-right:6px}
  .feed-card{
    background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
    padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,0.02);
    cursor:pointer;display:flex;gap:10px;align-items:flex-start;transition:transform .12s ease, box-shadow .12s ease;
  }
  .feed-card:hover{transform:translateY(-6px);box-shadow:0 10px 30px rgba(2,6,23,0.6)}
  .feed-meta{display:flex;flex-direction:column;gap:4px}
  .feed-title{font-weight:700;font-size:14px;color:#fff}
  .feed-sub{font-size:12px;color:var(--muted)}
  
  /* badge */
  .p-badge{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--accent2),var(--accent));display:flex;align-items:center;justify-content:center;font-weight:700;color:#021024}
  
  /* legend */
  .legend{background:var(--card);padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,0.03);color:var(--muted);font-size:13px}
  
  /* footer */
  .foot{text-align:center;padding:14px;font-size:13px;color:var(--muted);border-top:1px solid rgba(255,255,255,0.02)}
  
  /* modals */
  .modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg, rgba(1,6,12,0.6), rgba(1,6,12,0.7));z-index:1000}
  .modal-card{background:#071829;padding:18px;border-radius:12px;max-width:640px;width:94%;box-shadow:0 30px 80px rgba(2,6,23,0.8);border:1px solid rgba(255,255,255,0.03)}
  .modal h2{margin:0 0 8px 0}
  .modal textarea{width:100%;min-height:84px;padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,0.03);background:transparent;color:#e6eef8}
  .modal input, .modal select{width:100%;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,0.03);background:transparent;color:#e6eef8}
  .row{display:flex;gap:8px;margin-top:8px}
  .col{flex:1}
  .small-gap .btn{padding:8px}
  
  /* map pin CSS overrides (important to remove white square) */
  .leaflet-container .leaflet-marker-icon,
  .leaflet-container .leaflet-div-icon {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }
  
  /* custom pin wrapper */
  .custom-pin-icon {
    background: transparent !important;
    border: none !important;
    width:40px;height:40px;padding:0;margin:0;
    display:inline-block;position:relative;
  }
  
  /* the small dot */
  .custom-pin-icon .pin {
    width: var(--pin-size); height: var(--pin-size);
    border-radius:50%;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(34,211,238,0.12);
  }
  
  /* halo pulse */
  .custom-pin-icon .pin-halo {
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;
    width:44px;height:44px;background:radial-gradient(circle, rgba(34,211,238,0.22) 0%, rgba(34,211,238,0.06) 40%, transparent 60%);
    pointer-events:none; animation:halo 2.2s ease-out forwards;
  }
  @keyframes halo {
    from { opacity:0.9; transform:translate(-50%,-50%) scale(.6) }
    to { opacity:0; transform:translate(-50%,-50%) scale(2) }
  }
  
  /* subtle pin float animation */
  .custom-pin-icon .pin {
    animation:float 6s ease-in-out infinite;
  }
  @keyframes float {
    0%{transform:translateY(0)}
    50%{transform:translateY(-3px)}
    100%{transform:translateY(0)}
  }
  
  /* responsive */
  @media (max-width: 900px){
    .layout{grid-template-columns:1fr; padding:12px}
    .map{height:56vh}
    .side{order:2}
    .stats-panel{left:10px;top:10px}
  }
  
  /* small inputs & buttons styling inside modal */
  .modal .btn{padding:8px 10px;border-radius:8px}
  .modal .row .btn{padding:8px}
  
  /* small helpers */
  .hidden{display:none}
  .center{display:flex;align-items:center;justify-content:center}
  
  /* make scrollbar subtle */
  .feed-list::-webkit-scrollbar{width:8px}
  .feed-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.04);border-radius:8px}
/* REMOVE BOX AROUND HEART & FOCUS BUTTONS IN POPUP */
.leaflet-popup-content .heart-btn,
.leaflet-popup-content .zoom-btn {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  color: #eee !important;
  font-size: 15px;
  cursor: pointer;
  opacity: 0.85;
}

.leaflet-popup-content .heart-btn:hover,
.leaflet-popup-content .zoom-btn:hover {
  opacity: 1;
  text-shadow: 0 0 6px rgba(255,255,255,0.6);
}
