*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#f5f4f0;height:100vh;display:flex;flex-direction:column;overflow:hidden}
#hdr{background:#fff;border-bottom:1px solid #e0ddd5;padding:8px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}
#hdr h1{font-size:13px;font-weight:600;white-space:nowrap}
input[type=text]{border:1px solid #ddd;border-radius:5px;padding:4px 8px;font-size:12px;width:150px;outline:none}
input[type=text]:focus{border-color:#7c5cbf}
select{border:1px solid #ddd;border-radius:5px;padding:4px 24px 4px 8px;font-size:12px;background:#fff;outline:none;cursor:pointer;width:140px}
label{font-size:11px;color:#444;display:flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap}
#cnt{font-size:11px;color:#888;margin-left:auto;white-space:nowrap}
#body{display:flex;flex:1;min-height:0}
#map{flex:1;z-index:1}
#sb{width:320px;flex-shrink:0;background:#fff;border-left:1px solid #e0ddd5;display:flex;flex-direction:column;overflow:hidden}
#sbhdr{margin:0;padding:8px 10px;border-bottom:1px solid #eee;font-size:11px;font-weight:600;color:#555;background:#fafaf8;flex-shrink:0}
#list{flex:1;overflow-y:auto;position:relative}
.item{padding:7px 10px;border-bottom:0.5px solid #f0ede6;cursor:pointer;display:flex;align-items:flex-start;gap:7px}
.item:hover{background:#f7f5f0}
.item.active{background:#f3eeff}
.badge{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:7.5px;font-weight:700;color:#fff;flex-shrink:0;margin-top:2px}
.iname{font-size:10.5px;font-weight:500;line-height:1.4;color:#1a1a1a}
.imeta{font-size:9.5px;color:#888;margin-top:1px}
.tag{display:inline-block;font-size:7.5px;font-weight:700;border-radius:3px;padding:1px 3px;margin-left:3px;vertical-align:middle;line-height:1.4}
.tag-z{background:#374151;color:#fff}
.tag-rel{background:#b45309;color:#fff}
.tag-priv{background:#7c3aed;color:#fff}
#panel{background:#fff;border-top:1px solid #e0ddd5;padding:10px 12px;flex-shrink:0;display:none;position:relative}
#panel h2{font-size:12px;font-weight:600;line-height:1.4;margin-bottom:4px;padding-right:18px}
#panel .paddr{font-size:10px;color:#777;margin-bottom:5px}
#panel .pbadges{margin-bottom:6px;display:flex;gap:4px;flex-wrap:wrap}
#panel .pb{font-size:9px;font-weight:600;border-radius:3px;padding:2px 6px}
.stats{display:flex;gap:4px;margin-bottom:6px}
.stat{background:#f5f4f0;border-radius:4px;padding:5px 6px;text-align:center;flex:1}
.stat.main{background:#ede9ff}
.slbl{font-size:7.5px;color:#888;text-transform:uppercase;letter-spacing:.3px;margin-bottom:1px;line-height:1.2}
.sval{font-size:14px;font-weight:700;line-height:1.1}
.sval2{font-size:9.5px;color:#aaa;margin-top:1px}
.ytable{width:100%;border-collapse:collapse;font-size:9px;margin-bottom:6px}
.ytable th{background:#f5f4f0;color:#666;padding:3px 4px;text-align:center;font-weight:600}
.ytable td{padding:3px 4px;text-align:center;border-top:0.5px solid #f0ede6}
.ytable td:first-child{text-align:left;color:#555;font-weight:500}
.ytable tr.cur td{font-weight:700;background:#fafaf8}
.panel-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px}
.panel-links a{font-size:10px;text-decoration:none;color:#7c5cbf}
.panel-links a:hover{text-decoration:underline}
.xbtn{position:absolute;top:7px;right:8px;background:none;border:none;cursor:pointer;font-size:15px;color:#aaa;line-height:1}
.xbtn:hover{color:#333}
#lgnd{padding:6px 10px;border-top:1px solid #eee;flex-shrink:0}
.lgrid{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;margin-bottom:4px}
.lrow{display:flex;align-items:center;gap:4px;font-size:9px;color:#444}
.dot{width:9px;height:9px;border-radius:50%;border:1px solid rgba(0,0,0,.15);flex-shrink:0}
.lnote{font-size:8.5px;color:#999}
.leaflet-tooltip{white-space:normal!important;min-width:180px}
.addr-opt{padding:5px 8px;cursor:pointer;font-size:12px}
.addr-opt:hover,.addr-opt.addr-hover{background:#f3f0fa}
.addr-sep{display:inline-block;width:1px;height:18px;background:#ddd;flex-shrink:0}
#addr-hdr{display:flex;align-items:center;gap:5px;flex-shrink:0}
#addr-inputs{position:relative;display:flex;align-items:center;gap:5px}
#addr-street{width:150px}
#addr-nr{width:52px}
#addr-btn{border:1px solid #ddd;border-radius:5px;padding:4px 9px;font-size:13px;background:#fff;cursor:pointer;color:#555;line-height:1}
#addr-btn:hover{border-color:#7c5cbf;color:#7c5cbf;background:#f3f0fa}
#addr-drop{display:none;position:absolute;top:100%;left:0;min-width:220px;background:#fff;border:1px solid #ddd;border-top:none;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 2px 6px rgba(0,0,0,.15)}
#addr-result{display:none;position:absolute;top:calc(100% + 4px);left:0;min-width:280px;background:#fff;border:1px solid #ddd;border-radius:5px;padding:8px 10px 8px 10px;font-size:12px;line-height:1.5;z-index:1001;box-shadow:0 2px 8px rgba(0,0,0,.15)}
#addr-result-close{float:right;background:none;border:none;cursor:pointer;font-size:14px;color:#aaa;line-height:1;margin-left:8px;padding:0}
#filters{display:contents}
#subjf{display:flex;gap:6px;align-items:center;white-space:nowrap;font-size:11px;color:#888}
#subjf label{font-size:11px}
#filters-btn{display:none;border:1px solid #ddd;border-radius:5px;padding:4px 8px;font-size:12px;background:#fff;cursor:pointer;color:#555;white-space:nowrap;flex-shrink:0}
#filters-btn:hover,#filters-btn.on{border-color:#7c5cbf;color:#7c5cbf;background:#f3f0fa}
#sb-handle{display:none}
#ad-sb{flex-shrink:0;background:#fafaf8;border-bottom:1px solid #eee;min-height:0;overflow:hidden}

@media(max-width:768px){
  #hdr{padding:7px 10px;gap:6px}
  #hdr h1{order:1;flex:1;font-size:11px;overflow:hidden;text-overflow:ellipsis;min-width:0}
  #cnt{order:2;margin-left:0}
  #filters-btn{order:3;display:block}
  #srch{order:4;flex:1;width:auto;min-width:70px}
  #addr-hdr{order:5;flex:1}
  #filters{order:6;display:none;width:100%;flex-wrap:wrap;gap:6px;padding-top:2px}
  #filters.open{display:flex}
  #filters select{flex:1;min-width:90px;width:auto}
  #subjf{width:100%;order:99}
  input[type=text]{width:auto;font-size:16px;padding:3px 6px}
  .addr-sep{display:none}
  #addr-inputs{flex:1}
  #addr-street{width:auto;flex:1;min-width:60px}
  #addr-nr{width:44px;flex-shrink:0}

  #sb{
    position:fixed;bottom:0;left:0;right:0;
    width:100%;height:72vh;
    border-left:none;
    border-radius:16px 16px 0 0;
    box-shadow:0 -3px 20px rgba(0,0,0,.14);
    transform:translateY(calc(100% - 48px));
    transition:transform .28s cubic-bezier(.4,0,.2,1);
    z-index:900;
    overflow:hidden;
  }
  #sb.sb-open{transform:translateY(0)}
  #sb-handle{
    display:flex;align-items:center;justify-content:center;
    height:48px;cursor:pointer;flex-shrink:0;
    border-radius:16px 16px 0 0;background:#fff;
  }
  #sb-handle::before{content:'';width:40px;height:4px;background:#d0d0d0;border-radius:2px}
  #list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  #ad-sb{display:none}
  #lgnd{display:none}
}
