/* ── Self-hosted Fonts ───────────────────────────────────────────── */
@font-face{font-family:'Share Tech Mono';font-style:normal;font-weight:400;src:url('assets/fonts/ShareTechMono-Regular.ttf') format('truetype');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:300;src:url('assets/fonts/Barlow-Light.ttf') format('truetype');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;src:url('assets/fonts/Barlow-Regular.ttf') format('truetype');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;src:url('assets/fonts/Barlow-Medium.ttf') format('truetype');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;src:url('assets/fonts/Barlow-SemiBold.ttf') format('truetype');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;src:url('assets/fonts/Barlow-Bold.ttf') format('truetype');}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:400;src:url('assets/fonts/BarlowCondensed-Regular.ttf') format('truetype');}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;src:url('assets/fonts/BarlowCondensed-SemiBold.ttf') format('truetype');}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;src:url('assets/fonts/BarlowCondensed-Bold.ttf') format('truetype');}

:root {
  --bg:#0d1117;--bg2:#161b22;--bg3:#21262d;--border:#30363d;
  --accent:#00d4aa;--accent2:#f0a500;--accent3:#f06565;
  --text:#e6edf3;--text2:#8b949e;--text3:#c9d1d9;
  --col-adsbfi:#f97316;--col-adsblo:#e879f9;--col-ogn:#4ade80;--col-blue:#58a6ff;
  --map-filter:brightness(.78) saturate(.6);
  --font-mono:'Share Tech Mono',monospace;
  --font-ui:'Barlow',sans-serif;
  --font-cond:'Barlow Condensed',sans-serif;
  --radius:6px;
  --overlay-bg:rgba(0,0,0,.72);--map-overlay:rgba(13,17,23,.9);
  --shadow-md:0 4px 12px rgba(0,0,0,.5);--shadow-sm:0 2px 8px rgba(0,0,0,.5);
  --accent-bg:rgba(0,212,170,.12);--accent-bg-soft:rgba(0,212,170,.08);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--text);font-family:var(--font-ui);height:100vh;overflow:hidden;display:flex;flex-direction:column;color-scheme:dark;}
body.light{color-scheme:light;}

#header{background:var(--bg2);border-bottom:2px solid var(--border);flex-shrink:0;}
#hrow1{display:flex;align-items:center;gap:12px;padding:7px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap;}
#bl-edit-btn{background:none;border:none;cursor:pointer;padding:0 0 0 5px;color:var(--text2);opacity:.5;vertical-align:middle;line-height:1;}
#bl-edit-btn:hover{opacity:1;}
.logo{font-family:var(--font-cond);font-size:21px;font-weight:700;letter-spacing:3px;color:var(--accent);white-space:nowrap;margin-left:auto;display:flex;align-items:center;gap:10px;}
.logo-edne{color:var(--accent);}
.logo span{color:var(--text2);font-weight:400;font-size:13px;letter-spacing:1px;display:flex;align-items:center;gap:4px;}
.clock{font-family:var(--font-mono);font-size:30px;color:var(--accent2);}
.status-chip{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;background:var(--bg3);border:1px solid var(--border);border-radius:4px;padding:2px 9px;position:relative;cursor:default;}
.sdot{width:7px;height:7px;border-radius:50%;background:var(--accent3);animation:pulse 2s infinite;}
.sdot.live{background:#4ade80;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.status-chip[data-tip]:not([data-tip=""]):hover::after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);right:0;background:var(--map-overlay);border:1px solid var(--accent3);color:var(--text3);font-family:var(--font-mono);font-size:10px;padding:4px 9px;border-radius:4px;white-space:nowrap;z-index:9999;pointer-events:none;box-shadow:var(--shadow-md);}

#hrow2{display:flex;align-items:center;gap:6px;padding:6px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.src-lbl{font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1px;color:var(--text2);text-transform:uppercase;}
.src-pill{display:flex;align-items:center;gap:6px;background:var(--bg3);border:1.5px solid var(--border);border-radius:4px;padding:3px 10px 3px 7px;cursor:pointer;transition:all .18s;user-select:none;}
.src-pill.on-adsbfi{border-color:var(--col-adsbfi);background:rgba(249,115,22,.1);}
.src-pill.on-adsblo{border-color:var(--col-adsblo);background:rgba(232,121,249,.1);}
.src-pill.on-ogn   {border-color:var(--col-ogn);   background:rgba(74,222,128,.1);}
.src-pill.off{opacity:.38;filter:grayscale(.8);}
.sp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.sp-dot.adsbfi{background:var(--col-adsbfi);}
.sp-dot.adsblo{background:var(--col-adsblo);}
.sp-dot.ogn{background:var(--col-ogn);}
.sp-name{font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:1px;}
.sp-name.adsbfi{color:var(--col-adsbfi);}
.sp-name.adsblo{color:var(--col-adsblo);}
.sp-name.ogn{color:var(--col-ogn);}
.sp-cnt{font-family:var(--font-mono);font-size:10px;color:var(--text2);}
.hrow2-sources{display:flex;align-items:center;gap:6px;}
.hrow2-filters{display:flex;align-items:center;gap:4px;}
.bar-sep{width:1px;height:22px;background:var(--border);margin:0 6px;}
.hctrl-group{display:flex;align-items:center;gap:4px;}
.hctrl-gap{margin-left:12px;}
.fchk{font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text2);display:flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap;user-select:none;}
.fchk input{accent-color:var(--accent);cursor:pointer;width:12px;height:12px;}
.hctrl-lbl{font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1px;color:var(--text2);text-transform:uppercase;margin-right:2px;}
.hctrl-val{font-family:var(--font-mono);font-size:11px;color:var(--text);padding:0 5px;text-align:center;cursor:text;}
.hctrl-val:hover{color:var(--accent);}
.hctrl-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text2);border-radius:3px;width:20px;height:20px;line-height:1;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;padding:0;}
.hctrl-btn:hover{border-color:var(--accent);color:var(--accent);}

