:root{
  --bg:#0f0f0f;--surface:#161616;--s2:#1e1e1e;--s3:#252525;
  --border:#2c2c2c;--accent:#c8a96e;--a2:#e8c88a;
  --text:#e2ddd5;--muted:#666;--muted2:#888;
  --red:#e84040;--green:#3db870;--orange:#e07b35;--blue:#5b9cf6;
  --marker:#e84040;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;overflow:hidden;}
body{background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;font-size:13px;display:flex;flex-direction:column;}

/* HEADER */
header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 18px;height:44px;display:flex;align-items:center;gap:14px;flex-shrink:0;z-index:2000;}
.logo{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;letter-spacing:.12em;color:var(--accent);text-transform:uppercase;}
.hdiv{width:1px;height:18px;background:var(--border);}
.htitle{font-size:12px;font-weight:500;color:var(--muted2);}
.hstats{margin-left:auto;display:flex;gap:16px;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);}
.hstats b{color:var(--accent);}

/* LAYOUT */
.layout{display:flex;flex:1;overflow:hidden;}

/* SIDEBAR */
.sidebar{width:300px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0;}
.sb-top{padding:8px 10px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px;}
.search-wrap{position:relative;}
.search-input{background:var(--s2);border:1px solid var(--border);color:var(--text);font-family:'Inter',sans-serif;font-size:11px;padding:5px 28px 5px 8px;width:100%;border-radius:2px;outline:none;}
.search-input:focus{border-color:var(--accent);}
.search-input::placeholder{color:var(--muted);}
.search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;display:none;padding:0;}
.sb-actions{display:flex;gap:4px;}
.action-btn{background:var(--s2);border:1px solid var(--border);color:var(--muted2);font-family:'JetBrains Mono',monospace;font-size:9px;padding:4px 8px;cursor:pointer;border-radius:2px;transition:all .1s;white-space:nowrap;}
.action-btn:hover{border-color:var(--accent);color:var(--accent);}
.action-btn.draw-active{background:var(--red);border-color:var(--red);color:#fff;}

/* COUNTRY GROUPS */
.groups{flex:1;overflow-y:auto;}
.groups::-webkit-scrollbar{width:3px;}
.groups::-webkit-scrollbar-thumb{background:var(--border);}
.group{border-bottom:1px solid var(--border);}
.group-header{display:flex;align-items:center;gap:6px;padding:7px 10px;cursor:pointer;user-select:none;background:var(--s2);}
.group-header:hover{background:var(--s3);}
.group-arrow{font-size:8px;color:var(--muted);transition:transform .15s;flex-shrink:0;}
.group-header.open .group-arrow{transform:rotate(90deg);}
.group-label{font-size:11px;font-weight:600;flex:1;}
.group-count{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);background:var(--border);padding:1px 5px;border-radius:8px;}
.group-body{display:none;}
.group-body.open{display:block;}

