/* ===== style.css ===== */
html,body,#app{height:100%;margin:0;background:#0a0f0c;color:#e7e3d3;font-family:Inter,Arial,sans-serif;overflow:hidden}#map{position:absolute;inset:0}.leaflet-tile-pane{filter:brightness(1.55) contrast(.9) saturate(.82)}#topbar{position:absolute;top:0;left:0;right:0;z-index:850;display:flex;justify-content:space-between;gap:16px;padding:16px 22px;background:linear-gradient(180deg,rgba(4,7,5,.98),rgba(4,7,5,.68),transparent);pointer-events:none}#topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px}.logo-mark{width:46px;height:46px;object-fit:cover;border-radius:10px;box-shadow:0 0 18px rgba(226,102,27,.25);border:1px solid rgba(226,102,27,.35);background:#0a0f0c}h1{margin:0;font-family:Impact,Arial Black,sans-serif;letter-spacing:2px;text-transform:uppercase;font-size:24px;line-height:1}#topbar p{margin:4px 0 0;color:#95a399;font-size:12px}#stats{display:flex;gap:8px;align-items:stretch}.stat{border:1px solid #24352c;background:rgba(10,15,12,.88);padding:8px 12px;min-width:84px;text-align:right;display:flex;flex-direction:column;justify-content:center}.stat b{display:block;color:#e2661b;font-size:20px;line-height:1.05}.stat span{font-size:9px;color:#7c8a80;text-transform:uppercase;letter-spacing:.7px}.impact-stat{min-width:92px;text-align:center;align-items:center}.impact-stat span{margin-top:5px}.facilities-stat{text-align:right}#drawer{position:absolute;left:18px;top:92px;bottom:18px;width:390px;z-index:830;background:rgba(8,12,10,.96);border:1px solid #24352c;display:flex;flex-direction:column;box-shadow:0 18px 40px rgba(0,0,0,.28)}#search{margin:12px;padding:10px 11px;background:#090d0a;border:1px solid #24352c;color:#e7e3d3;border-radius:0}.filters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 12px 10px;max-height:146px;overflow:auto}.filters button{background:#111a14;border:1px solid #24352c;color:#7c8a80;padding:8px 6px;font-size:10px;text-transform:uppercase;cursor:pointer}.filters button.active{color:#e7e3d3;border-color:#e2661b;background:#151f18}#methodology{margin:0 12px 10px;border:1px solid #24352c;background:rgba(15,22,18,.8);padding:9px 10px;font-size:11px;line-height:1.45;color:#8d9a91}#list{overflow:auto;padding:0 10px 12px}.card{border:1px solid #24352c;background:rgba(13,20,15,.8);padding:10px;margin-bottom:8px;cursor:pointer;transition:.15s ease}.card:hover{border-color:#e2661b;transform:translateY(-1px)}.card h3{margin:0;font-size:14px;text-transform:uppercase;line-height:1.25}.card p{margin:6px 0 0;color:#7c8a80;font-size:11px;line-height:1.4}.chip{display:inline-block;font-size:9px;letter-spacing:.5px;text-transform:uppercase;border:1px solid #2d4136;color:#9aa69e;background:#111a14;padding:3px 5px;margin:6px 4px 0 0}.chip.high{border-color:#e2661b;color:#f1c08b}.chip.refinery{border-color:#e2661b}.chip.terminal{border-color:#4b8cc9;color:#9fc6e6}.chip.gas{border-color:#8b70d6;color:#c0b4ee}.chip.petro{border-color:#c9a227;color:#e8d88e}.marker{border-radius:50%;border:1.5px solid #f4efe0;box-shadow:0 0 18px rgba(226,102,27,.45)}.m-refinery{background:#e2661b}.m-terminal{background:#4b8cc9}.m-gas{background:#8b70d6}.m-petro{background:#c9a227}.m-depot{background:#d1453a}.m-lead{background:#76867c}#legend{position:absolute;right:12px;bottom:24px;z-index:820;background:rgba(8,12,10,.90);border:1px solid #24352c;padding:10px;font-size:11px;color:#9aa69e}#legend div{margin:4px 0}.swatch{display:inline-block;width:18px;height:3px;margin-right:6px;vertical-align:middle}#detail{position:absolute;top:0;right:0;bottom:0;width:520px;z-index:900;transform:translateX(100%);transition:transform .24s ease;background:rgba(8,12,10,.985);border-left:1px solid #24352c;overflow:auto;box-shadow:-16px 0 30px rgba(0,0,0,.35)}#detail.open{transform:translateX(0)}#close{position:fixed;right:16px;top:16px;z-index:5000;min-width:88px;min-height:44px;background:rgba(8,12,10,.96);border:1px solid #e2661b;color:#e7e3d3;font-weight:700;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(226,102,27,.35)}#detail:not(.open) #close{display:none}#detailInner{padding:76px 22px 24px}#detail h2{margin:0 0 8px;text-transform:uppercase;font-size:28px;line-height:1.1}.meta{color:#7c8a80;font-size:12px;line-height:1.5}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.metric{border-top:1px solid #24352c;border-bottom:1px solid #24352c;padding:10px 0}.metric b{display:block;color:#e2661b;font-size:22px;line-height:1.05}.metric span{font-size:9px;color:#7c8a80;text-transform:uppercase;letter-spacing:.7px}.section{font-size:12px;color:#7c8a80;text-transform:uppercase;letter-spacing:1px;margin:18px 0 8px}.event{border:1px solid #24352c;background:rgba(13,20,15,.72);padding:12px;margin:10px 0}.event h3{margin:0 0 4px;font-size:15px}.event p{font-size:12px;line-height:1.5;margin:8px 0}.event .impact{border-left:2px solid #e2661b;padding-left:8px;color:#d7c8aa}.sources a,.source-lead,.geo{display:block;color:#c9a227;text-decoration:none;border:1px solid rgba(201,162,39,.35);padding:8px;margin-top:7px;font-size:12px;background:rgba(9,13,10,.4)}.source-lead{color:#9aa69e;border-color:#24352c}.role{float:right;color:#7c8a80;text-transform:uppercase;font-size:9px;margin-left:8px}.needs{margin:8px 0 0;padding-left:18px;color:#9aa69e;font-size:12px}.needs li{margin:3px 0}.thumb{display:block;position:relative;aspect-ratio:16/9;background:#101611;border:1px solid #35473f;margin-bottom:10px;overflow:hidden;text-decoration:none}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb:after{display:none}.thumb-badge{position:absolute;left:12px;bottom:12px;z-index:2;font-size:11px;letter-spacing:.7px;text-transform:uppercase;color:#f4efe0;background:rgba(0,0,0,.52);padding:6px 8px;border:1px solid rgba(255,255,255,.18)}@media(max-width:900px){#topbar{display:block;padding:10px 12px}.brand{gap:10px}.logo-mark{width:40px;height:40px}h1{font-size:18px}#stats{margin-top:8px;display:grid;grid-template-columns:repeat(5,1fr)}.stat{padding:6px;min-width:0}.stat b{font-size:15px}.stat span{font-size:7px}#drawer{top:auto;left:0;right:0;bottom:0;width:auto;height:39vh;border-left:0;border-right:0}#map{bottom:39vh}#detail{width:100%;z-index:2000}#close{top:calc(env(safe-area-inset-top) + 12px);right:12px;min-width:92px;min-height:48px}#detailInner{padding-top:76px}.leaflet-control-zoom{display:none}.filters{grid-template-columns:repeat(4,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}#legend{display:none}}
.leaflet-countryBorders-pane,.leaflet-countryBorders-pane *{pointer-events:none!important}.leaflet-marker-pane{z-index:650!important}.leaflet-popup-pane{z-index:700!important}
.chip.depot{border-color:#d1453a;color:#eaa19a}.chip.power{border-color:#3f9edb;color:#9cd1f1}.chip.impact{border-color:#9aa69e;color:#d8ddd8}.m-power{background:#3f9edb}.m-impact{background:#9aa69e}.m-lead{background:#76867c}.m-terminal{background:#4b8cc9}.m-depot{background:#d1453a}.m-gas{background:#8b70d6}.m-petro{background:#c9a227}.m-refinery{background:#e2661b}
.badge-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:7px 0}.conf,.score{display:inline-block;border:1px solid #2d4136;background:#111a14;color:#9aa69e;text-transform:uppercase;letter-spacing:.6px;font-size:10px;padding:4px 7px}.conf.confirmed{border-color:#6bbf72;color:#bce8c1}.conf.strong{border-color:#c9a227;color:#eadc9a}.conf.monitoring{border-color:#e2661b;color:#f1c08b}.conf.reported{border-color:#76867c;color:#cbd2cd}.score{border-color:#24352c;color:#7c8a80}
@media(max-width:900px){.filters{grid-template-columns:repeat(4,1fr);max-height:98px}.filters button{font-size:9px;padding:7px 4px}.brand h1{font-size:16px}.flag-img{margin:0 2px}}

/* v10.1 UI fixes */
body.detail-open #legend{display:none!important}
.thumb.fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#111a14,#0a0f0c 55%,#20150f)}
.thumb.fallback img{object-fit:cover;opacity:.9;filter:saturate(.9) contrast(1.05)}
.thumb .thumb-title{position:absolute;left:12px;top:12px;right:12px;z-index:2;font-size:13px;line-height:1.25;text-transform:uppercase;color:#f4efe0;text-shadow:0 2px 8px rgba(0,0,0,.8);font-weight:700;letter-spacing:.7px}
@media(min-width:901px){body.detail-open .leaflet-control-container .leaflet-bottom.leaflet-right{display:none!important}}

/* v10.2 */
.ship-marker{font-size:28px;filter:drop-shadow(0 0 10px #ff6b22);background:rgba(8,12,10,.72);border:1px solid rgba(226,102,27,.75);border-radius:12px;padding:2px 5px}.chip.maritime{border-color:#4b8cc9;color:#b7d8f2}.m-maritime{background:#4b8cc9}


/* v10.3 cleanup */
.metrics.metrics3{grid-template-columns:repeat(3,1fr)}
.thumb:after,.thumb-title,.thumb-badge{display:none!important}
.thumb img{filter:none!important;opacity:1!important}
.ship-marker{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;font-size:16px!important;line-height:1!important;letter-spacing:0!important;padding:2px 5px!important;border-radius:8px!important;min-width:28px;min-height:18px;}
.score,.needs{display:none!important}
#methodology{font-size:10.5px;color:#87938c}
@media(max-width:900px){.metrics.metrics3{grid-template-columns:repeat(3,1fr)}.ship-marker{font-size:15px!important}}

/* v10.4 mobile bottom panel controls + campaign counter */
#drawerClose{display:none;position:absolute;right:10px;top:8px;z-index:20;width:36px;height:32px;border:1px solid #e2661b;background:rgba(8,12,10,.96);color:#e7e3d3;font-size:18px;font-weight:800;line-height:1;cursor:pointer}
#drawerOpen{display:none;position:absolute;left:12px;bottom:14px;z-index:1200;border:1px solid #e2661b;background:rgba(8,12,10,.94);color:#e7e3d3;padding:9px 12px;text-transform:uppercase;letter-spacing:.8px;font-size:11px}
.campaign-panel{border:1px solid #24352c;background:rgba(13,20,15,.72);padding:14px;margin-top:10px}.campaign-title{font-size:12px;color:#7c8a80;text-transform:uppercase;letter-spacing:1px}.campaign-number{font-size:28px;line-height:1.15;color:#e2661b;font-weight:900;margin:5px 0 10px}.campaign-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}.campaign-grid div{border:1px solid #24352c;padding:10px;background:rgba(9,13,10,.45)}.campaign-grid b{display:block;color:#e7e3d3;font-size:22px}.campaign-grid span{font-size:9px;color:#7c8a80;text-transform:uppercase;letter-spacing:.7px}
#detail.open #close{display:block;position:sticky;float:right;top:12px;margin:12px 12px 0 0;border-color:#e2661b;z-index:5001}
@media(max-width:900px){#drawerClose{display:block}#drawer{transition:transform .22s ease;padding-top:34px}#drawer.mobile-collapsed{transform:translateY(calc(100% - 42px))}#drawer.mobile-collapsed #search,#drawer.mobile-collapsed .filters,#drawer.mobile-collapsed #methodology,#drawer.mobile-collapsed #list{display:none}#drawerOpen.show{display:block}#detail{top:auto;bottom:0;height:72vh;width:100%;transform:translateY(100%);border-left:0;border-top:1px solid #24352c;border-radius:16px 16px 0 0}#detail.open{transform:translateY(0)}#detailInner{padding:22px 18px 24px}#detail.open #close{position:sticky;top:10px;float:right;min-width:44px;width:44px;height:40px;min-height:40px;font-size:0}#detail.open #close:after{content:'✕';font-size:20px}.campaign-number{font-size:23px}}

/* v10.6 public-label + mobile polish */
.detail-nav{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 56px 12px 0;position:sticky;top:12px;z-index:4500;pointer-events:auto}
.detail-nav button{width:38px;height:34px;border:1px solid #e2661b;background:rgba(8,12,10,.96);color:#e7e3d3;font-size:24px;line-height:1;cursor:pointer}
.detail-nav span{border:1px solid #24352c;background:rgba(8,12,10,.88);color:#9aa69e;font-size:11px;letter-spacing:.7px;padding:8px 11px;text-transform:uppercase}
@media(max-width:900px){
  #drawer{height:45vh;padding-top:12px}
  #drawer.mobile-collapsed{transform:translateY(calc(100% - 54px))}
  #drawerClose{top:10px;right:12px;width:44px;height:40px}
  #drawerOpen{bottom:18px;left:14px;font-size:12px;padding:10px 16px}
  #list{padding-bottom:84px}
  #detail{height:74vh;border-radius:14px 14px 0 0}
  #detailInner{padding:16px 16px 86px}
  .detail-nav{margin:0 54px 10px 0;top:8px;justify-content:flex-start}
  .detail-nav button{width:36px;height:34px;font-size:22px}
  .detail-nav span{font-size:10px;padding:8px 9px}
}


/* v10.9 mobile/layout test */
#infoBtn{position:absolute;right:14px;top:12px;z-index:950;width:32px;height:32px;border:1px solid #e2661b;background:rgba(8,12,10,.88);color:#e7e3d3;border-radius:50%;font-weight:900;font-family:Georgia,serif;font-size:18px;line-height:28px;cursor:pointer;pointer-events:auto}
#infoModal{display:none;position:fixed;inset:0;z-index:6000;background:rgba(0,0,0,.55);align-items:center;justify-content:center;padding:18px}
#infoModal.open{display:flex}.info-card{position:relative;max-width:460px;background:rgba(8,12,10,.98);border:1px solid #24352c;box-shadow:0 18px 50px rgba(0,0,0,.45);padding:20px 20px 18px;color:#d7d9d1}.info-card h2{margin:0 0 10px;text-transform:uppercase;letter-spacing:1px;font-size:18px}.info-card p{margin:10px 0;color:#aeb8b0;line-height:1.5;font-size:14px}#infoClose{position:absolute;right:10px;top:10px;width:34px;height:30px;border:1px solid #e2661b;background:#0a0f0c;color:#e7e3d3;font-size:16px;cursor:pointer}
/* Public beta text lives in info modal, not in the facilities list */
#methodology{display:none!important}
@media(max-width:900px),(pointer:coarse){
  html,body,#app{height:100dvh;min-height:100dvh;overflow:hidden!important}
  #map{position:absolute!important;inset:0!important;bottom:0!important;height:auto!important}
  #topbar{padding:10px 12px 8px!important;z-index:860!important}
  #topbar .brand{padding-right:42px}
  #stats{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px!important;margin-top:8px!important}
  .stat{min-width:0!important;padding:8px 5px!important}.stat b{font-size:18px!important}.stat span{font-size:8px!important}
  #drawer{left:0!important;right:0!important;top:auto!important;bottom:0!important;width:auto!important;height:min(58dvh,520px)!important;max-height:calc(100dvh - 148px)!important;z-index:1100!important;border-left:0!important;border-right:0!important;border-bottom:0!important;border-top:1px solid #24352c!important;background:rgba(8,12,10,.975)!important;transform:none!important;transition:height .2s ease,transform .2s ease!important;padding:56px 0 calc(env(safe-area-inset-bottom) + 12px)!important;overflow:hidden!important;box-shadow:0 -16px 36px rgba(0,0,0,.45)!important}
  #drawer.mobile-collapsed{height:66px!important;max-height:66px!important;padding:0!important;overflow:hidden!important;cursor:pointer!important}
  #drawer.mobile-collapsed::before{content:'FACILITIES';position:absolute;left:24px;top:14px;border:1px solid #e2661b;color:#e7e3d3;background:rgba(8,12,10,.96);padding:11px 18px;text-transform:uppercase;letter-spacing:1.6px;font-size:15px;line-height:1}
  #drawer.mobile-collapsed #drawerClose{display:none!important}
  #drawer.mobile-collapsed #search,#drawer.mobile-collapsed .filters,#drawer.mobile-collapsed #list,#drawer.mobile-collapsed #methodology{display:none!important}
  #drawerClose{display:block!important;position:absolute!important;right:14px!important;top:10px!important;width:44px!important;height:42px!important;border:1px solid #e2661b!important;background:rgba(8,12,10,.96)!important;color:#e7e3d3!important;font-size:20px!important;z-index:25!important}
  #drawerOpen{display:none!important}
  #search{margin:0 14px 10px!important;padding:13px 12px!important;font-size:16px!important}
  .filters{padding:0 14px 8px!important;max-height:80px!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;overflow:auto!important}
  .filters button{font-size:9px!important;padding:8px 4px!important;white-space:nowrap!important}
  #list{padding:0 14px calc(env(safe-area-inset-bottom) + 110px)!important;overflow:auto!important}
  .card{padding:14px!important;margin-bottom:10px!important}.card h3{font-size:18px!important}.card p{font-size:14px!important}.chip{font-size:11px!important;padding:6px 8px!important}
  #detail{top:auto!important;bottom:0!important;height:min(78dvh,620px)!important;width:100%!important;max-width:none!important;transform:translateY(100%)!important;border-left:0!important;border-top:1px solid #24352c!important;border-radius:14px 14px 0 0!important;z-index:2200!important}.detail.open,#detail.open{transform:translateY(0)!important}
  #detailInner{padding:16px 16px calc(env(safe-area-inset-bottom) + 96px)!important}
  #detail.open #close{position:sticky!important;top:8px!important;float:right!important;width:44px!important;min-width:44px!important;height:40px!important;min-height:40px!important;font-size:0!important}
  #detail.open #close:after{content:'✕';font-size:20px!important}
  #infoBtn{right:10px;top:10px;width:30px;height:30px;font-size:17px;line-height:26px}
}
@media(max-height:520px) and (orientation:landscape){
  #topbar{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:6px 8px!important;background:linear-gradient(180deg,rgba(4,7,5,.96),rgba(4,7,5,.44),transparent)!important}
  .logo-mark{width:34px!important;height:34px!important}.brand{gap:8px!important;min-width:0!important;flex:1 1 auto!important}.brand>div{min-width:0!important}h1{font-size:18px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;letter-spacing:2px!important}#topbar p{font-size:12px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:72vw!important}
  #stats{display:grid!important;grid-template-columns:78px repeat(4,110px)!important;gap:6px!important;margin-top:0!important;flex:0 0 auto!important}.stat{height:42px!important;padding:5px 8px!important}.stat b{font-size:18px!important}.stat span{font-size:8px!important}.impact-stat{min-width:0!important}
  #drawer{height:min(55dvh,260px)!important;max-height:55dvh!important;padding-top:48px!important}#drawer.mobile-collapsed{height:54px!important;max-height:54px!important}#drawer.mobile-collapsed::before{top:9px;padding:10px 16px;font-size:13px}#drawerClose{top:7px!important;height:38px!important}#search{padding:9px 10px!important;font-size:14px!important}.filters{max-height:50px!important}.card h3{font-size:15px!important}.card p{font-size:12px!important}.chip{font-size:9px!important;padding:4px 6px!important}
  #detail{height:82dvh!important}.leaflet-control-container{display:none!important}
}

/* v10.9.1 mobile cleanup */
@media(max-width:900px),(pointer:coarse){
  /* Search was unreliable on mobile; filters are the public mobile navigation. */
  #search{display:none!important}
  #drawer{padding-top:58px!important}
  .filters{display:flex!important;gap:8px!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;padding:0 14px 12px!important;max-height:none!important;min-height:46px!important;scrollbar-width:none!important}
  .filters::-webkit-scrollbar{display:none!important}
  .filters button{flex:0 0 auto!important;min-width:82px!important;height:38px!important;font-size:10px!important;color:#b7c0b8!important;background:#101913!important;border-color:#2b4236!important;letter-spacing:.7px!important}
  .filters button.active{color:#f4efe0!important;border-color:#e2661b!important;background:#151f18!important}
  #list{padding-top:0!important}
  .sources a .role,.sources a .meta{display:none!important}
}
.sources a .meta{display:none!important}
.sources a .role{display:none!important}


/* v10.9.2 desktop public beta label */
@media(min-width:901px) and (hover:hover){
  #infoBtn{
    left:50%!important;
    right:auto!important;
    top:14px!important;
    transform:translateX(-50%)!important;
    width:auto!important;
    height:auto!important;
    min-height:30px!important;
    padding:7px 13px!important;
    border-radius:999px!important;
    font-family:inherit!important;
    font-size:11px!important;
    line-height:1!important;
    letter-spacing:1.2px!important;
    text-transform:uppercase!important;
  }
}
@media(max-width:900px),(pointer:coarse){
  #infoBtn{font-size:0!important;border-radius:50%!important;padding:0!important;}
}


/* v10.9.3 desktop filter cleanup */
@media(min-width:901px) and (hover:hover){
  .filters{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    max-height:none!important;
    overflow:visible!important;
    padding-bottom:12px!important;
  }
  .filters button{white-space:nowrap!important;}
  #list{scrollbar-color:#33443a #08100c;scrollbar-width:thin;}
  #list::-webkit-scrollbar{width:9px;}
  #list::-webkit-scrollbar-track{background:#08100c;}
  #list::-webkit-scrollbar-thumb{background:#33443a;border:2px solid #08100c;border-radius:999px;}
}


/* v10.9.5 campaign and national-impact controls */
#drawerHeader{display:flex;align-items:center;gap:10px;padding:11px 12px 6px;text-transform:uppercase;letter-spacing:1.4px;font-size:12px;color:#e7e3d3;font-weight:800}
.power-campaign-marker{display:inline-flex!important;align-items:center;justify-content:center;width:30px;height:30px;background:rgba(8,12,10,.86);border:1px solid rgba(255,214,71,.95);border-radius:50%;font-size:21px;line-height:1;filter:drop-shadow(0 0 11px rgba(255,214,71,.82));box-shadow:0 0 18px rgba(255,214,71,.35)}
.campaign-card{border-color:rgba(255,214,71,.42)!important;background:linear-gradient(180deg,rgba(22,23,12,.82),rgba(13,20,15,.78))!important}
@media(max-width:900px),(pointer:coarse){
  #drawerHeader{position:absolute!important;left:14px!important;top:10px!important;z-index:30!important;padding:0!important;gap:8px!important;font-size:15px!important;letter-spacing:1.6px!important}
  #impactBtn{width:22px!important;height:22px!important;font-size:13px!important;border-radius:5px!important}
  #drawer.mobile-collapsed::before{display:none!important;content:none!important}
  #drawer.mobile-collapsed #drawerHeader{display:flex!important;top:13px!important;left:16px!important}
  #drawer.mobile-collapsed #drawerHeader span{border:1px solid #e2661b;color:#e7e3d3;background:rgba(8,12,10,.96);padding:11px 18px;text-transform:uppercase;letter-spacing:1.6px;font-size:15px;line-height:1}
  #drawer:not(.mobile-collapsed) #drawerHeader{top:10px!important}
  #drawer{padding-top:62px!important}
  .power-campaign-marker{width:30px;height:30px;font-size:20px}
}

/* v11.0 consolidated multi-strike records */
.event-bullets{margin:9px 0 10px;padding-left:20px;color:#d7d4c9;font-size:12px;line-height:1.5}.event-bullets li{margin:6px 0}

#impactBtn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid #e2661b;background:rgba(8,12,10,.96);color:#f4efe0;border-radius:8px;font-size:16px;line-height:1;cursor:pointer;box-shadow:0 0 10px rgba(226,102,27,.18);margin:0 auto}
#impactBtn:hover{border-color:#f4efe0;transform:translateY(-1px)}
.impact-stat button{margin-top:0}


/* v11.2 preview: campaign controls, compact stats, share action */
#topActions{position:absolute;left:50%;top:14px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;z-index:12}
#topActions #infoBtn{position:static!important;left:auto!important;right:auto!important;top:auto!important;transform:none!important}
#shareBtn{min-height:30px;padding:7px 13px;border:1px solid #4c6d5a;border-radius:999px;background:rgba(8,12,10,.94);color:#e7e3d3;font:700 11px/1 inherit;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer}
#shareBtn:hover{border-color:#e2661b;color:#fff}
#stats{grid-template-columns:66px 72px repeat(4,minmax(74px,1fr))!important;gap:7px!important}
.stat{padding:7px 8px!important;min-height:48px!important}.stat b{font-size:19px!important}.stat span{font-size:8px!important}
.campaign-control{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;color:#cfd6cf;text-align:center;letter-spacing:.8px;font-size:7.5px;font-weight:800;line-height:1.05}
.campaign-control button{display:inline-flex;align-items:center;justify-content:center;width:29px;height:26px;padding:0;margin:0 0 3px;border:1px solid #e2661b;background:rgba(8,12,10,.96);color:#f4efe0;border-radius:7px;font-size:14px;line-height:1;cursor:pointer;box-shadow:0 0 10px rgba(226,102,27,.18)}
.campaign-control button:hover{border-color:#f4efe0;transform:translateY(-1px)}
.logistics-control button{border-color:#d8428c;color:#fff;background:linear-gradient(145deg,rgba(76,17,75,.95),rgba(171,35,113,.9));font-size:12px;font-weight:900;letter-spacing:-.5px}
.campaign-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.campaign-grid-3 div{min-width:0}.campaign-grid-3 b{font-size:20px}.campaign-grid-3 span{font-size:8px}
@media(max-width:900px),(pointer:coarse){
  #topActions{left:auto;right:10px;top:9px;transform:none;gap:6px}
  #shareBtn{padding:0;width:52px;height:30px;min-height:30px;font-size:8px;letter-spacing:.7px}
  #topActions #infoBtn{width:30px!important;height:30px!important}
  #stats{grid-template-columns:52px 58px repeat(4,minmax(0,1fr))!important;gap:5px!important;margin-top:8px!important}
  .stat{padding:6px 3px!important;min-height:44px!important}.stat b{font-size:16px!important}.stat span{font-size:7px!important;letter-spacing:.45px!important}
  .campaign-control{min-height:44px;font-size:6.5px;letter-spacing:.4px}.campaign-control button{width:25px;height:23px;font-size:12px;margin-bottom:2px}
  #topbar .brand{padding-right:96px!important}
}
@media(max-width:560px){
  #topbar p{max-width:74vw;font-size:9px!important;line-height:1.25}
  #stats{grid-template-columns:48px 54px repeat(4,minmax(0,1fr))!important;gap:4px!important}
  .stat b{font-size:15px!important}.stat span{font-size:6.5px!important}
}

/* v11.2 approved release refinements */
.wb-location-marker{width:14px;height:14px;border-radius:50%;box-sizing:border-box;box-shadow:0 0 12px rgba(216,66,140,.75);background:#d8428c;border:2px solid #ffe6f4}
.wb-probable{background:#9a65c7;border-color:#eadcff}.wb-reported{background:#7e8781;border-color:#d8ddd8}.wb-disputed{background:transparent;border:2px dashed #d8428c}
.thumb-failed:before{content:'Image unavailable';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9aa69e;font-size:12px;text-transform:uppercase;letter-spacing:.7px;background:#101611}
.flag-img{display:inline-block;width:25px;height:17px;margin:0 6px;vertical-align:-2px;border:1px solid rgba(255,255,255,.32);box-shadow:0 0 5px rgba(0,0,0,.35);object-fit:cover}
.filters{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-height:96px}
.filters button{padding:8px 4px}
.campaign-rationale{border:1px solid #3a2b36;background:linear-gradient(145deg,rgba(54,17,48,.72),rgba(15,22,18,.92));padding:14px;margin:0 0 14px}
.campaign-rationale h3{margin:0 0 8px;color:#f1c9df;text-transform:uppercase;font-size:16px}
.campaign-rationale p{font-size:12px;line-height:1.55;color:#d8ddd8}
.supporting-evidence{margin:12px 0 0}.supporting-evidence img{display:block;width:100%;height:auto;max-height:330px;object-fit:contain;background:#090d0a}.supporting-evidence figcaption{font-size:10px;color:#aeb8b0;padding-top:6px}
.thumb img.image-failed,.supporting-evidence img.image-failed{object-fit:contain;background:#101611;color:#c9a227;font-size:12px;padding:12px;box-sizing:border-box}
@media(max-width:900px),(pointer:coarse){.flag-img{width:20px;height:13px;margin:0 3px}.filters{grid-template-columns:repeat(5,minmax(0,1fr));max-height:60px}.filters button{font-size:8px;padding:7px 2px}}

/* v11.5 launch refinements: responsive header, logo lightbox, satellite view */
#topActions{transform:translateX(calc(-50% + var(--actions-offset,0px)))}
#stats{grid-template-columns:60px 66px repeat(4,62px)!important;width:max-content}
.stat{box-sizing:border-box;min-width:0!important;min-height:42px!important;padding:5px 6px!important;text-align:center!important;align-items:center}
.stat b{font-size:18px!important}.stat span{font-size:7.5px!important}
.logo-button{display:block;padding:0;margin:0;border:0;border-radius:10px;background:transparent;cursor:zoom-in;line-height:0}
.logo-button:focus-visible{outline:2px solid #e2661b;outline-offset:3px}
#logoModal{display:none;position:fixed;inset:0;z-index:7000;background:rgba(0,0,0,.82);align-items:center;justify-content:center;padding:24px}
#logoModal.open{display:flex}.logo-lightbox{position:relative;display:flex;align-items:center;justify-content:center;max-width:min(88vw,900px);max-height:88vh}
.logo-lightbox img{display:block;max-width:100%;max-height:88vh;width:auto;height:auto;object-fit:contain;border:1px solid rgba(226,102,27,.55);box-shadow:0 24px 70px rgba(0,0,0,.72)}
#logoClose{position:absolute;right:-12px;top:-12px;z-index:2;width:42px;height:42px;border:1px solid #e2661b;border-radius:50%;background:#0a0f0c;color:#fff;font-size:18px;cursor:pointer}
#basemapToggle{position:absolute;right:12px;bottom:148px;z-index:825;min-height:34px;padding:8px 11px;border:1px solid #e2661b;border-radius:7px;background:rgba(8,12,10,.94);color:#f4efe0;font:800 10px/1 Arial,sans-serif;letter-spacing:.75px;text-transform:uppercase;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.35)}
#basemapToggle:hover{border-color:#fff}.satellite-mode .leaflet-tile-pane{filter:none!important}
.location-actions{display:flex;align-items:center;gap:9px;margin:12px 0 4px}.satellite-action{min-height:38px;padding:9px 12px;border:1px solid #4b8cc9;border-radius:6px;background:rgba(19,39,56,.72);color:#d8edff;font:800 10px/1 Arial,sans-serif;letter-spacing:.8px;text-transform:uppercase;cursor:pointer}.satellite-action:hover{border-color:#fff;color:#fff}.location-actions span{color:#8d9a91;font-size:10px;line-height:1.25}
.leaflet-control-attribution{max-width:min(62vw,620px);white-space:normal;text-align:right;background:rgba(8,12,10,.76)!important;color:#9aa69e!important;font-size:8px!important}.leaflet-control-attribution a{color:#c9a227!important}
@media(max-width:900px),(pointer:coarse){
  #topActions{transform:none}
  #stats{grid-template-columns:48px 54px repeat(4,50px)!important;width:max-content;max-width:calc(100vw - 16px)}
  .stat{min-height:40px!important;padding:4px 3px!important}.stat b{font-size:15px!important}.stat span{font-size:6.5px!important}
  #basemapToggle{right:10px;bottom:calc(39vh + 12px);min-height:32px;padding:7px 9px;font-size:8px}
  body.satellite-focus #map{bottom:42px}
  body.satellite-focus #basemapToggle{bottom:54px}
  #logoModal{padding:18px}.logo-lightbox{max-width:94vw}.logo-lightbox img{max-height:80vh}#logoClose{right:-8px;top:-8px}
  .location-actions{align-items:flex-start;flex-direction:column;gap:5px}.satellite-action{width:100%;min-height:42px}
  .leaflet-control-attribution{display:none}
}

/* v11.6 launch update: factual counters and mobile top-right rail */
.updated-line{display:block;margin-top:3px;color:#c9a227;font-size:10px;letter-spacing:.5px;text-transform:uppercase}
#stats{grid-template-columns:repeat(3,62px) 60px 66px!important;width:max-content}
.sites-hit-stat span{line-height:1.05}
@media(min-width:901px) and (hover:hover){
  #stats{grid-template-columns:repeat(3,66px) 60px 66px!important}
}
@media(max-width:900px),(pointer:coarse){
  #topbar{height:0!important;padding:0!important;background:linear-gradient(180deg,rgba(4,7,5,.96),rgba(4,7,5,.44),transparent)!important;overflow:visible!important}
  #topbar .brand{position:absolute!important;left:10px!important;top:12px!important;display:flex!important;align-items:center!important;gap:8px!important;padding-right:0!important;max-width:calc(100vw - 78px)!important}
  .logo-mark{width:38px!important;height:38px!important;border-radius:9px!important}
  .brand>div{min-width:0!important}
  h1{font-size:15px!important;line-height:1!important;letter-spacing:1px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important}
  .flag-img{width:18px!important;height:12px!important;margin:0 2px!important;vertical-align:-1px!important}
  #topbar p{max-width:calc(100vw - 86px)!important;margin:4px 0 0!important;font-size:8.5px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important}
  #topbar p br{display:none!important}
  .updated-line{display:block!important;margin-top:2px!important;font-size:7.5px!important;letter-spacing:.35px!important}
  #topActions{position:absolute!important;right:10px!important;top:8px!important;left:auto!important;transform:none!important;display:block!important;z-index:960!important}
  #shareBtn{display:none!important}
  #topActions #infoBtn{position:static!important;width:31px!important;height:31px!important;line-height:27px!important}
  #stats{position:absolute!important;right:8px!important;top:47px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;width:52px!important;max-width:52px!important;gap:5px!important;margin:0!important}
  .stat{width:52px!important;min-height:38px!important;padding:4px 3px!important}
  .stat b{font-size:15px!important;line-height:1!important}
  .stat span{font-size:6.6px!important;line-height:1.05!important;letter-spacing:.35px!important}
  .campaign-control{width:52px!important;min-height:40px!important;font-size:6.3px!important;letter-spacing:.3px!important}
  .campaign-control button{width:25px!important;height:23px!important;margin-bottom:2px!important}
  #basemapToggle{right:10px!important;bottom:78px!important;z-index:1250!important;min-height:32px!important;padding:7px 9px!important;font-size:8px!important}
  body.satellite-focus #map{bottom:42px!important}
  body.satellite-focus #basemapToggle{right:10px!important;bottom:54px!important}
}
@media(max-width:380px){
  h1{font-size:13px!important;letter-spacing:.4px!important}
  .logo-mark{width:34px!important;height:34px!important}
  #topbar .brand{gap:6px!important;max-width:calc(100vw - 70px)!important}
  #topbar p{font-size:7.5px!important}
}
@media(max-height:520px) and (orientation:landscape){
  #topbar{display:block!important}
  #topbar .brand{top:8px!important}
  #stats{top:43px!important}
}

/* v11.8 public-launch refinements */
#topbar{justify-content:space-between!important}
#stats{display:grid!important;grid-template-columns:repeat(3,66px)!important;grid-auto-rows:auto!important;width:max-content!important;gap:6px!important;margin-left:auto!important}
.stat{min-height:34px!important;padding:4px 6px!important}
.stat b{font-size:17px!important}.stat span{font-size:7.2px!important;line-height:1.05!important}
.campaign-control{grid-column:1 / -1!important;display:grid!important;grid-template-columns:31px 1fr!important;align-items:center!important;justify-content:start!important;gap:7px!important;min-height:32px!important;padding:3px 7px!important;border:1px solid #24352c;background:rgba(10,15,12,.88);font-size:8px!important;text-align:left!important}
.campaign-control button{margin:0!important}
.national-control{margin-top:1px!important}
.logistics-control span{color:#f1c9df!important}
.event-image{display:block;position:relative;aspect-ratio:16/9;border:1px solid #35473f;background:#101611;margin:8px 0 10px;overflow:hidden}
.event-image img{display:block;width:100%;height:100%;object-fit:cover}
.external-map-link{display:inline-flex;align-items:center;min-height:34px;padding:8px 10px;border:1px solid #6f5bbf;border-radius:6px;background:rgba(31,24,54,.76);color:#ddd7ff;text-decoration:none;font:800 10px/1 Arial,sans-serif;letter-spacing:.7px;text-transform:uppercase}
.external-map-link:hover{border-color:#fff;color:#fff}
@media(max-width:900px),(pointer:coarse){
  #topbar .brand{left:9px!important;top:10px!important;max-width:calc(100vw - 74px)!important;align-items:center!important}
  h1{font-size:14px!important;letter-spacing:.55px!important}
  #topbar p{max-width:calc(100vw - 82px)!important;font-size:7.8px!important;line-height:1.05!important}
  #topActions{right:10px!important;top:8px!important}
  #stats{right:8px!important;top:47px!important;display:flex!important;flex-direction:column!important;width:52px!important;max-width:52px!important;gap:5px!important}
  .stat{width:52px!important;min-height:32px!important;padding:3px 3px!important}
  .stat b{font-size:14px!important}.stat span{font-size:6.2px!important;line-height:1.02!important}
  .campaign-control{width:52px!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;gap:2px!important;min-height:38px!important;padding:3px 2px!important;font-size:6px!important;text-align:center!important}
  .campaign-control button{width:24px!important;height:22px!important}
  #basemapToggle{right:10px!important;bottom:10px!important}
  body.satellite-focus #basemapToggle{right:10px!important;bottom:10px!important}
  .location-actions{align-items:stretch!important;gap:6px!important}
  .external-map-link{justify-content:center;width:100%;box-sizing:border-box;min-height:40px}
}
@media(max-width:380px){
  h1{font-size:13px!important;letter-spacing:.2px!important}
  .flag-img{width:16px!important;height:11px!important;margin:0 1px!important}
}

/* v11.9 compact hotfix */
#topbar{padding-top:10px!important}
#topbar .brand{align-items:flex-start!important}
#stats{margin-right:0!important;justify-self:end!important}
.campaign-control{max-width:66px!important;min-height:28px!important;padding:2px 4px!important;gap:4px!important}
.campaign-control button{width:24px!important;height:21px!important;font-size:11px!important}
.campaign-control span{font-size:6.6px!important;line-height:1!important}
@media(min-width:901px){
  #stats{position:absolute!important;right:14px!important;top:12px!important}
  #topActions{top:12px!important}
  #topbar .brand{position:absolute!important;left:18px!important;top:9px!important}
}
@media(max-width:900px),(pointer:coarse){
  #topbar .brand{top:8px!important}
  #topbar p br{display:block!important}
  #stats{right:6px!important}
  .campaign-control{width:50px!important;min-height:34px!important;padding:2px!important}
  .filters button{white-space:normal!important;line-height:1.05!important}
}

/* v11.10 final right-rail alignment: controls sit under Sources */
#stats{grid-template-columns:repeat(3,66px)!important;grid-auto-flow:row!important;align-items:stretch!important}
.campaign-control{grid-column:3!important;width:66px!important;max-width:66px!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:2px!important;min-height:38px!important;padding:3px 2px!important;text-align:center!important;line-height:1.05!important}
.campaign-control button{width:25px!important;height:22px!important;margin:0!important;font-size:12px!important}
.campaign-control span{font-size:6.2px!important;line-height:1.05!important;white-space:normal!important}
@media(max-width:900px),(pointer:coarse){
  #stats{display:flex!important;flex-direction:column!important;align-items:stretch!important;width:52px!important;max-width:52px!important;gap:5px!important}
  .stat{width:52px!important;box-sizing:border-box!important}
  .campaign-control{width:52px!important;max-width:52px!important;min-height:38px!important}
}

/* v11.11 search-first launch layout */
#drawer.search-hidden{display:none!important}
#drawer.search-hidden + #drawerOpen{display:none!important}
#drawer:not(.search-hidden) #drawerClose{display:block!important;position:absolute!important;right:10px!important;top:8px!important;width:36px!important;height:32px!important;z-index:25!important}
#searchBtn{min-height:30px;padding:7px 13px;border:1px solid #4c6d5a;border-radius:999px;background:rgba(8,12,10,.94);color:#e7e3d3;font:700 11px/1 inherit;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer}
#searchBtn:hover{border-color:#e2661b;color:#fff}
#topActions{display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:wrap!important;gap:8px!important;max-width:calc(100vw - 24px)!important}
@media(max-width:900px),(pointer:coarse){
  #topActions{right:8px!important;top:8px!important;display:flex!important;flex-wrap:nowrap!important;gap:5px!important;max-width:calc(100vw - 16px)!important}
  #searchBtn,#shareBtn{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:52px!important;height:30px!important;min-height:30px!important;padding:0!important;font-size:8px!important;letter-spacing:.7px!important}
  #topbar .brand{padding-right:174px!important;max-width:calc(100vw - 16px)!important}
  #drawer.search-hidden{display:none!important}
  #drawer:not(.search-hidden){display:flex!important}
}

/* v11.11 map-first category rail */
#categoryRail{position:absolute;left:18px;top:126px;z-index:1200;display:flex;flex-direction:column;gap:6px;width:124px;padding:7px;background:rgba(8,12,10,.9);border:1px solid #24352c;box-shadow:0 12px 30px rgba(0,0,0,.3)}
#categoryButtons{display:flex;flex-direction:column;gap:5px}
#categoryButtons button{width:100%;box-sizing:border-box;padding:7px 8px;background:#111a14;border:1px solid #24352c;color:#9aa69e;text-align:left;font-size:9px;line-height:1.05;letter-spacing:.6px;text-transform:uppercase;cursor:pointer}
#categoryButtons button.active{color:#f4efe0;border-color:#e2661b;background:#151f18}
#categoryButtons{max-height:calc(100vh - 260px);overflow-y:auto;scrollbar-width:thin}
@media (min-width:901px) and (max-height:760px){#categoryRail{top:150px!important;max-height:calc(100vh - 170px)!important;overflow:hidden!important}#categoryButtons{max-height:calc(100vh - 235px)!important;overflow-y:auto!important}#categoryButtons button{padding:6px 8px!important}}
#categoryHide{align-self:flex-end;width:22px;height:20px;padding:0;border:1px solid #4c6d5a;background:#0a0f0c;color:#cfd6cf;font-size:16px;line-height:16px;cursor:pointer}
#categoryRestore{display:none;position:absolute;left:18px;top:126px;z-index:1200;width:30px;height:28px;padding:0;border:1px solid #e2661b;background:rgba(8,12,10,.94);color:#e7e3d3;font-size:18px;line-height:22px;cursor:pointer}
#categoryRestore.show{display:block}
@media(max-width:900px),(pointer:coarse){
  #categoryRail{left:8px;top:88px;width:108px;padding:5px;gap:4px}
  #categoryButtons{gap:4px}
  #categoryButtons button{padding:7px 6px;font-size:8px}
  #categoryHide{width:22px;height:20px}
  #categoryRestore{left:8px;top:88px}
}



/* v11.13 final header and right rail */
.brand h1{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important;line-height:.9!important;white-space:nowrap!important}.brand .title-line{display:block!important}.brand .title-flags{display:flex!important;align-items:center!important;justify-content:center!important;align-self:center!important;height:19px!important}.brand .title-flags .flag-img{width:22px!important;height:14px!important;margin:2px 4px!important}
#topActions{position:absolute!important;inset:0!important;left:0!important;top:0!important;transform:none!important;pointer-events:none!important;display:block!important;max-width:none!important}#topActions button{pointer-events:auto!important;position:absolute!important}
#searchBtn{left:18px!important;top:92px!important;width:124px!important;box-sizing:border-box!important}#shareBtn{left:50%!important;top:14px!important;transform:translateX(-50%)!important}#infoBtn{right:100px!important;top:14px!important;left:auto!important;transform:none!important;width:32px!important;height:32px!important;border-radius:50%!important;font-size:0!important;line-height:28px!important}
#stats{position:absolute!important;right:14px!important;top:14px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;width:76px!important;gap:6px!important;margin:0!important}#stats .stat{width:76px!important;min-width:76px!important;min-height:38px!important;box-sizing:border-box!important;padding:4px 3px!important}#stats .stat:nth-child(1){order:3!important}#stats .stat:nth-child(2){order:2!important}#stats .stat:nth-child(3){order:1!important}#stats .national-control{order:4!important;width:76px!important;max-width:76px!important;margin-top:2px!important}#stats .logistics-control{order:5!important;width:76px!important;max-width:76px!important;margin-top:12px!important}body.search-open #categoryRail,body.search-open #categoryRestore{display:none!important}.thumb.no-link{cursor:default!important}.thumb.no-link img{object-position:center 72%!important}
@media(max-width:900px),(pointer:coarse){.brand h1{font-size:15px!important;line-height:.92!important}.brand .title-flags{height:15px!important}.brand .title-flags .flag-img{width:18px!important;height:12px!important;margin:1px 3px!important}#searchBtn{left:8px!important;top:78px!important;width:108px!important}#shareBtn{left:50%!important;top:8px!important}#infoBtn{right:76px!important;top:8px!important;width:30px!important;height:30px!important}#stats{right:6px!important;top:8px!important;width:58px!important;gap:4px!important}#stats .stat,#stats .national-control,#stats .logistics-control{width:58px!important;min-width:58px!important;max-width:58px!important}#stats .stat{min-height:34px!important}.campaign-control{min-height:36px!important}}

#detail .thumb img[src='crimea_energy_2026.jpg']{object-position:center 72%!important}

/* v11.14 focused header and filter-rail correction */
#categoryHeader{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 2px 6px;color:#e7e3d3;font-size:9px;letter-spacing:1.15px;font-weight:800;text-align:center}
#categoryHeader span{flex:1;text-align:center}
#categoryHeader #categoryHide{flex:0 0 22px;align-self:auto}
#categoryRail.hidden{display:flex!important;height:44px!important;min-height:44px!important;overflow:hidden!important;padding:5px!important;box-sizing:border-box!important;gap:0!important}
#categoryRail.hidden #categoryHeader{padding:0!important;width:100%!important}
#categoryRail.hidden #categoryButtons{display:none!important}
#categoryRestore{display:none!important}
body.search-open #categoryRail{display:none!important}

/* v11.15 subtitle balance */
.brand p{text-align:center!important}
.brand .subtitle-line{display:block!important;white-space:nowrap!important}

/* Keep the map title compact; flags sit on opposite sides of the gap between lines. */
.brand h1{position:relative!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important;line-height:.82!important;padding:0 34px!important;box-sizing:border-box!important}
.brand .title-line{display:block!important}
.brand .title-flags{position:absolute!important;left:0!important;right:0!important;top:50%!important;transform:translateY(-50%)!important;display:flex!important;justify-content:space-between!important;align-items:center!important;height:18px!important;align-self:auto!important;pointer-events:none!important}
.brand .title-flags .flag-img{width:22px!important;height:14px!important;margin:0!important}

/* Header controls clear the title metadata and remain stable while the map resizes. */
#searchBtn{position:absolute!important;left:18px!important;top:220px!important;width:124px!important;box-sizing:border-box!important}
#categoryRail{top:266px!important}
#topActions #infoBtn{position:absolute!important;right:100px!important;top:14px!important;left:auto!important;transform:none!important;width:32px!important;height:32px!important;border-radius:50%!important;font-size:0!important;line-height:28px!important}
@media(max-width:900px),(pointer:coarse){
  .brand h1{line-height:.86!important;padding:0 27px!important}
  .brand .title-flags{height:15px!important}
  .brand .title-flags .flag-img{width:18px!important;height:12px!important}
  #searchBtn{left:8px!important;top:116px!important;width:108px!important}
  #categoryRail{left:8px!important;top:160px!important}
  #topActions #infoBtn{right:76px!important;top:8px!important;width:30px!important;height:30px!important}
}

/* v18 launch pass: stable one-line title, fixed anchors, and full-frame campaign imagery. */
#topbar{position:absolute!important;inset:0!important;height:0!important;padding:0!important;pointer-events:none!important;overflow:visible!important}
#topbar .brand{position:absolute!important;inset:0!important;display:block!important;pointer-events:none!important}
#topbar .brand .logo-button{position:fixed!important;left:18px!important;top:18px!important;width:68px!important;height:68px!important;z-index:2100!important;pointer-events:auto!important}
#topbar .brand .logo-mark{width:100%!important;height:100%!important}
#topbar .brand>div:last-child{position:fixed!important;left:50%!important;top:22px!important;transform:translateX(-50%)!important;width:min(820px,calc(100vw - 230px))!important;max-width:none!important;z-index:1800!important;pointer-events:none!important}
#topbar .brand h1{position:relative!important;display:block!important;width:100%!important;margin:0!important;padding:0!important;overflow:visible!important;white-space:nowrap!important;text-align:center!important;font-size:clamp(18px,3.25vw,40px)!important;line-height:1!important;letter-spacing:1px!important}
#topbar .brand h1 .title-line{display:inline!important;white-space:nowrap!important}
#topbar .brand .title-flags{position:absolute!important;left:-52px!important;right:-52px!important;top:50%!important;transform:translateY(-50%)!important;display:flex!important;justify-content:space-between!important;align-items:center!important;width:auto!important;height:20px!important;z-index:2002!important;pointer-events:none!important}
#topbar .brand .title-flags .flag-img{display:block!important;width:26px!important;height:17px!important;margin:0!important;visibility:visible!important;opacity:1!important}
#topbar .brand .subtitle-line{display:none!important}
#topbar .brand .updated-line{display:block!important;margin-top:8px!important;text-align:center!important;white-space:nowrap!important;font-size:clamp(9px,1vw,12px)!important}
#topActions #infoBtn{position:fixed!important;right:108px!important;top:18px!important;left:auto!important;width:38px!important;height:38px!important;z-index:2200!important}
#topActions #shareBtn{position:fixed!important;right:108px!important;top:70px!important;left:auto!important;transform:none!important;z-index:2200!important}
#stats{position:fixed!important;right:14px!important;top:18px!important;width:78px!important;z-index:2100!important}
#stats .stat,#stats .national-control,#stats .logistics-control{width:78px!important;min-width:78px!important;max-width:78px!important;box-sizing:border-box!important}
#stats .stat{min-height:38px!important;padding:4px 3px!important}
#stats .stat:nth-child(1){order:3!important}#stats .stat:nth-child(2){order:2!important}#stats .stat:nth-child(3){order:1!important}
#stats .national-control{order:4!important;margin-top:3px!important}#stats .logistics-control{order:5!important;margin-top:12px!important}
#stats .sites-hit-stat span{white-space:nowrap!important;text-align:center!important}
#searchBtn{position:fixed!important;left:18px!important;top:112px!important;width:124px!important;z-index:2200!important}
#categoryRail{top:168px!important;left:18px!important;z-index:1200!important;width:238px!important;box-sizing:border-box!important}
#categoryRail #categoryHeader{min-height:36px!important;box-sizing:border-box!important}
#drawer{width:min(520px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important}
.approximate-marker{background:rgba(220,232,226,.12)!important;border:2px solid rgba(236,244,239,.85)!important;box-shadow:0 0 18px rgba(220,232,226,.3)!important}
.event-image.full-frame{aspect-ratio:auto!important;max-height:none!important;background:#101611!important}
.event-image.full-frame img{height:auto!important;max-height:none!important;object-fit:contain!important}
#detail .thumb img[src="crimea_energy_full_2026.jpg"]{object-fit:contain!important;object-position:center!important;background:#101611!important}
@media(max-width:900px),(pointer:coarse){
  #topbar .brand .logo-button{left:8px!important;top:8px!important;width:46px!important;height:46px!important}
  #topbar .brand>div:last-child{top:12px!important;width:calc(100vw - 120px)!important}
  #topbar .brand h1{font-size:clamp(13px,4.1vw,24px)!important;letter-spacing:.5px!important}
  #topbar .brand .title-flags{left:-8px!important;right:-8px!important;height:14px!important}
  #topbar .brand .title-flags .flag-img{width:18px!important;height:12px!important}
  #topbar .brand .updated-line{margin-top:5px!important;font-size:8px!important}
  #topActions #infoBtn{right:64px!important;top:8px!important;width:30px!important;height:30px!important}
  #topActions #shareBtn{right:62px!important;top:48px!important;min-width:76px!important;height:30px!important;padding:4px 10px!important;font-size:11px!important}
  #stats{right:6px!important;top:8px!important;width:58px!important}
  #stats .stat,#stats .national-control,#stats .logistics-control{width:58px!important;min-width:58px!important;max-width:58px!important}
  #stats .stat{min-height:34px!important}
  #searchBtn{left:8px!important;top:76px!important;width:108px!important;height:32px!important}
  #categoryRail{left:8px!important;top:120px!important;width:210px!important;max-width:calc(100vw - 16px)!important}
  #drawer{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;left:8px!important;right:auto!important;height:min(68dvh,520px)!important;max-height:calc(100dvh - 120px)!important}
  #topbar .brand .title-flags{left:-8px!important;right:-8px!important;height:14px!important}
}

/* v12 focused polish */
#filters{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
#filters button[data-filter="all"],#filters button[data-filter="all-no-wb"]{grid-column:auto!important}
#filters button[data-filter="refineries"],#filters button[data-filter="fuel-logistics"],#filters button[data-filter="power"],#filters button[data-filter="maritime"],#filters button[data-filter="wildberries"]{grid-column:1 / -1!important}
.area-note{margin:7px 0 9px!important;color:#d8c89e!important;font-size:11px!important;line-height:1.35!important}
.area-note span{color:#89958c!important;font-size:9px!important}
.thumb.no-link{cursor:default!important}
#detail .thumb img[src="taganrog_terminal_2026.jpg"],#detail .thumb img[src="taganrog_terminal_2026.webp"]{object-position:center 70%!important}
#stats .logistics-control span{font-size:5.8px!important;line-height:1!important}
#categoryRail.hidden{width:140px!important}
@media(max-width:900px),(pointer:coarse){
  #categoryRail.hidden{width:124px!important}
  #filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* ===================================================================
   v13: consolidated header fix — appended intentionally so it wins
   the cascade over every earlier scattered header patch (v10.9 through
   v11.15) without deleting/touching any of that older code.
   Scope: (1) robust, zoom-proof info button — flexbox-centered icon
   instead of the old line-height/font-size:0 trick that could drift
   out of alignment at certain zoom levels; (2) desktop header layout:
   logo + title + subtitle centered as one group at the top of the
   page; (3) more vertical gap between the two title lines; (4) Share
   button moved to sit directly above the Search bubble instead of
   top-center (that spot is now the centered title block).
   =================================================================== */

/* --- Info button: robust flexbox centering, all viewport sizes --- */
#infoBtn,
#topActions #infoBtn{
  padding:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:0!important;
  line-height:1!important;
  overflow:hidden!important;
}
/* --- Desktop header: centered logo/title/subtitle group --- */
@media (min-width:901px){
  #topbar{ min-height:190px!important; }
  #topbar .brand{
    position:absolute!important;
    left:50%!important;
    top:16px!important;
    transform:translateX(-50%)!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    text-align:center!important;
    gap:10px!important;
    max-width:640px!important;
  }
  #topbar .brand>div{ display:flex!important; flex-direction:column!important; align-items:center!important; }
  .brand h1{
    gap:12px!important;
    line-height:1.05!important;
  }
  .brand .title-line{ line-height:1.05!important; }
  .brand p{ margin-top:8px!important; }

  /* Share sits directly above the Search bubble (left column),
     freeing the top-center for the now-centered title block. */
  #shareBtn{
    left:18px!important;
    top:180px!important;
    transform:none!important;
  }
}
/* v14 responsive header reset */
.brand{position:absolute!important;inset:0!important;display:block!important;pointer-events:none!important}
.brand .logo-button{position:absolute!important;left:18px!important;top:10px!important;pointer-events:auto!important}
.brand>div:last-child{position:absolute!important;left:50%!important;top:14px!important;transform:translateX(-50%)!important;display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;pointer-events:none!important;max-width:calc(100vw - 180px)!important}
.brand h1{display:block!important;position:relative!important;padding:0!important;margin:0!important;white-space:nowrap!important;font-size:clamp(17px,3vw,34px)!important;line-height:1!important;letter-spacing:1px!important}
.brand h1 .title-line{display:inline!important;line-height:1!important}
.brand .title-flags{position:absolute!important;left:-30px!important;right:-30px!important;top:50%!important;transform:translateY(-50%)!important;display:flex!important;justify-content:space-between!important;align-items:center!important;height:auto!important;pointer-events:none!important}
.brand .title-flags .flag-img{width:22px!important;height:14px!important;margin:0!important}
.brand p{margin:7px 0 0!important;text-align:center!important}
.brand .subtitle-line{display:none!important}
.brand .updated-line{display:block!important;white-space:nowrap!important;font-size:clamp(9px,1vw,12px)!important}
#topActions #infoBtn{position:fixed!important;right:102px!important;top:14px!important;left:auto!important;transform:none!important;z-index:2000!important}
body.search-open #searchBtn,body.search-open #shareBtn{display:none!important}
@media(max-width:900px),(pointer:coarse){
  .brand .logo-button{left:8px!important;top:8px!important}
  .brand>div:last-child{top:9px!important;max-width:calc(100vw - 150px)!important}
  .brand h1{font-size:clamp(14px,4vw,24px)!important;letter-spacing:.5px!important}
  .brand .title-flags{left:-23px!important;right:-23px!important}
  .brand .title-flags .flag-img{width:18px!important;height:12px!important}
  #topActions #infoBtn{right:70px!important;top:8px!important}
}

/* v15 focused mobile polish: keep the title clear of controls and restore text search. */
.brand>div:last-child{max-width:calc(100vw - 180px)!important}
.brand .subtitle-line{display:none!important}
.external-map-note{display:block!important;margin-top:5px!important;color:#89958c!important;font-size:10px!important;line-height:1.35!important}
@media(max-width:900px),(pointer:coarse){
  .brand>div:last-child{top:9px!important;max-width:calc(100vw - 112px)!important}
  .brand h1{font-size:clamp(14px,4vw,22px)!important;line-height:1!important}
  #shareBtn{left:8px!important;top:78px!important;transform:none!important;width:108px!important;height:30px!important}
  #searchBtn{left:8px!important;top:116px!important;width:108px!important}
  #topActions #infoBtn{right:70px!important;top:8px!important;width:30px!important;height:30px!important}
  #search{display:block!important;margin:0 14px 10px!important;padding:10px 11px!important;height:40px!important;box-sizing:border-box!important;font-size:14px!important;line-height:18px!important}
  #drawer{padding-top:58px!important}
}

/* v16 focused header anchoring: logo, title, flags, info, and stats do not
   share a positioning context, so large and small viewports stay stable. */
#topbar{position:absolute!important;inset:0!important;padding:0!important;display:block!important;pointer-events:none!important;z-index:850!important}
#topbar .brand{position:absolute!important;inset:0!important;display:block!important;pointer-events:none!important;max-width:none!important;transform:none!important}
#topbar .brand .logo-button{position:fixed!important;left:18px!important;top:18px!important;z-index:2001!important;pointer-events:auto!important}
#topbar .brand>div:last-child{position:fixed!important;left:50%!important;top:25px!important;transform:translateX(-50%)!important;max-width:calc(100vw - 220px)!important;z-index:1800!important;pointer-events:none!important}
#topbar .brand h1{display:block!important;position:relative!important;padding:0!important;margin:0!important;white-space:nowrap!important;line-height:1!important}
#topbar .brand .title-line{display:inline!important;line-height:1!important}
#topbar .brand .title-flags{position:fixed!important;left:calc(50% - 250px)!important;right:calc(50% - 250px)!important;top:39px!important;transform:translateY(-50%)!important;display:flex!important;justify-content:space-between!important;align-items:center!important;height:18px!important;z-index:2002!important;pointer-events:none!important}
#topbar .brand .title-flags .flag-img{display:block!important;width:22px!important;height:14px!important;margin:0!important;visibility:visible!important;opacity:1!important}
#topActions #infoBtn{position:fixed!important;right:110px!important;top:20px!important;left:auto!important;transform:none!important;z-index:2100!important}
#stats{position:fixed!important;right:14px!important;top:18px!important;z-index:1900!important}
#stats .sites-hit-stat{align-items:flex-end!important;text-align:right!important}
#stats .sites-hit-stat span{white-space:nowrap!important;text-align:right!important}
#stats .sites-hit-stat span br{display:none!important}
@media(max-width:900px),(pointer:coarse){
  #topbar .brand .logo-button{left:8px!important;top:8px!important}
  #topbar .brand>div:last-child{top:14px!important;max-width:calc(100vw - 110px)!important}
  #topbar .brand h1{font-size:clamp(14px,4vw,22px)!important;line-height:1!important}
  #topbar .brand .title-flags{left:calc(50% - 115px)!important;right:calc(50% - 115px)!important;top:24px!important;height:15px!important}
  #topbar .brand .title-flags .flag-img{width:18px!important;height:12px!important}
  #topActions #infoBtn{right:70px!important;top:8px!important;width:30px!important;height:30px!important}
  #stats{right:6px!important;top:8px!important}
  #stats .sites-hit-stat span{font-size:7px!important;white-space:nowrap!important}
}

/* v18 final cascade: these rules intentionally come last. */
#topbar{position:absolute!important;inset:0!important;height:0!important;padding:0!important;pointer-events:none!important;overflow:visible!important}
#topbar .brand{position:absolute!important;inset:0!important;display:block!important;pointer-events:none!important;max-width:none!important;transform:none!important}
#topbar .brand .logo-button{position:fixed!important;left:18px!important;top:18px!important;width:68px!important;height:68px!important;z-index:2100!important;pointer-events:auto!important}
#topbar .brand .logo-mark{width:100%!important;height:100%!important}
#topbar .brand>div:last-child{position:fixed!important;left:50%!important;top:22px!important;transform:translateX(-50%)!important;width:min(820px,calc(100vw - 230px))!important;max-width:none!important;z-index:1800!important;pointer-events:none!important}
#topbar .brand h1{position:relative!important;display:block!important;width:100%!important;margin:0!important;padding:0!important;overflow:visible!important;white-space:nowrap!important;text-align:center!important;font-size:clamp(18px,3.25vw,40px)!important;line-height:1!important;letter-spacing:1px!important}
#topbar .brand h1 .title-line{display:inline!important;white-space:nowrap!important}
#topbar .brand .title-flags{position:absolute!important;left:-52px!important;right:-52px!important;top:50%!important;transform:translateY(-50%)!important;display:flex!important;justify-content:space-between!important;align-items:center!important;width:auto!important;height:20px!important;z-index:2002!important;pointer-events:none!important}
#topbar .brand .title-flags .flag-img{display:block!important;width:26px!important;height:17px!important;margin:0!important;visibility:visible!important;opacity:1!important}
#topbar .brand .subtitle-line{display:none!important}
#topbar .brand .updated-line{display:block!important;margin-top:8px!important;text-align:center!important;white-space:nowrap!important;font-size:clamp(9px,1vw,12px)!important}
#topActions #infoBtn{position:fixed!important;right:108px!important;top:18px!important;left:auto!important;width:38px!important;height:38px!important;z-index:2200!important}
#topActions #shareBtn{position:fixed!important;right:108px!important;top:70px!important;left:auto!important;transform:none!important;z-index:2200!important}
#stats{position:fixed!important;right:14px!important;top:18px!important;width:78px!important;z-index:2100!important}
#stats .stat,#stats .national-control,#stats .logistics-control{width:78px!important;min-width:78px!important;max-width:78px!important;box-sizing:border-box!important}
#stats .stat{min-height:38px!important;padding:4px 3px!important}
#stats .stat:nth-child(1){order:3!important}#stats .stat:nth-child(2){order:2!important}#stats .stat:nth-child(3){order:1!important}
#stats .national-control{order:4!important;margin-top:3px!important}#stats .logistics-control{order:5!important;margin-top:12px!important}
#stats .sites-hit-stat span{white-space:nowrap!important;text-align:center!important}
#searchBtn{position:fixed!important;left:18px!important;top:112px!important;width:124px!important;z-index:2200!important}
#categoryRail{top:168px!important;left:18px!important;z-index:1200!important;width:238px!important;box-sizing:border-box!important}
#drawer{width:min(520px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important}
.approximate-marker{background:rgba(220,232,226,.12)!important;border:2px solid rgba(236,244,239,.85)!important;box-shadow:0 0 18px rgba(220,232,226,.3)!important}
.event-image.full-frame{aspect-ratio:auto!important;max-height:none!important;background:#101611!important}
.event-image.full-frame img{height:auto!important;max-height:none!important;object-fit:contain!important}
#detail .thumb img[src="crimea_energy_full_2026.jpg"]{object-fit:contain!important;object-position:center!important;background:#101611!important}
@media(max-width:900px),(pointer:coarse){
  #topbar .brand .logo-button{left:8px!important;top:8px!important;width:46px!important;height:46px!important}
  #topbar .brand>div:last-child{top:12px!important;width:calc(100vw - 120px)!important}
  #topbar .brand h1{font-size:clamp(13px,4.1vw,24px)!important;letter-spacing:.5px!important}
  #topbar .brand .title-flags{left:-27px!important;right:-27px!important;height:14px!important}
  #topbar .brand .title-flags .flag-img{width:18px!important;height:12px!important}
  #topbar .brand .updated-line{margin-top:5px!important;font-size:8px!important}
  #topActions #infoBtn{right:64px!important;top:8px!important;width:30px!important;height:30px!important}
  #topActions #shareBtn{right:62px!important;top:48px!important;min-width:76px!important;height:30px!important;padding:4px 10px!important;font-size:11px!important}
  #stats{right:6px!important;top:8px!important;width:58px!important}
  #stats .stat,#stats .national-control,#stats .logistics-control{width:58px!important;min-width:58px!important;max-width:58px!important}
  #stats .stat{min-height:34px!important}
  #searchBtn{left:8px!important;top:76px!important;width:108px!important;height:32px!important}
  #categoryRail{left:8px!important;top:120px!important;width:210px!important;max-width:calc(100vw - 16px)!important}
  #drawer{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;left:8px!important;right:auto!important;height:min(68dvh,520px)!important;max-height:calc(100dvh - 120px)!important}
}
.impact-gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 0 18px;padding:0 0 8px;overscroll-behavior-inline:contain}
.impact-gallery figure{flex:0 0 100%;margin:0;scroll-snap-align:start;background:#07100c;border:1px solid #263a31}
.impact-gallery a{display:block}
.impact-gallery img{display:block;width:100%;max-height:520px;object-fit:contain;background:#050807}
.impact-gallery figcaption{padding:10px 12px;color:#aab2ad;font-size:13px;line-height:1.35}

/* v48 campaign tabs */
.campaign-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}
.campaign-tabs button{border:1px solid #405044;background:#0b1410;color:#c8d0cb;padding:10px 12px;font:700 13px/1.1 inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.campaign-tabs button.active{border-color:#e07432;color:#fff2df;background:#172017}
.campaign-infographic{margin:0 0 18px;border:1px solid #263a31;background:#07100c}
.campaign-infographic img{display:block;width:100%;height:auto}
.campaign-infographic figcaption{padding:8px 10px;color:#aab2ad;font-size:12px}
.ozon-location-marker{width:18px;height:18px;box-sizing:border-box;border-radius:50%;background:#4b9bd0;border:2px solid #eaf4f5;box-shadow:0 0 14px rgba(75,155,208,.7)}

/* Crop the PowerPoint slide down to its inset CHP-22 photograph. */
#detail .thumb:has(> img[src*="slide-73.jpg"]){aspect-ratio:3/2!important}
#detail .thumb img[src*="slide-73.jpg"]{object-position:center center!important;transform:translate(1.1%,-5.5%) scale(1.84)}

/* ===== v25-ui.css ===== */
/* v25: single responsive UI layer.  Layout is controlled here only. */
:root{--right-col:88px;--edge:14px;--panel:520px}
html,body,#app{overflow:hidden!important}
#topbar{position:fixed!important;inset:0!important;height:0!important;margin:0!important;padding:0!important;display:block!important;background:none!important;z-index:5000!important;pointer-events:none!important}
#topbar>*{pointer-events:auto!important}
#logoBtn{position:fixed!important;left:18px!important;top:18px!important;width:68px!important;height:68px!important;padding:0!important;margin:0!important;z-index:5010!important;border-radius:10px!important;line-height:0!important;cursor:zoom-in!important}
#logoBtn .logo-mark{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
#titleGroup{position:fixed!important;left:50%!important;top:22px!important;transform:translateX(-50%)!important;width:min(1100px,calc(100vw - 260px))!important;margin:0!important;text-align:center!important;z-index:5005!important;pointer-events:none!important}
#titleLine{display:flex!important;align-items:center!important;justify-content:center!important;gap:14px!important;white-space:nowrap!important}
#titleLine>span{display:block!important;font-family:Impact,"Arial Black",sans-serif!important;font-size:clamp(22px,3.2vw,48px)!important;line-height:1!important;letter-spacing:1px!important;color:#e7e3d3!important;white-space:nowrap!important}
#titleLine .title-flag{display:block!important;flex:0 0 auto!important;width:30px!important;height:20px!important;object-fit:cover!important}
#updatedLine{margin-top:8px!important;color:#c9a227!important;font-size:clamp(9px,1vw,12px)!important;line-height:1.1!important;white-space:nowrap!important;text-align:center!important}
#stats{position:fixed!important;right:var(--edge)!important;top:18px!important;width:var(--right-col)!important;min-width:var(--right-col)!important;max-width:var(--right-col)!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;z-index:5010!important}
#stats .stat,#stats .campaign-control,#stats .share-control{width:100%!important;min-width:0!important;max-width:none!important;box-sizing:border-box!important;margin:0!important}
#stats .stat{min-height:40px!important;padding:5px 4px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}
#stats .stat b{font-size:clamp(16px,1.5vw,23px)!important;line-height:1!important}
#stats .stat span{font-size:clamp(8px,.72vw,10px)!important;line-height:1.08!important;white-space:nowrap!important;text-align:center!important}
#stats .stat:nth-child(1){order:3!important}#stats .stat:nth-child(2){order:2!important}#stats .stat:nth-child(3){order:1!important}
#stats .national-control{order:4!important;margin-top:2px!important}#stats .logistics-control{order:5!important;margin-top:6px!important}
#stats .campaign-control{min-height:62px!important;padding:7px 3px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
#stats .campaign-control button{width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;margin:0 0 4px!important;display:grid!important;place-items:center!important}
#stats .campaign-control span{font-size:clamp(8px,.7vw,10px)!important;line-height:1.05!important;text-align:center!important;white-space:nowrap!important}
#infoBtn{position:fixed!important;right:calc(var(--right-col) + var(--edge) + 10px)!important;top:18px!important;width:40px!important;height:40px!important;padding:0!important;margin:0!important;z-index:5020!important;border:1px solid #e2661b!important;border-radius:50%!important;background:rgba(8,12,10,.94)!important;color:#e7e3d3!important;font:900 22px/1 Arial,sans-serif!important;text-transform:none!important;display:grid!important;place-items:center!important;cursor:pointer!important}
#infoBtn::before,#infoBtn::after{content:none!important;display:none!important}
#topActions{position:fixed!important;inset:0!important;z-index:5015!important;pointer-events:none!important;display:block!important;transform:none!important}
#topActions>*{pointer-events:auto!important}
#searchBtn,#topActions #searchBtn{position:fixed!important;left:18px!important;top:112px!important;width:124px!important;min-height:42px!important;z-index:5020!important}
body.search-open #searchBtn{visibility:hidden!important;pointer-events:none!important}
#categoryRail{position:fixed!important;left:18px!important;top:166px!important;width:238px!important;max-width:calc(100vw - 36px)!important;z-index:1200!important;box-sizing:border-box!important}
body.search-open #categoryRail,body.search-open #categoryRestore{display:none!important}
#drawer{position:fixed!important;left:18px!important;right:auto!important;top:92px!important;bottom:18px!important;width:min(var(--panel),calc(100vw - 36px))!important;max-width:var(--panel)!important;height:auto!important;max-height:calc(100vh - 110px)!important;z-index:8000!important;transform:none!important;overflow:hidden!important}
#drawer.search-hidden{display:none!important}
#drawer:not(.search-hidden){display:flex!important}
#drawer #list{min-height:0!important;overflow:auto!important}
#detail{position:fixed!important;left:auto!important;right:0!important;top:0!important;bottom:0!important;width:min(var(--panel),calc(100vw - 24px))!important;max-width:var(--panel)!important;height:auto!important;max-height:none!important;z-index:8000!important;transform:translateX(100%)!important;transition:transform .22s ease!important;overflow:auto!important}
#detail.open{transform:translateX(0)!important}
#close{z-index:8010!important}
#basemapToggle,#legend{z-index:1300!important}
@media (min-width:901px){
  #detail{right:0!important}
}
@media (min-width:431px) and (max-width:900px){
  :root{--right-col:72px;--edge:8px}
  #logoBtn{left:8px!important;top:8px!important;width:50px!important;height:50px!important}
  #titleGroup{top:14px!important;width:calc(100vw - 150px)!important}
  #titleLine{gap:6px!important}
  #titleLine>span{font-size:clamp(16px,4vw,30px)!important;letter-spacing:.5px!important}
  #titleLine .title-flag{width:21px!important;height:14px!important}
  #updatedLine{margin-top:5px!important;font-size:8px!important}
  #stats{top:8px!important}
  #infoBtn{top:8px!important;width:32px!important;height:32px!important;font-size:18px!important}
  #searchBtn,#topActions #searchBtn{left:8px!important;top:78px!important;width:108px!important;min-height:34px!important}
  #categoryRail{left:8px!important;top:122px!important;width:210px!important;max-width:calc(100vw - 16px)!important}
  #drawer{left:8px!important;top:92px!important;bottom:8px!important;width:min(var(--panel),calc(100vw - 16px))!important;max-width:var(--panel)!important;max-height:calc(100vh - 100px)!important}
  #detail{right:8px!important;top:8px!important;bottom:8px!important;width:min(var(--panel),calc(100vw - 16px))!important;max-width:var(--panel)!important;border-radius:14px!important}
}
@media (max-width:430px){
  :root{--right-col:58px;--edge:6px}
  #logoBtn{left:8px!important;top:8px!important;width:46px!important;height:46px!important}
  #titleGroup{top:12px!important;width:calc(100vw - 112px)!important}
  #titleLine{gap:4px!important}
  #titleLine>span{font-size:clamp(12px,4.2vw,21px)!important;letter-spacing:.2px!important}
  #titleLine .title-flag{width:18px!important;height:12px!important}
  #updatedLine{margin-top:5px!important;font-size:7px!important}
  #stats{top:8px!important;gap:4px!important}
  #stats .stat{min-height:34px!important;padding:4px 2px!important}
  #stats .campaign-control{min-height:54px!important;padding:5px 2px!important}
  #stats .campaign-control button{width:28px!important;height:28px!important;min-height:28px!important}
  #stats .campaign-control span{font-size:7px!important}
  #infoBtn{top:8px!important;width:30px!important;height:30px!important;font-size:18px!important}
  #searchBtn,#topActions #searchBtn{left:8px!important;top:70px!important;width:104px!important;min-height:32px!important}
  #categoryRail{left:8px!important;top:112px!important;width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important}
  #drawer{left:8px!important;top:74px!important;right:8px!important;bottom:8px!important;width:auto!important;max-width:none!important;max-height:calc(100vh - 82px)!important}
  #detail{left:8px!important;right:8px!important;top:8px!important;bottom:8px!important;width:auto!important;max-width:none!important;border-radius:14px!important}
}

/* ===== v26-fixes.css ===== */
/* v26 targeted fixes: keep the right column usable at narrow widths and
   clear an old selected marker whenever a new filter is chosen. */
#stats .share-control{width:100%!important;min-width:0!important;max-width:100%!important;overflow:visible!important;box-sizing:border-box!important}
#stats .share-control #shareBtn{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;padding:7px 2px!important;font-size:clamp(9px,1vw,13px)!important;line-height:1!important}
@media (max-width:900px){
  #stats .share-control #shareBtn{font-size:clamp(8px,1.8vw,11px)!important;padding-left:1px!important;padding-right:1px!important}
}

/* ===== v30-fixes.css ===== */
/* v30 focused responsive fixes.  This layer is intentionally small and
   loaded last so it does not disturb the existing map geometry. */
#drawer,#detail{z-index:9000!important}
#categoryRestore.v30-mobile-show{display:block!important}
@media (min-width:901px) and (max-width:1250px){
  #categoryRail{width:238px!important;max-width:238px!important}
  #categoryButtons{flex-direction:column!important;align-items:stretch!important;overflow:visible!important;padding-bottom:0!important}
  #categoryButtons button{flex:0 0 auto!important;width:100%!important;white-space:normal!important}
}
@media (max-width:900px){
  #categoryRail.v30-mobile-collapsed{display:none!important}
  #categoryRail.v30-mobile-open{display:flex!important;z-index:7000!important;max-height:calc(100dvh - 150px)!important;overflow:auto!important}
  body.search-open #categoryRail{display:none!important}
  #drawer{left:8px!important;right:8px!important;width:auto!important;max-width:none!important;z-index:9000!important}
  #detail{left:8px!important;right:8px!important;width:auto!important;max-width:none!important;z-index:9000!important}
}

/* ===== v32-fixes.css ===== */
/* v32: approved two-column category grid. */
#filters{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;overflow:visible!important}
#filters button{grid-column:auto!important;min-width:0!important;white-space:normal!important;line-height:1.1!important}
@media (max-width:900px),(pointer:coarse){#filters{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-height:none!important;overflow:visible!important}#filters button{grid-column:auto!important;min-width:0!important}}

/* ===== v33-fixes.css ===== */
/* v33: compact search drawer and approved two-column category layout at every size. */
#filters{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;max-height:none!important;overflow:visible!important}
#filters button{grid-column:auto!important;min-width:0!important;white-space:normal!important;line-height:1.1!important}
#drawer:not(.search-hidden){height:min(78vh,720px)!important;max-height:calc(100vh - 120px)!important;overflow:hidden!important}
@media (max-width:900px),(pointer:coarse){
  #drawer:not(.search-hidden){left:8px!important;right:8px!important;top:72px!important;bottom:auto!important;width:calc(100vw - 16px)!important;max-width:760px!important;height:min(78dvh,700px)!important;max-height:calc(100dvh - 94px)!important;border-radius:10px!important;border:1px solid #24352c!important;box-shadow:0 18px 40px rgba(0,0,0,.4)!important}
  #drawer:not(.search-hidden) #drawerClose{top:8px!important;right:10px!important}
  #filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #categoryRail{top:156px!important}
  #categoryRestore{top:156px!important}
}

/* =====================================================================
   v34 fix — appended so this (last-loaded) stylesheet has final say.
   Root cause: v30-fixes.css strips the panel width cap for ANY window
   <=900px wide ("#drawer{width:auto;max-width:none}"), which is not a
   phone-only condition -- it fires on any moderately narrow desktop
   browser window too, making the search panel (and facility detail
   panel) balloon to near-full window width instead of keeping the
   proportioned/capped layout. This restores the intended capped
   "tablet/narrow-desktop" sizing (the same values v25-ui.css already
   defines for 431-900px) for genuine desktop widths, while leaving
   true phone widths (<=640px) on their existing full-bleed behavior.
   ===================================================================== */
@media (min-width:641px) and (max-width:900px){
  /* Selector must match #drawer:not(.search-hidden) above (same file,
     earlier in cascade) -- that :not() carries real specificity (as
     much as a class), so a plain "#drawer" selector here would silently
     lose to it regardless of appearing later in the file. Matching the
     selector exactly is what makes source order decide the winner. */
  #drawer:not(.search-hidden){
    left:8px!important;
    right:auto!important;
    top:92px!important;
    bottom:8px!important;
    width:min(var(--panel),calc(100vw - 16px))!important;
    max-width:var(--panel)!important;
    max-height:calc(100vh - 100px)!important;
    height:auto!important;
    border-radius:0!important;
  }
  #detail{
    left:auto!important;
    right:8px!important;
    top:8px!important;
    bottom:8px!important;
    width:min(var(--panel),calc(100vw - 16px))!important;
    max-width:var(--panel)!important;
    border-radius:14px!important;
  }
}

/* v35 fix: the legacy rule below v26-fixes.css forces the five named
   category buttons to span the full grid row. Match its specificity and
   reset each button so the approved two-column layout applies consistently. */
#filters button[data-filter="refineries"],
#filters button[data-filter="fuel-logistics"],
#filters button[data-filter="power"],
#filters button[data-filter="maritime"],
#filters button[data-filter="wildberries"]{grid-column:auto!important}

/* ===== v36-layout.css ===== */
/* v36: canonical drawer and category layout. This intentionally overrides the
   legacy mobile/flex rules instead of adding another breakpoint variation. */
#drawer:not(.search-hidden):not(.mobile-collapsed){
  box-sizing:border-box!important;
  left:18px!important;
  right:auto!important;
  top:92px!important;
  bottom:18px!important;
  width:min(520px,calc(100vw - 36px))!important;
  max-width:520px!important;
  height:auto!important;
  max-height:calc(100vh - 110px)!important;
  overflow:hidden!important;
}
#drawer #filters{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  gap:8px!important;
  flex:none!important;
  align-content:start!important;
  width:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
#drawer #filters > button{
  grid-column:auto!important;
  grid-row:auto!important;
  flex:none!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  white-space:normal!important;
  line-height:1.1!important;
}
@media (min-width:641px) and (max-width:900px){
  #drawer:not(.search-hidden):not(.mobile-collapsed){
    left:8px!important;
    right:auto!important;
    top:92px!important;
    bottom:8px!important;
    width:min(520px,calc(100vw - 16px))!important;
    max-width:520px!important;
    max-height:calc(100vh - 100px)!important;
    height:auto!important;
    border-radius:0!important;
  }
}
@media (max-width:640px){
  #drawer:not(.search-hidden):not(.mobile-collapsed){
    left:8px!important;
    right:8px!important;
    top:72px!important;
    bottom:auto!important;
    width:calc(100vw - 16px)!important;
    max-width:none!important;
    height:min(78dvh,700px)!important;
    max-height:calc(100dvh - 94px)!important;
    border-radius:10px!important;
  }
  #drawer.mobile-collapsed{height:54px!important;max-height:54px!important;overflow:hidden!important}
}

/* ===== v37-category-menu.css ===== */
/* v37: the approved ten-button category menu is always a balanced two-column grid. */
#drawer #filters{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  gap:8px!important;
  align-content:start!important;
  overflow:visible!important;
  max-height:none!important;
  width:auto!important;
}
#drawer #filters > button,
#drawer #filters button[data-filter="refineries"],
#drawer #filters button[data-filter="fuel-logistics"],
#drawer #filters button[data-filter="power"],
#drawer #filters button[data-filter="maritime"],
#drawer #filters button[data-filter="wildberries"]{
  grid-column:auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  white-space:normal!important;
  line-height:1.1!important;
}

/* v50 campaign switcher */
.campaign-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}.campaign-tabs button{min-height:42px;border:1px solid #355046;background:#0c1814;color:#d9dbd2;font:700 14px/1.1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.07em}.campaign-tabs button.active{border-color:#e47127;color:#fff2d6;background:#182018}

/* ===== v53-fixes.css ===== */
/* v53: National Effects bullet status and campaign evidence presentation. */
.status-bullets {
  margin: 0.15rem 0 0.5rem 1.15rem;
  padding: 0;
  color: rgba(232, 238, 236, .82);
}
.status-bullets li { margin: .28rem 0; }
.wildberries-evidence { margin: 1rem 0 1.25rem; }
.wildberries-evidence img { display: block; width: min(100%, 720px); height: auto; border: 1px solid rgba(224,195,78,.35); }
.wildberries-evidence figcaption { margin-top: .35rem; color: rgba(232,238,236,.68); font-size: .82rem; }

/* ===== v72-recent-strikes.css ===== */
/* v72 Recent Strikes: uses the same map-control palette as Search and Categories. */
#recentBtn{position:fixed!important;left:150px!important;top:112px!important;width:124px!important;height:42px!important;min-height:42px!important;z-index:2200!important;padding:0!important;border:1px solid #4c6d5a!important;border-radius:999px!important;background:rgba(8,12,10,.94)!important;color:#e7e3d3!important;font:700 11px/1 inherit!important;letter-spacing:1.2px!important;text-transform:uppercase!important;cursor:pointer!important;box-sizing:border-box!important}
#recentBtn:hover,#recentBtn[aria-expanded="true"]{border-color:#e2661b!important;color:#fff!important}
.facility-action-row{display:flex;align-items:stretch;gap:8px}.operational-status{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 12px;box-sizing:border-box;border:1px solid;border-radius:6px;font:800 10px/1 Arial,sans-serif;letter-spacing:.8px;text-transform:uppercase;white-space:nowrap}.operational-status.offline{border-color:#c44a43;background:rgba(91,24,22,.72);color:#ffd8d4}.operational-status.temporarily-shut-down{border-color:#c9a227;background:rgba(89,68,13,.72);color:#fff0b2}
#categoryRail{top:166px!important}
#recentPanel{display:none;position:fixed;left:18px;top:154px;width:238px;max-height:calc(100vh - 172px);overflow-y:auto;z-index:2300;background:rgba(8,12,10,.96);border:1px solid #24352c;box-shadow:0 12px 30px rgba(0,0,0,.3)}
#recentPanel.open{display:block}body.recent-open #categoryRail{display:none!important}
.recent-panel-header{position:sticky;top:0;z-index:1;background:rgba(8,12,10,.98);position:relative;padding:12px 42px 10px 12px;border-bottom:1px solid #24352c;color:#e7e3d3;font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.recent-panel-window{display:block;margin-top:4px;color:#7c8a80;font-size:8px;font-weight:400;letter-spacing:.7px}.recent-panel-close{position:absolute;right:8px;top:8px;width:24px;height:24px;padding:0;border:1px solid #4c6d5a;background:#0a0f0c;color:#e7e3d3;font-size:17px;line-height:20px;cursor:pointer}.recent-panel-close:hover{border-color:#e2661b;color:#fff}.recent-entry{display:block;width:100%;padding:10px 12px;text-align:left;border:0;border-bottom:1px solid #1d3027;background:#0b1410;color:#e7e3d3;cursor:pointer}.recent-entry:hover{background:#151f18}.recent-entry-date{display:block;color:#e2661b;font-size:8px;font-weight:800;letter-spacing:.7px;text-transform:uppercase}.recent-entry-name{display:block;margin:3px 0;color:#e7e3d3;font-size:10px;font-weight:800;line-height:1.2;text-transform:uppercase}.recent-entry-summary{display:block;color:#9aa69e;font-size:9px;line-height:1.3}.recent-panel-empty{padding:14px 12px;color:#9aa69e;font-size:10px;line-height:1.4}
@media(max-width:900px),(pointer:coarse){#recentBtn{left:8px!important;top:118px!important;width:108px!important;height:34px!important;min-height:34px!important;font-size:8px!important;letter-spacing:.7px!important}body.recent-open #recentBtn{z-index:2100!important}#categoryRail{top:166px!important}#recentPanel{left:8px;top:160px;width:210px;max-height:calc(100dvh - 172px)}.recent-entry{padding:11px 12px}.recent-entry-name{font-size:11px}.recent-entry-summary{font-size:10px}}
@media(max-width:900px),(pointer:coarse){.facility-action-row{width:100%;flex-direction:column;gap:6px}.operational-status{width:100%;min-height:42px}}

/* v74 Sites Hit master list */
#sitesHitBtn{appearance:none;display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:inherit}#sitesHitBtn:hover b{color:#fff}#sitesHitBtn:hover span{color:#d6e7db}#sitesPanel{display:none;position:fixed;right:18px;top:84px;width:292px;max-height:calc(100vh - 102px);overflow-y:auto;z-index:2400;background:rgba(8,12,10,.97);border:1px solid #24352c;box-shadow:0 12px 30px rgba(0,0,0,.42)}#sitesPanel.open{display:block}.sites-panel-header{position:sticky;top:0;z-index:2;padding:12px 42px 10px 12px;background:rgba(8,12,10,.99);border-bottom:1px solid #24352c;color:#e7e3d3;font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.sites-panel-close{position:absolute;right:8px;top:8px;width:24px;height:24px;padding:0;border:1px solid #4c6d5a;background:#0a0f0c;color:#e7e3d3;font-size:17px;line-height:20px;cursor:pointer}.sites-panel-close:hover{border-color:#e2661b;color:#fff}.sites-panel-search{display:block;width:calc(100% - 24px);margin:10px 12px;padding:9px 10px;box-sizing:border-box;border:1px solid #31483a;background:#0b1410;color:#e7e3d3;font:11px Arial,sans-serif}.sites-panel-search:focus{outline:none;border-color:#e2661b}.sites-group-title{padding:10px 12px 6px;color:#c9a227;font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.sites-entry{display:block;width:100%;padding:9px 12px;text-align:left;border:0;border-bottom:1px solid #1d3027;background:#0b1410;color:#e7e3d3;cursor:pointer}.sites-entry:hover{background:#151f18}.sites-entry-name{display:block;font-size:10px;font-weight:800;line-height:1.2;text-transform:uppercase}.sites-entry-meta{display:block;margin-top:3px;color:#9aa69e;font-size:9px;line-height:1.3}.sites-panel-empty{padding:14px 12px;color:#9aa69e;font-size:10px;line-height:1.4}
@media(max-width:900px),(pointer:coarse){#sitesPanel{right:8px;left:8px;top:68px;width:auto;max-height:calc(100dvh - 76px)}.sites-entry{padding:11px 12px}.sites-entry-name{font-size:11px}.sites-entry-meta{font-size:10px}}

/* v75: retain the original stat card and keep the desktop directory outside the right rail. */
#sitesHitBtn{border:1px solid #24352c!important;background:rgba(10,15,12,.88)!important;border-radius:0!important;box-sizing:border-box!important}
@media(min-width:901px) and (hover:hover){#sitesPanel{right:142px!important;top:84px!important;bottom:18px!important;max-height:none!important}}

/* ===== v76-photo-gallery.css ===== */
.facility-photo-gallery{position:relative;aspect-ratio:16/9;margin:0 0 10px;background:#101611;border:1px solid #35473f;overflow:hidden}
.facility-photo-slides,.facility-photo-slide{position:absolute;inset:0}
.facility-photo-slide{display:none}
.facility-photo-slide.active{display:block}
.facility-photo-slide img{display:block;width:100%;height:100%;object-fit:cover}
.facility-photo-arrow{position:absolute;top:50%;z-index:3;width:28px;height:34px;transform:translateY(-50%);border:0;background:rgba(8,12,10,.28);color:#f4efe0;font-size:24px;line-height:1;cursor:pointer;touch-action:manipulation;padding:0}
.facility-photo-arrow.previous{left:8px}
.facility-photo-arrow.next{right:8px}
.facility-photo-count{position:absolute;left:50%;bottom:7px;z-index:3;transform:translateX(-50%);padding:0;background:rgba(8,12,10,.28);color:#f4efe0;font-size:10px;letter-spacing:.5px}
@media(max-width:900px){.facility-photo-arrow{width:44px;height:52px}.facility-photo-arrow.previous{left:6px}.facility-photo-arrow.next{right:6px}}

/* ===== v78-complete-update.css ===== */
/* September 8, 2026 release refinements */
@media (min-width:901px) and (hover:hover) {
  .location-actions { width:100%; }
  .facility-action-row { width:100%; }
  .operational-status { margin-left:auto; }
}

/* Keep gallery controls compact and subordinate to the photo. */
.facility-photo-arrow { width:24px; height:30px; background:rgba(8,12,10,.18); font-size:20px; }
.facility-photo-count { bottom:6px; padding:1px 4px; background:rgba(8,12,10,.42); border-radius:3px; }
@media (max-width:900px), (pointer:coarse) {
  .facility-photo-arrow { width:40px; height:48px; }
}

/* ===== v80-readability.css ===== */
/* Readability pass: keep facility roles and outputs scannable. */
.facility-fact-line { margin-top: 6px; color: #c8d2c9; }
.facility-fact-list { margin-top: 8px; color: #c8d2c9; }
.facility-fact-list b { color: #f0d36a; font-size: 10px; letter-spacing: .55px; text-transform: uppercase; }
.facility-fact-list ul { margin: 4px 0 0 18px; padding: 0; }
.facility-fact-list li { margin: 2px 0; line-height: 1.35; }
.facility-fact-note { margin-top: 6px; color: #8d9a91; }
.facility-action-row { flex-wrap: wrap; align-items: center; }
.satellite-note { flex: 1 1 180px; min-width: 170px; }
@media (max-width:900px), (pointer:coarse) {
  .facility-action-row { width: 100%; flex-direction: row; align-items: center; }
  .satellite-action { width: auto; flex: 0 0 auto; }
  .satellite-note { flex: 1 1 180px; min-width: 0; }
  .operational-status { width: auto; flex: 0 0 auto; }
}

/* ===== v82-status-badge.css ===== */
.operational-status{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.operational-status.operations-impacted{background:#f4d58d;color:#4a3200}

/* ===== v120-final-layout.css ===== */
/* Preserve full portrait facility images instead of cropping them into a 16:9 frame. */
.facility-photo-gallery{aspect-ratio:auto!important;overflow:visible!important;height:auto!important}
.facility-photo-slides{position:relative!important;inset:auto!important}
.facility-photo-slide{position:relative!important;inset:auto!important;width:100%;height:auto!important}
.facility-photo-slide img{display:block;width:100%;height:auto!important;max-height:none!important;object-fit:contain!important}
#detailInner > .thumb{aspect-ratio:auto!important;height:auto!important;overflow:visible!important}
#detailInner > .thumb img{display:block;width:100%;height:auto!important;max-height:none!important;object-fit:contain!important}

/* ===== v121-mobile-interaction.css ===== */
/* v121 mobile interaction pass: keep overlays mutually exclusive and make
   touch targets usable on phones. */
@media (max-width:900px),(pointer:coarse){
  #sitesPanel{
    top:calc(env(safe-area-inset-top) + 68px)!important;
    max-height:calc(100dvh - env(safe-area-inset-top) - 76px)!important;
    z-index:5050!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
    touch-action:manipulation!important;
  }
  body.sites-open #searchBtn,
  body.sites-open #recentBtn,
  body.sites-open #categoryRail,
  body.sites-open #categoryRestore,
  body.search-open #recentBtn,
  body.recent-open #searchBtn{
    visibility:hidden!important;
    pointer-events:none!important;
  }
  body.search-open #sitesPanel,
  body.recent-open #sitesPanel,
  body.detail-open #sitesPanel,
  body.detail-open #recentPanel{
    visibility:hidden!important;
    pointer-events:none!important;
  }
  .sites-panel-header{min-height:44px!important;padding-right:62px!important;box-sizing:border-box!important}
  .sites-panel-search{min-height:44px!important;font-size:16px!important;touch-action:manipulation!important}
  .sites-entry{min-height:44px!important;touch-action:manipulation!important}
  .sites-panel-close,
  .recent-panel-close{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    right:6px!important;
    top:6px!important;
    font-size:22px!important;
    line-height:40px!important;
    touch-action:manipulation!important;
  }
  #searchBtn,#recentBtn,#basemapToggle,#categoryRestore,#categoryHide,#infoBtn,#drawerOpen,
  .satellite-action{min-height:44px!important;touch-action:manipulation!important}
  #infoBtn{width:44px!important;height:44px!important}
  #categoryHide,#categoryRestore{width:44px!important;height:44px!important}
  #basemapToggle{padding:12px 10px!important}
}

/* ===== v123-timeline.css ===== */
/* v123: searchable strike timeline opened from the Share control. */
#stats .share-control{display:flex!important;flex-direction:column!important;gap:6px!important}
#stats .share-control #timelineBtn{display:block!important;width:100%!important;padding:7px 12px!important;border:1px solid rgba(137,177,154,.55)!important;border-radius:999px!important;background:rgba(17,32,26,.9)!important;color:#dcefe3!important;font:inherit!important;cursor:pointer!important}
#stats .share-control #timelineBtn:hover,#stats .share-control #timelineBtn:focus-visible{border-color:#e2661b!important;color:#fff!important;outline:none!important}
#timelinePanel{display:none;position:fixed;right:18px;top:84px;bottom:18px;width:min(560px,calc(100vw - 180px));overflow-y:auto;z-index:2450;background:rgba(10,18,16,.97);border:1px solid rgba(132,166,149,.45);border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.45);padding:14px;color:#e8f1eb}
#timelinePanel.open{display:block}
.timeline-panel-header{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;margin-bottom:10px}
.timeline-panel-header small{font-size:11px;font-weight:500;color:#9fb2a6;margin-left:auto}
.timeline-panel-close{border:0;background:transparent;color:#cbd8cf;font-size:24px;line-height:1;cursor:pointer;padding:2px 5px}
.timeline-controls{display:grid;grid-template-columns:minmax(0,1fr) 108px 150px;gap:7px;margin-bottom:11px}
.timeline-search,.timeline-filter{min-width:0;border:1px solid rgba(132,166,149,.42);border-radius:7px;background:#12231d;color:#eef7f0;padding:8px 9px;font:inherit;font-size:12px}
.timeline-search::placeholder{color:#91a59a}
.timeline-entry{border-top:1px solid rgba(132,166,149,.22);padding:11px 0 12px}
.timeline-entry-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.timeline-entry-date{color:#f1b37f;font-size:11px;font-weight:700;letter-spacing:.02em}
.timeline-entry-name{font-size:14px;font-weight:700;color:#f0f6f1}
.timeline-entry-location{font-size:11px;color:#9fb2a6;width:100%}
.timeline-entry-summary{margin:6px 0 8px;color:#d0ddd4;font-size:12px;line-height:1.42}
.timeline-entry-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.timeline-entry-meta .conf{font-size:10px}
.timeline-open{margin-left:auto;border:1px solid rgba(226,102,27,.65);border-radius:999px;background:transparent;color:#f0b187;padding:5px 9px;font:inherit;font-size:11px;cursor:pointer}
.timeline-open:hover,.timeline-open:focus-visible{background:#e2661b;color:#fff;outline:none}
.timeline-empty{padding:18px 4px;color:#a9b8ae;font-size:12px}
.marker-shape-depot{border-radius:3px!important}
.marker-shape-terminal{border-radius:3px!important;transform:rotate(45deg)}
.marker-shape-gas{border-radius:5px!important}
.marker-shape-petro{border-radius:5px!important;clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%)}
.marker-shape-military,.marker-shape-defense{border-radius:2px!important;transform:rotate(45deg)}
.wb-location-marker{width:16px!important;height:16px!important;border-radius:4px!important;transform:rotate(45deg);box-shadow:0 0 13px rgba(216,66,140,.8)!important}
.ozon-location-marker{width:18px!important;height:18px!important;border-radius:3px!important;transform:rotate(45deg)}
#legend .marker-key{border-top:1px solid rgba(132,166,149,.28);margin-top:7px;padding-top:6px;line-height:1.7}
#legend .key-marker{display:inline-block;width:10px;height:10px;margin:0 7px 0 2px;vertical-align:-1px;border:1px solid #eef5ee;background:#e2661b}
#legend .key-marker.depot{background:#d1453a;border-radius:2px}
#legend .key-marker.terminal{background:#4b8cc9;transform:rotate(45deg);border-radius:2px}
#legend .key-marker.petro{background:#c9a227;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
#legend .key-marker.military{background:#e7e3d3;transform:rotate(45deg);border-radius:1px}
#legend .key-marker.wb{background:#d8428c;border-radius:3px;transform:rotate(45deg)}
#legend .key-marker.ozon{background:#4b9bd0;border-radius:2px;transform:rotate(45deg)}
.source-details{margin-top:13px;border-top:1px solid rgba(132,166,149,.24);padding-top:8px}
.source-details>summary{list-style:none;cursor:pointer;color:#c9a227;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between;padding:2px 0}
.source-details>summary::-webkit-details-marker{display:none}
.source-details>summary::after{content:'⌄';font-size:17px;line-height:12px;color:#e7c875}
.source-details[open]>summary::after{content:'⌃'}
.source-details .sources{margin-top:5px}
.source-details .sources a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;margin-top:5px;font-size:11px}
.source-details .sources a span:last-child{border:0;padding:0;margin:0;color:#e7c875;font-size:14px}
@media(max-width:900px),(pointer:coarse){
  #timelinePanel{left:8px;right:8px;top:68px;bottom:8px;width:auto;border-radius:10px;padding:12px}
  .timeline-controls{grid-template-columns:1fr 1fr;}
  .timeline-search{grid-column:1 / -1}
  .timeline-entry-summary{font-size:13px}
  .timeline-open{min-height:34px;padding:7px 11px}
  #legend .marker-key{display:none}
}

/* ===== v124-final-polish.css ===== */
/* v124 final polish: responsive legend, marker visibility, and status layout. */
#legend{box-sizing:border-box;max-width:min(290px,calc(100vw - 24px));max-height:calc(100vh - 44px);overflow:auto;line-height:1.35}
#legend .marker-key{display:grid;gap:2px;line-height:1.55}
#legend .marker-key>div{display:flex;align-items:center;flex-wrap:wrap;column-gap:2px}
#legend .key-marker{flex:0 0 auto}
#legend .key-marker.wb{transform:none;border-radius:4px;background:#d8428c}
#legend .key-marker.ozon{transform:rotate(45deg);background:#4b9bd0}
#legend .key-marker.gas{background:#8b70d6;border-radius:5px}
#legend .key-marker.power{background:#ffd647;border-radius:50%}
#legend .key-marker.maritime{background:#4b8cc9;border-radius:50%}
#basemapToggle{bottom:210px!important}
.power-campaign-marker{width:38px!important;height:38px!important;font-size:25px!important;filter:drop-shadow(0 0 14px rgba(255,214,71,.95))!important}
.ship-marker{min-width:38px!important;min-height:24px!important;font-size:21px!important;filter:drop-shadow(0 0 14px #ff6b22)!important}
.wb-location-marker{width:17px!important;height:17px!important;transform:none!important;border-radius:5px!important;box-shadow:0 0 15px rgba(216,66,140,.9)!important}
.source-details + .single-source{margin-top:10px}
.single-source .sources a{display:flex;align-items:center;justify-content:space-between;gap:8px}
.operational-status{display:inline-flex;align-items:center;min-height:28px;padding:5px 8px;border:1px solid #4c6d5a;border-radius:6px;background:rgba(12,24,17,.8);color:#d8eddf;font:800 10px/1 Arial,sans-serif;letter-spacing:.6px;text-transform:uppercase}
.operational-status.operations-impacted{border-color:#d79c36;color:#f2d08e}
.operational-status.destroyed{border-color:#d1453a;color:#ffb0a8}
@media (min-width:901px) and (max-height:760px){#basemapToggle{bottom:220px!important}}
@media (max-width:900px),(pointer:coarse){
  #basemapToggle{bottom:78px!important}
  body.satellite-focus #basemapToggle{bottom:54px!important}
  .power-campaign-marker{width:38px!important;height:38px!important;font-size:25px!important}
  .ship-marker{min-width:38px!important;min-height:24px!important;font-size:20px!important}
  #legend{display:none!important}
}

/* ===== v126-release-fixes.css ===== */
#legend{width:280px;max-width:calc(100vw - 24px);overflow:visible}
#legend .marker-key{display:grid;gap:7px;line-height:1.2}
#legend .marker-key>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:center}
#legend .marker-key>div:nth-child(n+3){grid-template-columns:repeat(2,minmax(0,1fr))}
#legend .legend-item{display:flex;align-items:center;gap:5px;white-space:nowrap}
#basemapToggle{bottom:300px!important}
.metrics.wb-campaign-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.metrics .metric .stacked-label{line-height:1.05}
@media(max-width:900px){#legend{width:min(270px,calc(100vw - 20px))}#basemapToggle{bottom:78px!important}.metrics.wb-campaign-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== v129-ui-fixes.css ===== */
/* v129: unified campaign, timeline, marker, status, and small-screen behavior. */

/* The standalone timeline is the only interactive surface while open. */
#timelinePanel{z-index:9000!important;overflow:hidden!important;display:none;grid-template-rows:auto auto minmax(0,1fr)}
#timelinePanel.open{display:grid!important}
.timeline-panel-header{position:sticky;top:0;z-index:3;margin:0 0 10px;padding:2px 54px 10px 0;background:rgba(10,18,16,.99);border-bottom:1px solid rgba(132,166,149,.25)}
.timeline-panel-close{position:absolute!important;right:0;top:0;z-index:4;min-width:44px;min-height:44px;border:1px solid #e2661b!important;border-radius:7px!important;background:#0b1511!important;color:#fff!important;touch-action:manipulation}
.timeline-results{min-height:0;overflow-y:auto;padding-right:4px}
body.timeline-open #topbar,body.timeline-open #detail,body.timeline-open #drawer,body.timeline-open #drawerOpen,
body.timeline-open #recentPanel,body.timeline-open #sitesPanel,body.timeline-open #legend,
body.timeline-open #categoryRail,body.timeline-open #categoryRestore,body.timeline-open #basemapToggle{
  visibility:hidden!important;pointer-events:none!important
}
body.timeline-open #timelinePanel{visibility:visible!important;pointer-events:auto!important}

/* Do not leave unrelated floating controls behind an open master panel. */
body.sites-open #topbar>*:not(#stats),body.sites-open #searchBtn,body.sites-open #recentBtn,
body.sites-open #categoryRail,body.sites-open #categoryRestore,body.sites-open #basemapToggle,
body.search-open #basemapToggle,body.recent-open #basemapToggle{visibility:hidden!important;pointer-events:none!important}

/* Campaign directories share one compact, collapsible pattern. */
.campaign-location-directory{margin:16px 0;border-top:1px solid #24352c;border-bottom:1px solid #24352c}
.campaign-location-directory>summary{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:0 4px;list-style:none;cursor:pointer;color:#c9a227;font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase}
.campaign-location-directory>summary::-webkit-details-marker{display:none}
.campaign-location-directory>summary::after{content:'⌄';font-size:18px}
.campaign-location-directory[open]>summary::after{content:'⌃'}
.campaign-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 0 10px}
.campaign-location-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;align-items:center;width:100%;min-height:56px;padding:9px 10px!important;text-align:left!important;border:1px solid #2a3d33!important;border-radius:7px!important;background:#0c1611!important;color:#e7e3d3!important;cursor:pointer}
.campaign-location-card:hover,.campaign-location-card:focus-visible{border-color:#e2661b!important;outline:none;background:#132019!important}
.campaign-location-copy{min-width:0}
.campaign-location-name{display:block;font-size:13px;font-weight:800;line-height:1.15;text-transform:none}
.campaign-location-region{display:block;margin-top:3px;color:#96a49b;font-size:10px;line-height:1.25}
.campaign-location-status{grid-column:2;grid-row:1 / span 2;align-self:center;padding:5px 7px;border:1px solid #4c6d5a;border-radius:5px;font-size:8px;font-weight:900;line-height:1.05;letter-spacing:.35px;text-align:center;text-transform:uppercase;white-space:normal;max-width:92px}
.campaign-location-status.operations-impacted{border-color:#d79c36;background:#f4d58d;color:#1f1600}
.campaign-location-status.destroyed{border-color:#d1453a;background:#681e1a;color:#fff0ed}
.campaign-location-heading{display:flex;align-items:center;gap:9px}
.campaign-brand-mark{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:25px;padding:0 7px;border-radius:6px;font-size:10px;font-weight:900;letter-spacing:.4px;vertical-align:middle}
.campaign-brand-mark.wb{background:linear-gradient(135deg,#8d2de2,#e83b88);color:#fff}
.campaign-brand-mark.ozon{background:#146ef5;color:#fff}
.campaign-location-detail-region{margin-top:-2px!important;font-size:12px!important}

/* Status badges match the Satellite View action. */
.operational-status{min-height:38px!important;padding:9px 12px!important;border-radius:6px!important;font:800 10px/1 Arial,sans-serif!important;letter-spacing:.8px!important;box-sizing:border-box!important}
.operational-status.operations-impacted{border-color:#d79c36!important;background:#f4d58d!important;color:#181100!important}
.operational-status.offline,.operational-status.destroyed{border-color:#d1453a!important;background:#681e1a!important;color:#fff0ed!important}
.operational-status.temporarily-shut-down{border-color:#c9a227!important;background:#5b460e!important;color:#fff0b2!important}

/* Satellite map toggle sits at the bottom-right unless a panel needs the space. */
#basemapToggle{right:10px!important;bottom:8px!important;z-index:1250!important}
@media(min-width:901px){body.detail-open #basemapToggle{right:532px!important}}
body.timeline-open #basemapToggle,body.sites-open #basemapToggle,body.search-open #basemapToggle,body.recent-open #basemapToggle{display:none!important}

/* Campaign markers remain above ordinary dots. */
.campaign-marker-icon{z-index:3200!important;pointer-events:auto!important}
.campaign-marker-icon .power-campaign-marker,.campaign-marker-icon .ship-marker{position:relative;z-index:2}

/* Zoom-responsive visual size. Leaflet's icon wrapper remains the larger hit target. */
#map .leaflet-marker-icon .marker,#map .leaflet-marker-icon .wb-location-marker,#map .leaflet-marker-icon .ozon-location-marker{transform-origin:center!important;transition:scale .12s ease,filter .12s ease,box-shadow .12s ease;position:relative}
#map .leaflet-marker-icon .marker::after,#map .leaflet-marker-icon .wb-location-marker::after,#map .leaflet-marker-icon .ozon-location-marker::after{content:'';position:absolute;inset:-7px}
#map.marker-zoom-far .leaflet-marker-icon .marker,#map.marker-zoom-far .leaflet-marker-icon .wb-location-marker,#map.marker-zoom-far .leaflet-marker-icon .ozon-location-marker{scale:.34;box-shadow:none!important;filter:none!important;border-width:1px!important}
#map.marker-zoom-mid .leaflet-marker-icon .marker,#map.marker-zoom-mid .leaflet-marker-icon .wb-location-marker,#map.marker-zoom-mid .leaflet-marker-icon .ozon-location-marker{scale:.52;box-shadow:none!important;filter:none!important;border-width:1px!important}
#map.marker-zoom-near .leaflet-marker-icon .marker,#map.marker-zoom-near .leaflet-marker-icon .wb-location-marker,#map.marker-zoom-near .leaflet-marker-icon .ozon-location-marker{scale:.75}
#map.marker-zoom-far .campaign-marker-icon{scale:.82}

.crimea-campaign-header h2{margin-bottom:8px!important}
.crimea-campaign-intro{margin:0 0 12px;color:#cbd8cf;font-size:13px;line-height:1.5}
.campaign-date-range{margin:10px 0 14px;color:#cbd8cf;font-size:12px}
.campaign-milestones{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:12px 0 18px}
.campaign-milestone{padding:8px 3px;border:1px solid #2b4136;background:#0d1712;text-align:center}
.campaign-milestone b{display:block;color:#e2661b;font-size:17px;line-height:1}
.campaign-milestone span{display:block;margin-top:4px;color:#8fa096;font-size:8px;text-transform:uppercase}

/* Replace the ambiguous mobile + with a readable Filters control. */
#categoryRestore{width:108px!important;height:34px!important;min-height:34px!important;padding:0 10px!important;border-radius:999px!important;font:800 9px/1 Arial,sans-serif!important;letter-spacing:.8px!important;text-transform:uppercase!important;white-space:nowrap}
#categoryRestore span{margin-right:5px;font-size:12px}

@media(max-width:900px),(pointer:coarse){
  #timelinePanel{inset:6px!important;width:auto!important;border-radius:10px!important;padding:12px!important}
  .timeline-controls{grid-template-columns:1fr 1fr!important}
  .timeline-search{grid-column:1 / -1;font-size:16px!important;min-height:44px}
  .timeline-filter{min-height:42px;font-size:13px!important}
  .timeline-entry-meta{flex-wrap:wrap;gap:8px}
  .timeline-open{margin-left:auto}
  .campaign-location-grid{grid-template-columns:1fr}
  .campaign-location-card{min-height:60px}
  .campaign-milestones{grid-template-columns:repeat(3,minmax(0,1fr))}
  .facility-action-row{align-items:stretch!important;flex-wrap:wrap}
  .satellite-action,.operational-status{min-height:44px!important;padding:11px 12px!important}
  body.detail-open #basemapToggle{display:none!important}
  #categoryRestore{left:8px!important;top:160px!important;right:auto!important;bottom:auto!important;z-index:2200!important}
  #stats .share-control{right:8px!important;width:68px!important;box-sizing:border-box!important}
  #stats .share-control button,#stats .share-control #timelineBtn{width:68px!important;box-sizing:border-box!important;overflow:hidden!important;font-size:8px!important;padding-left:5px!important;padding-right:5px!important}
}

@media(max-width:420px){
  #topbar .brand>div:last-child,#titleGroup{max-width:160px!important;width:160px!important}
  #titleLine{font-size:12px!important;letter-spacing:.8px!important}
  #updatedLine{font-size:7px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  #infoBtn{width:36px!important;height:36px!important;right:82px!important;top:8px!important}
}

/* ===== v130-ui-fixes.css ===== */
/* v130: responsive search, category/legend parity, campaign metrics and supplied brand assets. */
#categoryRestore{width:124px!important}
.campaign-brand-mark{width:auto!important;max-width:112px!important;height:26px!important;padding:0!important;background:transparent!important;overflow:hidden}
.campaign-brand-mark img{display:block;width:auto;height:100%;max-width:112px;object-fit:contain}
.campaign-brand-mark.ozon img{max-width:72px}
.campaign-metrics-four{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}
.campaign-metrics-four .metric{min-width:0!important;text-align:center!important}
.campaign-metrics-four .metric span{line-height:1.12!important}
#legend .marker-key .legend-item{appearance:none;display:inline-flex;align-items:center;cursor:pointer;border:1px solid transparent;padding:3px 4px;border-radius:4px;background:transparent;color:inherit;font:inherit}
#legend .marker-key .legend-item:hover,#legend .marker-key .legend-item:focus-visible{border-color:#e2661b;color:#fff;outline:none}
#legend .key-marker.power{background:#3f9edb!important}
#map.marker-zoom-far .campaign-marker-icon{scale:.58!important}
#map.marker-zoom-mid .campaign-marker-icon{scale:.72!important}

@media(max-width:900px),(pointer:coarse){
  body.search-open #topbar,body.search-open #categoryRail,body.search-open #categoryRestore,
  body.search-open #basemapToggle,body.search-open #legend{visibility:hidden!important;pointer-events:none!important}
  #drawer:not(.search-hidden){inset:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;padding:64px 0 env(safe-area-inset-bottom)!important;border:0!important;border-radius:0!important;z-index:7000!important;display:grid!important;grid-template-rows:auto auto minmax(0,1fr)!important;overflow:hidden!important}
  #drawer:not(.search-hidden) #drawerHeader,#drawer:not(.search-hidden) #methodology{display:none!important}
  #drawer:not(.search-hidden) #search{grid-row:1;width:calc(100% - 76px)!important;height:46px!important;min-height:46px!important;margin:8px 64px 8px 12px!important;padding:10px 12px!important;font-size:16px!important;box-sizing:border-box!important}
  #drawer:not(.search-hidden) #drawerClose{display:block!important;right:12px!important;top:72px!important;width:44px!important;height:46px!important}
  #drawer:not(.search-hidden) .filters{grid-row:2;display:flex!important;min-height:44px!important;max-height:none!important;padding:0 12px 8px!important;gap:6px!important;overflow-x:auto!important;overflow-y:hidden!important}
  #drawer:not(.search-hidden) .filters button{height:38px!important;min-width:78px!important;padding:6px 8px!important;font-size:9px!important}
  #drawer:not(.search-hidden) #list{grid-row:3;min-height:0!important;height:auto!important;padding:0 12px calc(env(safe-area-inset-bottom) + 12px)!important;overflow-y:auto!important}
  .campaign-metrics-four{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important}
  .campaign-metrics-four .metric{padding:8px 1px!important}
  .campaign-metrics-four .metric b{font-size:16px!important}
  .campaign-metrics-four .metric span{font-size:7px!important;letter-spacing:.25px!important}
}

/* ===== v132-ui-fixes.css ===== */
/* v132: one subtle orange-accented Categories dropdown, left navigation stack, and compact status stack. */
:root {
  --right-col: 68px !important;
}

#categoryRestore {
  display: none !important;
  position: fixed !important;
  left: 18px !important;
  top: 96px !important;
  width: 124px !important;
  height: 42px !important;
  min-height: 42px !important;
  padding: 0 12px !important;
  z-index: 2200 !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  border: 1px solid rgba(226, 102, 27, .52) !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(19, 25, 20, .96), rgba(9, 14, 11, .96)) !important;
  color: #ded8ca !important;
  box-shadow: inset 0 0 12px rgba(226, 102, 27, .06), 0 7px 18px rgba(0, 0, 0, .24) !important;
  font: 800 9px/1 Arial, sans-serif !important;
  letter-spacing: .9px !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

#categoryRestore.show {
  display: flex !important;
}

#categoryRestore::before {
  content: "";
  width: 12px;
  height: 2px;
  flex: 0 0 12px;
  border-radius: 2px;
  background: #d76a28;
  box-shadow: 0 -4px 0 #d76a28, 0 4px 0 #d76a28;
  opacity: .82;
}

#categoryRail.hidden {
  display: none !important;
}

#categoryRail.hidden #categoryButtons {
  display: none !important;
}

/* Keep the logo as the left anchor. Search is vertically centered beside it;
   Categories and Recent Strikes form one clear stack beneath the logo. */
#searchBtn,
#topActions #searchBtn {
  visibility: visible !important;
  pointer-events: auto !important;
  position: fixed !important;
  left: 98px !important;
  top: 31px !important;
  width: 124px !important;
  min-height: 42px !important;
  transform: none !important;
  z-index: 5020 !important;
}

#categoryRail,
#categoryRail:not(.hidden) {
  position: fixed !important;
  left: 18px !important;
  top: 96px !important;
  width: 124px !important;
  max-width: 238px !important;
  box-sizing: border-box !important;
}

#categoryRail:not(.hidden) {
  width: 238px !important;
  border-color: #e2661b !important;
}

#categoryHeader {
  display: block !important;
  width: 100% !important;
  min-height: 28px !important;
  padding: 0 !important;
}

#categoryHide {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  width: 100% !important;
  min-height: 28px !important;
  padding: 0 8px !important;
  border: 1px solid rgba(226, 102, 27, .52) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #e7e3d3 !important;
  font: 800 9px/1 inherit !important;
  letter-spacing: 1.15px !important;
  text-align: center !important;
  cursor: pointer !important;
}

#categoryHide::before {
  content: "";
  width: 12px;
  height: 2px;
  flex: 0 0 12px;
  border-radius: 2px;
  background: #d76a28;
  box-shadow: 0 -4px 0 #d76a28, 0 4px 0 #d76a28;
  opacity: .82;
}

#recentBtn {
  position: fixed !important;
  left: 18px !important;
  top: 150px !important;
  width: 124px !important;
  height: 42px !important;
  min-height: 42px !important;
  z-index: 2200 !important;
  box-sizing: border-box !important;
}

#stats .stat {
  height: 44px !important;
  min-height: 44px !important;
  padding: 3px 4px !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

#stats .stat b {
  margin: 0 !important;
  line-height: 1 !important;
}

#stats .stat span {
  margin: 2px 0 0 !important;
  line-height: 1 !important;
}

#stats .campaign-control {
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  min-height: 0 !important;
  height: 34px !important;
  padding: 0 !important;
  align-self: center !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#stats .campaign-control button {
  margin: 0 !important;
}

#stats .share-control {
  width: var(--right-col) !important;
  min-width: var(--right-col) !important;
  max-width: var(--right-col) !important;
  box-sizing: border-box !important;
}

#stats .share-control button,
#stats .share-control #timelineBtn {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 900px), (pointer: coarse) {
  :root {
    --right-col: 58px !important;
  }

  #categoryRail.v30-mobile-collapsed {
    display: flex !important;
  }

  #searchBtn,
  #topActions #searchBtn {
    left: 68px !important;
    top: 14px !important;
    width: 108px !important;
    min-height: 34px !important;
  }

  #categoryRail,
  #categoryRail:not(.hidden) {
    left: 8px !important;
    top: 64px !important;
    width: 108px !important;
    max-width: calc(100vw - 16px) !important;
  }

  #categoryRail:not(.hidden) {
    width: 210px !important;
  }

  #categoryRestore,
  #categoryRestore.show {
    left: 8px !important;
    top: 64px !important;
    width: 108px !important;
    height: 44px !important;
    min-height: 44px !important;
  }

  #recentBtn {
    left: 8px !important;
    top: 118px !important;
    width: 108px !important;
    height: 34px !important;
    min-height: 34px !important;
  }

  #stats .stat {
    height: 40px !important;
    min-height: 40px !important;
    padding: 2px 3px !important;
  }

  #stats .campaign-control {
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
  }
}

/* Campaign strike records are facility links in both marketplace tabs. */
.marketplace-event[data-location-id] {
  cursor: pointer !important;
}
.marketplace-event[data-location-id]:hover,
.marketplace-event[data-location-id]:focus-visible {
  border-color: #e2661b !important;
  outline: 1px solid rgba(226,102,27,.45) !important;
  outline-offset: 2px !important;
}

@media (max-width: 430px) {
  :root {
    --right-col: 54px !important;
  }
}

/* v137: Share → Recent Strikes → Timeline in one consistent right-side stack. */
#stats .share-control {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  padding-bottom: 2px !important;
}

#stats .share-control #recentBtn,
#stats .share-control #timelineBtn,
#stats .share-control > button {
  position: static !important;
  inset: auto !important;
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 34px !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 0 8px !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(137,177,154,.55) !important;
  border-radius: 999px !important;
  background: rgba(17,32,26,.9) !important;
  color: #dcefe3 !important;
  font-size: 9px !important;
  letter-spacing: .65px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
}

#stats .share-control #recentBtn:hover,
#stats .share-control #recentBtn[aria-expanded="true"] {
  border-color: #e2661b !important;
  color: #fff !important;
}

/* v138: requested map-control and panel placement. */
#basemapToggle {
  position: fixed !important;
  left: 18px !important;
  right: auto !important;
  top: auto !important;
  bottom: 18px !important;
  z-index: 2200 !important;
}

#legend {
  bottom: 72px !important;
}

#recentPanel {
  left: auto !important;
  right: 112px !important;
  top: 132px !important;
  width: min(330px, calc(100vw - 36px)) !important;
  max-height: calc(100dvh - 150px) !important;
}

#timelinePanel {
  right: 112px !important;
  z-index: 5100 !important;
}

#recentPanel {
  z-index: 5100 !important;
}

body.timeline-open #stats .share-control,
body.recent-open #stats .share-control {
  display: none !important;
  pointer-events: none !important;
}

.timeline-entry[role="button"] { cursor: pointer; }
.timeline-entry[role="button"]:hover,
.timeline-entry[role="button"]:focus-visible {
  background: rgba(226, 102, 27, .07);
  outline: 1px solid rgba(226, 102, 27, .5);
  outline-offset: 3px;
}

.marketplace-identity {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
}

.marketplace-identity > strong {
  flex: 0 1 auto !important;
  min-width: 0 !important;
  font-size: 24px !important;
  line-height: 1 !important;
}

.marketplace-identity .campaign-brand-mark {
  height: 29px !important;
  max-width: 122px !important;
  flex: 0 0 auto !important;
  margin-left: 10px !important;
}

.marketplace-identity .campaign-brand-mark.ozon { height: 20px !important; max-width: 86px !important; }
.marketplace-identity .campaign-brand-mark.ozon img { max-width: 59px !important; }
.marketplace-identity .operational-status {
  margin-left: 18px !important;
  flex: 0 0 auto !important;
}

.campaign-location-heading .campaign-brand-mark { margin-left: 8px !important; }
.marketplace-identity .operational-status.operations-impacted {
  min-height: 25px !important;
  padding: 4px 7px !important;
  font-size: 9px !important;
  letter-spacing: .45px !important;
}

#impactBtn {
  font-size: 21px !important;
  line-height: 1 !important;
}

@media (max-width: 900px), (pointer: coarse) {
  #basemapToggle {
    left: 8px !important;
    bottom: 8px !important;
  }

  #legend {
    bottom: 58px !important;
  }

  #recentPanel {
    left: 8px !important;
    right: 68px !important;
    top: 64px !important;
    bottom: 8px !important;
    width: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    background: rgba(10, 18, 16, .985) !important;
    z-index: 9000 !important;
  }

  #timelinePanel {
    left: 8px !important;
    right: 68px !important;
    top: 64px !important;
    bottom: 8px !important;
    width: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    background: rgba(10, 18, 16, .985) !important;
    z-index: 9000 !important;
  }

  .marketplace-identity > strong { font-size: 20px !important; }
  .marketplace-identity .campaign-brand-mark { height: 22px !important; }
  .marketplace-identity .campaign-brand-mark.ozon { height: 17px !important; max-width: 60px !important; }
  .marketplace-identity .campaign-brand-mark.ozon img { max-width: 42px !important; }
  .marketplace-identity .operational-status { margin-left: 10px !important; }
}

/* v140: make the title a real pointer target and keep the map key above the
   lower-left satellite control at every viewport size. */
#titleGroup {
  pointer-events: auto !important;
  cursor: pointer !important;
}
#titleGroup:focus-visible {
  outline: 2px solid #e2661b !important;
  outline-offset: 5px !important;
  border-radius: 4px !important;
}
#legend {
  left: 12px !important;
  right: auto !important;
  bottom: 76px !important;
  display: block !important;
}
body.timeline-open #legend { visibility: hidden !important; }
@media (max-width: 900px), (pointer: coarse) {
  #legend {
    left: 8px !important;
    right: auto !important;
    bottom: 62px !important;
    width: min(270px, calc(100vw - 20px)) !important;
    display: block !important;
  }
}

/* v141: full-height search drawer and a viewport-anchored map legend. */
body.search-open #drawer {
  position: fixed !important;
  inset: 0 auto 0 0 !important;
  width: min(420px, 100vw) !important;
  height: 100dvh !important;
  max-height: none !important;
  padding: 64px 0 18px !important;
  overflow: hidden !important;
  z-index: 10000 !important;
  box-sizing: border-box !important;
  border: 1px solid #24352c !important;
  box-shadow: 18px 0 40px rgba(0,0,0,.38) !important;
}
body.search-open #drawer #search {
  display: block !important;
  flex: 0 0 auto !important;
  margin: 0 14px 10px !important;
  padding: 10px 12px !important;
  min-height: 42px !important;
  box-sizing: border-box !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}
body.search-open #drawer .filters {
  flex: 0 0 auto !important;
}
body.search-open #drawer #list {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  padding-bottom: 18px !important;
}

#searchBtn {
  width: 94px !important;
  min-width: 94px !important;
  padding: 7px 9px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .8px !important;
  box-sizing: border-box !important;
}

#legend {
  position: fixed !important;
  left: 12px !important;
  right: auto !important;
  bottom: 76px !important;
  width: min(250px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100dvh - 104px) !important;
  box-sizing: border-box !important;
  overflow: auto !important;
  margin: 0 !important;
  z-index: 1300 !important;
}

@media (max-width: 900px), (pointer: coarse) {
  body.search-open #drawer {
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    padding: 64px 0 calc(env(safe-area-inset-bottom) + 14px) !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 0 !important;
    border-radius: 0 !important;
  }
  body.search-open #drawer #search {
    margin: 0 14px 10px !important;
    padding: 11px 12px !important;
    min-height: 44px !important;
    font-size: 16px !important;
  }
  #searchBtn {
    width: 88px !important;
    min-width: 88px !important;
    height: 30px !important;
    min-height: 30px !important;
    font-size: 10px !important;
    letter-spacing: .6px !important;
  }
  #legend {
    left: 8px !important;
    bottom: 62px !important;
    width: min(250px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 90px) !important;
  }
}

/* v142: movable, resizable, single-row legend without the boundary label. */
#legend {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  width: min(760px, calc(100vw - 24px)) !important;
  min-width: 220px !important;
  min-height: 34px !important;
  max-width: calc(100vw - 24px) !important;
  max-height: 72px !important;
  box-sizing: border-box !important;
  padding: 6px 8px !important;
  overflow: auto !important;
  resize: both !important;
  overscroll-behavior: contain;
}
#legend > div { margin: 0 !important; }
#legend .legend-drag-handle {
  flex: 0 0 auto !important;
  user-select: none;
  touch-action: none;
  cursor: grab;
  color: #e2661b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .9px;
  text-transform: uppercase;
  padding-right: 8px;
  border-right: 1px solid rgba(132,166,149,.32);
}
#legend .legend-drag-handle.dragging { cursor: grabbing; }
#legend .marker-key {
  display: flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 3px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-top: 0 !important;
  line-height: 1.2 !important;
  min-width: max-content !important;
}
#legend .marker-key .legend-item {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  gap: 4px !important;
  white-space: nowrap !important;
  appearance: none;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 10px;
  padding: 3px 4px;
  cursor: pointer;
}
#legend .marker-key .legend-item:hover,
#legend .marker-key .legend-item:focus-visible {
  border-color: #e2661b;
  color: #fff;
  outline: none;
}
@media (max-width: 900px), (pointer: coarse) {
  #legend {
    left: 8px !important;
    right: auto !important;
    bottom: 62px !important;
    width: min(760px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    min-width: 180px !important;
    max-height: 64px !important;
  }
  #legend .legend-drag-handle { font-size: 9px; padding-right: 6px; }
  #legend .marker-key .legend-item { font-size: 9px; padding: 3px; }
}

/* v143: responsive-control corrections, compact freeform legend, and campaign branding. */
@media (min-width: 901px) {
  #categoryRestore.show {
    display: flex !important;
    visibility: visible !important;
    pointer-events: auto !important;
    opacity: 1 !important;
  }
}

#basemapToggle,
body.detail-open #basemapToggle,
body.satellite-focus #basemapToggle {
  left: 18px !important;
  right: auto !important;
  width: 112px !important;
  min-width: 112px !important;
  max-width: 112px !important;
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  padding: 0 8px !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
}

#legend {
  display: block !important;
  align-items: initial !important;
  gap: 0 !important;
  width: min(280px, calc(100vw - 24px)) !important;
  min-width: 180px !important;
  min-height: 34px !important;
  height: auto;
  max-width: calc(100vw - 24px) !important;
  max-height: min(220px, calc(100dvh - 100px)) !important;
  padding: 8px !important;
  overflow: hidden !important;
  resize: both !important;
  cursor: grab !important;
  touch-action: none;
}
#legend.dragging { cursor: grabbing !important; }
#legend .legend-drag-handle { display: none !important; }
#legend .marker-key {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 3px !important;
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
#legend .marker-key .legend-item {
  flex: 0 0 auto !important;
  cursor: pointer !important;
  touch-action: manipulation;
}

.wildberries-campaign-heading {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 3px !important;
}
.wildberries-campaign-top {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.wildberries-campaign-top img {
  display: block !important;
  width: auto !important;
  height: 30px !important;
  max-width: 190px !important;
  object-fit: contain !important;
}
.wildberries-campaign-bottom { display: block !important; }

.marketplace-identity .campaign-brand-mark,
.campaign-location-heading .campaign-brand-mark {
  width: auto !important;
  height: 54px !important;
  max-width: 228px !important;
  padding: 0 !important;
  background: transparent !important;
}
.marketplace-identity .campaign-brand-mark img,
.campaign-location-heading .campaign-brand-mark img {
  width: auto !important;
  height: 100% !important;
  max-width: 228px !important;
  object-fit: contain !important;
}
.marketplace-identity .campaign-brand-mark.ozon,
.campaign-location-heading .campaign-brand-mark.ozon,
.marketplace-identity .campaign-brand-mark.ozon img,
.campaign-location-heading .campaign-brand-mark.ozon img {
  max-width: 168px !important;
}

.maritime-campaign-marker-icon {
  width: 42px !important;
  height: 28px !important;
  transform-origin: 21px 14px !important;
}
.maritime-campaign-marker-icon .ship-marker {
  position: absolute !important;
  inset: 0 !important;
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* v152 final mobile legend width: compact by default, still user-resizable. */
@media (max-width: 640px), (max-width: 900px) and (max-height: 560px) {
  #legend {
    width: 172px !important;
    min-width: 160px !important;
    max-width: min(172px, calc(100vw - var(--right-col) - 24px)) !important;
  }
}

/* v152: true small-screen control layout. */
@media (max-width: 640px), (max-width: 900px) and (max-height: 560px) {
  html, body, #app { width: 100% !important; max-width: 100% !important; overflow: hidden !important; }
  #map { inset: 0 !important; bottom: 0 !important; }
  #logoBtn { left: 8px !important; top: 8px !important; width: 46px !important; height: 46px !important; }
  #titleGroup { left: 50% !important; top: 12px !important; width: calc(100vw - 124px) !important; max-width: calc(100vw - 124px) !important; transform: translateX(-50%) !important; }
  #titleLine { gap: 4px !important; }
  #titleLine > span { font-size: clamp(12px, 4vw, 18px) !important; letter-spacing: .2px !important; }
  #titleLine .title-flag { width: 16px !important; height: 11px !important; }
  #updatedLine { margin-top: 5px !important; font-size: 7.5px !important; }

  #searchBtn, #topActions #searchBtn {
    position: fixed !important; left: 8px !important; top: 62px !important;
    width: 92px !important; min-width: 92px !important; max-width: 92px !important;
    height: 34px !important; min-height: 34px !important; padding: 0 7px !important;
    font-size: 9px !important; line-height: 1 !important; z-index: 5020 !important;
  }
  #categoryRail, #categoryRail:not(.hidden) {
    left: 8px !important; top: 104px !important;
    width: min(210px, calc(100vw - var(--right-col) - 28px)) !important;
    max-width: calc(100vw - var(--right-col) - 28px) !important;
    max-height: calc(100dvh - 164px) !important; overflow-y: auto !important; box-sizing: border-box !important;
  }
  #categoryRail.hidden { display: none !important; }
  #categoryRestore, #categoryRestore.show {
    left: 8px !important; top: 104px !important;
    width: 128px !important; min-width: 128px !important; max-width: 128px !important;
    height: 42px !important; min-height: 42px !important;
  }

  #stats { right: 6px !important; top: 8px !important; width: 58px !important; min-width: 58px !important; max-width: 58px !important; gap: 4px !important; }
  #stats .share-control { width: 58px !important; min-width: 58px !important; max-width: 58px !important; gap: 4px !important; }
  #stats .share-control > button, #stats .share-control #recentBtn, #stats .share-control #timelineBtn {
    display: grid !important; place-items: center !important;
    width: 58px !important; min-width: 58px !important; max-width: 58px !important;
    height: 36px !important; min-height: 36px !important; margin: 0 !important;
    padding: 2px 4px !important; overflow: hidden !important; box-sizing: border-box !important;
    border-radius: 999px !important; font-size: 8px !important; line-height: 1.05 !important;
    letter-spacing: .45px !important; text-align: center !important; white-space: normal !important;
  }

  #legend {
    position: fixed !important; left: 8px !important; right: auto !important; top: auto !important; bottom: 50px !important;
    width: 180px !important; min-width: 180px !important;
    max-width: min(220px, calc(100vw - var(--right-col) - 24px)) !important;
    height: auto !important; min-height: 42px !important; max-height: calc(100dvh - 172px) !important;
    overflow-y: auto !important; box-sizing: border-box !important;
  }
  #basemapToggle, body.detail-open #basemapToggle, body.satellite-focus #basemapToggle {
    left: 8px !important; right: auto !important; bottom: 8px !important; top: auto !important;
    width: 112px !important; min-width: 112px !important; max-width: 112px !important;
    height: 34px !important; min-height: 34px !important; max-height: 34px !important;
  }
}

/* v150: enlarge campaign branding while keeping the switcher controls bounded. */
.campaign-tabs button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
.campaign-tab-logo {
  display: block !important;
  width: auto !important;
  height: 30px !important;
  max-width: min(100%, 175px) !important;
  object-fit: contain !important;
}
.campaign-tab-logo.ozon {
  height: 24px !important;
  max-width: min(100%, 125px) !important;
}
.campaign-tab-logo.wb {
  height: 38px !important;
  max-width: min(100%, 205px) !important;
}
.marketplace-identity .campaign-brand-mark.ozon,
.campaign-location-heading .campaign-brand-mark.ozon {
  height: 28px !important;
  max-width: 190px !important;
}
.marketplace-identity .campaign-brand-mark.wb,
.campaign-location-heading .campaign-brand-mark.wb {
  height: 64px !important;
  max-width: 250px !important;
}
.wildberries-campaign-heading .wildberries-campaign-top img {
  height: 52px !important;
  max-width: 300px !important;
}
.ozon-campaign-heading {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 3px !important;
}
.ozon-campaign-top {
  display: flex !important;
  align-items: center !important;
}
.ozon-campaign-heading .ozon-campaign-top img {
  display: block !important;
  width: auto !important;
  height: 40px !important;
  max-width: 220px !important;
  object-fit: contain !important;
}
.wildberries-campaign-heading .wildberries-campaign-top,
.ozon-campaign-heading .ozon-campaign-top {
  min-height: 52px !important;
}

@media (max-width: 900px), (pointer: coarse) {
  .wildberries-campaign-heading .wildberries-campaign-top img {
    height: 46px !important;
    max-width: min(280px, 68vw) !important;
  }
  .ozon-campaign-heading .ozon-campaign-top img {
    height: 34px !important;
    max-width: min(190px, 56vw) !important;
  }
  .campaign-tab-logo {
    height: 25px !important;
    max-width: min(100%, 145px) !important;
  }
  .campaign-tab-logo.ozon {
    height: 20px !important;
    max-width: min(100%, 110px) !important;
  }
}

@media (max-width: 900px), (pointer: coarse) {
  #basemapToggle,
  body.detail-open #basemapToggle,
  body.satellite-focus #basemapToggle {
    left: 8px !important;
    right: auto !important;
    width: 104px !important;
    min-width: 104px !important;
    max-width: 104px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
  }
  #legend {
    width: min(280px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: min(200px, calc(100dvh - 84px)) !important;
  }
  .marketplace-identity .campaign-brand-mark,
  .campaign-location-heading .campaign-brand-mark { height: 58px !important; }
  .marketplace-identity .campaign-brand-mark.wb,
  .campaign-location-heading .campaign-brand-mark.wb { height: 68px !important; }
  .marketplace-identity .campaign-brand-mark.ozon,
  .campaign-location-heading .campaign-brand-mark.ozon { max-width: 185px !important; }
}

@media (max-width: 520px), (max-width: 900px) and (max-height: 560px) {
  body.search-open #drawer,
  body.search-open #drawer.mobile-collapsed {
    display: flex !important;
    flex-direction: column !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: none !important;
    padding: 58px 0 calc(env(safe-area-inset-bottom) + 10px) !important;
    transform: none !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
  }
  body.search-open #drawer #search {
    display: block !important;
    flex: 0 0 auto !important;
  }
  body.search-open #drawer .filters {
    display: grid !important;
    flex: 0 0 auto !important;
  }
  body.search-open #drawer #list {
    display: block !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    overflow-y: auto !important;
    padding-bottom: calc(env(safe-area-inset-bottom) + 12px) !important;
  }
}

/* v144: legend width reflow, medium-panel breakpoint, and true small-screen search. */
#legend.legend-single-column .marker-key {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: stretch !important;
  gap: 2px !important;
}
#legend.legend-single-column .marker-key .legend-item {
  width: 100% !important;
  min-width: 0 !important;
  justify-content: flex-start !important;
}

@media (min-width: 641px) and (max-width: 1100px),
       (min-width: 641px) and (pointer: coarse) {
  #timelinePanel,
  #recentPanel {
    left: auto !important;
    right: 76px !important;
    top: 72px !important;
    bottom: 16px !important;
    width: min(430px, calc(100vw - 100px)) !important;
    height: auto !important;
    max-height: calc(100dvh - 88px) !important;
    border-radius: 10px !important;
    background: rgba(10,18,16,.985) !important;
  }
  #timelinePanel { overflow: hidden !important; }
  #recentPanel { overflow-y: auto !important; }
}

@media (max-width: 640px) {
  html body.search-open #app #drawer,
  html body.search-open #app #drawer.mobile-collapsed {
    display: flex !important;
    flex-direction: column !important;
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 54px 0 calc(env(safe-area-inset-bottom) + 8px) !important;
    transform: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-radius: 0 !important;
    z-index: 10000 !important;
  }
  html body.search-open #app #drawer #drawerClose {
    display: block !important;
    position: absolute !important;
    top: 8px !important;
    right: 10px !important;
    z-index: 2 !important;
  }
  html body.search-open #app #drawer #search {
    display: block !important;
    flex: 0 0 auto !important;
    margin: 0 12px 8px !important;
  }
  html body.search-open #app #drawer .filters {
    display: grid !important;
    flex: 0 0 auto !important;
    max-height: 26dvh !important;
    overflow-y: auto !important;
  }
  html body.search-open #app #drawer #methodology { display: none !important; }
  html body.search-open #app #drawer #list {
    display: block !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    padding: 0 12px calc(env(safe-area-inset-bottom) + 10px) !important;
  }
}

/* v145: functional custom legend resizing and tighter map controls. */
#legend {
  position: fixed !important;
  width: 220px !important;
  min-width: 180px !important;
  max-width: calc(100vw - 16px) !important;
  height: auto;
  min-height: 42px !important;
  max-height: calc(100dvh - 84px) !important;
  padding: 8px 14px 12px 8px !important;
  overflow: hidden !important;
  resize: none !important;
  box-sizing: border-box !important;
}
#legend .legend-resize-handle {
  display: block !important;
  position: absolute !important;
  right: 2px !important;
  bottom: 2px !important;
  width: 16px !important;
  height: 16px !important;
  cursor: nwse-resize !important;
  touch-action: none !important;
  background: linear-gradient(135deg, transparent 0 48%, rgba(226,102,27,.85) 49% 57%, transparent 58% 68%, rgba(226,102,27,.55) 69% 77%, transparent 78%);
  z-index: 3 !important;
}
#legend.resizing { cursor: default !important; }