.btn{border:none;padding:4px 12px;border-radius:var(--radius);font-family:var(--font-cond);font-weight:700;font-size:12px;letter-spacing:1px;cursor:pointer;text-transform:uppercase;}
.btn.go{background:var(--accent);color:var(--bg);}
.btn.stop{background:var(--bg3);color:var(--accent3);border:1px solid var(--accent3);}
.btn:hover{opacity:.82;}
#adsbfail-dlg{display:none;position:fixed;inset:0;background:var(--overlay-bg);z-index:10000;align-items:center;justify-content:center;}
#adsbfail-dlg.show{display:flex;}
#adsbfail-mdl{background:var(--bg2);border:1px solid var(--accent3);border-radius:8px;padding:20px;width:360px;max-width:95vw;}
#adsbfail-mdl h3{font-family:var(--font-cond);letter-spacing:2px;font-size:14px;color:var(--accent3);text-transform:uppercase;margin-bottom:8px;}
#adsbfail-msg{color:var(--accent3);font-size:11px;font-family:var(--font-mono);margin-bottom:10px;}
.adsbfail-q{font-size:13px;color:var(--text3);margin-bottom:4px;}

#main{display:flex;flex:1;overflow:hidden;}
#left{display:flex;flex-direction:column;width:310px;min-width:240px;border-right:1px solid var(--border);overflow:hidden;flex-shrink:0;}
#left1,#left2{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0;}
#left1>*,#left2>*{flex:1;min-height:0;overflow:hidden;}
/* Layout 2 */
#main.layout-2 #left{flex-direction:row;width:auto;border-right:none;}
#main.layout-2 #left1,#main.layout-2 #left2{width:310px;flex:none;border-right:1px solid var(--border);}
#mid{display:flex;flex-direction:column;width:310px;min-width:240px;border-right:1px solid var(--border);overflow:hidden;flex-shrink:0;}
.layout-sw{display:flex;align-items:center;gap:3px;margin-left:auto;}
.lsw-btn{background:none;border:1px solid var(--border);color:var(--text2);border-radius:var(--radius);padding:3px 6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.lsw-btn:hover{border-color:var(--text3);color:var(--text3);}
.lsw-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-bg-soft);}
.sec-hdr{background:var(--bg2);padding:7px 10px;display:flex;align-items:center;gap:7px;flex-shrink:0;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.sec-title{font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text3);}
.sec-icon{font-size:11px;flex-shrink:0;display:inline-flex;align-items:center;}
.sec-icon.rad{color:var(--accent);}
.sec-icon.log-ic{color:var(--accent);}
.badge{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent);font-family:var(--font-mono);font-size:11px;font-weight:700;padding:1px 5px;border-radius:3px;min-width:16px;text-align:center;}
#pbadge-anflug{color:var(--accent2);border-color:var(--accent2);background:rgba(240,165,0,.12);}
#pbadge-abflug{color:var(--col-blue);border-color:var(--col-blue);background:rgba(88,166,255,.12);}
#pbadge-ground{color:var(--text2);border-color:var(--border);background:rgba(139,148,158,.08);}

