:root {
  --eotmap-navy: #04131f;
  --eotmap-panel: #082739;
  --eotmap-cyan: #17d4d0;
  --eotmap-gold: #e8b84a;
  --eotmap-white: #f7fbff;
  --eotmap-danger: #ff4d6d;
  --eotmap-warn: #ffb547;
  --eotmap-good: #35d07f;
}

#eot72-algeria-map,
#eot72-algeria-map * { box-sizing: border-box; }

.eotmap-launcher {
  position: fixed;
  z-index: 2147482989;
  right: 16px;
  bottom: 76px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 1px solid rgba(23, 212, 208, 0.55);
  border-radius: 999px;
  padding: 10px 14px;
  background: rgba(6, 24, 39, 0.95);
  color: var(--eotmap-white);
  box-shadow: 0 16px 42px rgba(0,0,0,.38);
  backdrop-filter: blur(12px);
  font: 800 13px/1.2 Arial, sans-serif;
  cursor: pointer;
}
.eotmap-launcher:hover { transform: translateY(-2px); }
.eotmap-launcher:focus-visible,
.eotmap-close:focus-visible,
.eotmap-toolbar button:focus-visible,
.eotmap-ranking button:focus-visible { outline: 3px solid rgba(232,184,74,.82); outline-offset: 3px; }
.eotmap-launcher-icon {
  width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%;
  background: linear-gradient(145deg, var(--eotmap-cyan), #8ff8f1); color: var(--eotmap-navy);
  box-shadow: 0 0 0 5px rgba(23,212,208,.12); font-size: 17px;
}

.eotmap-overlay {
  position: fixed; z-index: 2147483010; inset: 0; overflow: auto; padding: 20px;
  display: grid; place-items: center; color: var(--eotmap-white); font-family: Arial, sans-serif;
  background: radial-gradient(circle at 18% 15%, rgba(23,212,208,.17), transparent 35%),
              radial-gradient(circle at 82% 85%, rgba(232,184,74,.13), transparent 34%), rgba(1,9,15,.95);
  backdrop-filter: blur(14px);
}
.eotmap-overlay[hidden] { display: none; }
body.eotmap-open { overflow: hidden; }
.eotmap-grid {
  position: fixed; inset: 0; pointer-events: none; opacity: .38;
  background-image: linear-gradient(rgba(23,212,208,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(23,212,208,.07) 1px, transparent 1px);
  background-size: 50px 50px; transform: perspective(700px) rotateX(66deg) translateY(43%); transform-origin: center bottom;
}
.eotmap-shell {
  position: relative; z-index: 2; width: min(1280px, 100%); min-height: 720px; padding: 28px;
  border: 1px solid rgba(23,212,208,.26); border-radius: 28px;
  background: linear-gradient(145deg, rgba(8,39,57,.94), rgba(3,19,31,.97));
  box-shadow: 0 36px 110px rgba(0,0,0,.62); overflow: hidden;
}
.eotmap-shell::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(120deg, transparent 35%, rgba(255,255,255,.035), transparent 62%);
}
.eotmap-close {
  position: absolute; z-index: 10; top: 18px; left: 18px; width: 42px; height: 42px;
  border: 1px solid rgba(255,255,255,.17); border-radius: 13px; background: rgba(255,255,255,.07); color: white;
  font-size: 25px; cursor: pointer;
}
.eotmap-head { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; padding-left: 56px; }
.eotmap-kicker { color: var(--eotmap-cyan); font-size: 11px; font-weight: 900; letter-spacing: 1.3px; }
.eotmap-head h2 { margin: 7px 0 6px; font-size: clamp(24px, 4vw, 38px); line-height: 1.15; }
.eotmap-head p { max-width: 760px; margin: 0; color: rgba(247,251,255,.72); line-height: 1.7; font-size: 14px; }
.eotmap-head-badges { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.eotmap-head-badges span { border: 1px solid rgba(232,184,74,.35); border-radius: 999px; padding: 6px 10px; color: #f7dc91; background: rgba(232,184,74,.08); font-size: 11px; font-weight: 800; }
.eotmap-toolbar { position: relative; z-index: 3; display: flex; gap: 8px; flex-wrap: wrap; margin: 20px 0 14px; }
.eotmap-toolbar button {
  border: 1px solid rgba(255,255,255,.13); border-radius: 999px; padding: 9px 14px; background: rgba(255,255,255,.055);
  color: rgba(247,251,255,.78); font: 800 12px/1 Arial, sans-serif; cursor: pointer;
}
.eotmap-toolbar button.active { border-color: rgba(23,212,208,.75); background: linear-gradient(135deg,#17d4d0,#0f8798); color: #03141f; box-shadow: 0 0 0 5px rgba(23,212,208,.09); }
.eotmap-toolbar .eotmap-reset { margin-inline-start: auto; border-color: rgba(232,184,74,.35); color: #f5d47d; }
.eotmap-layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .7fr); gap: 20px; align-items: stretch; }
.eotmap-stage {
  position: relative; min-height: 570px; display: grid; place-items: center; overflow: hidden; perspective: 1100px;
  border: 1px solid rgba(23,212,208,.16); border-radius: 22px;
  background: radial-gradient(circle at 50% 45%, rgba(23,212,208,.095), transparent 46%), linear-gradient(180deg, rgba(1,17,28,.72), rgba(1,11,18,.9));
}
.eotmap-stage::before { content:''; position:absolute; inset:0; opacity:.18; background-image: radial-gradient(circle, #8ff8f1 1px, transparent 1.5px); background-size: 32px 32px; }
.eotmap-orbit { position: absolute; width: 78%; aspect-ratio: 1; border: 1px solid rgba(23,212,208,.22); border-radius: 50%; transform: rotateX(71deg); box-shadow: 0 0 50px rgba(23,212,208,.08); }
.eotmap-orbit::before,.eotmap-orbit::after { content:''; position:absolute; inset:12%; border:1px dashed rgba(232,184,74,.19); border-radius:50%; }
.eotmap-orbit::after { inset:27%; border-color:rgba(23,212,208,.18); }
.eotmap-card { position: relative; width: min(94%, 780px); transform-style: preserve-3d; transition: transform .16s ease-out; filter: drop-shadow(0 30px 26px rgba(0,0,0,.42)); }
.eotmap-svg { display: block; width: 100%; height: auto; overflow: visible; }
.eotmap-country { transform-origin: center; }
.eotmap-flow-line { fill: none; stroke: var(--eotmap-gold); stroke-linecap: round; stroke-dasharray: 10 14; filter: url(#eotmap-glow); animation: eotmap-flow 2.4s linear infinite; }
@keyframes eotmap-flow { to { stroke-dashoffset: -48; } }
.eotmap-node { cursor: pointer; outline: none; }
.eotmap-node text { fill: white; font: 800 11px/1 Arial, sans-serif; paint-order: stroke; stroke: rgba(2,15,25,.95); stroke-width: 3px; pointer-events: none; }
.eotmap-node-ring { fill: none; stroke-width: 2; opacity: .42; transform-box: fill-box; transform-origin: center; animation: eotmap-pulse 2.2s ease-out infinite; }
.eotmap-node-core { stroke: white; stroke-width: 1.4; filter: url(#eotmap-glow); }
.eotmap-node.danger .eotmap-node-core { fill: var(--eotmap-danger); }
.eotmap-node.danger .eotmap-node-ring { stroke: var(--eotmap-danger); }
.eotmap-node.warn .eotmap-node-core { fill: var(--eotmap-warn); }
.eotmap-node.warn .eotmap-node-ring { stroke: var(--eotmap-warn); }
.eotmap-node.good .eotmap-node-core { fill: var(--eotmap-good); }
.eotmap-node.good .eotmap-node-ring { stroke: var(--eotmap-good); }
.eotmap-node.selected .eotmap-node-core { stroke-width: 3.4; }
.eotmap-node.selected text { fill: #f9dc83; }
@keyframes eotmap-pulse { 0%{transform:scale(.7);opacity:.7} 75%,100%{transform:scale(1.5);opacity:0} }
.eotmap-legend { position: absolute; left: 14px; right: 14px; bottom: 12px; display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; padding: 8px 12px; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; background: rgba(3,19,31,.8); backdrop-filter: blur(8px); font-size: 10.5px; font-weight: 700; color: rgba(247,251,255,.76); }
.eotmap-legend span { display: inline-flex; align-items: center; gap: 5px; }
.eotmap-legend i { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.eotmap-legend i.danger { background: var(--eotmap-danger); }.eotmap-legend i.warn { background: var(--eotmap-warn); }.eotmap-legend i.good { background: var(--eotmap-good); }
.eotmap-legend i.flow { width: 18px; height: 2px; border-radius: 4px; background: var(--eotmap-gold); }
.eotmap-side { display: flex; flex-direction: column; gap: 13px; min-width: 0; }
.eotmap-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.eotmap-metrics div { border: 1px solid rgba(23,212,208,.14); border-radius: 15px; padding: 12px; background: rgba(255,255,255,.045); }
.eotmap-metrics strong { display: block; color: var(--eotmap-cyan); font-size: 22px; }.eotmap-metrics span { color: rgba(247,251,255,.62); font-size: 10.5px; }
.eotmap-detail { border: 1px solid rgba(232,184,74,.18); border-radius: 17px; padding: 15px; background: linear-gradient(145deg,rgba(232,184,74,.07),rgba(255,255,255,.035)); }
.eotmap-detail-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }.eotmap-detail-head span{color:rgba(247,251,255,.58);font-size:10.5px}.eotmap-detail-head h3{margin:4px 0 0;font-size:20px}.eotmap-detail-head b{border-radius:999px;padding:7px 10px;font-size:12px;color:#061827}.eotmap-detail-head b.danger{background:var(--eotmap-danger)}.eotmap-detail-head b.warn{background:var(--eotmap-warn)}.eotmap-detail-head b.good{background:var(--eotmap-good)}
.eotmap-pressure { height: 9px; margin: 13px 0; border-radius: 99px; background: rgba(255,255,255,.08); overflow:hidden; }.eotmap-pressure i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--eotmap-good),var(--eotmap-warn),var(--eotmap-danger));}
.eotmap-detail p{margin:0 0 11px;color:rgba(247,251,255,.7);font-size:12.5px;line-height:1.55}.eotmap-advice{display:grid;gap:4px;padding:10px;border-radius:12px;background:rgba(23,212,208,.07);border:1px solid rgba(23,212,208,.12)}.eotmap-advice strong{color:var(--eotmap-cyan);font-size:11px}.eotmap-advice span{font-size:11.5px;line-height:1.5;color:rgba(247,251,255,.78)}
.eotmap-ranking { border: 1px solid rgba(255,255,255,.1); border-radius: 17px; padding: 13px; background: rgba(255,255,255,.035); }
.eotmap-ranking h3 { margin: 0 0 8px; font-size: 13px; }
.eotmap-ranking button { width:100%;display:flex;justify-content:space-between;gap:10px;border:0;border-top:1px solid rgba(255,255,255,.07);padding:9px 2px;background:transparent;color:rgba(247,251,255,.78);font:700 11.5px Arial,sans-serif;cursor:pointer;text-align:right; }.eotmap-ranking button:first-of-type{border-top:0}.eotmap-ranking button:hover{color:white}.eotmap-ranking b{color:var(--eotmap-gold)}
.eotmap-source { margin:auto 2px 0; color:rgba(247,251,255,.47); font-size:9.5px; line-height:1.55; }.eotmap-source-status{color:rgba(143,248,241,.75)}

@media (max-width: 960px) {
  .eotmap-shell { padding: 22px 18px; }
  .eotmap-layout { grid-template-columns: 1fr; }
  .eotmap-stage { min-height: 500px; }
  .eotmap-side { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .eotmap-metrics,.eotmap-source { grid-column: 1/-1; }
}
@media (max-width: 640px) {
  .eotmap-overlay { padding: 8px; align-items: start; }
  .eotmap-shell { min-height: 100%; border-radius: 18px; padding: 68px 12px 18px; }
  .eotmap-close { top: 14px; left: 14px; }
  .eotmap-head { display:block; padding-left:0; }.eotmap-head-badges{justify-content:flex-start;margin-top:10px}
  .eotmap-toolbar .eotmap-reset { margin-inline-start:0; }
  .eotmap-stage { min-height: 390px; }.eotmap-card{width:100%}.eotmap-node text{font-size:9px;stroke-width:2px}.eotmap-legend{border-radius:14px;gap:8px}
  .eotmap-side { display:flex; }.eotmap-launcher{right:10px;bottom:118px;padding:9px 12px}.eotmap-launcher-icon{width:25px;height:25px}
}
@media (prefers-reduced-motion: reduce) {
  .eotmap-flow-line,.eotmap-node-ring { animation: none; }
  .eotmap-card,.eotmap-launcher { transition: none; }
}
