/* ============================================================
   V104 Connections 360°-View — Brand/Talent/Cooperation
   Lockstep mit V103d3w Pastell-System.
   Pattern: section card, relationship graph, verzug-warning,
   sub-sections mit klickbaren Drill-Downs.
   ============================================================ */

/* === Section container === */
.conn360 {
  border: 1px solid #e4e8f0;
  border-radius: 12px;
  background: #ffffff;
  padding: 0;
  margin-top: 18px;
  overflow: hidden;
}

.conn360-header {
  padding: 14px 18px;
  border-bottom: 1px solid #e4e8f0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #fafafa;
}

.conn360-header h2 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  /* V105z (Audit #24): globales h2/h3{letter-spacing:0;color:!important} leakte → Label
     verlor Tracking + wurde schwarz. Zurückholen. */
  letter-spacing: 0.02em !important;
  text-transform: uppercase;
  color: #6b7280 !important;
}

.conn360-body {
  padding: 18px;
  display: grid;
  gap: 18px;
}

/* === Relationship graph === */
.conn360-graph {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 10px;
  align-items: center;
  padding: 14px 16px;
  background: linear-gradient(135deg, #f0f4fa 0%, #f8f9fc 100%);
  border-radius: 10px;
  border: 1px solid #e4e8f0;
}

.conn360-node {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid #e4e8f0;
  border-radius: 8px;
  min-height: 64px;
  justify-content: center;
}

.conn360-node-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #6b7280;
}

.conn360-node-name {
  font-size: 14px;
  font-weight: 600;
  color: #111827;
  line-height: 1.25;
  word-break: break-word;
}

.conn360-node-sub {
  font-size: 11px;
  color: #6b7280;
  margin-top: 2px;
}

.conn360-node-brand { border-left: 3px solid #BFD9F2; }
.conn360-node-talent { border-left: 3px solid #D0C5EB; }
.conn360-node-coop { border-left: 3px solid #BFE0BC; }

.conn360-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: #9ca3af;
  font-weight: 300;
}

/* === Verzug-warning bar === */
.conn360-warn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-left: 4px solid #b91c1c;
  border-radius: 8px;
  font-size: 13px;
  color: #7C2828;
  font-weight: 500;
}

.conn360-warn-icon {
  font-size: 16px;
  flex-shrink: 0;
}

.conn360-warn strong {
  color: #b91c1c;
  font-weight: 700;
}

/* === Sub-sections === */
.conn360-section {
  display: grid;
  gap: 8px;
}

.conn360-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.conn360-section h3 {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  /* V105z (Audit #25): wie #24 — Tracking + grauer Label-Ton gegen globales h3-!important. */
  letter-spacing: 0.04em !important;
  text-transform: uppercase;
  color: #6b7280 !important;
}

.conn360-section-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: #f3f4f6;
  color: #374151;
}

.conn360-section-badge.is-warn {
  background: #fef2f2;
  color: #b91c1c;
}

/* === Item cards inside sections === */
.conn360-card {
  background: #ffffff;
  border: 1px solid #e4e8f0;
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 13px;
}

.conn360-card-link {
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.conn360-card-link:hover {
  border-color: #9ca3af;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.conn360-card-row {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: space-between;
  flex-wrap: wrap;
}

.conn360-card-primary {
  font-weight: 600;
  color: #111827;
  font-size: 13px;
}

.conn360-card-sub {
  color: #6b7280;
  font-size: 12px;
}

.conn360-card-amount {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #111827;
}

.conn360-empty {
  padding: 14px;
  text-align: center;
  font-size: 12px;
  color: #9ca3af;
  background: #fafafa;
  border-radius: 8px;
  border: 1px dashed #e5e7eb;
}

/* === Status-pills (Pastell, lockstep mit V103d3w) === */
.conn360-pill {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}

.conn360-pill-mint { background: #BFE0BC; color: #1F5C2E; }
.conn360-pill-sky { background: #BFD9F2; color: #1E4A7C; }
.conn360-pill-apricot { background: #FBD49B; color: #7A4A0E; }
.conn360-pill-blush { background: #F4B8B8; color: #7C2828; }
.conn360-pill-peach { background: #F8BFAB; color: #7E3517; }
.conn360-pill-lavender { background: #D0C5EB; color: #46357A; }
.conn360-pill-stone { background: #D6D2C8; color: #4F4B43; }
.conn360-pill-teal { background: #A8CFC8; color: #2C5F58; }

/* === Invoice mini-table === */
.conn360-invoice-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.conn360-invoice-table th {
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b7280;
  padding: 6px 8px;
  border-bottom: 1px solid #f0f0f0;
}

.conn360-invoice-table th.is-num,
.conn360-invoice-table td.is-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.conn360-invoice-table th.is-center,
.conn360-invoice-table td.is-center {
  text-align: center;
}

.conn360-invoice-table td {
  padding: 8px;
  border-bottom: 1px solid #f5f5f5;
  color: #111827;
}

.conn360-invoice-table tr:last-child td {
  border-bottom: none;
}

.conn360-invoice-table tr.is-overdue {
  background: #fef9f9;
}

.conn360-invoice-table tr.is-overdue td:first-child {
  border-left: 3px solid #b91c1c;
}

/* === KPI strip === */
.conn360-kpi-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
}

.conn360-kpi {
  background: #fafafa;
  border: 1px solid #e4e8f0;
  border-radius: 8px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.conn360-kpi-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #6b7280;
}

.conn360-kpi-value {
  font-size: 18px;
  font-weight: 700;
  color: #111827;
  font-variant-numeric: tabular-nums;
}

.conn360-kpi.is-warn {
  background: #fef2f2;
  border-color: #fecaca;
}

.conn360-kpi.is-warn .conn360-kpi-value {
  color: #b91c1c;
}

/* === Responsive === */
@media (max-width: 720px) {
  .conn360-graph {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .conn360-arrow {
    transform: rotate(90deg);
  }
}