#rad-sec{display:flex;flex-direction:column;overflow:hidden;}
#rad-list{overflow-y:auto;flex:1;padding:4px;}
.rac{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);padding:4px 8px;margin-bottom:3px;cursor:pointer;user-select:none;transition:transform .12s,box-shadow .12s;display:flex;align-items:center;gap:6px;}
.rac:hover{background:var(--bg3);transform:translateX(2px);box-shadow:-3px 0 10px rgba(0,0,0,.4);border-color:var(--text2);}
.rac.dragging{opacity:.3;}
.rac.selected{background:var(--accent-bg);border-left-width:3px;border-left-color:var(--accent);}
.rac.adsbfi {border-left-color:var(--col-adsbfi);}
.rac.adsblo {border-left-color:var(--col-adsblo);}
.rac.ogn    {border-left-color:var(--col-ogn);}
.rac.selected.adsbfi,.rac.selected.adsblo,.rac.selected.ogn{border-left-color:var(--accent);}
.rcs{font-family:var(--font-mono);font-size:12px;font-weight:bold;flex-shrink:0;}
.rac-log{background:none;border:none;color:var(--text2);cursor:pointer;padding:0 2px;font-size:11px;line-height:1;flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;}
.rac-log:hover{color:var(--accent2);}
.rac-actions{display:flex;gap:4px;padding:3px 6px 5px 6px;background:rgba(0,212,170,.05);border-left:3px solid var(--accent);border-radius:0 0 var(--radius) var(--radius);margin-top:-3px;margin-bottom:3px;}
.rac-act{flex:1;background:var(--bg3);border:1px solid var(--accent);color:var(--accent);cursor:pointer;padding:6px 4px;border-radius:4px;font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:.5px;touch-action:manipulation;}
.rac-act:hover,.rac-act:active{background:rgba(0,212,170,.18);}
.rdt{font-size:11px;color:var(--text2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.no-ac{text-align:center;padding:20px;color:var(--text2);font-size:12px;}

.pnl{border-bottom:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;}
.pnl-hdr{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg2);user-select:none;flex-shrink:0;}
.pnl.select-mode .pnl-hdr{background:rgba(0,212,170,.07);box-shadow:inset 0 0 0 1px rgba(0,212,170,.3);}
.pnl-title{font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text3);}
.pnl-icon{font-size:11px;}
.pnl-icon.anf{color:var(--accent2);}
.pnl-icon.abf{color:var(--col-blue);}
.pnl-icon.gnd{color:var(--text2);}
.pnl-add{background:none;border:1px solid var(--border);color:var(--text2);cursor:pointer;padding:1px 6px;border-radius:3px;font-size:13px;line-height:1;margin-left:auto;}
.pnl-add:hover{color:var(--accent);border-color:var(--accent);}
.pnl-arr{font-size:10px;color:var(--text2);cursor:pointer;padding:2px 6px;border-radius:3px;}
.pnl-arr:hover{background:var(--bg3);color:var(--accent);}
.pnl-body{flex:1;overflow-y:auto;padding:3px 4px;transition:background .2s;}
.pnl.pnl-over{outline:2px dashed var(--accent);outline-offset:-2px;}
.map-drag-ghost{position:fixed;z-index:9999;background:var(--bg2);border:1px solid var(--accent);color:var(--accent);font-family:var(--font-mono);font-size:11px;padding:3px 9px;border-radius:4px;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-sm);}
.pnl.pnl-over .pnl-body{background:rgba(0,212,170,.06);}
.pnl-empty{text-align:center;padding:7px;color:var(--text2);font-size:11px;font-family:var(--font-cond);}
.pe{display:flex;align-items:center;gap:6px;background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:4px;padding:4px 8px;margin-bottom:3px;cursor:pointer;user-select:none;}
.pe:hover{background:var(--bg3);border-color:var(--text2);}
.pe.sort-target{border-top:2px solid var(--accent);margin-top:-1px;}
.pe.adsbfi {border-left-color:var(--col-adsbfi);}
.pe.adsblo {border-left-color:var(--col-adsblo);}
.pe.ogn    {border-left-color:var(--col-ogn);}
.pe.selected{background:var(--accent-bg);border-color:var(--accent);}
.pe.pe-offline{border-left-color:var(--text2)!important;}
.pe.expanded{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent;margin-bottom:0;}
.pe.dragging{opacity:.3;}
.pe-cs{font-family:var(--font-mono);font-size:12px;font-weight:bold;flex-shrink:0;}
.pe-info{font-size:11px;color:var(--text2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pe-exp{background:none;border:none;color:var(--text2);cursor:pointer;padding:0 3px;font-size:10px;line-height:1;flex-shrink:0;display:inline-flex;align-items:center;}
.pe-exp:hover{color:var(--accent);}
.pe-log{background:none;border:none;color:var(--text2);cursor:pointer;padding:0 2px;font-size:11px;line-height:1;flex-shrink:0;display:inline-flex;align-items:center;}
.pe-log:hover{color:var(--accent2);}
.pe-x{background:none;border:none;color:var(--text2);cursor:pointer;padding:0 3px;font-size:11px;line-height:1;flex-shrink:0;display:inline-flex;align-items:center;}
.pe-x:hover{color:var(--accent3);}
.pe-handle{cursor:grab;color:var(--text2);opacity:.32;font-size:13px;flex-shrink:0;user-select:none;padding:0 2px;line-height:1;}
.pe-handle:hover{opacity:.75;}
.pe-handle:active{cursor:grabbing;}
.pe-body{background:var(--bg2);border:1px solid var(--border);border-left-width:3px;border-top:none;border-radius:0 0 4px 4px;padding:5px 6px 6px;margin-bottom:3px;display:grid;grid-template-columns:1fr 1fr;gap:3px 6px;}
.pe-body .pe-bf:last-child{grid-column:1/-1;}
.pe-bf{display:flex;flex-direction:column;gap:2px;}
.pe-bf label{font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;}
.pe-bf input,.pe-bf select{background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:3px 5px;border-radius:3px;font-size:11px;font-family:var(--font-mono);width:100%;}
.pe-actions{display:flex;gap:3px;flex-wrap:wrap;padding:2px 4px 5px;background:rgba(0,212,170,.04);border-left:3px solid var(--accent);margin-top:-2px;margin-bottom:2px;border-radius:0 0 4px 4px;}
.pe-act{background:var(--bg3);border:1px solid var(--border);color:var(--text2);cursor:pointer;padding:5px 8px;border-radius:3px;font-family:var(--font-cond);font-size:11px;font-weight:700;touch-action:manipulation;}
.pe-act:hover,.pe-act:active{border-color:var(--accent);color:var(--accent);}
.pe-act.danger{border-color:var(--accent3);color:var(--accent3);}
#log-sec{flex:1;display:flex;flex-direction:column;overflow:hidden;}
#log-sec.log-ext-over{outline:2px dashed var(--accent);outline-offset:-3px;}
#log-dz{flex:1;overflow-y:auto;padding:4px;transition:background .2s;}
#log-dz.over{background:rgba(0,212,170,.05);outline:2px dashed var(--accent);outline-offset:-4px;}
.drop-hint{text-align:center;padding:26px 16px;color:var(--text2);font-size:12px;border:2px dashed var(--border);border-radius:var(--radius);margin:8px;}
.drop-hint .arr{font-size:22px;display:block;margin-bottom:8px;opacity:.5;}
.le{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:4px;overflow:hidden;transition:background .15s,box-shadow .15s;}
.le:hover{background:var(--bg3);box-shadow:var(--shadow-md);border-color:var(--text2);}
.le-hdr{display:flex;align-items:center;gap:5px;padding:5px 8px;background:var(--bg3);}
.le-seq{font-family:var(--font-mono);font-size:10px;color:var(--text2);flex-shrink:0;}
.le-cs{font-family:var(--font-mono);font-size:13px;font-weight:bold;flex-shrink:0;}
.le-htime{font-family:var(--font-mono);font-size:13px;font-weight:300;color:var(--text2);flex:1;text-align:center;}
.ltb{font-size:11px;padding:2px 5px;border-radius:3px;font-family:var(--font-cond);font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:default;display:inline-block;min-width:70px;text-align:center;}
.lt-s{background:rgba(88,166,255,.15);color:var(--col-blue);}
.lt-l{background:rgba(240,165,0,.15);color:var(--accent2);}
.le-info{display:flex;align-items:center;gap:4px;padding:3px 8px 5px;overflow:hidden;}
.le-it{font-family:var(--font-mono);color:var(--text3);font-size:11px;white-space:nowrap;flex-shrink:0;}
.le-sep{color:var(--text2);opacity:.4;font-size:11px;flex-shrink:0;}
.le-meta{font-family:var(--font-mono);font-size:11px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;}
.le-body{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;padding:6px 10px 8px;border-top:1px solid var(--border);}
.lf-full{grid-column:1/-1;}
.lf label{font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:1px;display:block;font-family:var(--font-cond);}
.lf input,.lf select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:12px;padding:3px 6px;border-radius:3px;width:100%;}
.lf input:focus,.lf select:focus{outline:none;border-color:var(--accent);}
.ib{background:none;border:none;color:var(--text2);cursor:pointer;padding:2px 5px;border-radius:3px;font-size:13px;touch-action:manipulation;display:inline-flex;align-items:center;}
.ib:hover{color:var(--accent3);background:rgba(224,82,82,.1);}
.le-exp:hover{color:var(--accent)!important;background:var(--accent-bg-soft)!important;}

#exp-bar{background:var(--bg2);border-top:1px solid var(--border);padding:9px 10px;display:flex;gap:6px;align-items:center;flex-shrink:0;}
.bex{background:var(--bg3);border:1px solid var(--border);color:var(--text3);font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:1px;padding:3px 9px;border-radius:var(--radius);cursor:pointer;text-transform:uppercase;}
.bex:hover{border-color:var(--accent);color:var(--accent);}
.bex-danger{border-color:var(--accent3);color:var(--accent3);}
.bex-danger:hover{border-color:var(--accent3);color:var(--accent3);}

#map-panel{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column;}
#map{flex:1;min-height:0;}
#fav-bar{background:var(--bg2);border-bottom:1px solid var(--border);z-index:1001;flex-shrink:0;}
#fav-hdr{display:flex;align-items:center;gap:6px;padding:4px 10px;cursor:default;}
.fav-title{font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text3);margin-right:4px;}
.fav-star{color:var(--accent2);}
.fav-add{margin-left:6px!important;margin-right:auto;}
.fav-toggle{background:none;border:none;color:var(--text2);cursor:pointer;font-size:11px;padding:0 4px;line-height:1;}
.fav-toggle:hover{color:var(--accent);}
#fav-body{display:flex;flex-wrap:wrap;gap:5px;padding:6px 10px 8px;min-height:36px;}
#fav-bar.collapsed #fav-body{display:none;}
#fav-bar.collapsed .fav-toggle{transform:rotate(180deg);}
#fav-bar.fav-over{outline:2px dashed var(--accent2);outline-offset:-2px;}
.fav-chip{display:flex;align-items:center;gap:5px;background:var(--bg3);border:1px solid var(--border);border-radius:4px;padding:3px 7px;font-family:var(--font-mono);font-size:11px;color:var(--text);cursor:grab;user-select:none;white-space:nowrap;}
.fav-chip:hover{border-color:var(--accent2);color:var(--accent2);}
.fav-chip.dragging{opacity:.4;}
.fav-chip .fav-type{font-size:10px;color:var(--text2);}
.fav-chip .fav-x{background:none;border:none;color:var(--text2);cursor:pointer;padding:0;font-size:12px;line-height:1;margin-left:2px;}
.fav-chip .fav-x:hover{color:var(--accent3);}
.leaflet-container{background:#090d12;}
.leaflet-tile{filter:var(--map-filter);}
#mover{position:absolute;top:10px;right:10px;z-index:1000;display:flex;flex-direction:column;gap:5px;pointer-events:none;align-items:flex-end;}
.mb{background:var(--map-overlay);border:1px solid var(--border);border-radius:var(--radius);padding:3px 10px;font-family:var(--font-mono);font-size:11px;color:var(--accent);backdrop-filter:blur(4px);}
#mleg{background:var(--map-overlay);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:4px;}
.lr{display:flex;align-items:center;gap:7px;font-size:11px;font-family:var(--font-cond);color:var(--text3);}
.ld{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.ld.adsbfi{background:var(--col-adsbfi);}
.ld.adsblo{background:var(--col-adsblo);}
.ld.ogn{background:var(--col-ogn);}
.ac-tooltip{background:var(--map-overlay)!important;border:1px solid var(--border)!important;color:var(--text)!important;font-family:var(--font-mono)!important;font-size:11px!important;padding:6px 10px!important;border-radius:var(--radius)!important;white-space:nowrap;box-shadow:var(--shadow-md)!important;}
.ac-tooltip::before{display:none!important;}
/* ── C: touch-action ─────────────────────────────────────────────── */
button,.src-pill,.hctrl-btn,.hctrl-val,.rac,.pe,.le,.fav-chip,.pnl-hdr,.mb-btn,.lsw-btn,.pnl-add,.tab-btn{touch-action:manipulation;}
.ac-map-label{position:absolute;top:34px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:10px;white-space:nowrap;pointer-events:none;background:rgba(0,0,0,.65);padding:1px 4px;border-radius:3px;line-height:1.4;letter-spacing:.3px;}
.mb-btn{background:var(--map-overlay);border:1px solid var(--border);border-radius:var(--radius);padding:3px 10px;font-family:var(--font-mono);font-size:11px;color:var(--text2);cursor:pointer;pointer-events:auto;backdrop-filter:blur(4px);transition:border-color .15s,color .15s;line-height:1;}
.mb-btn:hover{border-color:var(--text3);color:var(--text3);}
.mb-btn.active{border-color:var(--accent);color:var(--accent);}

#mo,#fav-mo{display:none;position:fixed;inset:0;background:var(--overlay-bg);z-index:9999;align-items:center;justify-content:center;}
#fav-mo.show{display:flex;}
#fav-mdl{background:var(--bg2);border:1px solid var(--accent2);border-radius:8px;padding:20px;width:390px;max-width:95vw;}
#fav-mdl h3{font-family:var(--font-cond);letter-spacing:2px;font-size:15px;color:var(--accent2);text-transform:uppercase;margin-bottom:16px;}
#mo.show{display:flex;}
#mdl{background:var(--bg2);border:1px solid var(--accent);border-radius:8px;padding:20px;width:390px;max-width:95vw;}
#mdl h3{font-family:var(--font-cond);letter-spacing:2px;font-size:15px;color:var(--accent);margin-bottom:16px;text-transform:uppercase;}
#mdl .fg,#fav-mdl .fg{margin-bottom:10px;}
#mdl label,#fav-mdl label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text2);margin-bottom:4px;font-family:var(--font-cond);}
#mdl input,#mdl select,#fav-mdl input,#fav-mdl select{width:100%;background:var(--bg3);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:13px;padding:7px 9px;border-radius:var(--radius);}
#mdl input:focus,#mdl select:focus,#fav-mdl input:focus,#fav-mdl select:focus{outline:none;border-color:var(--accent);}
#mdl input::placeholder,#fav-mdl input::placeholder{color:var(--border);opacity:1;}
#mdl select option,#fav-mdl select option{background:var(--bg2);}
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.mac{display:flex;gap:8px;margin-top:16px;justify-content:flex-end;}
.mbp{background:var(--accent);color:var(--bg);border:none;padding:8px 20px;border-radius:var(--radius);font-family:var(--font-cond);font-weight:700;letter-spacing:1px;cursor:pointer;text-transform:uppercase;}
.mbc{background:none;border:1px solid var(--border);color:var(--text2);padding:8px 16px;border-radius:var(--radius);font-family:var(--font-cond);cursor:pointer;text-transform:uppercase;}
.mbn{background:none;border:1px solid var(--border);color:var(--text2);padding:8px 16px;border-radius:var(--radius);font-family:var(--font-cond);cursor:pointer;text-transform:uppercase;margin-right:auto;font-size:11px;opacity:.7;}
.mbn:hover{border-color:var(--text3);color:var(--text3);opacity:1;}

.info-btn{background:none;border:1px solid var(--border);color:var(--text2);border-radius:var(--radius);padding:2px 8px;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center;transition:all .15s;}
.info-btn:hover{border-color:var(--accent);color:var(--accent);}
#info-mo{display:none;position:fixed;inset:0;background:var(--overlay-bg);z-index:9999;align-items:flex-start;justify-content:center;padding-top:60px;}
#info-mo.show{display:flex;}
#info-mdl{background:var(--bg2);border:1px solid var(--border);border-radius:8px;width:480px;max-width:96vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;}
#info-tabs{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--border);padding:0 12px;flex-shrink:0;}
.info-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text2);font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:10px 14px 8px;cursor:pointer;margin-bottom:-1px;}
.info-tab:hover{color:var(--text3);}
.info-tab.active{color:var(--accent);border-bottom-color:var(--accent);}
.info-close{background:none;border:none;color:var(--text2);cursor:pointer;font-size:14px;margin-left:auto;padding:6px;line-height:1;}
.info-close:hover{color:var(--accent3);}
.info-pane{overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px;}
.info-section{display:flex;flex-direction:column;gap:5px;}
.info-sh{font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin-bottom:2px;}
.info-pane p{font-size:12px;color:var(--text2);line-height:1.6;font-family:var(--font-ui);}
.info-pane p strong{color:var(--text3);}
.info-pane a{color:var(--accent);text-decoration:none;}
.info-pane a:hover{text-decoration:underline;}
#conf-mo{display:none;position:fixed;inset:0;background:var(--overlay-bg);z-index:10000;align-items:center;justify-content:center;}
#conf-mo.show{display:flex;}
#conf-mdl{background:var(--bg2);border:1px solid var(--accent);border-radius:8px;padding:20px;width:340px;max-width:92vw;}
#conf-mdl h3{font-family:var(--font-cond);letter-spacing:2px;font-size:14px;color:var(--accent);margin-bottom:10px;text-transform:uppercase;}
#conf-mdl p{font-size:12px;color:var(--text2);margin-bottom:16px;line-height:1.5;font-family:var(--font-mono);}
.conf-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.ac-drop{background:var(--bg2);border:1px solid var(--accent);border-top:none;border-radius:0 0 var(--radius) var(--radius);overflow-y:auto;max-height:200px;box-shadow:0 6px 16px rgba(0,0,0,.55);}
.ac-item{padding:6px 10px;font-family:var(--font-mono);font-size:12px;color:var(--text3);cursor:pointer;border-bottom:1px solid var(--border);}
.ac-item:last-child{border-bottom:none;}
.ac-item:hover,.ac-item:active,.ac-item.ac-sel{background:var(--bg3);color:var(--accent);}

