*{box-sizing:border-box;margin:0;padding:0}
#splash{position:fixed;inset:0;z-index:9999;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .4s ease}
#splash.out{opacity:0;pointer-events:none}
#splash img{max-width:90vw;max-height:85vh;object-fit:contain;user-select:none}
input,button,select,textarea,.leaflet-container{font-family:'Fira Sans Condensed',sans-serif;}
body{font-family:'Fira Sans Condensed',sans-serif;background:#f8f8f6;color:#222;display:flex;flex-direction:column;height:100vh}
#header{padding:8px 14px;border-bottom:1px solid #e0e0da;background:#fff;display:flex;flex-direction:column;gap:5px;flex-shrink:0}
#header h1{font-size:17px;font-weight:800;color:#1a1a1a;flex-shrink:0}
#header-row1,#header-row2{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
#searchbox{padding:5px 10px;border:1px solid #ccc;border-radius:18px;font-size:13px;background:#fafafa;flex:1;min-width:120px;outline:none}
#searchbox:focus{border-color:#666}
/* Pfad-Buttons */
.pfad-btn{display:flex;align-items:center;gap:5px;padding:3px 6px 3px 10px;border-radius:15px;border:1.5px solid rgba(0,0,0,.15);font-size:12px;cursor:pointer;font-weight:600;white-space:nowrap;line-height:1.5;transition:box-shadow .1s}
.pfad-btn.solo{box-shadow:0 0 0 2.5px rgba(0,0,0,.5)}
.pfad-check{width:17px;height:17px;border-radius:50%;border:2px solid rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:900;flex-shrink:0}
/* Overlay & Wellen-Buttons */
.gbtn{padding:4px 10px;border-radius:18px;border:1.5px solid #aaa;font-size:12px;cursor:pointer;background:#fff;color:#555;font-weight:500;transition:all .15s;white-space:nowrap}
.gbtn.active{background:#333;color:#fff;border-color:#333}
#wellen-wrap{position:relative}
#wellen-drop{display:none;position:absolute;top:calc(100% + 5px);left:0;z-index:3000;background:#fff;border:1px solid #ddd;border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.15);padding:7px 14px 10px;min-width:110px}
#wellen-drop.open{display:block}
#wellen-drop label{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer;color:#1a3a6b;font-weight:600}
#wellen-drop input[type=checkbox]{accent-color:#1a3a6b;width:14px;height:14px;cursor:pointer}
#counter{font-size:11px;color:#888;background:#fff;padding:3px 8px;border-radius:10px;border:1px solid #e0e0da;margin-left:auto;flex-shrink:0}
#map-wrap{position:relative;flex:1}
#map{height:100%}
/* Layer Panel (on-map control) */
.lp-wrap{background:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.4);min-width:30px}
.lp-toggle{display:block;width:36px;height:36px;background-image:url('https://unpkg.com/leaflet@1.9.4/dist/images/layers.png');background-repeat:no-repeat;background-position:center;background-size:26px 26px;text-decoration:none;cursor:pointer;border-radius:4px}
.lp-toggle:hover{background:#f4f4f4;color:#333}
.lp-panel{display:none;min-width:190px;padding:5px 0 7px}
.lp-panel.lp-open{display:block}
.lp-head{font-size:10px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.06em;padding:6px 12px 2px}
.lp-row{display:flex;align-items:center;padding:4px 12px;font-size:13px;color:#333;cursor:pointer;gap:7px;white-space:nowrap}
.lp-row:hover{background:#f5f5f5}
.lp-row input{margin:0;cursor:pointer;accent-color:#333}
.lp-badge{font-size:11px;margin-left:auto;color:#bbb}
.lp-divider{height:1px;background:#eee;margin:5px 0}
.lp-key{padding:5px 12px 2px}
.lp-key-lbl{font-size:10px;color:#888;display:block;margin-bottom:3px}
.lp-key-inp{width:100%;padding:4px 8px;font-size:12px;border:1px solid #ccc;border-radius:4px;outline:none;box-sizing:border-box}
.lp-key-inp:focus{border-color:#888}
/* Zoom display */
.leaflet-control-zoom-display a{font-weight:700;font-size:12px;text-align:center;cursor:default!important;color:#333!important;letter-spacing:-.5px}
.leaflet-control-zoom-display a:hover{background:#fff!important}
/* Popups */
.pop-title{font-weight:600;font-size:14px;margin-bottom:3px;line-height:1.3}
.pop-addr{font-size:12px;color:#666;margin-bottom:5px}
.pop-tags{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:5px}
.pop-tag{font-size:11px;padding:2px 7px;border-radius:10px;background:#f0f0ec;color:#555}
.pop-wave{font-size:11px;font-weight:600;display:inline-block;padding:1px 7px;border-radius:10px;color:#fff;margin-bottom:5px}
.pop-hp{font-size:12px;color:#1a73e8;text-decoration:none}
.pop-hp:hover{text-decoration:underline}
.leaflet-popup-content-wrapper{border-radius:10px!important;box-shadow:0 3px 12px rgba(0,0,0,.18)!important;border:0}
.leaflet-popup-content{margin:12px 14px!important}
path.leaflet-interactive:focus{outline:none}
/* Bürger-Menu */
#bmenu-wrap{position:relative;flex-shrink:0}
#bmenu-btn{background:none;border:none;cursor:pointer;font-size:18px;line-height:1;padding:4px 6px;border-radius:6px;color:#333}
#bmenu-btn:hover{background:#f0f0ec}
#bmenu-drop{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:4000;background:#fff;border:1px solid #ddd;border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.15);min-width:150px;padding:5px 0}
#bmenu-drop.open{display:block}
#bmenu-drop a{display:block;padding:8px 16px;font-size:13px;color:#333;text-decoration:none;font-weight:500;cursor:pointer}
#bmenu-drop a:hover{background:#f5f5f5}
/* About & JSON-View Modal */
.bm-overlay{display:none;position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.45);align-items:center;justify-content:center}
.bm-overlay.open{display:flex}
.bm-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.25);width:600px;max-width:95vw;max-height:85vh;min-width:300px;min-height:200px;display:flex;flex-direction:column;overflow:auto;resize:both;position:relative}
.bm-resize-hint{position:absolute;bottom:4px;right:6px;font-size:12px;color:#ccc;pointer-events:none;line-height:1}
.bm-modal-head{padding:14px 18px 10px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}
.bm-modal-head h2{font-size:15px;font-weight:700}
.bm-modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:#888;line-height:1}
.bm-modal-body{overflow:auto;padding:16px 18px;font-size:13px;line-height:1.6}
#jsonview-body{font-family:monospace;font-size:11px;white-space:pre;color:#333;background:#f8f8f6;padding:12px;border-radius:6px}
/* Tree-Sidebar (Overlay, edit.js P1) */
#tree-panel{position:absolute;top:0;left:0;bottom:0;width:300px;max-width:80%;z-index:1200;background:#fff;border-right:1px solid #ddd;box-shadow:2px 0 12px rgba(0,0,0,.12);display:flex;flex-direction:column}
#tree-panel[hidden]{display:none}
.tree-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #eee;font-weight:700;font-size:14px;flex-shrink:0}
.tree-title{white-space:nowrap}
.tree-modes{margin-left:auto;display:inline-flex;border:1px solid #ddd;border-radius:14px;overflow:hidden}
.tmode{border:none;background:#fff;color:#666;font-size:12px;font-weight:600;padding:3px 12px;cursor:pointer;font-family:inherit;line-height:1.6}
.tmode+.tmode{border-left:1px solid #eee}
.tmode.active{background:#333;color:#fff}
.tree-close{background:none;border:none;font-size:18px;cursor:pointer;color:#888;line-height:1}
.tree-close:hover{color:#333}
.tree-body{overflow:auto;padding:6px 4px 12px;flex:1}
.tree-body ul{list-style:none;margin:0;padding:0}
.tree-body ul ul{margin-left:14px}
.tnode{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:6px;font-size:13px;cursor:pointer;white-space:nowrap;outline:none}
.tnode:hover{background:#f3f3ef}
.tnode:focus{box-shadow:0 0 0 2px rgba(40,90,200,.4)}
.tnode .caret{display:inline-block;width:12px;text-align:center;font-size:9px;color:#999;transition:transform .12s;flex-shrink:0}
li[aria-expanded=true]>.tnode .caret{transform:rotate(90deg)}
li[aria-expanded=false]>ul{display:none}
.tnode .tlabel{overflow:hidden;text-overflow:ellipsis}
.tnode .tcount{margin-left:auto;color:#aaa;font-size:11px;padding-left:8px;flex-shrink:0}
.tnode .tdot{width:17px;height:17px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;line-height:1;flex-shrink:0}
.tbranch{font-weight:600}
.tleaf{color:#333;font-weight:400}
.tleaf.nocoord{opacity:.6}
li[aria-expanded=false]>.tdetail{display:none}
.tdetail{margin:1px 0 5px 34px;padding:6px 9px;background:#f6f6f2;border-radius:6px;font-size:12px;color:#444}
.tdrow{display:flex;gap:8px;padding:1px 0}
.tdk{color:#999;min-width:52px;flex-shrink:0}
.tdv{color:#333;word-break:break-word}
.tdlink{color:#1a73e8;text-decoration:none}
.tdlink:hover{text-decoration:underline}
.tdempty{color:#aaa}
