.verdict-output { overflow: hidden; font-size: 13px; }
.verdict-output.card {
  margin: 14px 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.v-status {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: var(--tint-strong);
  color: var(--ink-soft);
}
.v-status::before {
  width: 9px;
  height: 9px;
  flex: none;
  border-radius: 50%;
  background: currentColor;
  content: "";
}
.risk-mark { font-size: 11px; font-weight: 800; letter-spacing: .09em; }
.v-status-copy { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 8px; }
.v-status-caption { font-size: 11.5px; font-weight: 650; letter-spacing: 0; }
.v-blocked .v-status { background: var(--status-danger-bg); color: var(--status-danger-ink); }
.v-permission .v-status { background: var(--status-warn-bg); color: var(--status-warn-ink); }
.v-caution .v-status { background: var(--status-check-bg); color: var(--status-check-ink); }

.v-body { padding: 13px 16px 16px; }
.v-head { font-size: 15.5px; font-weight: 760; line-height: 1.3; }
.v-text { margin-top: 3px; color: var(--ink-soft); }

/* Строка кодов найденных зон: ответ «что здесь» виден сразу, до официальных
   действий и до подробного списка, который остаётся ниже. */
.v-zone-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.v-zone-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 3px 9px 3px 4px;
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  background: var(--tint);
  color: var(--ink-soft);
  font-size: 11.5px;
  font-weight: 650;
}
.v-zone-chip .layer-symbol { min-width: 26px; min-height: 17px; padding-inline: 3px; font-size: 8px; line-height: 13px; }
.v-zone-chip-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-zone-chip-count {
  flex: none;
  padding: 0 5px;
  border-radius: var(--radius-pill);
  background: var(--tint-strong);
  font-size: 10.5px;
  font-weight: 800;
}

.v-point {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 10px;
  margin-top: 11px;
  padding: 7px 8px 7px 11px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--tint);
}
.v-coordinates { color: var(--ink-soft); font: 12.5px ui-monospace, SFMono-Regular, Menlo, monospace; }
.share-point {
  min-height: 30px;
  padding: 4px 10px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: var(--surface);
  color: var(--ink-soft);
  cursor: pointer;
  font-size: 12px;
  font-weight: 650;
}
.share-point:hover { border-color: var(--brand); color: var(--brand-hover); }

.v-zones { margin-top: 11px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.v-zone { padding: 10px 12px; }
.v-zone + .v-zone { border-top: 1px solid var(--line); }
.v-zone-title { display: flex; align-items: flex-start; gap: 9px; }
.v-zone-title .layer-symbol { margin-top: 1px; }
.v-zone-name { min-width: 0; font-size: 13px; line-height: 1.35; }
.v-zone-kind { color: var(--muted); font-size: 11.5px; }
.v-alt { margin-top: 5px; color: var(--muted); font-size: 12px; }
.v-validity { margin-top: 4px; color: var(--warn); font-size: 12px; font-weight: 650; }

.v-coverage { margin-top: 12px; border-top: 1px solid var(--line); }
.v-coverage-summary {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 1px;
  color: var(--ink-soft);
  cursor: pointer;
  font-size: 12px;
  font-weight: 720;
  list-style: none;
}
.v-coverage-summary::-webkit-details-marker { display: none; }
.v-coverage-summary::after {
  width: 7px;
  height: 7px;
  flex: none;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  content: "";
  transform: rotate(45deg);
}
.v-coverage[open] > .v-coverage-summary::after { transform: rotate(225deg); }
.v-coverage-badge {
  margin-left: auto;
  flex: none;
  padding: 2px 7px;
  white-space: nowrap;
  border-radius: var(--radius-pill);
  background: var(--status-check-bg);
  color: var(--status-check-ink);
  font-size: 10px;
  font-weight: 750;
}
/* Бейдж отражает фактическое состояние источников. Отказ NOTAM или наследия не
   должен выглядеть так же, как штатная неполнота покрытия. */
.v-coverage-base > .v-coverage-summary .v-coverage-badge {
  background: var(--status-ok-bg);
  color: var(--status-ok-ink);
}
.v-coverage-loading > .v-coverage-summary .v-coverage-badge {
  background: var(--tint-strong);
  color: var(--muted);
}
.v-coverage-degraded > .v-coverage-summary .v-coverage-badge {
  background: var(--status-danger-bg);
  color: var(--status-danger-ink);
}
.v-coverage-degraded { border-top-color: var(--status-danger-ink); }
.v-coverage-rows { display: grid; gap: 7px; padding: 3px 0 2px; }
.cov-row { display: flex; gap: 8px; color: var(--ink-soft); font-size: 12px; line-height: 1.45; }
.cov-marker { width: 10px; height: 10px; flex: none; margin-top: 4px; border-radius: 50%; }
.cov-ok .cov-marker { background: var(--marker-ok); }
.cov-part .cov-marker { border: 2px solid var(--marker-part); background: linear-gradient(90deg, var(--marker-part) 50%, transparent 50%); }
.cov-miss .cov-marker { border: 2px solid var(--marker-miss); }

.v-actions { display: grid; gap: 8px; margin-top: 13px; }
/* Второстепенное действие живёт в отдельном контейнере ради переупорядочивания
   на мобиле. На широком экране пара кнопок должна выглядеть как единый блок. */
.v-actions-secondary { margin-top: 8px; }
.official-check {
  display: block;
  min-height: 41px;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  background: var(--accent-bg);
  color: var(--accent-ink);
  font-size: 13px;
  font-weight: 680;
  text-align: center;
  text-decoration: none;
}
.official-check:hover { background: var(--accent-bg-hover); color: var(--accent-ink); }
.official-check-secondary {
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--ink-soft);
}
.official-check-secondary:hover { border-color: var(--brand); background: var(--tint); color: var(--brand-hover); }

