:root{--color-bg: #090d16;--color-panel: rgba(13, 19, 33, .86);--color-panel-border: rgba(255, 255, 255, .09);--color-text-main: #f1f5f9;--color-text-muted: #94a3b8;--color-accent: #38bdf8;--color-sirens: #ef4444;--color-sirens-glow: rgba(239, 68, 68, .35);--color-roadworks: #f97316;--color-roadworks-glow: rgba(249, 115, 22, .35);--color-events: #a855f7;--color-events-glow: rgba(168, 85, 247, .35);--color-environment: #10b981;--color-environment-glow: rgba(16, 185, 129, .35);--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}html,body{width:100vw;height:100vh;overflow:hidden;background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text-main)}#map{width:100vw;height:100vh;position:absolute;top:0;left:0;z-index:1;background:#090d16}.radar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background:radial-gradient(circle at 50% 50%,transparent 60%,rgba(9,13,22,.45) 100%);box-shadow:inset 0 0 120px #000000a6}.leaflet-bar{border:1px solid var(--color-panel-border)!important;box-shadow:0 8px 32px #00000080!important;border-radius:8px!important;overflow:hidden}.leaflet-bar a{background-color:#0f172ae0!important;color:#f1f5f9!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-panel-border)!important;transition:background .2s ease,color .2s ease}.leaflet-bar a:hover{background-color:#1e293b!important;color:#38bdf8!important}.top-nav-bar{position:absolute;top:16px;right:16px;z-index:1000;display:flex;align-items:center;gap:10px}.nav-glass-btn{background:var(--color-panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-panel-border);color:var(--color-text-muted);border-radius:10px;padding:8px 14px;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;box-shadow:0 4px 16px #0006;transition:all .2s ease}.nav-glass-btn:hover{background:#1e293bf2;color:var(--color-text-main);border-color:#ffffff2e}.lang-dropdown-wrapper{position:relative}.lang-select-btn{background:var(--color-panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-panel-border);color:var(--color-text-main);border-radius:10px;padding:8px 14px;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:0 4px 16px #0006;transition:all .2s ease}.lang-select-btn:hover{border-color:#38bdf866}.lang-menu{position:absolute;top:calc(100% + 6px);right:0;background:#0d1321f5;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--color-panel-border);border-radius:12px;padding:6px;width:175px;box-shadow:0 16px 40px #000000b3;display:flex;flex-direction:column;gap:2px;z-index:1002;opacity:0;pointer-events:none;transform:translateY(-8px);transition:all .2s ease}.lang-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}.lang-option{padding:8px 12px;border-radius:8px;background:transparent;border:none;color:var(--color-text-muted);font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%;text-align:left;transition:all .15s ease}.lang-option:hover,.lang-option.active{background:#38bdf81f;color:#38bdf8}.timeframe-dropdown-wrapper{position:relative}.timeframe-select-btn{display:flex;align-items:center;gap:8px;border-radius:10px;padding:8px 13px;font-size:12px;font-weight:700;cursor:pointer}.timeframe-select-btn:hover{border-color:#38bdf866}.timeframe-menu{position:absolute;top:calc(100% + 6px);right:0;background:#0d1321fa;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--color-panel-border);border-radius:12px;padding:6px;width:250px;box-shadow:0 16px 40px #000000bf,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;gap:3px;z-index:1002;opacity:0;pointer-events:none;transform:translateY(-8px);transition:all .2s ease}.timeframe-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}.timeframe-option{padding:8px 10px;border-radius:8px;background:transparent;border:1px solid transparent;color:var(--color-text-main);cursor:pointer;width:100%;text-align:left;transition:all .15s ease;display:flex;flex-direction:column;gap:2px}.timeframe-option .tf-row{display:flex;justify-content:space-between;align-items:center;width:100%}.timeframe-option .tf-title{font-size:12px;font-weight:700;color:#f1f5f9}.timeframe-option .tf-count{font-size:10px;font-family:var(--font-mono);font-weight:700;padding:1px 6px;border-radius:10px;background:#ffffff14;color:#94a3b8}.timeframe-option .tf-sub{font-size:10px;color:#64748b;font-weight:500}.timeframe-option:hover{background:#38bdf81a;border-color:#38bdf833}.timeframe-option:hover .tf-title{color:#38bdf8}.timeframe-option.active{background:#38bdf824;border-color:#38bdf859}.timeframe-option.active .tf-title{color:#38bdf8}.timeframe-option.active .tf-count{background:#38bdf840;color:#38bdf8}.mapstyle-dropdown-wrapper{position:relative}.mapstyle-select-btn{display:flex;align-items:center;gap:8px;border-radius:10px;padding:8px 13px;font-size:12px;font-weight:700;cursor:pointer}.mapstyle-select-btn:hover{border-color:#a78bfa66}.mapstyle-menu{position:absolute;top:calc(100% + 6px);right:0;background:#0d1321fa;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--color-panel-border);border-radius:12px;padding:6px;width:240px;box-shadow:0 16px 40px #000000bf,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;gap:4px;z-index:1002;opacity:0;pointer-events:none;transform:translateY(-8px);transition:all .2s ease}.mapstyle-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}.mapstyle-option{padding:8px 10px;border-radius:8px;background:transparent;border:1px solid transparent;color:var(--color-text-main);cursor:pointer;width:100%;text-align:left;transition:all .15s ease;display:flex;align-items:center;gap:10px}.mapstyle-option:hover{background:#a78bfa1f;border-color:#a78bfa40}.mapstyle-option.active{background:#a78bfa2e;border-color:#a78bfa66}.mapstyle-option .ms-preview{width:32px;height:32px;border-radius:7px;border:1px solid rgba(255,255,255,.15);flex-shrink:0;box-shadow:0 2px 6px #0006}.ms-preview-dark{background:radial-gradient(circle at 30% 30%,#334155,#0f172a);border-color:#38bdf8!important}.ms-preview-satellite{background:linear-gradient(135deg,#14532d,#065f46 45%,#1e3a8a);border-color:#10b981!important}.ms-preview-street{background:linear-gradient(135deg,#fef08a,#86efac 45%,#93c5fd);border-color:#eab308!important}.ms-preview-light{background:linear-gradient(135deg,#fff,#e2e8f0 70%,#cbd5e1);border-color:#94a3b8!important}.mapstyle-option .ms-meta{display:flex;flex-direction:column;gap:1px;min-width:0}.mapstyle-option .ms-title{font-size:12px;font-weight:700;color:#f1f5f9}.mapstyle-option .ms-sub{font-size:10px;color:#64748b;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapstyle-option.active .ms-title{color:#a78bfa}.control-panel{position:absolute;top:16px;left:16px;z-index:1000;width:360px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);background:var(--color-panel);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--color-panel-border);border-radius:16px;box-shadow:0 20px 48px #000000a6,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;overflow:hidden;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .2s ease}.panel-header{padding:16px 18px 14px;border-bottom:1px solid var(--color-panel-border);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,transparent 100%)}.brand-group{display:flex;align-items:center;gap:12px}.brand-icon-wrapper{position:relative;width:38px;height:38px;background:#1e293bb3;border:1px solid rgba(56,189,248,.3);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#38bdf8;font-size:17px;box-shadow:0 0 14px #38bdf833}.radar-pulse-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:1px solid #38bdf8;border-radius:12px;opacity:.6;animation:radarPing 2.4s infinite cubic-bezier(0,0,.2,1);pointer-events:none}@keyframes radarPing{0%{transform:scale(.95);opacity:.8}70%,to{transform:scale(1.35);opacity:0}}.brand-text h1{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.1;display:flex;align-items:center;gap:6px}.brand-dot{display:inline-block;width:5px;height:5px;background:#38bdf8;border-radius:50%}.brand-text p{font-size:11px;color:var(--color-text-muted);font-weight:500;letter-spacing:.02em;margin-top:2px}.live-badge{display:flex;align-items:center;gap:6px;padding:4px 9px;border-radius:9999px;background:#10b9811f;border:1px solid rgba(16,185,129,.3);font-family:var(--font-mono);font-size:10px;font-weight:600;color:#34d399;text-transform:uppercase;letter-spacing:.05em}.live-dot{width:6px;height:6px;background:#10b981;border-radius:50%;box-shadow:0 0 8px #10b981;animation:liveBlink 1.5s infinite ease-in-out}@keyframes liveBlink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.civic-alert-badge{margin:10px 18px 0;padding:8px 12px;background:#ef444414;border:1px solid rgba(239,68,68,.25);border-radius:8px;font-size:11px;display:flex;align-items:center;gap:8px;color:#fca5a5;line-height:1.3}.civic-alert-badge strong{color:#fff;font-weight:700}.panel-body{padding:12px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.panel-body::-webkit-scrollbar{width:4px}.panel-body::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:9999px}.region-container{display:flex;flex-direction:column;gap:5px}.section-label{font-size:10.5px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;justify-content:space-between}.region-selector{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.region-btn{padding:6px 4px;background:#ffffff08;border:1px solid var(--color-panel-border);border-radius:7px;font-size:11px;font-weight:600;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:3px;transition:all .2s ease}.region-btn:nth-child(1),.region-btn:nth-child(2),.region-btn:nth-child(3){grid-column:span 2}.region-btn:nth-child(4),.region-btn:nth-child(5){grid-column:span 3}.region-btn:hover{background:#ffffff14;color:var(--color-text-main)}.region-btn.active{background:#38bdf824;border-color:#38bdf866;color:#38bdf8;box-shadow:0 0 12px #38bdf81a}.search-box{position:relative;width:100%}.search-box i{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--color-text-muted);pointer-events:none}.search-input{width:100%;padding:8px 12px 8px 34px;background:#0f172a99;border:1px solid var(--color-panel-border);border-radius:8px;font-size:12px;color:var(--color-text-main);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.search-input:focus{border-color:#38bdf880;box-shadow:0 0 0 2px #38bdf826}.search-input::placeholder{color:#64748b}.panel-timeframe-row{background:#ffffff05;border:1px solid var(--color-panel-border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.panel-timeframe-header{display:flex;justify-content:space-between;align-items:center}.panel-timeframe-label{font-size:11px;font-weight:700;color:var(--color-text-muted);display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.05em}.panel-timeframe-sub{font-size:10px;font-family:var(--font-mono);color:#38bdf8;font-weight:600}.panel-select-wrapper{position:relative;width:100%}.panel-timeframe-dropdown{width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#0f172ab3;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:7px 28px 7px 10px;font-size:11.5px;font-weight:600;color:#f1f5f9;cursor:pointer;outline:none;transition:border-color .2s ease}.panel-timeframe-dropdown:focus{border-color:#38bdf8}.panel-timeframe-dropdown option{background:#0f172a;color:#f1f5f9}.select-chevron-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--color-text-muted);pointer-events:none}.layers-list{display:flex;flex-direction:column;gap:8px}.layer-card{background:#ffffff05;border:1px solid var(--color-panel-border);border-radius:12px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;transition:background .2s ease,border-color .2s ease;-webkit-user-select:none;user-select:none;cursor:pointer}.layer-card:hover{background:#ffffff0a;border-color:#ffffff1f}.layer-info{display:flex;align-items:center;gap:12px}.layer-icon-badge{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.badge-sirens{background:#ef444426;color:var(--color-sirens);border:1px solid rgba(239,68,68,.3)}.badge-roadworks{background:#f9731626;color:var(--color-roadworks);border:1px solid rgba(249,115,22,.3)}.badge-events{background:#a855f726;color:var(--color-events);border:1px solid rgba(168,85,247,.3)}.badge-environment{background:#10b98126;color:var(--color-environment);border:1px solid rgba(16,185,129,.3)}.layer-meta{display:flex;flex-direction:column;gap:2px}.layer-title-row{display:flex;align-items:center;gap:6px}.layer-name{font-size:13px;font-weight:700;color:var(--color-text-main)}.layer-count-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:1px 6px;border-radius:9999px;background:#ffffff14;color:#e2e8f0}.layer-desc{font-size:11px;color:var(--color-text-muted);line-height:1.3}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background-color:#ffffff1f;border:1px solid var(--color-panel-border);transition:.25s cubic-bezier(.4,0,.2,1);border-radius:9999px}.slider:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#94a3b8;transition:.25s cubic-bezier(.4,0,.2,1);border-radius:50%}input:checked+.slider.slider-sirens{background-color:#ef44444d;border-color:var(--color-sirens)}input:checked+.slider.slider-sirens:before{background-color:var(--color-sirens);box-shadow:0 0 10px var(--color-sirens-glow);transform:translate(18px)}input:checked+.slider.slider-roadworks{background-color:#f973164d;border-color:var(--color-roadworks)}input:checked+.slider.slider-roadworks:before{background-color:var(--color-roadworks);box-shadow:0 0 10px var(--color-roadworks-glow);transform:translate(18px)}input:checked+.slider.slider-events{background-color:#a855f74d;border-color:var(--color-events)}input:checked+.slider.slider-events:before{background-color:var(--color-events);box-shadow:0 0 10px var(--color-events-glow);transform:translate(18px)}input:checked+.slider.slider-environment{background-color:#10b9814d;border-color:var(--color-environment)}input:checked+.slider.slider-environment:before{background-color:var(--color-environment);box-shadow:0 0 10px var(--color-environment-glow);transform:translate(18px)}.layer-card.primary-crime-card{background:#ef444417;border:1px solid rgba(239,68,68,.35);box-shadow:0 4px 18px #ef44441f;padding:8px 10px}.layer-card.primary-crime-card .layer-icon-badge{width:28px;height:28px;font-size:13px;border-radius:8px}.layer-card.primary-crime-card .layer-name{font-size:12.5px}.layer-card.primary-crime-card .layer-desc{font-size:10.5px;line-height:1.25}.layer-card.primary-crime-card:hover{background:#ef444426;border-color:#ef44448c}.primary-tag-pill{font-size:9px;font-weight:800;letter-spacing:.06em;background:#ef444438;color:#fca5a5;border:1px solid rgba(239,68,68,.45);border-radius:4px;padding:1px 5px}.crime-filters-bar{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:4px 0 8px;width:100%}.crime-filter-btn{white-space:nowrap;font-size:11px;font-weight:600;padding:4px 9px;border-radius:9999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#94a3b8;cursor:pointer;transition:all .15s ease;flex-shrink:0}.crime-filter-btn:hover{background:#ffffff1a;color:#f1f5f9}.crime-filter-btn.active{background:#ef444447;border-color:#ef4444;color:#fee2e2;box-shadow:0 0 10px #ef44444d}.bonus-layers-container{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.1)}.bonus-layers-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;color:#94a3b8;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;padding:4px 2px 8px;transition:color .15s ease}.bonus-layers-toggle:hover{color:#38bdf8}.bonus-badge{font-size:9px;padding:2px 6px;border-radius:4px;background:#ffffff0f;color:#64748b;font-weight:600}.bonus-layers-list{display:flex;flex-direction:column;gap:8px;transition:all .2s ease}.bonus-layers-list.collapsed{display:none}.company-card{background:#0f172ab3;border:1px solid rgba(56,189,248,.25);border-radius:12px;padding:14px 16px;margin:12px 0 16px;display:flex;flex-direction:column;gap:6px}.company-name{font-size:15px;font-weight:800;color:#38bdf8;letter-spacing:-.01em}.company-detail{font-size:12px;color:#cbd5e1;line-height:1.45}.company-detail strong{color:#f1f5f9}.colophon-bar{padding:7px 18px 9px;background:#00000073;border-top:1px solid rgba(255,255,255,.03);font-size:10px;color:#64748b;text-align:center;line-height:1.4}.colophon-bar span{display:inline-block}.colophon-bar strong{color:#94a3b8;font-weight:600}.panel-footer{padding:10px 18px;border-top:1px solid var(--color-panel-border);background:#00000040;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--color-text-muted)}.footer-stat{display:flex;align-items:center;gap:6px}.footer-stat strong{color:var(--color-text-main);font-family:var(--font-mono)}.panel-action-btn{background:none;border:none;color:#38bdf8;font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;transition:background .2s ease}.panel-action-btn:hover{background:#38bdf81a}.compliance-links-row{padding:8px 18px 10px;border-top:1px solid rgba(255,255,255,.04);background:#00000059;display:flex;align-items:center;justify-content:space-around;font-size:10px;color:var(--color-text-muted)}.compliance-link{color:#94a3b8;text-decoration:none;cursor:pointer;transition:color .15s ease}.compliance-link:hover{color:#38bdf8}.custom-map-pin{display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:transform .2s ease}.custom-map-pin:hover{transform:scale(1.25) translateY(-4px);z-index:9999!important}.pin-body{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0f172a;box-shadow:0 4px 14px #000000b3;position:relative;z-index:2;border-width:2px;border-style:solid}.pin-body i{font-size:14px}.pin-pulse{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;opacity:.5;z-index:1;animation:markerPulse 2.2s infinite ease-out}@keyframes markerPulse{0%{transform:scale(.85);opacity:.8}70%,to{transform:scale(1.6);opacity:0}}.marker-cluster{background-clip:padding-box;border-radius:50%}.marker-cluster-sirens{background-color:#ef444440!important}.marker-cluster-sirens div{background-color:#ef4444d9!important;color:#fff!important;font-family:var(--font-mono);font-weight:700}.marker-cluster-roadworks{background-color:#f9731640!important}.marker-cluster-roadworks div{background-color:#f97316d9!important;color:#fff!important;font-family:var(--font-mono);font-weight:700}.marker-cluster-events{background-color:#a855f740!important}.marker-cluster-events div{background-color:#a855f7d9!important;color:#fff!important;font-family:var(--font-mono);font-weight:700}.marker-cluster-environment{background-color:#10b98140!important}.marker-cluster-environment div{background-color:#10b981d9!important;color:#fff!important;font-family:var(--font-mono);font-weight:700}.leaflet-popup-content-wrapper{background:#0d1321f2!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;border:1px solid var(--color-panel-border)!important;border-radius:14px!important;box-shadow:0 16px 40px #000000bf!important;padding:0!important;overflow:hidden}.leaflet-popup-content{margin:0!important;line-height:1.4!important;width:290px!important;color:var(--color-text-main)!important}.leaflet-popup-tip-container{display:none!important}.leaflet-popup-close-button{color:#94a3b8!important;padding:8px 10px!important;font-size:16px!important}.leaflet-popup-close-button:hover{color:#f1f5f9!important}.popup-box{padding:16px 18px;display:flex;flex-direction:column;gap:10px}.popup-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-right:18px}.popup-badge{font-size:10px;font-weight:700;text-transform:uppercase;padding:3px 8px;border-radius:6px;display:inline-flex;align-items:center;gap:5px}.popup-timestamp{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted)}.popup-title{font-size:14px;font-weight:700;color:var(--color-text-main);line-height:1.3}.popup-desc{font-size:12px;color:#cbd5e1;line-height:1.5}.popup-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid var(--color-panel-border);font-size:10px;color:var(--color-text-muted);font-family:var(--font-mono)}.popup-coords{display:flex;align-items:center;gap:4px}.feed-drawer{position:absolute;top:16px;right:16px;z-index:1000;width:340px;max-height:calc(100vh - 32px);background:var(--color-panel);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--color-panel-border);border-radius:16px;box-shadow:0 20px 48px #000000a6;display:flex;flex-direction:column;overflow:hidden;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .2s ease}.feed-drawer.hidden{opacity:0;pointer-events:none;transform:translate(30px)}.feed-header{padding:14px 16px;border-bottom:1px solid var(--color-panel-border);display:flex;align-items:center;justify-content:space-between}.feed-title{font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px}.close-feed-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:14px;padding:4px;border-radius:6px}.close-feed-btn:hover{color:#fff}.feed-list{overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px;max-height:520px}.feed-item{background:#ffffff08;border:1px solid var(--color-panel-border);border-radius:10px;padding:10px 12px;cursor:pointer;transition:all .2s ease}.feed-item:hover{background:#ffffff12;border-color:#ffffff29;transform:translateY(-1px)}.feed-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.feed-item-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase}.feed-item-time{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted)}.feed-item-title{font-size:12px;font-weight:600;color:var(--color-text-main);margin-bottom:3px}.feed-item-desc{font-size:11px;color:var(--color-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#04070ebf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s ease}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-window{background:#0d1321;border:1px solid var(--color-panel-border);border-radius:18px;width:100%;max-width:640px;max-height:85vh;box-shadow:0 24px 60px #000c,0 0 0 1px #ffffff14;display:flex;flex-direction:column;overflow:hidden;transform:translateY(20px) scale(.98);transition:transform .25s cubic-bezier(.16,1,.3,1)}.modal-overlay.open .modal-window{transform:translateY(0) scale(1)}.modal-header{padding:18px 22px;border-bottom:1px solid var(--color-panel-border);display:flex;align-items:center;justify-content:space-between}.modal-title-group{display:flex;align-items:center;gap:10px}.modal-title-group i{color:#38bdf8;font-size:18px}.modal-title-group h2{font-size:17px;font-weight:700;color:var(--color-text-main)}.modal-close-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:16px;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.modal-close-btn:hover{background:#ffffff14;color:#fff}.modal-body{padding:22px;overflow-y:auto;font-size:13px;line-height:1.65;color:#cbd5e1;display:flex;flex-direction:column;gap:16px}.modal-body h3{font-size:14px;font-weight:700;color:#fff;margin-top:6px}.modal-body ul{padding-left:20px}.modal-body li{margin-bottom:6px}.modal-body .highlight-box{background:#38bdf814;border:1px solid rgba(56,189,248,.2);border-radius:10px;padding:12px 14px;color:#bae6fd}.contact-form{display:flex;flex-direction:column;gap:12px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--color-text-muted)}.form-control{background:#0f172ab3;border:1px solid var(--color-panel-border);border-radius:8px;padding:9px 12px;color:#f1f5f9;font-family:inherit;font-size:12px;outline:none;transition:border-color .2s ease}.form-control:focus{border-color:#38bdf8}.form-submit-btn{background:#38bdf8;color:#090d16;border:none;border-radius:8px;padding:10px 16px;font-weight:700;font-size:12px;cursor:pointer;transition:background .15s ease;margin-top:6px}.form-submit-btn:hover{background:#7dd3fc}.cookie-banner{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:2500;width:calc(100% - 40px);max-width:680px;background:#0d1321f5;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(56,189,248,.3);border-radius:16px;padding:18px 22px;box-shadow:0 20px 60px #000c,0 0 25px #38bdf826;display:flex;flex-direction:column;gap:14px;opacity:1;transition:all .3s cubic-bezier(.16,1,.3,1)}.cookie-banner.hidden{opacity:0;pointer-events:none;transform:translate(-50%) translateY(30px)}.cookie-header{display:flex;align-items:center;justify-content:space-between}.cookie-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;color:#f1f5f9}.cookie-desc{font-size:12px;line-height:1.55;color:#94a3b8}.cookie-desc a{color:#38bdf8;text-decoration:underline;cursor:pointer}.cookie-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.cookie-btn{padding:8px 16px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease}.cookie-btn-primary{background:#38bdf8;color:#090d16;border:none}.cookie-btn-primary:hover{background:#7dd3fc}.cookie-btn-secondary{background:#ffffff0f;border:1px solid var(--color-panel-border);color:#f1f5f9}.cookie-btn-secondary:hover{background:#ffffff1f}.cookie-btn-link{background:none;border:none;color:#94a3b8;text-decoration:underline;cursor:pointer;padding:8px}.cookie-btn-link:hover{color:#f1f5f9}.mobile-toggle-btn{display:none;position:absolute;top:16px;left:16px;z-index:1001;width:44px;height:44px;background:#0d1321e6;border:1px solid var(--color-panel-border);border-radius:12px;color:var(--color-text-main);font-size:18px;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 24px #00000080}@media(max-width:768px){.mobile-toggle-btn{display:flex}.top-nav-bar{top:16px;right:16px}.control-panel{top:auto;bottom:0;left:0;width:100vw;max-width:100vw;max-height:78vh;border-radius:20px 20px 0 0;border-left:none;border-right:none;border-bottom:none;transform:translateY(calc(100% - 62px))}.control-panel.mobile-expanded{transform:translateY(0)}.panel-header{cursor:pointer}.feed-drawer{top:70px;right:10px;left:10px;width:auto;max-height:calc(100vh - 140px)}.cookie-banner{bottom:10px;width:calc(100% - 20px);padding:14px 16px}}.live-pipeline-pill{background:#0d1321f0!important;border:1px solid rgba(16,185,129,.6)!important;color:#10b981!important;box-shadow:0 4px 18px #00000059!important}.live-pipeline-pill:hover{background:#161e31fa!important;border-color:#10b981e6!important;color:#34d399!important}.pulse-emerald{background:#10b981;box-shadow:0 0 10px #10b981}.sync-feeds-btn{background:#0d1321f0!important;border:1px solid rgba(56,189,248,.6)!important;color:#38bdf8!important;box-shadow:0 4px 18px #00000059!important}.sync-feeds-btn:hover{background:#161e31fa!important;border-color:#38bdf8e6!important;color:#7dd3fc!important}body.map-style-light #map{background:#f8fafc}body.map-style-light .radar-overlay{background:transparent;box-shadow:none}body.map-style-light .control-panel{background:#0f172af0;box-shadow:0 24px 60px #0f172a4d,0 0 0 1px #0f172a1f;border:1px solid rgba(255,255,255,.16)}body.map-style-light .nav-glass-btn{background:#0f172af0;border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 24px #0f172a40;color:#f8fafc}body.map-style-light .leaflet-control-zoom a{background-color:#0f172a!important;color:#f8fafc!important;border-color:#fff3!important;box-shadow:0 4px 12px #0f172a4d!important}body.map-style-light .leaflet-control-zoom a:hover{background-color:#1e293b!important;color:#38bdf8!important}body.map-style-light .leaflet-container .leaflet-control-attribution{background:#0f172ae0!important;color:#94a3b8!important;border-radius:4px}body.map-style-light .leaflet-container .leaflet-control-attribution a{color:#38bdf8!important}body.map-style-light .feed-drawer{background:#0f172afa;border-left:1px solid rgba(255,255,255,.15);box-shadow:-10px 0 40px #0f172a66}.future-badge{display:inline-flex;align-items:center;gap:5px;background:#a855f72e;border:1px solid rgba(168,85,247,.5);color:#c084fc;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;font-family:var(--font-mono)}.future-badge.work{background:#f973162e;border-color:#f9731680;color:#fb923c}.rankings-view-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background:#090d16;color:#f1f5f9;overflow-y:auto;display:none;flex-direction:column}.rankings-view-container.active{display:flex}body.map-style-light .rankings-view-container{background:#f1f5f9;color:#0f172a}.rankings-header{position:sticky;top:0;z-index:100;background:#0d1321f5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.1);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}body.map-style-light .rankings-header{background:#fffffff2;border-bottom:1px solid rgba(15,23,42,.1)}.rankings-title-group h1{font-size:20px;font-weight:800;display:flex;align-items:center;gap:10px;letter-spacing:-.02em}.rankings-title-group p{font-size:12px;color:#94a3b8;margin-top:3px}body.map-style-light .rankings-title-group p{color:#64748b}.rankings-nav-actions{display:flex;align-items:center;gap:10px}.rankings-back-btn{background:#38bdf8;color:#090d16;border:none;border-radius:10px;padding:9px 18px;font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s ease;box-shadow:0 4px 14px #38bdf859}.rankings-back-btn:hover{background:#7dd3fc;transform:translateY(-1px)}.rankings-content{max-width:1300px;width:100%;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:24px}.rankings-category-bar{display:flex;gap:10px;flex-wrap:wrap}.rankings-cat-btn{padding:10px 18px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;background:#1e293bb3;border:1px solid rgba(255,255,255,.08);color:#cbd5e1;display:inline-flex;align-items:center;gap:8px;transition:all .15s ease}body.map-style-light .rankings-cat-btn{background:#e2e8f0;border-color:#cbd5e1;color:#334155}.rankings-cat-btn.active{background:#38bdf8;color:#090d16;border-color:#38bdf8;box-shadow:0 4px 16px #38bdf840}.rankings-filters-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;background:#0f172a99;border:1px solid rgba(255,255,255,.08);padding:14px 18px;border-radius:12px}body.map-style-light .rankings-filters-bar{background:#fff;border-color:#0f172a1a;box-shadow:0 4px 12px #0000000a}.rank-filter-group{display:flex;flex-direction:column;gap:4px}.rank-filter-group label{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}body.map-style-light .rank-filter-group label{color:#64748b}.rank-select,.rank-search-input{background:#0d1321e6;border:1px solid rgba(255,255,255,.15);color:#f1f5f9;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:600;min-width:140px}body.map-style-light .rank-select,body.map-style-light .rank-search-input{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}.rankings-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.rank-kpi-card{background:#0f172ab3;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:16px 20px;display:flex;flex-direction:column;gap:6px}body.map-style-light .rank-kpi-card{background:#fff;border-color:#e2e8f0;box-shadow:0 4px 12px #0000000a}.rank-kpi-label{font-size:12px;color:#94a3b8;font-weight:600}body.map-style-light .rank-kpi-label{color:#64748b}.rank-kpi-val{font-size:24px;font-weight:800;color:#38bdf8;font-family:var(--font-mono)}.rank-kpi-sub{font-size:11px;color:#64748b}.rankings-table-card{background:#0f172ab3;border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden}body.map-style-light .rankings-table-card{background:#fff;border-color:#e2e8f0;box-shadow:0 4px 12px #0000000a}.rank-table-header{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center}body.map-style-light .rank-table-header{border-bottom-color:#e2e8f0}.rank-table-header h2{font-size:16px;font-weight:800}.rankings-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.rankings-table th{padding:12px 18px;background:#1e293b80;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;border-bottom:1px solid rgba(255,255,255,.08)}body.map-style-light .rankings-table th{background:#f8fafc;color:#64748b;border-bottom-color:#e2e8f0}.rankings-table td{padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.05)}body.map-style-light .rankings-table td{border-bottom-color:#f1f5f9}.rankings-table tr:hover td{background:#38bdf80a}body.map-style-light .rankings-table tr:hover td{background:#f8fafc}.rank-city-cell{font-weight:700;display:flex;align-items:center;gap:8px}.rank-badge-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:800;background:#38bdf826;color:#38bdf8;font-family:var(--font-mono)}.rank-btn-map{background:#38bdf826;border:1px solid rgba(56,189,248,.4);color:#38bdf8;padding:6px 12px;border-radius:8px;font-size:11px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .15s ease}.rank-btn-map:hover{background:#38bdf8;color:#090d16}.sync-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%) translateY(0);background:#0f172af2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(56,189,248,.4);color:var(--color-text-main);padding:10px 22px;border-radius:9999px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:10px;box-shadow:0 12px 32px #0009,0 0 20px #38bdf833;z-index:2000;pointer-events:none;transition:all .3s cubic-bezier(.16,1,.3,1)}.sync-toast.hidden{opacity:0;transform:translate(-50%) translateY(16px);visibility:hidden}.pipeline-overview-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-radius:12px;background:#1e293b99;border:1px solid var(--color-panel-border);margin-bottom:20px}.pipeline-authority-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.pipeline-authority-card{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#0f172a80;border:1px solid rgba(255,255,255,.08);border-radius:10px;transition:border-color .2s}.pipeline-authority-card:hover{border-color:#38bdf84d}.auth-title-group{display:flex;flex-direction:column;gap:4px}.auth-name{font-weight:700;font-size:14px;color:var(--color-text-main);display:flex;align-items:center;gap:8px}.auth-endpoint{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}.auth-badges{display:flex;align-items:center;gap:8px}.auth-status-pill{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}.auth-count-pill{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;background:#38bdf81f;color:#38bdf8;border:1px solid rgba(56,189,248,.25)}.pipeline-action-row{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}
