/* WXSSC V68.7-F relation chain layer
   Show how nodes connect and operate.
*/

.op-rel-section{
  margin-top:16px;
  border:1px solid #dbe7f3;
  background:#fff;
  border-radius:24px;
  box-shadow:0 16px 42px rgba(15,23,42,.065);
  overflow:hidden;
}

.op-rel-head{
  padding:21px 24px 15px;
  border-bottom:1px solid rgba(148,163,184,.20);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}

.op-rel-head h2{
  margin:0;
  font-size:25px;
  line-height:1.1;
  letter-spacing:-.035em;
  font-weight:1000;
}

.op-rel-head p{
  margin:8px 0 0;
  color:#64748b;
  font-size:13px;
  line-height:1.55;
  font-weight:750;
}

.op-rel-pill{
  flex:0 0 auto;
  height:28px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border-radius:999px;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  color:#1d4ed8;
  font-size:12px;
  font-weight:950;
}

.op-rel-toolbar{
  display:flex;
  align-items:center;
  gap:8px;
  padding:14px 24px;
  border-bottom:1px solid rgba(148,163,184,.16);
  overflow-x:auto;
}

.op-rel-toolbar button{
  height:34px;
  border:1px solid #cfe0f4;
  background:#f8fbff;
  color:#334155;
  border-radius:999px;
  padding:0 13px;
  font-size:12.5px;
  font-weight:950;
  cursor:pointer;
  white-space:nowrap;
}

.op-rel-toolbar button.active{
  background:#2563eb;
  border-color:#2563eb;
  color:#fff;
  box-shadow:0 10px 20px rgba(37,99,235,.18);
}

.op-rel-summary{
  margin:14px 24px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  border-radius:15px;
  background:linear-gradient(90deg,#eff6ff,#f8fbff);
  border:1px solid #bfdbfe;
  color:#1e3a8a;
  font-size:13px;
  line-height:1.45;
  font-weight:850;
}

.op-rel-summary b{
  color:#0f172a;
}

.op-rel-board{
  position:relative;
  margin:14px 24px 24px;
  min-height:610px;
  border:1px solid #dbe7f3;
  border-radius:22px;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 48%,rgba(37,99,235,.07),transparent 390px),
    linear-gradient(90deg,rgba(37,99,235,.035) 1px,transparent 1px),
    linear-gradient(0deg,rgba(37,99,235,.028) 1px,transparent 1px),
    #f8fbff;
  background-size:auto,42px 42px,42px 42px,auto;
  padding:18px;
}

.op-rel-board:before{
  content:"";
  position:absolute;
  left:56px;
  right:56px;
  top:74px;
  height:7px;
  border-radius:999px;
  background:linear-gradient(90deg,#2563eb,#e11d48,#16a34a,#b7791f,#7c3aed,#0f172a);
  opacity:.16;
  z-index:0;
}

.op-rel-board:after{
  content:"";
  position:absolute;
  left:56px;
  top:74px;
  width:180px;
  height:7px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),transparent);
  z-index:1;
  animation:opRelRun 3.2s linear infinite;
}

@keyframes opRelRun{
  0%{transform:translateX(-220px);}
  100%{transform:translateX(calc(100vw + 260px));}
}

.op-rel-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.02fr 1.02fr 1.45fr 1.08fr 1.08fr 1.1fr;
  gap:10px;
  align-items:start;
}

.op-rel-col{
  position:relative;
  min-height:560px;
  border-radius:18px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(207,224,244,.82);
  box-shadow:0 10px 28px rgba(15,23,42,.045);
  padding:14px;
  backdrop-filter:blur(12px);
}

.op-rel-col:not(:last-child):after{
  content:"→";
  position:absolute;
  right:-16px;
  top:54px;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#fff;
  border:1px solid #bfdbfe;
  color:#2563eb;
  font-size:14px;
  font-weight:1000;
  z-index:4;
}

.op-rel-col h3{
  margin:0;
  font-size:15px;
  font-weight:1000;
}

.op-rel-col small{
  display:block;
  margin-top:6px;
  color:#64748b;
  font-size:11px;
  line-height:1.35;
  font-weight:750;
}

.op-rel-node-list{
  display:grid;
  gap:8px;
  margin-top:14px;
}

.op-rel-node{
  position:relative;
  border:1px solid #dbe7f3;
  background:#fff;
  border-radius:15px;
  padding:11px 11px 11px 14px;
  min-height:66px;
  box-shadow:0 8px 20px rgba(15,23,42,.045);
}

.op-rel-node:before{
  content:"";
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:4px;
  border-radius:999px;
  background:#2563eb;
}

.op-rel-node.red:before{background:#e11d48;}
.op-rel-node.green:before{background:#16a34a;}
.op-rel-node.gold:before{background:#b7791f;}
.op-rel-node.purple:before{background:#7c3aed;}
.op-rel-node.dark:before{background:#0f172a;}

.op-rel-node b{
  display:block;
  font-size:12.8px;
  line-height:1.2;
  font-weight:1000;
}

.op-rel-node span{
  display:block;
  margin-top:5px;
  color:#64748b;
  font-size:11px;
  line-height:1.35;
  font-weight:750;
}

.op-rel-node em{
  display:inline-flex;
  align-items:center;
  margin-top:7px;
  height:20px;
  padding:0 7px;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  font-size:10px;
  font-style:normal;
  font-weight:900;
}

.op-rel-company-list{
  max-height:430px;
  overflow:auto;
  padding-right:4px;
}

.op-rel-company-list .op-rel-node{
  min-height:58px;
}

.op-rel-company-list .op-rel-node b{
  font-size:12.5px;
}

.op-rel-tags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:8px;
}

.op-rel-tags i{
  display:inline-flex;
  align-items:center;
  height:20px;
  padding:0 7px;
  border-radius:999px;
  background:#eef6ff;
  color:#1e40af;
  font-size:10px;
  font-style:normal;
  font-weight:850;
}

.op-rel-empty{
  border:1px dashed #cbd5e1;
  border-radius:14px;
  padding:12px;
  color:#64748b;
  font-size:12px;
  line-height:1.5;
  font-weight:750;
  background:#f8fbff;
}

.op-rel-note{
  margin:0 24px 22px;
  color:#64748b;
  font-size:12px;
  line-height:1.6;
  font-weight:750;
}

@media(max-width:1180px){
  .op-rel-grid{
    grid-template-columns:1fr 1fr;
  }

  .op-rel-col{
    min-height:auto;
  }

  .op-rel-col:not(:last-child):after{
    display:none;
  }
}

@media(max-width:760px){
  .op-rel-head{
    padding:18px;
    align-items:flex-start;
    flex-direction:column;
  }

  .op-rel-toolbar{
    padding:12px 18px;
  }

  .op-rel-summary,
  .op-rel-board,
  .op-rel-note{
    margin-left:18px;
    margin-right:18px;
  }

  .op-rel-grid{
    grid-template-columns:1fr;
  }
}
