/* ==========================================================================
   DROGEN - CORE STYLES
   ========================================================================== */
* { scrollbar-width: thin; scrollbar-color: #334155 #0f172a; } 
*::-webkit-scrollbar { width: 6px; } 
*::-webkit-scrollbar-track { background: #0f172a; } 
*::-webkit-scrollbar-thumb { background: #334155; border-radius: 3px; }
body { font-family: 'Inter', sans-serif; background-color: #0f172a; color: #cbd5e1; overflow-x: hidden; }

.glow-green { box-shadow: 0 0 25px rgba(34,197,94,0.15); } 
.glow-blue { box-shadow: 0 0 25px rgba(14,165,233,0.15); } 
.glow-purple { box-shadow: 0 0 25px rgba(168,85,247,0.15); } 
.glow-orange { box-shadow: 0 0 25px rgba(251,146,60,0.15); } 
.glow-red { box-shadow: 0 0 30px rgba(239,68,68,0.3); }

.fade-in { animation: fadeIn 0.4s ease-out; } 
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.pulse-dot { animation: pulseDot 2s infinite; } 
@keyframes pulseDot { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

.card-neo { background: #0f172a; border-radius: 1rem; box-shadow: 8px 8px 16px rgba(0,0,0,0.8), -4px -4px 12px rgba(255,255,255,0.03); border: 1px solid rgba(255, 255, 255, 0.02); transition: all 0.3s ease; }
.neo-inset { background: #0f172a; box-shadow: inset 6px 6px 12px rgba(0,0,0,0.9), inset -3px -3px 8px rgba(255,255,255,0.03) !important; border: 1px solid rgba(0, 0, 0, 0.6) !important; }

.radar-sweep { position: absolute; inset: 0; background: conic-gradient(from 0deg, transparent 70%, rgba(34,197,94,0.15) 100%); border-radius: 50%; animation: sweep 3s linear infinite; } 
@keyframes sweep { to { transform: rotate(360deg); } }

.side-panel-right { transform: translateX(100%); transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.side-panel-right.open { transform: translateX(0); }

.map-overlay-grid { background-image: linear-gradient(rgba(34,197,94,0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(34,197,94,0.1) 1px, transparent 1px); background-size: 20px 20px; }
.bg-ortomosaico { background-color: #0a110a; background-image: radial-gradient(circle at center, #1a2a1a 0%, #030705 100%); }
.bg-pecuaria-live { background-color: #050a14; background-image: radial-gradient(circle at center, #0f1b33 0%, #02040a 100%); }

.daninha-spot { position: absolute; background: rgba(239, 68, 68, 0.5); border: 1px solid rgba(239, 68, 68, 0.8); border-radius: 50%; animation: pulseSpot 2s infinite; } 
@keyframes pulseSpot { 0%, 100% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.8; } }

.linha-paralelismo { position: absolute; height: 120%; width: 2px; background-color: rgba(34, 197, 94, 0.7); box-shadow: 0 0 5px rgba(34, 197, 94, 0.5); transform: rotate(-15deg); top: -10%; } 
.linha-paralelismo.erro { background-color: rgba(239, 68, 68, 0.8); box-shadow: 0 0 8px rgba(239, 68, 68, 0.6); z-index: 10;}

.bounding-box { position: absolute; border: 2px solid #4ade80; background-color: rgba(74, 222, 128, 0.1); box-shadow: 0 0 8px rgba(74, 222, 128, 0.5); display: flex; align-items: flex-start; justify-content: flex-start; transition: all 0.3s ease; } 
.bounding-box.stress { border-color: #ef4444; background-color: rgba(239, 68, 68, 0.1); box-shadow: 0 0 8px rgba(239, 68, 68, 0.5); }
.bbox-label { background-color: #4ade80; color: #0f172a; font-size: 8px; font-family: 'JetBrains Mono', monospace; padding: 2px 4px; font-weight: bold; text-transform: uppercase; } 
.bounding-box.stress .bbox-label { background-color: #ef4444; color: white; }

.text-digital { font-family: 'JetBrains Mono', monospace; font-weight: 800; letter-spacing: -2px; }
.critical-pulse { animation: criticalPulse 1s infinite; }
@keyframes criticalPulse { 0% { color: #ef4444; text-shadow: 0 0 20px rgba(239,68,68,0.8); } 50% { color: #fca5a5; text-shadow: 0 0 40px rgba(239,68,68,1); } 100% { color: #ef4444; text-shadow: 0 0 20px rgba(239,68,68,0.8); } }

/* ==========================================================================
   CHAT TÁTICO - ESTILOS
   ========================================================================== */
.chat-msg-in { animation: chatMsgIn 0.3s ease-out; }
@keyframes chatMsgIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

#tacticalChatHistory::-webkit-scrollbar { width: 4px; }
#tacticalChatHistory::-webkit-scrollbar-thumb { background: #1e293b; border-radius: 2px; }

#presenceBar .pulse-dot { animation: pulseDot 1.5s infinite; }

/* Responsivo: Radio panel no mobile fica full width */
@media (max-width: 1024px) {
  #radioPanel { left: 0 !important; }
}