#log-srch-bar{padding:4px 8px 5px;gap:6px;background:var(--bg2);border-bottom:1px solid var(--border);display:none;align-items:center;}
#log-srch-bar.show{display:flex;}
#log-srch-inp{flex:1;background:var(--bg3);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:11px;padding:4px 8px;border-radius:var(--radius);}
#log-srch-inp:focus{outline:none;border-color:var(--accent);}
.srch-btn{background:none;border:none;color:var(--text2);cursor:pointer;padding:2px 5px;border-radius:3px;display:flex;align-items:center;}
.srch-btn:hover{color:var(--accent);background:var(--accent-bg-soft);}
.srch-btn.active{color:var(--accent);}
::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}

/* ── E2: Karten-Schnellleiste (Touch) ───────────────────────────── */
#ac-quickbar{display:none;position:absolute;bottom:0;left:0;right:0;z-index:2000;background:var(--map-overlay);border-top:1px solid var(--border);backdrop-filter:blur(8px);padding:10px 14px 14px;}
#ac-quickbar.show{display:block;}
.acqb-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;}
.acqb-cs{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--text);}
.acqb-sub{font-family:var(--font-mono);font-size:11px;color:var(--text2);display:block;margin-top:2px;}
.acqb-close{background:none;border:none;color:var(--text2);cursor:pointer;font-size:20px;line-height:1;padding:0 4px;touch-action:manipulation;}
.acqb-actions{display:flex;gap:6px;flex-wrap:wrap;}
.acqb-btn{flex:1;min-width:70px;background:var(--bg3);border:1px solid var(--border);color:var(--text2);padding:10px 8px;border-radius:var(--radius);font-family:var(--font-cond);font-size:12px;font-weight:700;cursor:pointer;text-align:center;touch-action:manipulation;transition:background .1s,color .1s;}
.acqb-btn:active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent);}

