:root{
  --bg:#f6f7f9; --card:#fff; --ink:#1a1f2b; --muted:#6b7280; --line:#e5e7eb;
  --accent:#2563eb; --green:#16a34a; --orange:#f59e0b; --grey:#9ca3af;
  --top:64px;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);display:flex;flex-direction:column}

.topbar{height:var(--top);flex:0 0 var(--top);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;background:#0f172a;color:#fff;z-index:1000}
.topbar h1{font-size:17px;margin:0;font-weight:650;letter-spacing:.2px}
.topbar h1 span{color:#93c5fd;font-weight:500}
.sub{margin:2px 0 0;font-size:12px;color:#cbd5e1}
.ghost{display:none;background:transparent;border:1px solid #475569;color:#fff;border-radius:8px;padding:8px 12px;font:inherit;cursor:pointer}
.actions{display:flex;gap:8px;align-items:center}
.csv{background:#1e293b;border:1px solid #475569;color:#fff;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:650;text-decoration:none}
.csv:hover{background:#334155}

.layout{flex:1;display:flex;min-height:0}

.sidebar{width:370px;flex:0 0 370px;background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.filters{padding:14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.field{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);min-width:0}
.field input,.field select{font:inherit;font-size:14px;text-transform:none;letter-spacing:0;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
.field input:focus,.field select:focus{outline:2px solid #bfdbfe;border-color:var(--accent)}
.row{display:flex;gap:8px}
.row .field{flex:1}
.check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);cursor:pointer}
.check input{width:15px;height:15px;accent-color:var(--accent)}
.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:5px}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.dot.g{background:var(--green)} .dot.o{background:var(--orange)} .dot.n{background:#6b7280} .dot.z{background:var(--grey)}

.seller-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;min-height:0}
.seller-item{padding:10px 14px;border-bottom:1px solid #f1f2f4;cursor:pointer}
.seller-item:hover,.seller-item.active{background:#eff6ff}
.seller-item .line1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.seller-item strong{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seller-item .rating{font-size:12px;font-weight:650;white-space:nowrap}
.seller-item .rating.g{color:var(--green)} .seller-item .rating.o{color:#b45309} .seller-item .rating.n{color:#4b5563} .seller-item .rating.z{color:var(--grey)}
.seller-item small{display:block;color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge{display:inline-block;font-size:10px;font-weight:650;padding:1px 5px;border-radius:4px;background:#dbeafe;color:#1d4ed8;vertical-align:1px}
.badge.web{background:#dcfce7;color:#15803d}
.empty{padding:24px 14px;color:var(--muted);text-align:center}

#map{flex:1;min-width:0;background:#e5e7eb}
.leaflet-popup-content{font-size:13px;line-height:1.5;margin:12px 14px}
.pop h3{margin:0 0 2px;font-size:14.5px}
.pop .biz{color:var(--muted);font-size:12px;margin-bottom:6px}
.pop .meta{margin:6px 0 0;padding:0;list-style:none;color:#374151;font-size:12.5px}
.pop .meta li{margin:2px 0}
.pop a{color:var(--accent);text-decoration:none}
.pop a:hover{text-decoration:underline}
.pop .tag{display:inline-block;font-size:10px;font-weight:650;padding:1px 5px;border-radius:4px;background:#dbeafe;color:#1d4ed8}
.pop .tag.c{background:#f3f4f6;color:#4b5563}
.pop .co{border-top:1px solid var(--line);margin-top:9px;padding-top:7px}
.pop .co .cohead{font-weight:650;color:#111827;margin-bottom:2px}

.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(37,99,235,.18)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:rgba(37,99,235,.88);color:#fff;font-weight:650}

@media (max-width:820px){
  .ghost{display:block}
  .layout{position:relative;flex-direction:column}
  .sidebar{position:absolute;left:0;right:0;bottom:0;width:auto;flex:none;height:58%;max-height:58%;z-index:900;border-right:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0;box-shadow:0 -6px 24px rgba(0,0,0,.14);transform:translateY(calc(100% - 52px));transition:transform .22s ease}
  .sidebar.open{transform:translateY(0)}
  .sidebar::before{content:"Vendeurs";display:flex;align-items:center;justify-content:center;height:52px;font-weight:650;color:var(--ink);border-bottom:1px solid var(--line);cursor:pointer}
  #map{position:absolute;inset:0}
  .filters{padding:12px}
}