#searchBtn,
#topActions #searchBtn {
  width: 78px !important;
  min-width: 78px !important;
  max-width: 78px !important;
  padding-right: 4px !important;
  padding-left: 4px !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

#basemapToggle,
body.detail-open #basemapToggle,
body.satellite-focus #basemapToggle {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 116px !important;
  min-width: 116px !important;
  max-width: 116px !important;
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  padding: 0 6px !important;
  font-size: 10px !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

@media (max-width: 900px), (pointer: coarse) {
  #searchBtn,
  #topActions #searchBtn {
    width: 74px !important;
    min-width: 74px !important;
    max-width: 74px !important;
  }
  #basemapToggle,
  body.detail-open #basemapToggle,
  body.satellite-focus #basemapToggle {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
  }
}

/* v146: keep campaign coordinates fixed while scaling only their artwork. */
#map .campaign-marker-icon,
#map.marker-zoom-far .campaign-marker-icon,
#map.marker-zoom-mid .campaign-marker-icon,
#map.marker-zoom-near .campaign-marker-icon,
#map.marker-zoom-close .campaign-marker-icon {
  scale: 1 !important;
}

#map .campaign-marker-icon .power-campaign-marker,
#map .campaign-marker-icon .ship-marker {
  transform: scale(1) !important;
  transform-origin: center center !important;
  transition: transform .12s ease !important;
}

