html,body{margin:0;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:#0e1116;color:#e6e9ef;height:100%;overflow:hidden}header{padding:16px 20px;display:flex;justify-content:space-between;align-items:flex-start;background:#151a22;border-bottom:1px solid #232a36}.header-main{display:flex;flex-direction:column;gap:6px}.header-support{display:flex;align-items:center;font-size:11px;background:#1e2633;border-radius:6px;overflow:hidden;border:1px solid #2a3240;transition:all .2s ease;margin-top:2px}.header-support:hover{border-color:#3d495d;background:#232d3d}.support-label{padding:4px 8px;color:#8b949e;background:#0d111766;border-right:1px solid #2a3240;font-weight:500}.support-value{padding:4px 10px;color:#c9d1d9;font-weight:600;letter-spacing:.5px}header h1{margin:0;font-size:20px;font-weight:600}header p{margin:0;color:#9aa3b2;font-size:13px}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);height:calc(100vh - var(--header-h, 76px))}body.panel-collapsed .layout{grid-template-columns:1fr;height:calc(100vh - var(--header-h, 76px))}body.panel-collapsed .panel{display:none}body.panel-collapsed #map{height:100%;min-height:0}#map{height:100%;position:relative}.heat-layer{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:900}.map-controls{position:absolute;top:10px;right:10px;z-index:1000;display:flex;gap:8px}.toast-container{position:fixed;top:calc(var(--header-h, 76px) + 10px);left:16px;z-index:1200;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast-card{border:1px solid #2a3240;border-radius:12px;background:linear-gradient(180deg,#141a24fa,#0c1017fa);color:#e6e9ef;padding:10px 12px;text-align:left;cursor:pointer;box-shadow:0 12px 26px #070a0f73}.toast-title{display:block;font-size:13px;font-weight:600;letter-spacing:.2px;margin-bottom:4px}.toast-body{display:block;font-size:12px;color:#cbd5f5;line-height:1.4;word-break:break-word}.map-coords{position:absolute;right:12px;bottom:12px;z-index:950;display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:10px;border:1px solid #2a3240;background:#0f141ceb;color:#e6e9ef;font-size:12px;pointer-events:none;min-width:150px}.map-coords-title{font-size:11px;color:#9aa3b2}.map-coords-value{font-variant-numeric:tabular-nums;letter-spacing:.2px}@media (max-width: 768px){.map-coords{display:none}}@media (max-width: 768px){body.panel-collapsed .map-coords{display:flex}}.map-btn{padding:6px 10px;border:1px solid #2a3240;border-radius:10px;background:#0f141c;color:#e6e9ef;font-size:12px;cursor:pointer}.panel{border-left:1px solid #232a36;background:#11151c;display:flex;flex-direction:column;min-height:0;width:100%;max-width:420px}.panel-header{padding:16px 20px;border-bottom:1px solid #232a36;display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-controls{padding:12px 20px;border-bottom:1px solid #232a36;display:flex;gap:8px;align-items:center}.search-field{position:relative;flex:1;min-width:0}.panel-controls input{width:100%;padding:8px 34px 8px 10px;border-radius:8px;border:1px solid #2a3240;background:#0f141c;color:#e6e9ef;font-size:12px;box-sizing:border-box}.range-select{padding:8px 10px;border-radius:8px;border:1px solid #2a3240;background:#0f141c;color:#e6e9ef;font-size:12px;flex-shrink:0}.clear-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:50%;border:1px solid #2a3240;background:#0f141c;color:#9aa3b2;display:none;align-items:center;justify-content:center;font-size:12px;cursor:pointer;padding:0}.panel-controls button{padding:8px 12px;border-radius:8px;border:1px solid #2a3240;background:#0f141c;color:#e6e9ef;font-size:12px;cursor:pointer;display:none;flex-shrink:0}.map-mode{display:inline-flex;border:1px solid #2a3240;border-radius:10px;overflow:hidden;background:#0f141c}.mode-btn{padding:6px 10px;border:none;background:transparent;color:#9aa3b2;font-size:12px;cursor:pointer}.mode-btn.active{background:#1e2633;color:#e6e9ef}.panel-hint{padding:10px 20px;border-bottom:1px solid #232a36;font-size:12px;color:#9aa3b2}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px 20px;border-bottom:1px solid #232a36}.stat-card{background:#151b26;border:1px solid #232a36;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.stat-card span{font-size:11px;color:#8b95a7}.stat-card strong{font-size:14px}.badge{padding:4px 10px;border-radius:999px;background:#1e2633;color:#b8c2d6;font-size:12px}.list{overflow:auto;padding:8px 0;flex:1;max-height:50vh;min-height:0}.list::-webkit-scrollbar{width:8px}.list::-webkit-scrollbar-track{background:#0f141c}.list::-webkit-scrollbar-thumb{background:#2a3240;border-radius:999px}.list::-webkit-scrollbar-thumb:hover{background:#3a4558}.list{scrollbar-color:#2a3240 #0f141c;scrollbar-width:thin}.list-loading{padding:10px 20px 14px;border-top:1px solid #1f2632;color:#8b95a7;font-size:12px}.popup{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#e6e9ef;min-width:0;width:420px;max-width:460px;background:linear-gradient(180deg,#131923fa,#0e121afa);border:1px solid #232a36;border-radius:12px;padding:10px 12px;box-shadow:0 18px 40px #070a0f8c,0 6px 16px #070a0f59;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-sizing:border-box}.popup-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #232a36;padding-bottom:8px;margin-bottom:2px}.popup-title{font-size:15px;font-weight:600;color:#f1f5f9;letter-spacing:.2px}.popup-time{font-size:11px;color:#9aa3b2;border:1px solid #2a3240;background:#0f141ce6;padding:2px 8px;border-radius:999px;font-variant-numeric:tabular-nums}.popup-content{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:6px 10px}.popup-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;align-items:center;padding:4px 6px;background:#0c10178c;border:1px solid #1f2632;border-radius:8px;min-width:0}.popup-row.popup-actions{grid-template-columns:auto 1fr;align-items:center}.popup-row.popup-actions span{align-self:center;line-height:1}.popup-track-btn{justify-self:end;padding:4px 10px;border-radius:999px;border:1px solid #2a3240;background:#0f141c;color:#e6e9ef;font-size:11px;cursor:pointer}.popup-route-btn{justify-self:end;padding:4px 10px;border-radius:999px;border:1px solid #2a3240;background:#0f141c;color:#e6e9ef;font-size:11px;cursor:pointer;margin-left:8px}.popup-action-buttons{display:inline-flex;gap:8px;justify-content:flex-end;width:100%}.popup-row span{color:#8b95a7;white-space:nowrap;min-width:0;font-size:11px;letter-spacing:.2px}.popup-row strong{text-align:right;font-weight:600;color:#e6e9ef;word-break:break-word;font-variant-numeric:tabular-nums;min-width:0;justify-self:end}.popup-row.full-width{grid-column:1 / -1;align-items:start}.popup-row.full-width strong{text-align:left;width:100%;color:#d6deea;line-height:1.4;justify-self:start}.popup-raw{grid-column:1 / -1;margin-top:6px;padding:8px 10px;border:1px dashed #232a36;border-radius:8px;background:#0b0f15e6;color:#9aa3b2;font-family:monospace;font-size:11px;word-break:break-all;line-height:1.4}#map .tdt-infowindow,#map .tdt-infowindow-content,#map .tdt-infowindow-body,#map .tdt-infowindow-content-wrapper,#map .tdt-infowindow-shadow,#map .tdt-infowindow-tip,#map .tdt-infowindow table,#map .tdt-infowindow tr,#map .tdt-infowindow td,#map [class*=tdt-infowindow]{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;margin:0!important}#map .tdt-infowindow-close,#map .tdt-infowindow-close:hover,#map .tdt-infowindow-close:focus{background:#0f141ce6!important;border:1px solid #2a3240!important;border-radius:8px!important;color:#cbd5f5!important}#map .tdt-infowindow-content,#map .tdt-infowindow-body,#map .tdt-infowindow-content-wrapper{overflow:visible!important}@media (max-width: 820px){.popup{max-width:calc(100vw - 32px);width:calc(100vw - 32px)}#map .tdt-infowindow{margin-top:24px!important}.popup-content{grid-template-columns:1fr}.popup-content{max-height:55vh;overflow-y:auto;padding-right:2px}}.item{padding:12px 20px;border-bottom:1px solid #1f2632;display:flex;flex-direction:column;gap:4px}.item strong{font-size:14px}.item span{color:#9aa3b2;font-size:12px}.status{font-size:12px;color:#7dd3fc}.tdt-label,.tdt-label div{height:16px!important;line-height:16px!important;padding:0 2px!important}@media (max-width: 1024px){.layout{grid-template-columns:1.4fr 1fr}.list{max-height:45vh}}@media (max-width: 820px){body{height:100%;overflow:hidden}header{padding:12px 16px;flex-shrink:0}header h1{font-size:18px}header p{font-size:12px}.layout{grid-template-columns:1fr;height:calc(100vh - var(--header-h, 60px));display:flex;flex-direction:column;overflow:hidden}#map{height:50vh;min-height:260px;flex-shrink:0}.map-controls{top:8px;right:8px;flex-wrap:wrap}.panel{border-left:none;border-top:1px solid #232a36;min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:12px 16px;flex-shrink:0}.panel-controls{padding:10px 16px;flex-shrink:0}.panel-controls input{font-size:16px;padding-right:40px}.range-select{font-size:14px}.clear-btn{width:24px;height:24px;font-size:14px}.panel-controls button{display:inline-flex;align-items:center;justify-content:center;font-size:14px;white-space:nowrap;min-width:56px}.panel-hint{padding:10px 16px;flex-shrink:0}.stats-grid{padding:12px 16px;gap:8px;flex-shrink:0}.stat-card{padding:8px 10px}.list{max-height:none;flex:1;overflow-y:auto;padding-bottom:20px}.side-panel-list-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.item{padding:10px 16px;gap:2px}.mobile-hidden{display:none!important}}@media (max-width: 480px){.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid .stat-card:nth-child(-n+4){display:none}.map-controls{gap:6px}.map-btn,.mode-btn{padding:6px 8px;font-size:11px}.panel-controls input{font-size:16px;padding-right:38px}.clear-btn{width:20px;height:20px;font-size:12px}.panel-controls button{font-size:12px;min-width:52px}.panel-header{padding:10px 14px}.panel-controls,.panel-hint{padding:8px 14px}#panelToggleBtn{display:inline-block}.stats-grid{padding:10px 14px;gap:6px}.stat-card{padding:6px 8px;gap:2px}.stat-card span{font-size:10px}.stat-card strong{font-size:12px}.badge{padding:3px 8px;font-size:11px}.list{padding:4px 0}.item{padding:8px 14px;gap:2px}.item strong{font-size:13px}.item span,.status,.popup{font-size:11px}}
