/* Державний шрифт e-Ukraine (бренд-система України / «Дія») */
@font-face{font-family:'e-Ukraine';src:url('/fonts/e-Ukraine-Thin.woff2') format('woff2');font-weight:100;font-display:swap}
@font-face{font-family:'e-Ukraine';src:url('/fonts/e-Ukraine-Light.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'e-Ukraine';src:url('/fonts/e-Ukraine-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'e-Ukraine';src:url('/fonts/e-Ukraine-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'e-Ukraine';src:url('/fonts/e-Ukraine-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'e-UkraineHead';src:url('/fonts/e-UkraineHead-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'e-UkraineHead';src:url('/fonts/e-UkraineHead-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'e-UkraineHead';src:url('/fonts/e-UkraineHead-Bold.woff2') format('woff2');font-weight:700;font-display:swap}

/* Светлая тема — портал Укрэнерго (значення за замовчуванням) */
:root{
  --bg:#f4f6fb; --surface:#ffffff; --surface2:#f8fafc; --border:#e2e8f0; --ink:#1e293b;
  --muted:#64748b; --accent:#2563eb; --accent2:#0ea5e9;
  --green:#16a34a; --amber:#d97706; --yellow:#ca8a04; --red:#dc2626;
  --shadow:0 1px 3px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.04);
  --shadow-lg:0 10px 25px rgba(15,23,42,.10);
  /* акцентні «м'які» фони (у світлій — світлі, у темній — напівпрозорі) */
  --soft-blue:#eff6ff; --soft-blue-bd:#bfdbfe; --soft-blue-ink:#1e40af;
  --nav-active-bg:#eff6ff;
  --grid-line:#e2e8f0; --axis:#94a3b8;
}
/* ── ТЕМНА ТЕМА: лише перевизначення змінних + кілька точкових правок ── */
:root[data-theme="dark"]{
  --bg:#070d18; --surface:#0f1a2b; --surface2:#0c1626; --border:#22324a; --ink:#e8eef6;
  --muted:#93a6c0; --accent:#3b82f6; --accent2:#38bdf8;
  --green:#22c55e; --amber:#f59e0b; --yellow:#eab308; --red:#ef4444;
  --shadow:0 1px 3px rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.3);
  --shadow-lg:0 18px 50px rgba(0,0,0,.55);
  --soft-blue:rgba(59,130,246,.14); --soft-blue-bd:rgba(59,130,246,.32); --soft-blue-ink:#bfdbfe;
  --nav-active-bg:rgba(59,130,246,.16);
  --grid-line:#22324a; --axis:#64748b;
  color-scheme:dark;
}

/* ── Перемикач теми (кнопка в шапці) ── */
.theme-toggle{margin-left:10px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  border:1px solid var(--border);background:var(--surface);color:var(--muted);
  border-radius:9px;padding:7px 12px;font-size:13px;font-weight:600;font-family:inherit;
  transition:background .15s,color .15s,border-color .15s}
.theme-toggle:hover{color:var(--ink);border-color:var(--accent)}
.theme-toggle svg{width:16px;height:16px}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);
  font-family:'e-Ukraine',system-ui,'Segoe UI',Roboto,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.h1,.secgate-title,.penter-name,.section-title{font-family:'e-UkraineHead','e-Ukraine',system-ui,sans-serif}