#map.marker-zoom-far .campaign-marker-icon .power-campaign-marker,
#map.marker-zoom-far .campaign-marker-icon .ship-marker {
  transform: scale(.58) !important;
}

#map.marker-zoom-mid .campaign-marker-icon .power-campaign-marker,
#map.marker-zoom-mid .campaign-marker-icon .ship-marker {
  transform: scale(.72) !important;
}

#map.marker-zoom-near .campaign-marker-icon .power-campaign-marker,
#map.marker-zoom-near .campaign-marker-icon .ship-marker {
  transform: scale(.9) !important;
}

.maritime-campaign-marker-icon {
  width: 50px !important;
  height: 30px !important;
  transform-origin: 25px 15px !important;
}

.maritime-campaign-marker-icon .ship-marker {
  inset: 0 !important;
  width: 50px !important;
  min-width: 50px !important;
  max-width: 50px !important;
  height: 30px !important;
  min-height: 30px !important;
  max-height: 30px !important;
  padding: 2px 5px !important;
  box-sizing: border-box !important;
}

/* v152 final narrow-viewport override. This intentionally follows every
   historical legend rule so the compact default wins. */
@media (max-width: 640px), (max-width: 900px) and (max-height: 560px) {
  #legend {
    width: 140px !important;
    min-width: 132px !important;
    max-width: min(140px, calc(100vw - var(--right-col) - 24px)) !important;
  }
  #legend .marker-key .legend-item {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
}

