/* VelosoNet Custom CSS for AutoGen Studio */
/* Version: 1.0 */

/* ========================================
   BRANDING - Cores VelosoNet
   ======================================== */
:root {
  --velosonet-primary: #00a651;      /* Verde VelosoNet */
  --velosonet-secondary: #004d25;    /* Verde escuro */
  --velosonet-accent: #00c853;       /* Verde claro */
  --velosonet-dark: #1a1a2e;         /* Fundo escuro */
  --velosonet-light: #f0f4f0;        /* Fundo claro */
}

/* Override accent color */
.dark {
  --color-bg-accent: var(--velosonet-primary) !important;
  --color-text-accent: var(--velosonet-accent) !important;
  --color-border-accent: var(--velosonet-primary) !important;
}

.light {
  --color-bg-accent: var(--velosonet-primary) !important;
  --color-text-accent: var(--velosonet-secondary) !important;
  --color-border-accent: var(--velosonet-primary) !important;
}

/* ========================================
   MENSAGENS DOS AGENTES
   ======================================== */

/* Container de mensagem com borda colorida por agente */
[class*="message"] {
  border-left: 4px solid var(--velosonet-primary);
  margin-bottom: 1rem;
  padding-left: 1rem;
}

/* Estilo para diferentes agentes baseado no conteúdo */
/* Coordinator */
[class*="message"]:has(h2:contains("COORDINATOR")),
[class*="message"]:has(.coordinator) {
  border-left-color: #f59e0b !important; /* Amarelo/Dourado */
  background: linear-gradient(90deg, rgba(245, 158, 11, 0.05) 0%, transparent 100%);
}

/* Code Auditor */
[class*="message"]:has(h2:contains("CODE AUDITOR")) {
  border-left-color: #8b5cf6 !important; /* Roxo */
  background: linear-gradient(90deg, rgba(139, 92, 246, 0.05) 0%, transparent 100%);
}

/* Evidence Analyst */
[class*="message"]:has(h2:contains("EVIDENCE ANALYST")) {
  border-left-color: #06b6d4 !important; /* Ciano */
  background: linear-gradient(90deg, rgba(6, 182, 212, 0.05) 0%, transparent 100%);
}

/* Patch Engineer */
[class*="message"]:has(h2:contains("PATCH ENGINEER")) {
  border-left-color: #10b981 !important; /* Verde */
  background: linear-gradient(90deg, rgba(16, 185, 129, 0.05) 0%, transparent 100%);
}

/* Red Team Reviewer */
[class*="message"]:has(h2:contains("RED TEAM")) {
  border-left-color: #ef4444 !important; /* Vermelho */
  background: linear-gradient(90deg, rgba(239, 68, 68, 0.05) 0%, transparent 100%);
}

/* ========================================
   MARKDOWN MELHORADO
   ======================================== */

/* Headers mais visíveis */
.prose h2, .prose-sm h2 {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  border-bottom: 2px solid var(--velosonet-primary);
  padding-bottom: 0.5rem;
  margin-top: 1.5rem !important;
  margin-bottom: 1rem !important;
}

.prose h3, .prose-sm h3 {
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  color: var(--velosonet-primary);
  margin-top: 1.25rem !important;
}

/* Tabelas com estilo melhorado */
.prose table, .prose-sm table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
  font-size: 0.875rem;
}

.prose th, .prose-sm th {
  background: var(--velosonet-primary) !important;
  color: white !important;
  padding: 0.75rem !important;
  text-align: left;
  font-weight: 600;
}

.prose td, .prose-sm td {
  padding: 0.5rem 0.75rem !important;
  border-bottom: 1px solid var(--color-border-secondary);
}

.prose tr:hover, .prose-sm tr:hover {
  background: rgba(0, 166, 81, 0.05);
}

/* Blocos de código com syntax highlighting melhorado */
.prose pre, .prose-sm pre {
  background: #1e1e2e !important;
  border: 1px solid #313244;
  border-radius: 8px;
  padding: 1rem !important;
  overflow-x: auto;
  margin: 1rem 0;
}

.prose code, .prose-sm code {
  font-family: "JetBrains Mono", "Fira Code", monospace !important;
  font-size: 0.85rem !important;
}

/* Inline code */
.prose :not(pre) > code, .prose-sm :not(pre) > code {
  background: rgba(0, 166, 81, 0.1) !important;
  color: var(--velosonet-primary) !important;
  padding: 0.125rem 0.375rem;
  border-radius: 4px;
  font-size: 0.85em;
}

/* Diff highlighting */
pre code .line-added,
pre code [class*="inserted"] {
  background: rgba(16, 185, 129, 0.2) !important;
  display: block;
}

pre code .line-removed,
pre code [class*="deleted"] {
  background: rgba(239, 68, 68, 0.2) !important;
  display: block;
}

/* ========================================
   STATUS BADGES
   ======================================== */

/* GO/NO-GO badges */
.prose :contains("🟢 GO") {
  color: #10b981;
  font-weight: bold;
}

.prose :contains("🔴 NO-GO") {
  color: #ef4444;
  font-weight: bold;
}

.prose :contains("🟡") {
  color: #f59e0b;
}

/* ========================================
   SCROLLBAR CUSTOMIZADA
   ======================================== */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--color-bg-secondary);
}

::-webkit-scrollbar-thumb {
  background: var(--velosonet-primary);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--velosonet-secondary);
}

/* ========================================
   ANIMAÇÕES
   ======================================== */
@keyframes pulse-green {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 166, 81, 0.4); }
  50% { box-shadow: 0 0 0 10px rgba(0, 166, 81, 0); }
}

.animate-pulse-green {
  animation: pulse-green 2s infinite;
}

/* ========================================
   SIDEBAR MELHORADA
   ======================================== */
/* Logo area */
.sidebar-header {
  background: linear-gradient(135deg, var(--velosonet-primary) 0%, var(--velosonet-secondary) 100%);
  padding: 1rem;
  border-radius: 8px;
  margin-bottom: 1rem;
}

/* Session items hover */
[class*="session"]:hover {
  border-left-color: var(--velosonet-primary) !important;
}

/* ========================================
   BOTÕES
   ======================================== */
button[type="primary"],
.ant-btn-primary {
  background: var(--velosonet-primary) !important;
  border-color: var(--velosonet-primary) !important;
}

button[type="primary"]:hover,
.ant-btn-primary:hover {
  background: var(--velosonet-secondary) !important;
  border-color: var(--velosonet-secondary) !important;
}

/* ========================================
   AGENT FLOW VISUALIZATION
   ======================================== */
.react-flow__node {
  border: 2px solid var(--velosonet-primary) !important;
  border-radius: 8px;
}

.react-flow__edge-path {
  stroke: var(--velosonet-primary) !important;
}

/* ========================================
   LOADING STATES
   ======================================== */
.ant-spin-dot-item {
  background-color: var(--velosonet-primary) !important;
}

/* ========================================
   FOOTER/BRANDING
   ======================================== */
.velosonet-badge {
  position: fixed;
  bottom: 10px;
  right: 10px;
  background: var(--velosonet-primary);
  color: white;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 600;
  z-index: 1000;
}