/* ── F: Tab-Bar ─────────────────────────────────────────────────── */
#tab-bar{display:none;background:var(--bg2);border-top:1px solid var(--border);flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0);}
.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 4px;background:none;border:none;border-top:2px solid transparent;color:var(--text2);font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:color .15s,border-color .15s;}
.tab-btn.active{color:var(--accent);border-top-color:var(--accent);}

.leaflet-control-zoom{display:flex!important;flex-direction:column!important;gap:4px!important;background:none!important;border:none!important;box-shadow:none!important;}
.leaflet-control-zoom a{background:var(--map-overlay)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;color:var(--accent)!important;font-family:var(--font-mono)!important;font-size:16px!important;backdrop-filter:blur(4px);box-shadow:none!important;line-height:26px!important;display:flex!important;align-items:center;justify-content:center;}
.leaflet-control-zoom a:hover{border-color:var(--accent)!important;background:rgba(0,212,170,.1)!important;}
#label-btn{font-size:11px!important;}
#label-btn.active{border-color:var(--accent)!important;background:rgba(0,212,170,.1)!important;}
.leaflet-bar{border:none!important;box-shadow:none!important;}
.leaflet-bar a{border-bottom:none!important;border-radius:var(--radius)!important;}
.ofm-tip{background:var(--map-overlay)!important;border:1px solid var(--border)!important;border-radius:4px!important;color:var(--text1)!important;font-family:var(--font-ui)!important;font-size:11px!important;padding:4px 8px!important;box-shadow:var(--shadow-md)!important;line-height:1.5;}
.ofm-tip b{color:var(--accent);}
.ofm-apt-wrap{display:flex;flex-direction:column;align-items:center;pointer-events:none;}
.ofm-apt--remote{opacity:.5;}
.ac-symbol-wrap{width:32px;height:32px;overflow:visible;transform-origin:center;filter:drop-shadow(0 1px 3px rgba(0,0,0,.7));}
.ofm-apt-svg{display:block;overflow:visible;filter:drop-shadow(0 0 2px rgba(0,0,0,.6));}
.ofm-ap{background:rgba(13,17,23,.85);border:1px solid rgba(88,166,255,.55);border-radius:2px;color:#f97316;font-family:var(--font-mono);font-size:10px;font-weight:700;padding:1px 3px;white-space:nowrap;margin-top:1px;line-height:13px;}
/* ── Light Mode ──────────────────────────────────────────────────── */
body.light{
  --bg:#ffffff;--bg2:#f6f8fa;--bg3:#edf0f3;--border:#d0d7de;
  --text:#1c2128;--text2:#57606a;--text3:#24292f;
  /* Barrierefreie Akzentfarben (WCAG AA ≥ 4,5:1 auf Weiß) */
  --accent:#047857;        /* Teal → Emerald-700  5,5:1 */
  --accent2:#92400e;       /* Orange → Amber-800  6,2:1 */
  --accent3:#b91c1c;       /* Rot → Red-700       6,5:1 */
  --col-blue:#1d4ed8;      /* Blau → Blue-700     6,7:1 */
  --col-adsbfi:#c2410c;    /* ADSB.fi → Orange-700 5,2:1 */
  --col-adsblo:#7e22ce;    /* ADSB.lol → Purple-800 7,0:1 */
  --col-ogn:#15803d;       /* OGN → Green-700     5,1:1 */
  --overlay-bg:rgba(0,0,0,.55);
  --map-overlay:rgba(240,244,248,.95);
  --shadow-md:0 4px 12px rgba(0,0,0,.15);
  --shadow-sm:0 2px 8px rgba(0,0,0,.12);
  --accent-bg:rgba(4,120,87,.12);
  --accent-bg-soft:rgba(4,120,87,.09);
  --map-filter:brightness(1.02) saturate(.9);
}
body.light .leaflet-container{background:#e8ecf0;}
body.light .trc-layer{filter:brightness(.4);}
body.light .leaflet-control-zoom a{color:var(--text3)!important;}
body.light .leaflet-control-zoom a:hover{border-color:var(--text3)!important;background:rgba(0,0,0,.06)!important;}
body.light #label-btn.active{border-color:var(--accent2)!important;background:rgba(0,0,0,.06)!important;}
/* Airports: no shadow, dark gray stroke, adapted label */
body.light .ofm-apt-svg{filter:none;stroke:#4b5563!important;}
body.light .ofm-ap{background:var(--bg3);border-color:var(--border);color:var(--text2);}
/* UI accent (#00d4aa) → near-black for display elements */
body.light .mb{color:var(--text2);}
body.light .ac-map-label{background:rgba(240,244,248,.88);}
body.light .mb-btn{color:var(--text2);}
body.light .mb-btn.active{border-color:var(--accent2);color:var(--accent2);}
body.light #rbadge,body.light #lbadge{color:var(--text3);border-color:var(--border);background:rgba(0,0,0,.07);}
body.light .sec-icon.rad,body.light .sec-icon.log-ic{color:var(--text3);}
body.light .lsw-btn.active{color:var(--text3);border-color:var(--text3);background:rgba(0,0,0,.06);}
body.light .logo-edne{color:var(--text);}
body.light .info-sh{color:var(--text3);}
body.light .tab-btn.active{color:var(--text);border-top-color:var(--accent2);}
body.light .acqb-btn:active{background:rgba(0,0,0,.07);color:var(--text);border-color:var(--text2);}
body.light .rac.selected{background:rgba(0,0,0,.05);border-left-color:var(--text3);}
body.light .pe.selected{background:rgba(0,0,0,.05);border-color:var(--text3);}

@media(max-width:900px){
  body{overflow:auto;}
  #main{flex-direction:column;}
  #left{display:flex;flex-direction:column;width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border);}
  #rad-sec{flex:1;}
  .pnl{flex:1;min-height:44px;}
  .pnl.collapsed{flex:0 0 44px;}
  #mid{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border);max-height:50vh;}
  #map-panel{min-height:40vh;}
  /* D: größere Touch-Targets */
  .hctrl-btn{padding:6px 12px;}
  .pe-x,.pe-exp{min-width:36px;min-height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;}
  .fav-x{min-width:30px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;}
  .rac{padding:8px 8px;}
  .src-pill{padding:5px 10px;}
  .pnl-add{min-width:30px;min-height:30px;}
}

/* ── F: Smartphone-Layout mit Tabs (<600px) ──────────────────────── */
@media(max-width:600px){
  body{overflow:hidden;}
  #tab-bar{display:flex;}
  /* Header kompakt */
  #hrow1{padding:5px 10px;gap:8px;}
  #hrow2{padding:4px 8px;gap:3px;}
  .bar-sep{display:none;}
  .hctrl-lbl{display:none;}
  .layout-sw{display:none;}
  /* Hauptbereich: Flex-Spalte, Sektionen per Tab gesteuert */
  #main{flex-direction:column;overflow:hidden;}
  #left,#mid,#map-panel{display:none!important;width:100%;min-width:unset;max-height:none;border-right:none;border-bottom:none;}
  /* Karte-Tab */
  body[data-tab='map'] #map-panel{display:flex!important;flex-direction:column;flex:1;}
  /* Radar-Tab */
  body[data-tab='radar'] #left{display:flex!important;flex-direction:column;flex:1;overflow:hidden;}
  body[data-tab='radar'] #left1{flex:1;display:flex;flex-direction:column;overflow:hidden;}
  body[data-tab='radar'] #left2{display:none!important;}
  body[data-tab='radar'] .pnl{display:none!important;}
  body[data-tab='radar'] #rad-sec{flex:1;}
  /* Panels-Tab */
  body[data-tab='panels'] #left{display:flex!important;flex-direction:column;flex:1;overflow-y:auto;}
  body[data-tab='panels'] #rad-sec{display:none!important;}
  body[data-tab='panels'] #left1,body[data-tab='panels'] #left2{display:flex;flex-direction:column;flex-shrink:0;}
  body[data-tab='panels'] .pnl{min-height:80px;}
  /* Log-Tab */
  body[data-tab='log'] #mid{display:flex!important;flex-direction:column;flex:1;}
}