/* ===== v155-wb-cleanup.css ===== */
/* v155: keep marketplace identity rows readable at every panel width. */
.marketplace-identity {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content max-content;
  align-items: center;
  column-gap: 12px;
  row-gap: 6px;
}

.marketplace-identity > strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.marketplace-identity .campaign-brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 0;
  margin: 0;
}

.marketplace-identity .campaign-brand-mark img {
  display: block;
  width: auto !important;
  height: 25px !important;
  max-width: 96px !important;
  object-fit: contain;
}

.marketplace-identity .campaign-brand-mark.ozon img {
  max-width: 72px !important;
}

.marketplace-identity .operational-status {
  justify-self: end;
  margin: 0;
  white-space: nowrap;
}

.campaign-location-directory {
  margin-top: 14px;
}

.campaign-location-directory > summary {
  cursor: pointer;
  font-weight: 800;
}

.campaign-location-card {
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.campaign-location-copy {
  min-width: 0;
}

.campaign-location-name,
.campaign-location-region {
  overflow-wrap: anywhere;
}

.campaign-location-region {
  display: block;
}

@media (max-width: 640px) {
  .marketplace-identity {
    grid-template-columns: minmax(0, 1fr) max-content;
    column-gap: 9px;
  }

  .marketplace-identity .operational-status {
    grid-column: 2;
    grid-row: 2;
    justify-self: end;
  }

  .marketplace-identity .campaign-brand-mark img {
    height: 23px !important;
    max-width: 86px !important;
  }

  .marketplace-identity .campaign-brand-mark.ozon img {
    max-width: 66px !important;
  }
}

/* ===== v158-readability.css ===== */
/* v158: improve readable text contrast and scale without changing titles or icons. */
.meta,
.facility-subtitle { font-size: 15px !important; line-height: 1.55 !important; color: #b8c4bc !important; }
.section { font-size: 14px !important; color: #c4d0c7 !important; }
.event p { font-size: 15px !important; line-height: 1.58 !important; color: #d7d9d1 !important; }
.event .impact { color: #eadfca !important; }
.event-bullets, .needs { font-size: 14px !important; line-height: 1.55 !important; color: #d0d8d1 !important; }
.metric span { font-size: 12px !important; color: #c4d0c7 !important; letter-spacing: .45px !important; }
.stat span { font-size: 11px !important; color: #b8c4bc !important; }
.card p { font-size: 12px !important; color: #b8c4bc !important; }
.sources a, .source-lead, .geo { font-size: 14px !important; color: #e0d58f !important; }
.conf, .score { font-size: 11px !important; }
#methodology { font-size: 15px !important; line-height: 1.55 !important; color: #b8c4bc !important; }
.info-card p { font-size: 15px !important; line-height: 1.55 !important; color: #d7d9d1 !important; }

/* ===== v165-final-ui.css ===== */
/* v165 final pre-upload interaction polish */
#legend{left:14px!important;right:auto!important;bottom:86px!important;max-width:min(300px,calc(100vw - 28px));}
@media(max-width:900px){
  body.search-open #drawer{top:0!important;bottom:0!important;left:0!important;right:0!important;width:100vw!important;height:100dvh!important;max-height:none!important;border-radius:0!important;}
  body.search-open #map{bottom:0!important;}
  body.search-open #drawerHeader{top:10px!important;}
  body.search-open #search{margin-top:8px!important;}
  #legend{display:block!important;left:12px!important;right:auto!important;bottom:78px!important;max-width:calc(100vw - 24px);font-size:10px!important;}
  #legend div{margin:3px 0!important;}
}

/* ===== v167-status-badges.css ===== */
/* v167 explicit status badges in list views */
.list-status{display:inline-block;margin-left:6px;padding:2px 5px;border:1px solid #56705e;border-radius:3px;font-size:9px;line-height:1.1;letter-spacing:.4px;text-transform:uppercase;vertical-align:middle;color:#b9d6bd;background:rgba(24,53,31,.6);white-space:nowrap}
.list-status.destroyed{border-color:#b94d42;color:#ffd1ca;background:rgba(112,35,29,.72)}
.list-status.operations-impacted{border-color:#d2a441;color:#ffe5a0;background:rgba(100,72,18,.65)}
.list-status.offline{border-color:#9b6b4b;color:#ffd0ad;background:rgba(84,45,24,.65)}
.list-status.temporarily-shut-down{border-color:#7588a5;color:#cbd8ed;background:rgba(38,55,82,.7)}
.sites-entry-name{display:block}

/* ===== v169-final-timeline-title.css ===== */
/* v169: final timeline labels and requested small-window title scale. */
.timeline-entry-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.timeline-entry-meta .timeline-open{margin-left:auto}
.timeline-descriptor{margin:0!important}
@media(max-width:560px){
  #titleLine>span{font-size:clamp(18px,6vw,27px)!important}
}

/* ===== v170-timeline-cleanup.css ===== */
/* v170: compact timeline metadata, clean small-screen layout, and stable legend default. */
#legend{
  left:14px!important;
  right:auto!important;
  top:auto!important;
  bottom:86px!important;
}
.timeline-entry-meta{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.timeline-entry-meta .timeline-descriptor,
.timeline-entry-meta .list-status{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:28px!important;
  margin:0!important;
  padding:5px 9px!important;
  border-width:1px!important;
  border-style:solid!important;
  border-radius:0!important;
  font-size:11px!important;
  line-height:1!important;
  letter-spacing:.45px!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
.timeline-entry-meta .timeline-open{margin-left:auto!important;}
.campaign-location-status.operations-impacted{
  max-width:none!important;
  padding:4px 6px!important;
  font-size:8px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.marketplace-identity .operational-status.operations-impacted{
  min-height:25px!important;
  padding:4px 7px!important;
  font-size:9px!important;
  line-height:1!important;
}

@media(max-width:560px){
  #legend{
    left:12px!important;
    right:auto!important;
    top:auto!important;
    bottom:78px!important;
  }
  #timelinePanel{
    inset:max(6px,env(safe-area-inset-top)) 6px 6px!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    padding:10px!important;
  }
  .timeline-panel-header{
    position:relative!important;
    top:auto!important;
    z-index:5!important;
    min-height:46px!important;
    margin:0 0 8px!important;
    padding:7px 52px 9px 0!important;
    background:rgba(8,12,10,.98)!important;
  }
  .timeline-panel-close{
    top:0!important;
    right:0!important;
    min-width:44px!important;
    min-height:44px!important;
  }
  .timeline-controls{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    margin-bottom:6px!important;
  }
  .timeline-search{grid-column:1/-1!important;}
  .timeline-entry{padding:14px 0!important;}
  .timeline-entry-head{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    column-gap:9px!important;
    row-gap:5px!important;
    align-items:start!important;
  }
  .timeline-entry-location{grid-column:1/-1!important;}
  .timeline-entry-summary{margin:8px 0 10px!important;}
  .timeline-entry-meta{align-items:center!important;gap:7px!important;}
  .timeline-entry-meta .timeline-descriptor{font-size:0!important;}
  .timeline-entry-meta .timeline-descriptor::after{
    content:attr(data-short);
    font-size:11px!important;
  }
  .timeline-entry-meta .timeline-open{
    min-height:32px!important;
    margin-left:auto!important;
    padding:6px 10px!important;
  }
}

/* ===== v171-marketplace-wrap.css ===== */
/* v171: keep marketplace incident counts together while allowing the region to wrap. */
.campaign-location-incident{white-space:nowrap!important}
.campaign-location-region{overflow-wrap:anywhere}
#detail .thumb img[src="belgorod_linear_2026.jpg"]{
  height:133.333%!important;
  object-position:center bottom!important;
}

/* ===== v172-campaign-status.css ===== */
/* v172: only the main WB/Ozon campaign directory uses the intentional two-line status. */
.campaign-location-directory .campaign-location-status.operations-impacted{
  width:84px!important;
  max-width:84px!important;
  min-height:28px!important;
  padding:5px 6px!important;
  line-height:1.05!important;
  white-space:normal!important;
}

/* ===== v173-campaign-card-fit.css ===== */
/* v173: fit campaign names cleanly beside the compact two-line status. */
.campaign-location-directory .campaign-location-card{
  grid-template-columns:minmax(0,1fr) 76px!important;
}
.campaign-location-directory .campaign-location-copy{
  min-width:0!important;
  overflow:visible!important;
}
.campaign-location-directory .campaign-location-name{
  display:block!important;
  min-width:0!important;
  overflow:visible!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  line-height:1.15!important;
}

/* ===== v174-campaign-badge-correction.css ===== */
/* v174: compact and truly center the two-line badge on the main WB/Ozon tab. */
.campaign-location-directory .campaign-location-card{
  grid-template-columns:minmax(0,1fr) 68px!important;
}
.campaign-location-directory .campaign-location-status.operations-impacted{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:end!important;
  box-sizing:border-box!important;
  width:68px!important;
  min-width:68px!important;
  max-width:68px!important;
  min-height:26px!important;
  padding:3px 2px!important;
  margin:0!important;
  line-height:1.05!important;
  letter-spacing:.2px!important;
  text-align:center!important;
}

/* ===== v175-maritime-campaign.css ===== */
/* v175: compact, source-complete maritime campaign timeline. */
.maritime-campaign-intro{
  margin:0 0 14px;
}
.maritime-progress{
  margin:12px 0 16px;
  padding:14px;
  border:1px solid #365246;
  border-radius:12px;
  background:rgba(5,20,15,.88);
}
.maritime-progress h3{
  margin:0 0 10px;
  color:#f2a45d;
  font-size:16px;
  letter-spacing:.04em;
  text-align:center;
  text-transform:uppercase;
}
.maritime-progress-line{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
  color:#f4f3ea;
  font-size:18px;
  font-weight:800;
  text-align:center;
}
.maritime-progress-line .arrow{
  color:#ec6c22;
  font-size:22px;
  line-height:1;
}
.maritime-progress-latest{
  margin:9px 0 0;
  color:#c7d5cc;
  font-size:15px;
  line-height:1.45;
  text-align:center;
}
.maritime-progress-note{
  margin:7px 0 0;
  color:#aabbb1;
  font-size:14px;
  line-height:1.4;
  text-align:center;
}
.maritime-section-title{
  margin:18px 0 8px;
  padding-bottom:7px;
  border-bottom:1px solid #2d463b;
  color:#efaa68;
  font-size:16px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.maritime-story{
  margin:0 0 8px;
  border:1px solid #2f4c3f;
  border-radius:10px;
  background:rgba(4,17,13,.9);
  overflow:hidden;
}
.maritime-story>summary{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 30px;
  grid-template-rows:auto auto auto;
  align-items:center;
  min-height:86px;
  padding:10px 9px 10px 14px;
  cursor:pointer;
  list-style:none;
}
.maritime-story>summary::-webkit-details-marker{display:none}
.maritime-story-count{
  grid-column:1;
  grid-row:1;
  color:#f17428;
  font-size:25px;
  font-weight:900;
  line-height:1;
  text-align:center;
}
.maritime-story-label{
  grid-column:1;
  grid-row:2;
  color:#f4f3ea;
  font-size:16px;
  font-weight:800;
  line-height:1.2;
  text-align:center;
}
.maritime-story-date{
  grid-column:1;
  grid-row:3;
  margin-top:3px;
  color:#b2c1b8;
  font-size:14px;
  font-weight:600;
  line-height:1.25;
  text-align:center;
}
.maritime-story-chevron{
  grid-column:2;
  grid-row:2;
  justify-self:center;
  color:#f17428;
  font-size:28px;
  font-weight:800;
  line-height:1;
  transition:transform .16s ease;
}
.maritime-story[open] .maritime-story-chevron{transform:rotate(90deg)}
.maritime-story-body{
  padding:12px 15px 14px;
  border-top:1px solid #294238;
}
.maritime-story-body h3{
  margin:0 0 8px;
  color:#f4f3ea;
  font-size:17px;
  line-height:1.3;
}
.maritime-story-body p{
  margin:8px 0 10px;
  color:#d7dfda;
  font-size:16px;
  line-height:1.5;
}
.maritime-story-body .badge-row{margin:0 0 8px}
.maritime-shipping>summary{
  grid-template-rows:auto auto;
  min-height:68px;
}
.maritime-shipping .maritime-story-label{grid-row:1}
.maritime-shipping .maritime-story-date{grid-row:2}
.maritime-shipping .maritime-story-chevron{grid-row:1 / span 2}
@media(max-width:520px){
  .maritime-progress{padding:12px 10px}
  .maritime-progress-line{gap:5px;font-size:16px}
  .maritime-progress-line .arrow{font-size:19px}
  .maritime-story>summary{min-height:82px;padding-left:10px}
  .maritime-story-count{font-size:23px}
  .maritime-story-label{font-size:15px}
  .maritime-story-date{font-size:13px}
  .maritime-story-body{padding:11px 12px 13px}
}

/* ===== v177-fuel-shortage-cleanup.css ===== */
/* v177: compact, source-complete national fuel-shortage presentation. */
.fuel-campaign-intro{
  margin-bottom:12px;
}
.fuel-progress,
.fuel-effects{
  margin:12px 0 16px;
  padding:14px;
  border:1px solid rgba(226,102,27,.5);
  border-radius:12px;
  background:rgba(8,18,14,.9);
}
.fuel-progress h3,
.fuel-effects h3{
  margin:0 0 12px;
  color:#f0b879;
  font-size:16px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.fuel-progress-line{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  margin:0;
  text-align:center;
}
.fuel-progress-line>span:not(.arrow){
  display:flex;
  min-width:0;
  flex-direction:column;
  align-items:center;
  gap:3px;
}
.fuel-progress-line strong{
  color:#f4f0e7;
  font-size:21px;
  line-height:1.05;
}
.fuel-progress-line small{
  color:#aebdb4;
  font-size:13px;
  line-height:1.3;
}
.fuel-progress-line .arrow{
  color:#e2661b;
  font-size:22px;
}
.fuel-progress-note{
  margin:13px 0 0;
  color:#aebdb4;
  font-size:14px;
  line-height:1.45;
  text-align:center;
}
.fuel-effects ul{
  margin:0;
  padding-left:20px;
  color:#d8dfda;
  font-size:15px;
  line-height:1.5;
}
.fuel-effects li+li{margin-top:5px}
.fuel-section-title{
  margin:18px 0 8px;
  padding-bottom:7px;
  border-bottom:1px solid rgba(226,102,27,.45);
  color:#f0b879;
  font-size:15px;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.fuel-story{
  margin:0 0 8px;
  border:1px solid rgba(65,93,79,.75);
  border-radius:9px;
  background:rgba(7,16,12,.86);
  overflow:hidden;
}
.fuel-story>summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 22px;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:10px 12px;
  cursor:pointer;
  list-style:none;
}
.fuel-story>summary::-webkit-details-marker{display:none}
.fuel-story-title{
  color:#e6e9e5;
  font-size:16px;
  font-weight:750;
  line-height:1.3;
}
.fuel-story-date{
  color:#f0b879;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
}
.fuel-story-chevron{
  color:#e2661b;
  font-size:24px;
  line-height:1;
  text-align:center;
  transition:transform .16s ease;
}
.fuel-story[open] .fuel-story-chevron{transform:rotate(90deg)}
.fuel-story-body{
  padding:0 12px 13px;
  border-top:1px solid rgba(65,93,79,.55);
}
.fuel-story-body p{
  margin:11px 0;
  color:#d8dfda;
  font-size:16px;
  line-height:1.5;
}
.fuel-story-body .badge-row{margin:11px 0 0}
@media (max-width:620px){
  .fuel-progress,.fuel-effects{padding:12px 10px}
  .fuel-progress-line{gap:4px}
  .fuel-progress-line strong{font-size:17px}
  .fuel-progress-line small{font-size:12px}
  .fuel-progress-line .arrow{font-size:17px}
  .fuel-story>summary{
    grid-template-columns:minmax(0,1fr) 22px;
    gap:4px 8px;
    padding:10px;
  }
  .fuel-story-title{grid-column:1;font-size:15px}
  .fuel-story-date{grid-column:1;grid-row:2;font-size:13px;white-space:normal}
  .fuel-story-chevron{grid-column:2;grid-row:1 / span 2}
  .fuel-story-body{padding:0 10px 12px}
}

/* ===== v178-campaign-text-and-legend.css ===== */
/* v178: correct small-screen legend anchor. */
@media(max-width:640px), (max-width:900px) and (max-height:560px){
  #legend{
    left:8px !important;
    right:auto !important;
    top:auto !important;
    bottom:50px !important;
  }
  #basemapToggle,
  body.detail-open #basemapToggle,
  body.satellite-focus #basemapToggle{
    left:8px !important;
    right:auto !important;
    bottom:8px !important;
  }
}

/* ===== v179-purple-box-text.css ===== */
/* v179 rules withdrawn in v180; original Fuel/WB/Ozon icon sizes restored. */

/* ===== v180-purple-description-text.css ===== */
/* v180: readable text inside Fuel/Wildberries/Ozon purple description boxes. */
.fuel-campaign-intro p,
.marketplace-campaign-intro p{
  font-size:20px !important;
  line-height:1.55 !important;
}
@media(max-width:900px), (pointer:coarse){
  .fuel-campaign-intro p,
  .marketplace-campaign-intro p{
    font-size:18px !important;
    line-height:1.5 !important;
  }
}

/* ===== v183-panel-cleanup.css ===== */
/* v183: shared detail-panel hierarchy and collapsible incident stories. */
.detail-title-row,
.marketplace-location-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 18px;
  align-items: center;
  margin: 4px 0 5px;
}

.detail-title-row > h2,
.marketplace-location-header h2 {
  min-width: 0;
  margin: 0 !important;
}

.detail-title-row > .operational-status,
.marketplace-location-header > .operational-status {
  align-self: center;
  justify-self: end;
}

.marketplace-location-identity {
  display: grid;
  grid-template-rows: auto auto;
  justify-items: start;
  min-width: 0;
  gap: 7px;
}

.marketplace-location-identity .campaign-brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: auto;
  max-width: 150px;
  height: 28px;
  margin: 0;
}

.marketplace-location-identity .campaign-brand-mark img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}

.marketplace-location-identity .campaign-brand-mark.ozon {
  height: 24px;
  max-width: 112px;
}

.marketplace-location-region {
  margin: 0 0 12px;
  color: #aebdb4;
  font-size: 16px;
  line-height: 1.35;
}

.clean-event {
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid #26382f;
  background: rgba(7, 15, 11, .58);
}

.clean-event > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 62px;
  padding: 13px 5px;
  cursor: pointer;
  list-style: none;
}

.clean-event > summary::-webkit-details-marker { display: none; }

.clean-event > summary:hover,
.clean-event > summary:focus-visible {
  color: #fff;
  outline: none;
  background: rgba(21, 38, 28, .72);
}

.clean-event-date {
  color: #f1aa6e;
  font-weight: 800;
  white-space: nowrap;
}

.clean-event-title {
  min-width: 0;
  color: #f1efe6;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.25;
}

.clean-event-chevron {
  color: #ef6f22;
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  transition: transform .15s ease;
}

.clean-event[open] > summary .clean-event-chevron { transform: rotate(90deg); }

.clean-event-body {
  padding: 0 5px 18px;
}

.clean-event-body > p {
  margin: 7px 0 12px;
  color: #d9e2dc;
  font-size: 17px;
  line-height: 1.55;
}

.clean-event-body .source-details,
.clean-event-body .single-source {
  margin-top: 13px;
}

.marketplace-size-fact {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 12px;
  align-items: baseline;
  margin: 11px 0;
  padding: 10px 12px;
  border: 1px solid #344b3e;
  border-radius: 6px;
  background: rgba(17, 31, 23, .76);
}

.marketplace-size-fact strong {
  color: #f0b06f;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.marketplace-size-fact span {
  color: #e4e7df;
  font-size: 16px;
  line-height: 1.35;
}

.confirmed-damage-panel {
  margin: 16px 0 18px;
  padding: 13px 15px;
  border: 1px solid #b9612d;
  border-left: 4px solid #ef6f22;
  border-radius: 7px;
  background: rgba(45, 24, 13, .62);
}

.confirmed-damage-panel .section {
  margin: 0 0 7px !important;
  padding: 0 !important;
  border: 0 !important;
  color: #ffb171 !important;
}

.confirmed-damage-panel .meta,
.confirmed-damage-panel p {
  margin: 0 !important;
  color: #f0eee6 !important;
  font-size: 17px !important;
  line-height: 1.5 !important;
}

/* TANECO only: visually remove the bottom 30% of the second source image. */
.taneco-second-crop .facility-photo-slide:nth-child(2) img {
  width: 100% !important;
  aspect-ratio: 941 / 1170;
  height: auto !important;
  object-fit: cover !important;
  object-position: top center !important;
}

@media (max-width: 700px) {
  .detail-title-row,
  .marketplace-location-header {
    gap: 7px 10px;
  }

  .marketplace-location-header > .operational-status,
  .detail-title-row > .operational-status {
    width: auto !important;
    max-width: 132px;
    margin: 0 !important;
    text-align: center;
  }

  .marketplace-location-identity .campaign-brand-mark {
    height: 25px;
    max-width: 128px;
  }

  .marketplace-location-identity .campaign-brand-mark.ozon {
    height: 21px;
    max-width: 92px;
  }

  .clean-event > summary {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 10px;
    padding: 13px 1px;
  }

  .clean-event-date {
    grid-column: 1;
    font-size: 14px;
  }

  .clean-event-title {
    grid-column: 1;
    font-size: 18px;
  }

  .clean-event-chevron {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .clean-event-body { padding: 0 1px 17px; }

  .marketplace-size-fact {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

/* ===== v185-legend-default-position.css ===== */
/* v185: default the draggable legend to the lower-right above Satellite View. */
#legend {
  display: block !important;
  left: auto !important;
  right: 12px !important;
  top: auto !important;
  bottom: 86px !important;
}

@media (max-width: 900px) {
  #legend {
    left: auto !important;
    right: 8px !important;
    top: auto !important;
    bottom: 78px !important;
    max-width: calc(100vw - 16px) !important;
  }
  #basemapToggle,
  body.detail-open #basemapToggle,
  body.satellite-focus #basemapToggle {
    left: auto !important;
    right: 8px !important;
    bottom: 8px !important;
  }
}

/* ===== v192-marketplace-facility-logo-scale.css ===== */
/* v193: override legacy important size caps only in individual facility headers. */
.marketplace-location-identity .campaign-brand-mark {
  height: 52px !important;
  max-width: 224px !important;
}

.marketplace-location-identity .campaign-brand-mark img {
  max-width: 224px !important;
}

.marketplace-location-identity .campaign-brand-mark.ozon {
  height: 32.5px !important;
  max-width: 140px !important;
}

.marketplace-location-identity .campaign-brand-mark.ozon img {
  max-width: 90px !important;
}

@media (max-width: 700px) {
  .marketplace-location-identity .campaign-brand-mark {
    height: 52px !important;
    max-width: 224px !important;
  }

  .marketplace-location-identity .campaign-brand-mark.ozon {
    height: 32.5px !important;
    max-width: 140px !important;
  }
}

/* Company marks on marketplace rows in the timeline and Recent Strikes panel. */
.timeline-entry-brand,
.recent-entry-brand {
  display: inline-block;
  height: 16px;
  width: auto;
  max-width: 68px;
  margin-left: 7px;
  object-fit: contain;
  vertical-align: middle;
}
.recent-entry-name { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.recent-entry-label { min-width: 0; }
.recent-entry-brand { flex: 0 0 auto; }

/* ===== v195-legend-bottom-left-and-compact.css ===== */
/* v195: keep the legend compact and anchored above Satellite View at every viewport size. */
#legend {
  display: block !important;
  left: 12px !important;
  right: auto !important;
  top: auto !important;
  bottom: 86px !important;
  width: max-content !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100dvh - 84px) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
#legend .marker-key {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 3px 0 !important;
}
#legend .legend-item {
  min-width: 0 !important;
  width: max-content !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#basemapToggle,
body.detail-open #basemapToggle,
body.satellite-focus #basemapToggle {
  left: 12px !important;
  right: auto !important;
  bottom: 8px !important;
}
@media (max-width: 900px) {
  #legend {
    left: 8px !important;
    right: auto !important;
    bottom: 78px !important;
    width: max-content !important;
    max-width: calc(100vw - 16px) !important;
  max-height: calc(100dvh - 76px) !important;
  overflow: hidden !important;
  }
  #basemapToggle,
  body.detail-open #basemapToggle,
  body.satellite-focus #basemapToggle {
    left: 8px !important;
    right: auto !important;
    bottom: 8px !important;
  }
}
@media (max-width: 700px) {
  .marketplace-event .operational-status.operations-impacted,
  .marketplace-location-header > .operational-status.operations-impacted,
  .marketplace-location-identity .operational-status.operations-impacted {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    line-height: 1.05 !important;
    text-align: center !important;
    box-sizing: border-box !important;
    max-width: 112px !important;
    min-width: 0 !important;
    padding: 4px 6px !important;
  }
}

/* ===== v203-fuel-carousel-and-bullets.css ===== */
.fuel-photo-gallery { margin-bottom: 14px !important; }
/* v205: compact by default, with columns that reflow as the legend is resized. */
#legend {
  width: 148px !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
#legend .marker-key {
  display: grid !important;
  grid-template-columns: repeat(var(--legend-columns, 1), minmax(0, 1fr)) !important;
  width: 100% !important;
  min-width: 0 !important;
  gap: 2px !important;
}
#legend .marker-key .legend-item,
#legend .legend-item {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  text-align: left !important;
}
#legend .key-marker { flex: 0 0 auto !important; }
#legend .legend-resize-handle { cursor: nwse-resize !important; }
.fuel-campaign-intro ul {
  margin: 0;
  padding: 0 0 0 20px;
  color: #d8ddd8;
  font-size: 16px;
  line-height: 1.5;
}
.fuel-campaign-intro li + li { margin-top: 5px; }
@media (max-width: 700px) {
  .fuel-campaign-intro ul { padding-left: 19px; font-size: 15px; }
}

/* v229: distinct, consistent category markers in the legend and on the map. */
#legend .key-marker.refinery,
.marker.marker-cat-refinery { background:#e2661b !important; border-radius:2px !important; transform:none !important; }
#legend .key-marker.depot,
.marker.marker-cat-fuel { background:#d1453a !important; border-radius:3px !important; transform:none !important; }
#legend .key-marker.petro,
.marker.marker-cat-chemical { background:#c9a227 !important; border-radius:0 !important; clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); transform:none !important; }
#legend .key-marker.power,
.marker.marker-cat-power { background:#3f9edb !important; border-radius:50% !important; transform:none !important; position:relative; }
#legend .key-marker.power::after { content:'⚡'; position:absolute; inset:-1px 0 0; display:grid; place-items:center; color:#fff; font:7px/1 Arial,sans-serif; }
.marker.marker-cat-power::after { content:'⚡'; position:absolute; inset:0; display:grid; place-items:center; color:#fff; font:10px/1 Arial,sans-serif; }
#legend .key-marker.military,
.marker.marker-cat-military { background:#e7e3d3 !important; border-radius:1px !important; transform:rotate(45deg) !important; }
#legend .key-marker.defense,
.marker.marker-cat-defense { background:#22a6a1 !important; border-radius:2px !important; transform:none !important; }
#legend .key-marker.defense { border:1px solid #c7f1ed !important; }
#legend .key-marker.maritime { background:transparent !important; border:0 !important; border-radius:0 !important; clip-path:none !important; position:relative; width:14px !important; height:11px !important; transform:none !important; }
#legend .key-marker.maritime::before { content:''; position:absolute; left:0; right:0; bottom:0; height:52%; background:#4b8cc9; clip-path:polygon(0 0,100% 0,82% 100%,18% 100%); }
#legend .key-marker.maritime::after { content:''; position:absolute; left:36%; top:0; width:2px; height:55%; background:#e7e3d3; box-shadow:2px 1px 0 -0.4px #e7e3d3; }
#legend .key-marker.wb,
.wb-location-marker { background:#d8428c !important; border-radius:4px !important; transform:none !important; }
#legend .key-marker.ozon,
.ozon-location-marker { background:#4b9bd0 !important; border-radius:2px !important; transform:rotate(45deg) !important; }
.marker.marker-cat-other { background:#76867c !important; border-radius:50% !important; transform:none !important; }
.marker.marker-cat-maritime { background:#4b8cc9 !important; border:0 !important; border-radius:0 !important; clip-path:polygon(0 46%,100% 46%,82% 100%,18% 100%); box-shadow:0 0 12px rgba(75,140,201,.8) !important; transform:none !important; position:relative; }
.marker.marker-cat-maritime::after { content:''; position:absolute; left:40%; top:3%; width:2px; height:48%; background:#f4efe0; }
.ship-marker { color:#8fc4ef !important; background:rgba(9,20,30,.88) !important; border:1px solid #4b8cc9 !important; border-radius:7px !important; box-shadow:0 0 10px rgba(75,140,201,.6) !important; filter:none !important; font-size:17px !important; min-width:26px !important; min-height:21px !important; padding:1px 3px !important; }