.operation-result { margin-top: 12px; font-size: 12.5px; }
.operation-result:empty { display: none; }
.operation-heading {
  padding: 9px 12px;
  border-radius: var(--radius-sm);
  background: var(--tint);
  color: var(--ink-soft);
  font-weight: 720;
}
.operation-required > .operation-heading { background: var(--status-warn-bg); color: var(--status-warn-ink); }
.operation-item { padding: 11px 1px 10px; border-bottom: 1px solid var(--line); }
.operation-item:last-child { padding-bottom: 4px; border-bottom: 0; }
.operation-badge {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--tint-strong);
  color: var(--ink-soft);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
}
.operation-item.operation-required .operation-badge { background: var(--status-warn-bg); color: var(--status-warn-ink); }
.operation-item.operation-check .operation-badge { background: var(--status-check-bg); color: var(--status-check-ink); }
.operation-item-title { margin-top: 6px; font-size: 13px; font-weight: 720; }
.operation-item-text { margin-top: 2px; color: var(--muted); line-height: 1.5; }
.operation-source { display: inline-block; margin-top: 5px; font-size: 11.5px; }
.operation-error { padding: 9px 12px; border-radius: var(--radius-sm); background: var(--status-danger-bg); color: var(--status-danger-ink); }

#mobile-result { display: none; }

#modal {
  position: fixed;
  z-index: 2000;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgb(6 18 30 / 64%);
  backdrop-filter: blur(3px);
}
#modal[hidden] { display: none; }
#modal-box {
  position: relative;
  width: 100%;
  max-width: 680px;
  max-height: 88vh;
  overflow-y: auto;
  padding: 24px 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-lg);
}
#modal-close,
#mobile-result-close,
#sidebar-close {
  width: 38px;
  height: 38px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--tint-strong);
  color: var(--ink);
  cursor: pointer;
}
#modal-close,
#mobile-result-close { display: grid; }
#modal-close:hover,
#mobile-result-close:hover,
#sidebar-close:hover { background: var(--line-strong); }
#modal-close { position: absolute; top: 13px; right: 13px; }
#modal-box h2 { margin-bottom: 5px; padding-right: 38px; font-size: 21px; }
#modal-box h3 { margin: 17px 0 6px; font-size: 15px; }
#modal-box p, #modal-box li { font-size: 14px; line-height: 1.58; }
#modal-box ul { padding-left: 21px; }
.tag { color: var(--muted); font-size: 13px; }
.dot { display: inline-block; width: 11px; height: 11px; margin-right: 2px; border-radius: 3px; vertical-align: -1px; }

.rules-highlights {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 16px 0 10px;
}
.rules-highlights > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--tint);
}
.rules-highlights b { color: var(--ink); font-size: 13px; }
.rules-highlights span { margin-top: 2px; color: var(--muted); font-size: 11px; }

.rule-section { border-top: 1px solid var(--line); }
.rule-section > summary {
  position: relative;
  padding: 13px 34px 13px 1px;
  color: var(--ink);
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  list-style: none;
}
.rule-section > summary::-webkit-details-marker { display: none; }
.rule-section > summary::after {
  position: absolute;
  top: 50%;
  right: 5px;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  content: "";
  transform: translateY(-70%) rotate(45deg);
}
.rule-section[open] > summary::after { transform: translateY(-30%) rotate(225deg); }
.rule-section > p { margin-bottom: 10px; }
.rule-section > ul { margin-bottom: 12px; }
.rule-section li + li { margin-top: 5px; }
