/* =========================================================
   Карта міжнародної технічної допомоги (МТД / ITA)
   v2.0.0 — почищено, без дублів селекторів
   ========================================================= */
.ita{
  --ita-navy:#0D1B2A;
  --ita-teal:#3F9093;
  --ita-teal-d:#2A6A6C;
  --ita-teal-l:#E8F2F2;
  --ita-ink:#1B2A38;
  --ita-muted:#64748B;
  --ita-line:#E3E9F0;
  --ita-card:#FFFFFF;
  --ita-bg:#F4F7FB;
  --ita-radius:14px;
  --ita-shadow:0 1px 2px rgba(13,27,42,.06), 0 8px 24px rgba(13,27,42,.06);
  --ita-map-h:640px;
  color:var(--ita-ink);
  font-size:15px;
  line-height:1.45;
  position:relative;
}
.ita *,.ita *::before,.ita *::after{box-sizing:border-box}
.ita button{font:inherit;color:inherit;cursor:pointer}

/* Палітра для завершених проєктів */
.ita.is-completed{
  --ita-teal:#bb5050;
  --ita-teal-d:#8E3B3B;
  --ita-teal-l:#F6EAEA;
}

/* ---------- Шапка ---------- */
.ita-head{
  display:flex;gap:24px;align-items:flex-end;justify-content:space-between;
  flex-wrap:wrap;margin-bottom:22px;
}
.ita-head__eyebrow{
  margin:0 0 6px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ita-teal-d);font-weight:600;
}
.ita-head__title{margin:0;font-size:clamp(24px,3.2vw,34px);line-height:1.15;font-weight:700;color:var(--ita-navy)}
.ita-head__sub{margin:8px 0 0;max-width:62ch;color:var(--ita-muted)}

