:root{--bg:#0a1722;--panel:#111f2b;--panel2:#16283a;--line:#24384a;--text:#e3ecf2;--muted:#8ea3b3;
--green:#2ecc71;--yellow:#f4c430;--red:#ef4b3f;--grey:#5b6b78;--unk:#9aa7b2;--accent:#5fb4ff}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:14px/1.35 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
#app{display:flex;flex-direction:column;height:100%;height:100dvh}
header{display:flex;align-items:center;gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));background:var(--panel);border-bottom:1px solid var(--line)}
header h1{font-size:15px;margin:0;font-weight:700;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tag{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:#2a3b4b;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.seg{display:flex;background:var(--panel2);border-radius:8px;padding:2px}
.seg button{background:none;border:0;color:var(--muted);padding:5px 10px;border-radius:6px;font:600 12px system-ui}
.seg button.on{background:#25405a;color:#fff}
.banner{font-size:11px;color:#f6d58a;background:#2b2412;padding:5px 12px;border-bottom:1px solid #3d331a}
.banner a{color:#ffe3a3}
#main{position:relative;flex:1;min-height:0}
#map{position:absolute;inset:0;background:#0b2233}
#list{position:absolute;inset:0;overflow:auto;background:var(--bg);display:none;padding:48px 10px 140px}
.summary{position:absolute;top:10px;left:10px;right:110px;z-index:1100;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}
.pill{pointer-events:auto;background:rgba(17,31,43,.92);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sw{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.timebar{position:absolute;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:1100;background:rgba(17,31,43,.95);border:1px solid var(--line);border-radius:12px;padding:8px 10px 10px}
.timebar .row{display:flex;align-items:center;gap:8px}
.timebar .lbl{font-weight:700;font-size:13px}
.timebar .sub{font-size:11px;color:var(--muted)}
.btn{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 12px;font:600 13px system-ui;text-decoration:none;display:inline-block}
.btn.primary{background:#1f6fb8;border-color:#2b80cf}
.btn.sm{padding:4px 9px;font-size:12px}
.slider-wrap{position:relative;margin-top:8px}
input[type=range]{width:100%;accent-color:var(--accent)}
.eta-mark{position:absolute;top:-6px;width:2px;height:12px;background:#ff9f43;pointer-events:none}
.eta-mark span{position:absolute;top:-14px;left:-10px;font-size:9px;color:#ff9f43;font-weight:700}
.fab{position:absolute;right:10px;top:10px;z-index:1100}
.leaflet-top.leaflet-right{top:52px}
.leaflet-container{background:#0b2233;font:inherit}
.leaflet-control-attribution{font-size:9px!important;background:rgba(10,23,34,.7)!important;color:#7d8d99!important}
.leaflet-control-attribution a{color:#9fb3c2!important}
.leaflet-bar a{background:#16232f!important;color:#dfe8ee!important;border-bottom-color:#263644!important}
.apt{position:relative}
.apt .d{width:16px;height:16px;border-radius:50%;border:2px solid rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.apt .d.nofc{border-style:dashed;border-color:#fff}
.apt .t{position:absolute;left:19px;top:0;font:700 11px system-ui;color:#fff;text-shadow:0 0 3px #000,0 0 3px #000;white-space:nowrap}
.apt.sel .d{box-shadow:0 0 0 3px #fff}
.home{width:22px;height:22px;margin:-3px;color:var(--accent);font:900 22px/22px system-ui;text-align:center;text-shadow:0 0 4px #000}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:2000;background:var(--panel);border-top:1px solid var(--line);border-radius:16px 16px 0 0;max-height:82vh;overflow:auto;transform:translateY(105%);transition:transform .22s ease;padding:6px 14px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.5)}
@media(min-width:800px){.sheet{left:auto;right:12px;bottom:12px;width:420px;border-radius:16px;border:1px solid var(--line)}}
.sheet.open{transform:none}
.grab{width:40px;height:4px;border-radius:2px;background:#3a4f62;margin:4px auto 8px}
.sheet h2{font-size:16px;margin:4px 0 10px;display:flex;align-items:center;gap:8px}
.sheet h2 .x{margin-left:auto}
.field{margin:10px 0}
.field label{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;font-weight:600}
.field .val{float:right;color:var(--text);text-transform:none;letter-spacing:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rowf{display:flex;gap:8px}
select,input[type=number],input[type=text]{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px;font:16px system-ui}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 12px;font:600 13px system-ui}
.chip.on{background:#1d4a73;border-color:#3a87cf;color:#fff}
.hint{font-size:11px;color:var(--muted);margin-top:4px}
.section-t{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:700;margin:14px 0 6px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px}
.kv b{color:var(--muted);font-weight:600}
.status{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--panel2);margin:8px 0;font-weight:600}
.strip{display:grid;grid-template-columns:repeat(31,1fr);gap:2px;margin:6px 0 2px}
.strip div{height:22px;border-radius:3px;position:relative}
.strip div.cur{outline:2px solid #fff;outline-offset:1px}
.strip div.eta::after{content:"";position:absolute;bottom:-5px;left:30%;width:40%;height:3px;background:#ff9f43;border-radius:2px}
.striplbl{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
.raw{font:12px ui-monospace,Menlo,monospace;background:#0d1a25;border:1px solid var(--line);border-radius:8px;padding:7px 9px;word-break:break-word;white-space:pre-wrap}
.appr{display:inline-block;margin:2px 4px 2px 0;padding:3px 8px;border-radius:5px;background:var(--panel2);font-size:12px;border:1px solid var(--line);color:var(--text);text-decoration:none}
.appr.match{border-color:#3a87cf}
.row-item{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid var(--line)}
.row-item .main{flex:1;min-width:0}
.row-item .id{font-weight:700}
.row-item .nm{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-item .rt{text-align:right;font-size:12px;color:var(--muted);flex:none}
.why-s{font-size:11px;color:var(--muted)}
.legend{font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.legend span{display:flex;align-items:center;gap:4px}
.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:3000;background:var(--bg);color:var(--muted);text-align:center;padding:24px}
.warn{color:#f6d58a}
.toggle{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sw-t{width:44px;height:26px;border-radius:13px;background:#33475a;position:relative;flex:none;border:0}
.sw-t::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}
.sw-t.on{background:#2b9a5a}.sw-t.on::after{left:21px}
.fromBar{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--line);position:relative;z-index:2500}
.fromBar label{font-size:12px;font-weight:700;color:var(--muted)}
.fromWrap{position:relative;flex:1;min-width:0}
.fromWrap input{padding:7px 9px}
.fromR{font-size:12px;color:var(--muted);white-space:nowrap}
.sugg{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--panel2);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:none;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.sugg.open{display:block}
.sugg div{padding:9px 10px;border-bottom:1px solid var(--line);font-size:13px;cursor:pointer}
.sugg div:last-child{border-bottom:0}
.sugg div b{margin-right:6px}
.sugg div span{color:var(--muted)}
.checks{margin:6px 0 10px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ck{display:grid;grid-template-columns:26px 92px 1fr;align-items:start;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px}
.ck:last-child{border-bottom:0}
.ck b{font-weight:600;color:var(--muted)}
.ck .ic{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:900 12px/1 system-ui;color:#0a1722}
.ck-green .ic{background:var(--green)}.ck-yellow .ic{background:var(--yellow)}.ck-red .ic{background:var(--red);color:#fff}.ck-unk .ic{background:var(--unk)}
.ck-red span:last-child{color:#ffb3ad}
.badge-ht{display:flex;gap:10px;align-items:flex-start;background:#2e2410;border:1px solid #6b5420;border-radius:10px;padding:8px 10px;margin:8px 0;font-size:12px}
.badge-ht .ht-ic{width:22px;height:22px;flex:none;border-radius:6px;background:#f4a52b;color:#1a1204;font:900 13px/22px system-ui;text-align:center}
.badge-ht b{display:block;color:#ffc766;font-size:11px;letter-spacing:.6px}
.badge-ht span{color:#f0dcb0}
.tag-ht{background:#4a3712;color:#ffc766}
.badge-bird{display:flex;gap:10px;align-items:flex-start;background:#122a22;border:1px solid #2f6b55;border-radius:10px;padding:8px 10px;margin:8px 0;font-size:12px}
.badge-bird .bd-ic{width:22px;height:22px;flex:none;border-radius:6px;background:#3ccf96;color:#06231a;display:flex;align-items:center;justify-content:center}
.badge-bird .bd-ic svg{width:15px;height:15px}
.badge-bird b{display:block;color:#7cf0c2;font-size:11px;letter-spacing:.6px;margin-bottom:2px}
.badge-bird span{display:block;color:#cfeee2;margin-top:2px}
.tag-bird{background:#173d31;color:#7cf0c2;display:inline-flex;align-items:center;gap:3px}
.tag-bird svg{width:11px;height:11px}
.mbird{display:inline-block;width:11px;height:11px;margin-left:3px;color:#7cf0c2;vertical-align:-1px}
.mbird svg{width:11px;height:11px;display:block}
