@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.glass{background:#0d1d2cd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(26,125,189,.15)}.glass-light{background:#0d1d2c99;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(26,125,189,.1)}.leaflet-popup-content-wrapper{background:#0d1d2cf2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#c5d8ea;border-radius:10px;border:1px solid rgba(26,125,189,.2)}.leaflet-popup-tip{background:#0d1d2cf2}.leaflet-popup-content{margin:12px 16px;font-size:13px}.leaflet-container a.leaflet-popup-close-button{color:#4d7a9e}.leaflet-container .leaflet-control-zoom a{background:#0d1d2ce6;color:#c5d8ea;border-color:#1a7dbd33}.leaflet-container .leaflet-control-zoom a:hover{background:#1a7dbd33}:root{--bg: #0f1923;--bg-sidebar: #0b1520;--bg-panel: #0d1d2c;--bg-card: #091624;--bg-input: #091624;--border: #162333;--border-inner: #0f2033;--border-mid: #1a2e42;--blue: #1a7dbd;--blue-hover: #2191d8;--blue-dim: #0e2a42;--text-h: #e8f1fa;--text-1: #c5d8ea;--text-2: #8aacbf;--text-3: #4d6e88;--text-4: #3d5a72;--red: #e85d4a;--red-bg: #3a0f0f;--orange: #f0a830;--orange-bg: #2d1a00;--green: #52c97e;--green-bg: #0a2518;--purple: #9b72ef;--purple-bg: #1a0a3a}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;font-family:-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text-1)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg-sidebar)}::-webkit-scrollbar-thumb{background:#1e3347;border-radius:3px}.leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.75) contrast(1.1) saturate(.7)}.leaflet-container{background:#0b1825!important}.leaflet-control-attribution{display:none!important}.leaflet-control-zoom a{background:#0d1d2c!important;color:#62b8f5!important;border-color:#162333!important}.ant-btn-primary{background:var(--blue)!important;border-color:var(--blue)!important}.ant-btn-primary:hover{background:var(--blue-hover)!important;border-color:var(--blue-hover)!important}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);animation:blink 1.4s infinite}.chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px}.chip-dot{width:5px;height:5px;border-radius:50%}.chip-red{background:var(--red-bg);color:var(--red)}.chip-orange{background:var(--orange-bg);color:var(--orange)}.chip-green{background:var(--green-bg);color:var(--green)}.chip-blue{background:var(--blue-dim);color:#62b8f5}.chip-purple{background:var(--purple-bg);color:var(--purple)}.chip-gray{background:#141a1a;color:var(--text-4)}.progress-track{height:6px;background:#0f2035;border-radius:3px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;transition:width .6s ease}.progress-green{background:linear-gradient(90deg,#27ae60,#52c97e)}.progress-yellow{background:linear-gradient(90deg,#d97706,#f0a830)}.progress-blue{background:linear-gradient(90deg,#1a7dbd,#62b8f5)}.progress-red{background:linear-gradient(90deg,#c0392b,#e85d4a)}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.panel-title{font-size:13px;font-weight:600;color:var(--text-1);display:flex;align-items:center;gap:8px}.panel-action{font-size:11px;color:var(--blue);cursor:pointer}.panel-action:hover{color:#62b8f5}.panel-body{flex:1;overflow-y:auto;padding:8px}.topbar-btn{padding:6px 14px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .15s;font-family:inherit}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-hover)}.btn-outline{background:transparent;color:#62b8f5;border:1px solid #1a7dbd44}.btn-outline:hover{background:var(--blue-dim)}.filter-input{background:var(--bg-input);border:1px solid var(--border-mid);border-radius:7px;color:var(--text-1);font-size:12.5px;padding:7px 12px;outline:none;font-family:inherit;transition:border-color .15s}.filter-input:focus{border-color:#1a7dbd55}.filter-input::placeholder{color:#2d4a62}.metric-accent-blue{background:var(--blue)}.metric-accent-green{background:#27ae60}.metric-accent-red{background:#c0392b}.metric-accent-orange{background:#d97706}