.ita-modes{display:inline-flex;background:#fff;border:1px solid var(--ita-line);border-radius:999px;padding:4px;box-shadow:var(--ita-shadow)}
.ita-mode{
  border:0;background:transparent;padding:9px 18px;border-radius:999px;
  font-weight:600;font-size:14px;color:var(--ita-muted);transition:.18s;white-space:nowrap;
}
.ita-mode:hover{color:var(--ita-teal-d)}
.ita-mode.is-on{background:var(--ita-teal);color:#fff}

/* ---------- KPI ---------- */
.ita-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.ita-kpi__card{
  background:var(--ita-card);border:1px solid var(--ita-line);border-radius:var(--ita-radius);
  padding:16px 18px;box-shadow:var(--ita-shadow);
}
.ita-kpi__num{font-size:30px;font-weight:700;line-height:1.05;color:var(--ita-navy);font-variant-numeric:tabular-nums}
.ita-kpi__cap{margin-top:4px;font-size:13px;color:var(--ita-muted)}

/* ---------- Фільтри ---------- */
.ita-filters{
  background:var(--ita-card);border:1px solid var(--ita-line);border-radius:var(--ita-radius);
  padding:16px;box-shadow:var(--ita-shadow);margin-bottom:18px;
}
.ita-filters__row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.ita-filters__row--sec{
  grid-template-columns:minmax(220px,2fr) 1fr 1fr auto auto;
  margin-top:12px;align-items:end;
}
.ita-field[hidden]{display:none}
.ita-filters__row--sec.no-from{grid-template-columns:minmax(220px,2fr) 1fr auto auto}
.ita-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.ita-field__cap{font-size:12px;font-weight:600;color:var(--ita-muted)}
.ita-field input{
  width:100%;height:40px;padding:0 12px;border:1px solid var(--ita-line);border-radius:10px;
  background:#fff;font:inherit;font-size:14px;color:var(--ita-ink);
}
.ita-field input:focus-visible,.ita-ms__btn:focus-visible,.ita-btn:focus-visible{
  outline:2px solid var(--ita-teal);outline-offset:2px
}

.ita-btn{
  height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--ita-teal);
  background:var(--ita-teal);color:#fff;font-size:14px;font-weight:600;transition:.15s;
}
.ita-btn:hover{background:var(--ita-teal-d);border-color:var(--ita-teal-d)}
.ita-btn--ghost{background:#fff;color:var(--ita-teal-d);border-color:var(--ita-line)}
.ita-btn--ghost:hover{background:var(--ita-teal-l);border-color:var(--ita-teal);color:var(--ita-teal-d)}

/* ---------- Мультиселект ---------- */
.ita-ms{position:relative;min-width:0}
.ita-ms__cap{display:block;font-size:12px;font-weight:600;color:var(--ita-muted);margin-bottom:5px}
.ita-ms__btn{
  width:100%;height:40px;padding:0 34px 0 12px;border:1px solid var(--ita-line);border-radius:10px;
  background:#fff;text-align:left;font-size:14px;position:relative;overflow:hidden;
  white-space:nowrap;text-overflow:ellipsis;
}
.ita-ms__btn::after{
  content:"";position:absolute;right:13px;top:50%;width:8px;height:8px;margin-top:-6px;
  border-right:2px solid var(--ita-muted);border-bottom:2px solid var(--ita-muted);
  transform:rotate(45deg);transition:.18s;
}
.ita-ms.is-open .ita-ms__btn{border-color:var(--ita-teal)}
.ita-ms.is-open .ita-ms__btn::after{transform:rotate(-135deg);margin-top:-2px}
.ita-ms.has-val .ita-ms__btn{border-color:var(--ita-teal);background:var(--ita-teal-l);font-weight:600;color:var(--ita-teal-d)}
.ita-ms__panel{
  position:absolute;z-index:1200;top:calc(100% + 6px);left:0;right:0;min-width:290px;
  background:#fff;border:1px solid var(--ita-line);border-radius:12px;
  box-shadow:0 12px 32px rgba(13,27,42,.16);padding:10px;
}
.ita-ms__search{
  width:100%;height:34px;padding:0 10px;border:1px solid var(--ita-line);border-radius:8px;
  font:inherit;font-size:13px;margin-bottom:8px;
}
.ita-ms__acts{display:flex;gap:8px;margin-bottom:8px}
.ita-ms__acts button{
  border:0;background:none;padding:0;font-size:12px;font-weight:600;color:var(--ita-teal-d);
  text-decoration:underline;text-underline-offset:2px;
}
.ita-ms__list{max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.ita-ms__item{
  display:flex;gap:9px;align-items:flex-start;padding:6px 8px;border-radius:8px;
  font-size:13.5px;line-height:1.3;cursor:pointer;
}
.ita-ms__item:hover{background:var(--ita-teal-l)}
.ita-ms__item input{margin:2px 0 0;accent-color:var(--ita-teal);flex:0 0 auto}
.ita-ms__item span{flex:1 1 auto;min-width:0}
.ita-ms__item b{margin-left:auto;font-weight:600;color:var(--ita-muted);font-size:12px;font-variant-numeric:tabular-nums;padding-left:8px}
.ita-ms__hint{padding:8px;font-size:12px;color:var(--ita-muted);text-align:center}

/* ---------- Чипи ---------- */
.ita-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ita-chips:empty{display:none}
.ita-chip{
  display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;
  background:var(--ita-teal-l);color:var(--ita-teal-d);font-size:12.5px;font-weight:600;
  border:1px solid rgba(44,156,143,.3);
}
.ita-chip button{border:0;background:none;padding:0;line-height:1;font-size:15px;color:inherit;opacity:.7}
.ita-chip button:hover{opacity:1}

/* ---------- Сітка: карта + права колонка ---------- */
.ita-grid{
  display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr);
  gap:20px;margin-bottom:18px;align-items:stretch;
}
.ita-mapcard{
  position:relative;height:var(--ita-map-h);
  background:var(--ita-card);border:1px solid var(--ita-line);
  border-radius:var(--ita-radius);box-shadow:var(--ita-shadow);overflow:hidden;
}
.ita-map{width:100%;height:100%;background:var(--ita-bg);z-index:1}
.leaflet-container{font:inherit;background:var(--ita-bg)}

.ita-home-btn{
  width:30px;height:30px;background:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:var(--ita-navy);
}
.ita-home-btn:hover{background:#F1F5F9;color:var(--ita-teal-d)}

.ita .leaflet-control-attribution{
  background:rgba(255,255,255,.6);color:var(--ita-muted);
  font-size:10px;padding:2px 8px;border-radius:0 4px 0 0;
}
.ita .leaflet-control-attribution a{color:var(--ita-teal);text-decoration:none}
.ita .leaflet-control-attribution a:hover{text-decoration:underline}

/* Картка обраної громади (поверх карти) */
.ita-selected{
  position:absolute;right:14px;top:14px;z-index:500;max-width:270px;
  background:rgba(255,255,255,.97);border:1px solid var(--ita-line);border-radius:12px;
  padding:12px 14px;box-shadow:0 6px 20px rgba(13,27,42,.16);
}
.ita-selected__name{font-weight:700;color:var(--ita-navy);padding-right:18px}
.ita-selected__meta{font-size:12.5px;color:var(--ita-muted);margin-top:3px}
.ita-selected__n{margin-top:8px;font-size:13px;font-weight:600;color:var(--ita-teal-d)}
.ita-selected__x{position:absolute;right:8px;top:6px;border:0;background:none;font-size:18px;color:var(--ita-muted);line-height:1}

/* Підказка на карті */
.ita-tip{font-size:13px}
.ita-tip b{display:block;color:var(--ita-navy)}
.ita-tip i{font-style:normal;color:var(--ita-muted)}
.ita-tip u{display:block;margin-top:3px;text-decoration:none;font-weight:700;color:var(--ita-teal-d)}

/* ---------- Права колонка: висота = висота карти ---------- */
.ita-side{display:flex;flex-direction:column;gap:16px;min-width:0;height:var(--ita-map-h)}
.ita-side__charts{display:flex;flex-direction:column;gap:16px;flex:1 1 auto;min-height:0}

/* ---------- Легенда (єдине оголошення) ---------- */
.ita-legend{
  flex:0 0 auto;
  background:var(--ita-card);border:1px solid var(--ita-line);border-radius:var(--ita-radius);
  padding:12px 16px;box-shadow:var(--ita-shadow);
}
.ita-legend__cap{font-size:13px;font-weight:700;color:var(--ita-navy);margin-bottom:8px}
.ita-legend__scale{display:flex;height:12px;border-radius:4px;overflow:hidden;border:1px solid rgba(13,27,42,.12)}
.ita-legend__sw{flex:1 1 0;height:100%}
.ita-legend__labels{display:flex;margin-top:5px}
.ita-legend__lbl{flex:1 1 0;font-size:10.5px;color:var(--ita-muted);text-align:center;font-variant-numeric:tabular-nums}

/* ---------- Блоки з графіками ---------- */
.ita-block{
  background:var(--ita-card);border:1px solid var(--ita-line);border-radius:var(--ita-radius);
  padding:14px 16px;box-shadow:var(--ita-shadow);
  display:flex;flex-direction:column;min-height:0;flex:0 0 auto;
}
.ita-block--grow{flex:1 1 auto;min-height:0}
.ita-block__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex:0 0 auto}
.ita-block__title{margin:0;font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--ita-navy)}
.ita-block__toggle{display:inline-flex;border:1px solid var(--ita-line);border-radius:999px;overflow:hidden;flex:0 0 auto}
.ita-block__toggle button{border:0;background:#fff;padding:3px 9px;font-size:11.5px;font-weight:600;color:var(--ita-muted)}
.ita-block__toggle button.is-on{background:var(--ita-teal);color:#fff}

.ita-bars{display:flex;flex-direction:column;gap:3px;max-height:200px;overflow:auto}
.ita-block--grow .ita-bars{max-height:none;flex:1 1 auto;min-height:0}

.ita-bar{
  display:grid;grid-template-columns:minmax(110px,46%) 1fr auto;gap:8px;align-items:center;
  padding:3px 5px;border-radius:7px;border:0;background:none;text-align:left;width:100%;
}
.ita-bar:hover{background:var(--ita-teal-l)}
.ita-bar.is-on{background:var(--ita-teal-l);box-shadow:inset 0 0 0 1px var(--ita-teal)}
.ita-bar__lab{font-size:12px;color:var(--ita-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ita-bar__track{display:block;width:100%;height:14px;background:#F1F5F9;border-radius:4px;overflow:hidden}
.ita-bar__fill{display:block;height:100%;background:var(--ita-teal);border-radius:4px;transition:width .25s}
.ita-bar__val{font-size:12px;font-weight:700;color:var(--ita-navy);font-variant-numeric:tabular-nums;min-width:26px;text-align:right}
.ita-empty{font-size:13px;color:var(--ita-muted);padding:6px 2px}

/* ---------- Нижня сітка графіків ---------- */
.ita-bottom-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:18px}

/* ---------- Таблиця ---------- */
.ita-tablecard{
  background:var(--ita-card);border:1px solid var(--ita-line);border-radius:var(--ita-radius);
  box-shadow:var(--ita-shadow);overflow:hidden;
}
.ita-tablecard__head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:16px 18px 10px;flex-wrap:wrap}
.ita-tablecard__title{margin:0;font-size:17px;font-weight:700;color:var(--ita-navy)}
.ita-tablecard__count{margin:0;font-size:13px;color:var(--ita-muted)}
.ita-tablescroll{overflow-x:auto}
.ita-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:880px}
.ita-table th{
  text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--ita-muted);font-weight:700;padding:10px 14px;border-bottom:1px solid var(--ita-line);
  background:#FAFCFE;white-space:nowrap;
}
.ita-table th[data-sort]{cursor:pointer;user-select:none}
.ita-table th[data-sort]:hover{color:var(--ita-teal-d)}
.ita-table th .ita-arrow{opacity:.35;margin-left:4px}
.ita-table th.is-sorted .ita-arrow{opacity:1;color:var(--ita-teal)}
.ita-table td{padding:11px 14px;border-bottom:1px solid var(--ita-line);vertical-align:top}
.ita-table tr.ita-row:hover{background:#FAFCFE}

.ita-row__name{font-weight:600;color:var(--ita-navy);max-width:420px}
.ita-row__name-text{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;margin-bottom:2px;
}
.ita-row__name-text.is-expanded{-webkit-line-clamp:unset}
.ita-row__code{display:block;font-size:11.5px;font-weight:500;color:var(--ita-muted);margin-top:2px}

.ita-tags{display:flex;flex-wrap:wrap;gap:4px}
.ita-tag{
  display:inline-block;padding:2px 8px;border-radius:999px;background:#F1F5F9;
  font-size:11.5px;color:#44546A;white-space:nowrap;
}
.ita-tag--donor{background:var(--ita-teal-l);color:var(--ita-teal-d);font-weight:600}
.ita-tag-more,.ita-read-more{
  display:inline-block;padding:2px 8px;border-radius:999px;background:#fff;
  color:var(--ita-teal);font-size:11.5px;font-weight:600;white-space:nowrap;
  border:1px dashed var(--ita-teal);cursor:pointer;
}
.ita-tag-more:hover,.ita-read-more:hover{background:var(--ita-teal-l);color:var(--ita-teal-d)}
.ita-read-more{margin-top:4px}
.ita-read-more[hidden]{display:none}
.ita-tag-hidden{display:none}
.ita-tag-hidden.is-shown{display:inline}

.ita-hbtn{
  border:1px solid var(--ita-line);background:#fff;border-radius:999px;padding:3px 11px;
  font-size:12px;font-weight:600;color:var(--ita-teal-d);white-space:nowrap;
}
.ita-hbtn:hover{background:var(--ita-teal-l);border-color:var(--ita-teal)}

.ita-sub td{background:#FAFCFE;padding:12px 14px 16px}
.ita-sub h4{margin:0 0 4px;font-size:12px;color:var(--ita-teal-d);text-transform:uppercase;letter-spacing:.05em}
.ita-sub__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 18px}
.ita-sub ul{margin:0;padding-left:16px;font-size:12.5px;color:#44546A}
.ita-sub li{cursor:pointer}
.ita-sub li:hover{color:var(--ita-teal-d);text-decoration:underline}

.ita-pager{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:14px 18px}
.ita-pager:empty{display:none}
.ita-page{
  min-width:34px;height:34px;padding:0 10px;border:1px solid var(--ita-line);
  border-radius:9px;background:#fff;font-size:13.5px;font-weight:600;
  color:var(--ita-ink);transition:.15s;
}
.ita-page:hover:not(:disabled):not(.is-on){background:var(--ita-teal-l);border-color:var(--ita-teal);color:var(--ita-teal-d)}
.ita-page.is-on{background:var(--ita-teal);border-color:var(--ita-teal);color:#fff}
.ita-page:disabled{opacity:.4;cursor:default}
.ita-page--nav{font-size:18px;line-height:1;padding:0 8px}
.ita-page-gap{padding:0 2px;color:var(--ita-muted);font-size:13px}
.ita-note{margin:14px 2px 0;font-size:12px;color:var(--ita-muted)}

/* ---------- Завантаження ---------- */
.ita-loading{
  position:absolute;inset:0;background:rgba(244,247,251,.75);display:flex;
  align-items:center;justify-content:center;z-index:1500;
}
.ita-loading[hidden]{display:none}
.ita-spin{
  width:34px;height:34px;border:3px solid rgba(44,156,143,.25);border-top-color:var(--ita-teal);
  border-radius:50%;animation:ita-spin .8s linear infinite;
}
@keyframes ita-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .ita-spin{animation-duration:2s}
  .ita-bar__fill{transition:none}
}

/* ---------- Адаптив ---------- */
@media (max-width:1200px){
  .ita-filters__row{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:1100px){
  .ita-grid{grid-template-columns:1fr}
  .ita{--ita-map-h:520px}
  .ita-side{height:auto}
  .ita-side__charts{flex:0 0 auto}
  .ita-block--grow .ita-bars{max-height:320px}
}
@media (max-width:860px){
  .ita-kpi{grid-template-columns:repeat(2,1fr)}
  .ita-filters__row{grid-template-columns:repeat(2,1fr)}
  .ita-filters__row--sec,
  .ita-filters__row--sec.no-from{grid-template-columns:1fr 1fr}
  .ita-filters__row--sec .ita-btn{width:100%}
  .ita-filters__row--sec .ita-field--search{grid-column:1/-1}
  .ita-bottom-grid{grid-template-columns:1fr}
  .ita{--ita-map-h:440px}
  .ita-selected{position:static;max-width:none;border-radius:0;border:0;border-top:1px solid var(--ita-line);box-shadow:none}
}
@media (max-width:520px){
  .ita-filters__row{grid-template-columns:1fr}
  .ita-ms__panel{min-width:0}
  .ita-filters__row--sec,
  .ita-filters__row--sec.no-from{grid-template-columns:1fr}
}