/* PLANT ITEMS */
.pi{padding:7px 10px 7px 14px;cursor:pointer;border-left:2px solid transparent;border-bottom:1px solid #1a1a1a;transition:all .08s;}
.pi:hover{background:var(--s2);border-left-color:var(--marker);}
.pi.active{background:var(--s2);border-left-color:var(--marker);}
.pn{font-size:11px;font-weight:600;margin-bottom:1px;line-height:1.3;}
.pc{font-size:10px;color:var(--muted2);font-family:'JetBrains Mono',monospace;}
.pm{display:flex;gap:3px;margin-top:3px;flex-wrap:wrap;}
.badge{font-size:8px;font-family:'JetBrains Mono',monospace;padding:1px 5px;border-radius:1px;font-weight:600;}
.b-pri{background:rgba(232,64,64,.15);color:var(--red);border:1px solid rgba(232,64,64,.3);}
.b-st{border-width:1px;border-style:solid;}
.hdot{width:5px;height:5px;background:var(--accent);border-radius:50%;display:inline-block;margin-left:4px;vertical-align:middle;}
.add-btn{background:var(--s2);border:0;border-top:1px dashed var(--border);color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:10px;padding:10px;cursor:pointer;width:100%;text-align:center;flex-shrink:0;}
.add-btn:hover{color:var(--accent);}

/* MAP */
#map-wrap{flex:1;position:relative;}
#map{width:100%;height:100%;}
.leaflet-container{background:#0a0a0a;}

/* DETAIL PANEL */
.dp{position:absolute;right:10px;top:10px;width:290px;background:var(--surface);border:1px solid var(--border);border-radius:3px;z-index:3000;display:none;box-shadow:0 8px 40px rgba(0,0,0,.85);max-height:calc(100vh - 64px);overflow-y:auto;}
.dp.open{display:block;}
.dp-head{padding:10px 12px 8px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.dp-name{font-size:12px;font-weight:600;line-height:1.3;}
.dp-city{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--accent);margin-top:2px;}
.dp-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0;line-height:1;}
.dp-close:hover{color:var(--text);}
.dp-body{padding:10px 12px;}
.dl{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;margin-top:10px;}
.dl:first-child{margin-top:0;}
.dv{font-size:11px;color:var(--muted2);line-height:1.5;}
.ds{background:var(--s2);border:1px solid var(--border);color:var(--text);font-family:'Inter',sans-serif;font-size:11px;padding:5px 7px;width:100%;border-radius:2px;cursor:pointer;outline:none;}
.ds:focus{border-color:var(--accent);}
.dn{background:var(--s2);border:1px solid var(--border);color:var(--text);font-family:'Inter',sans-serif;font-size:11px;padding:6px;width:100%;min-height:65px;resize:vertical;border-radius:2px;line-height:1.5;outline:none;}
.dn:focus{border-color:var(--accent);}
.dp-btns{display:flex;gap:6px;margin-top:10px;}
.sv{background:var(--accent);border:none;color:#000;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;cursor:pointer;border-radius:2px;flex:1;}
.sv:hover{background:var(--a2);}
.del-btn{background:rgba(232,64,64,.1);border:1px solid rgba(232,64,64,.3);color:var(--red);font-family:'JetBrains Mono',monospace;font-size:9px;padding:6px 10px;cursor:pointer;border-radius:2px;}
.del-btn:hover{background:rgba(232,64,64,.25);}

/* MAP CONTROLS */
.map-ctrl{position:absolute;bottom:28px;right:10px;z-index:2000;display:flex;flex-direction:column;gap:3px;}
.lbtn{background:var(--surface);border:1px solid var(--border);color:var(--muted2);font-family:'JetBrains Mono',monospace;font-size:9px;padding:5px 9px;cursor:pointer;border-radius:2px;transition:all .1s;opacity:.93;}
.lbtn:hover,.lbtn.active{background:var(--accent);color:#000;border-color:var(--accent);}

/* LEGEND */
.legend{position:absolute;bottom:28px;left:10px;background:var(--surface);border:1px solid var(--border);padding:8px 11px;z-index:2000;border-radius:3px;opacity:.93;}
.lt{font-family:'JetBrains Mono',monospace;font-size:7px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.li{display:flex;align-items:center;gap:5px;margin-bottom:3px;font-size:10px;color:var(--muted2);}
.ld{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* POPUP */
.leaflet-popup-content-wrapper{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:3px!important;box-shadow:0 4px 20px rgba(0,0,0,.7)!important;color:var(--text)!important;}
.leaflet-popup-tip{background:var(--surface)!important;}
.leaflet-popup-content{margin:8px 12px!important;font-size:11px!important;line-height:1.4!important;}

/* DRAW TOOLTIP */
.draw-tip{position:absolute;top:56px;left:50%;transform:translateX(-50%);background:var(--red);color:#fff;font-family:'JetBrains Mono',monospace;font-size:10px;padding:5px 12px;border-radius:2px;z-index:3000;display:none;pointer-events:none;}
.draw-tip.show{display:block;}

/* ADD MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:9000;display:none;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:20px;width:340px;box-shadow:0 16px 48px rgba(0,0,0,.8);}
.modal h3{font-size:13px;font-weight:600;margin-bottom:14px;color:var(--text);}
.modal label{display:block;font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;margin-top:10px;}
.modal label:first-of-type{margin-top:0;}
.modal input,.modal select,.modal textarea{background:var(--s2);border:1px solid var(--border);color:var(--text);font-family:'Inter',sans-serif;font-size:11px;padding:6px 8px;width:100%;border-radius:2px;outline:none;}
.modal input:focus,.modal select:focus{border-color:var(--accent);}
.modal-btns{display:flex;gap:8px;margin-top:14px;}
.modal-ok{flex:1;background:var(--accent);border:none;color:#000;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:7px;cursor:pointer;border-radius:2px;}
.modal-ok:hover{background:var(--a2);}
.modal-cancel{background:var(--s2);border:1px solid var(--border);color:var(--muted2);font-family:'JetBrains Mono',monospace;font-size:9px;padding:7px 12px;cursor:pointer;border-radius:2px;}
.modal-cancel:hover{border-color:var(--border);color:var(--text);}