a{color:var(--accent);text-decoration:none}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.topbar .wrap{display:flex;align-items:center;gap:16px;height:58px}
.brand{font-weight:700;font-size:16px;display:flex;align-items:center;gap:8px}
.brand .dot{width:10px;height:10px;border-radius:3px;background:var(--accent)}
.nav{margin-left:auto;display:flex;gap:6px}
.nav a{padding:7px 12px;border-radius:8px;color:var(--muted);font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.nav a:hover{background:var(--bg);color:var(--ink)}
.nav a.active{background:var(--nav-active-bg);color:var(--accent)}
.nav .nav-crest{width:22px;height:22px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
/* точку приховуємо — продукт тепер позначає кольорова ПЛАШКА (фон пункту) */
.nav .nav-dot{display:none}
/* плашки: лёгкая постоянная заливка в цвет продукта (визначаємо по класу точки) */
.nav a:has(.nav-dot.d-a1){background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.28);color:#fca5a5}
.nav a:has(.nav-dot.d-a2){background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.28);color:#86efac}
.nav a:has(.nav-dot.d-a3){background:rgba(14,165,233,.12);border:1px solid rgba(14,165,233,.28);color:#7dd3fc}
.nav a:has(.nav-dot.d-a1):hover{background:rgba(239,68,68,.22);color:#fecaca}
.nav a:has(.nav-dot.d-a2):hover{background:rgba(34,197,94,.22);color:#bbf7d0}
.nav a:has(.nav-dot.d-a3):hover{background:rgba(14,165,233,.22);color:#bae6fd}
.nav a:has(.nav-dot.d-a1).active{background:rgba(239,68,68,.26);box-shadow:0 0 0 1px rgba(239,68,68,.5),0 0 14px rgba(239,68,68,.3);color:#fff}
.nav a:has(.nav-dot.d-a2).active{background:rgba(34,197,94,.26);box-shadow:0 0 0 1px rgba(34,197,94,.5),0 0 14px rgba(34,197,94,.3);color:#fff}
.nav a:has(.nav-dot.d-a3).active{background:rgba(14,165,233,.26);box-shadow:0 0 0 1px rgba(14,165,233,.5),0 0 14px rgba(14,165,233,.3);color:#fff}
/* пункт «Для Правління» — янтарний акцент керівництва (виділяється з-поміж R/G/B рішень) */
.nav a.nav-board{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.30);color:#fcd34d;font-weight:700}
.nav a.nav-board:hover{background:rgba(245,158,11,.22);color:#fde68a}
.nav a.nav-board.active{background:rgba(245,158,11,.26);box-shadow:0 0 0 1px rgba(245,158,11,.5),0 0 14px rgba(245,158,11,.3);color:#fff}
/* hover: пункти-продукти плавно «оживають» */
.nav a:has(.nav-crest){transition:transform .18s cubic-bezier(.34,1.56,.64,1),background .18s,box-shadow .18s}
.nav a:has(.nav-crest):hover{transform:scale(1.06)}
.nav a .nav-crest{transition:transform .18s cubic-bezier(.34,1.56,.64,1),filter .18s}
.nav a:has(.nav-crest):hover .nav-crest{transform:scale(1.12);filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.nav a:has(.nav-crest):hover .nav-dot{box-shadow:0 0 0 2px rgba(255,255,255,.18),0 0 12px currentColor}
@keyframes tourAuto{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ── KEYNOTE: презентаційний кіно-слайд ─────────────────────────────────── */
@keyframes knIn{from{opacity:0;transform:translate(-50%,calc(-50% + 24px))}to{opacity:1;transform:translate(-50%,-50%)}}
.keynote-slide{
  position:fixed;left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);z-index:9600;
  width:min(760px,92vw);padding:28px 32px 22px;border-radius:20px;
  background:linear-gradient(160deg,rgba(17,25,42,.97),rgba(11,17,30,.98));
  border:1px solid rgba(124,58,237,.45);
  box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 60px rgba(124,58,237,.25),inset 0 1px 0 rgba(255,255,255,.06);
  color:#e8eefb;animation:knIn .5s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(8px);
}
.kn-kicker{font-size:12px;font-weight:800;letter-spacing:1.5px;color:#a78bfa;text-transform:uppercase;margin-bottom:8px}
.kn-title{font-family:'e-UkraineHead',sans-serif;font-size:30px;line-height:1.15;font-weight:800;margin-bottom:18px;color:#fff;letter-spacing:.2px}
.kn-body{display:flex;flex-direction:column;gap:11px;margin-bottom:6px}
.kn-row{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:1.5}
.kn-tag{flex:0 0 84px;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:4px 0;text-align:left}
.kn-pain .kn-tag{color:#f87171}.kn-pain span:last-child{color:#cbd5e1}
.kn-solve .kn-tag{color:#7dd3fc}.kn-solve span:last-child{color:#e8eefb}
.kn-gain .kn-tag{color:#86efac}.kn-gain span:last-child{color:#fff;font-weight:600}
.kn-metric{display:flex;align-items:baseline;gap:14px;margin-top:16px;padding:14px 18px;border-radius:13px;
  background:linear-gradient(135deg,rgba(124,58,237,.18),rgba(37,99,235,.12));border:1px solid rgba(124,58,237,.3)}
.kn-metric-v{font-family:'e-UkraineHead',sans-serif;font-size:34px;font-weight:800;color:#fff;line-height:1;white-space:nowrap}
.kn-metric-s{font-size:13px;color:#aab8d4;line-height:1.4}
.kn-progress{height:3px;border-radius:3px;background:rgba(255,255,255,.1);margin:20px 0 14px;overflow:hidden}
.kn-progress-fill{height:100%;background:linear-gradient(90deg,#2563eb,#7c3aed);transform-origin:left;border-radius:3px}
.kn-dots{display:flex;gap:8px;justify-content:center;margin-bottom:16px}
.kn-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.18);transition:all .3s}
.kn-dot.on{background:#a78bfa;width:26px;border-radius:5px;box-shadow:0 0 10px rgba(167,139,250,.7)}
.kn-dot.done{background:rgba(167,139,250,.5)}
.kn-controls{display:flex;align-items:center;gap:10px}
.kn-btn{border:none;border-radius:10px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.kn-btn.ghost{background:transparent;color:#aab8d4;border:1px solid rgba(150,170,210,.25)}
.kn-btn.ghost:hover{background:rgba(150,170,210,.1);color:#fff}
.kn-btn.solid{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;box-shadow:0 4px 16px rgba(124,58,237,.4)}
.kn-btn.solid:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(124,58,237,.55)}
.kn-btn:disabled{cursor:default}
@media(max-width:640px){.kn-title{font-size:23px}.kn-row{font-size:14px}.kn-tag{flex-basis:70px}.keynote-slide{padding:22px 20px 18px;bottom:16px}}
.badge{padding:3px 9px;border-radius:6px;font-size:12px;font-weight:600;display:inline-block}
.badge.demo{background:#fff7ed;color:var(--amber);border:1px solid #fed7aa}
.badge.ok{background:#f0fdf4;color:var(--green);border:1px solid #bbf7d0}
.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}
.pad{padding:18px}
.grid{display:grid;gap:16px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.kpi .label{font-size:12px;color:var(--muted)}
.kpi .value{font-size:26px;font-weight:700;margin-top:2px}
.kpi .value small{font-size:13px;font-weight:400;color:var(--muted);margin-left:4px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}
.tabs button{padding:8px 15px;border:1px solid var(--border);background:var(--surface);
  border-radius:9px;font-size:14px;color:var(--muted);cursor:pointer;font-weight:600;
  transition:all .18s}
.tabs button:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px rgba(56,189,248,.3)}
.tabs button.active{background:linear-gradient(110deg,var(--accent),var(--accent2));color:#fff;
  border-color:var(--accent2);box-shadow:0 0 18px rgba(56,189,248,.6);font-weight:700}
.h1{font-size:22px;font-weight:700;margin:0}
.sub{color:var(--muted);font-size:14px;margin-top:4px}
.section-title{font-size:15px;font-weight:600;margin:0 0 2px}
.section-sub{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.btn{position:relative;overflow:hidden;display:inline-block;padding:11px 20px;border-radius:10px;
  background:linear-gradient(110deg,var(--accent),var(--accent2),#22d3ee,var(--accent2),var(--accent));
  background-size:280% 100%;color:#fff;font-weight:700;font-size:14px;border:1px solid rgba(56,189,248,.55);
  cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.25);
  box-shadow:0 0 0 1px rgba(56,189,248,.25), 0 0 18px rgba(56,189,248,.55), 0 6px 18px rgba(37,99,235,.4);
  transition:transform .15s,box-shadow .25s,background-position .6s;
  animation:btnGlow 4s ease infinite, btnPulse 2.4s ease-in-out infinite}
.btn:hover{transform:translateY(-2px) scale(1.02);
  box-shadow:0 0 0 1px rgba(56,189,248,.5), 0 0 28px rgba(56,189,248,.85), 0 10px 26px rgba(37,99,235,.55);
  background-position:100% 0}
/* яркий бегущий блик (shimmer) поверх кнопки */
.btn::after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:55%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);
  transform:skewX(-18deg);pointer-events:none;animation:btnShimmer 3.2s ease-in-out infinite}
/* ghost-кнопки тоже видны: подсветка-обводка + мягкое свечение */
.btn.ghost{background:var(--surface);color:var(--accent);border:1px solid var(--accent);
  font-weight:700;box-shadow:0 0 14px rgba(56,189,248,.35);animation:btnPulse 2.8s ease-in-out infinite}
.btn.ghost::after{background:linear-gradient(100deg,transparent,rgba(56,189,248,.35),transparent)}
.btn.ghost:hover{transform:translateY(-2px);color:#fff;
  background:linear-gradient(110deg,var(--accent),var(--accent2));
  box-shadow:0 0 24px rgba(56,189,248,.7)}
.btn.danger{background:linear-gradient(110deg,var(--red),#fb7185,#f87171,var(--red));background-size:280% 100%;
  border-color:rgba(248,113,113,.55);
  box-shadow:0 0 0 1px rgba(248,113,113,.3), 0 0 18px rgba(239,68,68,.6), 0 6px 18px rgba(220,38,38,.4)}
@keyframes btnGlow{0%,100%{background-position:0 0}50%{background-position:100% 0}}
@keyframes btnShimmer{0%{left:-60%}55%,100%{left:140%}}
@keyframes btnPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.12)}}
.muted{color:var(--muted)}
.note{font-size:12px;color:var(--muted);font-style:italic;margin-top:10px}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--muted);font-size:12px;font-weight:600;padding:6px 8px}
td{padding:8px;border-top:1px solid var(--border)}
.pill{font-size:11px;padding:2px 8px;border-radius:20px;font-weight:600}
.flag{font-size:11px;padding:2px 8px;border-radius:6px;background:#fef2f2;color:var(--red);margin:2px}
/* Портал-лендинг */
.hero{padding:48px 0 24px}
.hero h1{font-size:34px;margin:0 0 10px}
.hero p{font-size:16px;color:var(--muted);max-width:680px;line-height:1.5}

/* ── Жива карта-заставка першого екрану (Хвиля 10) ── */
.maphero{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--border);
  box-shadow:var(--shadow-lg);margin:18px 0 22px;background:#0b1220}
.maphero #heromap{height:560px;width:100%;z-index:1}
@media(max-width:760px){.maphero #heromap{height:440px}}
/* затемнення низу карти під текст */
.maphero::after{content:'';position:absolute;left:0;right:0;bottom:0;height:62%;z-index:2;
  pointer-events:none;background:linear-gradient(180deg,rgba(8,13,24,0) 0%,rgba(8,13,24,.62) 58%,rgba(8,13,24,.9) 100%)}
.maphero-overlay{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:26px 30px;color:#fff;pointer-events:none}
.maphero-overlay .kicker{font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
  color:#7dd3fc;margin-bottom:8px}
.maphero-overlay .slogan{font-size:30px;font-weight:800;line-height:1.15;max-width:760px;
  text-shadow:0 2px 18px rgba(0,0,0,.55)}
@media(max-width:760px){.maphero-overlay .slogan{font-size:21px}}
.maphero-overlay .slogan b{color:#7dd3fc}
.maphero-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;pointer-events:auto}
.mstat{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(6px);border-radius:12px;padding:10px 16px;min-width:120px}
.mstat .v{font-size:26px;font-weight:800;line-height:1;color:#fff}
.mstat .v small{font-size:13px;font-weight:600;color:#cbd5e1;margin-left:3px}
.mstat .l{font-size:11px;color:#cbd5e1;margin-top:5px;text-transform:uppercase;letter-spacing:.5px}
.mstat.crit .v{color:#fca5a5}
.maphero-legend{position:absolute;top:14px;right:14px;z-index:3;display:flex;gap:10px;flex-wrap:wrap;
  background:rgba(11,18,32,.62);border:1px solid rgba(255,255,255,.14);border-radius:10px;
  padding:7px 11px;font-size:11px;color:#e2e8f0}
.maphero-legend .sw{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:4px;vertical-align:middle}
.maphero-cta{position:absolute;top:14px;left:14px;z-index:4}

/* пульсація критичних вузлів на карті (Leaflet divIcon) */
.node-pulse{position:relative}
.node-pulse::before{content:'';position:absolute;inset:0;border-radius:50%;
  background:#dc2626;opacity:.55;animation:nodepulse 1.8s ease-out infinite}
@keyframes nodepulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(3.4);opacity:0}100%{opacity:0}}

/* ── Заставка-висновок A1 (Pareto) на порталі ── */
.a1conc{display:grid;grid-template-columns:1.15fr 1fr;gap:0;border-radius:18px;overflow:hidden;
  border:1px solid var(--soft-blue-bd);box-shadow:var(--shadow-lg);margin:0 0 28px;background:var(--surface)}
@media(max-width:760px){.a1conc{grid-template-columns:1fr}}
.a1conc .left{padding:30px 32px;background:linear-gradient(135deg,#0c4a6e,#1e3a8a);color:#fff}
.a1conc .left .tag{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#7dd3fc}
.a1conc .left .num{font-size:46px;font-weight:900;line-height:1.05;margin:10px 0 6px}
.a1conc .left .num b{color:#7dd3fc}
.a1conc .left .desc{font-size:14px;color:#dbeafe;line-height:1.55;max-width:420px}
.a1conc .left .thr{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.a1conc .left .thr span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);
  border-radius:20px;padding:5px 12px;font-size:12.5px;font-weight:600}
.a1conc .right{padding:24px 26px;display:flex;flex-direction:column;justify-content:center}
.a1conc .right .ct{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}
.minipareto{display:flex;align-items:flex-end;gap:0;height:140px;border-bottom:2px solid var(--border);
  position:relative}
.minipareto .bar{flex:1;background:linear-gradient(180deg,#60a5fa,#2563eb);margin:0 1px;border-radius:3px 3px 0 0;
  transition:height .4s;min-width:2px}
.minipareto .bar.hl{background:linear-gradient(180deg,#34d399,#16a34a)}
.minipareto .thr80{position:absolute;left:0;right:0;border-top:1px dashed #16a34a}
.minipareto .thr80 span{position:absolute;right:0;top:-16px;font-size:10px;color:#16a34a;font-weight:700}
.a1conc .right .ax{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:6px}
.a1conc .right .btn{margin-top:16px;align-self:flex-start}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 50px}
@media(max-width:900px){.cards3{grid-template-columns:1fr}}
.mcard{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;
  box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column}
.mcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.mcard .ico{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;
  justify-content:center;margin-bottom:14px}
.mcard .ico svg{width:30px;height:30px;display:block}
.mcard h3{margin:0 0 8px;font-size:18px}
.mcard p{color:var(--muted);font-size:14px;line-height:1.5;flex:1}
.mcard .links{display:flex;gap:10px;margin-top:16px}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted);align-items:center;flex-wrap:wrap}
.legend .sw{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:5px}

/* ── data_origin бейдж (И-5: происхождение — свойство UI, не подвал) ── */
.origin{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;
  font-size:12px;font-weight:600;border:1px solid;vertical-align:middle}
.origin .lbl{font-weight:500;opacity:.75;font-size:11px;text-transform:uppercase;letter-spacing:.3px}
.origin.synthetic{background:#fff7ed;color:#b45309;border-color:#fed7aa}
.origin.open_data{background:#ecfeff;color:#0e7490;border-color:#a5f3fc}
.origin.nda{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.origin .dotmk{width:7px;height:7px;border-radius:50%;background:currentColor}

/* signal-not-proof плашка (И-4) */
.signalnote{display:flex;gap:10px;align-items:flex-start;background:#fffbeb;border:1px solid #fde68a;
  border-radius:10px;padding:10px 14px;font-size:13px;color:#92400e;line-height:1.45;margin:0 0 14px}
.signalnote b{color:#78350f}

/* severity pills */
.sev{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px}
.sev.critical{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}
.sev.high{background:#fff7ed;color:#ea580c;border:1px solid #fed7aa}
.sev.medium{background:#fefce8;color:#ca8a04;border:1px solid #fef08a}
.sev.low{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}
.sev.info{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}

/* leaflet map */
#map{height:520px;border-radius:12px;z-index:1}
.leaflet-popup-content{font-family:system-ui,'Segoe UI',sans-serif;font-size:13px}
.leaflet-popup-content b{color:var(--ink)}

/* defense-in-depth эшелоны (питч-актив) */
.echelons{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
@media(max-width:760px){.echelons{grid-template-columns:1fr 1fr}}
.ech{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;position:relative;overflow:hidden}
.ech::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.ech .lv{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.4px}
.ech h4{margin:4px 0 4px;font-size:14px}
.ech p{margin:0;font-size:12px;color:var(--muted);line-height:1.4}

/* pareto headline */
.headline{background:var(--soft-blue);border:1px solid var(--soft-blue-bd);border-radius:14px;
  padding:18px 22px;margin-bottom:16px}
.headline .big{font-size:30px;font-weight:800;color:var(--accent);line-height:1.1}
.headline .txt{color:var(--soft-blue-ink);font-size:14px;margin-top:6px;line-height:1.5}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.chip{background:var(--surface);border:1px solid var(--soft-blue-bd);border-radius:20px;padding:5px 12px;font-size:13px;color:var(--soft-blue-ink);font-weight:600}

/* cascade list */
.cascade li{margin:6px 0;font-size:13px;line-height:1.4}
.kbtn{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
select.sel{padding:9px 12px;border:1px solid var(--border);border-radius:9px;font-size:14px;background:var(--surface);color:var(--ink)}

/* event-bus pulse */
.busbar{display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px dashed var(--accent2);
  border-radius:10px;padding:10px 14px;font-size:13px;color:var(--muted);margin-top:12px}
.busbar .pulse{width:9px;height:9px;border-radius:50%;background:var(--accent2);
  box-shadow:0 0 0 0 rgba(14,165,233,.6);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(14,165,233,.5)}70%{box-shadow:0 0 0 8px rgba(14,165,233,0)}100%{box-shadow:0 0 0 0 rgba(14,165,233,0)}}

/* ── Потік шини подій (удар → ринок → закупівля) ── */
.busflow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;margin:14px 0 4px}
.bf-node{flex:1;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:12px;
  padding:14px 16px;position:relative;overflow:hidden}
.bf-node .bf-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.bf-node .bf-h svg{width:20px;height:20px}
.bf-node .bf-p{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.45}
.bf-node .bf-tag{font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;
  color:var(--accent);margin-bottom:4px}
.bf-node.a1::before,.bf-node.a2::before,.bf-node.a3::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px}
.bf-node.a1::before{background:var(--red)}.bf-node.a2::before{background:var(--green)}.bf-node.a3::before{background:var(--accent2)}
.bf-arrow{display:flex;align-items:center;justify-content:center;width:54px;color:var(--accent2);position:relative}
@media(max-width:760px){.bf-arrow{width:100%;height:34px;transform:rotate(90deg)}}
.bf-arrow .track{width:100%;height:3px;background:#e2e8f0;border-radius:3px;position:relative;overflow:hidden}
.bf-arrow .track::after{content:'';position:absolute;top:0;left:-40%;width:40%;height:100%;
  background:linear-gradient(90deg,transparent,var(--accent2),transparent);animation:flowdot 1.8s linear infinite}
@keyframes flowdot{0%{left:-40%}100%{left:100%}}
.bf-arrow .tip{position:absolute;right:0;color:var(--accent2);font-size:16px;line-height:1}

.feed{max-height:340px;overflow:auto}
.feed .row{padding:10px 0;border-top:1px solid var(--border);display:flex;gap:12px;align-items:flex-start}
.feed .row:first-child{border-top:none}
.feed .t{font-size:12px;color:var(--muted);white-space:nowrap;min-width:84px}

/* ───────────── Екран державної таємниці (gate) ───────────── */
#secgate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(120% 120% at 50% 30%,rgba(6,16,28,.55) 0%,rgba(3,7,13,.82) 70%,rgba(2,5,10,.95) 100%),
    url('/static/img/gate-bg.jpg') center/cover no-repeat,
    #06101c;
  transition:opacity .55s ease, transform .55s ease;padding:20px}
#secgate.open{opacity:0;transform:scale(1.04);pointer-events:none}
.secgate-card{max-width:560px;width:100%;text-align:center;color:#e8eef6;
  border:1px solid rgba(250,204,21,.28);border-radius:18px;padding:40px 34px;
  background:linear-gradient(180deg,rgba(17,34,56,.72),rgba(8,18,32,.82));
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.03)}
.secgate-emblem{width:96px;height:115px;color:#cfe0f5;margin-bottom:6px;
  filter:drop-shadow(0 4px 14px rgba(250,204,21,.25))}
.secgate-emblem .bolt{animation:gbolt 2.2s ease-in-out infinite}
@keyframes gbolt{0%,100%{opacity:.55}50%{opacity:1}}
.secgate-grif{display:inline-block;letter-spacing:3px;font-weight:800;font-size:13px;
  color:#0b1422;background:#facc15;padding:5px 16px;border-radius:6px;margin-bottom:14px}
.secgate-title{margin:6px 0 4px;font-size:30px;font-weight:800;letter-spacing:4px;color:#fff}
.secgate-sub{font-size:13px;color:#9fb4cd;line-height:1.5;max-width:430px;margin:0 auto 20px}
.secgate-warn{font-size:12.5px;line-height:1.55;color:#ffd7d7;
  border:1px solid rgba(220,38,38,.4);background:rgba(120,20,20,.25);
  border-radius:10px;padding:12px 16px;margin:0 auto 22px;max-width:470px}
.secgate-level-q{font-size:13px;color:#9fb4cd;margin-bottom:12px;letter-spacing:1px}
.secgate-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.secgate-btn{cursor:pointer;border:none;border-radius:12px;padding:16px 22px;min-width:200px;
  text-align:left;color:#fff;transition:transform .15s, box-shadow .15s;display:flex;flex-direction:column;gap:3px}
.secgate-btn:hover{transform:translateY(-2px)}
.secgate-btn .bn{font-weight:800;font-size:16px;letter-spacing:2px}
.secgate-btn .bd{font-size:11.5px;opacity:.85;font-weight:500}
.secgate-btn.lvl1{background:linear-gradient(135deg,#1f3b5c,#162a44);box-shadow:0 8px 22px rgba(0,0,0,.4)}
.secgate-btn.lvl2{background:linear-gradient(135deg,#b8902a,#8a6a16);box-shadow:0 8px 22px rgba(180,144,42,.35)}
.secgate-foot{margin-top:22px;font-size:10.5px;color:#5e7390;letter-spacing:1px}
/* емблема як <img> — готова до переоформлення під герб замовника
   (.secgate-* класи переиспользуються на сторінках продуктів) */
.secgate-emblem-img{width:132px;height:auto;margin:0 auto 10px;display:block;
  filter:drop-shadow(0 8px 26px rgba(250,204,21,.3))}
/* гриф «ЦІЛКОМ ТАЄМНО» з лёгким переливанням золота */
.secgate-grif{background:linear-gradient(110deg,#facc15,#fde68a,#eab308,#facc15);
  background-size:280% 100%;animation:goldShimmer 6s ease infinite}
@keyframes goldShimmer{0%,100%{background-position:0 0}50%{background-position:100% 0}}

/* ───────────── PWA: плашка «Встановити застосунок» ───────────── */
.pwa-install{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:9000;
  display:flex;align-items:center;gap:12px;max-width:calc(100% - 32px);
  padding:11px 12px 11px 16px;border-radius:14px;color:#e8eef6;
  background:linear-gradient(180deg,rgba(17,34,56,.95),rgba(8,18,32,.96));
  border:1px solid rgba(250,204,21,.3);
  box-shadow:0 18px 50px rgba(0,0,0,.5);backdrop-filter:blur(8px);
  font-size:13.5px;font-weight:500;animation:pwaUp .4s ease}
@keyframes pwaUp{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
.pwa-install[hidden]{display:none}
.pwa-install .pwa-ico{display:inline-flex;color:#facc15}
.pwa-install .pwa-txt{white-space:nowrap}
.pwa-install .pwa-btn{cursor:pointer;border:none;border-radius:9px;padding:8px 16px;
  font-family:inherit;font-weight:700;font-size:13px;color:#0b1422;
  background:linear-gradient(135deg,#facc15,#eab308);box-shadow:0 6px 16px rgba(250,204,21,.28);
  transition:transform .15s}
.pwa-install .pwa-btn:hover{transform:translateY(-1px)}
.pwa-install .pwa-x{cursor:pointer;border:none;background:transparent;color:#7e93ad;
  font-size:20px;line-height:1;padding:0 4px;transition:color .15s}
.pwa-install .pwa-x:hover{color:#e8eef6}
@media(max-width:480px){.pwa-install{flex-wrap:wrap;justify-content:center}.pwa-install .pwa-txt{white-space:normal;text-align:center}}

/* ═══════════════ ХАБ ПЛАТФОРМИ DTU (тёмный командный центр) ═══════════════ */
.dtu-hub{position:relative;background:radial-gradient(140% 120% at 50% -10%,#0b1b2e 0%,#06101c 58%,#03070d 100%);
  color:#e8eef6;overflow:hidden;border-bottom:1px solid rgba(250,204,21,.18)}
/* фоновая «шина» — тонкая подложка из связанных линий */
.dtu-hub::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(60% 50% at 50% 40%,rgba(125,211,252,.06),transparent 70%),
    repeating-linear-gradient(115deg,rgba(125,211,252,.035) 0 1px,transparent 1px 46px);
  opacity:.9}
.dtu-hub .wrap{position:relative;z-index:2}
.dtu-head{text-align:center;padding:54px 0 8px}
.dtu-emblem{width:62px;height:74px;color:#cfe0f5;margin:0 auto 14px;display:block;
  filter:drop-shadow(0 4px 16px rgba(250,204,21,.28))}
.dtu-emblem .bolt{animation:gbolt 2.2s ease-in-out infinite}
.dtu-badge{display:inline-block;letter-spacing:3px;font-weight:800;font-size:11px;color:#0b1422;
  background:#facc15;padding:4px 14px;border-radius:6px;margin-bottom:16px}
.dtu-title{font-size:clamp(30px,5vw,46px);font-weight:900;letter-spacing:.5px;margin:0;color:#fff;line-height:1.08}
.dtu-title b{color:#7dd3fc}
.dtu-uk{font-size:18px;color:#9fb4cd;margin:8px 0 4px;font-weight:600}
.dtu-tags{font-size:13px;color:#7dd3fc;letter-spacing:2px;text-transform:uppercase;font-weight:700;margin-bottom:6px}
.dtu-lead{max-width:680px;margin:14px auto 0;font-size:15px;line-height:1.6;color:#b9c8dc}
.dtu-lead b{color:#e8eef6}
/* строка статуса комплекса (живые цифры) */
.dtu-status{display:flex;gap:0;justify-content:center;flex-wrap:wrap;margin:26px auto 4px;
  border:1px solid rgba(255,255,255,.12);border-radius:14px;overflow:hidden;max-width:760px;
  background:rgba(255,255,255,.04);backdrop-filter:blur(6px)}
.dtu-status .si{padding:14px 26px;text-align:center;border-right:1px solid rgba(255,255,255,.1);flex:1;min-width:130px}
.dtu-status .si:last-child{border-right:none}
.dtu-status .si .v{font-size:28px;font-weight:800;color:#fff;line-height:1}
.dtu-status .si.crit .v{color:#fca5a5}
.dtu-status .si .l{font-size:11px;color:#9fb4cd;margin-top:6px;text-transform:uppercase;letter-spacing:.6px}
.dtu-status .si .live{display:inline-block;width:7px;height:7px;border-radius:50%;background:#34d399;
  margin-right:6px;box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:pulse 1.8s infinite;vertical-align:middle}

/* ── ТРИ ПОРТАЛА ВХОДА + шина между ними ── */
.dtu-portals-shell{position:relative;padding:32px 0 56px}
.dtu-portals{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;position:relative;z-index:2}
@media(max-width:900px){.dtu-portals{grid-template-columns:1fr}}
/* пульсирующая шина-связь под карточками */
.dtu-bus{position:absolute;left:8%;right:8%;top:50%;height:2px;z-index:1;
  background:linear-gradient(90deg,transparent,rgba(125,211,252,.35),rgba(125,211,252,.35),transparent);
  overflow:visible}
@media(max-width:900px){.dtu-bus{display:none}}
.dtu-bus::after{content:'';position:absolute;top:-2px;left:0;width:80px;height:6px;border-radius:6px;
  background:linear-gradient(90deg,transparent,#7dd3fc,transparent);filter:blur(1px);
  animation:dtubus 4.5s linear infinite}
@keyframes dtubus{0%{left:-10%}100%{left:100%}}
.dtu-bus .pt{position:absolute;top:-3px;width:8px;height:8px;border-radius:50%;background:#7dd3fc;
  box-shadow:0 0 10px #7dd3fc;animation:dtupt 2.4s ease-in-out infinite}
.dtu-bus .pt.p1{left:16.6%;animation-delay:0s}
.dtu-bus .pt.p2{left:50%;animation-delay:.8s}
.dtu-bus .pt.p3{left:83.3%;animation-delay:1.6s}
@keyframes dtupt{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
.dtu-bus-lbl{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:1;
  font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#5b7290}
@media(max-width:900px){.dtu-bus-lbl{display:none}}

.dportal{position:relative;border-radius:18px;padding:28px 24px 24px;color:#e8eef6;
  background:linear-gradient(180deg,rgba(17,34,56,.78),rgba(8,18,32,.9));
  border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 50px rgba(0,0,0,.5);
  display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.dportal:hover{transform:translateY(-5px);border-color:rgba(250,204,21,.45);
  box-shadow:0 30px 70px rgba(0,0,0,.6),0 0 0 1px rgba(250,204,21,.2)}
.dportal .crest{width:62px;height:62px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  margin-bottom:16px;border:1px solid rgba(255,255,255,.14)}
.dportal .crest svg{width:34px;height:34px}
.dportal.p-grid .crest{background:rgba(220,38,38,.14)}
.dportal.p-watch .crest{background:rgba(16,163,74,.14)}
.dportal.p-twin .crest{background:rgba(14,165,233,.14)}
/* герб-картинка замість плоскої іконки: без рамки/фону, крупніше */
.dportal .crest.crest-img{width:64px!important;height:64px!important;border:none!important;
  background:none!important;border-radius:0;margin-bottom:14px;overflow:visible;
  display:block!important;flex:none}
.dportal .crest.crest-img img{width:64px!important;height:64px!important;max-width:64px;
  object-fit:contain;display:block;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.5));transition:transform .2s}
.dportal:hover .crest.crest-img img{transform:scale(1.08)}
.dportal .pname{font-size:22px;font-weight:900;letter-spacing:1px;color:#fff;margin:0}
.dportal .puk{font-size:13.5px;color:#9fb4cd;margin:4px 0 12px;line-height:1.4}
.dportal .pclass{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
  padding:4px 10px;border-radius:6px;margin-bottom:12px;width:fit-content}
.dportal.p-grid .pclass{background:rgba(220,38,38,.16);color:#fca5a5;border:1px solid rgba(220,38,38,.35)}
.dportal.p-watch .pclass{background:rgba(16,163,74,.16);color:#86efac;border:1px solid rgba(16,163,74,.35)}
.dportal.p-twin .pclass{background:rgba(14,165,233,.16);color:#7dd3fc;border:1px solid rgba(14,165,233,.35)}
.dportal .psol{display:inline-block;font-size:11px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;
  color:#cfe0f3;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);
  padding:3px 9px;border-radius:6px;margin-bottom:8px;width:fit-content}
.dportal .poff{font-size:12.5px;color:#cdd9e8;font-weight:700;line-height:1.4;margin:6px 0 10px}
.dportal .ptech{font-size:11px;color:#7e93ab;letter-spacing:.5px;margin:-2px 0 8px}
.dportal .pwhat{font-size:13.5px;color:#b9c8dc;line-height:1.55;flex:1;margin:0 0 18px}
.dportal .penter{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  padding:11px 20px;border-radius:10px;font-weight:700;font-size:14px;color:#0b1422;
  background:linear-gradient(135deg,#facc15,#eab308);box-shadow:0 8px 20px rgba(250,204,21,.25);
  transition:transform .15s}
.dportal .penter:hover{transform:translateX(3px)}

/* ═══════════ ВСТУПИТЕЛЬНЫЙ ЭКРАН ПРОДУКТА (тёмный оверлей) ═══════════ */
.penter-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 120% at 50% 25%,#0b1b2e 0%,#06101c 60%,#03070d 100%);
  transition:opacity .55s ease,transform .55s ease;padding:20px}
.penter-gate.open{opacity:0;transform:scale(1.04);pointer-events:none}
.penter-card{max-width:600px;width:100%;text-align:center;color:#e8eef6;
  border:1px solid rgba(250,204,21,.26);border-radius:18px;padding:46px 38px;
  background:linear-gradient(180deg,rgba(17,34,56,.72),rgba(8,18,32,.84));
  box-shadow:0 30px 80px rgba(0,0,0,.6)}
.penter-crest{width:96px;height:96px;border-radius:24px;display:flex;align-items:center;justify-content:center;
  margin:0 auto 18px;border:1px solid rgba(255,255,255,.16)}
.penter-crest svg{width:54px;height:54px}
.penter-class{display:inline-block;letter-spacing:2px;font-weight:800;font-size:11px;
  padding:5px 14px;border-radius:6px;margin-bottom:14px}
.penter-name{margin:4px 0 4px;font-size:34px;font-weight:900;letter-spacing:3px;color:#fff}
.penter-uk{font-size:15px;color:#9fb4cd;margin-bottom:6px}
.penter-sub{font-size:13.5px;color:#b9c8dc;line-height:1.6;max-width:460px;margin:14px auto 26px}
.penter-btn{cursor:pointer;border:none;border-radius:12px;padding:15px 30px;font-weight:800;font-size:15px;
  color:#0b1422;background:linear-gradient(135deg,#facc15,#eab308);
  box-shadow:0 10px 26px rgba(250,204,21,.3);transition:transform .15s}
.penter-btn:hover{transform:translateY(-2px)}
.penter-foot{margin-top:22px;font-size:10.5px;color:#5e7390;letter-spacing:1px}
/* акцентные цвета продукта на оверлее */
.penter-grid .penter-crest{background:rgba(220,38,38,.16)}
.penter-grid .penter-class{background:rgba(220,38,38,.2);color:#fca5a5}
.penter-mtwin .penter-crest{background:rgba(14,165,233,.16)}
.penter-mtwin .penter-class{background:rgba(14,165,233,.2);color:#7dd3fc}
.penter-mwatch .penter-crest{background:rgba(22,163,74,.16)}
.penter-mwatch .penter-class{background:rgba(22,163,74,.2);color:#86efac}
.penter-agent .penter-crest{background:rgba(250,204,21,.16)}
.penter-agent .penter-class{background:rgba(250,204,21,.2);color:#fde68a}
.penter-watch .penter-crest{background:rgba(16,163,74,.16)}
.penter-watch .penter-class{background:rgba(16,163,74,.2);color:#86efac}
.penter-twin .penter-crest{background:rgba(14,165,233,.16)}
.penter-twin .penter-class{background:rgba(14,165,233,.2);color:#7dd3fc}

/* ═══════════════ СКРОЛ-ІСТОРІЯ ПОРТАЛУ (3 тёмні екрани) ═══════════════ */
/* спільна тёмна основа під преміум-секції маніфесту */
.hero-sec{position:relative;color:#e8eef6;overflow:hidden;
  background:radial-gradient(140% 120% at 50% -10%,#0b1b2e 0%,#06101c 60%,#03070d 100%)}
.hero-sec + .hero-sec{border-top:1px solid rgba(250,204,21,.12)}
/* тонка золота лінія-розділювач знизу кожного екрану */
.hero-sec::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(250,204,21,.32),transparent)}
/* фонова сітка-«шина» */
.hero-sec::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.7;
  background:
    radial-gradient(60% 50% at 50% 35%,rgba(125,211,252,.05),transparent 70%),
    repeating-linear-gradient(115deg,rgba(125,211,252,.03) 0 1px,transparent 1px 48px)}
.hero-sec .wrap{position:relative;z-index:2}
.hero-head{text-align:center;margin-bottom:24px}
.hero-kicker{font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#7dd3fc;margin-bottom:8px}
.hero-title{font-family:'e-UkraineHead','e-Ukraine',sans-serif;font-size:38px;font-weight:800;
  line-height:1.1;margin:0;color:#fff;letter-spacing:.5px}
@media(max-width:760px){.hero-title{font-size:26px}}

/* ── СЕКЦІЯ 1 · МАНІФЕСТ ── */
.manifest{padding:70px 0 56px;text-align:center}
.manifest-crest{width:120px;height:auto;display:block;margin:0 auto 22px;
  filter:drop-shadow(0 10px 30px rgba(250,204,21,.4))}
.manifest-kicker{font-size:12px;font-weight:800;letter-spacing:3px;text-transform:uppercase;
  color:#fde68a;margin-bottom:16px}
.manifest-strike{font-family:'e-UkraineHead','e-Ukraine',sans-serif;font-size:64px;font-weight:900;
  letter-spacing:3px;line-height:1.02;margin:0;color:#fff;
  text-shadow:0 4px 40px rgba(125,211,252,.25)}
@media(max-width:900px){.manifest-strike{font-size:40px;letter-spacing:1px}}
@media(max-width:560px){.manifest-strike{font-size:30px}}
.manifest-sub{max-width:760px;margin:22px auto 0;font-size:17px;line-height:1.65;color:#b9c8dc}
.manifest-sub b{color:#e8eef6}
.manifest-counts{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin:40px auto 0;max-width:900px}
.manifest-counts .mc{flex:1;min-width:170px;padding:22px 18px;border-radius:16px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(6px)}
.manifest-counts .mc-v{font-size:42px;font-weight:900;color:#fff;line-height:1;letter-spacing:1px}
.manifest-counts .mc.crit .mc-v{color:#fca5a5}
.manifest-counts .mc.gold{border-color:rgba(250,204,21,.4);background:rgba(250,204,21,.07)}
.manifest-counts .mc.gold .mc-v{color:#fde68a}
.manifest-counts .mc-l{font-size:12px;color:#9fb4cd;margin-top:9px;text-transform:uppercase;letter-spacing:.6px}
.manifest-counts .live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#34d399;
  margin-right:8px;box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:pulse 1.8s infinite;vertical-align:middle}

/* ── БІГУЧА СТРІЧКА (marquee) ── */
.marquee{margin-top:38px;overflow:hidden;border-top:1px solid rgba(255,255,255,.1);
  border-bottom:1px solid rgba(255,255,255,.1);padding:12px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:inline-flex;align-items:center;white-space:nowrap;
  animation:marquee 38s linear infinite;will-change:transform}
.marquee-track span{font-size:13.5px;color:#9fb4cd;letter-spacing:.4px;padding:0 4px}
.marquee-track i{color:#7dd3fc;margin:0 18px;font-style:normal}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ── СЕКЦІЯ 2 · ЖИВА КАРТА ── */
.heromap2-sec{padding:56px 0}
.heromap2-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:22px;align-items:stretch}
@media(max-width:960px){.heromap2-layout{grid-template-columns:1fr}}
.heromap2-wrap{position:relative;border-radius:18px;overflow:hidden;
  border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 60px rgba(0,0,0,.5);background:#0b1220}
#heromap2{height:480px;width:100%;z-index:1;background:#0b1220}
@media(max-width:760px){#heromap2{height:380px}}
.heromap2-cap{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:16px 20px;
  font-size:13px;letter-spacing:1px;text-transform:uppercase;color:#cbd5e1;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(8,13,24,.85))}
.shields{display:flex;flex-direction:column;gap:14px}
.shield{flex:1;padding:18px 20px;border-radius:16px;position:relative;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12)}
.shield::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px}
.shield .sh-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.shield .sh-ic svg{width:22px;height:22px}
.shield .sh-t{font-size:16px;font-weight:800;color:#fff;margin-bottom:5px}
.shield .sh-d{font-size:13px;color:#b9c8dc;line-height:1.5}
.shield.s-phys::before{background:#ef4444}.shield.s-phys .sh-ic{background:rgba(239,68,68,.16);color:#fca5a5}
.shield.s-phys .sh-t{color:#fecaca}
.shield.s-fin::before{background:#22c55e}.shield.s-fin .sh-ic{background:rgba(34,197,94,.16);color:#86efac}
.shield.s-fin .sh-t{color:#bbf7d0}
.shield.s-econ::before{background:#38bdf8}.shield.s-econ .sh-ic{background:rgba(56,189,248,.16);color:#7dd3fc}
.shield.s-econ .sh-t{color:#bae6fd}

/* ── СЕКЦІЯ 3 · AI-ОРКЕСТРАЦІЯ ── */
.orch-sec{padding:56px 0 64px}
.orch-stage{max-width:880px;margin:0 auto;text-align:center}
.orch-svg{width:100%;height:auto;max-height:460px}
.orch-links line{stroke:rgba(125,211,252,.35);stroke-dasharray:6 10;animation:orchFlow 1.4s linear infinite}
@keyframes orchFlow{to{stroke-dashoffset:-32}}
.orch-core{animation:orchPulse 2.6s ease-in-out infinite;transform-origin:400px 230px}
@keyframes orchPulse{0%,100%{opacity:.92}50%{opacity:1}}
.orch-core-t{fill:#3a2c05;font-family:'e-UkraineHead',sans-serif;font-weight:800;font-size:15px;letter-spacing:1px}
.orch-node circle{stroke-width:2.5;fill:rgba(8,18,32,.9)}
.orch-node text{fill:#fff;font-family:'e-UkraineHead',sans-serif;font-weight:800;font-size:17px}
.orch-node text.sm{font-size:10px;font-weight:700;fill:#9fb4cd;letter-spacing:.5px}
.orch-node.n-grid circle{stroke:#ef4444;filter:drop-shadow(0 0 8px rgba(239,68,68,.5))}
.orch-node.n-watch circle{stroke:#22c55e;filter:drop-shadow(0 0 8px rgba(34,197,94,.5))}
.orch-node.n-twin circle{stroke:#38bdf8;filter:drop-shadow(0 0 8px rgba(56,189,248,.5))}
.orch-node.n-bus circle{stroke:#facc15;filter:drop-shadow(0 0 8px rgba(250,204,21,.5))}
.orch-cap{max-width:620px;margin:18px auto 0;font-size:15px;line-height:1.6;color:#b9c8dc}

/* Продуктова рамка пілоту: межі, зрілість, ціна */
.pilot-frame{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:14px;margin:24px auto 0;max-width:1080px;text-align:left}
.pf-card{background:rgba(255,255,255,.86);border:1px solid var(--border);border-radius:12px;padding:16px 17px;box-shadow:var(--shadow)}
:root[data-theme="dark"] .pf-card{background:rgba(15,26,43,.86)}
.pf-card h3{font-size:15px;line-height:1.35;margin:0 0 8px;color:var(--ink)}
.pf-card p{font-size:12.5px;line-height:1.55;color:var(--muted);margin:0}
.pf-kicker{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.pf-boundary{border-color:rgba(217,119,6,.34);background:linear-gradient(160deg,rgba(255,251,235,.92),rgba(255,255,255,.88))}
:root[data-theme="dark"] .pf-boundary{background:linear-gradient(160deg,rgba(69,48,13,.38),rgba(15,26,43,.86))}
.maturity-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:2px 0 10px}
.maturity-rail span{display:flex;align-items:center;justify-content:center;min-height:38px;border-radius:8px;padding:5px 6px;text-align:center;font-size:10.5px;font-weight:800;line-height:1.25;background:var(--nav-active-bg);color:var(--accent);border:1px solid var(--soft-blue-bd)}
@media(max-width:960px){.pilot-frame{grid-template-columns:1fr}.maturity-rail{grid-template-columns:repeat(2,1fr)}}

/* ═══════════ ТРИ РІВНІ ПРОПОЗИЦІЇ (offer) — преміум, золото ═══════════ */
.offer-sec{padding:54px 0 18px;background:
  radial-gradient(900px 380px at 50% -10%,rgba(250,204,21,.06),transparent 60%),#0b1422;
  border-top:1px solid rgba(120,150,190,.14)}
.offer-head{text-align:center;max-width:760px;margin:0 auto 30px}
.offer-kicker{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:#facc15;font-weight:700;margin-bottom:10px}
.offer-title{font-size:clamp(22px,3.4vw,32px);font-weight:800;color:#f1f6fc;line-height:1.18;margin:0 0 12px}
.offer-title b{color:#facc15}
.offer-sub{font-size:15px;line-height:1.6;color:#aebfd6;margin:0}
.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1080px;margin:0 auto;
  padding:0 18px}
@media(max-width:880px){.offer-grid{grid-template-columns:1fr}}
.olevel{position:relative;border-radius:16px;padding:24px 22px 22px;
  background:linear-gradient(165deg,rgba(20,32,52,.92),rgba(13,22,38,.96));
  border:1px solid rgba(120,150,190,.2);overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}
.olevel:hover{transform:translateY(-4px);border-color:rgba(120,150,190,.36);box-shadow:0 14px 40px rgba(0,0,0,.4)}
.olevel .ol-no{position:absolute;top:14px;right:18px;font-size:46px;font-weight:800;
  color:rgba(120,150,190,.1);line-height:1}
.ol-badge{display:inline-block;font-size:11px;letter-spacing:.06em;font-weight:700;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;margin-bottom:14px}
.ol-badge.must{background:rgba(56,189,248,.14);color:#7dd3fc;border:1px solid rgba(56,189,248,.3)}
.ol-badge.bonus{background:rgba(250,204,21,.13);color:#fde047;border:1px solid rgba(250,204,21,.32)}
.ol-badge.opt{background:rgba(148,163,184,.12);color:#cbd5e1;border:1px solid rgba(148,163,184,.28)}
.olevel h3{font-size:18px;font-weight:800;color:#f1f6fc;margin:0 0 8px}
.olevel p{font-size:13.5px;line-height:1.6;color:#aebfd6;margin:0 0 12px}
.ol-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.ol-list li{position:relative;padding-left:20px;font-size:13px;line-height:1.5;color:#c2d0e4}
.ol-list li::before{content:"";position:absolute;left:0;top:6px;width:8px;height:8px;border-radius:50%}
.olevel.must .ol-list li::before{background:#38bdf8;box-shadow:0 0 7px rgba(56,189,248,.7)}
.olevel.bonus .ol-list li::before{background:#facc15;box-shadow:0 0 7px rgba(250,204,21,.7)}
.olevel.opt .ol-list li::before{background:#94a3b8}
.olevel.bonus{border-color:rgba(250,204,21,.34);
  background:linear-gradient(165deg,rgba(40,33,10,.6),rgba(13,22,38,.96))}
/* агентний контур-цикл як стрічка кроків */
.agent-loop{margin:30px auto 0;max-width:1080px;padding:0 18px}
.aloop-title{text-align:center;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  color:#fde047;font-weight:700;margin-bottom:16px}
.aloop-steps{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:0}
.aloop-step{flex:1 1 130px;min-width:120px;max-width:180px;text-align:center;padding:14px 10px;
  border-radius:12px;background:rgba(20,32,52,.6);border:1px solid rgba(120,150,190,.16);margin:4px}
.aloop-step .as-n{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:50%;background:rgba(250,204,21,.16);color:#fde047;font-weight:800;font-size:13px;margin-bottom:8px}
.aloop-step .as-t{font-size:12.5px;line-height:1.45;color:#d4dff0;font-weight:600}
.aloop-step.human{border-color:rgba(250,204,21,.4);background:rgba(40,33,10,.5)}
.aloop-arrow{display:flex;align-items:center;color:rgba(250,204,21,.55);font-size:18px;padding:0 2px}
@media(max-width:880px){.aloop-arrow{display:none}}

/* ═══════════ РОЗДІЛ ДОКУМЕНТАЦІЇ (documentation.html) — плоско, все на виду ═══════════ */
.docs-hero{text-align:center;max-width:760px;margin:8px auto 28px}
.docs-kicker{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);font-weight:700;margin-bottom:10px}
.docs-title{font-size:clamp(24px,3.6vw,34px);font-weight:800;color:var(--ink);margin:0 0 12px}
.docs-lead{font-size:15px;line-height:1.65;color:var(--muted);margin:0}
.doc-group-title{font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;
  color:var(--accent);margin:30px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.doc-card{position:relative;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:20px 18px 18px;transition:transform .2s,box-shadow .2s,border-color .2s}
.doc-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(37,99,235,.16);border-color:var(--accent)}
.doc-tag{position:absolute;top:14px;right:14px;font-size:11px;font-weight:800;letter-spacing:.04em;
  padding:3px 9px;border-radius:999px;background:linear-gradient(110deg,var(--accent),var(--accent2));color:#fff}
.doc-card h3{font-size:16px;font-weight:800;color:var(--ink);margin:2px 40px 6px 0;line-height:1.3}
.doc-card p{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 16px}
.doc-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.doc-prev{cursor:pointer;font-size:13px;font-weight:700;padding:8px 13px;border-radius:9px;border:none;
  color:#fff;background:linear-gradient(110deg,var(--accent),var(--accent2));
  box-shadow:0 0 14px rgba(56,189,248,.4);transition:box-shadow .2s,transform .15s}
.doc-prev:hover{box-shadow:0 0 20px rgba(56,189,248,.7);transform:translateY(-1px)}
.doc-dl{font-size:13px;font-weight:700;padding:8px 13px;border-radius:9px;text-decoration:none;
  color:var(--accent);border:1px solid var(--accent);transition:background .2s,color .2s}
.doc-dl:hover{background:var(--accent);color:#fff}
.muted-dl{color:var(--muted);border:1px dashed var(--border);cursor:default}
/* модалка превʼю */
.doc-modal{position:fixed;inset:0;z-index:9999;background:rgba(8,15,28,.72);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:24px}
/* КРИТИЧНО: display:flex перебивав атрибут hidden → модал завжди стирчав порожнім.
   Явно ховаємо, коли стоїть hidden. */
.doc-modal[hidden]{display:none!important}
.doc-modal-box{position:relative;background:var(--surface);color:var(--ink);max-width:880px;width:100%;
  max-height:88vh;border-radius:16px;border:1px solid var(--border);box-shadow:0 24px 64px rgba(0,0,0,.5);overflow:hidden}
.doc-modal-x{position:absolute;top:10px;right:14px;z-index:2;background:var(--surface);border:1px solid var(--border);
  border-radius:50%;width:34px;height:34px;font-size:20px;cursor:pointer;color:var(--ink);line-height:1}
.doc-modal-x:hover{border-color:var(--accent);color:var(--accent)}
.doc-modal-body{overflow-y:auto;max-height:88vh;padding:40px 40px 32px;font-size:14px;line-height:1.6}
.doc-modal-body h1{font-size:22px;margin:0 0 14px}.doc-modal-body h2{font-size:18px;margin:22px 0 10px;color:var(--accent)}
.doc-modal-body h3{font-size:15px;margin:16px 0 8px}.doc-modal-body h4{font-size:14px;margin:12px 0 6px}
.doc-modal-body p{margin:6px 0}.doc-modal-body li{margin:4px 0 4px 20px}
.doc-modal-body blockquote{border-left:3px solid var(--accent);padding:6px 14px;margin:10px 0;
  background:var(--nav-active-bg);border-radius:0 8px 8px 0;font-size:13px}
.doc-modal-body table{border-collapse:collapse;width:100%;margin:12px 0;font-size:12.5px}
.doc-modal-body th,.doc-modal-body td{border:1px solid var(--border);padding:6px 9px;text-align:left}
.doc-modal-body th{background:var(--nav-active-bg);font-weight:700}
.doc-modal-body hr{border:none;border-top:1px solid var(--border);margin:16px 0}
.doc-modal-body code{background:var(--nav-active-bg);padding:1px 5px;border-radius:4px;font-size:12px}
/* картка-вхід «Документація» на головній/продуктах */
.doc-entry{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:12px;
  background:var(--surface);border:1px solid var(--border);text-decoration:none;transition:all .2s}
.doc-entry:hover{border-color:var(--accent);box-shadow:0 8px 22px rgba(37,99,235,.14);transform:translateY(-2px)}
.doc-entry .de-ic{flex-shrink:0;width:42px;height:42px;border-radius:10px;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff}
.doc-entry .de-t{font-weight:800;color:var(--ink);font-size:15px}
.doc-entry .de-d{font-size:12.5px;color:var(--muted)}

/* ═══════════ НАВЧАЛЬНИЙ ТУР (tour.js) — веде за руку, spotlight ═══════════ */
/* Оверлей БЕЗ власного фону й blur — інакше підсвічений елемент теж темніє/розмивається.
   Усе затемнення робить ТІЛЬКИ величезна тінь spotlight, а його вирізана зона лишається
   100% чіткою (жодного шару поверх неї). */
.tourx-overlay{position:fixed;inset:0;z-index:10000;display:none;background:transparent;pointer-events:none}
.tourx-overlay .tourx-bubble,.tourx-overlay .tourx-skip,.tourx-overlay .tourx-prev,.tourx-overlay .tourx-next{pointer-events:auto}
.tourx-spot{position:fixed;border-radius:12px;box-shadow:0 0 0 9999px rgba(8,14,26,.74),
  0 0 0 3px var(--accent),0 0 22px 4px rgba(56,189,248,.7);transition:all .3s ease;pointer-events:none}
.tourx-bubble{position:fixed;width:min(380px,92vw);background:var(--surface);color:var(--ink);
  border:1px solid var(--border);border-radius:14px;padding:18px 18px 16px;z-index:10001;
  box-shadow:0 20px 56px rgba(0,0,0,.5);transition:top .28s ease,left .28s ease}
/* стрілка-вказівник на елемент */
.tourx-arrow{position:absolute;width:14px;height:14px;background:var(--surface);
  border:1px solid var(--border);transform:rotate(45deg)}
.tourx-arrow.tx-arr-bottom{top:-8px;border-right:none;border-bottom:none}      /* виноска знизу → стрілка вгору */
.tourx-arrow.tx-arr-top{bottom:-8px;border-left:none;border-top:none}          /* виноска зверху → стрілка вниз */
.tourx-arrow.tx-arr-right{left:-8px;border-top:none;border-right:none}         /* виноска праворуч → стрілка вліво */
.tourx-arrow.tx-arr-left{right:-8px;border-bottom:none;border-left:none}       /* виноска ліворуч → стрілка вправо */
.tourx-head{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.tourx-ic{font-size:18px}
.tourx-title{flex:1;font-weight:800;font-size:16px;font-family:'e-UkraineHead','e-Ukraine',sans-serif}
.tourx-count{font-size:12px;color:var(--muted);white-space:nowrap}
.tourx-text{font-size:13.5px;line-height:1.6;color:var(--muted);margin-bottom:14px}
.tourx-bar{display:flex;gap:4px;margin-bottom:14px}
.tourx-seg{flex:1;height:3px;border-radius:2px;background:var(--border)}
.tourx-seg.on{background:var(--accent)}
.tourx-btns{display:flex;align-items:center;gap:8px}
.tourx-skip{background:transparent;border:none;color:var(--muted);font-size:13px;cursor:pointer;font-family:inherit}
.tourx-skip:hover{color:var(--ink)}
.tourx-prev{margin-left:auto;background:transparent;border:1px solid var(--border);color:var(--muted);
  border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;font-family:inherit}
.tourx-prev:hover{border-color:var(--accent);color:var(--accent)}
.tourx-next{background:linear-gradient(110deg,var(--accent),var(--accent2));color:#fff;border:none;
  border-radius:8px;padding:9px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;
  box-shadow:0 0 14px rgba(56,189,248,.45)}
.tourx-next:hover{box-shadow:0 0 20px rgba(56,189,248,.75)}
/* плаваюча кнопка «Тур» — завжди видима, плоско */
.tourx-fab{position:fixed;right:18px;bottom:18px;z-index:9998;
  background:linear-gradient(110deg,var(--accent),var(--accent2));color:#fff;border:none;
  border-radius:999px;padding:11px 18px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;
  box-shadow:0 6px 20px rgba(37,99,235,.5),0 0 16px rgba(56,189,248,.5);
  animation:btnPulse 2.6s ease-in-out infinite}
.tourx-fab:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(37,99,235,.7),0 0 24px rgba(56,189,248,.8)}

/* ═══════════ FAQ (faq.html + продукти) — акордеон по групах ═══════════ */
.faq-group{margin-bottom:26px}
.faq-group-t{font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;
  color:var(--accent);margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.faq-item{border:1px solid var(--border);border-radius:11px;margin-bottom:9px;overflow:hidden;
  background:var(--surface);transition:border-color .2s}
.faq-item.open{border-color:var(--accent)}
.faq-q{width:100%;text-align:left;cursor:pointer;background:none;border:none;font-family:inherit;
  display:flex;align-items:center;gap:12px;padding:15px 17px;font-size:14.5px;font-weight:700;
  color:var(--ink);justify-content:space-between}
.faq-q:hover{color:var(--accent)}
.faq-chev{transition:transform .25s;color:var(--accent);flex-shrink:0}
.faq-item.open .faq-chev{transform:rotate(180deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;
  font-size:13.5px;line-height:1.65;color:var(--muted);padding:0 17px}
.faq-item.open .faq-a{max-height:600px;padding:0 17px 16px}
.faq-secnav{display:flex;flex-wrap:wrap;gap:6px 16px;padding:14px 18px;margin-bottom:24px;
  background:var(--surface);border:1px solid var(--border);border-radius:11px;font-size:13.5px;font-weight:600}
.faq-secnav a{color:var(--accent)}
.faq-section-h{font-size:19px;font-weight:800;color:var(--ink);margin:34px 0 16px;
  padding:10px 0 0;border-top:2px solid var(--border);font-family:'e-UkraineHead','e-Ukraine',sans-serif}
.faq-section-h:first-of-type{border-top:none}
@media(max-width:700px){.entries2{grid-template-columns:1fr!important}}

/* ── CTA «Подивитись наскрізний сценарій» — премʼєрна мерехтлива кнопка ── */
.scenario-cta{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;border-radius:12px;
  background:linear-gradient(110deg,var(--accent),var(--accent2));color:#fff;font-weight:700;
  font-size:15px;text-decoration:none;letter-spacing:.01em;cursor:pointer;
  box-shadow:0 8px 24px rgba(37,99,235,.45),0 0 18px rgba(56,189,248,.4);
  animation:btnPulse 2.6s ease-in-out infinite;transition:transform .2s,box-shadow .2s}
.scenario-cta:hover{transform:translateY(-2px);
  box-shadow:0 12px 32px rgba(37,99,235,.6),0 0 26px rgba(56,189,248,.7)}
.scenario-cta .scenario-arrow{font-size:18px;transition:transform .2s}
.scenario-cta:hover .scenario-arrow{transform:translateX(4px)}

/* ── Індикатор версії застосунку (знизу ліворуч): зелений=актуальна / помаранчевий=оновлення ── */
.ver-badge{position:fixed;left:14px;bottom:14px;z-index:9990;display:inline-flex;align-items:center;gap:7px;
  padding:5px 10px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.02em;
  background:var(--surface,#fff);color:var(--muted,#64748b);
  border:1px solid var(--border,#e2e8f0);box-shadow:0 4px 14px rgba(0,0,0,.18);opacity:.85;
  font-family:'e-Ukraine',system-ui,sans-serif;user-select:none;transition:opacity .2s}
.ver-badge:hover{opacity:1}
.ver-badge .ver-dot{width:8px;height:8px;border-radius:50%;background:#16a34a;flex-shrink:0;
  box-shadow:0 0 6px currentColor}
.ver-badge.stale .ver-txt{color:#ea580c}

/* Триада: герби в кружках клікабельні */
.orch-svg a{cursor:pointer}
.orch-svg a .orch-node circle{transition:filter .2s}
.orch-svg a:hover .orch-node circle{filter:drop-shadow(0 0 14px rgba(255,255,255,.45))}
.orch-node image{pointer-events:none}

/* Триада: підписи під гербами — крупніші, нижче кільця (не наїжджають на герб) */
.orch-node text.ncode{font-family:'e-UkraineHead',sans-serif;font-weight:800;font-size:22px;fill:#fff}
.orch-node text.nname{font-family:'e-UkraineHead',sans-serif;font-weight:700;font-size:15px;fill:#cdd9ea;letter-spacing:.2px}
.orch-node.n-grid text.ncode{fill:#fca5a5}
.orch-node.n-watch text.ncode{fill:#86efac}
.orch-node.n-twin text.ncode{fill:#7dd3fc}
