/* A-Match source blocks: preserve their placement without adding flow arrows. */
.amatch-structure {
  color: #27282e;
  width: 100%;
  min-width: 0;
  padding: 22px 20px 18px 6px;
}
.amatch-stack {
  display: grid;
  gap: 26px;
  width: min(100%, 760px);
  margin: 0 auto;
}
.amatch-stack__row {
  min-width: 0;
}
.amatch-stack__row--upper,
.amatch-stack__row--middle {
  width: 78%;
  margin-inline: auto;
}
.amatch-stack__row--base {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
.amatch-stack__base-note {
  grid-column: 1 / -1;
  margin: -6px 0 0;
  color: #5b626c;
  font-size: 14px;
  line-height: 1.6;
  text-align: center;
}
.amatch-module {
  --amatch-face: #eae3d3;
  --amatch-top: #f4eee1;
  --amatch-side: #c9bfa8;
  --amatch-edge: #c5baa3;
  --amatch-text: #27282e;
  --amatch-detail: #4d4d4e;
  position: relative;
  isolation: isolate;
  min-width: 0;
  color: var(--amatch-text);
}
.amatch-module::before,
.amatch-module::after {
  position: absolute;
  content: "";
  pointer-events: none;
  z-index: -1;
}
.amatch-module::before {
  top: -14px;
  right: -14px;
  left: 0;
  height: 15px;
  background: linear-gradient(110deg, var(--amatch-top), var(--amatch-face));
  clip-path: polygon(14px 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
}
.amatch-module::after {
  top: -14px;
  right: -14px;
  bottom: 0;
  width: 15px;
  background: var(--amatch-side);
  clip-path: polygon(100% 0, 100% calc(100% - 14px), 0 100%, 0 14px);
}
.amatch-module__face {
  position: relative;
  height: 100%;
  min-width: 0;
  padding: 20px 24px;
  border: 1px solid var(--amatch-edge);
  border-radius: 0 0 4px 4px;
  background: linear-gradient(120deg, var(--amatch-top) -60%, var(--amatch-face) 65%);
  box-shadow: 0 14px 20px -17px #27282e70, inset 0 1px 0 #ffffff65;
}
.amatch-module--core {
  --amatch-face: #4353a4;
  --amatch-top: #6675bb;
  --amatch-side: #303e7b;
  --amatch-edge: #374589;
  --amatch-text: #ffffff;
  --amatch-detail: #f0f2fc;
}
.amatch-module--model {
  --amatch-face: #dce1ef;
  --amatch-top: #eef1fa;
  --amatch-side: #aab4d1;
  --amatch-edge: #b9c1d8;
}
.amatch-module--management {
  --amatch-face: #dce3d5;
  --amatch-top: #eff3e9;
  --amatch-side: #aebba2;
  --amatch-edge: #b7c3ac;
}
.amatch-module__position {
  margin: 0 0 7px;
  color: var(--amatch-detail);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}
.amatch-structure .amatch-module h3 {
  margin: 0 0 9px;
  color: var(--amatch-text);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.025em;
  word-break: normal;
  overflow-wrap: anywhere;
}
.amatch-module__alias {
  margin: 0 0 13px;
  color: var(--amatch-detail);
  font-size: 14px;
  line-height: 1.5;
  word-break: normal;
  overflow-wrap: anywhere;
}
.amatch-module__role {
  margin: 0;
  color: var(--amatch-detail);
  font-size: 15px;
  line-height: 1.65;
  word-break: keep-all;
  overflow-wrap: break-word;
}
@media (max-width: 720px) {
  .amatch-structure {
    padding: 18px 13px 12px 3px;
  }
  .amatch-stack {
    gap: 23px;
  }
  .amatch-stack__row--upper,
  .amatch-stack__row--middle {
    width: 90%;
  }
  .amatch-stack__row--base {
    gap: 15px;
  }
  .amatch-module::before {
    top: -9px;
    right: -9px;
    height: 10px;
    clip-path: polygon(9px 0, 100% 0, calc(100% - 9px) 100%, 0 100%);
  }
  .amatch-module::after {
    top: -9px;
    right: -9px;
    width: 10px;
    clip-path: polygon(100% 0, 100% calc(100% - 9px), 0 100%, 0 9px);
  }
  .amatch-module__face {
    padding: 15px 13px;
  }
  .amatch-structure .amatch-module h3 {
    font-size: 18px;
    line-height: 1.3;
  }
  .amatch-module__role {
    font-size: 14px;
  }
}
@media (max-width: 420px) {
  .amatch-stack__row--base .amatch-module__face {
    padding: 14px 10px;
  }
  .amatch-stack__row--base .amatch-module h3 {
    font-size: 15px;
    line-height: 1.35;
  }
  .amatch-module__alias {
    font-size: 14px;
  }
}
@media (max-width: 340px) {
  .amatch-stack__row--base {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .amatch-stack__row--base .amatch-module h3 {
    font-size: 18px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .amatch-structure,
  .amatch-structure * {
    animation: none;
    transition: none;
  }
}
