.cfo-lab {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid #c4b5fd;
  border-radius: 16px;
  background: linear-gradient(145deg, #faf5ff, #f0fdfa);
}
.cfo-header, .cfo-actions, .cfo-inline-form, .cfo-badges { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.cfo-header { justify-content: space-between; align-items: flex-start; }
.cfo-header h3 { margin: 0; color: #2e1065; font-size: 1.3rem; font-weight: 900; }
.cfo-header p { margin: 4px 0 0; color: #5b667a; font-size: .86rem; }
.cfo-actions a, .cfo-actions button, .cfo-inline-form button, .cfo-lazy-button {
  min-height: 38px; padding: 7px 11px; border: 1px solid #a78bfa; border-radius: 9px;
  background: #fff; color: #5b21b6; font-weight: 800; text-decoration: none; cursor: pointer;
}
.cfo-actions a:hover, .cfo-actions button:hover, .cfo-inline-form button:hover, .cfo-lazy-button:hover { background: #f5f3ff; }
.cfo-status { margin: 13px 0 0; color: #5b667a; font-size: .84rem; }
.cfo-status.is-error { padding: 10px; border-radius: 9px; background: #fef2f2; color: #991b1b; }
.cfo-fingerprint-title { margin: 14px 0 -4px; color: #312e81; font-size: 1rem; font-weight: 900; }
.cfo-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
.cfo-metric { min-width: 0; padding: 12px; border: 1px solid #ddd6fe; border-radius: 11px; background: rgba(255,255,255,.9); }
.cfo-metric span { display: block; color: #64748b; font-size: .72rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }
.cfo-metric strong { display: block; margin-top: 3px; overflow-wrap: anywhere; color: #1e1b4b; font-size: 1.25rem; line-height: 1.15; }
.cfo-metric small { display: block; margin-top: 5px; color: #64748b; line-height: 1.35; }
.cfo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 11px; }
.cfo-panel { min-width: 0; padding: 14px; border: 1px solid #dbe4ef; border-radius: 12px; background: #fff; }
.cfo-panel-wide { margin-top: 11px; }
.cfo-panel-wide > summary { color: #312e81; cursor: pointer; }
.cfo-panel h4 { margin: 0 0 9px; color: #1e1b4b; font-size: 1rem; font-weight: 900; }
.cfo-panel-note { margin: 7px 0 0; color: #64748b; font-size: .78rem; line-height: 1.45; }
.cfo-community, .cfo-layer, .cfo-reason, .cfo-bridge { padding: 9px 0; border-top: 1px solid #eef2f7; }
.cfo-community:first-child, .cfo-layer:first-child, .cfo-reason:first-child, .cfo-bridge:first-child { border-top: 0; }
.cfo-community strong, .cfo-layer strong, .cfo-reason strong, .cfo-bridge strong { color: #312e81; }
.cfo-community small, .cfo-layer small, .cfo-reason small, .cfo-bridge small { display: block; color: #64748b; }
.cfo-auto { display: inline-flex; margin-left: 6px; padding: 2px 6px; border-radius: 999px; background: #fef3c7; color: #92400e; font-size: .62rem; font-weight: 900; }
.cfo-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.cfo-pills span { padding: 4px 7px; border-radius: 999px; background: #eef2ff; color: #4338ca; font-size: .74rem; font-weight: 750; }
.cfo-quality { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.cfo-quality div { padding: 8px; border-radius: 8px; background: #f8fafc; }
.cfo-quality span { display: block; color: #64748b; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.cfo-quality strong { color: #0f172a; }
.cfo-disclosure { margin-top: 11px; border: 1px solid #dbe4ef; border-radius: 12px; background: #fff; }
.cfo-disclosure > summary { padding: 12px 14px; color: #312e81; font-weight: 900; cursor: pointer; }
.cfo-disclosure-body { padding: 0 14px 14px; }
.cfo-table-wrap { overflow-x: auto; }
.cfo-table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: .78rem; }
.cfo-table th, .cfo-table td { padding: 8px; border-bottom: 1px solid #e2e8f0; text-align: left; }
.cfo-table th { color: #475569; font-size: .68rem; text-transform: uppercase; }
.cfo-timeline-row { display: grid; grid-template-columns: 58px 1fr auto; gap: 8px; align-items: center; margin: 7px 0; }
.cfo-timeline-row i { display: block; width: var(--width); height: 8px; border-radius: 999px; background: linear-gradient(90deg,#7c3aed,#0d9488); }
.cfo-timeline-track { overflow: hidden; border-radius: 999px; background: #e2e8f0; }
.cfo-inline-form input { flex: 1 1 220px; min-height: 40px; padding: 8px 10px; border: 1px solid #a5b4fc; border-radius: 9px; }
.cfo-result { margin-top: 10px; }
.cfo-warning { margin-top: 9px; padding: 9px; border-left: 3px solid #d97706; background: #fffbeb; color: #92400e; font-size: .78rem; }
.cfo-loading { display: inline-flex; align-items: center; gap: 8px; color: #6d28d9; font-weight: 750; }

@media (max-width: 900px) {
  .cfo-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cfo-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .cfo-lab { padding: 12px; }
  .cfo-metrics { grid-template-columns: 1fr; }
  .cfo-header, .cfo-actions { align-items: stretch; }
  .cfo-actions { width: 100%; }
  .cfo-actions a, .cfo-actions button { flex: 1 1 auto; text-align: center; }
}
